asterisk: test Precondition extension in IMS MT call

Related: SYS#6969
Change-Id: Ic96a6f99edbcf299fde36a2146a3ce252e09536a
diff --git a/library/SIP_Templates.ttcn b/library/SIP_Templates.ttcn
index cfe21eb..d0210d1 100644
--- a/library/SIP_Templates.ttcn
+++ b/library/SIP_Templates.ttcn
@@ -736,6 +736,7 @@
 		template P_Associated_Uri p_associated_uri := *,
 		template RAck rack := *,
 		template Require require := *,
+		template RSeq rseq := *,
 		template Security_client security_client := *,
 		template Security_server security_server := *,
 		template Server server := *,
@@ -762,6 +763,7 @@
 	p_associated_uri := p_associated_uri,
 	rack := rack,
 	require := require,
+	rseq := rseq,
 	security_client := security_client,
 	security_server := security_server,
 	server := server,
@@ -833,13 +835,15 @@
 	      template (value) Via via,
 	      template (value) Contact contact,
 	      integer seq_nr,
+	      template (omit) Supported supported := omit,
 	      template (omit) charstring body := omit) := {
 	requestLine := ts_SIP_ReqLine(INVITE_E, to_addr.addressField.nameAddr.addrSpec),
 	msgHeader := ts_SIP_msgh_std(call_id, from_addr, to_addr, contact,
 				     "INVITE", seq_nr,
 				     via,
 				     content_length := f_ContentLength(body),
-				     content_type := f_ContentTypeOrOmit(ts_CT_SDP, body)),
+				     content_type := f_ContentTypeOrOmit(ts_CT_SDP, body),
+				     supported := supported),
 	messageBody := body,
 	payload := omit
 }
@@ -939,6 +943,25 @@
 	payload := omit
 }
 
+template (value) PDU_SIP_Request
+ts_SIP_PRACK(template (value) SipUrl uri,
+	     template (value) CallidString call_id,
+	     template (value) From from_addr,
+	     template (value) To to_addr,
+	     template (value) Via via,
+	     integer seq_nr,
+	     template (value) RAck rack,
+	     template (omit) charstring body := omit) := {
+	requestLine := ts_SIP_ReqLine(PRACK_E, uri),
+	msgHeader := ts_SIP_msgh_std(call_id, from_addr, to_addr, omit,
+				     "PRACK", seq_nr,
+				     via,
+				     content_length := f_ContentLength(body),
+				     content_type := f_ContentTypeOrOmit(ts_CT_SDP, body),
+				     rack := rack),
+	messageBody := body,
+	payload := omit
+}
 template (present) PDU_SIP_Request
 tr_SIP_PRACK(template (present) SipUrl uri,
 	     template CallidString call_id,
@@ -957,6 +980,24 @@
 	payload := omit
 }
 
+template (value) PDU_SIP_Request
+ts_SIP_UPDATE(template (value) SipUrl uri,
+	      template (value) CallidString call_id,
+	      template (value) From from_addr,
+	      template (value) To to_addr,
+	      template (value) Via via,
+	      integer seq_nr,
+	      template (omit) Contact contact,
+	      template (value) Require require := ts_Require({"sec-agree", "precondition"}),
+	      template (value) charstring body) := {
+	requestLine := ts_SIP_ReqLine(UPDATE_E, uri),
+	msgHeader := ts_SIP_msgh_std(call_id, from_addr, to_addr, contact,
+				     "UPDATE", seq_nr,
+				     via,
+				     require := require),
+	messageBody := body,
+	payload := omit
+}
 template (present) PDU_SIP_Request
 tr_SIP_UPDATE(template (present) SipUrl uri,
 	      template CallidString call_id,
@@ -1187,6 +1228,28 @@
 	payload := omit
 }
 
+/* 183 Session Progress */
+template (present) PDU_SIP_Response
+tr_SIP_Response_SessionProgress(
+	template (present) CallidString call_id,
+	template (present) From from_addr,
+	template (present) To to_addr,
+	template (present) Via via,
+	template (present) integer seq_nr := ?,
+	template (present) charstring method := "INVITE",
+	template Require require := *,
+	template RSeq rseq := *,
+	template (omit) charstring body := omit) := {
+	statusLine := tr_SIP_StatusLine(183, "Session Progress"),
+	msgHeader := tr_SIP_msgh_std(call_id, from_addr, to_addr, *,
+				     via,
+				     method, seq_nr,
+				     require := require,
+				     rseq := rseq),
+	messageBody := body,
+	payload := omit
+}
+
 /****************
  * FUNCTIONS:
  ****************/