AtsImsIot_Templates_MW.ttcn 75.2 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_MW {
    
    // LibCommon
    //import from LibCommon_BasicTypesAndValues all;
    //import from LibCommon_VerdictControl all;
    
    // libSip
    import from LibSip_SIPTypesAndValues all;
    import from LibSip_MessageBodyTypes all;
Bostjan Pintar's avatar
Bostjan Pintar committed
    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 g_pcscf {
        
        template(present) REGISTER_Request mw_TP_MW_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 := p_authorization,
                pAccessNetworkInfo := ?,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_PCSCF_REGISTER_01
        
        template(present) REGISTER_Request mw_TP_MW_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 := *,
                                                                          template (present) Contact p_contact := ?,
                                                                          template (present) Path p_path := ?,
                                                                          template (present) Warning p_warning := ?,
                                                                          template (present) PAccessNetworkInfo p_pAccessNetworkInfo := ?
        ) modifies mw_REGISTER_authorizedRequest_wo_securityheaders_IMS := {
            msgHeader := {
                contact            := p_contact,
                path               := p_path,
                warning            := p_warning,
                pAccessNetworkInfo := p_pAccessNetworkInfo
        } // End of template mw_TP_MW_PCSCF_ECO_REGISTER_01
Bostjan Pintar's avatar
Bostjan Pintar committed
        template(present) REGISTER_Request mw_TP_MW_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_MW_PCSCF_REGISTER_01 := {
        } // End of template mw_TP_MW_PCSCF_REGISTER_02
        
        template(present) REGISTER_Request mw_TP_MW_PCSCF_ECO_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 := *,
                                                                          template (present) Contact p_contact := ?,
                                                                          template (present) Path p_path := ?,
                                                                          template (present) Warning p_warning := ?,
                                                                          template (present) PAccessNetworkInfo p_pAccessNetworkInfo := ?,
                                                                          template (present) ServiceRoute p_serviceRoute := ?
        ) modifies mw_TP_MW_PCSCF_ECO_REGISTER_01 := {
            msgHeader := {
                serviceRoute := p_serviceRoute
            }
        } // End of template mw_TP_MW_PCSCF_ECO_REGISTER_02
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template(present) REGISTER_Request mw_TP_MW_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_MW_PCSCF_REGISTER_01 := { 
        } // End of template mw_TP_MW_PCSCF_REGISTER_04
        
        template(present) REGISTER_Request mw_TP_MW_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_MW_PCSCF_REGISTER_02 := { 
        } // End of template mw_TP_MW_PCSCF_REGISTER_05
        
        template(present) REGISTER_Request mw_TP_MW_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_MW_PCSCF_REGISTER_01 := {
            msgHeader := {
                expires := mw_Expires(p_expires)
            }
        } // End of template mw_TP_MW_PCSCF_REGISTER_07
        
        template(present) REGISTER_Request mw_TP_MW_PCSCF_REGISTER_09(
                                                                      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_MW_PCSCF_REGISTER_01 := {
            msgHeader := {
                expires := mw_Expires(p_expires)
            }
        } // End of template mw_TP_MW_PCSCF_REGISTER_09
        
        template(present) REGISTER_Request mw_TP_MW_PCSCF_REGISTER_10(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?,
                                                                      template (present) charstring p_expires := "0"
        ) modifies mw_TP_MW_PCSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path,
                expires := mw_Expires(p_expires)
            }
        } // End of template mw_TP_MW_PCSCF_REGISTER_10
        
        template (present) SUBSCRIBE_Request mw_TP_MW_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_MW_PCSCF_SUBSCRIBE_01

        template (present) SUBSCRIBE_Request mw_TP_MW_PCSCF_SUBSCRIBE_02(
                                                                         template (present) SipUrl p_subscribe_uri := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
        ) modifies mw_TP_MW_PCSCF_SUBSCRIBE_01 := {
        } // End of template mw_TP_MW_PCSCF_SUBSCRIBE_02

        template (present) NOTIFY_Request mw_TP_MW_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_MW_PCSCF_NOTIFY_01
        
        template (present) PRACK_Request mw_TP_MW_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_MW_PCSCF_PRACK_01
        
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01
        
        template (present) INVITE_Request mw_TP_MW_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 := ?,
                                                                       template (present) MessageBody p_messageBody := ?
                                                                       ) modifies mw_TP_MW_PCSCF_INVITE_01 := {
            msgHeader := {
                contact := p_contact
            },
            messageBody := p_messageBody
        }

