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.
* @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;
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"
}
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(value) NameAddr p_nameAddr) :=
{
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(omit) charstring p_cause, template(value) 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):=
template(value) SentProtocol m_SentProtocol (template(value) charstring p_protocol) :=
{protocolName := c_sipName,
protocolVersion:= c_sipVersion,
transport:= p_protocol};
template(value) SipUrl m_SipUrl_currDomain_Base(template(value) 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(template(value) 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(template(value) 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
template(value) SipUrl m_SipUrl_contactIpaddrAndCpc(template(value) SipUserProfile p_userprofile) modifies m_SipUrl_contactIpaddr:= //* SIP-URL of the test system on SIP side
components := {sip:={
userInfo := //* optional
{
userOrTelephoneSubscriber := p_userprofile.publUsername & "; cpc=" & PX_SIP_ISUP_CPC_VALUE//* charstring
}}}
template(value) SipUrl m_SipUrl_currIpaddr(template(value) SipUserProfile p_userprofile) modifies m_SipUrl_currDomain_Base := //* SIP-URL of the test system on SIP side
components := {sip:={
hostPort :=
{
host := p_userprofile.currIpaddr, //* hostname, IPv4 or IPv6 as a charstring
portField := p_userprofile.currPort //* optional integer
template(value) SipUrl m_SipUrl_Anonymous := //* SIP-URL with a calles party number
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo := //* optional
{
userOrTelephoneSubscriber := "Anonymous",//* charstring
password := omit //* optional charstring
},
hostPort :=
{
host := "Anonymous.invalid", //* hostname, IPv4 or IPv6 as a charstring
portField := omit //* optional integer
}}},
urlParameters := omit,
headers := omit
};
template(value) SipUrl m_TelUrl_publUser(template(value) SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
scheme := c_telScheme, //* contains "tel"
components := {tel:={
subscriber := p_userprofile.publUsername//* charstring
}},
urlParameters := omit,
headers := omit
}
template(present) SipUrl mw_TelUrl :=
components := {tel:={
subscriber := ?}},
template(present) SipUrl mw_SipUrl :=
components := {sip:={
userInfo := *,
hostPort := ?}},
template(present) SipUrl mw_TelSip_unavailableInvalidUri := (mw_TelSip_unavailableInvalidUri1,mw_TelSip_unavailableInvalidUri2);
template(present) SipUrl mw_TelSip_unavailableInvalidUri1 :=
{
scheme := c_sipScheme,
components := {sip:={
userInfo := {userOrTelephoneSubscriber:="unavailable", password:=omit},
hostPort := {host:="anonymous.invalid", portField:=c_defaultSipPort}
}},
urlParameters := omit,
headers := omit
};
template(present) SipUrl mw_TelSip_unavailableInvalidUri2 :=
{
scheme := c_telScheme,
components := {tel:={
subscriber := "unavailable"
}},
urlParameters := omit,
headers := omit
};
template(present) SipUrl mw_TelSip_unavailableUri (template(value) charstring p_host):= (mw_TelSip_unavailableUri1 (p_host),mw_TelSip_unavailableUri2 (p_host));
template(present) SipUrl mw_TelSip_unavailableUri1 (template(value) charstring p_host):=
{
scheme := (c_telScheme),
components := {tel:={
subscriber := "unavailable"}},
urlParameters := omit,
headers := omit
};
template(present) SipUrl mw_TelSip_unavailableUri2 (template(value) charstring p_host):=
{
scheme := (c_sipScheme),
components := {sip:={
userInfo := {userOrTelephoneSubscriber:="unavailable", password:=omit},
hostPort := {host:=p_host, portField:=c_defaultSipPort}}},
urlParameters := omit,
headers := omit
};
template(present) SipUrl mw_SipUrl_Number(template(value) charstring p_number) := //* SIP-URL with a calling party number
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
hostPort := ?}},
urlParameters := *,
headers := *
};
template(present) SipUrl mw_TelSipUrl_Number(template(present) charstring p_number) := (mw_TelSipUrl_Number1(p_number), mw_TelSipUrl_Number2(p_number));
template(present) SipUrl mw_TelSipUrl_Number1(template(present) charstring p_number) := //* SIP-URL with a calling party number
{
scheme := (c_sipScheme), //* contains "sip" or "tel"
components := {
sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*}, //* nat or int format
hostPort := ?}
},
urlParameters := *,
headers := *
};
template(present) SipUrl mw_TelSipUrl_Number2(template(present) charstring p_number) := //* SIP-URL with a calling party number
{
scheme := (c_telScheme), //* contains "sip" or "tel"
components := {
tel:={
subscriber:= p_number}
},
urlParameters := *,
headers := *
};
template(present) SipUrl mw_SipUrl_Host(template charstring p_host) := //* SIP-URL with a calling party number
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= *,
hostPort := {host:=p_host, portField:=*}}},
urlParameters := *,
headers := *
};
template(present) SipUrl mw_SipUrl_NumberHost(template(value) charstring p_number, template(value) charstring p_host) := //* SIP-URL with a calling party number
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
hostPort := {host:=p_host, portField:=*}}},
urlParameters := *,
headers := *
};
template(present) SipUrl mw_SipUrl_NumberHostParam(template(value) charstring p_number, template(value) charstring p_host, template SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
hostPort := {host:=p_host, portField:=*}}},
urlParameters := p_urlParameters,
headers := *
//TODO: this temlate is possibly incorrectly defined, or "p_urlParameters" parameter name is incorrect, since it is assigned to "headers"
template(value) SipUrl m_SipUrl_NumberHostHeader(template(value) charstring p_number, template(value) charstring p_host, template(omit) AmpersandParam_List p_urlParameters) := //* SIP-URL with a calling party number
{
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=omit},
hostPort := {host:=p_host, portField:=omit}}},
urlParameters := p_urlParameters,
headers := omit
//TODO: this temlate is possibly incorrectly defined, or "p_urlParameters" parameter name is incorrect, since it is assigned to "headers"
template(present) SipUrl mw_SipUrl_NumberHostHeader(template(value) charstring p_number, template(value) charstring p_host, template AmpersandParam_List p_urlParameters) := //* SIP-URL with a calling party number
{
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
hostPort := {host:=p_host, portField:=*}}},
urlParameters := p_urlParameters,
headers := omit
template(value) SipUrl m_SipUrl_NumberHostParam(template(value) charstring p_number, template(value) charstring p_host, template(omit) SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
{
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=omit},
hostPort := {host:=p_host, portField:=c_defaultSipPort}}},
urlParameters := p_urlParameters,
headers := omit
};
template(value) SipUrl m_SipUrl_NumberHostParam_woPort(template(value) charstring p_number, template(value) charstring p_host, template(omit) SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
{
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= {userOrTelephoneSubscriber:=p_number, password:=omit},
hostPort := {host:=p_host, portField:=omit}}},
urlParameters := p_urlParameters,
headers := omit
};
template(present) SipUrl mw_SipUrl_Anonymous := //* SIP-URL with a calles party number
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo := //* optional
{
userOrTelephoneSubscriber := pattern "[a,A][n,N][o,O][n,N][y,Y][m,M][o,O][u,U][s,s]",//* charstring
password := omit //* optional charstring
},
hostPort :=
{
host := pattern "[a,A]nonymous.invalid", //* hostname, IPv4 or IPv6 as a charstring
portField := * //* optional integer
}}},
urlParameters := *,
headers := *
};
template(present) SipUrl mw_SipUrl_urlParam(template SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo:= *,
hostPort := ?}},
urlParameters := p_urlParameters,
headers := *
};
template(present) ContactAddress mw_ContactAddress :=
{
addressField := ?,
contactParams := *
};
template(present) HostPort mw_hostPort(template charstring p_host, template integer p_portField) :=
template(present) StatusLine mw_statusLine1xx := {sipVersion := c_sipNameVersion, statusCode := (100..199), reasonPhrase := ?};
template(present) StatusLine mw_statusLine4xx := {sipVersion := c_sipNameVersion, statusCode := (400..499), reasonPhrase := ?};
template(present) StatusLine mw_statusLine5xx := {sipVersion := c_sipNameVersion, statusCode := (500..599), reasonPhrase := ?};
template(present) StatusLine mw_statusLineFinal := {sipVersion := c_sipNameVersion, statusCode := (200..699), reasonPhrase := ?};
template(present) NameAddr mw_NameAddr_DispName_User_Host(template charstring p_dn, template(present) charstring p_user, template charstring p_host) :=
{
displayName := p_dn,
addrSpec :=
{
scheme := c_sipScheme, //* contains "sip"
components := { sip := {
userInfo := {userOrTelephoneSubscriber :=p_user, password := *},
hostPort :=
{
host := p_host, //* hostname, IPv4 or IPv6 as a charstring
portField := * //* optional integer
}}
},
urlParameters := {m_UserPhone},
headers := *
}
}
template(present) Addr_Union mw_AddrUnion_Nameaddr(template charstring p_dn, template(present) charstring p_user, template charstring p_host):=
{
nameAddr:=mw_NameAddr_DispName_User_Host(p_dn,p_user,p_host)
}
template(present) SipUrl mw_SipUrl_User_Host(template(present) charstring p_user, template charstring p_host) :=
scheme := c_sipScheme, //* contains "sip"
components := {sip:={
userInfo := {userOrTelephoneSubscriber :=p_user, password := *},
hostPort :=
{
host := p_host, //* hostname, IPv4 or IPv6 as a charstring
portField := * //* optional integer
}}},
urlParameters := {m_UserPhone},
headers := *
}
template(present) Addr_Union mw_AddrUnion_SipUrl(template(present) charstring p_user, template charstring p_host):=
{
addrSpecUnion:=mw_SipUrl_User_Host(p_user,p_host)
}
} //* end group Subfields
group HeaderFieldTemplates {
template(value) LibSip_SIPTypesAndValues.Allow m_Allow (template(present) Method_List p_methods) := {
fieldName := ALLOW_E,
methods := p_methods
}
template(present) LibSip_SIPTypesAndValues.Allow mw_Allow (template(value) charstring p_method) := {
fieldName := ALLOW_E,
methods := superset(p_method)
}
template(value) GenericParam m_Cause (template(omit) charstring p_cause):=
{id:="cause", paramValue:=p_cause}
template(present) GenericParam mw_Cause_base (template charstring p_cause):=
{id:="cause", paramValue:=p_cause}
template(present) GenericParam mw_Cause (template charstring p_cause) :=
// {id:=?, paramValue:= p_cause}
{id:=?, paramValue:= pattern "*{p_cause}*"} // TODO - Expression does not work for all TTCN tools
template(value) Authorization m_Authorization (template(present) Credentials p_Credentials):=
{
fieldName := AUTHORIZATION_E,
body := {p_Credentials}
//TODO: CR
template(value) Authorization m_Authorization_digest (template(value) CommaParam_List p_CommaParam_List):=
{
fieldName := AUTHORIZATION_E,
body := {{digestResponse := p_CommaParam_List}}
}
template(present) Authorization mw_Authorization_digest (template(present) CommaParam_List p_CommaParam_List):=
{
fieldName := AUTHORIZATION_E,
body := {{digestResponse := p_CommaParam_List}}
template(value) Authorization m_add_Authorization_digest (template(value) Authorization p_auth, template(value) CommaParam_List p_CommaParam_List):=
{
fieldName := AUTHORIZATION_E,
body := {{digestResponse := f_merge_CommaParam_List(p_auth.body[0].digestResponse, p_CommaParam_List)}}
//TODO: STF471 this template contains matching symbol, but name suggests it is send template
template(present) Authorization m_Authorization_other :=
{
fieldName := AUTHORIZATION_E,
body := {{otherResponse := ?}}
template(value) Contact m_Contact(template(value) SipUrl p_sipUrl) :=
{
fieldName := CONTACT_E,
contactBody :=
{
contactAddresses :=
{
{
addressField := { addrSpecUnion := p_sipUrl},
contactParams := omit
}
}
} //* end contactBody
}//* end m_Contact
template(value) Contact m_Contact_profile(template(value) SipUserProfile p_userprofile) :=
{
fieldName := CONTACT_E,
contactBody :=
{
contactAddresses :=
{
{
addressField := { addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
contactParams := omit
}
}
} //* end contactBody
}//* end m_Contact
template(value) Contact m_Contact_profile_expires(template(value) SipUserProfile p_userprofile, template(value) charstring p_expires) :=
{
fieldName := CONTACT_E,
contactBody :=
{
contactAddresses :=
{
{
addressField := { addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
contactParams := {{"expires",p_expires}}
}
}
} //* end contactBody
}//* end m_Contact
template(value) From m_From(template(value) NameAddr p_nameAddr, template(value) charstring p_tag_str) :=
{
fieldName := FROM_E,
addressField :=
{nameAddr := p_nameAddr},//* end addressField
fromParams := {{id := c_tagId, paramValue := p_tag_str}}
};
template(value) From m_From_Anonymous(template(value) charstring p_tag_str) :=
{nameAddr := m_NameAddr(
"Anonymous", //* optional charstring
m_SipUrl_Anonymous //* SipUrl
)},//* end addressField
fromParams := {{id := c_tagId, paramValue := p_tag_str}}
};
template(value) From m_From_SipUrl(template(value) SipUrl p_sipUrl) :=
{
fieldName := FROM_E,
addressField :=
{nameAddr := m_NameAddr(
omit, //* optional charstring
p_sipUrl //* SipUrl
)},//* end addressField
fromParams := omit
};
template(value) Event m_Event_refer modifies m_Event_base :=
template(value) Event m_Event_conference modifies m_Event_base :=
template(value) Event m_Event_presence modifies m_Event_base :=
eventType := "presence"
};
template(value) Event m_Event_reg modifies m_Event_base :=
{
eventType := "reg"
template(value) Event m_Event_cdiv modifies m_Event_base :=
template(value) Event m_Event_mcid := m_Event_cdiv;
{
fieldName := EXPIRES_E,
deltaSec := ""
};
template(value) Expires m_Expires_600000 modifies m_Expires_base :=
{
deltaSec := "600000"
};
template(value) Expires m_Expires (template(value) charstring p_deltaSec) modifies m_Expires_base :=
{
deltaSec := p_deltaSec
};
template(present) Expires mw_Expires (template(present) charstring p_deltaSec) :=
fieldName := EXPIRES_E,
deltaSec := p_deltaSec
template(value) HistoryInfo m_HistoryInfo(template(value) HistoryInfo_List p_HistoryInfo_List) :=
{
fieldName := HISTORY_INFO_E,
historyInfoList := p_HistoryInfo_List
};
template(present) HistoryInfo mw_HistoryInfo(template(present) HistoryInfo_List p_HistoryInfo_List) :=
{
fieldName := HISTORY_INFO_E,
historyInfoList := p_HistoryInfo_List
};
template(value) HistoryInfoEntry m_HistoryInfoEntry(template(value) SipUrl p_Url, template(omit) IntegerList p_index, template(omit) SemicolonParam_List p_paramlist) :=
hiIndex := p_index,
hiExtention := p_paramlist
}
template(present) HistoryInfoEntry mw_HistoryInfoEntry(template(present) SipUrl p_Url, template IntegerList p_index, template SemicolonParam_List p_paramlist) :=
hiIndex := p_index,
hiExtention := p_paramlist
}
template(value) PAssertedID m_PAssertedID(template(present) Addr_Union p_pAssertedIDValue) :=
{
fieldName := P_ASSERTED_ID_E,
pAssertedIDValueList := {p_pAssertedIDValue}
};
template(value) PAssertedID m_PAssertedID_2x(template(value) Addr_Union p_pAssertedIDValue, template(value) Addr_Union p_pAssertedIDValue2) modifies m_PAssertedID :=
{
pAssertedIDValueList := {p_pAssertedIDValue, p_pAssertedIDValue2}
template(present) PAssertedID mw_PAssertedID(template(present) PAssertedIDValue p_pAssertedIDValue) :=
{
fieldName := P_ASSERTED_ID_E,
pAssertedIDValueList := {p_pAssertedIDValue}
template(present) PAssertedIDValue mw_PAssertedIDValue(template(present) SipUrl p_SipUrl) :=
template(value) PPreferredID m_PPreferredID(template(value) Addr_Union p_pPreferredIDValue) :=
{
fieldName := P_PREFERRED_ID_E,
pPreferredIDValueList := {p_pPreferredIDValue}
};
template(value) Privacy m_Privacy(template(value) PrivacyValue p_privacy) :=
{
fieldName := PRIVACY_E,
privValueList := {p_privacy}
};
template(present) Privacy mw_Privacy_Base(template(present) charstring p_value) :=
{
fieldName := PRIVACY_E,
privValueList := {*, p_value ,*}
};
template(present) Privacy mw_Privacy_id := mw_Privacy_Base("id");
template(present) Privacy mw_Privacy_user := mw_Privacy_Base("user");
template(value) RAck m_RAck(integer p_responseNum, integer p_seqNumber, charstring p_method) :=
{
fieldName := RACK_E,
responseNum := p_responseNum,
seqNumber := p_seqNumber,
method := p_method
};
template(value) Reason m_Reason(template(value) integer p_cause) :=
{
fieldName := REASON_E,
reasonValues := {m_ReasonValue(int2str(valueof(p_cause)),"dummy")}
template(value) Reason m_Reason21 :=
{
fieldName := REASON_E,
reasonValues := {m_ReasonValue(int2str(21),"call reject")}
};
template(present) Reason mw_Reason_Base :=
{
fieldName := REASON_E,
reasonValues := {}
}
template(present) Reason mw_Reason(template(value) charstring p_cause) modifies mw_Reason_Base:=
{
reasonValues := {mw_ReasonValue(p_cause,?)}
}
template(present) Reason mw_ReasonSIP(template(value) charstring p_cause) modifies mw_Reason_Base :=
{
reasonValues := {mw_ReasonValueSIP(p_cause,?)}
}
template(value) RecordRoute m_recordRoute_currIpAddr (template(value) SipUserProfile p_userprofile):=
{
fieldName := RECORD_ROUTE_E,
routeBody := {{nameAddr := {displayName := omit,
addrSpec := {scheme := c_sipScheme, //* contains "sip"
components := { sip := {
userInfo := omit,
hostPort := {host:=p_userprofile.currIpaddr, portField:= p_userprofile.currPort}}},
urlParameters := omit,
headers := omit}
},
rrParam := omit}
}};
template(value) RecordRoute m_recordRoute_currIpAddr_params (template(value) SipUserProfile p_userprofile, template(value) SemicolonParam_List p_urlParameters):=
{
fieldName := RECORD_ROUTE_E,
routeBody := {{nameAddr := {displayName := omit,
addrSpec := {
scheme := c_sipScheme, //* contains "sip"
components := {
sip := {
userInfo := omit,
hostPort := {host:=p_userprofile.currIpaddr, portField:= p_userprofile.currPort}
}
},
urlParameters := p_urlParameters,
headers := omit}
},
rrParam := omit}
}};
template(value) RouteBody m_routeBody_currIpAddr (template(value) SipUserProfile p_userprofile):=
{
nameAddr := {
displayName := omit,
addrSpec := {
scheme := c_sipScheme, //* contains "sip"
components := {
sip := {
userInfo := omit,
hostPort := {host:=p_userprofile.homeDomain, portField:= p_userprofile.currPort}
}
},
urlParameters := omit,
headers := omit
}
},
rrParam := omit
};
template(value) ReferredBy m_ReferredBy_SipUrl(template(value) SipUrl p_sipUrl) :=
{
fieldName := REFERRED_BY_E,
nameAddr := m_NameAddr(omit, p_sipUrl), // STF471 {displayName := omit, addrSpec:=p_sipUrl},
referredbyIdParams := omit
}
template(value) ReferTo m_ReferTo_SipUrl(template(value) SipUrl p_sipUrl, template(value) charstring p_method) :=
{
fieldName := REFER_TO_E,
nameAddr :=m_NameAddr(omit, p_sipUrl), // STF471 {displayName := omit, addrSpec:=p_sipUrl},
referToParams := {{id:="method",paramValue :=p_method}}
template(value) ReferSub m_ReferSub(template(value) boolean p_value) :=
{
fieldName := REFER_SUB_E,
referSubValue :=p_value,
referSubParams := omit
}
template(value) Replaces m_Replaces(
template(value) charstring p_callId,
template(value) charstring p_toTag,
template(value) charstring p_fromTag
) := {
fieldName := REPLACES_E,
replacesParams := {
{id := p_callId, paramValue := omit},
{id := "to-tag", paramValue := p_toTag},
{id := "from-tag", paramValue := p_fromTag}
}
}
template(value) Require m_Require_empty :=
{
fieldName := REQUIRE_E,
optionsTags := {""}
};
template(value) Require m_Require_replaces modifies m_Require_empty :=
{
optionsTags := {c_replaces}
};
template(value) Require m_Require_100rel modifies m_Require_empty :=
{
optionsTags := {c_tag100rel}
};
template(value) Require m_Require_prec modifies m_Require_empty :=
{
optionsTags := {c_tagPrecond}
template(value) SubscriptionState m_SubscriptionState_active :=
{
fieldName := SUBSCRIPTION_STATE_E,
subState := "active",
substateParams := {{id:="expires",paramValue:="60000"}}
}
template(value) Supported m_Supported_empty :=
optionsTags:={""}
}
template(value) Supported m_Supported_fromChange modifies m_Supported_empty :=
{
template(value) Supported m_Supported_prec modifies m_Supported_empty :=
{
optionsTags:={c_tagPrecond}
}
template(value) Supported m_Supported_100rel modifies m_Supported_empty :=
template(value) Supported m_Supported_100rel_prec modifies m_Supported_empty :=
{
optionsTags:={c_tag100rel, c_tagPrecond}
}
template(value) GenericParam m_Text (template(value) charstring p_text):=
{id:="text", paramValue:=p_text}
template(present) GenericParam mw_Text (template charstring p_text):=
{id:="text", paramValue:=p_text}
template(value) GenericParam m_UserPhone :=
{
id := "user",
paramValue := "phone"
}
template(value) GenericParam m_UserToUserEncodingHex :=
{
id := "encoding",
paramValue := "hex"
}
template(value) UserToUser m_UserToUserData(template(value) charstring p_U2UData):=
{
fieldName := USER_TO_USER_E,
uuiData := p_U2UData,
uuiParam := m_UserToUserEncodingHex
}
template(value) To m_To(template(value) SipUrl p_sipUrl) :=
{
fieldName := TO_E,
addressField :=
{nameAddr := m_NameAddr(
"ETSI Tester", //* optional charstring
p_sipUrl //* SipUrl
)},//* end addressField
toParams := omit
};
template(value) To m_To_SipUrl(template(value) SipUrl p_sipUrl) modifies m_To :=
{
addressField :=
{nameAddr := {
displayName := omit //* optional charstring
}}//* end addressField
template(present) To mw_To_NameAddr_SipUrl(template charstring p_dn, template(present) charstring p_user, template charstring p_host) :=
{
fieldName := TO_E,
addressField := (mw_AddrUnion_Nameaddr(p_dn,p_user,p_host),mw_AddrUnion_SipUrl(p_user,p_host)),
template(present) To mw_To(template(present) SipUrl p_sipUrl) := {
addressField := { nameAddr := mw_NameAddr(*, p_sipUrl)},