DiameterRfRo_Templates.ttcn 432 KB
Newer Older
             */
            template (present) Event_AVP mw_event_AVP(
                                                      template (present) UTF8String  p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_event_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_event_AVP
            
            /**
             * @desc The Content-Type send template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data     Holds the media type (e.g. application/sdp, text/html) of the message-body, as described in RFC 3261
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.46  Content-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Content_Type_AVP mw_content_Type_AVP(
                                                                    template (present) UTF8String  p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_content_Type_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_content_Type_AVP
            
            /**
             * @desc The Content-Length send template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data     Holds the size of the message-body, as described in RFC 3261
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.44  Content-Length AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Content_Length_AVP mw_content_Length_AVP(
                                                                        template (present) UInt32  p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_content_Length_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_content_Length_AVP
            
            /**
             * @desc The Content-Disposition receive template 
             * @param p_aVP_Data     Indicates how the message body or a message body part is to be interpreted (e.g. session, render), as described in RFC 3261 
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.43  Content-Disposition AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Content_Disposition_AVP mw_content_Disposition_AVP(
                                                                                  template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_content_Disposition_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_content_Disposition_AVP
            
            /**
             * @desc The Role-Of-Node receive template 
             * @param p_aVP_Data     Specifies whether the IMS node (except the MRFC) is serving the calling or the called party
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.177 Role-Of-Node AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Role_Of_Node_AVP mw_role_Of_Node_AVP(
                                                                    template (present) Role_Of_Node p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_role_Of_Node_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_role_Of_Node_AVP
            
            /**
             * @desc The User-Session-Id receive template 
             * @param p_aVP_Data     Holds the session identifier
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.242 User-Session-Id AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) User_Session_Id_AVP mw_user_Session_Id_AVP(
                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_user_Session_Id_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_user_Session_Id_AVP
            
            /**
             * @desc The Calling-Party-Address receive template 
             * @param p_aVP_Data     Holds the session identifier
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.33  Calling-Party-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Calling_Party_Address_AVP mw_calling_Party_Address_AVP(
                                                                                      template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_calling_Party_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_calling_Party_Address_AVP
            
            /**
             * @desc The Called-Party-Address receive template 
             * @param p_aVP_Data     Holds the session identifier
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.32  Called-Party-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Called_Party_Address_AVP mw_called_Party_Address_AVP(
                                                                                    template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_called_Party_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_called_Party_Address_AVP
            
            /**
             * @desc The Time-Stamps receive template 
             * @param p_sip_Request_Timestamp            TODO
             * @param p_sip_Response_Timestamp           TODO
             * @param p_sip_Request_Timestamp_Fraction   TODO
             * @param p_sip_Response_Timestamp_Fraction  TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.231 Time-Stamps AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template Time_Stamps_AVP mw_time_Stamps_AVP(
                                                        template SIP_Request_Timestamp_AVP           p_sip_Request_Timestamp := *,
                                                        template SIP_Response_Timestamp_AVP          p_sip_Response_Timestamp := *,
                                                        template SIP_Request_Timestamp_Fraction_AVP  p_sip_Request_Timestamp_Fraction := *,
                                                        template SIP_Response_Timestamp_Fraction_AVP p_sip_Response_Timestamp_Fraction := *
            ) := {
                aVP_Header                      := mw_aVP_HeaderVid_Mbit1(c_time_Stamps_AVP_Code, ?, c_vendId3gpp),
                sip_Request_Timestamp           := p_sip_Request_Timestamp,
                sip_Response_Timestamp          := p_sip_Response_Timestamp,
                sip_Request_Timestamp_Fraction  := p_sip_Request_Timestamp_Fraction,
                sip_Response_Timestamp_Fraction := p_sip_Response_Timestamp_Fraction
            } // End of template mw_time_Stamps_AVP
            
            /**
             * @desc The SIP-Request-Timestamp receive template 
             * @param p_aVP_Data     Holds the aVP_Data in UTC format of the SIP request 
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.202 SIP-Request-Timestamp AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SIP_Request_Timestamp_AVP mw_sip_Request_Timestamp_AVP(
                                                                                      template (present) Time p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sip_Request_Timestamp_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_sip_Request_Timestamp_AVP
            
            /**
             * @desc The SIP-Response-Timestamp receive template 
             * @param p_aVP_Data     Holds the aVP_Data in UTC format of the SIP response 
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause SIP-Response-Timestamp
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SIP_Response_Timestamp_AVP mw_sip_Response_Timestamp_AVP(
                                                                                        template (present) Time p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sip_Response_Timestamp_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_sip_Response_Timestamp_AVP
            
            /**
             * @desc The Application-Server receive template 
             * @param p_aVP_Data     Holds the SIP URL(s) of the AS(s) addressed during the session
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.23  Application-Server AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Application_Server_AVP mw_application_Server_AVP(
                                                                                template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_application_Server_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_application_Server_AVP
            
            /**
             * @desc The Application-provided-Called-Party-Address receive template 
             * @param p_aVP_Data     Holds the called party number (SIP URI, E.164), if it is determined by an application server
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.22  Application-provided-Called-Party-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Application_provided_Called_Party_Address_AVP mw_application_provided_Called_Party_Address_AVP(
                                                                                                                              template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_application_provided_Called_Party_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_application_provided_Called_Party_Address_AVP
            
            /**
             * @desc The Inter-Operator-Identifier receive template 
             * @param p_originating_IOI  TODO
             * @param p_terminating_IOI  TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.80  Inter-Operator-Identifier AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template Inter_Operator_Identifier_AVP mw_inter_Operator_Identifier_AVP(
                                                                                    template Originating_IOI_AVP p_originating_IOI := *,
                                                                                    template Terminating_IOI_AVP p_terminating_IOI := *
            ) := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_inter_Operator_Identifier_AVP_Code, ?, c_vendId3gpp),
                originating_IOI := p_originating_IOI,
                terminating_IOI := p_terminating_IOI
            } // End of template mw_inter_Operator_Identifier_AVP
            
            /**
             * @desc The Originating-IOI receive template 
             * @param p_aVP_Data     holds the Inter Operator Identifier (IOI) for the originating network as generated by the IMS network element which takes responsibility for populating this parameter [404] in a SIP request as described in TS 24.229 [202]
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.123 Originating-IOI AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Originating_IOI_AVP mw_originating_IOI_AVP(
                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_originating_IOI_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_originating_IOI_AVP
            
            /**
             * @desc The Terminating-IOI send template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data     Holds the Inter Operator Identifier (IOI) for the terminating network as generated by the IMS network element which takes responsibility for populating this parameter [404] in a SIP response as described in TS 24.229 [202]
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.225 TTerminatingerminating-IOI AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Terminating_IOI_AVP mw_terminating_IOI_AVP(
                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_terminating_IOI_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_terminating_IOI_AVP
            
            /**
             * @desc The IMS-Charging-Identifier send template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data     Holds the IMS Charging Identifier (ICID) as generated by a IMS node for a SIP session and described in TS 24.229 [204]
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.75  IMS-Charging-Identifier AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) IMS_Charging_Identifier_AVP mw_ims_Charging_Identifier_AVP(
                                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_ims_Charging_Identifier_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_ims_Charging_Identifier_AVP
            
            /**
             * @desc The SDP-Session-Description receive template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data     Holds the content of  the SDP line (i=, c=, b=, k=, a=, etc.) in the session description, as described in RFC 4566  
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.184 SDP-Session-Description AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SDP_Session_Description_AVP mw_sdp_Session_Description_AVP(
                                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sdp_Session_Description_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_sdp_Session_Description_AVP
            
            /**
             * @desc The SDP-Media-Name receive template 
             * @param p_aVP_Data    Holds the content of  SDP lines (i=, c=, b=, k=, a=, etc.) related to a media description, as described in RFC 4566 
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.182 SDP-Media-Name AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SDP_Media_Name_AVP mw_sdp_Media_Name_AVP(
                                                                        template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sdp_Media_Name_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_sdp_Media_Name_AVP
            
            /**
             * @desc The SDP-Media-Description receive template 
             * @param p_aVP_Data    Holds the content of  SDP lines (i=, c=, b=, k=, a=, etc.) related to a media description, as described in RFC 4566 
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.181 SDP-Media-Description AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SDP_Media_Description_AVP mw_sdp_Media_Description_AVP(
                                                                                      template (present) UTF8String p_aVP_Data
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sdp_Media_Description_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_sdp_Media_Description_AVP
            
            /**
             * @desc The CG-Address AVP receive template 
             * @param p_aVP_Data    Holds the IP-address of the charging gateway
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.36  CG-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) CG_Address_AVP mw_cg_Address_AVP(
                                                                template (present) Address p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_cg_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_cg_Address_AVP
            
            /**
             * @desc The Incoming-Trunk-Group-ID receive template 
             * @param p_aVP_Data     Identifies the incoming PSTN leg
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.79  Incoming-Trunk-Group-ID AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Incoming_Trunk_Group_ID_AVP mw_incoming_Trunk_Group_ID_AVP(
                                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_incoming_Trunk_Group_ID_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_incoming_Trunk_Group_ID_AVP
            
            /**
             * @desc The Outgoing-Trunk-Group-ID receive template 
             * @param p_aVP_Data     Identifies the outgoing PSTN leg
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.129  Outgoing-Trunk-Group-ID AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Outgoing_Trunk_Group_ID_AVP mw_outgoing_Trunk_Group_ID_AVP(
                                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_outgoing_Trunk_Group_ID_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_outgoing_Trunk_Group_ID_AVP
            
            /**
             * @desc The Bearer-Service receive template 
             * @param p_aVP_Data     Holds the used bearer service for the PSTN leg
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.30  Bearer-Service AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
            template (present) Bearer_Service_AVP mw_bearer_Service_AVP(
                                                                        template (present) octetstring p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_bearer_Service_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_bearer_Service_AVP
             * @desc The Service-ID send template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data     Identifies the service the MRFC is hosting or AoC service
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.190 Service-ID AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
            template (present) Service_Id_AVP mw_service_Id_AVP(
                                                                template (present) UTF8String p_aVP_Data := ?
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_service_Id_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_service_Id_AVP
            /**
             * @desc The Associated-URI receive template 
             * @param p_aVP_Data     Holds a non-barred public user identity (SIP URI or TEL URI) associated to the the public user identity under registration
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.26  Associated-URI AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Associated_URI_AVP mw_associated_URI_AVP(
                                                                        template (present) UTF8String p_aVP_Data := ?
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_bearer_Service_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_associated_URI_AVP
             * @desc The Cause-Code receive template 
             * @param p_aVP_Data        Includes the cause code value from IMS node
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.35  Cause-Code AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
            template (present) Cause_Code_AVP mw_cause_Code_AVP(
                                                                template (present) UInt32 p_aVP_Data := ?
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_cause_Code_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_cause_Code_AVP
             * @desc The Application-Server-Information send template 
             * @param p_aVP_Data     Holds the used bearer service for the PSTN leg
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.24  Application-Server-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
            template (present) Application_Server_Information_AVP mw_application_Server_Information_AVP(
                                                                                                        template (present) Application_Server_AVP                           p_application_Server := ?,
                                                                                                        template (present) Application_provided_Called_Party_Address_AVP    p_application_Provided_Called_Party_Address := ?
                aVP_Header                                  := mw_aVP_HeaderVid_Mbit1(c_application_Server_Information_AVP_Code, ?, c_vendId3gpp),
                application_Server                          := p_application_Server,
                application_Provided_Called_Party_Address   := { p_application_Provided_Called_Party_Address } 
            } // End of template mw_application_Server_Information_AVP
             * @desc The Node-Functionality receive template 
             * @param p_aVP_Data     Holds the functionality identifier of the node
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.113 Node-Functionality AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Node_Functionality_AVP mw_node_Functionality_AVP(
                                                                                template (present) Node_Functionality p_aVP_Data := ?
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_node_Functionality_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_node_Functionality_AVP
            
            /**
             * @desc The GGSN-Address receive template 
             * @param p_aVP_Data    Holds the IP-address of the P-GW that generated the GPRS/EPC Charging ID
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.68 GGSN-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) GGSN_Address_AVP mw_ggsn_Address_AVP(
                                                                    template (present) Address p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_ggsn_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_ggsn_Address_AVP
            
            /**
             * @desc The Service-Specific-Data receive template
             * @param p_aVP_Data Holds the value of the Service-Specific-Data
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.194 Service-Specific-Data AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Service_Specific_Data_AVP mw_service_Specific_Data_AVP(
                                                                                      template (present) UTF8String p_aVP_Data
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_service_Specific_Data_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_service_Specific_Data_AVP
            
            /**
             * @desc The Originator receive template
             * @param p_aVP_Data     Indicates the originating party of the message body
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.124 Originator AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Originator_AVP mw_originator_AVP(
                                                                template (present) Originator p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_service_Specific_Data_AVP_Code, 4, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_originator_AVP
            
            /**
             * @desc The PS-Append-Free-Format-Data receive template 
             * @param p_aVP_Data     Indicates if the information sent in the PS-Free-Format-Data AVP must be appended to the PS-free-format-data stored for the online-session
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.155 PS-Append-Free-Format-Data AVP 
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) PS_Append_Free_Format_Data_AVP mw_ps_Append_Free_Format_Data_AVP(
                                                                                                template (present) PS_Append_Free_Format_Data p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_ps_Append_Free_Format_Data_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_ps_Append_Free_Format_Data_AVP
            
            /**
             * @desc The Time-Quota-Threshold receive template 
             * @param p_aVP_Data     Contains a threshold value in seconds
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.229 Time-Quota-Threshold AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Time_Quota_Threshold_AVP mw_time_Quota_Threshold_AVP(
                                                                                    template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_time_Quota_Threshold_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_time_Quota_Threshold_AVP
            
            /**
             * @desc The Volume-Quota-Threshold receive template 
             * @member aVP_Data     Holds the session identifier
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.243 Volume-Quota-Threshold AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Volume_Quota_Threshold_AVP mw_volume_Quota_Threshold_AVP(
                                                                                        template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_volume_Quota_Threshold_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_volume_Quota_Threshold_AVP
            
            /**
             * @desc The Trigger-Type AVP receive template 
             * @member aVP_Header   Header AVP
             * @member aVP_Data     Holds the session identifier
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.236 Trigger-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Trigger_Type_AVP mw_trigger_Type_AVP(
                                                                    template (present) Trigger_Type p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_trigger_Type_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_trigger_Type_AVP
            
            /**
             * @desc The Quota-Holding-Time receive template 
             * @member aVP_Header   Header AVP
             * @member aVP_Data     Contains the quota holding time in seconds
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.160 Quota-Holding-Time AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Quota_Holding_Time_AVP mw_quota_Holding_Time_AVP(
                                                                                template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_quota_Holding_Time_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_quota_Holding_Time_AVP
            
            /**
             * @desc The Quota-Holding-Time receive template 
             * @member aVP_Header   Header AVP
             * @member aVP_Data     Specifies the reason for usage reporting for one or more types of quota for a particular category
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.175 Reporting-Reason AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Reporting_Reason_AVP mw_reporting_Reason_AVP(
                                                                            template (present) Reporting_Reason p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_reporting_Reason_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template m _reporting_Reason_AVP
            
            /**
             * @desc The PS-Furnish-Charging-Information receive template 
             * @param p_aVP_Data     Holds online charging session specific data
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.156 PS-Free-Format-Data AVP 
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) PS_Free_Format_Data_AVP mw_ps_Free_Format_aVP_Data(
                                                                                  template (present) octetstring p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_ps_Free_Format_Data_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template PS_Free_Format_Data_AVP
            
            /**
             * @desc The PS-Furnish-Charging-Information receive template
             * @param p_threeGPP_Charging_Id        TODO
             * @param p_ps_Append_Free_Format_Data  TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.157 PS-Furnish-Charging-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) PS_Furnish_Charging_Information_AVP mw_ps_Furnish_Charging_Information_AVP(
                                                                                                          template (present) ThreeGPP_Charging_Id_AVP p_threeGPP_Charging_Id := ?,
                                                                                                          template (present) PS_Free_Format_Data_AVP  p_ps_Free_Format_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_ps_Furnish_Charging_Information_AVP_Code, ?, c_vendId3gpp),
                threeGPP_Charging_Id := p_threeGPP_Charging_Id,
                ps_Free_Format_Data := p_ps_Free_Format_Data,
                ps_Append_Free_Format_Data := *
            } // End of template mw_ps_Furnish_Charging_Information_AVP
            
            /**
             * @desc The Quota-Consumption-Time receive template 
             * @param p_aVP_Data   Contains an idle traffic aVP_Data aVP_Data in seconds
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.159 Quota-Consumption-Time AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Quota_Consumption_Time_AVP mw_quota_Consumption_Time_AVP(
                                                                                        template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_quota_Consumption_Time_AVP_Code, 4, c_vendId3gpp),
                aVP_Data   := p_aVP_Data
            } // End of template mw_quota_Consumption_Time_AVP
            
            /**
             * @desc The Media-Initiator-Flag receive template 
             * @param p_aVP_Header   Header AVP
             * @param p_aVP_Data    Contains an idle traffic aVP_Data aVP_Data in seconds
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.101 Media-Initiator-Flag AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Media_Initiator_Flag_AVP mw_media_Initiator_Flag_AVP(
                                                                                    template (present) Media_Initiator_Flag p_aVP_Data
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_media_Initiator_Flag_AVP_Code, 4, c_vendId3gpp),
                aVP_Data     := p_aVP_Data
            } // End of template mw_media_Initiator_Flag_AVP
            
            /**
             * @desc The Expires receive template
             * @param p_aVP_Data      Holds the content of the "Expires" header
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.66  Expires AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Expires_AVP mw_expires_AVP(
                                                          template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_expires_AVP_Code, 4, c_vendId3gpp),
                aVP_Data     := p_aVP_Data
            } // End of template mw_expires_AVP
            
            /**
             * @desc The Message-Body receive template
             * @param p_content_Type    TODO
             * @param p_content_Length  TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.103 Message-Body AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Message_Body_AVP mw_message_Body_AVP(
                                                                    template (present) Content_Type_AVP     p_content_Type := ?,
                                                                    template (present) Content_Length_AVP   p_content_Length := ?
            ) := {
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_message_Body_AVP_Code, ?, c_vendId3gpp),
                content_Type        := p_content_Type,
                content_Length      := p_content_Length,
                content_Disposition := *,
                originator          := *
            } // End of template mw_message_Body_AVP
            
            /**
             * @desc The WAG-Address receive template
             * @param p_aVP_Data     Address and contains the WAG IP address
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.244 WAG-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) WAG_Address_AVP mw_wag_Address_AVP(
                                                                  template (present) Address p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_wag_PLMN_Ids_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_wag_Address_AVP
            
            /**
             * @desc The WAG-PLMN-Ids receive template
             * @param p_aVP_Data     Contains the WAG PLMN id (MCC and MNC)
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.245 WAG-PLMN-Id AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) WAG_PLMN_Id_AVP mw_wag_PLMN_Ids_AVP(
                                                                   template (present) octetstring p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_wag_PLMN_Ids_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_wag_PLMN_Ids_AVP
            
            /**
             * @desc The WLAN-Radio-Container receive template 
             * @param p_operator_Name        TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.247 WLAN-Radio-Container AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) WLAN_Radio_Container_AVP mw_wlan_Radio_Container_AVP(
                                                                                    template (present) Operator_Name_AVP p_operator_Name := ?
            ) := {
garciay's avatar
garciay committed
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_wlan_Radio_Container_AVP_Code, ?, c_vendId3gpp),
                operator_Name           := p_operator_Name,
                location_Data           := *,
                location_Information    := *,
                wlan_Technology         := *
            } // End of template mw_wlan_Radio_Container_AVP
            
            /**
             * @desc The PDG-Address receive template 
             * @param p_aVP_Data     Address and contains the UE"s local IP address
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.250 WLAN-UE-Local-IPAddress AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) WLAN_UE_Local_IPAddress_AVP mw_wlan_UE_Local_IPAddress_AVP(
                                                                                          template (present) Address p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_wlan_UE_Local_IPAddress_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_wlan_UE_Local_IPAddress_AVP
            
            /**
             * @desc The PDG-Address receive template 
             * @param p_aVP_Data     Address and contains the PDG IP address
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.244 PDG-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) PDG_Address_AVP mw_pdg_Address_AVP(
                                                                  template (present) Address p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_pdg_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_pdg_Address_AVP
            
            /**
             * @desc The PDG-Charging-Id receive template 
             * @param p_aVP_Data     Contains the charging identifier generated by the PDG for the tunnel
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.135 PDG-Charging-Id AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) PDG_Charging_Id_AVP mw_pdg_Charging_Id_AVP(
                                                                          template (present) UInt32 p_aVP_Data := ?
            ) :=  {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_pdg_Charging_Id_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_pdg_Charging_Id_AVP
            
            /**
             * @desc Unit-Quota-Threshold receive template 
             * @param p_aVP_Data   Threshold value in service specific units
             */
            template (present) Unit_Quota_Threshold_AVP mw_unit_Quota_Threshold_AVP(
                                                                                    template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := m_aVP_HeaderVid_Mbit1(c_unit_Quota_Threshold_AVP_Code, 4, c_vendId3gpp),
                aVP_Data   := p_aVP_Data
            } // End of template mw_unit_Quota_Threshold_AVP
            
            /**
             * @desc The Called-Asserted-Identity send template 
             * @param p_aVP_Data       Holds the address (Public User ID: SIP URI, E.164, etc.) of the finally asserted called party
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.31  Called-Asserted-Identity AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Called_Asserted_Identity_AVP mw_called_Asserted_Identity_AVP(
                                                                                            template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_called_Asserted_Identity_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_called_Asserted_Identity_AVP
            
            /**
             * @desc The Requested-Party-Address receive template 
             * @param p_aVP_Data    Holds the address (SIP URI or TEL URI) of the party (Public User ID or Public Service ID) to whom the SIP transaction was originally posted
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.176 Requested-Party-ARequested-Party-AddressRequested-Party-Addressddress AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Requested_Party_Address_AVP mw_requested_Party_Address_AVP(
                                                                                          template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_requested_Party_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_requested_Party_Address_AVP
            
garciay's avatar
garciay committed
            /**
             * @desc Service-Generic-Information send template 
             * @param p_application_Server_ID    TODO
             * @param p_application_Service_Type TODO
             * @param p_application_Session_ID   TODO
             * @param p_delivery_Status          TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.191 Service-Generic-Information AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             * @see OMA-DDS-Charging_Data-V1_0-20110201-A
             */
            template Service_Generic_Information_AVP mw_service_Generic_Information_AVP(
                                                                                        template Application_Server_ID_AVP      p_application_Server_ID := *,
                                                                                        template Application_Service_Type_AVP   p_application_Service_Type := *,
                                                                                        template Application_Session_ID_AVP     p_application_Session_ID := *,
                                                                                        template Delivery_Status_AVP            p_delivery_Status := *
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_service_Generic_Information_AVP_Code, ?, c_vendId3gpp),
                application_Server_ID       := p_application_Server_ID,
                application_Service_Type    := p_application_Service_Type,
                application_Session_ID      := p_application_Session_ID,
                delivery_Status             := p_delivery_Status
            } // End of template mw_service_Generic_Information_AVP
            
             * @desc Service-Specific-Type receive template 
             * @param p_aVP_Data       Holds the type of the Service-Specific-Data
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.196 Service-Specific-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Service_Specific_Type_AVP mw_service_Specific_Type_AVP(
                                                                                      template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_service_Specific_Type_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_service_Specific_Type_AVP
            
            /**
             * @desc The PDP-Context-Type receive template 
             * @param p_reason       Contains the reason for closing a container and the addition of a new container. The AVP may take the following values
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.138 PDP-Context-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) PDP_Context_Type_AVP mw_pdp_Context_Type_AVP(
                                                                            template (present) PDP_Context_Type p_reason := ?
            ) :={
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_pdp_Context_Type_AVP_Code, 4, c_vendId3gpp),
                reason      := p_reason
            } // End of template mw_pdp_Context_Type_AVP
            
garciay's avatar
garciay committed
             * @desc The Trigger receieve template 
             * @param p_trigger_Type Holds the trigger types
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.235 Trigger AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Trigger_AVP mw_trigger_AVP(
                                                          template (present) Trigger_Type_AVP p_trigger_Type := ?
            ) := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_trigger_AVP_Code, 4, c_vendId3gpp),
                trigger_Type    := { p_trigger_Type }
            } // End of template mw_trigger_AVP
            
garciay's avatar
garciay committed
            /**
             * @desc The Trigger receieve template without trigger type
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.235 Trigger AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Trigger_AVP mw_reseted_trigger_AVP := {
                aVP_Header      := mw_aVP_HeaderVid_Mbit1(c_trigger_AVP_Code, 4, c_vendId3gpp),
                trigger_Type    := { }
            } // End of template mw_reseted_trigger_AVP
            
             * @desc Base-Time-Interval AVP receive template 
             * @param p_reason  contains the length of the base aVP_Data interval, for controlling the consumption of aVP_Data quota, in seconds
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.29  Base-Time-Interval AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Base_Time_Interval_AVP mw_base_Time_Interval_AVP(
                                                                                template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_base_Time_Interval_AVP_Code, 4, c_vendId3gpp),
                aVP_Data        := p_aVP_Data
            } // End of template mw_base_Time_Interval_AVP
            
            /**
             * @desc The Time-Quota-Mechanism receive template 
             * @param p_time_Quota_Type      TODO
             * @param p_base_Time_Interval   TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.228 Time-Quota-Mechanism
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template Time_Quota_Mechanism_AVP mw_time_Quota_Mechanism_AVP(
                                                                          template Time_Quota_Type_AVP    p_time_Quota_Type := *,
                                                                          template Base_Time_Interval_AVP p_base_Time_Interval := *
            ) := {
                aVP_Header          := mw_aVP_HeaderVid_Mbit1(c_time_Quota_Mechanism_AVP_Code, ?, c_vendId3gpp),
                time_Quota_Type     := p_time_Quota_Type,
                base_Time_Interval  := p_base_Time_Interval
            } // End of template mw_time_Quota_Mechanism_AVP
            
            /**
             * @desc The SGSN-Address receive template 
             * @param p_aVP_Data  Holds the IP-address of the SGSN/Serving Node that was used during a report
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.199 SGSN-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) SGSN_Address_AVP mw_sgsn_Address_AVP(
                                                                    template (present) Address p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sgsn_Address_AVP_Code, ?, c_vendId3gpp),
                aVP_Data := p_aVP_Data
            } // End of template mw_sgsn_Address_AVP
            
            /**
             * @desc The 7.2.248    WLAN-Session-Id receive template 
             * @param p_aVP_Data    Contains the charging id generated by the AAA Server for the session
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.248 WLAN-Session-Id AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) WLAN_Session_Id_AVP mw_wlan_Session_Id_AVP(
                                                                          template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_wlan_Session_Id_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_wlan_Session_Id_AVP
            
            /**
             * @desc The Time-Quota-Type receive template
             * @param p_aVP_Data     Indicate which aVP_Data quota consumption mechanism shall be used for the associated Rating Group
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.230 Time-Quota-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Time_Quota_Type_AVP mw_time_Quota_Type_AVP(
                                                                          template (present) Time_Quota_Type p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_time_Quota_Type_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_time_Quota_Type_AVP
            
            /**
             * @desc The Offline-Charging receive template 
             * @param p_quota_Consumption_Time           TODO
             * @param p_time_Quota_Mechanism             TODO
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.121 Offline-Charging AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Offline_Charging_AVP mw_offline_Charging_AVP(
                                                                            template (present) Quota_Consumption_Time_AVP   p_quota_Consumption_Time := ?,
                                                                            template (present) Time_Quota_Mechanism_AVP     p_time_Quota_Mechanism := ?
            ) := {
                aVP_Header                          := mw_aVP_HeaderVid_Mbit1(c_offline_Charging_AVP_Code, ?, c_vendId3gpp),
                quota_Consumption_Time              := p_quota_Consumption_Time,
                time_Quota_Mechanism                := p_time_Quota_Mechanism,
                envelope_Reporting                  := omit,
                multiple_Services_Credit_Control    := omit,
                aVP_Type                            := omit
            } // End of template mw_offline_Charging_AVP
            
            /**
             * @desc The Change-Time receive template 
             * @param p_aVP_Data    EPC Charging: holds the aVP_Data in UTC format when the volume counts associated to the IP-CAN bearer, or the service data container, is closed and reported due to Charging condition change
             *                  MMTel  Charging: holds the aVP_Data in UTC format and it is a aVP_Data stamp that defines the moment when the conference participant has an action
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.38  Change-Time AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Change_Time_AVP mw_change_Time_AVP(
                                                                  template (present) UInt32 p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_change_Time_AVP_Code, 4, c_vendId3gpp),
                aVP_Data        := p_aVP_Data
            } // End of template mw_change_Time_AVP
            
            /**
             * @desc The Change-Condition receive template 
             * @param p_aVP_Data     Holds information if the SDP media component was of type SDP offer or SDP answer
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.186 SDP-Type AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) SDP_Type_AVP mw_sdp_Type_AVP(
                                                            template (present) SDP_Type p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_sdp_Type_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_sdp_Type_AVP
            
            /**
             * @desc The Change-Condition receive template 
             * @param p_aVP_Data     Indicates the change in charging condition
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.37  Change-Condition AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.2: 3GPP specific AVPs
             */
            template (present) Change_Condition_AVP mw_change_Condition_AVP(
                                                                            template (present) Change_Condition p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_change_Condition_AVP_Code, 4, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_change_Condition_AVP
            
            /**
             * @desc Alternate-Charged-Party-Address receive template 
             * @param p_aVP_Data     Holds the address (SIP URI or TEL URI) of the party (Public User ID or Public Service ID) who initiates the media action, like adding/removing, connecting/disconnecting the media
             * 
             * @see ETSI TS 132 299 V10.15.0 Clause 7.2.12  Alternate-Charged-Party-Address AVP
             * @see ETSI TS 132 299 V10.15.0 Table 7.1: Use Of IETF Diameter AVPs
             */
            template (present) Media_Initiator_Party_AVP mw_media_Initiator_Party_AVP(
                                                                                      template (present) UTF8String p_aVP_Data := ?
            ) := {
                aVP_Header  := mw_aVP_HeaderVid_Mbit1(c_media_Initiator_Party_AVP_Code, ?, c_vendId3gpp),
                aVP_Data    := p_aVP_Data
            } // End of template mw_media_Initiator_Party_AVP
            
            /**
             * @desc Alternate-Charged-Party-Address receive template 
             * @param p_aVP_Data     Holds the address of the alternate charged party determined by an AS at IMS session initiation