Bostjan Pintar's avatar
Bostjan Pintar committed
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_INVITE_02
        
        template (present) INVITE_Request mw_TP_MW_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 := ?,
                                                                       template (present) MessageBody p_messageBody := ?,
                                                                       template (present) PAssertedID p_pAssertedID := ?
                                                                       ) modifies mw_TP_MW_PCSCF_ECO_INVITE_01 := {
            msgHeader := {
                pAssertedID := p_pAssertedID
            }
        } // End of template mw_TP_MW_PCSCF_ECO_INVITE_02
Bostjan Pintar's avatar
Bostjan Pintar committed
        
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_INVITE_03
        
        template (present) INVITE_Request mw_TP_MW_PCSCF_ECO_INVITE_03( // 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 := ?,
                                                                       template (present) MessageBody p_messageBody := ?,
                                                                       template (present) PAssertedID p_pAssertedID := ?
                                                                       ) modifies mw_TP_MW_PCSCF_ECO_INVITE_02 := {
        } // End of template mw_TP_MW_PCSCF_ECO_INVITE_03
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_INVITE_04
        
        template (present) INVITE_Request mw_TP_MW_PCSCF_ECO_INVITE_04( // 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 := ?,
                                                                       template (present) MessageBody p_messageBody := ?,
                                                                       template (present) PAssertedID p_pAssertedID := ?
                                                                       ) modifies mw_TP_MW_PCSCF_ECO_INVITE_02 := {
        } // End of template mw_TP_MW_PCSCF_ECO_INVITE_04
        
        template (present) INVITE_Request mw_TP_MW_PCSCF_ECO_INVITE_05( // 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 := ?,
                                                                       template (present) MessageBody p_messageBody := ?,
                                                                       template (present) PPreferredID p_pPreferredID := ?
                                                                       ) modifies mw_TP_MW_PCSCF_ECO_INVITE_01 := {
            msgHeader := {
                pPreferredID := p_pPreferredID
            }
        } // End of template mw_TP_MW_PCSCF_ECO_INVITE_04
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_RE_INVITE_01
        
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_RE_INVITE_02
        
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_RE_INVITE_03
        
        template (present) INVITE_Request mw_TP_MW_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_MW_PCSCF_INVITE_01 := {
        } // End of template mw_TP_MW_PCSCF_RE_INVITE_014
        
        template (present) Response mw_TP_MW_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_MW_PCSCF_100Trying_01
        
        template (present) Response mw_TP_MW_PCSCF_100Trying_02(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_MW_PCSCF_100Trying_01 := {
        } // End of template mw_TP_MW_PCSCF_100Trying_02
        
        template (present) Response mw_TP_MW_PCSCF_100Trying_03(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_MW_PCSCF_100Trying_01 := {
        } // End of template mw_TP_MW_PCSCF_100Trying_03
        
        template (present) Response mw_TP_MW_PCSCF_100Trying_04(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_MW_PCSCF_100Trying_01 := {
        } // End of template mw_TP_MW_PCSCF_100Trying_04
        
        template (present) Response mw_TP_MW_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_MW_PCSCF_180Ringing_01
        
        template (present) Response mw_TP_MW_PCSCF_180Ringing_02(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_MW_PCSCF_180Ringing_01 := {
        } // End of template mw_TP_MW_PCSCF_180Ringing_02
        
        template (present) Response mw_TP_MW_PCSCF_180Ringing_03(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_MW_PCSCF_180Ringing_01 := {
        } // End of template mw_TP_MW_PCSCF_180Ringing_03
        
        template (present) Response mw_TP_MW_PCSCF_180Ringing_04(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_MW_PCSCF_180Ringing_01 := {
        } // End of template mw_TP_MW_PCSCF_180Ringing_04
        
        template (present) Response mw_TP_MW_PCSCF_183SessionProgress_01(
                                                                         template (present) CSeq p_cSeq := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
                                                                         ) modifies mw_183SessionProgress_Base := {
Bostjan Pintar's avatar
Bostjan Pintar committed
            msgHeader := {
                cSeq      := p_cSeq,
                fromField := p_from,
                toField   := p_to
            }
        } // End of template mw_TP_MW_PCSCF_183SessionProgress_01
        
        template (present) Response mw_TP_MW_PCSCF_183SessionProgress_02(
                                                                         template (present) CSeq p_cSeq := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
                                                                         ) modifies mw_TP_MW_PCSCF_183SessionProgress_01 := {
Bostjan Pintar's avatar
Bostjan Pintar committed
        } // End of template mw_TP_MW_PCSCF_183SessionProgress_02
        
        template (present) Response mw_TP_MW_PCSCF_183SessionProgress_03(
                                                                         template (present) CSeq p_cSeq := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
                                                                         ) modifies mw_TP_MW_PCSCF_183SessionProgress_01 := {
Bostjan Pintar's avatar
Bostjan Pintar committed
        } // End of template mw_TP_MW_PCSCF_183SessionProgress_03
        
        template (present) Response mw_TP_MW_PCSCF_183SessionProgress_04(
                                                                         template (present) CSeq p_cSeq := ?,
                                                                         template (present) From p_from := ?,
                                                                         template (present) To p_to := ?
                                                                         ) modifies mw_TP_MW_PCSCF_183SessionProgress_01 := {
Bostjan Pintar's avatar
Bostjan Pintar committed
        } // End of template mw_TP_MW_PCSCF_183SessionProgress_04
        
        template (present) ACK_Request mw_TP_MW_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 := {
                callId := p_callId,
                fromField := p_from,
                toField := p_to,
                route := {
                    fieldName := ROUTE_E,
                    routeBody := {
                        *, 
                        ?,
                        *
                    }
                }
            }
        } // End of template mw_TP_MW_PCSCF_ACK_01
        
        template (present) ACK_Request mw_TP_MW_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_MW_PCSCF_ACK_01 := {
            msgHeader := {
                route := omit
            }
        } // End of template mw_TP_MW_PCSCF_ACK_02
        
        template (present) ACK_Request mw_TP_MW_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_MW_PCSCF_ACK_01 := {
        } // End of template mw_TP_MW_PCSCF_ACK_03
        
        template (present) ACK_Request mw_TP_MW_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_MW_PCSCF_ACK_01 := {
        } // End of template mw_TP_MW_PCSCF_ACK_04
        
        template (present) BYE_Request mw_TP_MW_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 := {
                callId := p_callId,
                fromField := p_from,
                toField := p_to,
                route := {
                    fieldName := ROUTE_E,
                    routeBody := {
                        *, 
                        ?,
                        *
                    }
                }
            }
        } // End of template mw_TP_MW_PCSCF_BYE_01
        
        template (present) BYE_Request mw_TP_MW_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_MW_PCSCF_BYE_01 := {
        } // End of template mw_TP_MW_PCSCF_BYE_02
        
        template (present) BYE_Request mw_TP_MW_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_MW_PCSCF_BYE_01 := {
        } // End of template mw_TP_MW_PCSCF_BYE_03
        
        template (present) BYE_Request mw_TP_MW_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_MW_PCSCF_BYE_01 := {
        } // End of template mw_TP_MW_PCSCF_BYE_04
        
        template (present) BYE_Request mw_TP_MW_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_MW_PCSCF_BYE_01 := {
        } // End of template mw_TP_MW_PCSCF_BYE_05
        
        template (present) BYE_Request mw_TP_MW_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_MW_PCSCF_BYE_01 := {
        } // End of template mw_TP_MW_PCSCF_BYE_06
        
        template (present) CANCEL_Request mw_TP_MW_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 := {
                callId := p_callId,
                fromField := p_from,
                toField := p_to,
                route := {
                    fieldName := ROUTE_E,
                    routeBody := {
                        *, 
                        ?,
                        *
                    }
                }
            }
        } // End of template mw_TP_MW_PCSCF_CANCEL_01
        
        template (present) CANCEL_Request mw_TP_MW_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_MW_PCSCF_CANCEL_01 := {
        } // End of template mw_TP_MW_PCSCF_CANCEL_02
        
        template (present) CANCEL_Request mw_TP_MW_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_MW_PCSCF_CANCEL_01 := {
        } // End of template mw_TP_MW_PCSCF_CANCEL_03
        
        template (present) CANCEL_Request mw_TP_MW_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_MW_PCSCF_CANCEL_01 := {
        } // End of template mw_TP_MW_PCSCF_CANCEL_04
        
    } // End of group g_pcscf
    
    group g_scscf {
        
        template(present) REGISTER_Request mw_TP_MW_SCSCF_REGISTER_01(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_REGISTER_authorizedRequest_wo_securityheaders_IMS := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_SCSCF_REGISTER_01
        
        template(present) REGISTER_Request mw_TP_MW_SCSCF_REGISTER_02(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_TP_MW_SCSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_SCSCF_REGISTER_02
        
    } // End of group g_scscf
    
    group g_icscf {
        
        template(present) REGISTER_Request mw_TP_MW_ICSCF_REGISTER_01(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_REGISTER_authorizedRequest_wo_securityheaders_IMS := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_ICSCF_REGISTER_01
        
        template(present) REGISTER_Request mw_TP_MW_ICSCF_ECO_REGISTER_01(
                                                                          template (present) From p_from := ?,
                                                                          template (present) To p_to := ?, 
                                                                          template (present) Authorization p_authorization := ?,
                                                                          template (present) Path p_Path := ?,
                                                                          template (present) PChargingVector p_pChargingVector := ?,
                                                                          template (present) PVisitedNetworkID p_pVisitedNetworkID := ?,
                                                                          template (present) Contact p_contact := ?
        ) modifies mw_TP_MW_ICSCF_REGISTER_01 := {
            msgHeader := {
                contact := p_contact
            }
        } // End of template mw_TP_MW_ICSCF_ECO_REGISTER_01
        
Bostjan Pintar's avatar
Bostjan Pintar committed
        template(present) REGISTER_Request mw_TP_MW_ICSCF_REGISTER_02(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_TP_MW_ICSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_ICSCF_REGISTER_02
        
        template(present) REGISTER_Request mw_TP_MW_ICSCF_REGISTER_03(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_TP_MW_ICSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_ICSCF_REGISTER_03
        
         template(present) REGISTER_Request mw_TP_MW_ICSCF_ECO_REGISTER_03(
                                                                           template (present) From p_from := ?,
                                                                           template (present) To p_to := ?, 
                                                                           template (present) Authorization p_authorization := ?,
                                                                           template (present) Path p_Path := ?,
                                                                           template (present) PChargingVector p_pChargingVector := ?,
                                                                           template (present) PVisitedNetworkID p_pVisitedNetworkID := ?,
                                                                           template (present) Contact p_contact := ?
        ) modifies mw_TP_MW_ICSCF_ECO_REGISTER_01 := {
        } // End of template mw_TP_MW_ICSCF_ECO_REGISTER_03
        
       template(present) REGISTER_Request mw_TP_MW_ICSCF_REGISTER_04(
Bostjan Pintar's avatar
Bostjan Pintar committed
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_TP_MW_ICSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_ICSCF_REGISTER_04
        
        template(present) REGISTER_Request mw_TP_MW_ICSCF_REGISTER_05(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?, 
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) Path p_Path := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?
        ) modifies mw_TP_MW_ICSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                path := p_Path,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path
            }
        } // End of template mw_TP_MW_ICSCF_REGISTER_05
        
        template(present) REGISTER_Request mw_TP_MW_ICSCF_REGISTER_07(
                                                                      template (present) From p_from := ?,
                                                                      template (present) To p_to := ?,
                                                                      template (present) Authorization p_authorization := ?,
                                                                      template (present) PChargingVector p_pChargingVector := ?,
                                                                      template (present) PVisitedNetworkID p_pVisitedNetworkID := ?,
                                                                      template (present) charstring p_expires := "0"
        ) modifies mw_TP_MW_PCSCF_REGISTER_01 := {
            msgHeader := {
                fromField := p_from,
                toField := p_to,
                authorization := p_authorization,
                pAccessNetworkInfo := ?,
                pChargingVector := p_pChargingVector,
                pVisitedNetworkID := p_pVisitedNetworkID,
                require := mw_require_path,
                expires := mw_Expires(p_expires)
            }
        } // End of template mw_TP_MW_PCSCF_REGISTER_07
        
    } // End of group g_icscf
    
    group g_ecscf {

        template (present) INVITE_Request mw_TP_MW_ECSCF_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_MW_ECSCF_INVITE_01
        
        template (present) INVITE_Request mw_TP_MW_ECSCF_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_MW_ECSCF_INVITE_01 := {
        } // End of template mw_TP_MW_ECSCF_INVITE_02

        
        template (present) INVITE_Request mw_TP_MW_ECSCF_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_MW_ECSCF_INVITE_01 := {
        } // End of template mw_TP_MW_ECSCF_RE_INVITE_01
        
        template (present) INVITE_Request mw_TP_MW_ECSCF_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_MW_ECSCF_INVITE_01 := {
        } // End of template mw_TP_MW_ECSCF_RE_INVITE_02
        
      	template(present)  INVITE_Request mw_TP_MW_PCSCF_NGC_INVITE_01 (template (present) SipUrl p_invite_uri := ?,
																	   template (present) From p_from := ?,
																	   template (present) To p_to := ?,
																	   template (present) Contact p_contact := ?,
																	   template (present) MessageBody p_messageBody := ?,
																	   template (present) PPreferredID p_pPreferredID := ?,
																	   template (present) Accept p_accept := ?,
																	   template (present) RecvInfo p_recvInfo := ?
																)
		modifies mw_TP_MW_ECSCF_INVITE_02 := {
		}
		
		template(present)  INFO_Request mw_TP_MW_PCSCF_NGC_INFO_01 (																	   
                    												   template CallId p_callId := omit,
                    												   template (present) SipUrl p_invite_uri := ?,
																	   template (present) From p_from := ?,
																	   template (present) To p_to := ?,
																	   template (present) Contact p_contact := ?,
																	   template (present) MessageBody p_messageBody := ?,
																	   template (present) PPreferredID p_pPreferredID := ?,
																	   template (present) Accept p_accept := ?,
																	   template (present) RecvInfo p_recvInfo := ?
																	   )
		modifies mw_INFO_Dummy := {
            requestLine := {
                requestUri := p_invite_uri // @TODO
            },
            msgHeader := {
				accept       := p_accept,
                callId       := p_callId,
                contact      := p_contact,
                fromField    := p_from,
                pPreferredID := p_pPreferredID,
				recvInfo     := p_recvInfo,
                toField      := p_to
            },
            messageBody := p_messageBody
        template (present) Response mw_TP_MW_ECSCF_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_MW_ECSCF_100Trying_01
        
        template (present) Response mw_TP_MW_ECSCF_100Trying_02(
                                                                template (present) CSeq p_cSeq := ?,
                                                                template (present) From p_from := ?,
                                                                template (present) To p_to := ?
                                                                ) modifies mw_TP_MW_ECSCF_100Trying_01 := {
        } // End of template mw_TP_MW_ECSCF_100Trying_02
        
        template (present) Response mw_TP_MW_ECSCF_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_MW_ECSCF_180Ringing_01
        
        template (present) Response mw_TP_MW_ECSCF_180Ringing_02(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_MW_ECSCF_180Ringing_01 := {
        } // End of template mw_TP_MW_ECSCF_180Ringing_02
        
        template (present) Response mw_TP_MW_ECSCF_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_MW_ECSCF_183SessionProgress_01
        
        template (present) Response mw_TP_MW_ECSCF_183SessionProgress_02(
                                                                 template (present) CSeq p_cSeq := ?,
                                                                 template (present) From p_from := ?,
                                                                 template (present) To p_to := ?
                                                                 ) modifies mw_TP_MW_ECSCF_183SessionProgress_01 := {
        } // End of template mw_TP_MW_ECSCF_183SessionProgress_02
        
        template (present) ACK_Request mw_TP_MW_ECSCF_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 := {
                        *, 
                        ?,
                        *
                    }
                }
            }