Skip to content
LibSip_Templates.ttcn 122 KiB
Newer Older
/**
 *  @author   STF 346, STF366, STF368, STF369, STF450, STF471
 *  @version  $Id$
 *	@desc     This module defines SIP Templates for message, header, and 
 *            structured types. <br>
 *            Note that any changes made to the definitions in this module
 *            may be overwritten by future releases of this library
 *            End users are encouraged to contact the distributers of this  
 *            module regarding their modifications or additions.
 *            This module is part of LibSipV3.
 *  @remark   Any additions to the templates shall follow the design rules
 *            and always modify base templates only;
 *            Existing templates shall not be changed or removed -
 *            change requests shall be made to http://t-ort.etsi.org
module LibSip_Templates
{
	//LibSip
	import from LibSip_SIPTypesAndValues all;
	import from LibSip_SDPTypes all;
	import from LibSip_Interface all;
	import from LibSip_PIXITS all;
	import from LibSip_XMLTypes all;
    import from LibSip_SimpleMsgSummaryTypes all;
    import from LibSip_MessageBodyTypes all;    
schmitting's avatar
schmitting committed
    import from NoTargetNamespace language "XSD" all
    with {
        extension "File:../xsd/Ims3gpp.xsd"
    }
    
    import from urn_ietf_params_xml_ns_conference_info language "XSD" all
    with {
        extension "File:../xsd/CONF.xsd"
    }
    
    import from http_uri_etsi_org_ngn_params_xml_simservs_pstn language "XSD" all
    with {
        extension "File:../xsd/PSTN.xsd"
    }
    
    import from http_uri_etsi_org_ngn_params_xml_simservs_xcap language "XSD" all
    with {
        extension "File:../xsd/SupplementaryServices.xsd"
    }
	
    import from http_uri_etsi_org_ngn_params_xml_simservs_mcid language "XSD" all
    with {
        extension "File:../xsd/MCID.xsd"
    }
	
    import from urn_ietf_params_xml_ns_resource_lists language "XSD" all
    with {
        extension "File:../xsd/ResourceList.xsd"
    }
    
    import from http_uri_etsi_org_ngn_params_xml_comm_div_info language "XSD" all
    with {
        extension "File:../xsd/CDIVN.xsd"
    }

    import from urn_3gpp_ns_cw_1_0 language "XSD" all
        with {
            extension "File:../xsd/cw.xsd"
    }
schmitting's avatar
schmitting committed
	
	group ModuleParameters {
	
	    modulepar boolean MB_LENGTH_FROM_ENCVAL:=true; //* to get length of message body from ecoded value
	    modulepar boolean USE_FX_FOR_XML_LENGTH:=false; //* To use external functions for calculation of XML message/body length
	    
	}//* group ModuleParameters
	
		template(value) Addr_Union m_AddrUnion_NameAddr(template NameAddr p_nameAddr) :=
		template(value) Addr_Union m_AddrUnion_DisplayAndSipUrl(template(value) charstring p_displayName, template(value) SipUrl p_addrSpec) :=
		{
		  nameAddr := m_CallingAddr(p_displayName, p_addrSpec)
		}
		
        template(value) NameAddr m_NameAddr(template(omit) charstring p_displayName, template(value) SipUrl p_addrSpec) :=
        {
          displayName := p_displayName,
          addrSpec := p_addrSpec
        }       

		template(value) NameAddr m_CallingAddr(template(value) charstring p_displayName, template(value) SipUrl p_addrSpec) := m_NameAddr(p_displayName, p_addrSpec);

        template(present) NameAddr mw_NameAddr(template charstring p_displayName, template(present) SipUrl p_addrSpec) :=
        {
          displayName := p_displayName,
          addrSpec := p_addrSpec
        }       
		template CommaParam_List mw_digestResponse(template GenericParam p_genericParam) :=
		  superset(p_genericParam); //* c_Integrity_protected_yes
		template(value) SemicolonParam_List m_cpc :=
		{{"cpc",PX_SIP_ISUP_CPC_VALUE}};

		template(value) SemicolonParam_List m_ReasonParams
			(template charstring p_cause, template charstring p_text) :=
		{m_Cause(p_cause),m_Text(p_text)};
		
		template(present) SemicolonParam_List mw_ReasonParams
			(template charstring p_cause, template charstring p_text) :=
		{mw_Cause_base(p_cause),mw_Text(p_text)};
		
		template(value) ReasonValue m_ReasonValue_Base :=
			token := "",
			reasonParams := omit
		template(present) ReasonValue mw_ReasonValue_Base :=
			token := ?,
			reasonParams := *
		};
		template(value) ReasonValue m_ReasonValue_param
			(template(value) charstring p_cause, template(value) charstring p_text) modifies m_ReasonValue_Base :=
		{
			reasonParams := m_ReasonParams(p_cause,p_text)
		};
		template(present) ReasonValue mw_ReasonValue_param
			(template charstring p_cause, template charstring p_text) modifies mw_ReasonValue_Base :=
		{
			reasonParams := mw_ReasonParams(p_cause,p_text)
		};
		template(value) ReasonValue m_ReasonValue
			(template(value) charstring p_cause, template(value) charstring p_text) modifies m_ReasonValue_param :=
		{		  
			token := "Q.850"
		};
		template(present) ReasonValue mw_ReasonValue
			(template charstring p_cause, template charstring p_text) modifies mw_ReasonValue_param :=
		{		  
			token := "Q.850"
		};
		template(value) ReasonValue m_ReasonValueSIP
			(template(value) charstring p_cause, template(value) charstring p_text) modifies m_ReasonValue_param :=
		{		  
			token := "SIP"
		};
		template(present) ReasonValue mw_ReasonValueSIP
			(template charstring p_cause, template charstring p_text) modifies mw_ReasonValue_param :=
		{		  
			token := "SIP"
		};
		template(present) RouteBody mw_routeBody (template(present) SipUrl p_sipurl):=
			nameAddr := mw_NameAddr(*, p_sipurl),
		template(value) SentProtocol m_SentProtocol (charstring p_protocol) :=
		{protocolName := c_sipName,
		  protocolVersion:= c_sipVersion,
		  transport:= p_protocol};

		template(value) SipUrl m_SipUrl_currDomain_Base(in SipUserProfile p_userprofile) :=  	//*  SIP-URL of the test system on SIP side
		  scheme := c_sipScheme,  		//*  contains "sip"
          components := {sip:={
        		  userInfo := 			//*  optional
        		  {
        			userOrTelephoneSubscriber := p_userprofile.publUsername,//*  charstring
        			password := omit		//*  optional charstring
        		  },
        		  hostPort :=
        		  {
        			host := omit,	//*  hostname, IPv4 or IPv6 as a charstring
        			portField := omit	//* p_userprofile.currPort	//* optional integer
        		  }}},
		  urlParameters := omit,
		  headers := omit
		}
		template(value) SipUrl m_SipUrl_currDomain(in SipUserProfile p_userprofile) modifies m_SipUrl_currDomain_Base :=  	//*  SIP-URL of the test system on SIP side
		{
          components := {sip:={
        		  hostPort :=
        		  {
        			host := p_userprofile.homeDomain	//*  hostname, IPv4 or IPv6 as a charstring
        		  }}}
		}
		template(value) SipUrl m_SipUrl_contactIpaddr(in SipUserProfile p_userprofile) modifies m_SipUrl_currDomain_Base :=  	//*  SIP-URL of the test system on SIP side
          components := {sip:={
            		  hostPort :=
            		  {
            			host := p_userprofile.contactIpaddr,	//*  hostname, IPv4 or IPv6 as a charstring
            			portField := p_userprofile.contactPort	//* optional integer
Loading
Loading full blame…