diff --git a/ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn b/ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn
index 92c1276082a674272d5ea3b9f89ed7826d11702a..1697f6017540849798c96c84dcf87ba40be2a042 100644
--- a/ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn
+++ b/ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn
@@ -411,7 +411,7 @@ module AtsImsIot_Emergency {
                         f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip);
                         
                         f_mtc_check_TP_MM_PSAP_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 12
-                        f_mtc_check_TP_MM_PSAP_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip);
+                        f_mtc_check_TP_MM_PSAP_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip);
 
                         // 183 Session Progress
                         f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13
@@ -430,8 +430,8 @@ module AtsImsIot_Emergency {
                         f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 18
                         f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 19
                         
-                        f_mtc_check_TP_MM_PSAP_1XXRESP_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22                        
-                        // FIXME f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23
+                        f_mtc_check_TP_MM_PSAP_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22                        
+                        f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23
                         f_mtc_check_TP_MW_ECSCF_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24
                         f_mtc_check_TP_GM_PCSCF_180RINGING_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25
                         
@@ -444,16 +444,14 @@ module AtsImsIot_Emergency {
                         f_mtc_userCheckPeerIsRinging(v_ueA);
                         f_mtc_userAnswerCall(v_psap);
                         
-                        //f_mtc_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.mwB_PSAP, true); // 200 OK – Event 26
-                        //f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.mwB_PSAP, true); // 200 OK – Event 25
-                        f_mtc_check_TP_MM_PSAP_2XXRESP_03(vc_vxlte_monitor_components.mwB_PSAP); // 200 OK – Event 26
-                        // FIXME f_mtc_check_TP_???_2XXRESP_03(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27
+                        f_mtc_check_TP_MM_PSAP_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 26
+                        f_mtc_check_TP_MW_IBCF_200OK(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 27
                         f_mtc_check_TP_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 28
                         f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 29
 
                         f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 30 
                         f_mtc_check_TP_MW_ECSCF_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 31
-                        // FIXME f_mtc_check_TP_???_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 32
+                        f_mtc_check_TP_MW_IBCF_ACK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 32
                         f_mtc_check_TP_MM_PSAP_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 33
 
                         f_mtc_userCheckCallEstablished(v_ueA); // Event 34
diff --git a/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MM.ttcn b/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MM.ttcn
index b0586e45f695a48f32c8e466edc7eb184bc5065c..445028ac0255bf910d5720bd1e900503f8b37dbf 100644
--- a/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MM.ttcn
+++ b/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MM.ttcn
@@ -32,7 +32,7 @@ module AtsImsIot_TP_behavior_MM {
     group imsInvite {
         
         /**
-         * @desc Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)..
+         * @desc Verify that the IBCF successfully processes an initial INVITE (Originating Leg)..
          * Initial conditions with {
          *     the UE_A entity isAttachedTo the EPC_A and
          *     the PSAP entity isAttachedTo the EPC_B and
@@ -43,7 +43,7 @@ module AtsImsIot_TP_behavior_MM {
          * Expected behaviour
          * ensure that {
          *     when {
-         *         the PSAP entity receives an INVITE containing
+         *         the IMS_IBCF_A entity receives an INVITE containing
          *             From indicating value PX_UE_A_SIP_URI,
          *             To indicating value PX_PSAP_SIP_URI,
          *             CallId indicating value PX_UE_A_CALLID,
@@ -55,11 +55,22 @@ module AtsImsIot_TP_behavior_MM {
          *                     Version indicating value "0" 
          *                         ;
          *             ;;
-         *         from the IMS_EBCF_A entity
+         *         from the IMS_E_CSCF_A entity
          *     }
          *     then {
-         *         the PSAP entity sends an 100_Trying
-         *         to the IMS_IBCF_A entity
+         *         the IMS_IBCF_A entity sends an INVITE containing
+         *             From indicating value PX_UE_A_SIP_URI,
+         *             To indicating value PX_PSAP_SIP_URI,
+         *             CallId indicating value PX_UE_A_CALLID,
+         *             Via indicating value PX_UE_A_VIA,
+         *             Route indicating value PX_UE_A_SERVICE_ROUTE,
+         *             PAccessNetworkInfo,
+         *             MessageBody containing
+         *                 SDP containing
+         *                     Version indicating value "0" 
+         *                         ;
+         *             ;;
+         *         to the PSAP entity
          *         }
          *     }
          */
@@ -97,4 +108,325 @@ module AtsImsIot_TP_behavior_MM {
 
     } // End of group imsInvite
 
-} // end module AtsImsIot_TP_behavior_MM
\ No newline at end of file
+    group ims100Trying {
+        
+        /**
+         * @desc Verify that the IBCF successfully processes a 100 (Trying) provisional response on initial INVITE (Originating Leg).
+         * Initial conditions with {
+         *     the UE_A entity isAttachedTo the EPC_A and
+         *     the PSAP entity isAttachedTo the EPC_B and
+         *     the UE_A entity isRegisteredTo the IMS_A and
+         *     the PSAP entity isRegisteredTo the IMS_B
+         * }
+         * 
+         * Expected behaviour
+         * ensure that {
+         *     when {
+         *         the IMS_IBCF_A entity receives a 100_Trying
+         *         from the PSAP entity
+         *     }
+         *     then {
+         *         the IMS_IBCF_A entity sends a 100_Trying
+         *         to the IMS_E_CSCF_A entity
+         *         }
+         *     }
+         */
+        function f_mtc_check_TP_MW_IBSCF_100Trying_01(
+                                                      in SipInterfaceMonitor p_monitorCompRef,
+                                                      in boolean p_checkMessage := false,
+                                                      in SipMessage p_sip
+                                                      ) runs on ImsTestCoordinator {
+            if (isvalue(p_monitorCompRef)) {
+                // Check the 100 TRYING
+                p_monitorCompRef.start(
+                                       f_Iot_Sip_receive(
+                                                         { mw_SipResponse(mw_TP_MW_IBCF_100Trying_01(
+                                                                                                      p_sip.request.msgHeader.cSeq,
+                                                                                                      p_sip.request.msgHeader.fromField,
+                                                                                                      p_sip.request.msgHeader.toField
+                                                                          )) 
+                                                         },
+                                                         { mw_SipResponse(mw_100Trying_Base) },
+                                                         { 0, omit },
+                                                         "TP_MW_IBCF_100Trying_01",
+                                                         false,
+                                                         p_checkMessage
+                                                         )
+                                        );
+                p_monitorCompRef.done;
+            }
+        } // End of function f_mtc_check_TP_MW_IBSCF_100Trying_01
+        
+    } // End of group ims100Trying
+
+    group ims180Ringing {
+        
+        /**
+         * @desc Verify that the IBCF successfully processes a 180 (Ringing) provisional response on initial INVITE (Originating Leg).
+         * Initial conditions with {
+         *     the UE_A entity isAttachedTo the EPC_A and
+         *     the PSAP entity isAttachedTo the EPC_B and
+         *     the UE_A entity isRegisteredTo the IMS_A and
+         *     the PSAP entity isRegisteredTo the IMS_B
+         * }
+         * 
+         * Expected behaviour
+         * ensure that {
+         *     when {
+         *         the IMS_IBCF_A entity receives a 180_Ringing containing
+         *             From indicating value PX_PSAP_SIP_URI,
+         *             To indicating value PX_UE_A_SIP_URI,
+         *             CallId indicating value PX_PSAP_CALLID,
+         *             Via indicating value PX_PSAP_VIA,
+         *             Route indicating value PX_PSAP_SERVICE_ROUTE
+         *             ;
+         *         from the PSAP entity
+         *     }
+         *     then {
+         *         the IMS_IBCF_A entity sends a 180_Ringing containing
+         *             From indicating value PX_PSAP_SIP_URI,
+         *             To indicating value PX_UE_A_SIP_URI,
+         *             CallId indicating value PX_PSAP_CALLID,
+         *             Via indicating value PX_PSAP_VIA,
+         *             Route indicating value PX_PSAP_SERVICE_ROUTE
+         *             ;
+         *         to the IMS_E_CSCF_A entity
+         *         }
+         *     }
+         */
+        function f_mtc_check_TP_MM_PSAP_180RINGING_01(
+                                                       in SipInterfaceMonitor p_monitorCompRef,
+                                                       in boolean p_checkMessage := false,
+                                                       in SipMessage p_sip
+                                                       ) runs on ImsTestCoordinator {
+            if (isvalue(p_monitorCompRef)) {
+                // Check the 180 RINGING
+                p_monitorCompRef.start(
+                                       f_Iot_Sip_receive(
+                                                         { mw_SipResponse(mw_TP_MM_PSAP_180Ringing_01(
+                                                                                                       p_sip.request.msgHeader.cSeq,
+                                                                                                       p_sip.request.msgHeader.fromField,
+                                                                                                       mw_To_NameAddr_TelUrl(
+                                                                                                                             -,
+                                                                                                                             p_sip.request.msgHeader.toField.addressField.addrSpecUnion.components.tel.subscriber
+                                                                          ))) 
+                                                         },
+                                                         { mw_SipResponse(mw_180Ringing_Base) },
+                                                         { 0, omit },
+                                                         "TP_MM_PSAP_180RINGING_01",
+                                                         false,
+                                                         p_checkMessage
+                                                         )
+                                        );
+                p_monitorCompRef.done;
+            }
+        } // End of function f_mtc_check_TP_MM_PSAP_180RINGING_01
+        
+    } // End of group ims180Ringing
+
+    group ims183SessionProgress {
+        
+        /**
+         * @desc Verify that the IBCF successfully processes a 183 (Ringing) provisional response on initial INVITE (Originating Leg).
+         * Initial conditions with {
+         *     the UE_A entity isAttachedTo the EPC_A and
+         *     the PSAP entity isAttachedTo the EPC_B and
+         *     the UE_A entity isRegisteredTo the IMS_A and
+         *     the PSAP entity isRegisteredTo the IMS_B
+         * }
+         * 
+         * Expected behaviour
+         * ensure that {
+         *     when {
+         *         the IMS_IBCF_A entity receives a 183_SessionProgress containing
+         *             From indicating value PX_SAP_URI,
+         *             To indicating value PX_UE_A_SIP_URI,
+         *             CallId indicating value PX_SAP_CALLID,
+         *             Via indicating value PX_PSAP_VIA,
+         *             Route indicating value PX_PSAP_SERVICE_ROUTE
+         *             ;
+         *         from the PSAP entity
+         *     }
+         *     then {
+         *         the IMS_IBCF_A entity sends a 183_SessionProgress containing
+         *             From indicating value PX_PSAP_SIP_URI,
+         *             To indicating value PX_UE_A_SIP_URI,
+         *             CallId indicating value PX_PSAP_CALLID,
+         *             Via indicating value PX_PSAP_VIA,
+         *             Route indicating value PX_PSAP_SERVICE_ROUTE
+         *             ;
+         *         to the IMS_E_CSCF_A entity
+         *         }
+         *     }
+         */
+        function f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01(
+                                                                in SipInterfaceMonitor p_monitorCompRef,
+                                                                in boolean p_checkMessage := false,
+                                                                in SipMessage p_sip
+                                                                ) runs on ImsTestCoordinator {
+            if (isvalue(p_monitorCompRef)) {
+                // Check the 183 SESSION_PROGRESS
+                p_monitorCompRef.start(
+                                       f_Iot_Sip_receive(
+                                                         { mw_SipResponse(mw_TP_MM_PSAP_183SessionProgress_01(
+                                                                                                               p_sip.request.msgHeader.cSeq,
+                                                                                                               p_sip.request.msgHeader.fromField,
+                                                                                                               p_sip.request.msgHeader.toField
+                                                                                                               )) 
+                                                         },
+                                                         { mw_SipResponse(mw_183SessionProgress_Base) },
+                                                         { 0, omit },
+                                                         "TP_MM_PSAP_183SESSION_PROGRESS_01",
+                                                         false,
+                                                         p_checkMessage
+                                                         )
+                                        );
+                p_monitorCompRef.done;
+            }
+        } // End of function f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01
+
+    } // End of group ims183SessionProgress
+    
+    group ims200Ok {
+        
+        /**
+         * @desc Verify that the IBCF successfully processes a 200 (OK) provisional response on initial INVITE (Originating Leg).
+         * Initial conditions with {
+         *     the UE_A entity isAttachedTo the EPC_A and
+         *     the PSAP entity isAttachedTo the EPC_B and
+         *     the UE_A entity isRegisteredTo the IMS_A and
+         *     the PSAP entity isRegisteredTo the IMS_B
+         * }
+         * 
+         * Expected behaviour
+         * ensure that {
+         *     when {
+         *         the IMS_IBCF_A entity receives a 200_Ok containing
+         *             From indicating value PX_PSAP_SIP_URI,
+         *             To indicating value PX_UE_A_SIP_URI,
+         *             CallId indicating value PX_PSAP_CALLID,
+         *             Via indicating value PX_PSAP_VIA,
+         *             Route indicating value PX_PSAP_SERVICE_ROUTE,
+         *             not PChargingVector,
+         *             not PChargingFunctionAddresses,
+         *             not PPreferredIdentity
+         *             ;
+         *         from the PSAP entity
+         *     }
+         *     then {
+         *         the IMS_IBCF_A entity sends a 200_Ok containing
+         *             From indicating value PX_PSAP_SIP_URI,
+         *             To indicating value PX_UE_A_SIP_URI,
+         *             CallId indicating value PX_PSAP_CALLID,
+         *             Via indicating value PX_PSAP_VIA,
+         *             Route indicating value PX_PSAP_SERVICE_ROUTE,
+         *             PChargingVector,
+         *             PChargingFunctionAddresses,
+         *             PPreferredIdentity
+         *             ;
+         *         to the IMS_E_CSCF_A entity
+         *         }
+         *     }
+         */
+        function f_mtc_check_TP_MM_PSAP_200OK_01(
+                                                  in SipInterfaceMonitor p_monitorCompRef,
+                                                  in boolean p_checkMessage := false,
+                                                  in SipMessage p_sip
+                                                  ) runs on ImsTestCoordinator {
+            if (isvalue(p_monitorCompRef)) {
+                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B);
+                
+                // Check the 200 OK
+                p_monitorCompRef.start(
+                                       f_Iot_Sip_receive(
+                                                         { mw_SipResponse(mw_200OK(
+                                                                                   p_sip.request.msgHeader.cSeq,
+                                                                                   p_sip.request.msgHeader.callId,
+                                                                                   p_sip.request.msgHeader.fromField,
+                                                                                   (
+                                                                                      mw_To_NameAddr_TelUrl({quotedString:=f_getSipUserId(PX_EUT_B).publicId}),
+                                                                                      mw_To_AddrUnion_TelUrl(f_getTelUserId(PX_EUT_B).publicId),
+                                                                                      p_sip.request.msgHeader.toField
+                                                                                    )
+                                                                                   )) 
+                                                         },
+                                                         { mw_SipResponse(mw_200OK_Base) },
+                                                         { 0, omit },
+                                                         "TP_MM_PSAP_200OK_01",
+                                                         false,
+                                                         p_checkMessage
+                                                         )
+                                        );
+                p_monitorCompRef.done;
+                
+            }
+        } // End of function f_mtc_check_TP_MM_PSAP_200OK_01
+        
+    } // End of group ims200Ok
+    
+    group imsAck {
+        
+        /**
+         * @desc Verify that the IBCF successfully processes a ACK provisional response on initial INVITE (Originating Leg).
+         * Initial conditions with {
+         *     the UE_A entity isAttachedTo the EPC_A and
+         *     the PSAP entity isAttachedTo the EPC_B and
+         *     the UE_A entity isRegisteredTo the IMS_A and
+         *     the PSAP entity isRegisteredTo the IMS_B
+         * }
+         * 
+         * Expected behaviour
+         * ensure that {
+         *     when {
+         *         the IMS_IBCF_A entity receives an ACK containing
+         *             From indicating value PX_UE_A_SIP_URI,
+         *             To indicating value PX_PSAP_SIP_URI,
+         *             CallId indicating value PX_UE_A_CALLID,
+         *             Via indicating value PX_UE_A_VIA,
+         *             Route indicating value PX_UE_A_SERVICE_ROUTE
+         *             ;
+         *         from the IMS_E_CSCF_A entity
+         *     }
+         *     then {
+         *         the IMS_IBCF_A entity sends an ACK containing
+         *             From indicating value PX_UE_A_SIP_URI,
+         *             To indicating value PX_PSAP_SIP_URI,
+         *             CallId indicating value PX_UE_A_CALLID,
+         *             Via indicating value PX_UE_A_VIA,
+         *             Route indicating value PX_UE_A_SERVICE_ROUTE
+         *             ;
+         *         from the PSAP entity
+         *         }
+         *     }
+         */
+        function f_mtc_check_TP_MM_PSAP_ACK_01(
+                                                in SipInterfaceMonitor p_monitorCompRef,
+                                                in boolean p_checkMessage := false,
+                                                in SipMessage p_sip
+                                                ) runs on ImsTestCoordinator {
+            if (isvalue(p_monitorCompRef)) {
+                // Check the ACK
+                p_monitorCompRef.start(
+                                       f_Iot_Sip_receive(
+                                                         { mw_SipRequest(mw_TP_MM_PSAP_ACK_01(
+                                                                                               p_sip.request.msgHeader.callId,
+                                                                                               p_sip.request.msgHeader.cSeq,
+                                                                                               -, // FIXME To be set
+                                                                                               p_sip.request.msgHeader.fromField,
+                                                                                               p_sip.request.msgHeader.toField
+                                                                                               )) 
+                                                         },
+                                                         { mw_SipRequest(mw_ACK_Request_Base) },
+                                                         { 0, omit },
+                                                         "TP_MM_PSAP_ACK_01 - Request",
+                                                         false,
+                                                         p_checkMessage
+                                                         )
+                                        );
+                p_monitorCompRef.done;
+            }
+        } // End of function f_mtc_check_TP_MM_PSAP_ACK_01
+        
+    } // End of group imsAck
+    
+} // End of module AtsImsIot_TP_behavior_MM
\ No newline at end of file
diff --git a/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MW_EB.ttcn b/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MW_EB.ttcn
index 850ca5a9438aedc5ffad211a04c709485573f6a0..d8148b17eb97a752a2c366e60405b86990566b73 100644
--- a/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MW_EB.ttcn
+++ b/ttcn/AtsImsIot/AtsImsIot_TP_behavior_MW_EB.ttcn
@@ -297,7 +297,7 @@ module AtsImsIot_TP_behavior_MW_EB {
          * Expected behaviour
          * ensure that {
          *     when {
-         *         the IMS_EP_CSCF_A entity receives a 200_Ok containing
+         *         the IMS_E_CSCF_A entity receives a 200_Ok containing
          *             From indicating value PX_PSAP_SIP_URI,
          *             To indicating value PX_UE_A_SIP_URI,
          *             CallId indicating value PX_PSAP_CALLID,
diff --git a/ttcn/AtsImsIot/AtsImsIot_Templates_MM.ttcn b/ttcn/AtsImsIot/AtsImsIot_Templates_MM.ttcn
index 2fbd11a328a8fbb9d742e83d62d15f062e6a2d24..4a48304be4accee1f19c1b677c6f0d8d5cc1195a 100644
--- a/ttcn/AtsImsIot/AtsImsIot_Templates_MM.ttcn
+++ b/ttcn/AtsImsIot/AtsImsIot_Templates_MM.ttcn
@@ -28,4 +28,107 @@ module AtsImsIot_Templates_MM {
     import from AtsImsIot_PIXITS all;
     import from AtsImsIot_Templates all;
     
+        /**
+          * @desc INVITE Request checking TP_MM_PSAP_INVITE_01
+          */
+         template(present)  INVITE_Request mdw_TP_MM_PSAP_INVITE_01 (template (present) SipUrl p_IBCF_SIP_URI := ?,
+                                                                     template (present) From p_from := ?,
+                                                                     template (present) To p_to := ?)
+          modifies mw_INVITE_Request_Base := {
+           msgHeader := {
+             fromField := p_from,
+             toField := p_to,
+             route := ({
+                 fieldName := ROUTE_E,
+                 routeBody := {
+                     *, 
+                     complement(mw_routeBody(p_IBCF_SIP_URI)),
+                     *
+                 }
+             }, omit),
+             recordRoute := {
+                 fieldName := RECORD_ROUTE_E,
+                 routeBody := {mw_routeBody(p_IBCF_SIP_URI), *}             
+             },        
+             pChargingVector := {
+                 fieldName := P_CHARGING_VECTOR_E,
+                 chargeParams := {
+                     *,
+//                     {id := "icid-value", paramValue := ?},
+                     *,
+                     {id := "orig-ioi", paramValue := ?},
+                     *,
+//                     complement({id := "term-ioi", paramValue := ?}),
+                     *,
+                     complement({id := "access-network-charging-info", paramValue := ?}),
+                     *
+                 }
+             },
+            pAccessNetworkInfo := omit
+           }
+         }
+
+        template (present) Response mw_TP_MM_PSAP_100Trying_01(
+                                                                template (present) CSeq p_cSeq := ?,
+                                                                template (present) From p_from := ?,
+                                                                template (present) To p_to := ?
+                                                                ) modifies mw_100Trying_Base := {
+            msgHeader := {
+                cSeq      := p_cSeq,
+                fromField := p_from,
+                toField   := p_to
+            }
+        } // End of template mw_TP_MM_PSAP_100Trying_01
+        
+        template (present) Response mw_TP_MM_PSAP_180Ringing_01(
+                                                                 template (present) CSeq p_cSeq := ?,
+                                                                 template (present) From p_from := ?,
+                                                                 template (present) To p_to := ?
+                                                                 ) modifies mw_180Ringing_Base := {
+            msgHeader := {
+                cSeq      := p_cSeq,
+                fromField := p_from,
+                toField   := p_to
+            }
+        } // End of template mw_TP_MM_PSAP_180Ringing_01
+        
+        template (present) Response mw_TP_MM_PSAP_183SessionProgress_01(
+                                                                 template (present) CSeq p_cSeq := ?,
+                                                                 template (present) From p_from := ?,
+                                                                 template (present) To p_to := ?
+                                                                 ) modifies mw_183SessionProgress_Base := {
+            msgHeader := {
+                cSeq      := p_cSeq,
+                fromField := p_from,
+                toField   := p_to
+            }
+        } // End of template mw_TP_MM_PSAP_183SessionProgress_01
+    
+        template (present) ACK_Request mw_TP_MM_PSAP_ACK_01( // TODO To be enforced
+                                                             template (present) CallId p_callId := ?,
+                                                             template (present) CSeq p_cSeq := ?,
+                                                             template (present) SipUrl p_ack_uri := ?,
+                                                             template (present) From p_from := ?,
+                                                             template (present) To p_to := ?
+                                                             ) modifies mw_ACK_Request_Base := {
+            requestLine := {
+                method := ACK_E,
+                requestUri := p_ack_uri, // @TODO
+                sipVersion := c_sipNameVersion
+            },
+            msgHeader := {
+                callId := p_callId,
+                fromField := p_from,
+                toField := p_to,
+                route := {
+                    fieldName := ROUTE_E,
+                    routeBody := {
+                        *, 
+                        ?,
+                        *
+                    }
+                }
+            }
+        } // End of template mw_TP_MM_PSAP_ACK_01
+        
 } // End of module AtsImsIot_Templates_MM
diff --git a/ttcn/AtsImsIot/AtsImsIot_Templates_MW.ttcn b/ttcn/AtsImsIot/AtsImsIot_Templates_MW.ttcn
index 64b7ee0ec659bd263792908f84eafaeba094414d..96595a8968247b2d21151bb8dc9f16e486e4d297 100644
--- a/ttcn/AtsImsIot/AtsImsIot_Templates_MW.ttcn
+++ b/ttcn/AtsImsIot/AtsImsIot_Templates_MW.ttcn
@@ -1133,18 +1133,6 @@ module AtsImsIot_Templates_MW {
                 }
             }
         } // End of template mw_TP_MW_IBCF_ACK_01
-        
-        template (present) ACK_Request mw_TP_MW_IBCF_ACK_02( // TODO To be enforced
-                                                             template (present) CallId p_callId := ?,
-                                                             template (present) CSeq p_cSeq := ?,
-                                                             template (present) SipUrl p_ack_uri := ?,
-                                                             template (present) From p_from := ?,
-                                                             template (present) To p_to := ?
-                                                             ) modifies mw_TP_MW_IBCF_ACK_01 := {
-            msgHeader := {
-                route := omit
-            }
-        } // End of template mw_TP_MW_IBCF_ACK_02
 
     }