AtsImsIot_Templates_GM.ttcn 45.6 KB
Newer Older
Bostjan Pintar's avatar
Bostjan Pintar committed
/*
 *  @author     STF 574
 *  @version    $Id$
 *  @desc       This module provides TP related templates used at MW interface
 */
module AtsImsIot_Templates_GM {
    
    // LibCommon
    //import from LibCommon_BasicTypesAndValues all;
    //import from LibCommon_VerdictControl all;
    
    // libSip
    import from LibSip_SIPTypesAndValues all;
    import from LibSip_Templates all;
    import from LibSip_Common all;
    
    // LibIms
    import from LibIms_Templates all;
    
    //import from LibMsrp_TypesAndValues all;
    
    // LibIot
    //import from LibIot_TypesAndValues all;
    import from LibIot_PIXITS all;
    
    // AtsImsIot
    //import from AtsImsIot_TypesAndValues all;
    import from AtsImsIot_PIXITS all;
    import from AtsImsIot_Templates all;
    
    group sip_templates {
        
        template NameAddr mw_NameAddr_DispName_Tel(
                                                   template DisplayName p_displayName := *,
                                                   template(present) charstring p_number := ?
        ) := {
            displayName := p_displayName,
            addrSpec := {
                scheme := c_telScheme,  //*     contains "tel"
                components := {
                    tel := {
                        subscriber := p_number
                    }
                },
                urlParameters := *,
                headers := *
            }
        } // End of template mw_NameAddr_DispName_Tel
        
        template(present) From mw_From_AddrUnion_SipUrl(
                                                        template DisplayName p_dn,
                                                        template(present) charstring p_user := ?,
                                                        template charstring p_host
        ) := {
            fieldName := FROM_E,
            addressField := mw_AddrUnion_SipUrl(p_user, p_host),
            fromParams := *
        } // End of template mw_From_AddrUnion_SipUrl
        
        template(present) From mw_From_AddrUnion_TelUrl(
                                                        template(present) charstring p_number := ?
        ) := {
            fieldName := FROM_E,
            addressField := mw_AddrUnion_TelUrl(p_number),
            fromParams := *
        } // End of template mw_From_AddrUnion_TelUrl
        
        template From mw_From_NameAddr_TelUrl(
                                              template DisplayName p_displayName := *,
                                              template(present) charstring p_number := ?
                                              ) := {
            fieldName := FROM_E,
            addressField := { nameAddr := mw_NameAddr_DispName_Tel(p_displayName, p_number) },
            fromParams := *
        } // End of template mw_From_NameAddr_TelUrl
        
        template(present) To mw_To_AddrUnion_SipUrl(
                                                    template DisplayName p_dn,
                                                    template(present) charstring p_user := ?,
                                                    template charstring p_host
        ) := {
            fieldName := TO_E,
            addressField := mw_AddrUnion_SipUrl(p_user, p_host),
            toParams := *
        } // End of template mw_To_AddrUnion_SipUrl
        
        template(present) To mw_To_AddrUnion_TelUrl(
                                                    template(present) charstring p_number := ?
        ) := {
            fieldName := TO_E,
            addressField := mw_AddrUnion_TelUrl(p_number),
            toParams := *
        } // End of template mw_To_AddrUnion_TelUrl
        
        template To mw_To_NameAddr_TelUrl(
                                          template DisplayName p_displayName := *,
                                          template(present) charstring p_number := ?
                                          ) := {
            fieldName := TO_E,
            addressField := { nameAddr := mw_NameAddr_DispName_Tel(p_displayName, p_number) },
            toParams := *
        } // End of template mw_To_NameAddr_TelUrl
        
Yann Garcia's avatar
Yann Garcia committed
        template (present) Contact mw_contact(
                                              template (present) ContactAddress p_contactAddresses := ?
                                              ) := {
            fieldName := CONTACT_E,
            contactBody := { contactAddresses := { p_contactAddresses } }
        } // End of template mw_Contact
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template (present) Response mw_200OK(
                                             template (present) CSeq p_cSeq := ?,
                                             template (present) CallId p_callId := ?,
                                             template (present) From p_from := ?,
                                             template (present) To p_to := ?
                                             ) modifies mw_200OK_Base := {
            msgHeader := {
                callId    := p_callId,
                cSeq      := p_cSeq,
                fromField := p_from,
                toField   := p_to
            }
        } // End of template mw_200OK
Bostjan Pintar's avatar
Bostjan Pintar committed
        template (present)  Response mw_401Unauthorized(
                                                        template (present) CSeq p_cSeq := ?,
                                                        template (present) WwwAuthenticate p_wwwAuthenticate := ?
                                                        ) modifies mw_401Unauthorized_Base := {
            msgHeader := {
                cSeq            := p_cSeq,
                wwwAuthenticate := p_wwwAuthenticate
            }
        } // End of template mw_401Unauthorized
        
        template (present) Response mw_404NotFound(
                                                   template (present) CSeq p_cSeq := ?,
                                                   template (present) WwwAuthenticate p_wwwAuthenticate := ?
                                                   ) modifies mw_404NotFound_Base := {
            msgHeader := {
                cSeq            := p_cSeq,
                wwwAuthenticate := p_wwwAuthenticate
            }
        } // End of template mw_404NotFound
        
        template Response mw_480TemporaryUnavailable(
                                                     template (present) CallId p_callId := ?,
                                                     template (present) CSeq p_cSeq := ?,
                                                     template WwwAuthenticate p_wwwAuthenticate := *
                                                     ) modifies mw_480TemporaryUnavailable_Base := {
            msgHeader := {
                cSeq            := p_cSeq,
                wwwAuthenticate := p_wwwAuthenticate
            }
        } // End of template mw_480TemporaryUnavailable
        
        template (present) Response mw_486Busy(
                                               template (present) CallId p_callId := ?,
                                               template (present) CSeq p_cSeq := ?,
                                               template (present) From p_from := ?,
                                               template (present) To p_to := ?,
                                               template WwwAuthenticate p_wwwAuthenticate := ?
                                               ) modifies mw_486Busy_Base := {
            msgHeader := {
                callId    := p_callId,
                cSeq      := p_cSeq,
                fromField := p_from,
                toField   := p_to,
                wwwAuthenticate := p_wwwAuthenticate
            }
        } // End of template mw_486Busy
        
        template (present) Response mw_600BusyEverywhere(
                                                         template (present) CallId p_callId := ?,
                                                         template (present) CSeq p_cSeq := ?,
                                                         template (present) From p_from := ?,
                                                         template (present) To p_to := ?,
                                                         template WwwAuthenticate p_wwwAuthenticate := ?
                                                         ) modifies mw_600BusyEverywhere_Base := {
            msgHeader := {
                callId    := p_callId,
                cSeq      := p_cSeq,
                fromField := p_from,
                toField   := p_to,
                wwwAuthenticate := p_wwwAuthenticate
            }
        } // End of template mw_600BusyEverywhere
        
        template (present) Response mw_487RequestTerminated(
                                                            template (present) CallId p_callId := ?,
                                                            template (present) CSeq p_cSeq := ?,
                                                            template (present) From p_from := ?,
                                                            template (present) To p_to := ?,
                                                            template WwwAuthenticate p_wwwAuthenticate := ?
                                                            ) modifies mw_487RequestTerminated_Base := {
            msgHeader := {
                callId    := p_callId,
                cSeq      := p_cSeq,
                fromField := p_from,
                toField   := p_to,
                wwwAuthenticate := p_wwwAuthenticate
            }
        } // End of template mw_487RequestTerminated
        
    } // End of group sip_templates
    
