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 NoTargetNamespace language "XSD" all
with {
import from urn_ietf_params_xml_ns_conference_info language "XSD" all
with {
import from http_uri_etsi_org_ngn_params_xml_simservs_pstn language "XSD" all
with {
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 {
import from urn_ietf_params_xml_ns_resource_lists language "XSD" all
with {
import from http_uri_etsi_org_ngn_params_xml_comm_div_info language "XSD" all
with {
}
import from urn_3gpp_ns_cw_1_0 language "XSD" all
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
group SubFields {
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(present) CommaParam_List mw_digestResponse(template(present) 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"
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
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),
rrParam := *
}
template(value) SentProtocol m_SentProtocol(template(value) charstring p_protocol) := {
protocolName := c_sipName,
protocolVersion := c_sipVersion,
transport := p_protocol
}
template(present) SipUrl m_BasicSipUrl := {
scheme := (c_sipScheme),
userOrTelephoneSubscriber := "", //* charstring
password := omit //* optional charstring
host := omit, //* hostname, IPv4 or IPv6 as a charstring
portField := omit //* p_userprofile.currPort - optional integer
template(value) SipUrl m_SipUrl_currDomain_Base(template(value) SipUserProfile p_userprofile) modifies m_BasicSipUrl := {
components := {
sip := {
userInfo := {
userOrTelephoneSubscriber := p_userprofile.publUsername
}
}
}
}
template(value) SipUrl m_SipUrl_currDomain(template(value) SipUserProfile p_userprofile) modifies m_SipUrl_currDomain_Base := {
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 := {
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 := {
components := {
sip := {
userInfo := {
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 := {
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 modifies m_BasicSipUrl := {
userOrTelephoneSubscriber := "Anonymous" //* charstring
host := "Anonymous.invalid" //* hostname, IPv4 or IPv6 as a charstring
}
}
}
}
// 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
) modifies m_BasicSipUrl := {
components := {
sip := {
userInfo := {
userOrTelephoneSubscriber := p_number
},
hostPort := {
host := p_host
urlParameters := p_urlParameters
}
template(value) SipUrl m_SipUrl_NumberHostParam(
template(value) charstring p_number,
template(value) charstring p_host,
template(omit) AmpersandParam_List p_urlParameters
) modifies m_SipUrl_NumberHostHeader := {
components := {
sip := {
hostPort := {
portField := c_defaultSipPort
}
}
}
template(value) SipUrl m_SipUrl_NumberHostParam_woPort(
template(value) charstring p_number,
template(value) charstring p_host,
template(omit) AmpersandParam_List p_urlParameters
) modifies m_SipUrl_NumberHostParam := {
components := {
sip := {
hostPort := {
portField := omit
}
}
}
}
template(present) SipUrl m_BasicTelUrl := {
scheme := (c_telScheme),
template(value) SipUrl m_TelUrl_publUser(template(value) SipUserProfile p_userprofile) modifies m_BasicTelUrl := {
tel := {
subscriber :=
p_userprofile.publUsername //* charstring
}
}
template(present) SipUrl mw_TelUrl := {
scheme := c_telScheme,
components := {
tel := {
subscriber := ?
}
template(present) SipUrl mw_SipUrl := {
scheme := c_sipScheme,
userInfo := {
userOrTelephoneSubscriber := ?,
password := *
},
hostPort := {
host := *,
portField := *
}
template(present) SipUrl mw_TelSip_unavailableInvalidUri := (mw_TelSip_unavailableInvalidUri1, mw_TelSip_unavailableInvalidUri2);
template(present) SipUrl mw_TelSip_unavailableInvalidUri1 modifies mw_SipUrl := {
components := {
sip := {
userInfo := {
userOrTelephoneSubscriber := "unavailable",
password := omit // TODO STF471: shall be omit or *. If *, remove them die to modifies mw_BasicSipUrl
},
hostPort := {
host := "anonymous.invalid",
portField := c_defaultSipPort
}
}
},
urlParameters := omit, // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
headers := omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
template(present) SipUrl mw_TelSip_unavailableInvalidUri2 modifies mw_TelUrl := {
components := {
tel := {
subscriber := "unavailable"
}
},
urlParameters := omit, // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
headers := omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
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) modifies mw_TelUrl := {
components := {
tel := {
subscriber := "unavailable"
}
},
urlParameters := omit, // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
headers := omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
template(present) SipUrl mw_TelSip_unavailableUri2(template(value) charstring p_host) modifies mw_SipUrl := {
components := {
sip := {
userInfo := {
userOrTelephoneSubscriber := "unavailable",
password := omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
},
hostPort := {
host := p_host,
portField := c_defaultSipPort
},
urlParameters := omit, // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
headers := omit // TODO STF471: shall be *. If *, remove them die to modifies mw_BasicSipUrl
template(present) SipUrl mw_SipUrl_Number(template(present) charstring p_number) modifies mw_SipUrl := {
userInfo := {
userOrTelephoneSubscriber := p_number
},
template(present) SipUrl mw_TelSipUrl_Number(template(present) charstring p_number) := (mw_SipUrl_Number(p_number), mw_TelSipUrl_Number2(p_number));
template(present) SipUrl mw_TelSipUrl_Number1(template(present) charstring p_number) := mw_SipUrl_Number(p_number);
template(present) SipUrl mw_TelSipUrl_Number2(template(present) charstring p_number) modifies mw_TelUrl := {
components := {
tel := {
subscriber := p_number
}
}
template(present) SipUrl mw_SipUrl_Host(template charstring p_host) modifies mw_SipUrl := {
components := {
sip := {
userInfo := *,
hostPort := {
host := p_host
}
}
}
template(present) SipUrl mw_SipUrl_User_Host(
template(present) charstring p_user,
template charstring p_host
) modifies mw_SipUrl := {
sip := {
userInfo := {
userOrTelephoneSubscriber := p_user
},
hostPort := {
host := p_host //* hostname, IPv4 or IPv6 as a charstring
}
}
template(present) SipUrl mw_SipUrl_Anonymous modifies mw_SipUrl := {
components := {
sip := {
userInfo := {
userOrTelephoneSubscriber := pattern "[a,A][n,N][o,O][n,N][y,Y][m,M][o,O][u,U][s,s]", //* charstring
password := omit // TODO STF471: shall be omit or *. If *, remove them die to modifies mw_BasicSipUrl
host := pattern "[a,A]nonymous.invalid" //* hostname, IPv4 or IPv6 as a charstring
template(present) SipUrl mw_SipUrl_urlParam(template SemicolonParam_List p_urlParameters) modifies mw_SipUrl := {
urlParameters := p_urlParameters
template(present) ContactAddress mw_ContactAddress := {
addressField := ?,
contactParams := *
}
template(present) HostPort mw_hostPort(template charstring p_host, template integer p_portField) := {
host := p_host,
portField := p_portField
}
template(present) StatusLine mw_statusLine_any := {
sipVersion := c_sipNameVersion,
statusCode := ?,
reasonPhrase := ?
}
template(present) StatusLine mw_statusLine(
in template(present) integer p_statusCode,
in template(present) charstring p_reasonPhrase
) modifies mw_statusLine_any := {
statusCode := p_statusCode,
reasonPhrase := p_reasonPhrase
}
template(present) StatusLine mw_statusLine1xx modifies mw_statusLine_any := {statusCode := (100 .. 199)}
template(present) StatusLine mw_statusLine4xx modifies mw_statusLine_any := { statusCode := (400 .. 499) }
template(present) StatusLine mw_statusLine5xx modifies mw_statusLine_any := { statusCode := (500 .. 599) }
template(present) StatusLine mw_statusLineFinal modifies mw_statusLine_any := { statusCode := (200 .. 699) }
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
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) Addr_Union mw_AddrUnion_SipUrl(template(present) charstring p_user, template charstring p_host) := {
addrSpecUnion := mw_SipUrl_User_Host(p_user, p_host)
}
template(value) LibSip_SIPTypesAndValues.Allow m_Allow(template(value) 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(value) charstring p_cause) := { // TODO - Expression does not work for all TTCN tools
id := ?, paramValue :=
pattern "*{p_cause}*"
}
template(value) Authorization m_Authorization(template(value) Credentials p_credentials) := {
fieldName := AUTHORIZATION_E,
body := {
p_credentials
}
}
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(present) Authorization mw_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
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}}}}
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) := {
fieldName := FROM_E,
addressField := {
nameAddr :=
)
}, //* 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
template(value) Event m_Event_base := {
fieldName := EVENT_E,
eventType := "",
eventParams := omit
}
template(value) Event m_Event_refer modifies m_Event_base := {
eventType := "refer"
}
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
template(value) Event m_Event_conference modifies m_Event_base := {eventType := "conference"}
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 := {eventType := "comm-div-info"}
template(value) Event m_Event_mcid := m_Event_cdiv;
template(value) Expires m_Expires_base := {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) := {
nameAddr := m_NameAddr(omit, p_Url), 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) := {
nameAddr := mw_NameAddr(*, p_Url), hiIndex := p_index, hiExtention := p_paramlist
}
template(value) PAssertedID m_PAssertedID(template(value) 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) := {
nameAddr := {
displayName := *,
addrSpec := 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
}
}
}
// TODO STF471 addition
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( // STF471 {displayName
omit, // := omit,
p_sipUrl // addrSpec:=p_sipUrl}
),
template(value) ReferTo m_ReferTo_SipUrl(template(value) SipUrl p_sipUrl,
template(value) charstring p_method) := {
nameAddr := m_NameAddr( // STF471 {displayName
omit, // := omit,
p_sipUrl // 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) := {
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 := {
fieldName := SUPPORTED_E,
optionsTags := { "" }
}
template(value) Supported m_Supported_fromChange modifies m_Supported_empty := {
optionsTags := { c_tagFromChange }
}
template(value) Supported m_Supported_prec modifies m_Supported_empty := {
optionsTags := { c_tagPrecond }
}
template(value) Supported m_Supported_100rel modifies m_Supported_empty := {
optionsTags := { c_tag100rel }
}
template(value) Supported m_Supported_100rel_prec modifies m_Supported_empty := {
optionsTags := {