    group g_gmA {
        
        template(present) REGISTER_Request mw_TP_GM_PCSCF_REGISTER_01(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template PChargingVector p_pChargingVector := *,
                                                                      template PVisitedNetworkID p_pVisitedNetworkID := *
        ) modifies mw_REGISTER_authorizedRequest_wo_securityheaders_IMS := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := ?,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID
                //require := mw_require_path
            }
        } // End of template mw_TP_GM_PCSCF_REGISTER_01
        
        template(present) REGISTER_Request mw_TP_GM_PCSCF_ECO_REGISTER_01(
                                                                          template (present) From p_from := ?,
                                                                          template (present) To p_to := ?,
                                                                          template (present) Authorization p_authorization := ?,
                                                                          template PChargingVector p_pChargingVector := *,
                                                                          template PVisitedNetworkID p_pVisitedNetworkID := *,
Yann Garcia's avatar
Yann Garcia committed
                                                                          template (present) Contact p_contact := ?
        ) modifies mw_TP_GM_PCSCF_REGISTER_01 := {
            msgHeader := {
                contact := p_contact
            }
        } // End of template mw_TP_GM_PCSCF_ECO_REGISTER_01
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template(present) REGISTER_Request mw_TP_GM_PCSCF_REGISTER_02(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template PChargingVector p_pChargingVector := *,
                                                                      template PVisitedNetworkID p_pVisitedNetworkID := *
        ) modifies mw_TP_GM_PCSCF_REGISTER_01 := {
        } // End of template mw_TP_GM_PCSCF_REGISTER_02
        
        template(present) REGISTER_Request mw_TP_GM_PCSCF_REGISTER_03(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template PChargingVector p_pChargingVector := *,
                                                                      template PVisitedNetworkID p_pVisitedNetworkID := *
        ) modifies mw_TP_GM_PCSCF_REGISTER_01 := {
        } // End of template mw_TP_GM_PCSCF_REGISTER_03
        
        template(present) REGISTER_Request mw_TP_GM_PCSCF_ECO_REGISTER_03(
                                                                          template (present) From p_from := ?,
                                                                          template (present) To p_to := ?,
                                                                          template (present) Authorization p_authorization := ?,
                                                                          template PChargingVector p_pChargingVector := *,
                                                                          template PVisitedNetworkID p_pVisitedNetworkID := *,
                                                                          template (present) Contact p_contact := ?
        ) modifies mw_TP_GM_PCSCF_ECO_REGISTER_01 := {
        } // End of template mw_TP_GM_PCSCF_ECO_REGISTER_03
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template(present) REGISTER_Request mw_TP_GM_PCSCF_REGISTER_04(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template PChargingVector p_pChargingVector := *,
                                                                      template PVisitedNetworkID p_pVisitedNetworkID := *
        ) modifies mw_TP_GM_PCSCF_REGISTER_01 := {
        } // End of template mw_TP_GM_PCSCF_REGISTER_04
        
        template(present) REGISTER_Request mw_TP_GM_PCSCF_REGISTER_05(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template PChargingVector p_pChargingVector := *,
                                                                      template PVisitedNetworkID p_pVisitedNetworkID := *
        ) modifies mw_TP_GM_PCSCF_REGISTER_01 := {
        } // End of template mw_TP_GM_PCSCF_REGISTER_04
        
        template(present) REGISTER_Request mw_TP_GM_PCSCF_REGISTER_07(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template PChargingVector p_pChargingVector := *,
                                                                      template PVisitedNetworkID p_pVisitedNetworkID := *,
                                                                      template (present) charstring p_expires := "0"
        ) modifies mw_TP_GM_PCSCF_REGISTER_01 := {
            msgHeader := {
                expires := mw_Expires(p_expires)
            }
        } // End of template mw_TP_GM_PCSCF_REGISTER_07
        
        template (present) SUBSCRIBE_Request mw_TP_GM_PCSCF_SUBSCRIBE_01(
                                                                         template (present) SipUrl p_subscribe_uri := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
        ) modifies mw_SUBSCRIBE_Request_Base := {
            requestLine := {
                method := SUBSCRIBE_E,
                requestUri := p_subscribe_uri, // @TODO
                sipVersion := c_sipNameVersion
            },
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                event := m_Event_reg,
                expires := ?, // checked outside the template
                //pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(-)), // FIXME Set expected value
                //pChargingVector :=  mw_PChargingVector({
                //    {id := "icid-value", paramValue := *}, 
                //    *
                //  }),
                route := ?
            }
        } // End of template mw_TP_GM_PCSCF_SUBSCRIBE_01

        template (present) SUBSCRIBE_Request mw_TP_GM_PCSCF_SUBSCRIBE_02(
                                                                         template (present) SipUrl p_subscribe_uri := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
        ) modifies mw_TP_GM_PCSCF_SUBSCRIBE_01 := {
        } // End of template mw_TP_GM_PCSCF_SUBSCRIBE_02
        
        template (present) NOTIFY_Request mw_TP_GM_PCSCF_NOTIFY_01(
                                                                   template (present) CallId p_callId := ?,
                                                                   template (present) SipUrl p_notify_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
        ) modifies mw_NOTIFY_Request_Base := {
            requestLine := {
                method := NOTIFY_E,
                requestUri := p_notify_uri, // @TODO
                sipVersion := c_sipNameVersion
            },
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                event := m_Event_reg
                //pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(-)), // FIXME Set expected value
                //pChargingVector :=  mw_PChargingVector({
                //    {id := "icid-value", paramValue := *}, 
                //    *
                //  }),
            }
        } // End of template mw_TP_GM_PCSCF_NOTIFY_01
        
        template (present) PRACK_Request mw_TP_GM_PCSCF_PRACK_01(
                                                                   template (present) CallId p_callId := ?,
                                                                   template (present) SipUrl p_notify_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
        ) modifies mw_PRACK_Request_Base := {
            requestLine := {
                method := PRACK_E,
                requestUri := p_notify_uri, // @TODO
                sipVersion := c_sipNameVersion
            },
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                // TODO Check if it is required for PRACK event := m_Event_reg,
                //pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(-)), // FIXME Set expected value
                //pChargingVector :=  mw_PChargingVector({
                //    {id := "icid-value", paramValue := *}, 
                //    *
                //  }),
                route := ?
            }
        } // End of template mw_TP_GM_PCSCF_PRACK_01
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_INVITE_01(
                                                                   template (present) SipUrl p_invite_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
        ) modifies mw_INVITE_Request_Base := {
            requestLine := {
                method := INVITE_E,
                requestUri := p_invite_uri, // @TODO
                sipVersion := c_sipNameVersion
            },
            msgHeader := {
                fromField := p_from,
                toField := p_to
            }
        } // End of template mw_TP_GM_PCSCF_INVITE_01
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_ECO_INVITE_01(
                                                                       template (present) SipUrl p_invite_uri := ?,
                                                                       template (present) From p_from := ?,
                                                                       template (present) To p_to := ?,
                                                                       template (present) Contact p_contact := ?
        ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
            msgHeader := {
                contact := p_contact
            }
        } // End of template mw_TP_GM_PCSCF_ECO_INVITE_01
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template (present) INVITE_Request mw_TP_GM_PCSCF_INVITE_02( // TODO To be enforced
                                                                   template (present) SipUrl p_invite_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_INVITE_02
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_ECO_INVITE_02( // TODO To be enforced
                                                                       template (present) SipUrl p_invite_uri := ?,
                                                                       template (present) From p_from := ?,
                                                                       template (present) To p_to := ?,
                                                                       template (present) Contact p_contact := ?
                                                                       ) modifies mw_TP_GM_PCSCF_ECO_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_ECO_INVITE_02
Bostjan Pintar's avatar
Bostjan Pintar committed
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_INVITE_03( // TODO To be enforced
                                                                   template (present) SipUrl p_invite_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_INVITE_03
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_INVITE_04( // TODO To be enforced
                                                                   template (present) SipUrl p_invite_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_INVITE_04
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_RE_INVITE_01( // TODO To be enforced
                                                                      template (present) SipUrl p_invite_uri := ?,
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?
                                                                      ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_RE_INVITE_01
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_RE_INVITE_02( // TODO To be enforced
                                                                      template (present) SipUrl p_invite_uri := ?,
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?
                                                                      ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_RE_INVITE_02
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_RE_INVITE_03( // TODO To be enforced
                                                                      template (present) SipUrl p_invite_uri := ?,
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?
                                                                      ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_RE_INVITE_03
        
        template (present) INVITE_Request mw_TP_GM_PCSCF_RE_INVITE_04( // TODO To be enforced
                                                                      template (present) SipUrl p_invite_uri := ?,
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?
                                                                      ) modifies mw_TP_GM_PCSCF_INVITE_01 := {
        } // End of template mw_TP_GM_PCSCF_RE_INVITE_014
        
        template (present) Response mw_TP_GM_PCSCF_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_GM_PCSCF_100Trying_01
        
        template (present) Response mw_TP_GM_PCSCF_100Trying_02(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_GM_PCSCF_100Trying_01 := {
        } // End of template mw_TP_GM_PCSCF_100Trying_02
        
        template (present) Response mw_TP_GM_PCSCF_100Trying_03(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_GM_PCSCF_100Trying_01 := {
        } // End of template mw_TP_GM_PCSCF_100Trying_03
        
        template (present) Response mw_TP_GM_PCSCF_100Trying_04(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_GM_PCSCF_100Trying_01 := {
        } // End of template mw_TP_GM_PCSCF_100Trying_04
        
        template (present) Response mw_TP_GM_PCSCF_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_GM_PCSCF_180Ringing_01
        
        template (present) Response mw_TP_GM_PCSCF_180Ringing_02(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_GM_PCSCF_180Ringing_01 := {
        } // End of template mw_TP_GM_PCSCF_180Ringing_02
        
        template (present) Response mw_TP_GM_PCSCF_180Ringing_03(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_GM_PCSCF_180Ringing_01 := {
        } // End of template mw_TP_GM_PCSCF_180Ringing_03
        
        template (present) Response mw_TP_GM_PCSCF_180Ringing_04(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_GM_PCSCF_180Ringing_01 := {
        } // End of template mw_TP_GM_PCSCF_180Ringing_04
        
        template (present) Response mw_TP_GM_PCSCF_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_GM_PCSCF_183SessionProgress_01
        
        template (present) Response mw_TP_GM_PCSCF_183SessionProgress_02(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_GM_PCSCF_183SessionProgress_01 := {
        } // End of template mw_TP_GM_PCSCF_183SessionProgress_02
        
        template (present) Response mw_TP_GM_PCSCF_183SessionProgress_03(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_GM_PCSCF_183SessionProgress_01 := {
        } // End of template mw_TP_GM_PCSCF_183SessionProgress_03
        
        template (present) Response mw_TP_GM_PCSCF_183SessionProgress_04(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_GM_PCSCF_183SessionProgress_01 := {
        } // End of template mw_TP_GM_PCSCF_183SessionProgress_04
        
        template (present) ACK_Request mw_TP_GM_PCSCF_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 := {
                cSeq := p_cSeq,
                callId := p_callId,
                fromField := p_from,
                toField := p_to,
                route := {
                    fieldName := ROUTE_E,
                    routeBody := {
                        *, 
                        ?,
                        *
                    }
                }
            }
        } // End of template mw_TP_GM_PCSCF_ACK_01
        
        template (present) ACK_Request mw_TP_GM_PCSCF_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_GM_PCSCF_ACK_01 := {
        } // End of template mw_TP_GM_PCSCF_ACK_02
        
        template (present) ACK_Request mw_TP_GM_PCSCF_ACK_03( // 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_GM_PCSCF_ACK_01 := {
        } // End of template mw_TP_GM_PCSCF_ACK_03
        
        template (present) ACK_Request mw_TP_GM_PCSCF_ACK_04( // 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_GM_PCSCF_ACK_01 := {
        } // End of template mw_TP_GM_PCSCF_ACK_04
        
        template (present) BYE_Request mw_TP_GM_PCSCF_BYE_01( // TODO To be enforced
                                                             template (present) CallId p_callId := ?,
                                                             template (present) CSeq p_cSeq := ?,
                                                             template (present) SipUrl p_bye_uri := ?,
                                                             template (present) From p_from := ?,
                                                             template (present) To p_to := ?
                                                             ) modifies mw_BYE_Request_Base := {
            requestLine := {
                method := BYE_E,
                requestUri := p_bye_uri, // @TODO
                sipVersion := c_sipNameVersion
            },
            msgHeader := {
                cSeq := p_cSeq,
                callId := p_callId,
                fromField := p_from,
                toField := p_to,
                route := {
                    fieldName := ROUTE_E,
                    routeBody := {
                        *, 
                        ?,
                        *
                    }
                }
            }
        } // End of template mw_TP_GM_PCSCF_BYE_01
        
        template (present) BYE_Request mw_TP_GM_PCSCF_BYE_02( // TODO To be enforced
                                                             template (present) CallId p_callId := ?,
                                                             template (present) CSeq p_cSeq := ?,
                                                             template (present) SipUrl p_bye_uri := ?,
                                                             template (present) From p_from := ?,
                                                             template (present) To p_to := ?
                                                             ) modifies mw_TP_GM_PCSCF_BYE_01 := {
        } // End of template mw_TP_GM_PCSCF_BYE_02
        
        template (present) BYE_Request mw_TP_GM_PCSCF_BYE_03( // TODO To be enforced
                                                             template (present) CallId p_callId := ?,
                                                             template (present) CSeq p_cSeq := ?,
                                                             template (present) SipUrl p_bye_uri := ?,
                                                             template (present) From p_from := ?,
                                                             template (present) To p_to := ?
                                                             ) modifies mw_TP_GM_PCSCF_BYE_01 := {
        } // End of template mw_TP_GM_PCSCF_BYE_03
        
        template (present) BYE_Request mw_TP_GM_PCSCF_BYE_04( // TODO To be enforced
                                                             template (present) CallId p_callId := ?,
                                                             template (present) CSeq p_cSeq := ?,
                                                             template (present) SipUrl p_bye_uri := ?,
                                                             template (present) From p_from := ?,
                                                             template (present) To p_to := ?
                                                             ) modifies mw_TP_GM_PCSCF_BYE_01 := {
        } // End of template mw_TP_GM_PCSCF_BYE_04
        
        template (present) BYE_Request mw_TP_GM_PCSCF_BYE_05( // TODO To be enforced
                                                             template (present) CallId p_callId := ?,
                                                             template (present) CSeq p_cSeq := ?,
                                                             template (present) SipUrl p_bye_uri := ?,
                                                             template (present) From p_from := ?,
                                                             template (present) To p_to := ?
                                                             ) modifies mw_TP_GM_PCSCF_BYE_01 := {
        } // End of template mw_TP_GM_PCSCF_BYE_05
        
        template (present) BYE_Request mw_TP_GM_PCSCF_BYE_06( // TODO To be enforced
                                                             template (present) CallId p_callId := ?,
                                                             template (present) CSeq p_cSeq := ?,
                                                             template (present) SipUrl p_bye_uri := ?,
                                                             template (present) From p_from := ?,
                                                             template (present) To p_to := ?
                                                             ) modifies mw_TP_GM_PCSCF_BYE_01 := {
        } // End of template mw_TP_GM_PCSCF_BYE_06
        
        template (present) CANCEL_Request mw_TP_GM_PCSCF_CANCEL_01( // TODO To be enforced
                                                                   template (present) CallId p_callId := ?,
                                                                   template (present) CSeq p_cSeq := ?,
                                                                   template (present) SipUrl p_cancel_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_CANCEL_Request_Base := {
            requestLine := {
                method := CANCEL_E,
                requestUri := p_cancel_uri, // @TODO
                sipVersion := c_sipNameVersion
            },
            msgHeader := {
                cSeq := p_cSeq,
                callId := p_callId,
                fromField := p_from,
                toField := p_to,
                route := {
                    fieldName := ROUTE_E,
                    routeBody := {
                        *, 
                        ?,
                        *
                    }
                }
            }
        } // End of template mw_TP_GM_PCSCF_CANCEL_01
        
        template (present) CANCEL_Request mw_TP_GM_PCSCF_CANCEL_02( // TODO To be enforced
                                                                   template (present) CallId p_callId := ?,
                                                                   template (present) CSeq p_cSeq := ?,
                                                                   template (present) SipUrl p_cancel_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_TP_GM_PCSCF_CANCEL_01 := {
        } // End of template mw_TP_GM_PCSCF_CANCEL_02
        
        template (present) CANCEL_Request mw_TP_GM_PCSCF_CANCEL_03( // TODO To be enforced
                                                                   template (present) CallId p_callId := ?,
                                                                   template (present) CSeq p_cSeq := ?,
                                                                   template (present) SipUrl p_cancel_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_TP_GM_PCSCF_CANCEL_01 := {
        } // End of template mw_TP_GM_PCSCF_CANCEL_03
        
        template (present) CANCEL_Request mw_TP_GM_PCSCF_CANCEL_04( // TODO To be enforced
                                                                   template (present) CallId p_callId := ?,
                                                                   template (present) CSeq p_cSeq := ?,
                                                                   template (present) SipUrl p_cancel_uri := ?,
                                                                   template (present) From p_from := ?,
                                                                   template (present) To p_to := ?
                                                                   ) modifies mw_TP_GM_PCSCF_CANCEL_01 := {
        } // End of template mw_TP_GM_PCSCF_CANCEL_04
        
    } // End of group g_gmA
    
} // End of module AtsImsIot_Templates_GM