Compare Revisions

The credentials to download the source code are:
 Username: svnusers
 Password: svnusers

Ignore whitespace Rev 647 → Rev 648

/tags/v3.0.3/branches/v2/XSDAUX.ttcn
File deleted
/tags/v3.0.3/branches/v2/ttcn/LibSip_Steps.ttcn
File deleted
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/ttcn/LibSip_Templates.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_Templates.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_Templates.ttcn (nonexistent)
@@ -1,3766 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369, STF450
- * @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 LibSipV2.
- * @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:=false; //* 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 Addr_Union m_AddrUnion_NameAddr(template NameAddr p_nameAddr) :=
- {
- nameAddr := p_nameAddr
- }
-
- template Addr_Union m_AddrUnion_DisplayAndSipUrl(template charstring p_displayName, template SipUrl p_addrSpec) :=
- {
- nameAddr := m_CallingAddr(p_displayName, p_addrSpec)
- }
-
- template NameAddr m_CallingAddr(template charstring p_displayName, template 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 SemicolonParam_List m_cpc :=
- {{"cpc",PX_SIP_ISUP_CPC_VALUE}};
-
- template SemicolonParam_List m_ReasonParams
- (template charstring p_cause, template charstring p_text) :=
- {m_Cause(p_cause),m_Text(p_text)};
-
- template ReasonValue m_ReasonValue
- (template charstring p_cause, template charstring p_text) :=
- {
- token := "Q.850",
- reasonParams := m_ReasonParams(p_cause,p_text)
- };
-
- template ReasonValue m_ReasonValueSIP
- (template charstring p_cause, template charstring p_text) :=
- {
- token := "SIP",
- reasonParams := m_ReasonParams(p_cause,p_text)
- };
-
- template RouteBody mw_routeBody (template SipUrl p_sipurl):=
- {
- nameAddr :=
- {
- displayName := *,
- addrSpec := p_sipurl
- },
- rrParam := *
- }
-
- template SentProtocol m_SentProtocol (charstring p_protocol) :=
- {protocolName := c_sipName,
- protocolVersion:= c_sipVersion,
- transport:= p_protocol};
-
- template SipUrl m_SipUrl_currDomain(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 := p_userprofile.homeDomain, //* hostname, IPv4 or IPv6 as a charstring
- portField := omit //* p_userprofile.currPort //* optional integer
- }}},
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_contactIpaddr(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 := p_userprofile.contactIpaddr, //* hostname, IPv4 or IPv6 as a charstring
- portField := p_userprofile.contactPort //* optional integer
- }}},
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_contactIpaddrAndCpc(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 & "; cpc=" & PX_SIP_ISUP_CPC_VALUE,//* charstring
- password := omit //* optional charstring
- },
- hostPort :=
- {
- host := p_userprofile.contactIpaddr, //* hostname, IPv4 or IPv6 as a charstring
- portField := p_userprofile.contactPort //* optional integer
- }}},
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_currIpaddr(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 := p_userprofile.currIpaddr, //* hostname, IPv4 or IPv6 as a charstring
- portField := p_userprofile.currPort //* optional integer
- }}},
- urlParameters := omit,
- headers := omit
- }
-
- template 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 SipUrl m_TelUrl_publUser(in 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 SipUrl mw_TelUrl :=
- {
- scheme := c_telScheme,
- components := {tel:={
- subscriber := ?}},
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_SipUrl :=
- {
- scheme := c_sipScheme,
- components := {sip:={
- userInfo := *,
- hostPort := ?}},
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_TelSip_unavailableInvalidUri := (mw_TelSip_unavailableInvalidUri1,mw_TelSip_unavailableInvalidUri2);
-
- template 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 SipUrl mw_TelSip_unavailableInvalidUri2 :=
- {
- scheme := c_telScheme,
- components := {tel:={
- subscriber := "unavailable"
- }},
- urlParameters := omit,
- headers := omit
- };
-
- template SipUrl mw_TelSip_unavailableUri (charstring p_host):= (mw_TelSip_unavailableUri1 (p_host),mw_TelSip_unavailableUri2 (p_host));
-
- template SipUrl mw_TelSip_unavailableUri1 (charstring p_host):=
- {
- scheme := (c_telScheme),
- components := {tel:={
- subscriber := "unavailable"}},
- urlParameters := omit,
- headers := omit
- };
- template SipUrl mw_TelSip_unavailableUri2 (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 SipUrl mw_SipUrl_Number(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 SipUrl mw_TelSipUrl_Number(template charstring p_number) := (mw_TelSipUrl_Number1(p_number),mw_TelSipUrl_Number2(p_number));
-
- template SipUrl mw_TelSipUrl_Number1(template 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 SipUrl mw_TelSipUrl_Number2(template 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 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 SipUrl mw_SipUrl_NumberHost(charstring p_number, 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 SipUrl mw_SipUrl_NumberHostParam(charstring p_number, charstring p_host, template SemicolonParam_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 := *
- };
-
- template SipUrl m_SipUrl_NumberHostHeader(charstring p_number, 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:=omit},
- hostPort := {host:=p_host, portField:=omit}}},
- urlParameters := omit,
- headers := p_urlParameters
- };
-
- template SipUrl mw_SipUrl_NumberHostHeader(charstring p_number, 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 := *,
- headers := p_urlParameters
- };
-
- template SipUrl m_SipUrl_NumberHostParam(charstring p_number, charstring p_host, template 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 SipUrl m_SipUrl_NumberHostParam_woPort(charstring p_number, charstring p_host, template 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 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 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 ContactAddress mw_ContactAddress :=
- {
- addressField := ?,
- contactParams := *
- };
-
- template HostPort mw_hostPort(template charstring p_host, template integer p_portField) :=
- {
- host := p_host,
- portField := p_portField
- };
-
- template StatusLine mw_statusLine1xx := {sipVersion := c_sipNameVersion, statusCode := (100..199), reasonPhrase := ?};
- template StatusLine mw_statusLine4xx := {sipVersion := c_sipNameVersion, statusCode := (400..499), reasonPhrase := ?};
- template StatusLine mw_statusLine5xx := {sipVersion := c_sipNameVersion, statusCode := (500..599), reasonPhrase := ?};
- template StatusLine mw_statusLineFinal := {sipVersion := c_sipNameVersion, statusCode := (200..699), reasonPhrase := ?};
-
- template NameAddr mw_NameAddr_DispName_User_Host(template charstring p_dn, template 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 Addr_Union mw_AddrUnion_Nameaddr(template charstring p_dn, template charstring p_user, template charstring p_host):=
- {
- nameAddr:=mw_NameAddr_DispName_User_Host(p_dn,p_user,p_host)
- }
-
- template SipUrl mw_SipUrl_User_Host(template 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 Addr_Union mw_AddrUnion_SipUrl(template charstring p_user, template charstring p_host):=
- {
- addrSpecUnion:=mw_SipUrl_User_Host(p_user,p_host)
- }
-
-
- } //* end group Subfields
-
-
-
-
-
- group HeaderFieldTemplates {
- template LibSip_SIPTypesAndValues.Allow m_Allow (template Method_List p_methods) := {
- fieldName := ALLOW_E,
- methods := p_methods
- }
-
- template LibSip_SIPTypesAndValues.Allow mw_Allow (charstring p_method) := {
- fieldName := ALLOW_E,
- methods := superset(p_method)
- }
-
- template GenericParam m_Cause (template charstring p_cause):=
- {id:="cause", paramValue:=p_cause}
-
- template 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 Authorization m_Authorization (template Credentials p_Credentials):=
- {
- fieldName := AUTHORIZATION_E,
- body := {p_Credentials}
- }
-
- template Authorization m_Authorization_digest (template CommaParam_List p_CommaParam_List):=
- {
- fieldName := AUTHORIZATION_E,
- body := {{digestResponse := p_CommaParam_List}}
- }
-
- template Authorization m_add_Authorization_digest (in Authorization p_auth, template CommaParam_List p_CommaParam_List):=
- {
- fieldName := AUTHORIZATION_E,
- body := {{digestResponse := f_merge_CommaParam_List(p_auth.body[0].digestResponse,valueof(p_CommaParam_List))}}
- }
-
- template Authorization m_Authorization_other :=
- {
- fieldName := AUTHORIZATION_E,
- body := {{otherResponse := ?}}
- }
-
- template Contact m_Contact(template SipUrl p_sipUrl) :=
- {
- fieldName := CONTACT_E,
- contactBody :=
- {
- contactAddresses :=
- {
- {
- addressField := { addrSpecUnion := p_sipUrl},
- contactParams := omit
- }
- }
- } //* end contactBody
- }//* end m_Contact
-
- template Contact m_Contact_profile(in SipUserProfile p_userprofile) :=
- {
- fieldName := CONTACT_E,
- contactBody :=
- {
- contactAddresses :=
- {
- {
- addressField := { addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
- contactParams := omit
- }
- }
- } //* end contactBody
- }//* end m_Contact
-
-
- template Contact m_Contact_profile_expires(in SipUserProfile p_userprofile, in 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 From m_From(template NameAddr p_nameAddr, charstring p_tag_str) :=
- {
- fieldName := FROM_E,
- addressField :=
- {nameAddr := p_nameAddr},//* end addressField
- fromParams := {{id := c_tagId, paramValue := p_tag_str}}
- };
-
- template From m_From_Anonymous(charstring p_tag_str) :=
- {
- fieldName := FROM_E,
- addressField :=
- {nameAddr := {
- displayName := "Anonymous", //* optional charstring
- addrSpec := m_SipUrl_Anonymous //* SipUrl
- }},//* end addressField
- fromParams := {{id := c_tagId, paramValue := p_tag_str}}
- };
-
- template From m_From_SipUrl(template SipUrl p_sipUrl) :=
- {
- fieldName := FROM_E,
- addressField :=
- {nameAddr := {
- displayName := omit, //* optional charstring
- addrSpec := p_sipUrl //* SipUrl
- }},//* end addressField
- fromParams := omit
- };
-
- template Event m_Event_refer :=
- {
- fieldName := EVENT_E,
- eventType := "refer",
- eventParams := omit
- };
-
- template Event m_Event_conference :=
- {
- fieldName := EVENT_E,
- eventType := "conference",
- eventParams := omit
- };
-
- template Event m_Event_presence :=
- {
- fieldName := EVENT_E,
- eventType := "presence",
- eventParams := omit
- };
-
- template Event m_Event_reg :=
- {
- fieldName := EVENT_E,
- eventType := "reg",
- eventParams := omit
- };
-
- template Event m_Event_cdiv :=
- {
- fieldName := EVENT_E,
- eventType := "comm-div-info",
- eventParams := omit
- };
-
- template Event m_Event_mcid :=
- {
- fieldName := EVENT_E,
- eventType := "comm-div-info",
- eventParams := omit
- };
-
- template Expires m_Expires_600000 :=
- {
- fieldName := EXPIRES_E,
- deltaSec := "600000"
- };
-
- template Expires m_Expires (charstring p_deltaSec):=
- {
- fieldName := EXPIRES_E,
- deltaSec := p_deltaSec
- };
-
-
- template PAssertedID m_PAssertedID(template Addr_Union p_pAssertedIDValue) :=
- {
- fieldName := P_ASSERTED_ID_E,
- pAssertedIDValueList := {p_pAssertedIDValue}
- };
-
- template HistoryInfo mw_HistoryInfo(template HistoryInfo_List p_HistoryInfo_List) :=
- {
- fieldName := HISTORY_INFO_E,
- historyInfoList := p_HistoryInfo_List
- };
-
- template HistoryInfoEntry mw_HistoryInfoEntry(template SipUrl p_Url, template StringList p_index, template SemicolonParam_List p_paramlist) :=
- {
- nameAddr := {displayName:=*, addrSpec:= p_Url},
- hiIndex := p_index,
- hiExtention := p_paramlist
- }
-
- template HistoryInfo m_HistoryInfo(template HistoryInfo_List p_HistoryInfo_List) :=
- {
- fieldName := HISTORY_INFO_E,
- historyInfoList := p_HistoryInfo_List
- };
-
- template HistoryInfoEntry m_HistoryInfoEntry(template SipUrl p_Url, template StringList p_index, template SemicolonParam_List p_paramlist) :=
- {
- nameAddr := {displayName:=omit, addrSpec:= p_Url},
- hiIndex := p_index,
- hiExtention := p_paramlist
- }
-
- template PAssertedID m_PAssertedID_2x(template Addr_Union p_pAssertedIDValue1, template Addr_Union p_pAssertedIDValue2) :=
- {
- fieldName := P_ASSERTED_ID_E,
- pAssertedIDValueList := {p_pAssertedIDValue1, p_pAssertedIDValue2}
- };
-
- template PAssertedID mw_PAssertedID(template PAssertedIDValue p_pAssertedIDValue) :=
- {
- fieldName := P_ASSERTED_ID_E,
- pAssertedIDValueList := {p_pAssertedIDValue}
- };
-
- template PAssertedIDValue mw_PAssertedIDValue(template SipUrl p_SipUrl) :=
- {
- nameAddr :={displayName := *, addrSpec:=p_SipUrl}
- };
-
- template PPreferredID m_PPreferredID(template Addr_Union p_pPreferredIDValue) :=
- {
- fieldName := P_PREFERRED_ID_E,
- pPreferredIDValueList := {p_pPreferredIDValue}
- };
-
- template Privacy m_Privacy(PrivacyValue p_privacy) :=
- {
- fieldName := PRIVACY_E,
- privValueList := {p_privacy}
- };
-
- template 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 Reason m_Reason(integer p_cause) :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValue(int2str(p_cause),"dummy")}
- };
-
- template Reason m_Reason21 :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValue(int2str(21),"call reject")}
- };
-
- template RecordRoute m_recordRoute_currIpAddr (in 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 := {{id:="lr", paramValue := omit}},
- headers := omit}
- },
- rrParam := omit}
- }};
-
- template RouteBody m_routeBody_currIpAddr (in 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 := {{id:="lr", paramValue := omit}},
- headers := omit
- }
- },
- rrParam := omit
- };
-
- template ReferredBy m_ReferredBy_SipUrl(template SipUrl p_sipUrl) :=
- {
- fieldName := REFERRED_BY_E,
- nameAddr :={displayName := omit, addrSpec:=p_sipUrl},
- referredbyIdParams := omit
- }
-
- template ReferTo m_ReferTo_SipUrl(template SipUrl p_sipUrl, charstring p_method) :=
- {
- fieldName := REFER_TO_E,
- nameAddr :={displayName := omit, addrSpec:=p_sipUrl},
- referToParams := {{id:="method",paramValue :=p_method}}
- }
-
- template ReferSub m_ReferSub(in boolean p_value) :=
- {
- fieldName := REFER_SUB_E,
- referSubValue :=p_value,
- referSubParams := omit
- }
-
- template Replaces m_Replaces(
- charstring p_callId,
- charstring p_toTag,
- 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 Require m_Require_replaces :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {c_replaces}
- };
-
-
- template Require m_Require_empty :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {""}
- };
-
- template Require m_Require_100rel :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {c_tag100rel}
- };
-
- template Require m_Require_prec :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {c_tagPrecond}
- }
-
- template SubscriptionState m_SubscriptionState_active :=
- {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := "active",
- substateParams := {{id:="expires",paramValue:="60000"}}
- }
-
- template Supported m_Supported_fromChange :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tagFromChange}
- }
-
- template Supported m_Supported_prec :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tagPrecond}
- }
-
- template Supported m_Supported_100rel :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tag100rel}
- }
-
- template Supported m_Supported_100rel_prec :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tag100rel, c_tagPrecond}
- }
-
- template GenericParam m_Text (template charstring p_text):=
- {id:="text", paramValue:=p_text}
-
- template GenericParam m_UserPhone :=
- {
- id := "user",
- paramValue := "phone"
- }
-
- template GenericParam m_UserToUserEncodingHex :=
- {
- id := "encoding",
- paramValue := "hex"
- }
-
- template UserToUser m_UserToUserData(template charstring p_U2UData):=
- {
- fieldName := USER_TO_USER_E,
- uuiData := p_U2UData,
- uuiParam := m_UserToUserEncodingHex
- }
-
- template To m_To(template SipUrl p_sipUrl) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := "ETSI Tester", //* optional charstring
- addrSpec := p_sipUrl //* SipUrl
- }},//* end addressField
- toParams := omit
- };
-
- template To m_To_SipUrl(SipUrl p_sipUrl) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := omit, //* optional charstring
- addrSpec := p_sipUrl //* SipUrl
- }},//* end addressField
- toParams := omit
- };
-
- template To mw_To_NameAddr_SipUrl(template charstring p_dn, template 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)),
- toParams := *
- }
-
- template To mw_To(template SipUrl p_sipUrl) := {
- fieldName := TO_E,
- addressField := { nameAddr := {displayName := *, addrSpec := p_sipUrl}},
- toParams:= *
- }
-
- template From mw_From(template SipUrl p_sipUrl) := {
- fieldName := FROM_E,
- addressField := { nameAddr := {displayName := *, addrSpec := p_sipUrl}},
- fromParams:= *
- }
-
- template From mw_From_NameAddr_SipUrl(template charstring p_dn, template charstring p_user, template charstring p_host) :=
- {
- fieldName := FROM_E,
- addressField := (mw_AddrUnion_Nameaddr(p_dn,p_user,p_host),mw_AddrUnion_SipUrl(p_user,p_host)),
- fromParams := *
- }
- template ViaBody m_ViaBody_currIpaddr(charstring branch_val,in SipUserProfile p_userprofile) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_userprofile.currIpaddr, portField:= p_userprofile.currPort},
- viaParams:={{id :=c_branchId,paramValue :=branch_val}}
- }
-
- template ViaBody mw_ViaBody_interface(template HostPort p_hostport) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_hostport.host, portField:= p_hostport.portField},
- viaParams:=*
- }
-
- template Via mw_Via(template ViaBody p_viabody) :=
- {
- fieldName := VIA_E,
- viaBody:= superset(p_viabody)
- }
-
- template CallId mw_CallId_any :=
- {
- fieldName := CALL_ID_E,
- callid := ?
- }
-
- template Privacy mw_Privacy_id :=
- {
- fieldName := PRIVACY_E,
- privValueList := {*,"id",*}
- };
-
-
- template Privacy mw_Privacy(template charstring p_value) :=
- {
- fieldName := PRIVACY_E,
- privValueList := {*,p_value,*}
- };
-
-
- template Privacy mw_Privacy_user :=
- {
- fieldName := PRIVACY_E,
- privValueList := {*,"user",*}
- };
-
- template Reason mw_Reason(template charstring p_cause) :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValue(p_cause,?)}
- };
-
- template Reason mw_ReasonSIP(template charstring p_cause) :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValueSIP(p_cause,?)}
- };
-
- template Require mw_Require_not_100rel :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset(complement(c_tag100rel))
- };
-
- template Require mw_require_100rel :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset(c_tag100rel)
- };
-
- template RecordRoute mw_recordroute (template RouteBody p_routeBody):=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody := superset(p_routeBody)
- };
-
- template Route mw_route (template RouteBody_List p_routeBody):=
- {
- fieldName := ROUTE_E,
- routeBody := p_routeBody
- };
-
- template StatusLine mw_statusLine(template integer p_statusCode) :=
- {
- sipVersion:=c_sipNameVersion,
- statusCode:=p_statusCode,
- reasonPhrase:=?
- };
-
- template Supported mw_Supported_100rel_prec :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:= superset(c_tag100rel, c_tagPrecond)
- }
-
- template Supported mw_Supported_100rel :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:= superset(c_tag100rel)
- }
-
- template Supported mw_Supported_fromChange :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:= superset(c_tagFromChange)
- }
-
- template UserToUser mw_UserToUserData(template charstring p_U2UData):=
- {
- fieldName := USER_TO_USER_E,
- uuiData := p_U2UData,
- uuiParam := ?
- }
-
- template Contact mw_Contact_conference :=
- {
- fieldName := CONTACT_E,
- contactBody :=
- {
- contactAddresses :=
- {
- {
- addressField := {
- nameAddr := {
- displayName := *,
- addrSpec := {
- scheme := ?,
- components := ?,
- urlParameters := {{"isfocus",*},*},
- headers := *
- }
- }
- },
- contactParams := *
- }
- }
- }
- }
-
- template AlertInfo m_AlertInfo(charstring p_urn) := {
- fieldName := ALERT_INFO_E,
- alertInfoBody := {{p_urn, omit}}
- }
-
- template AlertInfo mw_AlertInfo(template charstring p_urn) := {
- fieldName := ALERT_INFO_E,
- alertInfoBody := superset({p_urn, omit})
- }
- } //* end of group HeaderFieldTemplates
-
-
-group MessageTemplates {
-group dummy_templates {
- group dummy_parameter_send {
-
- template RequestLine m_requestLine_dummy(Method p_method) :=
- {
- method := p_method,
- requestUri := c_unavailableUri,
- sipVersion := c_sipNameVersion
- }
-
- template MessageHeader m_msgHeader_dummy :=
- {
- accept := omit,
- acceptContact := omit,
- acceptEncoding := omit,
- acceptLanguage := omit,
- alertInfo := omit,
- allow := omit,
- allowEvents := omit, //* RFC3265
- authenticationInfo := omit,
- authorization := omit,
- callId := c_empty_CallId,
- callInfo := omit,
- contact := omit,
- contentDisposition := omit,
- contentEncoding := omit,
- contentLanguage := omit,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0},
- contentType := omit, //* if message body present m, else not present
- cSeq := c_empty_cSeq,
- date := omit,
- errorInfo := omit,
- event := omit, //* RFC3265
- expires := omit,
- fromField := c_empty_From,
- geolocation := omit,
- geolocationRouting := omit,
- historyInfo := omit, //* RFC4244
- inReplyTo := omit,
- maxForwards := c_maxForwards70,
- mimeVersion := omit,
- minExpires := omit,
- minSE := omit, //* RFC4028
- organization := omit,
- pAccessNetworkInfo := omit, //* RFC3455
- pAssertedID := omit,
- pAssertedService := omit,
- pAssociatedURI := omit,
- path := omit, //* RFC3327
- pCalledPartyID := omit, //* RFC3455
- pChargingFunctionAddresses := omit, //* RFC3455
- pChargingVector := omit, //* RFC3455
- pEarlyMedia := omit, //* RFC5009
- pMediaAuthorization := omit, //* RFC3313
- pPreferredID := omit,
- pPreferredService := omit,
- priority := omit,
- privacy := omit,
- proxyAuthenticate := omit,
- proxyAuthorization := omit,
- proxyRequire := omit,
- pVisitedNetworkID := omit, //* RFC3455
- rAck := omit,
- rSeq := omit,
- reason := omit,
- recordRoute := omit,
- requestDisposition := omit,
- referredBy := omit, //* RFC3892 - REFER method
- referTo := omit, //* RFC3515 - REFER method
- referSub := omit, //* RFC4488 - REFER method
- replaces := omit, //* RFC3891
- replyTo := omit,
- require := omit,
- retryAfter := omit,
- route := omit,
- securityClient := omit, //* RFC3329
- securityServer := omit, //* RFC3329
- securityVerify := omit, //* RFC3329
- server := omit,
- serviceRoute := omit, //* RFC3608
- sessionExpires := omit, //* RFC4028
- sessionId := omit,
- sipETag := omit,
- sipIfMatch := omit,
- subject := omit,
- subscriptionState := omit, //* RFC3265
- supported := omit,
- timestamp := omit,
- toField := c_empty_To,
- unsupported := omit,
- userToUser := omit,
- userAgent := omit,
- via := c_empty_Via,
- warning := omit,
- wwwAuthenticate := omit,
- undefinedHeader_List := omit
- }
- } //* group dummy_parameter_send
-
- group dummy_parameter_receive {
-
- template RequestLine mw_requestLine_dummy(Method p_method) :=
- {
- method := p_method,
- requestUri := ?,
- sipVersion := c_sipNameVersion
- }
-
- template MessageHeader mw_msgHeader_dummy :=
- {
- accept := *,
- acceptContact := *,
- acceptEncoding := *,
- acceptLanguage := *,
- alertInfo := *,
- allow := *,
- allowEvents := *, //* RFC3265
- authenticationInfo := *,
- authorization := *,
- callId := ?,
- callInfo := *,
- contact := *,
- contentDisposition := *,
- contentEncoding := *,
- contentLanguage := *,
- contentLength := ?,
- contentType := *,
- cSeq := ?,
- date := *,
- errorInfo := *,
- event := *, //* RFC3265
- expires := *,
- fromField := ?,
- geolocation := *,
- geolocationRouting := *,
- historyInfo := *, //* RFC4244
- inReplyTo := *,
- maxForwards := *,
- mimeVersion := *,
- minExpires := *,
- minSE := *, //* RFC4028
- organization := *,
- pAccessNetworkInfo := *, //* RFC3455
- pAssertedID := *,
- pAssertedService := *,
- pAssociatedURI := *,
- path := *, //* RFC3327
- pCalledPartyID := *, //* RFC3455
- pChargingFunctionAddresses := *, //* RFC3455
- pChargingVector := *, //* RFC3455
- pEarlyMedia := *, //* RFC5009
- pMediaAuthorization := *, //* RFC3313
- pPreferredID := *,
- pPreferredService := *,
- priority := *,
- privacy := *,
- proxyAuthenticate := *,
- proxyAuthorization := *,
- proxyRequire := *,
- pVisitedNetworkID := *, //* RFC3455
- rAck := *,
- rSeq := *,
- reason := *,
- recordRoute := *,
- requestDisposition := *,
- referredBy := *, //* RFC3892 - REFER method
- referTo := *, //* RFC3515 - REFER method
- referSub := *, //* RFC4488 - REFER method
- replaces := *, //* RFC 3891
- replyTo := *,
- require := *,
- retryAfter := *,
- route := *,
- securityClient := *, //* RFC3329
- securityServer := *, //* RFC3329
- securityVerify := *, //* RFC3329
- server := *,
- serviceRoute := *, //* RFC3608
- sessionExpires := *, //* RFC4028
- sessionId := *,
- sipETag := *,
- sipIfMatch := *,
- subject := *,
- subscriptionState := *, //* RFC3265
- supported := *,
- timestamp := *,
- toField := ?,
- unsupported := *,
- userToUser := *,
- userAgent := *,
- via := ?,
- warning := *,
- wwwAuthenticate := *,
- undefinedHeader_List := *
- }
- }//* end group dummy_parameter_receive
-
- group dummy_request_templates_send {
-
- template ACK_Request m_ACK_Dummy :=
- {
- requestLine := m_requestLine_dummy(ACK_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template BYE_Request m_BYE_Dummy :=
- {
- requestLine := m_requestLine_dummy(BYE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template CANCEL_Request m_CANCEL_Dummy :=
- {
- requestLine := m_requestLine_dummy(CANCEL_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template INFO_Request m_INFO_Dummy :=
- {
- requestLine := m_requestLine_dummy(INFO_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template INVITE_Request m_INVITE_Dummy :=
- {
- requestLine := m_requestLine_dummy(INVITE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Dummy :=
- {
- requestLine := m_requestLine_dummy(MESSAGE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template NOTIFY_Request m_NOTIFY_Dummy :=
- {
- requestLine := m_requestLine_dummy(NOTIFY_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template OPTIONS_Request m_OPTIONS_Dummy :=
- {
- requestLine := m_requestLine_dummy(OPTIONS_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template PRACK_Request m_PRACK_Dummy :=
- {
- requestLine := m_requestLine_dummy(PRACK_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template PUBLISH_Request m_PUBLISH_Dummy :=
- {
- requestLine := m_requestLine_dummy(PUBLISH_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template REGISTER_Request m_REGISTER_Dummy :=
- {
- requestLine := m_requestLine_dummy(REGISTER_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template REFER_Request m_REFER_Dummy :=
- {
- requestLine := m_requestLine_dummy(REFER_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Dummy :=
- {
- requestLine := m_requestLine_dummy(SUBSCRIBE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template UPDATE_Request m_UPDATE_Dummy :=
- {
- requestLine := m_requestLine_dummy(UPDATE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
- }//* end group dummy_request_templates_send
- group dummy_request_templates_receive{
-
- template ACK_Request mw_ACK_Dummy :=
- {
- requestLine := mw_requestLine_dummy(ACK_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template BYE_Request mw_BYE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(BYE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template CANCEL_Request mw_CANCEL_Dummy :=
- {
- requestLine := mw_requestLine_dummy(CANCEL_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template INFO_Request mw_INFO_Dummy :=
- {
- requestLine := mw_requestLine_dummy(INFO_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template INVITE_Request mw_INVITE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(INVITE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template MESSAGE_Request mw_MESSAGE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(MESSAGE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template OPTIONS_Request mw_OPTIONS_Dummy :=
- {
- requestLine := mw_requestLine_dummy(OPTIONS_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template NOTIFY_Request mw_NOTIFY_Dummy :=
- {
- requestLine := mw_requestLine_dummy(NOTIFY_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template PRACK_Request mw_PRACK_Dummy :=
- {
- requestLine := mw_requestLine_dummy(PRACK_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template PUBLISH_Request mw_PUBLISH_Dummy :=
- {
- requestLine := mw_requestLine_dummy(PUBLISH_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template REFER_Request mw_REFER_Dummy :=
- {
- requestLine := mw_requestLine_dummy(REFER_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template REGISTER_Request mw_REGISTER_Dummy :=
- {
- requestLine := mw_requestLine_dummy(REGISTER_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(SUBSCRIBE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template UPDATE_Request mw_UPDATE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(UPDATE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
- }//* end group dummy_request_templates_receive
-
- group dummy_response_templates_send{
-
- template Response m_Response_Dummy :=
- {
- statusLine := c_statusLine100,
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
- } //* group dummy_response_templates_send
-
- group dummy_response_templates_receive{
- template Response mw_Response_Dummy :=
- {
- statusLine := ?,
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
- } //* group dummy_response_templates_receive
-}
-
-group base_templates{
-
- group request_send {
-
-
- template ACK_Request m_ACK_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_ACK_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "ACK"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template BYE_Request m_BYE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via) modifies m_BYE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via) modifies m_CANCEL_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
-
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template INFO_Request m_INFO_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via) modifies m_INFO_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template INVITE_Request m_INVITE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact) modifies m_INVITE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template MESSAGE_Request m_MESSAGE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via) modifies m_MESSAGE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template NOTIFY_Request m_NOTIFY_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_NOTIFY_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "NOTIFY"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template OPTIONS_Request m_OPTIONS_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_OPTIONS_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "OPTIONS"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template PRACK_Request m_PRACK_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, RAck p_RAck)
- modifies m_PRACK_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PRACK"},
- fromField := p_from,
- rAck := p_RAck,
- toField := p_to,
- via := p_via
- },
- messageBody := omit
- }
-
-
- template PUBLISH_Request m_PUBLISH_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Event p_event, template RAck p_RAck, template MessageBody p_mb)
- modifies m_PUBLISH_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText/*c_sdpAplication*/},
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PUBLISH"},
- event := p_event,
- fromField := p_from,
- toField := p_to,
- via := p_via
- },
- messageBody := p_mb
- }
-
- template REFER_Request m_REFER_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, Contact p_contact,
- From p_from, template To p_to, Via p_via, template ReferTo p_referTo, template ReferredBy p_referredBy)
- modifies m_REFER_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "REFER"},
- fromField := p_from,
- referTo := p_referTo,
- referredBy := p_referredBy,
- toField := p_to,
- via := p_via
- }
- }
-
- template REFER_Request m_REFER_Request_replaces (
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- Contact p_contact,
- From p_from,
- template To p_to,
- Via p_via,
- template ReferTo p_referTo,
- template ReferredBy p_referredBy,
- template Replaces p_replaces,
- template Require p_require
- ) modifies m_REFER_Request_Base := {
- msgHeader :=
- {
- replaces := p_replaces,
- require := p_require
- }
- }
-
- template REGISTER_Request m_REGISTER_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization) modifies m_REGISTER_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- supported := {
- fieldName := SUPPORTED_E, optionsTags := {"path"}
- },
- via := p_via
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_Base (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via) modifies m_SUBSCRIBE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template UPDATE_Request m_UPDATE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_UPDATE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "UPDATE"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- },
- messageBody := p_mb
- }
-
- } //* end of group message_send
-
- group request_receive {
-
- template ACK_Request mw_ACK_Request_Base (template CallId p_callId) modifies mw_ACK_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template BYE_Request mw_BYE_Request_Base(template CallId p_callId) modifies mw_BYE_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template CANCEL_Request mw_CANCEL_Request_Base (template CallId p_callId) modifies mw_CANCEL_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template INFO_Request mw_INFO_Request_Base(template CallId p_callId) modifies mw_INFO_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template INVITE_Request mw_INVITE_Request_Base modifies mw_INVITE_Dummy :=
- {
- requestLine :=
- {
- method := INVITE_E
- }
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_Base modifies mw_MESSAGE_Dummy :=
- {
- msgHeader :=
- {
- contact := *
- }
- }
-
- template NOTIFY_Request mw_NOTIFY_Request_Base (template CallId p_callId) modifies mw_NOTIFY_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template OPTIONS_Request mw_OPTIONS_Request_Base (template CallId p_callId) modifies mw_OPTIONS_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template PRACK_Request mw_PRACK_Request_Base(template CallId p_callId) modifies mw_PRACK_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template PUBLISH_Request mw_PUBLISH_Request_Base(template CallId p_callId) modifies mw_PUBLISH_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template REFER_Request mw_REFER_Request_Base (template CallId p_callId) modifies mw_REFER_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template REFER_Request
- mw_REFER_Request(template CallId p_callId, SipUrl p_requestUri,
- SipUrl p_referredBy)
- modifies mw_REFER_Request_Base := {
- requestLine := {requestUri := p_requestUri},
- msgHeader := {
- callId := p_callId,
- referredBy := {
- fieldName := REFERRED_BY_E,
- nameAddr := {displayName := *, addrSpec := p_referredBy},
- referredbyIdParams := *
- }
- }
- }
-
- template INVITE_Request mw_INVITE_Request(template Require p_require,
- SipUrl p_referredBy) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- require := p_require,
- referredBy := {
- fieldName := REFERRED_BY_E,
- nameAddr := {displayName := *, addrSpec := p_referredBy},
- referredbyIdParams := *
- }
- }
- }
-
- template REGISTER_Request mw_REGISTER_Request_Base modifies mw_REGISTER_Dummy :=
- {
- requestLine :=
- {
- method := REGISTER_E
- }
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Request_Base modifies mw_SUBSCRIBE_Dummy :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E
- }
- }
-
- template UPDATE_Request mw_UPDATE_Request_Base(template CallId p_callId) modifies mw_UPDATE_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- } //* end group request_receive
-
- group response_send {
-
- template Response m_Response_Base (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_Response_Dummy:=
- {
- statusLine := p_statusLine,
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- maxForwards := omit,
- toField := p_to,
- via := p_via
- },
- messageBody := omit,
- payload := omit
- }
-
-
-
- } //* end group response_send
-
- group response_receive {
-
- template Response mw_Response_Base (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Dummy:=
- {
- statusLine := p_statusLine,
- msgHeader :=
- {
- callId := p_callId,
- contentLength := *,
- cSeq := p_cSeq,
- fromField := ?,
- maxForwards := *,
- toField := ?,
- via := ?
- }
- }
- } //* end group message_receive
-
-} //* end group full_templates
-
-group modified_templates {
-
-group request_send {
-
- template ACK_Request m_ACK_Request_route (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route)
- modifies m_ACK_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template ACK_Request m_ACK_Request_sdp (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via,template MessageBody p_mb)
- modifies m_ACK_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- template BYE_Request m_BYE_Request_cause
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := m_Reason(p_cause) //* PIXIT value
- }
- }
-
- template INVITE_Request m_INVITE_Request_sdp
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template MessageBody p_mb)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_ResourceList
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template MessageBody p_mb)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := "application/resource-lists+xml"},
- contentDisposition := {
- fieldName := CONTENT_DISPOSITION_E,
- dispositionType := "recipient-list",
- dispositionParams := omit
- },
- require := {
- fieldName := REQUIRE_E,
- optionsTags := {"recipient-list-invite"}
- }
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_expires
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,
- template Authorization p_authorization, charstring p_expires)
- modifies m_REGISTER_Request_Base
- :=
- {
- msgHeader :=
- {
- authorization := p_authorization,
- expires := {
- fieldName := EXPIRES_E,
- deltaSec := p_expires }
- }
- }
-
- template NOTIFY_Request m_NOTIFY_Request_contact (
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact
- ) modifies m_NOTIFY_Request_Base
- :=
- {
- msgHeader :=
- {
- contact := p_contact,
- event := m_Event_reg,
- subscriptionState := m_SubscriptionState_active
- }
- }
-
- template NOTIFY_Request m_NOTIFY_Request_sipfrag (
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- charstring p_state,
- charstring p_sipfrag
- ) modifies m_NOTIFY_Request_Base := {
- requestLine :=
- {
- method := NOTIFY_E,
- requestUri :=
- { scheme := ?,
- components := {sip:={userInfo := *,
- hostPort:= p_requestUri.components.sip.hostPort}}
- }
- },
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(p_sipfrag)},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := "message/sipfrag"},
- subscriptionState := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- },
- event := m_Event_refer
- },
- messageBody := {
- sipfrag := p_sipfrag
- }
- }
-
-} //* end group request_send
-
-
-group request_receive {
-
- template BYE_Request mw_BYE_Request_Reason(template CallId p_callId, template charstring p_cause) modifies mw_BYE_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause)
- }
- }
-
- template BYE_Request mw_BYE_Request_ReasonSIP(template CallId p_callId, template charstring p_cause) modifies mw_BYE_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_ReasonSIP(p_cause)
- }
- }
-
- template BYE_Request mw_BYE_Request_headerfieldlist
- (
- template CallId p_callId,
- template SipUrl p_requestUri,
- template To p_to,
- template From p_from,
- template CSeq p_cSeq,
- template Route p_route,
- template RecordRoute p_recordRoute,
- template Reason p_reason
- ) modifies mw_BYE_Request_Base :=
- { requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- toField := p_to,
- fromField := p_from,
- cSeq := p_cSeq,
- route := p_route,
- recordRoute := p_recordRoute,
- reason := p_reason
- }
- }
-
- template BYE_Request mw_BYE_Request_UserToUser(template CallId p_callId) modifies mw_BYE_Request_Base :=
- {
- msgHeader :=
- {
- userToUser := ?
- }
- }
-
-
- template INVITE_Request mw_INVITE_Request_RequestURI (template SipUrl p_sipUrl) modifies mw_INVITE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_sipUrl,
- sipVersion := c_sipNameVersion
- }
- }
-
- template INFO_Request mw_INFO_Request_MB (template CallId p_callId, template MessageBody p_mb) modifies mw_INFO_Request_Base :=
- {
- messageBody := p_mb
- }
-
- template INVITE_Request mw_INVITE_Request_expires modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {expires := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_callid(CallId p_callid) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {callId := p_callid}
- }
-
- template INVITE_Request mw_INVITE_Request_MB (template CallId p_callId, template MessageBody p_mb) modifies mw_INVITE_Request_Base :=
- {
- msgHeader := {callId := p_callId},
- messageBody := p_mb
- }
-
- template INVITE_Request mw_INVITE_Request_noPaccessNetworkInfo (template CallId p_callId)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
- template INVITE_Request mw_INVITE_Request_PaccessNetworkInfo (template CallId p_callId)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := ?}
- }
-
- template INVITE_Request mw_INVITE_MSRP_Session(
- in template SDP_media_field p_media_MSRP
- ) modifies mw_INVITE_Request_Base := {
- messageBody := {
- sdpMessageBody := {
- protocol_version := ?,
- origin := ?,
- session_name := ?,
- information := *,
- uri := *,
- emails := *,
- phone_numbers := *,
- connection := *,
- bandwidth := *,
- times := ?,
- timezone_adjustments := *,
- key := *,
- attributes := *,
- media_list := {
- {
- media_field := p_media_MSRP,
- information := *,
- connections := *,
- bandwidth := *,
- key := *,
- attributes := {
- {
- msrp := {
- attr_value := pattern "path:msrp://*" // FIXME Shall parse msrp and msrps for secured msrp
- }
- }
- }
- }
- }
- }
- }
- }
-
- template UPDATE_Request mw_UPDATE_Request_SDP(template CallId p_callId, template MessageBody p_mb) modifies mw_UPDATE_Dummy :=
- {
- messageBody := p_mb
- }
-
- template NOTIFY_Request mw_NOTIFY_Request_MB (template CallId p_callId, template MessageBody p_mb) modifies mw_NOTIFY_Request_Base :=
- {
- messageBody := p_mb
- }
-
-} //* end group request_receive
-
-group response_send {
-
- template Response m_Response_AlertInfo (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact,
- template AlertInfo p_alertInfo
- ) modifies m_Response_Base:= {
- msgHeader := {
- alertInfo := p_alertInfo,
- contact := p_contact
- }
- }
-
- template Response m_Response_Contact (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact
- ) modifies m_Response_Base:= {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template Response m_Response_ext (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute) modifies m_Response_Base:=
- {
- msgHeader :={
- route := p_route, //f_route(),
- recordRoute := p_recordroute //f_recordroute()
- }
- }
-
- template Response m_Response_mbody (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template MessageBody p_mb) modifies m_Response_ext:=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- template Response m_Response_mbody_contact (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template MessageBody p_mb, template Contact p_contact) modifies m_Response_mbody:=
- {
- msgHeader :=
- {
- contact := p_contact
- }
- }
-
- template Response m_Response_PAsserted_Privacy (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_ext:=
- {
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_Supported (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- supported := p_supported
- }
- }
-
- template Response m_Response_PAsserted_Privacy_mbody (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template PAssertedID p_pAssertedID, template Privacy p_privacy, MessageBody p_mb) modifies m_Response_ext:=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- },
- messageBody := p_mb
- }
-
-} //* end group response_send
-
-
-group response_receive {
-
- template Response mw_Response_Expires (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template DeltaSec p_deltaSec) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template Response mw_Response_PAsserted_Privacy (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- template Response mw_Response_Reason (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template charstring p_cause) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response mw_Response_RecordRoute (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template RecordRoute p_recordRoute) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- recordRoute := p_recordRoute
- }
- }
-
- template Response mw_Response_Via (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Via p_via) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- via := p_via
- }
- }
-
- template Response mw_Response_Contact (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Contact p_contact) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- contact := p_contact
- }
- }
-
- template Response mw_Response_AlertInfo (
- template StatusLine p_statusLine,
- template CallId p_callId,
- template CSeq p_cSeq,
- template AlertInfo p_alertInfo
- ) modifies mw_Response_Base:= {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := p_statusLine.statusCode,
- reasonPhrase := ?
- },
- msgHeader :=
- {
- alertInfo := p_alertInfo
- }
- }
-
- template Response mw_Response_HistoryInfo (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- historyInfo:=p_historyInfo
- }
- }
-
- template Response mw_Response_messageBody (
- template StatusLine p_statusLine,
- template CallId p_callId,
- template CSeq p_cSeq,
- template Require p_require,
- template MessageBody p_mb
- ) modifies mw_Response_Base:= {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- require := p_require
- },
- messageBody := p_mb
- }
-
- template Response mw_Response_Require (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Require p_require) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- require := p_require
- }
- }
-
- template Response mw_Response_Require_ifpresent (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Require p_require) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- require := p_require ifpresent
- }
- }
-
- template Response mw_Response_Supported (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Supported p_supported) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- supported := p_supported
- }
- }
-
- template Response mw_Response_UserToUser (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- userToUser := ?
- }
- }
-
- template Response mw_Response_Algorithm (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template CredentialsList p_credentialsList) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- authorization:= {fieldName := AUTHORIZATION_E, body := p_credentialsList }
- }
- }
-} //* end group response_receive
-
-
-} //* end group modified_templates
-
-} //* end group MessageTemplates
-
-group SDP_Templates {
-
- group SDP_Messages {
-
- group base_templates {
-
- template SDP_Message m_SDP(SDP_media_desc p_media, in SipUserProfile p_userprofile) := {
- protocol_version := 0, //* v=0
- origin := {
- user_name := "voicesession",
- session_id := "30000",
- session_version := "0",
- net_type := c_in,
- addr_type := c_ip4,
- addr := p_userprofile.contactIpaddr },
- //* o=voicesession 12345 12345 IN IP4 172.27.1.219
- session_name := "Voice Session", //* s=Voice Session
- information := omit,
- uri := omit,
- emails := omit,
- phone_numbers := omit,
- connection := {
- net_type := c_in,
- addr_type := c_ip4,
- conn_addr := { addr:= p_userprofile.bearerIpaddr, ttl:=omit, num_of_addr:=omit }
- }, //* c=IN IP4 172.27.1.219
- bandwidth := omit,
- times := { { time_field := { "0", "0" }, time_repeat:=omit
- }
- }, //* t=0 0
- timezone_adjustments := omit,
- key := omit,
- attributes := omit,
- media_list := {p_media}
- };
-
- template SDP_Message m_SDP_mediaList(SDP_media_desc_list p_media_list, in SipUserProfile p_userprofile)
- := {
- protocol_version := 0, //* v=0
- origin := {
- user_name := "voicesession",
- session_id := "30000",
- session_version := "0",
- net_type := c_in,
- addr_type := c_ip4,
- addr := p_userprofile.contactIpaddr },
- //* o=voicesession 12345 12345 IN IP4 172.27.1.219
- session_name := "Voice Session", //* s=Voice Session
- information := omit,
- uri := omit,
- emails := omit,
- phone_numbers := omit,
- connection := {
- net_type := c_in,
- addr_type := c_ip4,
- conn_addr := { addr:= p_userprofile.bearerIpaddr, ttl:=omit, num_of_addr:=omit }
- }, //* c=IN IP4 172.27.1.219
- bandwidth := omit,
- times := { { time_field := { "0", "0" }, time_repeat:=omit
- }
- }, //* t=0 0
- timezone_adjustments := omit,
- key := omit,
- attributes := omit,
- media_list := p_media_list
- };
-
- template SDP_Message m_SDP_media_attr_preconditions(SDP_media_desc p_media, in SipUserProfile p_userprofile, SDP_attribute_list p_attribute_list)
- modifies m_SDP
- := {
- media_list := {
- {
- media_field := {
- media := c_audio,
- ports := { port_number := 8500, num_of_ports:=omit },
- transport := c_rtpAvp,
- fmts := { "0" }
- }, //* m=audio 8500 RTP/AVP 0
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := p_attribute_list
- }}
- }
-
- template SDP_Message m_SDP_attribute(SDP_media_desc p_media, in SipUserProfile p_userprofile, SDP_attribute loc_attribute)
- modifies m_SDP
- := {
- attributes := {loc_attribute}
- };
-
- template SDP_Message mw_SDP := {
- protocol_version := 0, //* v=0
- origin := ?,
- session_name := ?,
- information := omit,
- uri := omit,
- emails := omit,
- phone_numbers := omit,
- connection := ?,
- bandwidth := omit,
- times := { { time_field := { "0", "0" }, time_repeat:=omit
- }
- }, //* t=0 0
- timezone_adjustments := omit,
- key := omit,
- attributes := omit,
- media_list := ?
- };
-
-
- }//* end group base_templates
-
- group modified_templates{
- template SDP_Message m_SDP_bandwidth(SDP_media_desc p_media, in SipUserProfile p_userprofile)
- modifies m_SDP
- := {
- bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
- };
-
- template SDP_Message m_SDP_unacceptable(SDP_media_desc p_media, in SipUserProfile p_userprofile)
- modifies m_SDP
- := {
- protocol_version := 1, //* v=1 unacceptable version of SDP
- bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
- };
-
- template SDP_Message m_SDP_encrypted(SDP_media_desc p_media, in SipUserProfile p_userprofile)
- modifies m_SDP
- := {
- protocol_version := 0,
- bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}},
- key := {
- method := "base64", //prompt
- key := "blablabla"
- }
-
- };
- }//* end group modified_templates
-
- } //* end group SDP_Messages
-
- group SDP_Fields {
-
- template SDP_media_desc m_media(template SDP_media_field p_mf) := {
- media_field := p_mf,
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := omit
- };
-//TODO - delete old
-// template SDP_media_desc m_mediaFieldBandwdthAttributes(template SDP_media_field p_mf, template SDP_bandwidth p_bw, template SDP_attribute_list p_attributes) := {
-// media_field := p_mf,
-// information := omit,
-// connections := omit,
-// bandwidth := {p_bw},
-// key := omit,
-// attributes := p_attributes
-// };
-
- template SDP_media_desc m_mediaFieldBandwdthAttributes(template SDP_media_field p_mf, template SDP_bandwidth_list p_bw_l, template SDP_attribute_list p_attributes) := {
- media_field := p_mf,
- information := omit,
- connections := omit,
- bandwidth := p_bw_l,
- key := omit,
- attributes := p_attributes
- };
-
- template SDP_media_desc m_media_dynPT(charstring p_PT, charstring p_encod, template SDP_key p_sdpKey:= omit) := {
- media_field := {
- media := c_audio,//* "audio",
- ports := { port_number := 8500, num_of_ports:=omit },
- transport := c_rtpAvp,//* "RTP/AVP",
- fmts := { p_PT }
- }, //* m=audio 8500 RTP/AVP 8
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := p_sdpKey,
- attributes := { { rtpmap := { attr_value := p_PT & " " & p_encod }
- }
- } //* a=rtpmap:8 PCMA/8000
- };
-
- template SDP_media_desc m_media_unsupported := {
- media_field := {
- media := "video",
- ports := { port_number := 11500, num_of_ports:=omit },
- transport := "RTP/AVP",
- fmts := { "99" }
- }, //* m=audio 8500 RTP/AVP 0
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := { {
- rtpmap := { attr_value := "99 X-Experimental/180000"}
- }}
- };
-
- template SDP_bandwidth m_bandwidth(template charstring loc_m, template integer loc_b) := {
- modifier:=loc_m,
- bandwidth:=loc_b
- };
-
- template SDP_bandwidth m_bandwidth_as_64:=
- {
- modifier:="AS",
- bandwidth:=64
- }
-
- template SDP_bandwidth mw_bandwidth_rs:=
- {
- modifier:="RS",
- bandwidth:=?
- }
-
- template SDP_bandwidth mw_bandwidth_rr:=
- {
- modifier:="RR",
- bandwidth:=?
- }
-
- template SDP_media_field m_media_field(charstring p_media, integer p_portNum, charstring p_transport, charstring p_fmts) :=
- {
- media := p_media,
- ports := { port_number := p_portNum, num_of_ports:=omit },
- transport := p_transport,
- fmts := { p_fmts }
- }
-
- template SDP_media_field mw_media_PCMU :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := c_rtpAvp,
- fmts := { "0" }
- }
-
- template SDP_media_field mw_media_PCMA :=
- {
- media := c_audio,
- ports := { port_number := 8500, num_of_ports:=omit },
- transport := c_rtpAvp,
- fmts := { "8" }
- }
-
- template SDP_media_field mw_media_PCMA_U_DPT :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := c_rtpAvp,
- fmts := { * }
- }
-
- template SDP_media_field mw_media_T38 :=
- {
- media := c_image,
- ports := { port_number := ?, num_of_ports:=* },
- transport := pattern "*ptl", //* udptl,tcptl
- fmts := { "t38" }
- }
-
- template SDP_media_field mw_media_G722 :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := "RTP/AVP",
- fmts := { "9" }
- }
-
- template SDP_media_field mw_media_AMR_DPT :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := c_rtpAvp,
- fmts := { * }
- }
-
- template SDP_media_field mw_media_MSRP :=
- {
- media := c_msrp,
- ports := { port_number := ?, num_of_ports:=omit },
- transport := c_msrpTcp,
- fmts := { * }
- }
-
-
- template SDP_attribute m_attribute_sendonly := {sendonly:={}};
- template SDP_attribute mw_attribute_sendonly := {sendonly:={}};//MRO
- template SDP_attribute m_attribute_recvonly := {recvonly:={}};
- template SDP_attribute mw_attribute_recvonly := {recvonly:={}};//MRO
- template SDP_attribute m_attribute_sendrecv := {sendrecv:={}};
- template SDP_attribute mw_attribute_sendrecv := {sendrecv:={}};//MRO
- template SDP_attribute m_attribute_inactive := {inactive:={}};
- template SDP_attribute mw_attribute_inactive := {inactive:={}};//MRO
- template SDP_attribute mw_attribute_sendonly_inactive := (mw_attribute_sendonly,mw_attribute_inactive);
- template SDP_attribute mw_attribute_sendrecv_recvonly_omit := (mw_attribute_sendrecv,mw_attribute_recvonly,omit);
- template SDP_attribute m_attribute_AMR_DPT := { rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " AMR" }};
- template SDP_attribute m_attribute_CLEARMODE_DPT := {rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " CLEARMODE/8000" }};
- template SDP_attribute m_attribute_G722 := { rtpmap := { attr_value := "9 G722/8000" }};
- template SDP_attribute m_attribute_PCMU := { rtpmap := { attr_value := "0 PCMU/8000" }};
- template SDP_attribute m_attribute_PCMU_DPT := { rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " PCMU/8000" }};
- template SDP_attribute m_attribute_PCMA := { rtpmap := { attr_value := "8 PCMA/8000" }};
- template SDP_attribute m_attribute_PCMA_DPT := { rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " PCMA/8000" }};
- template SDP_attribute m_attribute_T38 := { unknown := { name:=?, attr_value := pattern "*t38*" }};
-
- template SDP_attribute m_attribute_curr (charstring p_preconditionType, charstring p_statusType, charstring p_direction):=
- {
- curr:={preconditionType := p_preconditionType,
- statusType := p_statusType,
- direction := p_direction}
- };
-
- template SDP_attribute mw_attribute_curr :=
- {
- curr := ?
- };
-
- template SDP_attribute m_attribute_des (charstring p_preconditionType, charstring p_strength, charstring p_statusType, charstring p_direction):=
- {
- des:={preconditionType := p_preconditionType,
- strength := p_strength,
- statusType := p_statusType,
- direction := p_direction}
- };
-
- template SDP_attribute mw_attribute_des :=
- {
- des := ?
- };
-
- template SDP_attribute m_attribute_conf (charstring p_preconditionType, charstring p_statusType, charstring p_direction):=
- {
- conf:={preconditionType := p_preconditionType,
- statusType := p_statusType,
- direction := p_direction}
- };
- } //* end group SDP_Fields
-
-} //* end group SDP_Templates
-
-group SimpleMsgSummary_Templates {
-
- template SimpleMsgSummary m_SMS(template Msg_summary_line_list p_summaryLineList, template charstring p_uri) :=
- {
- msg_status_line := m_msgStatusLine_yes,
- msg_account := m_msgAccount(p_uri),
- msg_summary_line_list :=p_summaryLineList,
- opt_msg_headers := omit
- }
-
- template SimpleMsgSummary mw_SMS :=
- {
- msg_status_line := ?,
- msg_account := *,
- msg_summary_line_list := *,
- opt_msg_headers := *
- }
-
- template SimpleMsgSummary mw_SMS_yes :=
- {
- msg_status_line := mw_msgStatusLine_yes,
- msg_account := *,
- msg_summary_line_list := *,
- opt_msg_headers := *
- }
-
- template SimpleMsgSummary mw_SMS_yesUri :=
- {
- msg_status_line := mw_msgStatusLine_yes,
- msg_account := mw_msgAccount,
- msg_summary_line_list := *,
- opt_msg_headers := *
- }
-
- template SimpleMsgSummary mw_SMS_yesVoice :=
- {
- msg_status_line := mw_msgStatusLine_yes,
- msg_account := *,
- msg_summary_line_list := {mw_msgSummaryLine(c_voiceMessage)},
- opt_msg_headers := *
- }
-
- template SimpleMsgSummary mw_SMS_yesUriVoice :=
- {
- msg_status_line := mw_msgStatusLine_yes,
- msg_account := mw_msgAccount,
- msg_summary_line_list := {mw_msgSummaryLine(c_voiceMessage)},
- opt_msg_headers := *
- }
-
- template Msg_status_line m_msgStatusLine_yes:=
- {
- msg_type := c_messageWaiting,
- msg_status := "yes"
- }
-
- template Msg_status_line mw_msgStatusLine_yes:=
- {
- msg_type := c_messageWaiting,
- msg_status := "yes"
- }
-
- template Msg_account m_msgAccount(template charstring p_uri) :=
- {
- msg_type_account := c_messageAccount,
- account_URI := p_uri//m_SipUrl_NumberHostParam(PX_IMS_SUT_UE2_PUBLIC_USER,PX_IMS_SUT_UE2_HOME_DOMAIN,omit)
- }
-
- template Msg_account mw_msgAccount :=
- {
- msg_type_account := c_messageAccount,
- account_URI := ?
- }
-
- template Msg_summary_line m_msgSummaryLine(template charstring p_msgContexClass,template charstring p_msgs,template charstring p_urgent_msgs) :=
- {
- msg_context_class := p_msgContexClass,
- msgs := p_msgs,
- urgent_msgs := p_urgent_msgs
- }
-
- template Msg_summary_line mw_msgSummaryLine(template charstring p_msgContexClass) :=
- {
- msg_context_class := p_msgContexClass,
- msgs := ?,
- urgent_msgs :=*
- }
-
-} //end group Templates_SMS
-
-group MessageBodies {
-
- template MessageBody m_MBody_SDP(template SDP_Message p_SDP):=
- {
- sdpMessageBody := p_SDP
- };
-
- template MessageBody m_MBody_XML(template XmlBody p_xmlBody):=
- {
- xmlBody := p_xmlBody
- };
-
- template MessageBody m_mBody_SMS(template SimpleMsgSummary p_SMS):=
- {
- simpleMsgSummary := p_SMS
- };
-
- template MessageBody m_MBody_longPlainText:=
- {
- textplain := c_longMessageContent_1300Bytes
- };
-
- template MessageBody m_mBody_plainText(charstring p_plaitext):=
- {
- textplain := p_plaitext
- };
-
- template MessageBody m_MBody_sipfrag(charstring p_sipfrag) := {
- sipfrag := p_sipfrag
- }
-
- template MessageBody m_MBody_MIMESdpXml(template SDP_Message p_sdp, template XmlBody p_xmlBody):=
- {
- mimeMessageBody := {boundary:="--boundary1", //"PX_SIP_MIME_Boundary",
- mimeEncapsulatedList:= {
- {content_type:="application/sdp",//"PX_SIP_SDP_ContentType",
- content_disposition:=omit,
- mime_encapsulated_part:={sdpMessageBody := p_sdp}},
- {content_type:="application/vnd.3gpp.cw+xml",//"PX_SIP_ISUP_ContentType",
- content_disposition:=omit,
- mime_encapsulated_part:={xmlBody := p_xmlBody}}
- }
- }
- }
-
-
- template MessageBody m_MBody_MIMESdpEncrypted(template SDP_Message p_sdp):=
- {
- mimeMessageBody := {boundary:="--boundary1", //"PX_SIP_MIME_Boundary",
- mimeEncapsulatedList:= {
- {content_type:="application/sdp",//"PX_SIP_SDP_ContentType",
- //TODO add "Content-Transfer-Encoding:base64"
- content_disposition:="attachment;handling=required;filename=smime.p7", //TODO use PIXIT
- mime_encapsulated_part:={sdpMessageBody := p_sdp}}
- }
- }
- }
-
- template MessageBody mw_MBody_SDP(template SDP_Message p_SDP):=
- {
- sdpMessageBody := p_SDP
- };
-
- template MessageBody mw_MBody_XML(template XmlBody p_xmlBody):=
- {
- xmlBody := p_xmlBody
- };
-
- template MessageBody mw_mBody_SMS(template SimpleMsgSummary p_SMS):=
- {
- simpleMsgSummary := p_SMS
- };
-
- template MessageBody mw_MBody_MIMESdpXml(template SDP_Message p_sdp, template XmlBody p_xmlBody):=
- {
- mimeMessageBody := {boundary:=?,
- mimeEncapsulatedList:= {
- {content_type:=?,
- content_disposition:=*,
- mime_encapsulated_part:={sdpMessageBody := p_sdp}},
- {content_type:=?,
- content_disposition:=*,
- mime_encapsulated_part:={xmlBody := p_xmlBody}}
- }
- }
- }
-
- template MessageBody mw_MBody_MIME_Ims3gpp(
- template charstring p_disposition,
- template Ims_3gpp p_ims3gpp
- ):= {
- mimeMessageBody := {boundary:=?,
- mimeEncapsulatedList:= {
- *,
- {
- content_type:= c_ims3gppAplication,
- content_disposition:= p_disposition,
- mime_encapsulated_part :={
- xmlBody := {
- ims3gpp := p_ims3gpp
- }
- }
- },
- *
- }
- }
- }
-
- template MessageBody mw_MBody_MIME_Ims3gppCW(
- template charstring p_disposition,
- template Ims_3gpp p_ims3gpp
- ):= {
- mimeMessageBody := {boundary:=?,
- mimeEncapsulatedList:= {
- *,
- {
- content_type:= c_ims3gppCwApplication,
- content_disposition:= p_disposition,
- mime_encapsulated_part :={
- xmlBody := {
- ims3gpp := p_ims3gpp
- }
- }
- },
- *
- }
- }
- }
-
-}
-/*
- *
- * @desc group TemplatePreparationFunctions contain functions which are used for templates
- */
-group TemplatePreparationFunctions {
-
- group MessageBody_Calculation{
-
- /**
- *
- * @desc Calculation of Message Body length
- * @param p_mb_par contain message body part
- * @return message body length
- */
- function f_MessageBodyLength(MessageBody p_mb_par) return integer {
-
- var integer v_result:=0;
- if (MB_LENGTH_FROM_ENCVAL){ //by default it is set to true
-
- v_result:= lengthof(encvalue(p_mb_par))/8; // length in bypes, let get length of encoded value
- }
- else{
-
- // assume SDP_Message ONLY in the message body
- if (ischosen(p_mb_par.sdpMessageBody))
- {
- v_result := f_SDPlength(p_mb_par.sdpMessageBody);
- };
-
- // assume XML_Body ONLY in the message body
- if (ischosen(p_mb_par.xmlBody))
- {
- v_result := f_XMLBody_Length(p_mb_par.xmlBody, USE_FX_FOR_XML_LENGTH );
- };
-
- // assume simpleMsgSummary_Body ONLY in the message body
- if (ischosen(p_mb_par.simpleMsgSummary))
- {
- v_result := f_simpleMsgSummaryBody_Length(p_mb_par.simpleMsgSummary );
- };
-
- // assume MIME_Message in the message body
- if (ischosen(p_mb_par.mimeMessageBody))
- {
- v_result := f_MIMElength(p_mb_par.mimeMessageBody);
- };
-
- //assume sipfrag in the message body
- if (ischosen(p_mb_par.sipfrag))
- {
- v_result := f_TextPlainLength(p_mb_par); //same function due to same type with textplain
- };
-
- //assume textplain in the message body
- if (ischosen(p_mb_par.textplain))
- {
- v_result := f_TextPlainLength(p_mb_par);
- };
- }
-
- return v_result
- }
-
-
- group SDP_Len_calculation {
- /**
- *
- * @desc Calculation of SDP length
- * @param p_mb contain sdp message
- * @return sdp_lenght
- */
- function f_SDPlength(SDP_Message p_mb) return integer
- {
- var integer v_result:=2; //* due to empty line beginning of message body
- var charstring v_auxstring;
-
- v_result := 2 + c_CRlen + lengthof(int2str(p_mb.protocol_version)); //* "v="
- v_auxstring := p_mb.origin.user_name & " " & p_mb.origin.session_id & " " & p_mb.origin.session_version & " " & p_mb.origin.net_type & " " & p_mb.origin.addr_type & " " & p_mb.origin.addr;
- v_result := v_result + 2 + c_CRlen + lengthof(v_auxstring); //* "o="
- v_result := v_result + 2 + c_CRlen + lengthof(p_mb.session_name); //* "s="
- if (ispresent(p_mb.information))
- {v_auxstring:=p_mb.information; v_result := v_result + 2 + c_CRlen + lengthof(v_auxstring);}; //* "i= "
- if (ispresent(p_mb.uri))
- {v_auxstring:=p_mb.uri; v_result := v_result + 2 + c_CRlen + lengthof(v_auxstring);}; //* "u="
-
- if (ispresent(p_mb.emails)) {
- for (var integer i:=0; i<sizeof(p_mb.emails); i:=i+1)
- {v_result := v_result + 2 + c_CRlen + lengthof(p_mb.emails[i].addr_or_phone); //* "e="
- if (ispresent(p_mb.emails[i].disp_name))
- {v_auxstring:=p_mb.emails[i].disp_name; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- };
-
- if (ispresent(p_mb.phone_numbers)) {
- for (var integer i:=0; i<sizeof(p_mb.phone_numbers); i:=i+1)
- {v_result := v_result + 2 + c_CRlen + lengthof(p_mb.phone_numbers[i].addr_or_phone); //* "p= "
- if (ispresent(p_mb.phone_numbers[i].disp_name))
- {v_auxstring:=p_mb.phone_numbers[i].disp_name; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- };
-
- if (ispresent(p_mb.connection))
- {
- var integer v_len_con0 := f_SDPlength_connection(p_mb.connection);
- v_result := v_result + v_len_con0;
- }; //* "c="
-
- if (ispresent(p_mb.bandwidth))
- {
- for (var integer i:=0; i<sizeof(p_mb.bandwidth); i:=i+1) { //* "b= "
- v_auxstring:= p_mb.bandwidth[i].modifier & " ";
- v_result := v_result + 2 + c_CRlen + lengthof(v_auxstring) +
- lengthof(int2str(p_mb.bandwidth[i].bandwidth));
- };
- };
-
- for (var integer i:=0; i<sizeof(p_mb.times); i:=i+1) {
- v_auxstring:= p_mb.times[i].time_field.start_time & " " & p_mb.times[i].time_field.stop_time;
- v_result := v_result + 2 + c_CRlen + lengthof(v_auxstring);//* "t="
-
- if (ispresent(p_mb.times[i].time_repeat))
- {
- for (var integer j:=0; j<sizeof(p_mb.times[i].time_repeat); j:=j+1)
- {
- v_result := v_result + 2 + c_CRlen + lengthof(int2str(p_mb.times[i].time_repeat[j].repeat_interval.time)); //* "r="
- if (ispresent(p_mb.times[i].time_repeat[j].repeat_interval.unit))
- {
- v_auxstring:=p_mb.times[i].time_repeat[j].repeat_interval.unit;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
-
- v_result := v_result + 1 + lengthof(int2str(p_mb.times[i].time_repeat[j].active.time));
- if (ispresent(p_mb.times[i].time_repeat[j].active.unit))
- {
- v_auxstring:=p_mb.times[i].time_repeat[j].active.unit;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
-
- for (var integer k:=0; k<sizeof(p_mb.times[i].time_repeat[j].offsets); k:=k+1)
- {
- v_result := v_result + 1 + lengthof(int2str(p_mb.times[i].time_repeat[j].offsets[k].time));
- if (ispresent(p_mb.times[i].time_repeat[j].offsets[k].unit))
- {
- v_auxstring:=p_mb.times[i].time_repeat[j].offsets[k].unit;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
- }
- }
- };
- };
-
- if (ispresent(p_mb.timezone_adjustments))
- {log("timezone adjustments have not been considered in SDP length calculation yet");
- }; //* "z="
-
- if (ispresent(p_mb.key)) {
- v_result := v_result + 2 + c_CRlen + lengthof(p_mb.key.method); //* "k= "
- if (ispresent(p_mb.key.key))
- {v_auxstring:=p_mb.key.key; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- if (ispresent(p_mb.attributes)) {
- for (var integer i:=0; i<sizeof(p_mb.attributes); i:=i+1){ //* "a= "
- var integer v_len_con1 := f_SDPlength_attribute(p_mb.attributes[i]);
- v_result := v_result + v_len_con1;
- };
- }; //* "a="
-
- if (ispresent(p_mb.media_list))
- {
- for (var integer i:=0; i<sizeof(p_mb.media_list); i:=i+1){ //* "m= "
-
- //* for each media_field
- //* log("p_mb.media_list[i] ",p_mb.media_list[i]);
- v_result := v_result + 2 + c_CRlen + lengthof(p_mb.media_list[i].media_field.media)
- + 1 + lengthof(int2str(p_mb.media_list[i].media_field.ports.port_number));
-
-
- if (ispresent(p_mb.media_list[i].media_field.ports.num_of_ports))
- {v_result := v_result + 1 + lengthof(int2str(p_mb.media_list[i].media_field.ports.num_of_ports));};
- v_result := v_result + 1 + lengthof(p_mb.media_list[i].media_field.transport);
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].media_field.fmts); j:=j+1){
- v_result := v_result + 1 + lengthof(valueof(p_mb.media_list[i].media_field.fmts[j]));
- }
-
- if (ispresent(p_mb.media_list[i].information)) {
- v_auxstring:=p_mb.media_list[i].information;
- v_result := v_result + 2 + c_CRlen + lengthof(v_auxstring); //* "i= "
- };
- if (ispresent(p_mb.media_list[i].connections)) {
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].connections); j:=j+1){
- var integer v_len_con2 := f_SDPlength_connection(p_mb.media_list[i].connections[j]);
- v_result := v_result + v_len_con2;
- }; //* end for
- };
- if (ispresent(p_mb.media_list[i].bandwidth)) { //* "b= "
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].bandwidth); j:=j+1){
- v_result := v_result + 2 + c_CRlen + lengthof(p_mb.media_list[i].bandwidth[j].modifier)
- + 1 + lengthof(int2str(p_mb.media_list[i].bandwidth[j].bandwidth));
- }; //* end for
- };
- if (ispresent(p_mb.media_list[i].key)) { //* "k= "
- v_result := v_result + 1 + lengthof(p_mb.media_list[i].key.method);
- if (ispresent(p_mb.media_list[i].key.key)) {
- v_auxstring := p_mb.media_list[i].key.key;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
- };
- if (ispresent(p_mb.media_list[i].attributes)) {
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].attributes); j:=j+1){ //* "a= "
- var integer v_len_attr := f_SDPlength_attribute(p_mb.media_list[i].attributes[j]);
- v_result := v_result + v_len_attr;
- } //* end for j
- };
- }; //* end for i
- }; //* end if media_list
-
- return v_result;
- };//* end function f_SDPlength
-
- function f_SDPlength_connection(SDP_connection p_element) return integer //* "c="
- {
- var integer v_result:=0;
- var charstring v_auxstring;
- v_result := v_result + 2 + c_CRlen + lengthof(p_element.net_type & " " &
- p_element.addr_type & " " &
- p_element.conn_addr.addr);
- if (ispresent(p_element.conn_addr.ttl) and p_element.conn_addr.ttl>0)
- {v_result := v_result + 1 + lengthof(int2str(p_element.conn_addr.ttl));};
- if (ispresent(p_element.conn_addr.num_of_addr) and p_element.conn_addr.num_of_addr>0)
- {v_result := v_result + 1 + lengthof(int2str(p_element.conn_addr.num_of_addr));};
- return v_result
- } //* f_SDPlength_connection
-
- function f_SDPlength_attribute(SDP_attribute p_element) return integer //* "a="
- {
- var integer v_result:=0;
- var charstring v_auxstring;
- if (ischosen(p_element.cat)) {v_result := v_result + 2 + c_CRlen + lengthof("cat:" & p_element.cat.attr_value)};
- if (ischosen(p_element.keywds)) {v_result := v_result + 2 + c_CRlen + lengthof("keywds:" & p_element.keywds.attr_value)};
- if (ischosen(p_element.tool)) {v_result := v_result + 2 + c_CRlen + lengthof("tool:" & p_element.tool.attr_value)};
- if (ischosen(p_element.ptime)) {v_result := v_result + 2 + c_CRlen + lengthof("ptime:" & p_element.ptime.attr_value)};
- if (ischosen(p_element.recvonly)) {v_result := v_result +c_CRlen + lengthof("recvonly")};
- if (ischosen(p_element.sendrecv)) {v_result := v_result +c_CRlen + lengthof("sendrecv")};
- if (ischosen(p_element.sendonly)) {v_result := v_result +c_CRlen + lengthof("sendonly")};
- if (ischosen(p_element.inactive)) {v_result := v_result +c_CRlen + lengthof("inactive")};
- if (ischosen(p_element.orient)) {v_result := v_result + 2 + c_CRlen + lengthof("orient:" & p_element.orient.attr_value)};
- if (ischosen(p_element.sdp_type)) {v_result := v_result + 2 + c_CRlen + lengthof("type:" & p_element.sdp_type.attr_value)};
- if (ischosen(p_element.charset)) {v_result := v_result + 2 + c_CRlen + lengthof("charset" & p_element.charset.attr_value)};
- if (ischosen(p_element.sdplang)) {v_result := v_result + 2 + c_CRlen + lengthof("sdplang:" & p_element.sdplang.attr_value)};
- if (ischosen(p_element.lang)) {v_result := v_result + 2 + c_CRlen + lengthof("lang:" & p_element.lang.attr_value)};
- if (ischosen(p_element.framerate)) {v_result := v_result + 2 + c_CRlen + lengthof("framerate:" & p_element.framerate.attr_value)};
- if (ischosen(p_element.quality)) {v_result := v_result + 2 + c_CRlen + lengthof("quality:" & p_element.quality.attr_value)};
- if (ischosen(p_element.fmtp)) {v_result := v_result + 2 + c_CRlen + lengthof("fmtp:" & p_element.fmtp.attr_value)};
- if (ischosen(p_element.curr)) {v_result := v_result + 2 + c_CRlen + lengthof("curr:" & p_element.curr.preconditionType & " "
- & p_element.curr.statusType & " " & p_element.curr.direction)};
- if (ischosen(p_element.des)) {v_result := v_result + 2 + c_CRlen + lengthof("des:" & p_element.des.preconditionType & " "
- & p_element.des.strength & " " & p_element.des.statusType & " " & p_element.des.direction)};
- if (ischosen(p_element.conf)) {v_result := v_result + 2 + c_CRlen + lengthof("conf:" & p_element.conf.preconditionType & " "
- & p_element.des.statusType & " " & p_element.des.direction)};
- if (ischosen(p_element.rtpmap)) {v_result := v_result + 2 + c_CRlen + lengthof("rtpmap:" & p_element.rtpmap.attr_value)};
- if (ischosen(p_element.rtcp)) {v_result := v_result + 2 + c_CRlen + lengthof("rtcp:" & p_element.rtcp.attr_value)};
- if (ischosen(p_element.unknown))
- {v_result := v_result + 2 + c_CRlen + lengthof(p_element.unknown.name);
- if (ispresent(p_element.unknown.attr_value))
- {var charstring aux := p_element.unknown.attr_value;
- v_result := v_result + lengthof(":" & p_element.unknown.attr_value);
- };
- };
- //* log("axr: length attribute=", v_result);
- return v_result
- } //* f_SDPlength_attribute
-
- } //* group SDPlen_calculation
-
- group XML_Len_calculation{
-
- /**
- * @desc Declaration of external functions to calculate length of message bodies
- * switching of internal or external functions are made by boolean module parameter/PIXIT
- * USE_FX_FOR_XML_LENGTH declared at top of this module
- */
-
- external function fx_calculateXMLBodyLen(XmlBody p_mb) return integer;
-
- /**
- *
- * @desc Calculation of XML body length
- * @param p_mb contain XML body
- * @return xml_length
- */
- function f_XMLBody_Length(XmlBody p_mb, boolean p_ext_func) return integer
- {
- var integer v_result:=0;
-
- if ( p_ext_func){
- v_result := fx_calculateXMLBodyLen(p_mb);
- }else{
- // assume ConferenceInfo ONLY in the XML message body
- if (ischosen(p_mb.conference))
- {
- v_result := f_XMLBody_ConferenceInfo_Length(p_mb.conference);
- };
-
- // assume CUG ONLY in the XML message body
- if (ischosen(p_mb.cug))
- {
- v_result := f_XMLBody_Cug_Length(p_mb.cug);
- };
-
- // assume MCID ONLY in the XML message body
- if (ischosen(p_mb.mcid))
- {
- v_result := f_XMLBody_Mcid_Length(p_mb.mcid);
- };
-
- // assume CW ONLY in the XML message body
- if (ischosen(p_mb.cw))
- {
- v_result := f_XMLBody_Cw_Length(p_mb.cw);
- };
-
- // assume CDIV ONLY in the XML message body
- if (ischosen(p_mb.cdivn))
- {
- v_result := f_XMLBody_Cdivn_Length(p_mb.cdivn);
- };
-
- // assume PSTNTransit ONLY in the XML message body
- if (ischosen(p_mb.pstnTransit))
- {
- v_result := f_XMLBody_PSTNTransit_Length(p_mb.pstnTransit);
- };
-
- // assume Simservs ONLY in the XML message body
- if (ischosen(p_mb.simservs))
- {
- v_result := f_XMLBody_Simservs_Length(p_mb.simservs);
- };
-
- // assume ResourceLists ONLY in the XML message body
- if (ischosen(p_mb.resourceLists))
- {
- v_result := f_XMLBody_ResourceList_Length(p_mb.resourceLists);
- };
-
- // assume Ims3GPP ONLY in the XML message body
- if (ischosen(p_mb.ims3gpp))
- {
- v_result := f_XMLBody_Ims3GPP_Length(p_mb.ims3gpp);
- };
-
- /** Add aditional checks regarding to new variants,
- * also implement appropriate function for calculation
- */
- }
- return v_result
- } //* f_XMLBodyLength
-
- group XMLBodies_calculation{
-
- /**
- *
- * @desc Calculation of XML ConferenceInfo element length
- * @param p_mb contain XML ConfInfo body
- * @return xml_length
- */
- function f_XMLBody_ConferenceInfo_Length(Conference_type p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_ConferenceInfo_Length
-
- /**
- *
- * @desc Calculation of XML CUG element length
- * @param p_mb contain XML CUG body
- * @return xml_length
- */
- function f_XMLBody_Cug_Length(Cug p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_Cug_Length
-
- /**
- *
- * @desc Calculation of XML MCID element length
- * @param p_mb contain XML MCID body
- * @return xml_length
- */
- function f_XMLBody_Mcid_Length(Mcid p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
-
- return v_result
- } //* f_XMLBody_Mcid_Length
-
- /**
- *
- * @desc Calculation of XML CW element length
- * @param p_mb contain XML CW body
- * @return xml_length
- */
- function f_XMLBody_Cw_Length(Ims_cw p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
-
- return v_result
- } //* f_XMLBody_Cw_Length
-
- /**
- *
- * @desc Calculation of XML CDIVN element length
- * @param p_mb contain XML CDIVN body
- * @return xml_length
- */
- function f_XMLBody_Cdivn_Length(Comm_div_info_type p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
-
- return v_result
- } //* f_XMLBody_Cdivn_Length
-
- /**
- *
- * @desc Calculation of XML PSTNTransit element length
- * @param p_mb contain XML PSTNTransit body
- * @return xml_length
- */
- function f_XMLBody_PSTNTransit_Length(PSTN_transit p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_PSTNTransit_Length
-
- /** @desc Calculation of XML Simservs element length
- * @param p_mb contain XML Simservs body
- * @return xml_length
- */
- function f_XMLBody_Simservs_Length(Simservs p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_Simservs_Length
-
- /** @desc Calculation of XML ResourceList length
- * @param p_mb contain XML ResourceList body
- * @return xml_length
- */
- function f_XMLBody_ResourceList_Length(Resource_lists p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_ResourceList_Length
-
- /** @desc Calculation of XML Ims3GPP length
- * @param p_mb contain XML Ims3GPP body
- * @return xml_length
- */
- function f_XMLBody_Ims3GPP_Length(TIMS3GPP p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_Ims3GPP_Length
-
- } //* XMLBodies_calculation
-
- }//* group XMLlen_calculation
-
- group simpleMsgSummaryBody_Length{
-
- function f_simpleMsgSummaryBody_Length(SimpleMsgSummary p_mb) return integer
- {
- var integer v_result:=2; //* due to empty line beginning of message body
- var charstring v_auxstring;
-
- v_result := 2+lengthof(p_mb.msg_status_line.msg_type) + 2 + lengthof(p_mb.msg_status_line.msg_status)+c_CRlen; //* "Message-Waiting: yes"
-
- if (ispresent(p_mb.msg_account)) //* "Message-Account"
- {v_result := v_result + 2 + lengthof(p_mb.msg_account.msg_type_account)+2+lengthof(p_mb.msg_account.account_URI)+c_CRlen;};
- if (ispresent(p_mb.msg_summary_line_list)) {
- for (var integer i:=0; i<sizeof(p_mb.msg_summary_line_list); i:=i+1)
- {v_result := v_result + 2 + c_CRlen + lengthof(p_mb.msg_summary_line_list[i].msg_context_class)+2+lengthof(p_mb.msg_summary_line_list[i].msgs);
- if (ispresent(p_mb.msg_summary_line_list[i].urgent_msgs))
- {v_auxstring:=p_mb.msg_summary_line_list[i].urgent_msgs; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- };
- if (ispresent(p_mb.opt_msg_headers)) {
- for (var integer i:=0; i<sizeof(p_mb.opt_msg_headers); i:=i+1)
- {v_result := v_result + 2 + c_CRlen + lengthof(p_mb.opt_msg_headers[i]);
- };
- };
- return v_result
- }
- }
-
- group MIME_Len_calculation{
- /**
- *
- * @desc Calculation of MIME length
- * @param p_mb contain MIME message
- * @return xml_length
- */
- function f_MIMElength(MIME_Message p_mb) return integer
- {
- var integer v_result:=2; //0d0a
-
- v_result := v_result + lengthof(p_mb.boundary) + 2/*0d0a*/;
-
- for (var integer i:=0; i<sizeof(p_mb.mimeEncapsulatedList); i:=i+1){
-
- v_result := v_result + lengthof("Content-Type: ")+ lengthof(p_mb.mimeEncapsulatedList[i].content_type) + 2/*0d0a*/ ;
-
- if (ispresent(p_mb.mimeEncapsulatedList[i].content_disposition)){
- v_result := v_result + lengthof("Content-Disposition: ")+ lengthof(p_mb.mimeEncapsulatedList[i].content_disposition) + 2/*0d0a*/ ;
- }
-
- //v_result := v_result +2/*0d0a*/; ??? to check
-
- // assume SDP_Message ONLY in the message body
- if (ischosen(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.sdpMessageBody))
- {
- v_result := v_result + f_SDPlength(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.sdpMessageBody);
- };
-
- // assume XML_Body ONLY in the message body
- if (ischosen(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlBody))
- {
- v_result := v_result + f_XMLBody_Length(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlBody, USE_FX_FOR_XML_LENGTH );
- };
-
-// //assume XML_Message ONLY in the message body
-// if (ischosen(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlMessage))
-// {
-// v_result := v_result + f_XMLlength(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlMessage, USE_FX_FOR_XML_LENGTH );
-// };
-
- //v_result := v_result +2/*0d0a*/; ??? to check
- }
-
- //v_result := v_result +2/*0d0a*/; ??? to check
-
- return v_result
- } //* f_MIMElength
-
- }//* group MIMElen_calculation
-
- group TextPlain_Len_calculation{
- /**
- *
- * @desc Calculation of messagebody-textplain type length
- * @param p_mb contain textplain message
- * @return lenght
- */
- function f_TextPlainLength(MessageBody p_mb) return integer
- {
- var integer v_result:=0;
-
- v_result:=v_result+lengthof(p_mb.textplain);
-
- return v_result;
- }//* end function f_TextPlainLength
-
- }//*end group TextPlainLen_calculation
-
- }//*group MessageBody_Calculation
-
-
- group GiveHeaders {
- /**
- *
- * @desc Return component variable of recordRoute header if vc_boo_recordRoute is true
- * @return component variable of recordRoute header
- */
-
- function f_recordroute() runs on SipComponent return template RecordRoute
- {
- template RecordRoute v_recordRoute := omit;
- if (vc_boo_recordRoute)
- {return vc_recordRoute}
- else {return(v_recordRoute)} //* TODO: RecordRoute is not OPTIONAL!!! Check IT!
- }
-
- /**
- *
- * @desc Return component variable of Route header if vc_boo_route is true
- * @return component variable of recordRoute header
- */
- function f_route() runs on SipComponent return template Route
- {
- template Route v_route := omit;
- if (vc_boo_route)
- {return vc_route} //* TODO: Route header need to be in reverse order than RecordRoute, question of return value - RecordRoute
- else {return(v_route)} //* TODO: Route is not OPTIONAL!!! Check IT!
- }
-
- } //* end group GiveHeaders
-
-group others {
-
-/*
- *
- * @desc function combines two comma parameter lists
- * @param p_list1 first list
- * @param p_list2 second list
- * @return comma parameter list that contains parameters from both input lists
- * @verdict
- */
-
- function f_merge_CommaParam_List(CommaParam_List p_list1, CommaParam_List p_list2) return template CommaParam_List
- { var template CommaParam_List p_result;
- var integer limit1 := sizeof(p_list1);
- for (var integer i:=0; i<limit1; i:=i+1) {
- p_result[i] := p_list1[i]
- };
- for (var integer i:=0; i<sizeof(p_list2); i:=i+1) {
- p_result[i+limit1] := p_list2[i]
- };
- return p_result
- }
-
-} //* end group others
-
-} //* group TemplatePreparationFunctions
-
-} //* end module LibSip_Templates
/v3.0.3/branches/v2/ttcn/LibSip_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/ttcn/LibSip_SMSFunctions.ttcn3
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_SMSFunctions.ttcn3 (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_SMSFunctions.ttcn3 (nonexistent)
@@ -1,52 +0,0 @@
-/*
- * @author STF 435
- * @version $Id$
- * @desc This module provides the functions used by the test component
- * for SIP-SMS over IMS as specified in 3GPP 24.341 tests.
- * This module is part of LibSipV2.
- */
-module LibSip_SMSFunctions {
- import from LibSip_SMSTypesAndValues all;
-
- function f_IA5_2oct(charstring p_ASCII_String)
- return octetstring
- {
- var integer i;
- var integer k;
- var integer v_Length := lengthof(p_ASCII_String);
- var integer v_Temp;
- var octetstring v_Noctets :=''O;
- var bitstring v_TempBitSrc := ''B;
- var bitstring v_TempBitDes := ''B;
-
- if ((v_Length<=0) or (v_Length>160) or (((v_Length *7) mod 8) != 0))
- {
- log("Invalid value of input string length.");
- }
-
- for(i:=0; i<v_Length; i:=i+1)
- {
- v_Temp := char2int(p_ASCII_String[i]);
- v_TempBitSrc := int2bit(v_Temp, 8);
-
- for(k:=1; k<=7; k:=k+1)
- {
-
- v_TempBitDes := v_TempBitSrc[8-k] & v_TempBitDes;
-
- if(((7*i+k) mod 8) == 0)
- {
-
- v_Noctets := v_Noctets & bit2oct(v_TempBitDes);
- v_TempBitDes := ''B;
- }
- }
- }
-
- return v_Noctets;
-
- } // f_IA5_2oct
-
- external function fx_GetSC_TimeStamp(integer p_TimeZone) return TP_ServiceCentreTimeStamp_Type;
-
-} // End of module LibSip_SMSFunctions
\ No newline at end of file
Index: v3.0.3/branches/v2/ttcn/LibSip_PIXITS.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_PIXITS.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_PIXITS.ttcn (nonexistent)
@@ -1,355 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369, STF450
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- * This module is part of LibSipV2.
- * NOTE: PIXITS in folowing groups can be ignored if this information
- * is provided in other modules of the ATS that uses this SIP library
- * - Ports_and_addresses_of_the_SUT
- * - PortsAndAddressesOfTheTS1
- * - PortsAndAddressesOfTheTS2
- * - PortsAndAddressesOfTheTS3
- * - ParametersForHTTP_Authentication
- */
-
-module LibSip_PIXITS //MRO
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_DataStrings all;
-
-// _____________________________ PIXIT-S_______________________________
- group SIP_PIXITparameters{
- group SDPParameter {
-
- /** @desc charstring for SDP dynamic port
- */
- modulepar charstring PX_SIP_SDP_dyn := "0";
-
- /** @desc charstring for SDP bandwidth modifier
- */
- modulepar charstring PX_SIP_SDP_b_modifier := "AS";
-
- /** @desc integer for SDP bandwidth value
- */
- modulepar integer PX_SIP_SDP_b_bandwidth := 64;
-
- /** @desc charstring for SDP media attribute encoding supported by the IUT
- */
- modulepar charstring PX_SIP_SDP_encoding := "PCMU/8000";
-
- /** @desc charstring for SDP media attribute encoding unavailable by the IUT
- */
- modulepar charstring PX_SIP_SDP_encoding_unavail := "GSM/8000"; // f_Sip_TC2105_IS___xx__U18
-
- /** @desc charstring for SDP media attribute encoding unsupported by the IUT
- */
- modulepar charstring PX_SIP_SDP_encoding_unsup := "GSM/8000"; // f_Sip_TC2105_IS___xx__U18
-
- /** @desc charstring for SDP media T.38 transport (used in TC2101_IS___AU__09)
- */
- modulepar charstring PX_SIP_SDP_transport := "udptl";
- } //group SDP Parameter
-
- group ISUPinterworkingParameters{
- /** @desc charstring for Used CPC language
- */
- modulepar charstring PX_SIP_ISUP_LANGUAGE := "English";
- /** @desc charstring for Used CPC language
- */
- modulepar charstring PX_SIP_ISUP_CPC_VALUE := "prison";
- } // goup PSTNParameters
-
- group SupportedOptions{
-
- /** @desc boolean for True if 100rel mechanism is supported in SIP
- */
- modulepar boolean PX_SIP_100rel := false;
-
- /** @desc boolean for True if precondition mechanism is supported in SIP
- */
- modulepar boolean PX_SIP_precondition := false;
-
- /** @desc boolean for True if UDP Transport is used by the IUT to run campaign
- */
- modulepar boolean PX_SIP_UDP := true;
-
- /** @desc charstring for Used Transport in upper case "UDP"/"TCP"
- */
- modulepar charstring PX_SIP_TRANSPORT := "UDP";
- }// group SupportedOptions{
-
- // PIXITS in group Ports_and_addresses_of_the_SUT can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group Ports_and_addresses_of_the_SUT{
-
- /** @desc integer for SUT port number to exchange SIP messages
- */
- modulepar integer PX_SIP_SUT_PORT := 5060;
-
- /** @desc charstring for SUT IP address to exchange SIP messages
- */
- modulepar charstring PX_SIP_SUT_IPADDR := "172.27.16.115";
-
- /** @desc charstring for SUT domain
- */
- modulepar charstring PX_SIP_SUT_HOME_DOMAIN := "172.27.16.115";
-
- /** @desc charstring for unknown SUT domain
- */
- modulepar charstring PX_SIP_SUT_HOME_DOMAIN_UNKNOWN := "172.88.88.88";
-
- }
-
- // PIXITS in group PortsAndAddressesOfTheTS1 can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group PortsAndAddressesOfTheTS1 {
-// Ports and addresses of the TS1 (tester), first access
- /** @desc integer for port number used by the TS1 to exchange SIP messages
- */
- modulepar integer PX_SIP_TS1_PORT := 5060;
-
- /** @desc charstring for IP address used by the TS1 to exchange SIP messages
- */
- modulepar charstring PX_SIP_TS1_IPADDR := "172.27.1.218";
-
- /** @desc charstring for identity of the tester local domain
- */
- modulepar charstring PX_SIP_TS1_LOCAL_DOMAIN := "172.27.1.218";
-
- /** @desc charstring for identity of the tester local user
- */
- modulepar charstring PX_SIP_TS1_LOCAL_USER := "2910";
-
- /** @desc charstring for identity of the user with active call diversion service
- */
- modulepar charstring PX_SIP_TS1_LOCAL_USER_DIV := "2907";
-
- /** @desc charstring for identity of the tester local user (format "+"cc+ndc+sn)
- */
- modulepar charstring PX_SIP_TS1_LOCAL_USER_FULL := "+ 33492941111";
-
- /** @desc integer for port number used by the TS to exchange media streams
- */
- modulepar integer PX_SIP_TS1_BEARER_PORT := 52000;
-
- /** @desc charstring for port number used by the TS to exchange media streams
- */
- modulepar integer PX_SIP_TS1_BEARER_PORT2 := 62000;
-
- /** @desc charstring for IP address used by the TS to exchange media streams
- */
- modulepar charstring PX_SIP_TS1_BEARER_IPADDR := "172.27.1.218";
- }// group PortsAndAddressesOfTheTS
-
- // PIXITS in group PortsAndAddressesOfTheTS2 can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group PortsAndAddressesOfTheTS2 {
-// Ports and addresses of the TS2 (tester), second access
-
- /** @desc integer for port number used by the TS2 to exchange SIP messages
- */
- modulepar integer PX_SIP_TS2_PORT := 5060;
-
- /** @desc charstring for IP address used by the TS2 to exchange SIP messages
- */
- modulepar charstring PX_SIP_TS2_IPADDR := "172.27.1.219";
-
- /** @desc charstring for identity of the tester local domain
- */
- modulepar charstring PX_SIP_TS2_LOCAL_DOMAIN := "172.27.1.219";
-
- /** @desc charstring for identity of the tester local user
- */
- modulepar charstring PX_SIP_TS2_LOCAL_USER := "2911";
-
- /** @desc charstring for identity of the user with active call diversion service
- */
- modulepar charstring PX_SIP_TS2_LOCAL_USER_DIV := "2011";
-
- /** @desc charstring for identity of the tester local user (format "+"cc+ndc+sn)
- */
- modulepar charstring PX_SIP_TS2_LOCAL_USER_FULL := "+ 33 4 92941111";
-
- /** @desc integer for port number used by the TS to exchange media streams
- */
- modulepar integer PX_SIP_TS2_BEARER_PORT := 53000;
-
- /** @desc integer for port number used by the TS to exchange media streams
- */
- modulepar integer PX_SIP_TS2_BEARER_PORT2 := 63000;
-
- /** @desc charstring for IP address used by the TS to exchange media streams
- */
- modulepar charstring PX_SIP_TS2_BEARER_IPADDR := "172.27.1.218";
-
- }//group PortsAndAddressesOfTheTS2
-
- // PIXITS in group PortsAndAddressesOfTheTS3 can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group PortsAndAddressesOfTheTS3 {
-// Ports and addresses of the TS3 (tester), second access
- /** @desc integer for Port number used by the TS3 to exchange SIP messages
- */
- modulepar integer PX_SIP_TS3_PORT := 5060;
-
- /** @desc charstring for IP address used by the TS3 to exchange SIP messages
- */
- modulepar charstring PX_SIP_TS3_IPADDR := "172.27.1.220";
-
- /** @desc charstring for identity of the tester local domain
- */
- modulepar charstring PX_SIP_TS3_LOCAL_DOMAIN := "172.27.1.220";
-
- /** @desc charstring for identity of the tester local user
- */
- modulepar charstring PX_SIP_TS3_LOCAL_USER := "2012";
-
- } //group PortsAndAddressesOfTheTS3
-
- group RegistrationParameters {
-
- /** @desc boolean for the SIP user if it have to register itself before executing a test case
- */
- modulepar boolean PX_SIP_REGISTRATION := false;
-
- /** @desc integer for the minimun SIP user registration expires-value
- */
- modulepar integer PX_SIP_REGISTRATION_exp_min := 3600;
-
- /** @desc charstring for REGISTRAR domain
- */
- modulepar charstring PX_SIP_SUT_REGISTRAR_DOMAIN := "172.27.16.115";
-
- /** @desc charstring for PX_AUTH_ALGORITHM security algorithm
- * Possible values: MD5 or AKAv1-MD5
- */
- modulepar charstring PX_AUTH_ALGORITHM := "AKAv1-MD5";
-}// group Registration parameters
-
- group ReleaseCause{
- /** @desc integer for Release cause to be used in BYE and in Failure messages
- */
- modulepar integer PX_SIP_BYE_CAUSE := 16;
- }//group ReleaseCause
-
- group RTPStreamControlAndCheck{
- /** @desc boolean for True, if conversation check is implemented.
- */
- modulepar boolean PX_SIP_CheckConversation := false;
-
- /** @desc boolean for True, if DTMF check is implemented.
- */
- modulepar boolean PX_SIP_CheckDTMF := false;
-
- /** @desc boolean for True, if Announcement sending is implemented.
- */
- modulepar boolean PX_SIP_SendAnnouncement := false;
-
- /** @desc boolean for True, if ringing check is implemented.
- */
- modulepar boolean PX_SIP_CheckRinging := false;
- }//group RTPStreamControlAndCheck
-
- group SwitchToEnableAuthentication {
- /** @desc boolean for option controlling if authentication is enabled/disabled for REGISTER messages
- */
- modulepar boolean PX_SIP_REGISTER_AUTHENTICATION_ENABLED := true;
-
- /** @desc boolean for option controlling if authentication is enabled/disabled for INVITE messages
- */
- modulepar boolean PX_SIP_INVITE_AUTHENTICATION_ENABLED := false;
- }//group SwitchToEnableAuthentication
-
- group NofifyAndSubscribe {
- modulepar{
- /** @desc boolean for option controlling if notification is enabled/disabled after registration procedure
- */
- boolean PX_SIP_NOTIFICATION := true;
- /** @desc boolean for option controlling if subscription is enabled/disabled after registration procedure
- */
- boolean PX_SIP_SUBSCRIPTION := true;
- }
- }
-
- // PIXITS in group ParametersForHTTP_Authentication can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group ParametersForHTTP_Authentication {
-
- /** @desc charstring for RFC 2617 clause 3-2-1 qop options:
- * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The
- * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
- */
- modulepar charstring PX_SIP_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for RFC 2617 clause 3-2-2 username:
- * The name of user in the specified realm
- */
- modulepar charstring PX_SIP_SUT_UE1_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username
- */
- modulepar charstring PX_SIP_SUT_UE1_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 3-2-1 qop options:
- * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The
- * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
- */
- modulepar charstring PX_SIP_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for RFC 2617 clause 3-2-2 username:
- * The name of user in the specified realm
- */
- modulepar charstring PX_SIP_SUT_UE2_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username
- */
- modulepar charstring PX_SIP_SUT_UE2_PASSWD := "1234";
-
- }//group ParametersForHTTP_Authentication
-
- group SIP_Timers {
- /** @desc float for T1 RTT estimate (500 ms)
- */
- modulepar float PX_SIP_T1 := 0.5;
-
- /** @desc float for T2 Maximum retransmit interval for non-INVITE requests and INVITE response (4000 ms)
- */
- modulepar float PX_T2 := 4.0;
-
- /** @desc float for T4 Maximum duration a message will remain in the network
- */
- modulepar float PX_T4 := 1.0;
-
- /** @desc float for TDELAY default value for timeout on outgoing SIP request (ie 64*T1)
- */
- modulepar float PX_SIP_TF := 32.0;
-
- /** @desc float for TWait default value for waiting an operator action
- */
- modulepar float PX_SIP_TWAIT := 30.0;
-
- /** @desc float for TAck default value for waiting an acknowledgement
- */
- modulepar float PX_SIP_TACK := 8.0;
-
- /** @desc float for TResp default value for waiting for a response from the IUT
- */
- modulepar float PX_SIP_TRESP := 15.0;
-
- /** @desc float for TNoAct default value for waiting no message from the IUT
- * Value given for PX_TNOACT should be less than value of
- * SHORT_REGISTRATION constant (which is currently "3" (seconds))
- */
- modulepar float PX_SIP_TNOACT := 1.0;
-
- /** @desc float for TSYNC default value to synchronise ptc
- */
- modulepar float PX_SIP_TSYNC := 10.0;
-
- /** @desc float for TGUARD default value for an extra long timer to limit test execution
- */
- modulepar float PX_SIP_TGUARD := 120.0;
-
- /** @desc float for TRespRetention minimum time that a Proxy will wait before sending a final response
- */
- modulepar float PX_TRespRetention := 1.0;
- }//group SIP_Timers
- } //group SIP_PIXITparameters
-} // end module LibSip_PIXITS
/v3.0.3/branches/v2/ttcn/LibSip_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/ttcn/LibSip_Interface.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_Interface.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_Interface.ttcn (nonexistent)
@@ -1,188 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369, STF450
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- * This module is part of LibSipV2.
- */
-
-module LibSip_Interface
-{
- //LibCommon
- import from LibCommon_Sync all;
- import from LibCommon_AbstractData all;
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_DataStrings all;
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_XMLTypes all;
-
- import from LibSip_PIXITS all;
-
- group AdressTypes
- {
- type record address4SIP
- {
- //HostPort
- charstring host optional, // hostname, IPv4 or IPv6
- integer portField optional // represented as an integer
- } with { encode "SIPCodec" }
-
- type address4SIP address;
-
- }// end group AdressTypes
-
- type port SipPort message {
- inout Request,
- REGISTER_Request,
- INVITE_Request,
- OPTIONS_Request,
- BYE_Request,
- CANCEL_Request,
- ACK_Request,
- PRACK_Request,
- NOTIFY_Request,
- SUBSCRIBE_Request,
- PUBLISH_Request,
- UPDATE_Request,
- REFER_Request,
- MESSAGE_Request,
- INFO_Request,
- Response,
- Raw } with { extension "address" };
-
- signature s_SIP_conversation (in charstring text, out boolean answer);
- signature s_SIP_ringing (in charstring text, out boolean answer);
- signature s_SIP_announcementA (in charstring text, out boolean answer);
- signature s_SIP_announcementB (in charstring text, out boolean answer);
- signature s_SIP_announcement (in charstring text, out boolean answer);
- signature s_SIP_voiceMessage (in charstring text, out boolean answer);
- signature s_SIP_mediastopped (in charstring text, out boolean answer);
- type port operatorPort procedure {inout s_SIP_conversation; inout s_SIP_ringing; inout s_SIP_announcementA; inout s_SIP_announcementB; inout s_SIP_announcement; inout s_SIP_voiceMessage; inout s_SIP_mediastopped};
-
- // Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
-// type component ImsComponent extends SipComponent
-// {
-// // general variables
-// var ImsInterfaceProfile vc_interfaceprofile
-// } // end ImsComponent
-
- type component SipComponent
- {
- //port
- port SipPort SIPP;
- // used for communication with the operator
- port operatorPort opPort;
-
- // current address to send TCP/UDP messages
- var SipUserProfile vc_userprofile; // PIXIT userinformation
- var address vc_sent_label;//removed because this value is predefined and used to open socket := {host := PX_SIP_SUT_IPADDR, portField := PX_SIP_SUT_PORT};
-
- // last incoming message
- var Response vc_response; // last incoming response message
- var boolean vc_boo_response := false; // to check if response received or not
- var Request vc_request; // last incoming request message
- var boolean vc_boo_request := false; // to check if request received or not
- var Request vc_requestFor407; // last INVITE request to be authorized if 407/401 received from Proxy
-
- var SipUrl vc_requestUri := c_empty_RequestUri;
- var SipUrl vc_requestUri2 := c_empty_RequestUri;//MRO
- var charstring vc_branch := "";
- var charstring vc_branch_ICSCF := "";
- var charstring vc_branch_SCSCF := "";
-
- // SIP message header fields (for building next message)
- var CallId vc_callId := c_empty_CallId;
- var CallId vc_callIdReg := c_empty_CallId;
- var From vc_from := c_empty_From;
- var To vc_to := c_empty_To;
- var To vc_cancel_To := c_empty_To; // used for next CANCEL
- var Via vc_via := c_empty_Via;
- var Via vc_via_REG := c_empty_Via; // via used in last REGISTER
- var ContentType vc_contentType:= c_empty_ContentType;//MRO
-
- var template RecordRoute vc_recordRoute; // value of RecordRoute header
- var boolean vc_boo_recordRoute := false; // boolean indicates valid recordRoute
- var template Route vc_route; // value of Route header
- var template Route vc_route_REG; // value of Route header from registration ServiceRoute header for initial Requests
- var boolean vc_boo_route := false; // boolean indicates valid Route
-
- var Contact vc_contact; // value of Contact header
- var CSeq vc_cSeq := c_empty_cSeq; // value of CSeq header
- var RAck vc_rAck := { fieldName := RACK_E, responseNum := 1, seqNumber := 1, method := "INVITE"}; // value of RAck header
- var HostPort vc_reqHostPort := {host:=PX_SIP_SUT_IPADDR, portField:=PX_SIP_SUT_PORT}; // address to send request
- var UrnUriComponents vc_reqUrnUri := {namespaceId:="", namespaceSpecificString:=""};
- var Privacy vc_privacy;
- var HistoryInfo_List vc_historyInfoList := {}; // value of history list according to RFC4244
- var SipUrl vc_confURI; // conference URI according to TS124147 ch. 5.3.1.3.2
- var SDP_Message vc_sdp_remote; // incoming SDP offers
- var SDP_Message vc_sdp_local; // SDP values to be sent
- var XmlBody vc_xml_remote; // incoming XML value
- var template XmlBody vc_xml_local; //SDP values to be sent
-
- var CSeq vc_iut_CSeq := c_empty_cSeq; // value of last CSeq header used by the IUT in request
- // To/From header-fields to be used if the callee will release the session
- var To vc_callee_To := c_empty_To;
- var From vc_callee_From := c_empty_From;
- // To/From header-fields to be used if the caller will release the session
- var To vc_caller_To := c_empty_To;
- var From vc_caller_From := c_empty_From;
- var Authorization vc_authorization;
-
- // variables for storing default references
- var default vc_default;
- var default vc_def_catchSyncStop;
-
- // general timers
- timer tc_T1 := PX_SIP_T1;
- timer tc_Tf := PX_SIP_TF;
- timer tc_wait := PX_SIP_TWAIT;
- timer tc_ack := PX_SIP_TACK;
- timer tc_resp := PX_SIP_TRESP;
- timer tc_noAct := PX_SIP_TNOACT; // time for SUT to get idle state
-// timer TRept;
-// timer TSync := PX_SIP_TSYNC;
- timer tc_guard := PX_SIP_TGUARD;//MRO
- timer tc_tDelay := 32.0;
-
- var float vc_tcRESP := PX_SIP_TRESP; // standard value for TRESP (may be modified in particular tests)
-
- // indicators set/used parameter status or state handling in default
- var boolean vc_sdp_remote_is_valid := false; // true if there is a value in v_SDP_remote
- var boolean vc_history_is_valid := false; // true if there is a HistoryList in response message
- var boolean vc_send_SDP := false; // send SDP in the next outgoing message
- var boolean vc_ignore_bye := false; // enable ignore of repeated bye in default
- var boolean vc_ignore_invite := false; // enable ignore invite in default
- var boolean vc_ignore_subscribe := false; // enable ignore subscribe in default
- var boolean vc_ignore181 := false; // enable ignore of 181 in default
- var boolean vc_ignore484 := false; // enable ignore of 484 in default
- var boolean vc_ignore4xx := false; // enable ignore of 4xx in default
- var boolean vc_ignore200OKinv := false; // enable ignore of 200OKinv in default
- var boolean vc_ignore_notify := false; // enable ignore of notify in default
- var boolean vc_supported_100rel := false; // true if the received invite contains 100rel
- var boolean vc_supported_precondition:= false; // true if the received invite contains precondition
- var boolean vc_MESSAGEreceived := false; // true if MESSAGE received during altstep
- var boolean vc_first_recv := false; // true after receipt of first incomming SIP message
- var boolean vc_firstREGISTER_sent := false; // true after sent of first REGISTER message
- var boolean vc_DeregDone := false; // true after first DeREGISTRATION trail (avoid loop)
- var boolean vc_interface_isc := false; // true if isc interface is in use
- var boolean v_white_space := false;//MRO
-
- // ETS address
- var address v_ets_label := { host := PX_SIP_TS1_IPADDR, portField := PX_SIP_TS1_PORT};
-
- // parts needed for Client/SelfSyncComp type compatibility
- var StringStack v_stateStack := c_initStringStack;
- port SyncPort syncSendPort;
- port SyncPort syncPort;
- timer tc_sync := PX_TSYNC_TIME_LIMIT;
-
-// // used for communication with the operator
-// port operatorPort_SIP opPort;
-
- } // end SipComponent
-
-} // end module LibSip_Interface
/v3.0.3/branches/v2/ttcn/LibSip_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/ttcn/LibSip_SimpleMsgSummaryTypes.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_SimpleMsgSummaryTypes.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_SimpleMsgSummaryTypes.ttcn (nonexistent)
@@ -1,59 +0,0 @@
-/**
- * @author STF 406
- * @version $Id: LibSip_SimpleMsgSummaryTypes.ttcn 488 2010-11-08 10:17:19Z pintar $
- * @desc This module provides the SMS type system for SIP tests.
- * This module is part of LibSipV2.
- */
-module LibSip_SimpleMsgSummaryTypes { // RFC 3842
-
- group SMSConstants{
-
- // IMS ETSI name MWI application
- const charstring c_imsEtsiMwiApplication := "application/simple-message-summary";
-
- // msg_status line := "Message-Waiting"
- const charstring c_messageWaiting := "Message-Waiting";
-
- // msg_status line := "Message-Account"
- const charstring c_messageAccount := "Message-Account";
-
- // msg_summary line := "Voice-Message"
- const charstring c_voiceMessage := "Voice-Message";
-
- }
-
- group SMSTypes{
- //TODO add (SMS sms) into type union MessageBody{ in module LibSIPTypesAndValues
-
- type record SimpleMsgSummary { //Simple_message_summary
- Msg_status_line msg_status_line,
- Msg_account msg_account optional,
- Msg_summary_line_list msg_summary_line_list optional,
- Opt_msg_headers opt_msg_headers optional
- }
-
- type record Msg_status_line {
- charstring msg_type,
- charstring msg_status
- }
-
- type record Msg_account {
- charstring msg_type_account,
- charstring account_URI
- }
-
- type set of Msg_summary_line Msg_summary_line_list;
-
- type record Msg_summary_line {
- charstring msg_context_class,
- charstring msgs,
- charstring urgent_msgs optional
- }
-
- type set of charstring Opt_msg_headers;
-
- //type integer msgcount length(1); //msgs and urgent_msgs can be dividet into subtypes
- }
-
-
-}
\ No newline at end of file
Index: v3.0.3/branches/v2/ttcn/LibSip_SIPTypesAndValues.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_SIPTypesAndValues.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,1923 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369, STF450
- * @version $Id$
- * @desc This module defines message, header, structured and simple SIP
- * types as well constants used by LipSip constructs. <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 LibSipV2.
- * @remark Adding of new message and header types is ok;
- * Adding of new optional header fields in @see MessageHeader type
- * is ok but should be done at same time as dummy template updates;
- * Existing message or header types shall not be changed or removed -
- * change requests shall be made to http://t-ort.etsi.org
- */
-
-module LibSip_SIPTypesAndValues
-{
- import from LibSip_MessageBodyTypes all;
-
-group Constants
-{
-group SimpleConstants
- {
- // SIP name protocol plus version
- const charstring c_sipNameVersion := "SIP/2.0";
-
- // SIP name protocol
- const charstring c_sipName := "SIP";
-
- // SIP version
- const charstring c_sipVersion := "2.0";
-
- // SIP scheme
- const charstring c_sipScheme := "sip";
-
- // TEL scheme
- const charstring c_telScheme := "tel";
-
- // URN schema
- const charstring c_urnScheme := "urn";
-
- // TAG_ID
- const charstring c_tagId := "tag";
-
- // BRANCH_ID
- const charstring c_branchId := "branch";
-
- // BRANCH_COOKIE
- const charstring c_branchCookie := "z9hG4bK";
-
- // EXPIRES_ID
- const charstring c_expiresId := "expires";
-
- // MADDR_ID
- const charstring c_maddrId := "maddr";
-
- // METHOD_ID
- const charstring c_methodId := "method";
-
- // RECEIVED_ID
- const charstring c_receivedId := "received";
-
- // TTL_ID
- const charstring c_ttlId := "ttl";
-
- // USER_ID
- const charstring c_userId := "user";
-
- // SDP name application
- const charstring c_sdpAplication := "application/sdp";
-
- // XML name application
- const charstring c_xmlAplication := "application/xml";
-
- // XML name application
- const charstring c_xmlreginfoAplication := "application/reginfo+xml";
-
- // MIME name application
- const charstring c_mimeMultipart := "multipart/mixed";
-
- // IMS 3GPP name application
- const charstring c_ims3gppAplication := "application/3gpp-ims+xml";
-
- // IMS 3GPP name CW application
- const charstring c_ims3gppCwApplication := "application/vnd.3gpp.cw+xml";
-
- // IMS ETSI name MCID application
- const charstring c_imsEtsiMcidApplication := "application/vnd.etsi.mcid+xml";
-
- // IMS ETSI name CUG application
- const charstring c_imsEtsiCugApplication := "application/vnd.etsi.cug+xml";
-
- // IMS ETSI name Simservs application(TIP/TIR, ACR, CDIV, OIP/OIR, CUG)
- const charstring c_imsEtsiSimservsApplication := "application/vnd.etsi.simservs+xml";
-
- // OCTET-STREAM name application
- const charstring c_octetAplication := "application/octet-stream";
-
- // PLAIN-TEXT name application
- const charstring c_plainText := "text/plain";
-
- //text content of 1300 bytes for messages with message body
- const charstring c_longMessageContent_1300Bytes :=//"Hello!";
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- oct2char('0D'O) & oct2char('0A'O); // CRLF
-
-
- // Default SIP port number : 5060
- const integer c_defaultSipPort := 5060;
-
- // Default SIP protocol : UDP
- const charstring c_defaultSipProt := "UDP";
-
- // Fixed IP multicast address
- const charstring c_mcastSipIpaddr := "224.0.1.75";
-
- // Short delta-second used in expires parameter to acknowledge a registration
- const charstring c_shortRegistration := "3600";
-
- // ([RFC3891]Sec 6.1)
- const charstring c_earlyFlag := "early-only";
-
- // option tag replaces ([RFC3261])
- const charstring c_replaces := "replaces";
-
- // option tag 100rel (reliable provisional response [RFC3262])
- const charstring c_tag100rel := "100rel";
-
- // option tag from-change ([RFC4916])
- const charstring c_tagFromChange := "from-change";
-
- // option tag precondition (ch.11 [RFC3312])
- const charstring c_tagPrecond := "precondition";
-
- // due to problem with TAU compiler because hardcoded return statement constant is created
- const HostPort c_hostport_dummy := {host:="", portField:=c_defaultSipPort};
-
- // CLIP/CLIR information
- const PrivacyValue c_privacy_none := "none";
- const PrivacyValue c_privacy_id := "id";
- const PrivacyValue c_privacy_header := "header";
- const PrivacyValue c_privacy_user := "user";
- const PrivacyValue c_privacy_critical := "critical";
- const PrivacyValue c_privacy_session := "session";
-
- // @ (at) sign
- const charstring c_AT := "@";
- //MRO
- const charstring c_SP := oct2char('20'O);
- const charstring c_SLASH := oct2char('2F'O);
- const charstring c_LT := oct2char('3C'O);
- const charstring c_GT := oct2char('3E'O);
-
- // * (wildchard) sign
- const charstring c_WILDCARD := "*";
-
- const integer c_CRlen := 2; // length of new line (0d0a)
-
- const GenericParam c_Integrity_protected_yes := {"integrity-protected","yes"}
- const GenericParam c_Integrity_protected_no := {"integrity-protected","no"}
- const GenericParam c_Integrity_protected_ip_assoc_pending := {"integrity-protected","ip-assoc-pending"}
-
-
-} //end group SimpleConstants
-
-group AuthorizationConstants {
-
- const charstring c_ik := "";
- const charstring c_ck := "";
- const charstring c_nonce := "";
- const charstring c_nonce_value := "0edff6c521cc3f407f2d9e01cf6ed82b";
-
-} //end group AuthorizationConstants
-
-group PChargingVectorConstants {
-
- const charstring c_icid := "icid-value";
- const charstring c_icid_value := "123abc";
- const charstring c_icid_generated_at := "icid-generated-at";
- const charstring c_orig_ioi := "orig-ioi";
- const charstring c_term_ioi := "term-ioi";
- const charstring c_access_network_charging_info := "access-network-charging-info";
-
-} //end group PChargingVectorConstants
-
-group HeaderFieldConstants {
-
- const CallId c_empty_CallId :=
- {
- fieldName := CALL_ID_E,
- callid := ""
- };
-
- const ContentType c_empty_ContentType :=
- {
- fieldName := CONTENT_TYPE_E,
- mediaType := ""
- };
-
- const CSeq c_empty_cSeq := {
- fieldName := CSEQ_E,
- seqNumber:=0,
- method:="EMPTY" };
-
- const From c_empty_From := {
- fieldName := FROM_E,
- addressField := {
- nameAddr := {
- displayName := omit,
- addrSpec := {
- scheme := c_sipScheme,
- components := {
- sip := {
- userInfo := omit ,
- hostPort := {host:="127.0.0.1", portField:=c_defaultSipPort}
- }
- },
- urlParameters := omit,
- headers := omit
- }
- }
- },
- fromParams := omit
- };
-
- const MaxForwards c_maxForwards70 := {fieldName:=MAX_FORWARDS_E, forwards:=70}
-
- const SipUrl c_empty_RequestUri :=
- {
- scheme := c_sipScheme,
- components := {
- sip := {
- userInfo := omit ,
- hostPort := {host:="127.0.0.1", portField:=c_defaultSipPort}
- }
- },
- urlParameters := omit,
- headers := omit
- };
-
- const SipUrl c_unavailableUri :=
- {
- scheme := c_sipScheme,
- components := {
- sip := {
- userInfo := {userOrTelephoneSubscriber:="unavailable", password:=omit},
- hostPort := {host:="anonymous.invalid", portField:=c_defaultSipPort}
- }
- },
- urlParameters := omit,
- headers := omit
- };
-
- const To c_empty_To :=
- { // value of To header
- fieldName := TO_E,
- addressField := {
- nameAddr := {
- displayName := omit,
- addrSpec := {
- scheme := c_sipScheme,
- components := {
- sip := {
- userInfo := omit ,
- hostPort := {host:="127.0.0.1", portField:=c_defaultSipPort}
- }
- },
- urlParameters := omit,
- headers := omit
- }
- }
- },
- toParams := omit
- };
-
- const Via c_empty_Via := {
- fieldName := VIA_E,
- viaBody :={
- {sentProtocol := {
- protocolName := c_sipName,
- protocolVersion := c_sipVersion,
- transport := c_defaultSipProt
- },
- sentBy := {host:="127.0.0.1", portField:=c_defaultSipPort},
- viaParams:= omit
- }
- }};
-
-
-}
-
-
-group UserProfileConstants
-{
- // number of user profile from 1-10 for SIP profile
- const integer c_userProfile_SIP1_home := 1;
- const integer c_userProfile_SIP2_home := 2;
-
-} //end group UserProfileConstants
-
-group StatusLines
- {
- const StatusLine c_statusLine100 := {c_sipNameVersion, 100, "Trying"};
- const StatusLine c_statusLine180 := {c_sipNameVersion, 180, "Ringing"};
- const StatusLine c_statusLine181 := {c_sipNameVersion, 181, "Call Is Being Forwarded"};
- const StatusLine c_statusLine182 := {c_sipNameVersion, 182, "Queued"};
- const StatusLine c_statusLine183 := {c_sipNameVersion, 183, "Session Progress"};
-
- const StatusLine c_statusLine200 := {c_sipNameVersion, 200, "OK"};
- const StatusLine c_statusLine202 := {c_sipNameVersion, 202, "Accepted"};
-
- const StatusLine c_statusLine300 := {c_sipNameVersion, 300, "Multiple Choices"};
- const StatusLine c_statusLine301 := {c_sipNameVersion, 301, "Moved Permanently"};
- const StatusLine c_statusLine302 := {c_sipNameVersion, 302, "Moved Temporarily"};
- const StatusLine c_statusLine305 := {c_sipNameVersion, 305, "Use Proxy"};
- const StatusLine c_statusLine380 := {c_sipNameVersion, 380, "Alternative Service"};
-
- const StatusLine c_statusLine400 := {c_sipNameVersion, 400, "Bad Request"};
- const StatusLine c_statusLine401 := {c_sipNameVersion, 401, "Unauthorized"};
- const StatusLine c_statusLine402 := {c_sipNameVersion, 402, "Payment Required"};
- const StatusLine c_statusLine403 := {c_sipNameVersion, 403, "Forbidden"};
- const StatusLine c_statusLine404 := {c_sipNameVersion, 404, "Not Found"};
- const StatusLine c_statusLine405 := {c_sipNameVersion, 405, "Method Not Allowed"};
- const StatusLine c_statusLine406 := {c_sipNameVersion, 406, "Not Acceptable"};
- const StatusLine c_statusLine407 := {c_sipNameVersion, 407, "Proxy Authentication Required"};
- const StatusLine c_statusLine408 := {c_sipNameVersion, 408, "Request Timeout"};
- const StatusLine c_statusLine410 := {c_sipNameVersion, 410, "Gone"};
- const StatusLine c_statusLine413 := {c_sipNameVersion, 413, "Request Entity Too Large"};
- const StatusLine c_statusLine414 := {c_sipNameVersion, 414, "Request-URI Too Long"};
- const StatusLine c_statusLine415 := {c_sipNameVersion, 415, "Unsupported Media Type"};
- const StatusLine c_statusLine416 := {c_sipNameVersion, 416, "Unsupported URI Scheme"};
- const StatusLine c_statusLine420 := {c_sipNameVersion, 420, "Bad Extension"};
- const StatusLine c_statusLine421 := {c_sipNameVersion, 421, "Extension Required"};
- const StatusLine c_statusLine422 := {c_sipNameVersion, 422, "Session Interval Too Small"};
- const StatusLine c_statusLine423 := {c_sipNameVersion, 423, "Interval Too Brief"};
- const StatusLine c_statusLine433 := {c_sipNameVersion, 433, "Anonymity Disallowed"};
- const StatusLine c_statusLine480 := {c_sipNameVersion, 480, "Temporarily Unavailable"};
- const StatusLine c_statusLine481 := {c_sipNameVersion, 481, "Call/Transaction Does Not Exist"};
- const StatusLine c_statusLine482 := {c_sipNameVersion, 482, "Loop Detected"};
- const StatusLine c_statusLine483 := {c_sipNameVersion, 483, "Too Many Hops"};
- const StatusLine c_statusLine484 := {c_sipNameVersion, 484, "Address Incomplete"};
- const StatusLine c_statusLine485 := {c_sipNameVersion, 485, "Ambiguous"};
- const StatusLine c_statusLine486 := {c_sipNameVersion, 486, "Busy Here"};
- const StatusLine c_statusLine487 := {c_sipNameVersion, 487, "Request Terminated"};
- const StatusLine c_statusLine488 := {c_sipNameVersion, 488, "Not Acceptable Here"};
- const StatusLine c_statusLine493 := {c_sipNameVersion, 493, "Undecipherable"};
- const StatusLine c_statusLine500 := {c_sipNameVersion, 500, "Server Internal Error"};
- const StatusLine c_statusLine501 := {c_sipNameVersion, 501, "Not implemented"};
- const StatusLine c_statusLine502 := {c_sipNameVersion, 502, "Bad Gateway"};
- const StatusLine c_statusLine503 := {c_sipNameVersion, 503, "Service Unavailable"};
- const StatusLine c_statusLine504 := {c_sipNameVersion, 504, "Server Time-out"};
- const StatusLine c_statusLine505 := {c_sipNameVersion, 505, "Version Not Supported"};
- const StatusLine c_statusLine513 := {c_sipNameVersion, 513, "Message Too Large"};
- const StatusLine c_statusLine580 := {c_sipNameVersion, 580, "Precondition Failure"};
- const StatusLine c_statusLine600 := {c_sipNameVersion, 600, "Busy Everywhere"};
- const StatusLine c_statusLine603 := {c_sipNameVersion, 603, "Decline"};
- const StatusLine c_statusLine604 := {c_sipNameVersion, 604, "Does Not Exist Anywhere"};
- const StatusLine c_statusLine606 := {c_sipNameVersion, 606, "Not Acceptable"};
-
-} //end StatusLines
-
-group SIPSyncPointNames {
- const charstring c_Ringing := "Ringing";
- const charstring c_uPlane := "uPlane";
- const charstring c_sync1 := "sync1";
- const charstring c_sync2 := "sync2";
- const charstring c_sync3 := "sync3";
- const charstring c_sync4 := "sync4";
- const charstring c_uPlaneStop := "uPlaneStop";
- const charstring c_annoucA := "announcementA";
- const charstring c_annoucB := "announcementB";
- const charstring c_annouc := "announcement";
- const charstring c_voicem := "voiceMessage";
- }
-
-} //end group Constants
-
-group Types {
-group SubTypes{// Subtypes
-
- group TokenTypes // TokensTypes
- {
- // [20]
- type enumerated FieldName
- {
- ACCEPT_E,
- ACCEPT_ENCODING_E,
- ACCEPT_LANGUAGE_E,
- ALERT_INFO_E,
- ALLOW_E,
- AUTHENTICATION_INFO_E,
- AUTHORIZATION_E,
- CALL_ID_E,
- CALL_INFO_E,
- CONTACT_E,
- CONTENT_DISPOSITION_E,
- CONTENT_ENCODING_E,
- CONTENT_LANGUAGE_E,
- CONTENT_LENGTH_E,
- CONTENT_TYPE_E,
- CSEQ_E,
- DATE_E,
- ERROR_INFO_E,
- EXPIRES_E,
- FROM_E,
- IN_REPLY_TO_E,
- MAX_FORWARDS_E,
- MIME_VERSION_E,
- MIN_EXPIRES_E,
- ORGANIZATION_E,
- PRIORITY_E,
- PROXY_AUTHENTICATE_E,
- PROXY_AUTHORIZATION_E,
- PROXY_REQUIRE_E,
- RECORD_ROUTE_E,
- REPLY_TO_E,
- REQUIRE_E,
- RETRY_AFTER_E,
- ROUTE_E,
- SERVER_E,
- SUBJECT_E,
- SUPPORTED_E,
- TIMESTAMP_E,
- TO_E,
- UNSUPPORTED_E,
- USER_AGENT_E,
- VIA_E,
- WARNING_E,
- WWW_AUTHENTICATE_E,
-
- // [3262/7.1]
- RACK_E,
- RSEQ_E,
-
- // [3265/7.2]
- ALLOW_EVENTS_E,
- EVENT_E,
- SUBSCRIPTION_STATE_E,
-
- // [3313]
- P_MEDIA_AUTHORIZATION_E,
-
- // [3323]
- PRIVACY_E,
-
- // [3325]
- P_ASSERTED_ID_E,
- P_PREFERRED_ID_E,
- P_PREFERRED_SERVICE_E,
-
- // [3326]
- REASON_E,
-
- // [3515] - REFER method
- REFER_TO_E,
-
- // [4488] - REFER method
- REFER_SUB_E,
-
- // [3891]
- REPLACES_E,
-
- // [3892] - REFER method
- REFERRED_BY_E,
-
- // [4244]
- HISTORY_INFO_E,
-
- // [3313]
- P_MEDIA_AUTH_E,
-
- // [3327]
- PATH_E,
-
- // [3329]
- SECURITY_CLIENT_E,
- SECURITY_SERVER_E,
- SECURITY_VERIFY_E,
-
- // [3455]
- P_ACCESS_NETWORK_INFO_E,
- P_ASSOCIATED_URI_E,
- P_CALLED_PARTY_E,
- P_CHARGING_FUNCTION_ADDRESSES_E,
- P_CHARGING_VECTOR_E,
- P_VISITED_NETWORK_E,
-
- // [3608]
- SERVICE_ROUTE_E,
-
- // [3841]
- ACCEPT_CONTACT_E,
- REQUEST_DISPOSITION_E,
-
- // [4028]
- MIN_SE_E,
- SESSION_EXPIRES_E,
-
- P_ASSERTED_SERVICE_E,
-
- //[5009]
- P_EARLY_MEDIA_E,
-
- //http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07
- //Transporting User to User Call Control Information in SIP for ISDN Interworking
- USER_TO_USER_E,
-
- //[6442] /* @sic R5-133151 update of header fields sic@ */
- GEOLOCATION_E,
- GEOLOCATION_ROUTING_E,
-
- SESSION_ID_E,
-
- SIP_ETAG_E,
- SIP_IF_MATCH_E
- }
-
- // [7.1]
- type enumerated Method {
- ACK_E,
- BYE_E,
- CANCEL_E,
- INVITE_E,
- OPTIONS_E,
- REGISTER_E,
- PRACK_E, // Note: this element is not defined in [5]
- SUBSCRIBE_E, NOTIFY_E, // [3265]
- PUBLISH_E, // [3903/12]
- REFER_E, // [3515]
- UPDATE_E, // [3311]
- MESSAGE_E, // [3428]
- INFO_E, // [2976]
- UNKNOWN_METHOD_E
- }
-
- // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31,
- // 20.33, 20.34, 20.39, 20.42, 20.44]
- type record GenericParam
- {
- charstring id,
- charstring paramValue optional
- }
-
- // [?]
- type set of GenericParam SemicolonParam_List;
-
- // [?]
- type set of GenericParam AmpersandParam_List;
-
- // [?]
- type set of GenericParam CommaParam_List;
-
- // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43]
- type record HostPort
- {
- charstring host optional, // hostname, IPv4 or IPv6
- integer portField optional // represented as an integer
- }
-
- // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39]
-/**
- *
- * @desc identifier for user or telephone subscriber
- * @member userOrTelephoneSubscriber provides the username or a phone name identifying the subscriber
- * @member password related password information
- *
- */
- type record UserInfo
- {
- charstring userOrTelephoneSubscriber,
- charstring password optional
- }
-
- // [19.1.1 ;used in: 20.10, 20.20, 20.30, 20.31, 20.34, 20.39]
-
-
-/**
- *
- * @desc Uniform Resource Identifier (URI)
- * @member scheme distinguishes call types, e.g. voice, fax etc. or related address scheme, e.g. tel, sip
- * @member userInfo Contains user information (also in non-SIP URLs) with optional parameter as passwords
- * @member hostPort Hostname or IP address information and port identifier of the target
- * @member urlParameters Contains either SIP or TEL URL parameters, separated by semicolons, e.g. transport=tcp or user=phone
- * @member headers Additional information added after the parameters, e.g. priority=urgent
- */
-
- type record SipUriComponents { // sip-uri acc. to RFC 3261 cl. 19.1
- UserInfo userInfo optional,
- HostPort hostPort
- }
-
- type record TelUriComponents { // tel-uri acc. to RFC 3966
- charstring subscriber
- }
-
- type record UrnUriComponents { // urn-uri acc. to RFC 2141
- charstring namespaceId, // e.g. "service" as acc. to RFC 5031
- charstring namespaceSpecificString // e.g. "sos"
- }
-
- type union UriComponents {
- SipUriComponents sip, // scheme: "sip" or sips"
- TelUriComponents tel, // scheme: "tel"
- UrnUriComponents urn, // scheme: "urn"
- charstring other // scheme: none of the above schemes
- }
-
- type record SipUrl
- {
- charstring scheme, // e.g "sip" or "tel"
- UriComponents components, // corresponding to the scheme
- SemicolonParam_List urlParameters optional,
- AmpersandParam_List headers optional
- }
-
- // [20.1, RFC2616 14.1]
- type record AcceptBody
- {
- charstring mediaRange,
- SemicolonParam_List acceptParam optional
- }
-
- // [20.1, RFC2616 14.1]
- type set of AcceptBody AcceptBody_List;
-
- // [20.4]
- type record AlertInfoBody
- {
- charstring url, // any URI
- SemicolonParam_List genericParams optional
- }
-
- // [20.4]
- type set of AlertInfoBody AlertInfoBody_List;
-
- // [20.8]
- type charstring CallidString; // token ["@" token]
-
- // [20.8]
- type set of CallidString CallidString_List;
-
- // [20.9]
- type record CallInfoBody
- {
- charstring url, // any URI
- SemicolonParam_List infoParams optional
- }
-
- // [20.9]
- type set of CallInfoBody CallInfoBody_List;
-
- // [20.27, 20.44, .......10.32, 10.48; RFC2616 14.33, 14.47; RFC2617 1.2]
- type union Challenge
- {
- CommaParam_List digestCln,
- OtherAuth otherChallenge
- }
-
- // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39]
- type record NameAddr
- {
- charstring displayName optional,
- SipUrl addrSpec
- }
-
- // [20.10, 20.20, 20.31, 20.39]
- type union Addr_Union
- {
- NameAddr nameAddr,
- SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field
- }
-
- // [20.10]
- type record ContactAddress
- {
- Addr_Union addressField,
- SemicolonParam_List contactParams optional
- }
-
- // [20.10]
- type set of ContactAddress ContactAddress_List; // 1 or more elements
-
- // [20.10]
- type union ContactBody
- {
- charstring wildcard,
- ContactAddress_List contactAddresses
- }
-
- // [20.2, 20.12; RFC2616 14.3, 14.11]
- type charstring ContentCoding;
-
- // [20.2, 20.12; RFC2616 14.3, 14.11]
- type set of ContentCoding ContentCoding_List;
-
- // [20.7, 20.28; RFC2616 14.35 RFC2617 1.2]
- type union Credentials
- {
- CommaParam_List digestResponse,
- OtherAuth otherResponse
- }
-
- // allow multiple Authorization headers due to RFC3261 ch. 20.7 and 20.28
- type record of Credentials CredentialsList;
-
- // [20.19, 20.23, 20.33]
- type charstring DeltaSec; // an external operation can handle this field
-
- // [20.18]
- type record ErrorInfoBody
- {
- charstring uri, // any URI
- SemicolonParam_List genericParams optional
- }
-
- // [20.18]
- type set of ErrorInfoBody ErrorInfoBody_List;
-
- // [20.3 RFC2616 14.4]
- type record LanguageBody
- {
- charstring languageRange,
- SemicolonParam_List acceptParam optional
- }
-
- // [20.3 RFC2616 14.4]
- type set of LanguageBody LanguageBody_List;
-
- // [20.13; RFC2616 14.12]
- type charstring LanguageTag;
-
- // [20.13; RFC2616 14.12]
- type set of LanguageTag LanguageTag_List;
-
- // [20.5]
- type set of charstring Method_List;
-
-
- // [20.29, 20.32, 20.37, 20.40]
- type charstring OptionTag;
-
- // [20.29, 20.32, 20.37, 20.40]
- type set of OptionTag OptionTag_List;
-
-
- // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2]
- type record OtherAuth
- {
- charstring authScheme,
- CommaParam_List authParams
- }
-
- type record Payload
- {
- integer payloadlength,
- charstring payloadvalue
- }
-
- // [20.30,20.34]
- type record RouteBody
- {
- NameAddr nameAddr,
- SemicolonParam_List rrParam optional
- }
-
- // [20.30,20.34]
- type record of RouteBody RouteBody_List;
-
- // [20.42]
- type record SentProtocol
- {
- charstring protocolName,
- charstring protocolVersion,
- charstring transport
- }
-
- // [20.35, 20.41; RFC2616 14.43]
- type charstring ServerVal;
-
- // [20.35, 20.41; RFC2616 14.43]
- type set of ServerVal ServerVal_List;
-
- // [20.38]
- type record TimeValue
- {
- integer majorDigit, // represented as an integer
- integer minorDigit optional // represented as an integer
- }
-
- // [20.42]
- type record ViaBody
- {
- SentProtocol sentProtocol,
- HostPort sentBy,
- SemicolonParam_List viaParams optional
- }
-
- // [20.42]
- type record of ViaBody ViaBody_List;
-
- // [20.43]
- type union WarnAgent
- {
- HostPort hostPort,
- charstring pseudonym
- }
-
- // [20.43]
- type record WarningValue
- {
- integer warnCode, // represented as an integer
- WarnAgent warnAgent,
- charstring warnText
- }
-
- // [20.43]
- type set of WarningValue WarningValue_List;
-
- type Addr_Union PAssertedIDValue;
-
- type record of PAssertedIDValue PAssertedIDValue_List;
-
- type charstring PAssertedServiceValue;
-
- type Addr_Union PPreferredIDValue;
-
- type record of PPreferredIDValue PPreferredIDValue_List;
-
- type charstring PrivacyValue;
-
- type record of PrivacyValue PrivacyValue_List;
-
-
- } // end group TokensType
-
-
- group HeaderFieldTypes // Header Fields
- {
- group CommonHeaderFieldTypes
- {
- // [20.1, RFC2616 14.1]
- type record Accept
- {
- FieldName fieldName (ACCEPT_E),
- AcceptBody_List acceptArgs optional
- }
-
- // [20.2, RFC2616 14.3]
- type record AcceptEncoding
- {
- FieldName fieldName (ACCEPT_ENCODING_E),
- ContentCoding_List contentCoding optional
- }
-
- // [20.3, RFC2616 14.4]
- type record AcceptLanguage
- {
- FieldName fieldName (ACCEPT_LANGUAGE_E),
- LanguageBody_List languageBody optional
- }
-
- // [20.4]
- type record AlertInfo
- {
- FieldName fieldName (ALERT_INFO_E),
- AlertInfoBody_List alertInfoBody optional
- }
-
- // [20.5]
- type record Allow
- {
- FieldName fieldName (ALLOW_E),
- Method_List methods optional
- }
-
- // [20.6]
- type record AuthenticationInfo
- {
- FieldName fieldName (AUTHENTICATION_INFO_E),
- CommaParam_List ainfo
- }
-
- // [20.7 RFC2617 3.2.2]
- type record Authorization
- {
- FieldName fieldName (AUTHORIZATION_E),
- CredentialsList body // changed from Credentials to allow multiple Authorization headers
- }
-
- // [20.8]
- type record CallId
- {
- FieldName fieldName (CALL_ID_E),
- CallidString callid
- }
-
- // [20.9]
- type record CallInfo
- {
- FieldName fieldName (CALL_INFO_E),
- CallInfoBody_List callInfoBody optional
- }
-
- // [20.10]
- type record Contact
- {
- FieldName fieldName (CONTACT_E),
- ContactBody contactBody
- }
-
- // [20.11]
- type record ContentDisposition
- {
- FieldName fieldName (CONTENT_DISPOSITION_E),
- charstring dispositionType,
- SemicolonParam_List dispositionParams optional
- }
-
- // [20.12 RFC2616 14.11]
- type record ContentEncoding
- {
- FieldName fieldName (CONTENT_ENCODING_E),
- ContentCoding_List contentCoding
- }
-
- // [20.13 RFC2616 14.12]
- type record ContentLanguage
- {
- FieldName fieldName (CONTENT_LANGUAGE_E),
- LanguageTag_List languageTag
- }
-
- // [20.14]
- type record ContentLength
- {
- FieldName fieldName (CONTENT_LENGTH_E),
- integer len // this field is represented as an integer
- }
-
- // [20.15]
- type record ContentType
- {
- FieldName fieldName (CONTENT_TYPE_E),
- charstring mediaType
- }
-
- // [20.16]
- type record CSeq
- {
- FieldName fieldName (CSEQ_E),
- integer seqNumber, // this field is represented as an integer
- charstring method
- }
-
- // [20.17]
- type record Date
- {
- FieldName fieldName (DATE_E),
- charstring sipDate
- }
-
- // [20.18]
- type record ErrorInfo
- {
- FieldName fieldName (ERROR_INFO_E),
- ErrorInfoBody_List errorInfo optional
- }
-
- // [20.19]
- type record Expires
- {
- FieldName fieldName (EXPIRES_E),
- DeltaSec deltaSec
- }
-
- // [20.20]
- type record From
- {
- FieldName fieldName (FROM_E),
- Addr_Union addressField,
- SemicolonParam_List fromParams optional
- }
-
- // [20.21]
- type record InReplyTo
- {
- FieldName fieldName (IN_REPLY_TO_E),
- CallidString_List callids
- }
-
- // [20.22]
- type record MaxForwards
- {
- FieldName fieldName (MAX_FORWARDS_E),
- integer forwards // this field is represented as an integer
- }
-
- // [20.23]
- type record MinExpires
- {
- FieldName fieldName (MIN_EXPIRES_E),
- DeltaSec deltaSec
- }
-
- // [20.24 RFC2616 19.4.1]
- type record MimeVersion
- {
- FieldName fieldName (MIME_VERSION_E),
- integer majorNumber, // this field is represented as an integer
- integer minorNumber // this field is represented as an integer
- }
-
- // [20.25]
- type record Organization
- {
- FieldName fieldName (ORGANIZATION_E),
- charstring organization
- }
-
- // [20.26]
- type record Priority
- {
- FieldName fieldName (PRIORITY_E),
- charstring priorityValue
- }
-
- // [20.27 RFC2616 14.33 RFC2617 1.2]
- type record ProxyAuthenticate
- {
- FieldName fieldName (PROXY_AUTHENTICATE_E),
- Challenge challenge
- }
-
- // [20.28 RFC2616 14.35 RFC2617 1.2]
- type record ProxyAuthorization
- {
- FieldName fieldName (PROXY_AUTHORIZATION_E),
- CredentialsList credentials // changed from Credentials to allow multiple Authorization headers
- }
-
- // [20.29]
- type record ProxyRequire
- {
- FieldName fieldName (PROXY_REQUIRE_E),
- OptionTag_List optionsTags
- }
-
- // [20.30]
- type record RecordRoute
- {
- FieldName fieldName (RECORD_ROUTE_E),
- RouteBody_List routeBody
- }
-
- // [20.31]
- type record ReplyTo
- {
- FieldName fieldName (REPLY_TO_E),
- Addr_Union addressField,
- SemicolonParam_List replyToParams optional
- }
-
- // [20.32]
- type record Require
- {
- FieldName fieldName (REQUIRE_E),
- OptionTag_List optionsTags
- }
-
- // [20.33]
- type record RetryAfter
- {
- FieldName fieldName (RETRY_AFTER_E),
- DeltaSec deltaSec,
- charstring comment optional,
- SemicolonParam_List retryParams optional
- }
-
- // [20.34]
- type record Route
- {
- FieldName fieldName (ROUTE_E),
- RouteBody_List routeBody
- }
-
- // [20.35 RFC2616 14.38]
- type record Server
- {
- FieldName fieldName (SERVER_E),
- ServerVal_List serverBody
- }
-
- // [20.36]
- type record Subject
- {
- FieldName fieldName (SUBJECT_E),
- charstring summary
- }
-
- // [20.37]
- type record Supported
- {
- FieldName fieldName (SUPPORTED_E),
- OptionTag_List optionsTags optional
- }
-
- // [20.38]
- type record Timestamp
- {
- FieldName fieldName (TIMESTAMP_E),
- TimeValue timeValue optional,
- TimeValue delay optional
- }
-
- // [20.39]
- type record To
- {
- FieldName fieldName (TO_E),
- Addr_Union addressField,
- SemicolonParam_List toParams optional
- }
-
- // [20.40]
- type record Unsupported
- {
- FieldName fieldName (UNSUPPORTED_E),
- OptionTag_List optionsTags
- }
-
- // Undefined header field
- type record UndefinedHeader
- {
- charstring headerName,
- charstring headerValue
- }
-
- type set of UndefinedHeader UndefinedHeader_List;
-
- // [20.41 RFC2616 14.43]
- type record UserAgent
- {
- FieldName fieldName (USER_AGENT_E),
- ServerVal_List userAgentBody
- }
-
- // [20.42]
- type record Via
- {
- FieldName fieldName (VIA_E),
- ViaBody_List viaBody
- }
-
- // [20.43]
- type record Warning
- {
- FieldName fieldName (WARNING_E),
- WarningValue_List warningValue
- }
-
- // [20.44 RFC2616 14.47 RFC2617 1.2]
- type record WwwAuthenticate
- {
- FieldName fieldName (WWW_AUTHENTICATE_E),
- Challenge challenge
- }
- }//end group CommonHeaderFieldTypes
- group RFC3262HeaderFieldTypes
- {
- // [3262/7.1]
- type record RSeq {
- FieldName fieldName(RSEQ_E),
- integer responseNum
- }
-
- // [3262/7.2]
- type record RAck {
- FieldName fieldName(RACK_E),
- integer responseNum,
- integer seqNumber,
- charstring method
- }
- }//end group RFC3262HeaderFieldTypes
-
- group RFC3265HeaderFieldTypes
- {
- // [3265/7.2]
- type record AllowEvents {
- FieldName fieldName(ALLOW_EVENTS_E),
- EventType_List eventTypes
- }
-
- type set of EventType EventType_List;
- type charstring EventType;
-
- // [3265/7.2]
- type record Event {
- FieldName fieldName(EVENT_E),
- EventType eventType,
- SemicolonParam_List eventParams optional
- }
-
- // [3265/7.2]
- type record SubscriptionState {
- FieldName fieldName(SUBSCRIPTION_STATE_E),
- SubState subState,
- SemicolonParam_List substateParams optional
- }
-
- type charstring SubState;
- }//end group RFC3265HeaderFieldTypes
-
- group RFC3313HeaderFieldTypes
- {
- // [3313/5]
- type record PMediaAuthorization {
- FieldName fieldName(P_MEDIA_AUTHORIZATION_E),
- PMediaAuthorization_List pMediaAuthorizations
- }
-
- type charstring PMediaAuthValue; //HEXDIG "0"-"9", "A"-"F"
-
- type record of PMediaAuthValue PMediaAuthorization_List;
-
- }//end group RFC3265HeaderFieldTypes
-
- group RFC3323HeaderFieldTypes
- {
- // [3323]
- type record Privacy {
- FieldName fieldName(PRIVACY_E),
- PrivacyValue_List privValueList
- }
- }//end group RFC3323HeaderFieldTypes
-
- group RFC3325HeaderFieldTypes
- {
- // [3325]
- type record PAssertedID {
- FieldName fieldName(P_ASSERTED_ID_E),
- PAssertedIDValue_List pAssertedIDValueList
- }
-
- // [3325]
- type record PPreferredID {
- FieldName fieldName(P_PREFERRED_ID_E),
- PPreferredIDValue_List pPreferredIDValueList
- }
- // draft-drage-sipping-service-identification-01 (July 2007)
- type record PPreferredService {
- FieldName fieldName (P_PREFERRED_SERVICE_E),
- charstring serviceId
- }
-
- }//end group RFC3325HeaderFieldTypes
-
- group RFC3326HeaderFieldTypes
- {
- //[3326]
- type record of ReasonValue ReasonValues;
-
- type record ReasonValue {
- charstring token,
- SemicolonParam_List reasonParams optional
- }
-
- type record Reason {
- FieldName fieldName(REASON_E),
- ReasonValues reasonValues
- }
- }//end group RFC3326HeaderFieldTypes
-
- group RFC3327HeaderFieldTypes
- {
- // [3327]
- type record Path {
- FieldName fieldName(PATH_E),
- PathValues pathValues
- }
-
- type record of PathValue PathValues;
-
- type record PathValue {
- NameAddr nameAddr,
- SemicolonParam_List rrParam optional
- }
- }//end group RFC3515HeaderFieldTypes
-
-
- group RFC4488HeaderFieldTypes
- {
- // [4488]
- type record ReferSub {
- FieldName fieldName(REFER_SUB_E),
- boolean referSubValue,
- SemicolonParam_List referSubParams optional
- }
- }//end group RFC4488HeaderFieldTypes
-
- group RFC3329HeaderFieldTypes
- {
- // [RFC3329/2.2]
- type record SecurityMechanism {
- charstring mechName,
- SemicolonParam_List mechParams optional
- }
-
- type set of SecurityMechanism SecurityMechanism_List;
-
- type record SecurityClient {
- FieldName fieldName(SECURITY_CLIENT_E),
- SecurityMechanism_List securityMech
- }
-
- type record SecurityServer {
- FieldName fieldName(SECURITY_SERVER_E),
- SecurityMechanism_List securityMech
- }
-
- type record SecurityVerify {
- FieldName fieldName(SECURITY_VERIFY_E),
- SecurityMechanism_List securityMech
- }
- }//end group RFC3329HeaderFieldTypes
-
- group RFC3455HeaderFieldTypes
- {
- type record of NameAddrParam NameAddrParam_List;
-
- type record NameAddrParam {
- NameAddr nameAddr,
- SemicolonParam_List genericParams optional
- }
- //[3455/5.1]
- type record PAssociatedURI {
- FieldName fieldName(P_ASSOCIATED_URI_E),
- NameAddrParam_List nameAddrList
- }
- //[3455/5.2]
- type record PCalledPartyID {
- FieldName fieldName(P_CALLED_PARTY_E),
- NameAddrParam nameAddParams
- }
-
- type record of VnetworkSpec VnetworkSpec_List;
-
- type record VnetworkSpec {
- charstring vNetworkSpecToken,
- SemicolonParam_List genericParams optional
- }
-
- //[3455/5.3]
- type record PVisitedNetworkID {
- FieldName fieldName(P_VISITED_NETWORK_E),
- VnetworkSpec_List vNetWorkSpec
- }
-
- //[3455/5.4]
- type record PAccessNetworkInfo {
- FieldName fieldName(P_ACCESS_NETWORK_INFO_E),
- charstring accessType,
- SemicolonParam_List genericParams optional
- }
-
- //[3455/5.5]
- type record PChargingFunctionAddresses {
- FieldName fieldName(P_CHARGING_FUNCTION_ADDRESSES_E),
- SemicolonParam_List chargeAddrParams optional
- }
-
- //[3455/5.6]
- type record PChargingVector {
- FieldName fieldName(P_CHARGING_VECTOR_E),
- SemicolonParam_List chargeParams optional
- }
- }//end group RFC33455HeaderFieldTypes
-
- group RFC3515HeaderFieldTypes
- {
- // [3515]
- type record ReferTo {
- FieldName fieldName(REFER_TO_E),
- NameAddr nameAddr,
- SemicolonParam_List referToParams optional
- }
- }//end group RFC3515HeaderFieldTypes
-
- group RFC3608HeaderFieldTypes
- {
- // [3608]
- type record ServiceRoute {
- FieldName fieldName(SERVICE_ROUTE_E),
- RouteBody_List routeBody
- }
- }//end group RFC33608HeaderFieldTypes
-
-
- group RFC3841HeaderFieldTypes
- {
- // [3841]
- type record AcceptContact {
- FieldName fieldName(ACCEPT_CONTACT_E),
- AcRcValue_List acValues
- }
-
- type set of AcRcValue AcRcValue_List;
-
- type record AcRcValue {
- charstring wildcard(c_WILDCARD),
- SemicolonParam_List acRcParams optional
- }
- // [RFC 3841]
- type charstring Directive;
- type set of Directive Directive_List;
- type record RequestDisposition {
- FieldName fieldName (REQUEST_DISPOSITION_E),
- Directive_List directives
- }
-
- }// end group RFC3841HeaderFieldTypes
-
- group RFC3891HeaderFieldTypes
- {
- // [3891]
- type record Replaces
- {
- FieldName fieldName (REPLACES_E),
- SemicolonParam_List replacesParams
- }
- }// end group RFC3891HeaderFieldTypes
-
- group RFC3892HeaderFieldTypes
- {
- // [3892]
- type record ReferredBy {
- FieldName fieldName(REFERRED_BY_E),
- NameAddr nameAddr,
- SemicolonParam_List referredbyIdParams optional
- }
- }//end group RFC3892HeaderFieldTypes
-
- group RFC4028HeaderFieldTypes
- {
- // [4028]
- type record MinSE {
- FieldName fieldName(MIN_SE_E),
- DeltaSec deltaSec,
- SemicolonParam_List minSeParam optional
- }
- // [4028]
- type record SessionExpires {
- FieldName fieldName(SESSION_EXPIRES_E),
- DeltaSec deltaSec,
- SemicolonParam_List seParam optional
- }
- }//end group RFC4028HeaderFieldTypes
-
- group RFC4244HeaderFieldTypes
- {
- // [4244]
- type record HistoryInfo {
- FieldName fieldName(HISTORY_INFO_E),
- HistoryInfo_List historyInfoList
- }
-
- type record of HistoryInfoEntry HistoryInfo_List;
-
-
- type record of charstring StringList;
-
- type record HistoryInfoEntry {
- NameAddr nameAddr,
- StringList hiIndex optional,
- SemicolonParam_List hiExtention optional
- }
- }//end group RFC4244HeaderFieldTypes
-
- group RFC5009PEarlyMediaHeader
- {
- // [5009]
- type record PEarlyMedia {
- FieldName fieldName(P_EARLY_MEDIA_E),
- EM_List em_param
- }
- type record of charstring EM_List;
- }//end group RFC5009PEarlyMediaHeader
-
- //http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07, expires 16.Aug.2009
- //Transporting User to User Call Control Information in SIP for ISDN Interworking
- //type definition of SIP header mechanism
- group UserToUser_PreliminaryRFCDraft
- {
- type record UserToUser{
- FieldName fieldName (USER_TO_USER_E),
- charstring uuiData length(256), /*length limitation due to ISDN, max of allowed 128 hex digits are represented by 256 characters*/
- GenericParam uuiParam
- }
-
- }//end group UserToUser_PreliminaryRFCDraft
-
- type record PAssertedService {
- FieldName fieldName(P_ASSERTED_SERVICE_E),
- PAssertedServiceValue pAssertedServiceValue
- }
-
- group RFC6442GeolocationConveyance
- { /* @sic R5-133151 update of header fields sic@ */
- // [6442]
- type record Geolocation { // RFC6442 clause 4.1
- FieldName fieldName(GEOLOCATION_E),
- SipUrl addrSpec,
- SemicolonParam_List geolocParam optional
- }
- type enumerated GeolocationRoutingState
- {GEOLOCATION_ROUTING_YES_E,
- GEOLOCATION_ROUTING_NO_E,
- GEOLOCATION_ROUTING_OTHER_E
- };
- type record GeolocationRouting { // RFC6442 clause 4.2
- FieldName fieldName(GEOLOCATION_ROUTING_E),
- GeolocationRoutingState state,
- GenericParam genericValue optional
- }
- }//end group RFC6442GeolocationConveyance
-
- type charstring SessIdString length(32);
-
- type record SessionId {
- FieldName fieldName (SESSION_ID_E),
- SessIdString sessid,
- GenericParam sessidParam optional
- }
-
- type charstring EntityTag;
-
- type record SIP_ETag {
- FieldName fieldName (SIP_ETAG_E),
- EntityTag entityTag
- }
-
- type record SIP_If_Match {
- FieldName fieldName (SIP_IF_MATCH_E),
- EntityTag entityTag
- }
-
- } // end group HeaderFieldTypes
-
- group MessageHeaderTypes
- {
-
- // Message-Header for all SIP requests and responses [20]
- type set MessageHeader
- {
- Accept accept optional,
- AcceptContact acceptContact optional,
- AcceptEncoding acceptEncoding optional,
- AcceptLanguage acceptLanguage optional,
- AlertInfo alertInfo optional,
- Allow allow optional,
- AllowEvents allowEvents optional, // 3265/7.2
- AuthenticationInfo authenticationInfo optional, // only in responses
- Authorization authorization optional, // only in requests
- CallId callId optional, // optional only in Invalid test cases mandatory otherwise
- CallInfo callInfo optional,
- Contact contact optional, // optional in response and all requests except INVITE where mandatory
- ContentDisposition contentDisposition optional,
- ContentEncoding contentEncoding optional,
- ContentLanguage contentLanguage optional,
- ContentLength contentLength optional, // optional in responses and all requests except ACK where mandatory
- ContentType contentType optional,
- CSeq cSeq optional, // optional only in Invalid test cases mandatory otherwise
- Date date optional,
- ErrorInfo errorInfo optional, // only in responses
- Event event optional, // 3265/7.2
- Expires expires optional,
- From fromField,
- Geolocation geolocation optional, // 6442
- GeolocationRouting geolocationRouting optional, // 6442 @sic R5-133151 update of header fields sic@
- HistoryInfo historyInfo optional, // 4244
- InReplyTo inReplyTo optional, // only in requests
- MaxForwards maxForwards optional, // mandatory in requests not required in responses!
- MimeVersion mimeVersion optional,
- MinExpires minExpires optional, // only in responses
- MinSE minSE optional, // 4028
- Organization organization optional,
- PAccessNetworkInfo pAccessNetworkInfo optional, // 3455
- PAssertedID pAssertedID optional, // 3325
- PAssertedService pAssertedService optional,
- PAssociatedURI pAssociatedURI optional, // 3455
- Path path optional, // 3327
- PCalledPartyID pCalledPartyID optional, // 3455
- PChargingFunctionAddresses pChargingFunctionAddresses optional, // 3455
- PChargingVector pChargingVector optional, // 3455
- PEarlyMedia pEarlyMedia optional, // 5009
- PMediaAuthorization pMediaAuthorization optional, // 3313
- PPreferredID pPreferredID optional, // 3325
- PPreferredService pPreferredService optional, // draft-drage-sipping-service-identification-01 (July 2007)
- Priority priority optional, // only in requests
- Privacy privacy optional, // 3323
- ProxyAuthenticate proxyAuthenticate optional, // only in responses
- ProxyAuthorization proxyAuthorization optional, // only in requests
- ProxyRequire proxyRequire optional, // only in requests
- PVisitedNetworkID pVisitedNetworkID optional, // 3455
- RAck rAck optional, // 3262/7.1
- RSeq rSeq optional, // 3262/7.1
- Reason reason optional, // 3326
- RecordRoute recordRoute optional,
- RequestDisposition requestDisposition optional, // 3841
- ReferredBy referredBy optional, // 3892 - REFER method
- ReferTo referTo optional, // 3515 - REFER method
- ReferSub referSub optional, // 4488 - REFER method
- Replaces replaces optional, // 3891
- ReplyTo replyTo optional, // optional in responses and INVITE requests
- Require require optional,
- RetryAfter retryAfter optional, // only in responses
- Route route optional, // only in requests
- SecurityClient securityClient optional, // 3329
- SecurityServer securityServer optional, // 3329
- SecurityVerify securityVerify optional, // 3329
- Server server optional, // only in responses
- ServiceRoute serviceRoute optional, // 3608
- SessionExpires sessionExpires optional, // 4028
- SessionId sessionId optional,
- SIP_ETag sipETag optional,
- SIP_If_Match sipIfMatch optional,
- Subject subject optional, // only in requests
- SubscriptionState subscriptionState optional, // 3265/7.2
- Supported supported optional,
- Timestamp timestamp optional,
- To toField,
- Unsupported unsupported optional, // only in responses
- UserToUser userToUser optional,
- UserAgent userAgent optional,
- Via via,
- Warning warning optional, // only in responses
- WwwAuthenticate wwwAuthenticate optional, // only in responses
- UndefinedHeader_List undefinedHeader_List optional
- }
-
- } // end group MessageHeaderTypes
-
- group StartLineTypes
- {
- // Request-Line [7.1]
- type record RequestLine
- {
- Method method,
- SipUrl requestUri,
- charstring sipVersion
- }
-
- // Status-Line [7.2]
- type record StatusLine
- {
- charstring sipVersion,
- integer statusCode,
- charstring reasonPhrase
- }
-
- } // end group StartLineTypes
-
-
- group otherTypes{
-
- type record SipUserProfile
- {
- /** @desc integer for the userprofile identifier
- */
- integer id,
-
- /** @desc integer for Port number to exchange SIP messages
- */
- integer currPort,
-
- /** @desc charstring for IP address to exchange SIP messages
- */
- charstring currIpaddr,
-
- /** @desc integer for Port number to exchange SIP messages
- */
- integer contactPort,
-
- /** @desc charstring for IP address to exchange SIP messages
- */
- charstring contactIpaddr,
-
- /** @desc charstring for IP address used by the TS to exchange media streams
- */
- charstring bearerIpaddr,
-
- /** @desc charstring for identity of the tester local domain
- */
- charstring homeDomain,
-
- /** @desc charstring for identity of the tester local user
- */
- charstring publUsername,
-
- /** @desc charstring for RFC 2617 3.2.1 qop options:
- * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The
- * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
- */
- charstring qop,
-
- /** @desc charstring for RFC 2617 3.2.2 username for authentication
- * The name of user in the specified realm
- */
- charstring privUsername,
-
- /** @desc charstring for RFC 2617 3.2.2.2 passwd: A known shared secret, the password of user of the specified username
- */
- charstring passwd,
-
- /** @desc charstring for registrar domain for authentication and request line
- */
- charstring registrarDomain
-
- }
-
-
- } // end group otherTypes
-
- }// end group Subtypes
-
-
-
- group MSGtypes{
-
- group RequestTypes
- {
- // [7.1]
-
- /**
- *
- * @desc generic type of a SIP request message
- * @member statusLine contains a method name, a Request-URI, and the protocol version
- * @member msgHeader include all possible header fields that are allowed to be present according to RFCs and other standards
- * @member messageBody depends on the request method, includes e.g. SDP message.
- * @member payload contains the whole message as it has been received in its text format
- */
- type record Request
- {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- // Note: the introduction of the following specific types is to enable better means for logging
- // on the other side the generic type is useful for functions dealing with multiple SIP message types
-
- type record REGISTER_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record INVITE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record OPTIONS_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record BYE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record CANCEL_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record ACK_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3262/7.1]
- type record PRACK_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3265/7.1]
- type record NOTIFY_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3265/7.1]
- type record SUBSCRIBE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- // [3903/11.1]
- type record PUBLISH_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3311/7]
- type record UPDATE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- //
- type record REFER_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- //
- type record MESSAGE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- //
- type record INFO_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type union RequestUnion {
- REGISTER_Request Register,
- INVITE_Request Invite,
- OPTIONS_Request Options,
- BYE_Request Bye,
- CANCEL_Request Cancel,
- ACK_Request Ack,
- PRACK_Request Prack,
- NOTIFY_Request Notify,
- SUBSCRIBE_Request Subscribe,
- PUBLISH_Request Publish,
- UPDATE_Request Update,
- REFER_Request Refer,
- MESSAGE_Request Message
- } with { encode "SIPCodec"}
-
- } //with { encode "SIPCodec" }// end group RequestTypes
-
- group ResponseTypes
- {
- // [7.2]
-
- /**
- *
- * @desc generic type of a SIP response message
- * @member statusLine consists of the protocol version followed by a numeric Status-Code and its associated textual phrase
- * @member msgHeader include all possible header fields that are allowed to be present according to RFCs and other standards
- * @member messageBody depends on the response method, includes e.g. SDP message.
- * @member payload contains the whole message as it has been received in its text format
- */
- type record Response
- {
- StatusLine statusLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- } //with { encode "SIPCodec" }// end group ResponseTypes
-
- // This MSG type is defined for sending synctactic variations, ans syntactically
- // erroneous messages, and receving messages failed parsing.
- group SyntacticTypes
- {
- type charstring Raw;
- } // end group SyntacticTypes
-
- // This type is defined for particular SIP message body types like SDP
-
- }// end group MSGTypes
-}// end group Types
-
-} with {encode "LibSip V2"} // end module LibSip_TypesAndValues
/v3.0.3/branches/v2/ttcn/LibSip_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/ttcn/LibSip_SMSTemplates.ttcn3
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_SMSTemplates.ttcn3 (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_SMSTemplates.ttcn3 (nonexistent)
@@ -1,395 +0,0 @@
-/*
- * @author STF 435
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-SMS over IMS as specified in 3GPP 24.341 tests.
- * This module is part of LibSipV2.
- */
-module LibSip_SMSTemplates {
- import from LibCommon_DataStrings all;
- import from LibSip_SMSTypesAndValues all;
- import from LibSip_SMSFunctions all;
-
- group SMS_Templates_Group {
-
- /* Non-SMS Type Constraints */
-
-
-
- template (present) TypeOfNumberingPlan cr_TypeOfNumberingPlanAny :=
- {
- extBit := ?,
- typeOfNumber := ?,
- numberingPlanId := ?
- };
-
- template (value) TypeOfNumberingPlan cs_TypeOfNumberingPlan :=
- {
- extBit := '1'B,
- typeOfNumber := '001'B, // international number
- numberingPlanId := '0001'B // ISDN/telephony numbering plan (Rec. E.164/E.163)
- };
-
- template (present) TypeOfNumberingPlan cr_TypeOfNumberingPlan :=
- {
- extBit := ?,
- typeOfNumber := ?,
- numberingPlanId := ?
- };
-
- /* End Non-SMS Type Constraints */
-
- template (omit) RP_OriginatorAddress_dl cs_RP_OriginatorAddress_dl :=
- {
- spare := omit,
- iei := omit,
- iel := '06'O, // 6 semi-octets
- typeOfNumberingPlan := cs_TypeOfNumberingPlan,
- digits := '001122'O
- };
-
- template (omit) RP_OriginatorAddress_ul cr_RP_OriginatorAddress_ul :=
- {
- spare := omit,
- iei := omit,
- iel := '00'O
- };
-
- template RP_DestinationAddress_ul cr_RP_DestinationAddress_ul :=
- {
- spare := omit,
- iei := omit,
- iel := ?,
- typeOfNumberingPlan := cr_TypeOfNumberingPlan,
- digits := ?
- };
- template (omit) RP_DestinationAddress_dl cs_RP_DestinationAddress_dl :=
- {
- spare := omit,
- iei := omit,
- iel := '00'O
- };
-
- template (omit) RP_UserData cs_RP_UserData_DELIVER (octetstring p_Digits) :=
- {
- spare := omit,
- iei := omit,
- iel := int2oct ((153 + lengthof (p_Digits)), 1),
- tP_PDU := {SMS_DELIVER := cs_SMS_DELIVER (p_Digits)}
- };
-
- template (omit) RP_UserData cs_RP_UserData_SUBMIT_REPORT :=
- {
- spare := '0'B,
- iei := tsc_IEI_RP_UserData,
- iel := '0A'O, // the TPDU data length is 10 octets
- tP_PDU := {SMS_SUBMIT_REPORT := cs_SMS_SUBMIT_REPORT}
- };
- template (omit) RP_UserData cs_RP_UserData_STATUS_REPORT
- (TP_MessageReference_Type p_MessageRef,
- TP_Address_Type p_RecipientAddress,
- TP_ServiceCentreTimeStamp_Type p_SCTP
- ) :=
- {
- spare := '0'B,
- iei := tsc_IEI_RP_UserData,
- iel := '0A'O, // the TPDU data length is 10 octets
- tP_PDU := {SMS_STATUS_REPORT := cs_SMS_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP)}
- };
-
- /*
- template RP_UserData cr_RP_UserData (TP_PDU_Type p_TP_PDU) :=
- {
- spare := omit,
- iei := omit,
- iel := ?,
- tP_PDU := p_TP_PDU
- };
- */
- template RP_UserData cr_RP_UserData_SUBMIT :=
- {
- spare := omit,
- iei := omit,
- iel := ?,
- tP_PDU := {SMS_SUBMIT := cr_SMS_SUBMIT_VPF_REF}
- };
-
- template RP_UserData cr_RP_UserData_DELIVER_REPORT :=
- {
- spare := '0'B,
- iei := tsc_IEI_RP_UserData,
- iel := ?,
- tP_PDU := {SMS_DELIVER_REPORT := cr_SMS_DELIVER_REPORT}
- };
-
- /* End SM-RP Type Constraints */
-
- /* SM-RP PDU Constraints */
-
- template (value) RP_DATA_dl_Type cs_RP_DATA_dl_DELIVER (octetstring p_Digits) :=
- {
- spare5 := '00000'B,
- rP_MessageTypeIndicator := tsc_MT_RP_DATA_dl,
- rP_MessageReference := '00'O,
- rP_OriginatorAddress := cs_RP_OriginatorAddress_dl,
- rP_DestinationAddress := cs_RP_DestinationAddress_dl,
- rP_UserData := cs_RP_UserData_DELIVER(p_Digits)
- };
-
- template (value) RP_DATA_dl_Type cs_RP_DATA_dl_STATUS_REPORT (
- TP_MessageReference_Type p_MessageRef,
- TP_Address_Type p_RecipientAddress,
- TP_ServiceCentreTimeStamp_Type p_SCTP
- ) :=
- {
- spare5 := '00000'B,
- rP_MessageTypeIndicator := tsc_MT_RP_DATA_dl,
- rP_MessageReference := '00'O,
- rP_OriginatorAddress := cs_RP_OriginatorAddress_dl,
- rP_DestinationAddress := cs_RP_DestinationAddress_dl,
- rP_UserData := cs_RP_UserData_STATUS_REPORT (p_MessageRef, p_RecipientAddress, p_SCTP)
- };
-
-
- template (present) RP_DATA_ul_Type cr_RP_DATA_ul_SUBMIT :=
- {
- spare5 := '00000'B,
- rP_MessageTypeIndicator := tsc_MT_RP_DATA_ul,
- rP_MessageReference := ?,
- rP_OriginatorAddress := cr_RP_OriginatorAddress_ul,
- rP_DestinationAddress := cr_RP_DestinationAddress_ul,
- rP_UserData := cr_RP_UserData_SUBMIT
- };
-
- template (value) RP_ACK_Type cs_RP_ACK_SUBMIT_REPORT (Oct1 p_msgReference := '00'O):=
- {
- spare5 := '00000'B,
- rP_MessageTypeIndicator := tsc_MT_RP_ACK_dl,
- rP_MessageReference := p_msgReference,
- rP_UserData := cs_RP_UserData_SUBMIT_REPORT
- };
-
- template (present) RP_ACK_Type cr_RP_ACK_DELIVER_REPORT :=
- {
- spare5 := '00000'B,
- rP_MessageTypeIndicator := tsc_MT_RP_ACK_ul,
- rP_MessageReference := ?,
- rP_UserData := cr_RP_UserData_DELIVER_REPORT
- };
-
- /* End SM-RP PDU Constraints */
-
- /* SM-TP Type Constraints */
- template (value) TP_ProtocolIdentifier_Type cr_TP_ProtocolIdentifier :=
- {
- pidType := '01'B,
- interworking := '0'B,
- pidValue := '00000'B
- };
-
- template (value) TP_ProtocolIdentifier_Type cs_TP_ProtocolIdentifier :=
- {
- pidType := '01'B,
- interworking := '0'B,
- pidValue := '00000'B
- };
-
- template (value) TP_DataCodingScheme_Type cs_TP_DataCodingScheme :=
- {
- codingGroup := '0000'B,
- codeValue := '0000'B
- };
-
- template TP_Address_Type cr_TP_AddressAny :=
- {
- iel := ?,
- typeOfNumberingPlan := cr_TypeOfNumberingPlanAny,
- digits := *
- };
-
- template (value) TP_Address_Type cs_TP_Address (octetstring p_Digits) :=
- {
- iel := int2oct(2 * lengthof(p_Digits), 1),
- // length is number of useful semi-octets
- // as p_digits is declared as octetstring the number must be even
- typeOfNumberingPlan := cs_TypeOfNumberingPlan,
- digits := p_Digits
- };
-
- template (value) TP_ParameterIndicator_Type cs_TP_ParameterIndicator :=
- {
- extBit1 := '0'B,
- spare4 := '0000'B,
- tP_UDL := '0'B,
- tP_DCS := '0'B,
- tP_PID := '1'B
- };
-
- /* End SM-TP Type Constraints */
-
- /* SM-TP PDU Constraints */
-
- template (value) SMS_DELIVER_Type cs_SMS_DELIVER (octetstring p_Digits) :=
- {
- tP_ReplyPath := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportIndication := '1'B,
- spare2 := '00'B,
- tP_MoreMessagesToSend := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_DELIVER,
- tP_OriginatingAddress := cs_TP_Address (p_Digits),
- tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := cs_TP_DataCodingScheme,
- tP_ServiceCentreTimeStamp := fx_GetSC_TimeStamp(0), // Time Zone 0 assumed
- tP_UserDataLength := int2oct(160,1),
- tP_UserData := f_IA5_2oct(tsc_Fox)
- };
-
- template SMS_DELIVER_REPORT_Type cr_SMS_DELIVER_REPORT :=
- {
- spare1 := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- spare4 := '0000'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_DELIVER_REPORT,
- tP_FailureCause := omit,
- tP_ParameterIndicator := ?,
- tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := *,
- tP_UserDataLength := *,
- tP_UserData := *
- };
-
- template SMS_SUBMIT_Type cr_SMS_SUBMIT :=
- {
- tP_ReplyPath := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportRequest := '1'B,
- tP_ValidityPeriodFormat := '??'B,
- tP_RejectDuplicates := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
- tP_MessageReference := ?,
- tP_DestinationAddress := cr_TP_AddressAny,
- tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := ?,
- tP_ValidityPeriod := *,
- tP_UserDataLength := int2oct(160,1),
- tP_UserData := ? // any data will do: 140 octets
- };
-
- template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_NP :=
- {
- tP_ReplyPath := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportRequest := '1'B,
- tP_ValidityPeriodFormat := '00'B,
- tP_RejectDuplicates := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
- tP_MessageReference := ?,
- tP_DestinationAddress := cr_TP_AddressAny,
- tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := ?,
- tP_ValidityPeriod := omit,
- tP_UserDataLength := int2oct(160,1),
- tP_UserData := ? // any data will do: 140 octets
- };
-
- template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_REF :=
- {
- tP_ReplyPath := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportRequest := '1'B,
- tP_ValidityPeriodFormat := '10'B,
- tP_RejectDuplicates := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
- tP_MessageReference := ?,
- tP_DestinationAddress := cr_TP_AddressAny,
- tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := ?,
- tP_ValidityPeriod := ?,
- tP_UserDataLength := int2oct(160,1),
- tP_UserData := ? // any data will do: 140 octets
- };
-
- template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ENH :=
- {
- tP_ReplyPath := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportRequest := '1'B,
- tP_ValidityPeriodFormat := '01'B,
- tP_RejectDuplicates := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
- tP_MessageReference := ?,
- tP_DestinationAddress := cr_TP_AddressAny,
- tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := ?,
- tP_ValidityPeriod := ?,
- tP_UserDataLength := int2oct(160,1),
- tP_UserData := ? // any data will do: 140 octets
- };
-
- template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ABS :=
- {
- tP_ReplyPath := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportRequest := '1'B,
- tP_ValidityPeriodFormat := '11'B,
- tP_RejectDuplicates := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
- tP_MessageReference := ?,
- tP_DestinationAddress := cr_TP_AddressAny,
- tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := ?,
- tP_ValidityPeriod := ?,
- tP_UserDataLength := int2oct(160,1),
- tP_UserData := ? // any data will do: 140 octets
- };
-
- template (value) SMS_SUBMIT_REPORT_Type cs_SMS_SUBMIT_REPORT :=
- {
- spare1 := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- spare4 := '0000'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT_REPORT,
- tP_FailureCause := omit,
- tP_ParameterIndicator := cs_TP_ParameterIndicator,
- tP_ServiceCentreTimeStamp := fx_GetSC_TimeStamp(0), // Time Zone 0 assumed
- tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := omit,
- tP_UserDataLength := omit,
- tP_UserData := omit
- };
-
- template (value) SMS_STATUS_REPORT_Type cs_SMS_STATUS_REPORT (
- TP_MessageReference_Type p_MessageRef,
- TP_Address_Type p_RA,
- TP_ServiceCentreTimeStamp_Type p_SCTP
- ):=
- {
- // TS 34.229-1 clause A.7.5
- spare1 := '0'B,
- tP_UserDataHeaderIndicator := '0'B,
- tP_StatusReportQualifier := '0'B,
- spare2 := '00'B,
- tP_MoreMessagesToSend := '0'B,
- tP_MessageTypeIndicator := tsc_MT_SMS_STATUS_REPORT,
- tP_MessageReference := p_MessageRef,
- tP_RecipientAddress := p_RA,
- tP_ServiceCentreTimeStamp := p_SCTP,
- tP_DischargeTime := '00000000000000'H,
- tP_Status := {
- reserved := '0'B,
- status := '0000000'B
- },
- tP_ParameterIndicator := cs_TP_ParameterIndicator,
- tP_ProtocolIdentifier := cs_TP_ProtocolIdentifier,
- tP_DataCodingScheme_Type := omit,
- tP_UserDataLength := omit,
- tP_UserData := omit
- };
-
-
- /* End SM-TP PDU Constraints */
-
- } // group SMS_Templates_Group
-
-} // End of module LibSip_SMSTypesAndValues
\ No newline at end of file
Index: v3.0.3/branches/v2/ttcn/LibSip_XMLTypes.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_XMLTypes.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_XMLTypes.ttcn (nonexistent)
@@ -1,124 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the XML type system for SIP tests.
- * The types have been generated automatically, followed by manual modifications:
- * - bitType substituted by OneBitType
- * - twobitType substituted by TwoBitType
- * - addition of pattern for: OneBitType, TwoBitType, ThreeBitType, FourBitType, FourBitType, SixBitType
- * - application of enumerated for: State_type, Endpoint_status_type, Joining_type, Disconnection_type, Media_status_type,
- * Originating_identity_presentation_restriction, Terminating_identity_presentation_restriction
- * - addition of length value: NetworkIdentityType, SixteenbitType
- * - addition of value restriction: CugIndexType
- * - substitution of "content" by "choice": Call_type, Mcid
- * - additional type renaming (upper first letter): AbsService, Anonymous, Busy,
- * Communication_diverted, Conference_description_type, Conference_info,
- * Conference_media_type, Conference_medium_type, Conference_state_type,
- * Conference_type, Cug, CugRequestType, Empty_element_type, Endpoint_type,
- * Execution_type, Host_type, Keywords_type, Media, Media_type, No_answer,
- * Not_reachable, Not_registered, Originating_identity_presentation, Presence_status,
- * Presence_status_activity_type, RequestType, ResponseType, Roaming,
- * Rule_deactivated, Sidebars_by_val_type, Simservs, SimservType,
- * Terminating_identity_presentation, Uri_type, Uris_type, User_roles_type,
- * User_languages_type, User_type, Users_type
- *
- * - new group CDIV added by STF369
- * - new group ACR_CD added by STF38
- * - new types RegInfo and Pidf_Lo added by STF160
- *
- * This module is part of LibSipV2.
- */
-module LibSip_XMLTypes {
-
- import from http_www_w3_org_XML_1998_namespace language "XSD" all
- with {
- extension "File:../xsd/xml.xsd"
- }
-
- import from urn_ietf_params_xml_ns_common_policy language "XSD" all
- with {
- extension "File:../xsd/common-policy.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_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 NoTargetNamespace language "XSD" all
- with {
- extension "File:../xsd/Ims3gpp.xsd"
- }
-
- import from urn_3gpp_ns_cw_1_0 language "XSD" all
- with {
- extension "File:../xsd/cw.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_comm_div_info language "XSD" all
- with {
- extension "File:../xsd/CDIVN.xsd"
- }
-
- import from urn_oma_xml_xdm_common_policy language "XSD" all
- with {
- extension "File:../xsd/xdm_commonPolicy-v1_0.xsd"
- }
- // RFC 3680 Registration Info
- import from urn_ietf_params_xml_ns_reginfo language "XSD" all
- with {
- extension "File:../xsd/regInfo.xsd"
- }
- // RFC 3863 Presence Information Data Format
- import from urn_ietf_params_xml_ns_pidf language "XSD" all
- with {
- extension "File:../xsd/pidf.xsd"
- }
- // RFC 4119 Presence Information Data Format, Location Object extension
- import from urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy language "XSD" all
- with {
- extension "File:../xsd/geopriv10basic.xsd"
- }
-
- // RFC 4119 Presence Information Data Format, Location Object extension
- import from urn_ietf_params_xml_ns_pidf_geopriv10 language "XSD" all
- with {
- extension "File:../xsd/pidf_lo.xsd"
- }
-
- group XmlTypes {
- type union XmlBody {
- Mcid mcid, // if there is XML Mcid
- Comm_div_info_type cdivn, // if there is XML cdivn
- Simservs simservs, // if there is XML simservs (Oip/r, Tip/r, Call Diversion, ICB, OCB ...)
- Conference_type conference, // if there is XML conf
- Ims_cw cw, // if there is XML cw (defined in X_3gpp_ns_cw_1_0.ttcn3view)
- Cug cug, // if there is XML cug (defined in org_etsi_uri__ngn_params_xml_simservs_xcap.ttcn3view)
- TIMS3GPP ims3gpp, // if there is XML IMS 3GPP
- PSTN_transit pstnTransit, // if there is XML PSTN_transit
- Resource_lists resourceLists, // if there is XML Resource List data
- Reginfo regInfo, // if it is a registration event
- Geopriv geopriv // if it is a Presence Information Data Format Location Object
- }
- }
-}
\ No newline at end of file
/v3.0.3/branches/v2/ttcn/LibSip_XMLTypes.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/ttcn/LibSip_MessageBodyTypes.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_MessageBodyTypes.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_MessageBodyTypes.ttcn (nonexistent)
@@ -1,52 +0,0 @@
-/******************************************************************************/
-// $Date: 2013-04-08 08:18:17 +0000 (Mo, 08 Apr 2013) $
-// $Author: seka $
-// $Rev: 8470 $
-/******************************************************************************/
-/*
-* This module is part of LibSipV2.
-*/
-
-module LibSip_MessageBodyTypes
-{
- import from LibSip_SDPTypes all;
- import from LibSip_SimpleMsgSummaryTypes all;
- import from LibSip_XMLTypes all;
-
-// type charstring XmlBody;
-
- group MIMETypes {
- type union MIME_Encapsulated_Parts {
- SDP_Message sdpMessageBody,
- XmlBody xmlBody // if there is XML body
- // XMLMessage xmlMessage // if there is XML message (with header and body)
- };
-
- type record MIME_Encapsulated_Part {
- charstring content_type,
- charstring content_disposition optional,
- MIME_Encapsulated_Parts mime_encapsulated_part
- };
-
- type record MIME_Message {
- charstring boundary, // len:
- MimeEncapsulatedList mimeEncapsulatedList
- };
-
- type record of MIME_Encapsulated_Part MimeEncapsulatedList;
-
- } // group MIMETypes
-
- type union MessageBody {
- SDP_Message sdpMessageBody, // if there is only SDP part
-// XMLMessage xmlMessage, // if there is XML message (with header and body)
- XmlBody xmlBody, // if there is XML body
- MIME_Message mimeMessageBody, // if there is SDP and encapsulated ISUP part
- charstring sipfrag, // if content-Type is message/sipfrag (cp. NOTIFY, cp TS124147 A.4.3.1.2)
- charstring textplain, // if content type is text/plain (for testing long messages)
- SimpleMsgSummary simpleMsgSummary, // RFC 3842
- octetstring smsMessage // encoded SMS message 3GPP 23.040, 24.011
- };
-
-
-}
Index: v3.0.3/branches/v2/ttcn/LibSip_SMSTypesAndValues.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_SMSTypesAndValues.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_SMSTypesAndValues.ttcn (nonexistent)
@@ -1,328 +0,0 @@
-/******************************************************************************/
-// $Date: 2009-11-25 18:40:50 +0100 (Mi, 25 Nov 2009) $
-// $Author: STF160 $
-// $Rev: 2184 $
-/******************************************************************************/
-/*
- * This module contains the type definitions for SMS messages as specified in
- * 3GPP 24.011 and 3GPP 23.040 Rel 8 and 9.
- * SMS over IMS is specified in 3GPP 24.341.
- * This module is part of LibSipV2.
- */
-
-
-module LibSip_SMSTypesAndValues {
- import from LibCommon_DataStrings all;
-
- group SMS_Declarations {
-
- const RP_MessageTypeIndicator_Type tsc_MT_RP_DATA_ul := '000'B; /* RP_DATA_ul */
- const RP_MessageTypeIndicator_Type tsc_MT_RP_DATA_dl := '001'B; /* RP_DATA_dl */
- const RP_MessageTypeIndicator_Type tsc_MT_RP_ACK_ul := '010'B; /* RP_ACK_ul */
- const RP_MessageTypeIndicator_Type tsc_MT_RP_ACK_dl := '011'B; /* RP_ACK_dl */
- const RP_MessageTypeIndicator_Type tsc_MT_RP_ERROR_ul := '100'B; /* RP_ERROR_ul */
- const RP_MessageTypeIndicator_Type tsc_MT_RP_ERROR_dl := '101'B; /* RP_ERROR_dl */
- const RP_MessageTypeIndicator_Type tsc_MT_RP_SMMA := '110'B; /* RP_SMMA */
-
- const TP_MessageTypeIndicator_Type tsc_MT_SMS_DELIVER := '00'B; /* SMS DELIVER */
- const TP_MessageTypeIndicator_Type tsc_MT_SMS_DELIVER_REPORT := '00'B; /* SMS DELIVER REPORT */
- const TP_MessageTypeIndicator_Type tsc_MT_SMS_STATUS_REPORT := '10'B; /* SMS STATUS REPORT */
- const TP_MessageTypeIndicator_Type tsc_MT_SMS_COMMAND := '10'B; /* SMS COMMAND */
- const TP_MessageTypeIndicator_Type tsc_MT_SMS_SUBMIT := '01'B; /* SMS SUBMIT, SMS SUBMIT REPORT */
- const TP_MessageTypeIndicator_Type tsc_MT_SMS_SUBMIT_REPORT := '01'B; /* SMS SUBMIT, SMS SUBMIT REPORT */
-
- const Bit7 tsc_IEI_RP_UserData := '1000001'B; /* 24.011 cl. 8.2.5.3 */
-
- const charstring tsc_Fox := "The quick brown fox jumps over the lazy dog's back. Kaufen Sie Ihrer Frau vier bequeme Pelze. - 0123456789 - THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG'S BACK.";
-
-
-
- type record TypeOfNumberingPlan { /* 24.008 cl. 10.5.4.7, 10.5.4.9, 10.5.4.13 */
- Bit1 extBit, /* Extension Bit */
- Bit3 typeOfNumber, /* Type Of Number */
- Bit4 numberingPlanId /* Numbering Plan Identification */
- };
- /* SM-RP Type Declarations */
-
- type Bit3 RP_MessageTypeIndicator_Type; /* 24.011 cl. 8.2.2 */
- type Oct1 RP_MessageReference_Type; /* 24.011 cl. 8.2.3 */
- type record RP_OriginatorAddress_dl { /* 24.011 cl. 8.2.5.1 */
- Bit1 spare optional, /* 0 */
- Bit7 iei optional, /* 0101 1110 */
- Oct1 iel, /* min value 2 and max value is 11 */
- TypeOfNumberingPlan typeOfNumberingPlan, /* */
- octetstring digits length(1..10)
- };
-
- type record RP_OriginatorAddress_ul { /* 24.011 cl. 8.2.5.1 */
- Bit1 spare optional, /* 0 */
- Bit7 iei optional, /* 0101 1110 */
- Oct1 iel /* 0 */
- };
-
- type record RP_DestinationAddress_ul { /* 24.011 cl. 8.2.5.2 */
- Bit1 spare optional, /* 0 */
- Bit7 iei optional, /* 0101 1110 */
- Oct1 iel, /* min value 2 and max value is 11 */
- TypeOfNumberingPlan typeOfNumberingPlan, /* */
- octetstring digits length(1..10)
- };
- type record RP_DestinationAddress_dl { /* 24.011 cl. 8.2.5.2 */
- Bit1 spare optional, /* 0 */
- Bit7 iei optional, /* 0101 1110 */
- Oct1 iel /* 0 */
- };
-
- type record RP_UserData { /* 24.011 cl. 8.2.5.3 */
- Bit1 spare optional, /* 0, present in case of TLV; omit in case of LV */
- Bit7 iei optional, /* 1000001, present in case of TLV; omit in case of LV */
- Oct1 iel, /* */
- TP_PDU_Type tP_PDU /* <= 232 octets */
- };
-
- type record RP_Cause { /* 24.011 cl. 8.2.5.4 */
- Bit1 spare optional, /* present in case of TLV; omit in case of LV */
- Bit7 iei optional, /* present in case of TLV; omit in case of LV */
- Oct1 iel, /* 2 or 3 */
- Bit1 extBit1, /* 0 */
- Bit7 causeValue1, /* Table 8.4/3GPP TS 24.011 */
- Bit1 extBit2, /* 0 */
- Bit7 causeValue2, /* Table 8.4/3GPP TS 24.011 */
- Oct1 diagnostic optional /* Parameters included in the return error from MAP */
- };
-
- /* End SM-RP Type Declarations */
-
- /* SM-RP PDU Declarations */
-
- type record RP_DATA_dl_Type { /* 24.011 cl. 7.3.1.1
- Direction: n -> ue */
- Bit5 spare5, /* cl. 8.2.2 M V 5 bits */
- RP_MessageTypeIndicator_Type rP_MessageTypeIndicator, /* cl. 8.2.2 M V 3 bits */
- RP_MessageReference_Type rP_MessageReference, /* cl. 8.2.3 M LV 1 */
- RP_OriginatorAddress_dl rP_OriginatorAddress, /* cl. 8.2.5.1 M LV 1-12 octets */
- RP_DestinationAddress_dl rP_DestinationAddress, /* cl. 8.2.5.2 M LV 1 */
- RP_UserData rP_UserData /* cl. 8.2.5.3 M LV <= 233 octets */
- };
-
- type record RP_DATA_ul_Type { /* 24.011 cl. 7.3.1.2
- Direction: ue -> n */
- Bit5 spare5, /* cl. 8.2.2 M V 5 bits */
- RP_MessageTypeIndicator_Type rP_MessageTypeIndicator, /* cl. 8.2.2 M V 3 bits */
- RP_MessageReference_Type rP_MessageReference, /* cl. 8.2.3 M LV 1 */
- RP_OriginatorAddress_ul rP_OriginatorAddress, /* cl. 8.2.5.1 M LV 1 */
- RP_DestinationAddress_ul rP_DestinationAddress, /* cl. 8.2.5.2 M LV 1 */
- RP_UserData rP_UserData /* cl. 8.2.5.3 M LV <= 233 octets */
- };
-
- type record RP_SMMA_Type { /* 24.011 cl. 7.3.2
- Direction: ue -> n */
- Bit5 spare5, /* cl. 8.2.2 M V 5 bits */
- RP_MessageTypeIndicator_Type rP_MessageTypeIndicator, /* cl. 8.2.2 M V 3 bits */
- RP_MessageReference_Type rP_MessageReference /* cl. 8.2.3 M LV 1 */
- };
-
- type record RP_ACK_Type { /* 24.011 cl. 7.3.3
- Direction: ue <-> n */
- Bit5 spare5, /* cl. 8.2.2 M V 5 bits */
- RP_MessageTypeIndicator_Type rP_MessageTypeIndicator, /* cl. 8.2.2 M V 3 bits */
- RP_MessageReference_Type rP_MessageReference, /* cl. 8.2.3 M LV 1 */
- RP_UserData rP_UserData optional /* cl. 8.2.5.3 O TLV <= 234 octets */
- };
-
- type record RP_ERROR_Type { /* 24.011 cl. 7.3.4
- Direction: ue <-> n */
- Bit5 spare5, /* cl. 8.2.2 M V 5 bits */
- RP_MessageTypeIndicator_Type rP_MessageTypeIndicator, /* cl. 8.2.2 M V 3 bits */
- RP_MessageReference_Type rP_MessageReference, /* cl. 8.2.3 M LV 1 */
- RP_Cause rP_Cause, /* cl. 8.2.5.4 M LV 2-3 */
- RP_UserData rP_UserData optional /* cl. 8.2.5.3 O TLV <= 234 octets */
- };
-
- type union RP_PDU_Type {
- RP_DATA_dl_Type RP_DATA_dl,
- RP_DATA_ul_Type RP_DATA_ul,
- RP_SMMA_Type RP_SMMA,
- RP_ACK_Type RP_ACK,
- RP_ERROR_Type RP_ERROR
- };
-
- /* End SM-RP PDU Declarations */
-
- /* SM-TP Type Declarations */
-
- type record TP_Address_Type { /* 23.040 cl. 9.1.2.5 */
- Oct1 iel, /* min value 2 and max value is 11 */
- TypeOfNumberingPlan typeOfNumberingPlan,
- octetstring digits length(0..10) optional
- };
-
- type Bit2 TP_MessageTypeIndicator_Type; /* 23.040 cl. 9.2.3.1 */
- type Oct1 TP_MessageReference_Type; /* 23.040 cl. 9.2.3.6 */
- type Oct1 TP_UserDataLength_Type; /* 23.040 cl. 9.2.3.16 */
-
- type record TP_ProtocolIdentifier_Type { /* 23.040 cl. 9.2.3.9 */
- Bit2 pidType, /* */
- Bit1 interworking, /* */
- Bit5 pidValue /* */
- };
-
- type record TP_DataCodingScheme_Type { /* 23.040 cl. 9.2.3.10 + 23.040 cl. 4 */
- Bit4 codingGroup, /* */
- Bit4 codeValue /* */
- };
-
- type hexstring TP_ServiceCentreTimeStamp_Type length (14); /* 23.040 cl. 9.2.3.11 */
-
- type Oct1 TP_ValidityPeriodRelative_Type; /* 23.040 cl. 9.2.3.12.1 */
-
- type hexstring TP_ValidityPeriodAbsolute_Type length (14); /* 23.040 cl. 9.2.3.12.2 */
-
- type record TP_ValidityPeriodEnhanced_Type { /* 23.040 cl. 9.2.3.12.3 */
- Bit1 extBit, /* */
- Bit1 singleShot, /* */
- Bit3 spare3, /* */
- Bit3 validityPeriodFormat, /* */
- Oct6 validityPeriod /* */
- };
-
- type union TP_ValidityPeriod_Type { /* 23.040 cl. 9.2.3.3 */
- TP_ValidityPeriodRelative_Type TP_ValidityPeriodRelative, /* Relative format */
- TP_ValidityPeriodAbsolute_Type TP_ValidityPeriodAbsolute, /* Absolute format */
- TP_ValidityPeriodEnhanced_Type TP_ValidityPeriodEnhanced /* Enhanced format */
- };
-
- type record TP_Status_Type { /* 23.040 cl. 9.2.3.15 */
- Bit1 reserved, /* */
- Bit7 status /* */
- };
-
- type Bit8 TP_Command_Type; /* 23.040 cl. 9.2.3.19 */
-
- type record TP_ParameterIndicator_Type { /* 23.040 cl. 9.2.3.27 */
- Bit1 extBit1, /* */
- Bit4 spare4, /* */
- Bit1 tP_UDL, /* */
- Bit1 tP_DCS, /* */
- Bit1 tP_PID /* */
- };
-
- /* End SM-TP Type Declarations */
-
- /* SM-TP PDU Declarations */
-
- type record SMS_DELIVER_Type { /* 23.040 cl. 9.2.2.1
- Direction: n -> ue */
- Bit1 tP_ReplyPath, /* 23.040 cl. 9.2.3.17 */
- Bit1 tP_UserDataHeaderIndicator, /* 23.040 cl. 9.2.3.23 */
- Bit1 tP_StatusReportIndication, /* 23.040 cl. 9.2.3.4 */
- Bit2 spare2, /* */
- Bit1 tP_MoreMessagesToSend, /* 23.040 cl. 9.2.3.2 */
- TP_MessageTypeIndicator_Type tP_MessageTypeIndicator, /* 23.040 cl. 9.2.3.1 */
- TP_Address_Type tP_OriginatingAddress, /* 23.040 cl. 9.1.2.5 */
- TP_ProtocolIdentifier_Type tP_ProtocolIdentifier, /* 23.040 cl. 9.2.3.9 */
- TP_DataCodingScheme_Type tP_DataCodingScheme_Type, /* 23.040 cl. 9.2.3.10 */
- TP_ServiceCentreTimeStamp_Type tP_ServiceCentreTimeStamp, /* 23.040 cl. 9.2.3.11 */
- TP_UserDataLength_Type tP_UserDataLength, /* 23.040 cl. 9.2.3.16, derived from SUBMIT */
- octetstring tP_UserData length (0..140) optional /* 23.040 cl. 9.2.3.24, derived from SUBMIT */
- };
-
- type record SMS_DELIVER_REPORT_Type { /* 23.040 cl. 9.2.2.1a
- Direction: ue -> n */
- Bit1 spare1, /* */
- Bit1 tP_UserDataHeaderIndicator, /* 23.040 cl. 9.2.3.23 */
- Bit4 spare4, /* */
- TP_MessageTypeIndicator_Type tP_MessageTypeIndicator, /* 23.040 cl. 9.2.3.1 */
- Oct1 tP_FailureCause optional, /* 23.040 cl. 9.2.3.22, provided if RP_ERROR, not if RP_ACK */
- TP_ParameterIndicator_Type tP_ParameterIndicator, /* 23.040 cl. 9.2.3.27 */
- TP_ProtocolIdentifier_Type tP_ProtocolIdentifier optional, /* 23.040 cl. 9.2.3.9 */
- TP_DataCodingScheme_Type tP_DataCodingScheme_Type optional, /* 23.040 cl. 9.2.3.10 */
- TP_UserDataLength_Type tP_UserDataLength optional, /* 23.040 cl. 9.2.3.16 */
- octetstring tP_UserData length (0..159) optional /* 23.040 cl. 9.2.3.24 */
- };
-
- type record SMS_SUBMIT_Type { /* 23.040 cl. 9.2.2.2
- Direction: ue -> n */
- Bit1 tP_ReplyPath, /* 23.040 cl. 9.2.3.17 */
- Bit1 tP_UserDataHeaderIndicator, /* 23.040 cl. 9.2.3.23 */
- Bit1 tP_StatusReportRequest, /* 23.040 cl. 9.2.3.5 */
- Bit2 tP_ValidityPeriodFormat, /* 23.040 cl. 9.2.3.3 */
- Bit1 tP_RejectDuplicates, /* 23.040 cl. 9.2.3.25 */
- TP_MessageTypeIndicator_Type tP_MessageTypeIndicator, /* 23.040 cl. 9.2.3.1 */
- TP_MessageReference_Type tP_MessageReference, /* 23.040 cl. 9.2.3.6 */
- TP_Address_Type tP_DestinationAddress, /* 23.040 cl. 9.1.2.5 */
- TP_ProtocolIdentifier_Type tP_ProtocolIdentifier, /* 23.040 cl. 9.2.3.9 */
- TP_DataCodingScheme_Type tP_DataCodingScheme_Type, /* 23.040 cl. 9.2.3.10 */
- // one of the subsequent ValidityPeriod solutions has be removed
- TP_ValidityPeriod_Type tP_ValidityPeriod optional, /* 23.040 cl. 9.2.3.12 */
- // TP_ValidityPeriodRelative_Type tP_ValidityPeriodRelative optional, /* 23.040 cl. 9.2.3.12.1 */
- // TP_ValidityPeriodAbsolute_Type tP_ValidityPeriodAbsolute optional, /* 23.040 cl. 9.2.3.12.2 */
- // TP_ValidityPeriodEnhanced_Type tP_ValidityPeriodEnhanced optional, /* 23.040 cl. 9.2.3.12.3 */
- TP_UserDataLength_Type tP_UserDataLength, /* 23.040 cl. 9.2.3.16 */
- octetstring tP_UserData length (0..140) optional /* 23.040 cl. 9.2.3.24 */
- };
- type record SMS_SUBMIT_REPORT_Type { /* 23.040 cl. 9.2.2.2a
- Direction: n -> ue */
- Bit1 spare1, /* */
- Bit1 tP_UserDataHeaderIndicator, /* 23.040 cl. 9.2.3.23 */
- Bit4 spare4, /* */
- TP_MessageTypeIndicator_Type tP_MessageTypeIndicator, /* 23.040 cl. 9.2.3.1 */
- Oct1 tP_FailureCause optional, /* 23.040 cl. 9.2.3.22, provided if RP_ERROR, not if RP_ACK */
- TP_ParameterIndicator_Type tP_ParameterIndicator, /* 23.040 cl. 9.2.3.27 */
- TP_ServiceCentreTimeStamp_Type tP_ServiceCentreTimeStamp, /* 23.040 cl. 9.2.3.11 */
- TP_ProtocolIdentifier_Type tP_ProtocolIdentifier optional, /* 23.040 cl. 9.2.3.9 */
- TP_DataCodingScheme_Type tP_DataCodingScheme_Type optional, /* 23.040 cl. 9.2.3.10 */
- TP_UserDataLength_Type tP_UserDataLength optional, /* 23.040 cl. 9.2.3.16 */
- octetstring tP_UserData length (0..152) optional /* 23.040 cl. 9.2.3.24 */
- };
-
- type record SMS_STATUS_REPORT_Type { /* 23.040 cl. 9.2.2.3
- Direction: n -> ue */
- Bit1 spare1, /* */
- Bit1 tP_UserDataHeaderIndicator, /* 23.040 cl. 9.2.3.23 */
- Bit1 tP_StatusReportQualifier, /* 23.040 cl. 9.2.3.26 */
- Bit2 spare2, /* */
- Bit1 tP_MoreMessagesToSend, /* 23.040 cl. 9.2.3.2 */
- TP_MessageTypeIndicator_Type tP_MessageTypeIndicator, /* 23.040 cl. 9.2.3.1 */
- TP_MessageReference_Type tP_MessageReference, /* 23.040 cl. 9.2.3.6 */
- TP_Address_Type tP_RecipientAddress, /* 23.040 cl. 9.1.2.5 */
- TP_ServiceCentreTimeStamp_Type tP_ServiceCentreTimeStamp, /* 23.040 cl. 9.2.3.11 */
- TP_ServiceCentreTimeStamp_Type tP_DischargeTime, /* 23.040 cl. 9.2.3.12 */
- TP_Status_Type tP_Status, /* 23.040 cl. 9.2.3.15 */
- TP_ParameterIndicator_Type tP_ParameterIndicator optional, /* 23.040 cl. 9.2.3.27 */
- TP_ProtocolIdentifier_Type tP_ProtocolIdentifier optional, /* 23.040 cl. 9.2.3.9 */
- TP_DataCodingScheme_Type tP_DataCodingScheme_Type optional, /* 23.040 cl. 9.2.3.10 */
- TP_UserDataLength_Type tP_UserDataLength optional, /* 23.040 cl. 9.2.3.16 */
- octetstring tP_UserData length (0..143) optional /* 23.040 cl. 9.2.3.24 */
- };
-
- type record SMS_COMMAND_Type { /* 23.040 cl. 9.2.2.4
- Direction: ue -> n */
- Bit1 spare1, /* */
- Bit1 tP_UserDataHeaderIndicator, /* 23.040 cl. 9.2.3.23 */
- Bit1 tP_StatRptReq, /* Table 8.4/3GPP TS 24.011 */
- Bit3 spare3, /* */
- TP_MessageTypeIndicator_Type tP_MessageTypeIndicator, /* 23.040 cl. 9.2.3.1 */
- TP_MessageReference_Type tP_MessageReference, /* 23.040 cl. 9.2.3.6 */
- TP_ProtocolIdentifier_Type tP_ProtocolIdentifier, /* 23.040 cl. 9.2.3.9 */
- TP_Command_Type tP_CommandType, /* 23.040 cl. 9.2.3.19 */
- TP_MessageReference_Type tP_MessageNumber, /* 23.040 cl. 9.2.3.18 */
- TP_Address_Type tP_DestinationAddress, /* 23.040 cl. 9.1.2.5 */
- TP_UserDataLength_Type tP_CommandDataLength, /* 23.040 cl. 9.2.3.20 (number of octets) */
- octetstring tP_CommandData length (0..156) optional /* 23.040 cl. 9.2.3.21 */
- };
-
- type union TP_PDU_Type {
- SMS_DELIVER_Type SMS_DELIVER,
- SMS_DELIVER_REPORT_Type SMS_DELIVER_REPORT,
- SMS_SUBMIT_Type SMS_SUBMIT,
- SMS_SUBMIT_REPORT_Type SMS_SUBMIT_REPORT,
- SMS_STATUS_REPORT_Type SMS_STATUS_REPORT,
- SMS_COMMAND_Type SMS_COMMAND
- };
-
- /* End SM-TP PDU Declarations */
-
- } with { encode "SMS Types"} // group SMS_Declarations
-
-} // End of module LibSip_SMSTypesAndValues
Index: v3.0.3/branches/v2/ttcn/LibSip_SDPTypes.ttcn
===================================================================
--- v3.0.3/branches/v2/ttcn/LibSip_SDPTypes.ttcn (revision 647)
+++ v3.0.3/branches/v2/ttcn/LibSip_SDPTypes.ttcn (nonexistent)
@@ -1,324 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369, STF450
- * @version $Id$
- * @desc This module defines message, attribute, structured and simple
- * SDP types as well constants used by LipSip constructs. <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 LibSipV2.
- * @remark Adding of new attributes types is ok;
- * Adding of new optional attributes in @see SDP_attribute type
- * is ok;
- * Existing attribute types shall not be changed or removed -
- * change requests shall be made to http://t-ort.etsi.org
- */
-
-module LibSip_SDPTypes
-{
- group Constants
- {
- group SimpleConstants
- {
- // SDP net_type
- const charstring c_in := "IN";
-
- // SDP addr_type
- const charstring c_ip4 := "IP4";
- const charstring c_ip6 := "IP6";
-
- // SDP_media_desc: media
- const charstring c_audio := "audio";
- const charstring c_image := "image";
- const charstring c_video := "video";
- const charstring c_text := "text";
- const charstring c_msrp := "msrp";
-
- // SDP_media_desc: transport
- const charstring c_rtpAvp := "RTP/AVP";
- const charstring c_rtpAvpf := "RTP/AVPF";
- const charstring c_msrpTcp := "TCP/MSRP";
- const charstring c_udptl := "Udptl";
-
- // SDP_attribute_list constants:
- const charstring c_local := "local";
- const charstring c_mandatory := "mandatory";
- const charstring c_optional := "optional";
- const charstring c_none := "none";
- const charstring c_qos := "qos";
- const charstring c_remote := "remote";
- const charstring c_sendrecv := "sendrecv";
- const charstring c_sendonly := "sendonly";
- const charstring c_inactive := "inactive";
- const charstring c_send := "send";
- const charstring c_recv := "recv";
- const charstring c_e2e := "e2e";
- }
- }
- group Types
- {
- group SubTypes
- {
- group AttributeTypes
- {
- type record SDP_attribute_cat {
- charstring attr_value
- }
-
- type record SDP_attribute_keywds {
- charstring attr_value
- }
-
- type record SDP_attribute_tool {
- charstring attr_value
- }
-
- type record SDP_attribute_ptime {
- charstring attr_value
- }
-
- type record SDP_attribute_recvonly {
- }
-
- type record SDP_attribute_sendrecv {
- }
-
- type record SDP_attribute_sendonly {
- }
-
- type record SDP_attribute_inactive {
- }
-
- type record SDP_attribute_orient {
- charstring attr_value
- }
-
- type record SDP_attribute_type {
- charstring attr_value
- }
-
- type record SDP_attribute_charset {
- charstring attr_value
- }
-
- type record SDP_attribute_sdplang {
- charstring attr_value
- }
-
- type record SDP_attribute_lang {
- charstring attr_value
- }
-
- type record SDP_attribute_framerate {
- charstring attr_value
- }
-
- type record SDP_attribute_quality {
- charstring attr_value
- }
-
- type record SDP_attribute_fmtp {
- charstring attr_value
- }
-
- type record SDP_attribute_curr {
- charstring preconditionType,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_des {
- charstring preconditionType,
- charstring strength,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_conf {
- charstring preconditionType,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_rtpmap {
- charstring attr_value
- }
-
- type record SDP_attribute_rtcp {
- charstring attr_value
- }
-
- type record SDP_attribute_msrp {
- charstring attr_value
- }
-
- type record SDP_attribute_unknown {
- charstring name,
- charstring attr_value optional
- }
-
-
- type union SDP_attribute {
- SDP_attribute_cat cat,
- SDP_attribute_keywds keywds,
- SDP_attribute_tool tool,
- SDP_attribute_ptime ptime,
- SDP_attribute_recvonly recvonly,
- SDP_attribute_sendrecv sendrecv,
- SDP_attribute_sendonly sendonly,
- SDP_attribute_inactive inactive,
- SDP_attribute_orient orient,
- SDP_attribute_type sdp_type,
- SDP_attribute_charset charset,
- SDP_attribute_sdplang sdplang,
- SDP_attribute_lang lang,
- SDP_attribute_framerate framerate,
- SDP_attribute_quality quality,
- SDP_attribute_fmtp fmtp,
- SDP_attribute_curr curr,
- SDP_attribute_des des,
- SDP_attribute_conf conf,
- SDP_attribute_rtpmap rtpmap,
- SDP_attribute_rtcp rtcp,
- SDP_attribute_msrp msrp,
-
- //* unknown has to be the last else encoding/decoding won't work!
- SDP_attribute_unknown unknown
- }
- } //* group AttributeTypes
-
- type set of SDP_attribute SDP_attribute_list;
-
- type record SDP_bandwidth {
- charstring modifier,
- integer bandwidth
- }
-
- type set of SDP_bandwidth SDP_bandwidth_list;
-
- type record SDP_connection {
- charstring net_type,
- charstring addr_type,
- SDP_conn_addr conn_addr
- }
-
- type record SDP_conn_addr {
- charstring addr,
- integer ttl optional,
- integer num_of_addr optional
- }
-
- type set of SDP_connection SDP_connection_list;
-
- type record SDP_contact {
- charstring addr_or_phone,
- charstring disp_name optional
- }
-
- type SDP_contact SDP_contact_tel;
-
- type SDP_contact SDP_contact_email;
-
- type set of SDP_contact_email SDP_email_list;
-
- type record of charstring SDP_fmt_list ;
-
- type record SDP_key {
- charstring method,
- charstring key optional
- }
-
- type record SDP_media_desc {
- SDP_media_field media_field,
- charstring information optional,
- SDP_connection_list connections optional,
- SDP_bandwidth_list bandwidth optional,
- SDP_key key optional,
- SDP_attribute_list attributes optional
- }
-
- type set of SDP_media_desc SDP_media_desc_list;
-
- type record SDP_media_port {
- integer port_number,
- integer num_of_ports optional
- }
-
- type record SDP_media_field {
- charstring media,
- SDP_media_port ports,
- charstring transport,
- SDP_fmt_list fmts
- }
-
- type record SDP_time{
- SDP_time_field time_field,
- SDP_repeat_list time_repeat optional
- }
-
- type record SDP_time_field{
- charstring start_time, //* field is numeric strings that may not fit into 32-bit signed int
- charstring stop_time //* field is numeric strings that may not fit into 32-bit signed int
- }
-
- type record SDP_repeat{
- SDP_typed_time repeat_interval,
- SDP_typed_time active,
- SDP_typed_time_list offsets
- }
-
- type set of SDP_repeat SDP_repeat_list;
-
- type record SDP_typed_time{
- integer time,
- charstring unit optional
- }
-
- type set of SDP_typed_time SDP_typed_time_list;
-
- type set of SDP_time SDP_time_list;
-
- type record SDP_timezone{
- charstring adjustment_time,
- SDP_typed_time offset
- }
-
- type set of SDP_timezone SDP_timezone_list;
-
- type record SDP_Origin{
- charstring user_name,
- charstring session_id,//* field is numeric strings that may not fit into 32-bit signed int
- charstring session_version, //* field is numeric strings that may not fit into 32-bit signed int
- charstring net_type,
- charstring addr_type,
- charstring addr
- }
-
- type set of SDP_contact_tel SDP_phone_list;
- } //* group SubTypes
-
-
- group MessageTypes
- {
- type record SDP_Message{
- integer protocol_version,
- SDP_Origin origin,
- charstring session_name,
- charstring information optional,
- charstring uri optional,
- SDP_email_list emails optional,
- SDP_phone_list phone_numbers optional,
- SDP_connection connection optional,
- SDP_bandwidth_list bandwidth optional,
- SDP_time_list times,
- SDP_timezone_list timezone_adjustments optional,
- SDP_key key optional,
- SDP_attribute_list attributes optional,
- SDP_media_desc_list media_list optional
- } with { encode "SDPCodec" }
- } // group MessageTypes
- } // group Types
-
-
-} // end module LibSip_SDPTypes
/v3.0.3/branches/v2/ttcn/LibSip_SDPTypes.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/cw.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/cw.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/cw.xsd (nonexistent)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema targetNamespace="urn:3gpp:ns:cw:1.0"
- xmlns:cw10="urn:3gpp:ns:cw:1.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:complexType name="tEmptyType"/>
- <xs:complexType name="tCWtype">
- <xs:sequence>
- <xs:element name="communication-waiting-indication" minOccurs="0" maxOccurs="1"
- type="cw10:tEmptyType"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <xs:element name="ims-cw" type="cw10:tCWtype"/>
-</xs:schema>
\ No newline at end of file
Index: v3.0.3/branches/v2/xsd/ACR_CB.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/ACR_CB.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/ACR_CB.xsd (nonexistent)
@@ -1,54 +0,0 @@
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap" xmlns:cp="urn:ietf:params:xml:ns:common-policy"
-xmlns:ocp="urn:oma:xml:xdm:common-policy"
-targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" elementFormDefault="qualified"
-attributeFormDefault="unqualified">
-<!-- import common policy definitions -->
-<xs:import namespace="urn:ietf:params:xml:ns:common-policy" schemaLocation="common-policy.xsd"/>
-<!-- import OMA common policy extensions -->
-<xs:import namespace="urn:oma:xml:xdm:common-policy" schemaLocation="xdm_commonPolicy-v1_0.xsd"/>
-<!-- incoming communication barring rule set based on the common policy rule set.-->
-<xs:element name="incoming-communication-barring" substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>This is the incoming communication barring configuration
-document.</xs:documentation>
-</xs:annotation>
-<xs:complexType>
-<xs:complexContent>
-<xs:extension base="ss:simservType">
-<xs:sequence>
-<!-- add service specific elements here-->
-<xs:element ref="cp:ruleset" minOccurs="0"/>
-</xs:sequence>
-</xs:extension>
-<!-- service specific attributes can be defined here -->
-</xs:complexContent>
-</xs:complexType>
-</xs:element>
-<!-- outgoing communication barring rule set based on the common policy rule set.-->
-<xs:element name="outgoing-communication-barring" substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>This is the outgoing communication barring configuration
-document.</xs:documentation>
-</xs:annotation>
-<xs:complexType>
-<xs:complexContent>
-<xs:extension base="ss:simservType">
-<xs:sequence>
-<!-- add service specific elements here-->
-<xs:element ref="cp:ruleset" minOccurs="0"/>
-</xs:sequence>
-</xs:extension>
-<!-- service specific attributes can be defined here -->
-</xs:complexContent>
-</xs:complexType>
-</xs:element>
-<!-- communication barring specific extensions to IETF common policy actions-->
-<xs:element name="allow" type="ss:allow-action-type"/>
-<!-- communication barring specific type declarations -->
-<!-- <xs:simpleType name="allow-action-type" final="list restriction"> -->
-<xs:simpleType name="allow-action-type">
-<xs:restriction base="xs:boolean"/>
-</xs:simpleType>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/ACR_CB.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/simservs.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/simservs.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/simservs.xsd (nonexistent)
@@ -1,83 +0,0 @@
-
-<!-- TS 27.173 / 183 023 -->
-<xs:schema targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
- xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified"
- attributeFormDefault="unqualified">
-
-<!-- The element "simservs" maps to the Common Parts of an NGN PSTN/ISDN Simulation services document -->
-
- <xs:element name="simservs">
- <xs:annotation>
- <xs:documentation>XML Schema for data manipulation of ETSI
- NGN PSTN/ISDN Simulation Services
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="ss:absServiceGroup" minOccurs="0" maxOccurs="unbounded" />
- <xs:element name="extensions" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:anyAttribute namespace="##any" processContents="lax"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="absService" abstract="true" type="ss:simservType"/>
-
- <xs:complexType name="simservType">
- <xs:attribute name="active" type="xs:boolean"
- use="optional" default="true" />
- <xs:anyAttribute namespace="##any" processContents="lax"/>
- </xs:complexType>
-
- <!-- service specific IETF common policy condition elements-->
- <xs:element name="anonymous" type="ss:empty-element-type"/>
- <xs:element name="presence-status" type="ss:presence-status-activity-type"/>
- <xs:element name="media" type="ss:media-type1"/>
- <xs:element name="communication-diverted" type="ss:empty-element-type"/>
- <xs:element name="rule-deactivated" type="ss:empty-element-type"/>
- <xs:element name="not-registered" type="ss:empty-element-type"/>
- <xs:element name="busy" type="ss:empty-element-type"/>
- <xs:element name="no-answer" type="ss:empty-element-type"/>
- <xs:element name="not-reachable" type="ss:empty-element-type"/>
- <xs:element name="roaming" type="ss:empty-element-type"/>
-
- <!-- service specific type declarations -->
- <xs:simpleType name="media-type1">
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:simpleType name="presence-status-activity-type">
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <xs:complexType name="empty-element-type"/>
-
- <!-- ETSI substitutionGroup workaround, because TTCN-3 does not support mapping of substitutionGroup -->
- <xs:group name="absServiceGroup">
- <xs:choice>
- <!-- default -->
- <xs:element ref="ss:absService"/>
- <!-- TIP-TRI -->
- <xs:element ref="ss:terminating-identity-presentation-restriction"/>
- <xs:element ref="ss:terminating-identity-presentation"/>
- <!-- OIP-OIR -->
- <xs:element ref="ss:originating--identity--presentation--restriction"/>
- <xs:element ref="ss:originating--identity--presentation"/>
- <!-- CDIV -->
- <xs:element ref="ss:communication-diversion"/>
- <!-- ACR-CB -->
- <xs:element ref="ss:incoming-communication-barring"/>
- <xs:element ref="ss:outgoing-communication-barring"/>
- <!-- CUG -->
- <!-- <xs:element ref="cug"/> -->
- </xs:choice>
- </xs:group>
-
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/simservs.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/MCID.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/MCID.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/MCID.xsd (nonexistent)
@@ -1,37 +0,0 @@
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-xmlns="http://uri.etsi.org/ngn/params/xml/simservs/mcid"
-targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/mcid" elementFormDefault="qualified">
-<xs:annotation>
-<xs:documentation>XML Schema Definition to the mcid request-response to the Malicious Communication
-Identification simulation service</xs:documentation>
-</xs:annotation>
-<!--Definition of simple types-->
-<xs:simpleType name="bitType">
-<xs:restriction base="xs:string">
-<xs:pattern value="[0-1]"/>
-</xs:restriction>
-</xs:simpleType>
-<!--Definition of complex types-->
-<xs:complexType name="requestType">
-<xs:sequence>
-<xs:element name="McidRequestIndicator" type="bitType"/>
-<xs:element name="HoldingIndicator" type="bitType"/>
-</xs:sequence>
-</xs:complexType>
-<xs:complexType name="responseType">
-<xs:sequence>
-<xs:element name="McidResponseIndicator" type="bitType"/>
-<xs:element name="HoldingProvidedIndicator" type="bitType"/>
-</xs:sequence>
-</xs:complexType>
-<!--Definition of document structure-->
-<xs:element name="mcid">
-<xs:complexType>
-<xs:choice>
-<xs:element name="request" type="requestType"/>
-<xs:element name="response" type="responseType"/>
-</xs:choice>
-</xs:complexType>
-</xs:element>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/MCID.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/SupplementaryServices.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/SupplementaryServices.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/SupplementaryServices.xsd (nonexistent)
@@ -1,15 +0,0 @@
-
-<xs:schema targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
- xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified"
- attributeFormDefault="unqualified">
-
- <xs:include schemaLocation="simservs.xsd"/>
- <xs:include schemaLocation="TIP-TIR.xsd"/>
- <xs:include schemaLocation="OIP-OIR.xsd"/>
- <xs:include schemaLocation="CDIV.xsd"/>
- <xs:include schemaLocation="ACR_CB.xsd"/>
- <xs:include schemaLocation="cug.xsd"/>
-
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/SupplementaryServices.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/pidf_lo.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/pidf_lo.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/pidf_lo.xsd (nonexistent)
@@ -1,57 +0,0 @@
- <xs:schema
- targetNamespace="urn:ietf:params:xml:ns:pidf:geopriv10"
- xmlns:tns="urn:ietf:params:xml:ns:pidf:geopriv10"
- xmlns:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" attributeFormDefault="unqualified">
-
- <xs:import namespace=
- "urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
- schemaLocation="geopriv10basic.xsd"/>
-
- <!-- This import brings in the XML language attribute xml:lang-->
-
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
-
- <xs:element name="geopriv" type="tns:geopriv"/>
-
- <xs:complexType name="geopriv">
- <xs:sequence>
- <xs:element name="location-info" type="tns:locInfoType"
- minOccurs="1" maxOccurs="1"/>
- <xs:element name="usage-rules" type="gbp:locPolicyType"
- minOccurs="1" maxOccurs="1"/>
- <xs:element name="method" type="tns:locMethod"
- minOccurs="0" maxOccurs="1"/>
- <xs:element name="provided-by" type="tns:locProvidedBy"
- minOccurs="0" maxOccurs="1"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="locInfoType">
- <xs:sequence>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="locMethod">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute ref="xml:lang" />
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <xs:complexType name="locProvidedBy">
- <xs:sequence>
- <xs:any namespace="##other" processContents="skip"
- minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
-
- </xs:schema>
-
Index: v3.0.3/branches/v2/xsd/cug.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/cug.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/cug.xsd (nonexistent)
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap" xmlns="http://uri.etsi.org/ngn/params/xml/simservs/xcap" targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:annotation>
- <xs:documentation>XML Schema Definition for the closed user group
- parameter</xs:documentation>
- </xs:annotation>
- <!--Definition of simple types-->
- <xs:simpleType name="twobitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="networkIdentityType">
- <xs:restriction base="xs:hexBinary">
- <xs:length value="1"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="sixteenbitType">
- <xs:restriction base="xs:hexBinary">
- <xs:length value="2"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="cugIndexType">
- <xs:restriction base="xs:integer">
- <xs:minInclusive value="0"/>
- <xs:maxInclusive value="32767"/>
- </xs:restriction>
- </xs:simpleType>
- <!--Definition of complex types-->
- <xs:complexType name="cugRequestType">
- <xs:sequence>
- <xs:element name="outgoingAccessRequest" type="xs:boolean"/>
- <xs:element name="cugIndex" type="cugIndexType"/>
- </xs:sequence>
- </xs:complexType>
- <!--Definition of document structure-->
- <xs:element name="cug" substitutionGroup="ss:absService">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="ss:simservType">
- <xs:sequence>
- <xs:element name="cugCallOperation" type="cugRequestType" minOccurs="0"/>
- <xs:element name="networkIndicator" type="networkIdentityType"
- minOccurs="0"/>
- <xs:element name="cugInterlockBinaryCode" type="sixteenbitType"
- minOccurs="0"/>
- <xs:element name="cugCommunicationIndicator" type="twobitType"
- minOccurs="0"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/cug.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/geopriv10basic.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/geopriv10basic.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/geopriv10basic.xsd (nonexistent)
@@ -1,35 +0,0 @@
-<xs:schema
- targetNamespace="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
- xmlns:tns="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" attributeFormDefault="unqualified">
-
- <!-- This import brings in the XML language attribute xml:lang-->
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
-
- <xs:complexType name="locPolicyType">
- <xs:sequence>
- <xs:element name="retransmission-allowed" type="xs:boolean"
- minOccurs="0" maxOccurs="1"/>
- <xs:element name="retention-expiry" type="xs:dateTime"
- minOccurs="0" maxOccurs="1"/>
- <xs:element name="external-ruleset" type="xs:anyURI"
- minOccurs="0" maxOccurs="1"/>
- <xs:element name="note-well" type="tns:notewell"
- minOccurs="0" maxOccurs="1"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="notewell">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute ref="xml:lang" />
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
-</xs:schema>
-
Index: v3.0.3/branches/v2/xsd/OIP-OIR.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/OIP-OIR.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/OIP-OIR.xsd (nonexistent)
@@ -1,37 +0,0 @@
-
-<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
-xmlns:xs="http://www.w3.org/2001/XMLSchema"
-targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" elementFormDefault="qualified"
-attributeFormDefault="unqualified">
-<xs:element name="originating--identity--presentation--restriction"
-substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>Originating Identity presentation Restriction
-</xs:documentation>
-</xs:annotation>
-<xs:complexType>
-<xs:complexContent>
-<xs:extension base="ss:simservType">
-<xs:sequence>
-<xs:element name="default--behaviour" default="presentation--restricted"
-minOccurs="0">
-<xs:simpleType>
-<xs:restriction base="xs:string">
-<xs:enumeration value="presentation--restricted"/>
-<xs:enumeration value="presentation--not--restricted"/>
-</xs:restriction>
-</xs:simpleType>
-</xs:element>
-</xs:sequence>
-</xs:extension>
-</xs:complexContent>
-</xs:complexType>
-</xs:element>
-<xs:element name="originating--identity--presentation" type="ss:simservType"
-substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>Originating Identity Presentation
-</xs:documentation>
-</xs:annotation>
-</xs:element>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/OIP-OIR.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/Ims3gpp.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/Ims3gpp.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/Ims3gpp.xsd (nonexistent)
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">
- <xs:complexType name="tIMS3GPP">
- <xs:sequence>
- <xs:choice>
- <xs:element name="alternative-service" type="tAlternativeService"/>
- <xs:element name="service-info" type="xs:string"/>
- </xs:choice>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="version" type="xs:decimal" use="required"/>
- <xs:anyAttribute/>
- </xs:complexType>
- <xs:complexType name="tAlternativeService">
- <xs:sequence>
- <xs:element name="type" type="tType"/>
- <xs:element name="reason" type="xs:string"/>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute/>
- </xs:complexType>
- <xs:complexType name="tType">
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute/>
- </xs:complexType>
- <xs:complexType name="tAction">
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute/>
- </xs:complexType>
-
- <!-- root element -->
- <xs:element name="ims-3gpp" type="tIMS3GPP"/>
-
- <!-- emergency element for //ims-3gpp//alternative-service//type -->
- <xs:element name="emergency">
- <xs:complexType/>
- </xs:element>
-
- <!-- restoration element for //ims-3gpp//alternative-service//type -->
- <xs:element name="restoration">
- <xs:complexType/>
- </xs:element>
-
- <!-- action element for //ims-3gpp//alternative-service -->
- <xs:element name="action" type="tAction"/>
-
- <!-- emergency-registration element for //ims-3gpp//alternative-service//action -->
- <xs:element name="emergency-registration">
- <xs:complexType/>
- </xs:element>
-
- <!-- initial-registration element for //ims-3gpp//alternative-service//action -->
- <xs:element name="initial-registration">
- <xs:complexType/>
- </xs:element>
-</xs:schema>
/v3.0.3/branches/v2/xsd/Ims3gpp.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/pidf.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/pidf.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/pidf.xsd (nonexistent)
@@ -1,92 +0,0 @@
-
- <xs:schema targetNamespace="urn:ietf:params:xml:ns:pidf"
- xmlns:tns="urn:ietf:params:xml:ns:pidf"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified"
- attributeFormDefault="unqualified">
-<!--
- RFC 3863
--->
-
-
- <!-- This import brings in the XML language attribute xml:lang-->
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
-
- <xs:element name="presence" type="tns:presence"/>
-
- <xs:complexType name="presence">
- <xs:sequence>
- <xs:element name="tuple" type="tns:tuple" minOccurs="0"
- maxOccurs="unbounded"/>
- <xs:element name="note" type="tns:note" minOccurs="0"
- maxOccurs="unbounded"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="entity" type="xs:anyURI" use="required"/>
- </xs:complexType>
-
- <xs:complexType name="tuple">
- <xs:sequence>
- <xs:element name="status" type="tns:status"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- <xs:element name="contact" type="tns:contact" minOccurs="0"/>
- <xs:element name="note" type="tns:note" minOccurs="0"
- maxOccurs="unbounded"/>
- <xs:element name="timestamp" type="xs:dateTime" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="id" type="xs:ID" use="required"/>
- </xs:complexType>
-
- <xs:complexType name="status">
- <xs:sequence>
- <xs:element name="basic" type="tns:basic" minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:simpleType name="basic">
- <xs:restriction base="xs:string">
- <xs:enumeration value="open"/>
- <xs:enumeration value="closed"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:complexType name="contact">
- <xs:simpleContent>
- <xs:extension base="xs:anyURI">
- <xs:attribute name="priority" type="tns:qvalue"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <xs:complexType name="note">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute ref="xml:lang"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <xs:simpleType name="qvalue">
- <xs:restriction base="xs:decimal">
- <xs:pattern value="0(.[0-9]{0,3})?"/>
- <xs:pattern value="1(.0{0,3})?"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- Global Attributes -->
- <xs:attribute name="mustUnderstand" type="xs:boolean" default="0">
- <xs:annotation>
- <xs:documentation>
- This attribute may be used on any element within an optional
- PIDF extension to indicate that the corresponding element must
- be understood by the PIDF processor if the enclosing optional
- element is to be handled.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:schema>
-
Index: v3.0.3/branches/v2/xsd/xdm_commonPolicy-v1_0.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/xdm_commonPolicy-v1_0.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/xdm_commonPolicy-v1_0.xsd (nonexistent)
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- XDM - Common Policy
- version - 1.0
- date - 27 Jun 2008
-
- FILE INFORMATION
-
- OMA Permanent Document
- File: OMA-SUP-XSD_xdm_commonPolicy-V1_0_2-20080627-A
- Type: Text - Schema Description
-
- Public Reachable Information
- Path: http://www.openmobilealliance.org/tech/profiles
- Name: xdm_commonPolicy-v1_0.xsd
-
- NORMATIVE INFORMATION
-
- Information about this file can be found in the specification
- OMA-TS-XDM_Core-V1_1
- available at http://www.openmobilealliance.org/
-
- Send comments to technical-comments@mail.openmobilealliance.org
-
- LEGAL DISCLAIMER
-
- Use of this document is subject to all of the terms and conditions
- of the Use Agreement located at
- http://www.openmobilealliance.org/UseAgreement.html
-
- You may use this document or any part of the document for internal
- or educational purposes only, provided you do not modify, edit or
- take out of context the information in this document in any manner.
- Information contained in this document may be used, at your sole
- risk, for any purposes.
-
- You may not use this document in any other manner without the prior
- written permission of the Open Mobile Alliance. The Open Mobile
- Alliance authorizes you to copy this document, provided that you
- retain all copyright and other proprietary notices contained in the
- original materials on any copies of the materials and that you
- comply strictly with these terms. This copyright permission does
- not constitute an endorsement of the products or services. The
- Open Mobile Alliance assumes no responsibility for errors or
- omissions in this document.
-
- Each Open Mobile Alliance member has agreed to use reasonable
- endeavors to inform the Open Mobile Alliance in a timely manner of
- Essential IPR as it becomes aware that the Essential IPR is related
- to the prepared or published specification. However, the members
- do not have an obligation to conduct IPR searches. The declared
- Essential IPR is publicly available to members and non-members of
- the Open Mobile Alliance and may be found on the "OMA IPR
- Declarations" list at http://www.openmobilealliance.org/ipr.html.
- The Open Mobile Alliance has not conducted an independent IPR review
- of this document and the information contained herein, and makes no
- representations or warranties regarding third party IPR, including
- without limitation patents, copyrights or trade secret rights. This
- document may contain inventions for which you must obtain licenses
- from third parties before making, using or selling the inventions.
- Defined terms above are set forth in the schedule to the Open Mobile
- Alliance Application Form.
-
- NO REPRESENTATIONS OR WARRANTIES (WHETHER EXPRESS OR IMPLIED) ARE
- MADE BY THE OPEN MOBILE ALLIANCE OR ANY OPEN MOBILE ALLIANCE MEMBER
- OR ITS AFFILIATES REGARDING ANY OF THE IPR'S REPRESENTED ON THE "OMA
- IPR DECLARATIONS" LIST, INCLUDING, BUT NOT LIMITED TO THE ACCURACY,
- COMPLETENESS, VALIDITY OR RELEVANCE OF THE INFORMATION OR WHETHER OR
- NOT SUCH RIGHTS ARE ESSENTIAL OR NON-ESSENTIAL.
-
- THE OPEN MOBILE ALLIANCE IS NOT LIABLE FOR AND HEREBY DISCLAIMS ANY
- DIRECT, INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR
- EXEMPLARY DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE OF
- DOCUMENTS AND THE INFORMATION CONTAINED IN THE DOCUMENTS.
-
- Copyright 2008 Open Mobile Alliance Ltd. All Rights Reserved.
- Used with the permission of the Open Mobile Alliance Ltd. under the
- terms set forth above.
--->
-
-<xs:schema targetNamespace="urn:oma:xml:xdm:common-policy"
- xmlns="urn:oma:xml:xdm:common-policy"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" attributeFormDefault="unqualified">
-
-<!-- OMA specific "conditions" child elements -->
-<xs:element name="other-identity" type="emptyType"/>
-
- <xs:element name="external-list">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="entry" type="anchorType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="anonymous-request" type="emptyType"/>
-
- <xs:complexType name="anchorType">
- <xs:attribute name="anc" type="xs:anyURI"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
-
-<xs:complexType name="emptyType"/>
-
-</xs:schema>
/v3.0.3/branches/v2/xsd/xdm_commonPolicy-v1_0.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/ResourceList.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/ResourceList.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/ResourceList.xsd (nonexistent)
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xs:schema xmlns="urn:ietf:params:xml:ns:resource-lists" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:ietf:params:xml:ns:resource-lists">
- <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
- <xs:complexType name="listType">
- <xs:sequence>
- <xs:element minOccurs="0" name="display-name" type="display-nameType"/>
- <xs:sequence maxOccurs="unbounded" minOccurs="0">
- <xs:choice>
- <xs:element name="list">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="listType"/>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="external" type="externalType"/>
- <xs:element name="entry" type="entryType"/>
- <xs:element name="entry-ref" type="entry-refType"/>
- </xs:choice>
- </xs:sequence>
- <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="optional"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <xs:complexType name="entryType">
- <xs:sequence>
- <xs:element minOccurs="0" name="display-name">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="display-nameType"/>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="uri" type="xs:anyURI" use="required"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <xs:complexType name="entry-refType">
- <xs:sequence>
- <xs:element minOccurs="0" name="display-name" type="display-nameType"/>
- <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="ref" type="xs:anyURI" use="required"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <xs:complexType name="externalType">
- <xs:sequence>
- <xs:element minOccurs="0" name="display-name" type="display-nameType"/>
- <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="anchor" type="xs:anyURI"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <xs:element name="resource-lists">
- <xs:complexType>
- <xs:sequence maxOccurs="unbounded" minOccurs="0">
- <xs:element name="list" type="listType"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:complexType name="display-nameType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute ref="xml:lang"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:schema>
/v3.0.3/branches/v2/xsd/ResourceList.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/PSTN.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/PSTN.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/PSTN.xsd (nonexistent)
@@ -1,367 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://uri.etsi.org/ngn/params/xml/simservs/pstn" xmlns:ns1="http://uri.etsi.org/ngn/params/xml/simservs/pstn" targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/pstn" elementFormDefault="qualified">
- <xs:annotation>
- <xs:documentation>XML Schema definition for mapping of some PSTN into SIP MIME Bodies</xs:documentation>
- </xs:annotation>
- <!--Definition of simple types-->
- <xs:simpleType name="OneBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="TwoBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ThreeBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="FourBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1][0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="FiveBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1][0-1][0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="SixBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1][0-1][0-1][0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="SevenBitType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-1][0-1][0-1][0-1][0-1][0-1][0-1]"/>
- </xs:restriction>
- </xs:simpleType>
- <!--Definition of complex types-->
- <!--Definition of BearerCapability Octets-->
- <xs:complexType name="BCOctet3Type">
- <xs:sequence>
- <xs:element name="CodingStandard" type="TwoBitType"/>
- <xs:element name="InformationTransferCabability" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet4Type">
- <xs:sequence>
- <xs:element name="TransferMode" type="TwoBitType"/>
- <xs:element name="InformationTransferRate" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet4-1Type">
- <xs:sequence>
- <xs:element name="RateMultiplier" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet5Type">
- <xs:sequence>
- <xs:element name="Layer1Identification" type="TwoBitType"/>
- <xs:element name="UserInfoLayer1Protocol" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet5aType">
- <xs:sequence>
- <xs:element name="SynchronousAsynchronous" type="OneBitType"/>
- <xs:element name="Negotiation" type="OneBitType"/>
- <xs:element name="UserRate" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet5bV110Type">
- <xs:sequence>
- <xs:element name="IntermediateRate" type="TwoBitType"/>
- <xs:element name="NIConTX" type="OneBitType"/>
- <xs:element name="NIConRX" type="OneBitType"/>
- <xs:element name="FlowControlOnTX" type="OneBitType"/>
- <xs:element name="FlowControlOnRX" type="OneBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet5bV120Type">
- <xs:sequence>
- <xs:element name="RateAdaptionHeader" type="OneBitType"/>
- <xs:element name="MultipleFrameEstablishmentSupport" type="OneBitType"/>
- <xs:element name="ModeOfOperation" type="OneBitType"/>
- <xs:element name="LogicalLinkIdentifier" type="OneBitType"/>
- <xs:element name="Assignor" type="OneBitType"/>
- <xs:element name="InbandOutbandNegotiation" type="OneBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet5cType">
- <xs:sequence>
- <xs:element name="NumberOfStopBits" type="TwoBitType"/>
- <xs:element name="NumberOfDataBits" type="TwoBitType"/>
- <xs:element name="Parity" type="ThreeBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet5dType">
- <xs:sequence>
- <xs:element name="DuplexMode" type="OneBitType"/>
- <xs:element name="ModemType" type="SixBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet6Type">
- <xs:sequence>
- <xs:element name="Layer2Identification" type="TwoBitType"/>
- <xs:element name="UserInfoLayer2Protocol" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet7Type">
- <xs:sequence>
- <xs:element name="Layer3Identification" type="TwoBitType"/>
- <xs:element name="UserInfoLayer3Protocol" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet7aType">
- <xs:sequence>
- <xs:element name="AdditionalLayer3Info" type="FourBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BCOctet7bType">
- <xs:sequence>
- <xs:element name="AdditionalLayer3Info" type="FourBitType"/>
- </xs:sequence>
- </xs:complexType>
- <!--Definition of High Layer Compatibility Octets-->
- <xs:complexType name="HLOctet3Type">
- <xs:sequence>
- <xs:element name="CodingStandard" type="TwoBitType"/>
- <xs:element name="Interpretation" type="ThreeBitType"/>
- <xs:element name="PresentationMethod" type="TwoBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="HLOctet4Type">
- <xs:sequence>
- <xs:element name="HighLayerCharacteristics" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="HLOctet4aMaintenanceType">
- <xs:sequence>
- <xs:element name="HighLayerCharacteristics" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="HLOctet4aAudioType">
- <xs:sequence>
- <xs:element name="VideoTelephonyCharacteristics" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <!--Definition of Low Layer Compatibility Octets-->
- <xs:complexType name="LLOctet3Type">
- <xs:sequence>
- <xs:element name="CodingStandard" type="TwoBitType"/>
- <xs:element name="InformationTransferCapability" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet3aType">
- <xs:sequence>
- <xs:element name="NegotiationIndicator" type="OneBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet4Type">
- <xs:sequence>
- <xs:element name="TransferMode" type="TwoBitType"/>
- <xs:element name="InformationTransferRate" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet4-1Type">
- <xs:sequence>
- <xs:element name="RateMultiplier" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet5Type">
- <xs:sequence>
- <xs:element name="Layer1Identification" type="TwoBitType"/>
- <xs:element name="UserInfoLayer1Protocol" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet5aType">
- <xs:sequence>
- <xs:element name="SynchronousAsynchronous" type="OneBitType"/>
- <xs:element name="Negotiation" type="OneBitType"/>
- <xs:element name="UserRate" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet5bV110Type">
- <xs:sequence>
- <xs:element name="IntermediateRate" type="TwoBitType"/>
- <xs:element name="NIConTX" type="OneBitType"/>
- <xs:element name="NIConRX" type="OneBitType"/>
- <xs:element name="FlowControlOnTX" type="OneBitType"/>
- <xs:element name="FlowControlOnRX" type="OneBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet5bV120Type">
- <xs:sequence>
- <xs:element name="RateAdaptionHeader" type="OneBitType"/>
- <xs:element name="MultipleFrameEstablishmentSupport" type="OneBitType"/>
- <xs:element name="ModeOfOperation" type="OneBitType"/>
- <xs:element name="LogicalLinkIdentifier" type="OneBitType"/>
- <xs:element name="Assignor" type="OneBitType"/>
- <xs:element name="InbandOutbandNegotiation" type="OneBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet5cType">
- <xs:sequence>
- <xs:element name="NumberOfStopBits" type="TwoBitType"/>
- <xs:element name="NumberOfDataBits" type="TwoBitType"/>
- <xs:element name="Parity" type="ThreeBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet5dType">
- <xs:sequence>
- <xs:element name="DuplexMode" type="OneBitType"/>
- <xs:element name="ModemType" type="SixBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet6Type">
- <xs:sequence>
- <xs:element name="Layer2Identification" type="TwoBitType"/>
- <xs:element name="UserInfoLayer2Protocol" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet6aHDLCType">
- <xs:sequence>
- <xs:element name="Mode" type="TwoBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet6aUserSpecificType">
- <xs:sequence>
- <xs:element name="UserSpecificLayer2Information" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet6bType">
- <xs:sequence>
- <xs:element name="WindowSize" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7Type">
- <xs:sequence>
- <xs:element name="Layer3Identification" type="TwoBitType"/>
- <xs:element name="UserInfoLayer3Protocol" type="FiveBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7aUserSpecificType">
- <xs:sequence>
- <xs:element name="OptionalLayer3Information" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7aX25Type">
- <xs:sequence>
- <xs:element name="Mode" type="TwoBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7bX25Type">
- <xs:sequence>
- <xs:element name="DefaultPacketSize" type="FourBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7cType">
- <xs:sequence>
- <xs:element name="PacketWindowSize" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7aTR9577Type">
- <xs:sequence>
- <xs:element name="AdditionalLayer3Info" type="FourBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LLOctet7bTR9577Type">
- <xs:sequence>
- <xs:element name="AdditionalLayer3Info" type="FourBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="DispOctet3Type">
- <xs:sequence>
- <xs:element name="DisplayInformation" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <!--Definition of the information elements-->
- <xs:complexType name="BearerCapabilityType">
- <xs:sequence>
- <xs:element name="BCoctet3" type="BCOctet3Type"/>
- <xs:element name="BCoctet4" type="BCOctet4Type"/>
- <xs:element name="BCoctet4-1" type="BCOctet4-1Type" minOccurs="0"/>
- <xs:element name="BCoctet5" type="BCOctet5Type" minOccurs="0"/>
- <xs:element name="BCoctet5a" type="BCOctet5aType" minOccurs="0"/>
- <xs:element name="BCoctet5bV110" type="BCOctet5bV110Type" minOccurs="0"/>
- <xs:element name="BCoctet5bV120" type="BCOctet5bV120Type" minOccurs="0"/>
- <xs:element name="BCoctet5c" type="BCOctet5cType" minOccurs="0"/>
- <xs:element name="BCoctet5d" type="BCOctet5dType" minOccurs="0"/>
- <xs:element name="BCoctet6" type="BCOctet6Type" minOccurs="0"/>
- <xs:element name="BCoctet7" type="BCOctet7Type" minOccurs="0"/>
- <xs:element name="BCoctet7a" type="BCOctet7aType" minOccurs="0"/>
- <xs:element name="BCoctet7b" type="BCOctet7bType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="HighLayerCompatibilityType">
- <xs:sequence>
- <xs:element name="HLOctet3" type="HLOctet3Type"/>
- <xs:element name="HLOctet4" type="HLOctet4Type"/>
- <xs:element name="HLOctet4aMaintenance" type="HLOctet4aMaintenanceType" minOccurs="0"/>
- <xs:element name="HLOctet4Audio" type="HLOctet4aAudioType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LowLayerCompatibilityType">
- <xs:sequence>
- <xs:element name="LLOctet3" type="LLOctet3Type"/>
- <xs:element name="LLOctet3a" type="LLOctet3aType" minOccurs="0"/>
- <xs:element name="LLOctet4" type="LLOctet4Type"/>
- <xs:element name="LLOctet4-1" type="LLOctet4-1Type" minOccurs="0"/>
- <xs:element name="LLOctet5" type="LLOctet5Type" minOccurs="0"/>
- <xs:element name="LLOctet5a" type="LLOctet5aType" minOccurs="0"/>
- <xs:element name="LLOctet5bV110" type="LLOctet5bV110Type" minOccurs="0"/>
- <xs:element name="LLOctet5bV120" type="LLOctet5bV120Type" minOccurs="0"/>
- <xs:element name="LLOctet5c" type="LLOctet5cType" minOccurs="0"/>
- <xs:element name="LLOctet5d" type="LLOctet5dType" minOccurs="0"/>
- <xs:element name="LLOctet6" type="LLOctet6Type" minOccurs="0"/>
- <xs:element name="LLOctet6aHDLC" type="LLOctet6aHDLCType" minOccurs="0"/>
- <xs:element name="LLOctet6aUserSpecific" type="LLOctet6aUserSpecificType" minOccurs="0"/>
- <xs:element name="LLOctet6b" type="LLOctet6bType" minOccurs="0"/>
- <xs:element name="LLOctet7" type="LLOctet7Type"/>
- <xs:element name="LLOctet7aUserSpecific" type="LLOctet7aUserSpecificType" minOccurs="0"/>
- <xs:element name="LLOctet7aX25" type="LLOctet7aX25Type" minOccurs="0"/>
- <xs:element name="LLOctet7bX25" type="LLOctet7bX25Type" minOccurs="0"/>
- <xs:element name="LLOctet7c" type="LLOctet7cType" minOccurs="0"/>
- <xs:element name="LLOctet7aTR9577" type="LLOctet7aTR9577Type" minOccurs="0"/>
- <xs:element name="LLOctet7bTR9577" type="LLOctet7bTR9577Type" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="DisplayType">
- <xs:sequence>
- <xs:element name="DispOctet3" type="DispOctet3Type"/>
- </xs:sequence>
- </xs:complexType>
- <!--Definition of progress indicator-->
- <xs:complexType name="ProgressOctet3Type">
- <xs:sequence>
- <xs:element name="CodingStandard" type="TwoBitType"/>
- <xs:element name="Location" type="FourBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ProgressOctet4Type">
- <xs:sequence>
- <xs:element name="ProgressDescription" type="SevenBitType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ProgressIndicatorType">
- <xs:sequence>
- <xs:element name="ProgressOctet3" type="ProgressOctet3Type"/>
- <xs:element name="ProgressOctet4" type="ProgressOctet4Type"/>
- </xs:sequence>
- </xs:complexType>
- <!--Definition of document structure-->
- <xs:element name="PSTN-transit">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="BearerInfomationElement" type="BearerCapabilityType" maxOccurs="2"/>
- <xs:element name="HighLayerCompatibility" type="HighLayerCompatibilityType" minOccurs="0" maxOccurs="2"/>
- <xs:element name="LowLayerCompatibility" type="LowLayerCompatibilityType" minOccurs="0"/>
- <xs:element name="ProgressIndicator" type="ProgressIndicatorType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="Display" type="DisplayType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-</xs:schema>
/v3.0.3/branches/v2/xsd/PSTN.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/CONF.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/CONF.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/CONF.xsd (nonexistent)
@@ -1,387 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
- <xs:schema
- targetNamespace="urn:ietf:params:xml:ns:conference-info"
- xmlns:tns="urn:ietf:params:xml:ns:conference-info"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns="urn:ietf:params:xml:ns:conference-info"
- elementFormDefault="qualified"
- attributeFormDefault="unqualified">
- <!--
- This imports the xml:language definition
- -->
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
- <!--
- CONFERENCE ELEMENT
- -->
- <xs:element name="conference-info" type="conference-type"/>
- <!--
- CONFERENCE TYPE
- -->
- <xs:complexType name="conference-type">
- <xs:sequence>
- <xs:element name="conference-description"
- type="conference-description-type" minOccurs="0"/>
- <xs:element name="host-info"
- type="host-type" minOccurs="0"/>
- <xs:element name="conference-state"
- type="conference-state-type" minOccurs="0"/>
- <xs:element name="users"
- type="users-type" minOccurs="0"/>
- <xs:element name="sidebars-by-ref"
- type="uris-type" minOccurs="0"/>
- <xs:element name="sidebars-by-val"
- type="sidebars-by-val-type" minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="entity"
- type="xs:anyURI" use="required"/>
- <xs:attribute name="state"
- type="state-type" use="optional" default="full"/>
- <xs:attribute name="version"
- type="xs:unsignedInt" use="optional"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- STATE TYPE
- -->
- <xs:simpleType name="state-type">
- <xs:restriction base="xs:string">
- <xs:enumeration value="full"/>
- <xs:enumeration value="partial"/>
- <xs:enumeration value="deleted"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- CONFERENCE DESCRIPTION TYPE
- -->
- <xs:complexType name="conference-description-type">
- <xs:sequence>
- <xs:element name="display-text"
- type="xs:string" minOccurs="0"/>
- <xs:element name="subject"
- type="xs:string" minOccurs="0"/>
- <xs:element name="free-text"
- type="xs:string" minOccurs="0"/>
- <xs:element name="keywords"
- type="keywords-type" minOccurs="0"/>
- <xs:element name="conf-uris"
- type="uris-type" minOccurs="0"/>
- <xs:element name="service-uris"
- type="uris-type" minOccurs="0"/>
- <xs:element name="maximum-user-count"
- type="xs:unsignedInt" minOccurs="0"/>
- <xs:element name="available-media"
- type="conference-media-type" minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- HOST TYPE
- -->
- <xs:complexType name="host-type">
- <xs:sequence>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="web-page" type="xs:anyURI"
- minOccurs="0"/>
- <xs:element name="uris" type="uris-type"
- minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- CONFERENCE STATE TYPE
- -->
- <xs:complexType name="conference-state-type">
- <xs:sequence>
- <xs:element name="user-count" type="xs:unsignedInt"
- minOccurs="0"/>
- <xs:element name="active" type="xs:boolean"
- minOccurs="0"/>
- <xs:element name="locked" type="xs:boolean"
- minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- CONFERENCE MEDIA TYPE
- -->
- <xs:complexType name="conference-media-type">
- <xs:sequence>
- <xs:element name="entry" type="conference-medium-type"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- CONFERENCE MEDIUM TYPE
- -->
- <xs:complexType name="conference-medium-type">
- <xs:sequence>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="type" type="xs:string"/>
- <xs:element name="status" type="media-status-type"
- minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="label" type="xs:string"
- use="required"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- URIs TYPE
- -->
- <xs:complexType name="uris-type">
- <xs:sequence>
- <xs:element name="entry" type="uri-type"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="state" type="state-type"
- use="optional" default="full"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- URI TYPE
- -->
- <xs:complexType name="uri-type">
- <xs:sequence>
- <xs:element name="uri" type="xs:anyURI"/>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="purpose" type="xs:string"
- minOccurs="0"/>
- <xs:element name="modified" type="execution-type"
- minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- KEYWORDS TYPE
- -->
- <xs:simpleType name="keywords-type">
- <xs:list itemType="xs:string"/>
- </xs:simpleType>
- <!--
- USERS TYPE
- -->
- <xs:complexType name="users-type">
- <xs:sequence>
- <xs:element name="user" type="user-type"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="state" type="state-type"
- use="optional" default="full"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- USER TYPE
- -->
- <xs:complexType name="user-type">
- <xs:sequence>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="associated-aors" type="uris-type"
- minOccurs="0"/>
- <xs:element name="roles" type="user-roles-type"
- minOccurs="0"/>
- <xs:element name="languages" type="user-languages-type"
- minOccurs="0"/>
- <xs:element name="cascaded-focus" type="xs:anyURI"
- minOccurs="0"/>
- <xs:element name="endpoint" type="endpoint-type"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="entity" type="xs:anyURI"/>
- <xs:attribute name="state" type="state-type"
- use="optional" default="full"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- USER ROLES TYPE
- -->
- <xs:complexType name="user-roles-type">
- <xs:sequence>
- <xs:element name="entry" type="xs:string"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- USER LANGUAGES TYPE
- -->
- <xs:simpleType name="user-languages-type">
- <xs:list itemType="xs:language"/>
- </xs:simpleType>
- <!--
- ENDPOINT TYPE
- -->
- <xs:complexType name="endpoint-type">
- <xs:sequence>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="referred" type="execution-type"
- minOccurs="0"/>
- <xs:element name="status" type="endpoint-status-type"
- minOccurs="0"/>
- <xs:element name="joining-method" type="joining-type"
- minOccurs="0"/>
- <xs:element name="joining-info"
- type="execution-type"
- minOccurs="0"/>
- <xs:element name="disconnection-method"
- type="disconnection-type"
- minOccurs="0"/>
- <xs:element name="disconnection-info"
- type="execution-type"
- minOccurs="0"/>
- <xs:element name="media" type="media-type"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="call-info" type="call-type"
- minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="entity" type="xs:string"/>
- <xs:attribute name="state" type="state-type"
- use="optional" default="full"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- ENDPOINT STATUS TYPE
- -->
- <xs:simpleType name="endpoint-status-type">
- <xs:restriction base="xs:string">
- <xs:enumeration value="pending"/>
- <xs:enumeration value="dialing-out"/>
- <xs:enumeration value="dialing-in"/>
- <xs:enumeration value="alerting"/>
- <xs:enumeration value="on-hold"/>
- <xs:enumeration value="connected"/>
- <xs:enumeration value="muted-via-focus"/>
- <xs:enumeration value="disconnecting"/>
- <xs:enumeration value="disconnected"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- JOINING TYPE
- -->
- <xs:simpleType name="joining-type">
- <xs:restriction base="xs:string">
- <xs:enumeration value="dialed-in"/>
- <xs:enumeration value="dialed-out"/>
- <xs:enumeration value="focus-owner"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- DISCONNECTION TYPE
- -->
- <xs:simpleType name="disconnection-type">
- <xs:restriction base="xs:string">
- <xs:enumeration value="departed"/>
- <xs:enumeration value="booted"/>
- <xs:enumeration value="failed"/>
- <xs:enumeration value="busy"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- EXECUTION TYPE
- -->
- <xs:complexType name="execution-type">
- <xs:sequence>
- <xs:element name="when" type="xs:dateTime"
- minOccurs="0"/>
- <xs:element name="reason" type="xs:string"
- minOccurs="0"/>
- <xs:element name="by" type="xs:anyURI"
- minOccurs="0"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- CALL TYPE
- -->
- <xs:complexType name="call-type">
- <xs:choice>
- <xs:element name="sip" type="sip-dialog-id-type"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:choice>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- SIP DIALOG ID TYPE
- -->
- <xs:complexType name="sip-dialog-id-type">
- <xs:sequence>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="call-id" type="xs:string"/>
- <xs:element name="from-tag" type="xs:string"/>
- <xs:element name="to-tag" type="xs:string"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- MEDIA TYPE
- -->
- <xs:complexType name="media-type">
- <xs:sequence>
- <xs:element name="display-text" type="xs:string"
- minOccurs="0"/>
- <xs:element name="type" type="xs:string"
- minOccurs="0"/>
- <xs:element name="label" type="xs:string"
- minOccurs="0"/>
- <xs:element name="src-id" type="xs:string"
- minOccurs="0"/>
- <xs:element name="status" type="media-status-type"
- minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="id" type="xs:string"
- use="required"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- MEDIA STATUS TYPE
- -->
- <xs:simpleType name="media-status-type">
- <xs:restriction base="xs:string">
- <xs:enumeration value="recvonly"/>
- <xs:enumeration value="sendonly"/>
- <xs:enumeration value="sendrecv"/>
- <xs:enumeration value="inactive"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- SIDEBARS BY VAL TYPE
- -->
- <xs:complexType name="sidebars-by-val-type">
- <xs:sequence>
- <xs:element name="entry" type="conference-type"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="state" type="state-type"
- use="optional" default="full"/>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- </xs:schema>
/v3.0.3/branches/v2/xsd/CONF.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/CDIV.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/CDIV.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/CDIV.xsd (nonexistent)
@@ -1,67 +0,0 @@
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
-xmlns:cp="urn:ietf:params:xml:ns:common-policy"
-xmlns:ocp="urn:oma:xml:xdm:common-policy"
-targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
-elementFormDefault="qualified"
-attributeFormDefault="unqualified">
-<!-- import common policy definitions -->
-<xs:import namespace="urn:ietf:params:xml:ns:common-policy" schemaLocation="common-policy.xsd"/>
-<!-- import OMA common policy extensions -->
-<xs:import namespace="urn:oma:xml:xdm:common-policy" schemaLocation="xdm_commonPolicy-v1_0.xsd"/>
-<!-- communication diversion specific extensions to IETF common policy conditions. The
-cp:conditionsType is expanded with the elements: ss:not-registered, ss:busy, ss:no-answer, ss:notreachable,
-ss:media as optional elements -->
-<!-- communication diversion rule set based on the common policy rule set.-->
-<xs:element name="communication-diversion" substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>This is the communication diversion configuration
-document.</xs:documentation>
-</xs:annotation>
-<xs:complexType>
-<xs:complexContent>
-<xs:extension base="ss:simservType">
-<xs:sequence>
-<!-- add service specific elements here-->
-<xs:element ref="cp:ruleset" minOccurs="0"/>
-</xs:sequence>
-</xs:extension>
-<!-- service specific attributes can be defined here -->
-</xs:complexContent>
-</xs:complexType>
-</xs:element>
-<!-- communication diversion specific extensions to IETF common policy actions-->
-<xs:element name="forward-to" type="ss:forward-to-type"/> <xs:simpleType name="reveal-URIoptions-type">
-<xs:restriction base="xs:string">
-<xs:enumeration value="false"/>
-<xs:enumeration value="not-reveal-GRUU"/>
-<xs:enumeration value="true"/>
-</xs:restriction>
-</xs:simpleType>
-<!-- communication diversion specific type declarations -->
-<xs:complexType name="forward-to-type">
-<xs:sequence>
-<xs:element name="target" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
-<xs:element name="notify-caller" type="xs:boolean" default="true" minOccurs="0"/>
-<xs:element name="reveal-identity-to-caller" type="ss:reveal-URIoptions-type"
-default="true" minOccurs="0"/>
-<xs:element name="reveal-served-user-identity-to-caller" type="ss:reveal-URIoptions-type"
-default="true" minOccurs="0"/>
-<xs:element name="notify-served-user" type="xs:boolean" default="false" minOccurs="0"/>
-<xs:element name="notify-served-user-on-outbound-call" type="xs:boolean" default="false"
-minOccurs="0"/>
-<xs:element name="reveal-identity-to-target" type="ss:reveal-URIoptions-type"
-default="true" minOccurs="0"/>
-<xs:element ref="ss:NoReplyTimer" minOccurs="0"/>
-</xs:sequence>
-</xs:complexType>
-<xs:element name="NoReplyTimer">
-<xs:simpleType>
-<xs:restriction base="xs:positiveInteger">
-<xs:minInclusive value="5"/>
-<xs:maxInclusive value="180"/>
-</xs:restriction>
-</xs:simpleType>
-</xs:element>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/CDIV.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/common-policy.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/common-policy.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/common-policy.xsd (nonexistent)
@@ -1,127 +0,0 @@
-<?xml version="1.0"?>
-<xs:schema targetNamespace="urn:ietf:params:xml:ns:common-policy"
- xmlns:cp="urn:ietf:params:xml:ns:common-policy"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" attributeFormDefault="unqualified">
- <!-- /ruleset -->
- <xs:element name="ruleset">
- <xs:complexType>
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:sequence>
- <xs:element name="rule" type="cp:ruleType"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <!-- /ruleset/rule -->
- <xs:complexType name="ruleType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:sequence>
- <xs:element name="conditions"
- type="cp:conditionsType" minOccurs="0"/>
- <xs:element name="actions"
- type="cp:extensibleType" minOccurs="0"/>
- <xs:element name="transformations"
- type="cp:extensibleType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="id" type="xs:ID" use="required"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //rule/conditions -->
- <xs:complexType name="conditionsType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="identity"
- type="cp:identityType" minOccurs="0"/>
- <xs:element name="sphere"
- type="cp:sphereType" minOccurs="0"/>
- <xs:element name="validity"
- type="cp:validityType" minOccurs="0"/>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:choice>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //conditions/identity -->
- <xs:complexType name="identityType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element name="one" type="cp:oneType"/>
- <xs:element name="many" type="cp:manyType"/>
- <xs:any namespace="##other" processContents="lax"/>
- </xs:choice>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //identity/one -->
- <xs:complexType name="oneType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:sequence>
- <xs:any namespace="##other"
- minOccurs="0" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="id"
- type="xs:anyURI" use="required"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //identity/many -->
- <xs:complexType name="manyType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="except" type="cp:exceptType"/>
- <xs:any namespace="##other"
- minOccurs="0" processContents="lax"/>
- </xs:choice>
- <xs:attribute name="domain"
- use="optional" type="xs:string"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //many/except -->
-<xs:complexType name="exceptType">
- <xs:attribute name="domain" type="xs:string" use="optional"/>
- <xs:attribute name="id" type="xs:anyURI" use="optional"/>
- </xs:complexType>
- <!-- //conditions/sphere -->
- <xs:complexType name="sphereType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:attribute name="value"
- type="xs:string" use="required"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //conditions/validity -->
- <xs:complexType name="validityType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="from" type="xs:dateTime"/>
- <xs:element name="until" type="xs:dateTime"/>
- </xs:sequence>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <!-- //rule/actions or //rule/transformations -->
- <xs:complexType name="extensibleType">
- <xs:complexContent>
- <xs:restriction base="xs:anyType">
- <xs:sequence>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
-</xs:schema>
/v3.0.3/branches/v2/xsd/common-policy.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/TIP-TIR.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/TIP-TIR.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/TIP-TIR.xsd (nonexistent)
@@ -1,37 +0,0 @@
-
-<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
-xmlns:xs="http://www.w3.org/2001/XMLSchema"
-targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" elementFormDefault="qualified"
-attributeFormDefault="unqualified">
-<xs:element name="terminating-identity-presentation-restriction"
-substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>Terminating Identity presentation Restriction
-</xs:documentation>
-</xs:annotation>
-<xs:complexType>
-<xs:complexContent>
-<xs:extension base="ss:simservType">
-<xs:sequence>
-<xs:element name="default-behaviour" default="presentation-restricted"
-minOccurs="0">
-<xs:simpleType>
-<xs:restriction base="xs:string">
-<xs:enumeration value="presentation-restricted"/>
-<xs:enumeration value="presentation-not-restricted"/>
-</xs:restriction>
-</xs:simpleType>
-</xs:element>
-</xs:sequence>
-</xs:extension>
-</xs:complexContent>
-</xs:complexType>
-</xs:element>
-<xs:element name="terminating-identity-presentation" type="ss:simservType"
-substitutionGroup="ss:absService">
-<xs:annotation>
-<xs:documentation>Terminating Identity Presentation
-</xs:documentation>
-</xs:annotation>
-</xs:element>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/TIP-TIR.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_reginfo.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_reginfo.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_reginfo.ttcn3view (nonexistent)
@@ -1,66 +0,0 @@
-module urn_ietf_params_xml_ns_reginfo {
- import from XSDAUX language "TTCN-3:2010" all;
-
- import from http_www_w3_org_XML_1998_namespace language "XSD" all;
-
- type record Reginfo {
- XSDAUX.nonNegativeInteger version,
- enumerated {
- full,
- partial
- } state,
- record of Registration registration_list optional,
- record of anytype elem_list optional
- }
-
- type record Registration {
- XSDAUX.anyURI aor,
- XSDAUX.string id,
- enumerated {
- active,
- init,
- terminated
- } state,
- record of Contact contact_list optional,
- record of anytype elem_list optional
- }
-
- type record Contact {
- enumerated {
- active,
- terminated
- } state,
- enumerated {
- created,
- deactivated,
- expired,
- probation,
- refreshed,
- registered,
- rejected,
- shortened,
- unregistered
- } event,
- XSDAUX.unsignedLong duration_registered optional,
- XSDAUX.unsignedLong expires optional,
- XSDAUX.unsignedLong retry_after optional,
- XSDAUX.string id,
- XSDAUX.string q optional,
- XSDAUX.string callid optional,
- XSDAUX.unsignedLong cseq optional,
- XSDAUX.anyURI uri,
- record {
- http_www_w3_org_XML_1998_namespace.Lang lang optional,
- XSDAUX.string content
- } display_name optional,
- record of record {
- XSDAUX.string name,
- XSDAUX.string content
- } unknown_param_list optional,
- record of anytype elem_list optional
- }
-
-}
-with {
- encode "regInfo";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/http_www_w3_org_XML_1998_namespace.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/http_www_w3_org_XML_1998_namespace.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/http_www_w3_org_XML_1998_namespace.ttcn3view (nonexistent)
@@ -1,30 +0,0 @@
-module http_www_w3_org_XML_1998_namespace {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type union Lang {
- XSDAUX.languageXSD alt_0,
- enumerated {
- x
- } alt_1
- }
-
- type XSDAUX.anyURI Base;
-
- type XSDAUX.ID Id;
-
- type record SpecialAttrs {
- Base base optional,
- Lang lang optional,
- Space space optional,
- Id id optional
- }
-
- type enumerated Space {
- default_,
- preserve
- }
-
-}
-with {
- encode "xml";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn3view (nonexistent)
@@ -1,34 +0,0 @@
-module urn_ietf_params_xml_ns_pidf_geopriv10 {
- import from XSDAUX language "TTCN-3:2010" all;
-
- import from urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy language "XSD" all;
-
- import from http_www_w3_org_XML_1998_namespace language "XSD" all;
-
- type record Geopriv_1 {
- LocInfoType location_info,
- urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.LocPolicyType usage_rules,
- LocMethod method optional,
- LocProvidedBy provided_by optional,
- record of anytype elem_list optional
- }
-
- type record LocInfoType {
- record of anytype elem_list optional
- }
-
- type record LocProvidedBy {
- record length (1 .. infinity) of anytype elem_list
- }
-
- type Geopriv_1 Geopriv;
-
- type record LocMethod {
- http_www_w3_org_XML_1998_namespace.Lang lang optional,
- XSDAUX.string content
- }
-
-}
-with {
- encode "pidf_lo";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy.ttcn3view (nonexistent)
@@ -1,22 +0,0 @@
-module urn_ietf_params_xml_ns_pidf_geopriv10_basicPolicy {
- import from XSDAUX language "TTCN-3:2010" all;
-
- import from http_www_w3_org_XML_1998_namespace language "XSD" all;
-
- type record LocPolicyType {
- XSDAUX.booleanXSD retransmission_allowed optional,
- XSDAUX.dateTime retention_expiry optional,
- XSDAUX.anyURI external_ruleset optional,
- Notewell note_well optional,
- record of anytype elem_list optional
- }
-
- type record Notewell {
- http_www_w3_org_XML_1998_namespace.Lang lang optional,
- XSDAUX.string content
- }
-
-}
-with {
- encode "geopriv10basic";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_pstn.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_pstn.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_pstn.ttcn3view (nonexistent)
@@ -1,290 +0,0 @@
-module http_uri_etsi_org_ngn_params_xml_simservs_pstn {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type record PSTN_transit {
- record length (1 .. 2) of BearerCapabilityType bearerInfomationElement_list,
- record length (0 .. 2) of HighLayerCompatibilityType highLayerCompatibility_list optional,
- LowLayerCompatibilityType lowLayerCompatibility optional,
- record of ProgressIndicatorType progressIndicator_list optional,
- record of DisplayType display__list optional
- }
-
- type XSDAUX.string SevenBitType;
-
- type record LLOctet5aType {
- OneBitType synchronousAsynchronous,
- OneBitType negotiation,
- FiveBitType userRate
- }
-
- type record LLOctet7aTR9577Type {
- FourBitType additionalLayer3Info
- }
-
- type record LLOctet4Type {
- TwoBitType transferMode,
- FiveBitType informationTransferRate
- }
-
- type record LLOctet6aUserSpecificType {
- SevenBitType userSpecificLayer2Information
- }
-
- type record LLOctet3aType {
- OneBitType negotiationIndicator
- }
-
- type record BCOctet5Type {
- TwoBitType layer1Identification,
- FiveBitType userInfoLayer1Protocol
- }
-
- type record BCOctet4Type {
- TwoBitType transferMode,
- FiveBitType informationTransferRate
- }
-
- type record BCOctet7Type {
- TwoBitType layer3Identification,
- FiveBitType userInfoLayer3Protocol
- }
-
- type record BCOctet5bV120Type {
- OneBitType rateAdaptionHeader,
- OneBitType multipleFrameEstablishmentSupport,
- OneBitType modeOfOperation,
- OneBitType logicalLinkIdentifier,
- OneBitType assignor,
- OneBitType inbandOutbandNegotiation
- }
-
- type XSDAUX.string ThreeBitType;
-
- type record LLOctet6aHDLCType {
- TwoBitType mode
- }
-
- type record LLOctet7bTR9577Type {
- FourBitType additionalLayer3Info
- }
-
- type record DisplayType {
- DispOctet3Type dispOctet3
- }
-
- type record HLOctet3Type {
- TwoBitType codingStandard,
- ThreeBitType interpretation,
- TwoBitType presentationMethod
- }
-
- type record LowLayerCompatibilityType {
- LLOctet3Type lLOctet3,
- LLOctet3aType lLOctet3a optional,
- LLOctet4Type lLOctet4,
- LLOctet4_1Type lLOctet4_1 optional,
- LLOctet5Type lLOctet5 optional,
- LLOctet5aType lLOctet5a optional,
- LLOctet5bV110Type lLOctet5bV110 optional,
- LLOctet5bV120Type lLOctet5bV120 optional,
- LLOctet5cType lLOctet5c optional,
- LLOctet5dType lLOctet5d optional,
- LLOctet6Type lLOctet6 optional,
- LLOctet6aHDLCType lLOctet6aHDLC optional,
- LLOctet6aUserSpecificType lLOctet6aUserSpecific optional,
- LLOctet6bType lLOctet6b optional,
- LLOctet7Type lLOctet7,
- LLOctet7aUserSpecificType lLOctet7aUserSpecific optional,
- LLOctet7aX25Type lLOctet7aX25 optional,
- LLOctet7bX25Type lLOctet7bX25 optional,
- LLOctet7cType lLOctet7c optional,
- LLOctet7aTR9577Type lLOctet7aTR9577 optional,
- LLOctet7bTR9577Type lLOctet7bTR9577 optional
- }
-
- type record BCOctet5dType {
- OneBitType duplexMode,
- SixBitType modemType
- }
-
- type record BCOctet3Type {
- TwoBitType codingStandard,
- FiveBitType informationTransferCabability
- }
-
- type record LLOctet5bV120Type {
- OneBitType rateAdaptionHeader,
- OneBitType multipleFrameEstablishmentSupport,
- OneBitType modeOfOperation,
- OneBitType logicalLinkIdentifier,
- OneBitType assignor,
- OneBitType inbandOutbandNegotiation
- }
-
- type record LLOctet4_1Type {
- SevenBitType rateMultiplier
- }
-
- type record LLOctet5dType {
- OneBitType duplexMode,
- SixBitType modemType
- }
-
- type XSDAUX.string FourBitType;
-
- type record BCOctet5bV110Type {
- TwoBitType intermediateRate,
- OneBitType nIConTX,
- OneBitType nIConRX,
- OneBitType flowControlOnTX,
- OneBitType flowControlOnRX
- }
-
- type record LLOctet3Type {
- TwoBitType codingStandard,
- FiveBitType informationTransferCapability
- }
-
- type record LLOctet7cType {
- SevenBitType packetWindowSize
- }
-
- type record BCOctet5cType {
- TwoBitType numberOfStopBits,
- TwoBitType numberOfDataBits,
- ThreeBitType parity
- }
-
- type record LLOctet6Type {
- TwoBitType layer2Identification,
- FiveBitType userInfoLayer2Protocol
- }
-
- type record LLOctet7aX25Type {
- TwoBitType mode
- }
-
- type record LLOctet7bX25Type {
- FourBitType defaultPacketSize
- }
-
- type record HLOctet4aMaintenanceType {
- SevenBitType highLayerCharacteristics
- }
-
- type record DispOctet3Type {
- SevenBitType displayInformation
- }
-
- type record LLOctet6bType {
- SevenBitType windowSize
- }
-
- type record BCOctet7bType {
- FourBitType additionalLayer3Info
- }
-
- type record LLOctet5cType {
- TwoBitType numberOfStopBits,
- TwoBitType numberOfDataBits,
- ThreeBitType parity
- }
-
- type record ProgressIndicatorType {
- ProgressOctet3Type progressOctet3,
- ProgressOctet4Type progressOctet4
- }
-
- type XSDAUX.string OneBitType;
-
- type record LLOctet5Type {
- TwoBitType layer1Identification,
- FiveBitType userInfoLayer1Protocol
- }
-
- type record ProgressOctet3Type {
- TwoBitType codingStandard,
- FourBitType location
- }
-
- type XSDAUX.string SixBitType;
-
- type record LLOctet7Type {
- TwoBitType layer3Identification,
- FiveBitType userInfoLayer3Protocol
- }
-
- type record LLOctet5bV110Type {
- TwoBitType intermediateRate,
- OneBitType nIConTX,
- OneBitType nIConRX,
- OneBitType flowControlOnTX,
- OneBitType flowControlOnRX
- }
-
- type record BCOctet6Type {
- TwoBitType layer2Identification,
- FiveBitType userInfoLayer2Protocol
- }
-
- type record HLOctet4Type {
- SevenBitType highLayerCharacteristics
- }
-
- type record BCOctet5aType {
- OneBitType synchronousAsynchronous,
- OneBitType negotiation,
- FiveBitType userRate
- }
-
- type XSDAUX.string FiveBitType;
-
- type XSDAUX.string TwoBitType;
-
- type record HighLayerCompatibilityType {
- HLOctet3Type hLOctet3,
- HLOctet4Type hLOctet4,
- HLOctet4aMaintenanceType hLOctet4aMaintenance optional,
- HLOctet4aAudioType hLOctet4Audio optional
- }
-
- type record BearerCapabilityType {
- BCOctet3Type bCoctet3,
- BCOctet4Type bCoctet4,
- BCOctet4_1Type bCoctet4_1 optional,
- BCOctet5Type bCoctet5 optional,
- BCOctet5aType bCoctet5a optional,
- BCOctet5bV110Type bCoctet5bV110 optional,
- BCOctet5bV120Type bCoctet5bV120 optional,
- BCOctet5cType bCoctet5c optional,
- BCOctet5dType bCoctet5d optional,
- BCOctet6Type bCoctet6 optional,
- BCOctet7Type bCoctet7 optional,
- BCOctet7aType bCoctet7a optional,
- BCOctet7bType bCoctet7b optional
- }
-
- type record HLOctet4aAudioType {
- SevenBitType videoTelephonyCharacteristics
- }
-
- type record BCOctet7aType {
- FourBitType additionalLayer3Info
- }
-
- type record ProgressOctet4Type {
- SevenBitType progressDescription
- }
-
- type record BCOctet4_1Type {
- SevenBitType rateMultiplier
- }
-
- type record LLOctet7aUserSpecificType {
- SevenBitType optionalLayer3Information
- }
-
-}
-with {
- encode "PSTN";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_oma_xml_xdm_common_policy.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_oma_xml_xdm_common_policy.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_oma_xml_xdm_common_policy.ttcn3view (nonexistent)
@@ -1,26 +0,0 @@
-module urn_oma_xml_xdm_common_policy {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type record External_list {
- record of AnchorType entry_list optional
- }
-
- type EmptyType Anonymous_request;
-
- type EmptyType Other_identity;
-
- type record EmptyType {
- }
-
- type record AnchorType {
- XSDAUX.anyURI anc optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional
- }
-
-}
-with {
- encode "xdm_commonPolicy_v1_0";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_pidf.ttcn3view (nonexistent)
@@ -1,50 +0,0 @@
-module urn_ietf_params_xml_ns_pidf {
- import from XSDAUX language "TTCN-3:2010" all;
-
- import from http_www_w3_org_XML_1998_namespace language "XSD" all;
-
- type record Tuple {
- XSDAUX.ID id,
- Status status,
- record of anytype elem_list optional,
- Contact contact optional,
- record of Note note_list optional,
- XSDAUX.dateTime timestamp optional
- }
-
- type record Status {
- Basic basic optional,
- record of anytype elem_list optional
- }
-
- type enumerated Basic {
- closed,
- open
- }
-
- type XSDAUX.booleanXSD MustUnderstand;
-
- type record Presence_1 {
- XSDAUX.anyURI entity,
- record of Tuple tuple_list optional,
- record of Note note_list optional,
- record of anytype elem_list optional
- }
-
- type record Contact {
- Qvalue priority optional,
- XSDAUX.anyURI content
- }
-
- type record Note {
- http_www_w3_org_XML_1998_namespace.Lang lang optional,
- XSDAUX.string content
- }
-
- type Presence_1 Presence;
-
- type XSDAUX.decimal Qvalue;
-}
-with {
- encode "pidf";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/NoTargetNamespace.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/NoTargetNamespace.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/NoTargetNamespace.ttcn3view (nonexistent)
@@ -1,62 +0,0 @@
-module NoTargetNamespace {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type record Initial_registration {
- }
-
- type record Emergency {
- }
-
- type TAction Action;
-
- type record Emergency_registration {
- }
-
- type record TType {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of anytype elem_list optional
- }
-
- type TIMS3GPP Ims_3gpp;
-
- type record TAction {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of anytype elem_list optional
- }
-
- type record TAlternativeService {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- TType type_,
- XSDAUX.string reason,
- record of anytype elem_list optional
- }
-
- type record Restoration {
- }
-
- type record TIMS3GPP {
- XSDAUX.decimal version,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- union {
- TAlternativeService alternative_service,
- XSDAUX.string service_info
- } choice,
- record of anytype elem_list optional
- }
-
-}
-with {
- encode "Ims3gpp";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_conference_info.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_conference_info.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_conference_info.ttcn3view (nonexistent)
@@ -1,256 +0,0 @@
-module urn_ietf_params_xml_ns_conference_info {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type enumerated Endpoint_status_type {
- alerting,
- connected,
- dialing_in,
- dialing_out,
- disconnected,
- disconnecting,
- muted_via_focus,
- on_hold,
- pending
- }
-
- type record Users_type {
- State_type state optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of User_type user_list optional,
- record of anytype elem_list optional
- }
-
- type record of XSDAUX.string Keywords_type;
-
- type enumerated State_type {
- deleted,
- full,
- partial
- }
-
- type record Conference_media_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record length (1 .. infinity) of Conference_medium_type entry_list
- }
-
- type record Endpoint_type {
- XSDAUX.string entity optional,
- State_type state optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- Execution_type referred optional,
- Endpoint_status_type status optional,
- Joining_type joining_method optional,
- Execution_type joining_info optional,
- Disconnection_type disconnection_method optional,
- Execution_type disconnection_info optional,
- record of Media_type media_list optional,
- Call_type call_info optional,
- record of anytype elem_list optional
- }
-
- type record Sip_dialog_id_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- XSDAUX.string call_id,
- XSDAUX.string from_tag,
- XSDAUX.string to_tag,
- record of anytype elem_list optional
- }
-
- type record Conference_description_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- XSDAUX.string subject optional,
- XSDAUX.string free_text optional,
- Keywords_type keywords optional,
- Uris_type conf_uris optional,
- Uris_type service_uris optional,
- XSDAUX.unsignedInt maximum_user_count optional,
- Conference_media_type available_media optional,
- record of anytype elem_list optional
- }
-
- type Conference_type Conference_info;
-
- type record Conference_state_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.unsignedInt user_count optional,
- XSDAUX.booleanXSD active optional,
- XSDAUX.booleanXSD locked optional,
- record of anytype elem_list optional
- }
-
- type record Conference_type {
- XSDAUX.anyURI entity,
- State_type state optional,
- XSDAUX.unsignedInt version optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Conference_description_type conference_description optional,
- Host_type host_info optional,
- Conference_state_type conference_state optional,
- Users_type users optional,
- Uris_type sidebars_by_ref optional,
- Sidebars_by_val_type sidebars_by_val optional,
- record of anytype elem_list optional
- }
-
- type record Uri_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.anyURI uri,
- XSDAUX.string display_text optional,
- XSDAUX.string purpose optional,
- Execution_type modified optional,
- record of anytype elem_list optional
- }
-
- type record Host_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- XSDAUX.anyURI web_page optional,
- Uris_type uris optional,
- record of anytype elem_list optional
- }
-
- type record of XSDAUX.languageXSD User_languages_type;
-
- type record Uris_type {
- State_type state optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record length (1 .. infinity) of Uri_type entry_list
- }
-
- type record Execution_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.dateTime when optional,
- XSDAUX.string reason optional,
- XSDAUX.anyURI by optional
- }
-
- type enumerated Media_status_type {
- inactive,
- recvonly,
- sendonly,
- sendrecv
- }
-
- type record User_type {
- XSDAUX.anyURI entity optional,
- State_type state optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- Uris_type associated_aors optional,
- User_roles_type roles optional,
- User_languages_type languages optional,
- XSDAUX.anyURI cascaded_focus optional,
- record of Endpoint_type endpoint_list optional,
- record of anytype elem_list optional
- }
-
- type record Media_type {
- XSDAUX.string id,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- XSDAUX.string type_ optional,
- XSDAUX.string label_ optional,
- XSDAUX.string src_id optional,
- Media_status_type status optional,
- record of anytype elem_list optional
- }
-
- type record Call_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- union {
- Sip_dialog_id_type sip,
- record of anytype elem_list
- } choice optional
- }
-
- type record Conference_medium_type {
- XSDAUX.string label_,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string display_text optional,
- XSDAUX.string type_,
- Media_status_type status optional,
- record of anytype elem_list optional
- }
-
- type record Sidebars_by_val_type {
- State_type state optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of Conference_type entry_list optional
- }
-
- type enumerated Disconnection_type {
- booted,
- busy,
- departed,
- failed
- }
-
- type enumerated Joining_type {
- dialed_in,
- dialed_out,
- focus_owner
- }
-
- type record User_roles_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record length (1 .. infinity) of XSDAUX.string entry_list
- }
-
-}
-with {
- encode "CONF";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_resource_lists.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_resource_lists.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_resource_lists.ttcn3view (nonexistent)
@@ -1,86 +0,0 @@
-module urn_ietf_params_xml_ns_resource_lists {
- import from XSDAUX language "TTCN-3:2010" all;
-
- import from http_www_w3_org_XML_1998_namespace language "XSD" all;
-
- type record Entry_refType {
- XSDAUX.anyURI ref,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Display_nameType display_name optional,
- record of anytype elem_list optional
- }
-
- type record EntryType {
- XSDAUX.anyURI uri,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record {
- Display_nameType content
- } display_name optional,
- record of anytype elem_list optional
- }
-
- type record ListType {
- XSDAUX.string name optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Display_nameType display_name optional,
- record of record {
- union {
- record {
- XSDAUX.string name optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Display_nameType display_name optional,
- record of record {
- union {
- ListType.sequence_list[0].choice.list list,
- ExternalType external_,
- EntryType entry,
- Entry_refType entry_ref
- } choice
- } sequence_list optional,
- record of anytype elem_list optional
- } list,
- ExternalType external_,
- EntryType entry,
- Entry_refType entry_ref
- } choice
- } sequence_list optional,
- record of anytype elem_list optional
- }
-
- type record ExternalType {
- XSDAUX.anyURI anchor optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Display_nameType display_name optional,
- record of anytype elem_list optional
- }
-
- type record Resource_lists {
- record of record {
- ListType list
- } sequence_list optional
- }
-
- type record Display_nameType {
- http_www_w3_org_XML_1998_namespace.Lang lang optional,
- XSDAUX.string content
- }
-
-}
-with {
- encode "ResourceList";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_xcap.ttcn3view (nonexistent)
@@ -1,202 +0,0 @@
-module http_uri_etsi_org_ngn_params_xml_simservs_xcap {
- import from XSDAUX language "TTCN-3:2010" all;
-
- import from urn_ietf_params_xml_ns_common_policy language "XSD" all;
-
- type Empty_element_type Roaming;
-
- type XSDAUX.string TwobitType;
-
- /**
- * @desc
- * This is the communication diversion configuration
-document.
- */
- type record Communication_diversion {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- urn_ietf_params_xml_ns_common_policy.Ruleset ruleset optional
- }
-
- type Empty_element_type Rule_deactivated;
-
- type record SimservType {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional
- }
-
- type XSDAUX.hexBinary SixteenbitType;
-
- type XSDAUX.string Presence_status_activity_type;
-
- type SimservType AbsService;
-
- type Empty_element_type Anonymous;
-
- type Empty_element_type Busy;
-
- type Allow_action_type Allow;
-
- type enumerated Reveal_URIoptions_type {
- false_,
- not_reveal_GRUU,
- true_
- }
-
- /**
- * @desc
- * XML Schema for data manipulation of ETSI
- NGN PSTN/ISDN Simulation Services
-
- */
- type record Simservs {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of union {
- SimservType absService,
- Terminating_identity_presentation_restriction terminating_identity_presentation_restriction,
- SimservType terminating_identity_presentation,
- Originating_identity_presentation_restriction originating_identity_presentation_restriction,
- SimservType originating_identity_presentation,
- Communication_diversion communication_diversion,
- Incoming_communication_barring incoming_communication_barring,
- Outgoing_communication_barring outgoing_communication_barring
- } choice optional,
- record {
- record of anytype elem_list optional
- } extensions optional
- }
-
- type SimservType Originating_identity_presentation;
-
- /**
- * @desc
- * This is the outgoing communication barring configuration
-document.
- */
- type record Outgoing_communication_barring {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- urn_ietf_params_xml_ns_common_policy.Ruleset ruleset optional
- }
-
- type Media_type1 Media;
-
- /**
- * @desc
- * Terminating Identity presentation Restriction
-
- */
- type record Terminating_identity_presentation_restriction {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- enumerated {
- presentation_not_restricted,
- presentation_restricted
- } default_behaviour optional
- }
-
- type record Empty_element_type {
- }
-
- type Empty_element_type Not_reachable;
-
- type Empty_element_type Communication_diverted;
-
- type XSDAUX.integerXSD CugIndexType;
-
- type XSDAUX.hexBinary NetworkIdentityType;
-
- type record CugRequestType {
- XSDAUX.booleanXSD outgoingAccessRequest,
- CugIndexType cugIndex
- }
-
- type XSDAUX.string Media_type1;
-
- /**
- * @desc
- * Originating Identity presentation Restriction
-
- */
- type record Originating_identity_presentation_restriction {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- enumerated {
- presentation_not_restricted,
- presentation_restricted
- } default_behaviour optional
- }
-
- type XSDAUX.positiveInteger NoReplyTimer;
-
- /**
- * @desc
- * This is the incoming communication barring configuration
-document.
- */
- type record Incoming_communication_barring {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- urn_ietf_params_xml_ns_common_policy.Ruleset ruleset optional
- }
-
- type XSDAUX.booleanXSD Allow_action_type;
-
- type Presence_status_activity_type Presence_status;
-
- type record Cug {
- XSDAUX.booleanXSD active optional,
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- CugRequestType cugCallOperation optional,
- NetworkIdentityType networkIndicator optional,
- SixteenbitType cugInterlockBinaryCode optional,
- TwobitType cugCommunicationIndicator optional
- }
-
- type Empty_element_type No_answer;
-
- type SimservType Terminating_identity_presentation;
-
- type Forward_to_type Forward_to;
-
- type Empty_element_type Not_registered;
-
- type record Forward_to_type {
- XSDAUX.anyURI target,
- XSDAUX.booleanXSD notify_caller optional,
- Reveal_URIoptions_type reveal_identity_to_caller optional,
- Reveal_URIoptions_type reveal_served_user_identity_to_caller optional,
- XSDAUX.booleanXSD notify_served_user optional,
- XSDAUX.booleanXSD notify_served_user_on_outbound_call optional,
- Reveal_URIoptions_type reveal_identity_to_target optional,
- NoReplyTimer noReplyTimer optional
- }
-
-}
-with {
- encode "SupplementaryServices";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_common_policy.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_common_policy.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_ietf_params_xml_ns_common_policy.ttcn3view (nonexistent)
@@ -1,68 +0,0 @@
-module urn_ietf_params_xml_ns_common_policy {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type record SphereType {
- XSDAUX.string value_
- }
-
- type record ExtensibleType {
- record of anytype elem_list optional
- }
-
- type record Ruleset {
- record of RuleType rule_list optional
- }
-
- type record RuleType {
- XSDAUX.ID id,
- ConditionsType conditions optional,
- ExtensibleType actions optional,
- ExtensibleType transformations optional
- }
-
- type record ConditionsType {
- record length (1 .. infinity) of union {
- IdentityType identity,
- SphereType sphere,
- ValidityType validity,
- record of anytype elem_list
- } content optional
- }
-
- type record ManyType {
- XSDAUX.string domain optional,
- record of union {
- ExceptType except_,
- anytype elem
- } content optional
- }
-
- type record ValidityType {
- record length (1 .. infinity) of record {
- XSDAUX.dateTime from_,
- XSDAUX.dateTime until
- } content
- }
-
- type record IdentityType {
- record length (1 .. infinity) of union {
- OneType one,
- ManyType many,
- anytype elem
- } content
- }
-
- type record OneType {
- XSDAUX.anyURI id,
- anytype elem optional
- }
-
- type record ExceptType {
- XSDAUX.string domain optional,
- XSDAUX.anyURI id optional
- }
-
-}
-with {
- encode "common_policy";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/urn_3gpp_ns_cw_1_0.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/urn_3gpp_ns_cw_1_0.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/urn_3gpp_ns_cw_1_0.ttcn3view (nonexistent)
@@ -1,19 +0,0 @@
-module urn_3gpp_ns_cw_1_0 {
- type TCWtype Ims_cw;
-
- type record TCWtype {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- TEmptyType communication_waiting_indication optional,
- record of anytype elem_list optional
- }
-
- type record TEmptyType {
- }
-
-}
-with {
- encode "cw";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_mcid.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_mcid.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_simservs_mcid.ttcn3view (nonexistent)
@@ -1,26 +0,0 @@
-module http_uri_etsi_org_ngn_params_xml_simservs_mcid {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type record ResponseType {
- BitType mcidResponseIndicator,
- BitType holdingProvidedIndicator
- }
-
- type XSDAUX.string BitType;
-
- type record Mcid {
- union {
- RequestType request,
- ResponseType response
- } choice
- }
-
- type record RequestType {
- BitType mcidRequestIndicator,
- BitType holdingIndicator
- }
-
-}
-with {
- encode "MCID";
-}
Index: v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_comm_div_info.ttcn3view
===================================================================
--- v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_comm_div_info.ttcn3view (revision 647)
+++ v3.0.3/branches/v2/xsd/ttcn3view/http_uri_etsi_org_ngn_params_xml_comm_div_info.ttcn3view (nonexistent)
@@ -1,157 +0,0 @@
-module http_uri_etsi_org_ngn_params_xml_comm_div_info {
- import from XSDAUX language "TTCN-3:2010" all;
-
- type record of Diversion_reason_info_type Diversion_reason_info_types;
-
- type record Comm_div_ntfy_info_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- User_info_type originating_user_info optional,
- XSDAUX.anyURI diverting_user_info optional,
- XSDAUX.anyURI diverted_to_user_info optional,
- XSDAUX.dateTime diversion_time_info optional,
- Diversion_reason_info_type diversion_reason_info optional,
- Diversion_rule_info_type diversion_rule_info optional,
- record of anytype elem_list optional
- }
-
- type record User_selection_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of User_info_type user_info_list optional
- }
-
- type record Presence_status_info_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string presence_status
- }
-
- type enumerated Diversion_reason_info_type {
- int302(302),
- int404(404),
- int408(408),
- int480(480),
- int486(486),
- int487(487),
- int503(503)
- }
-
- type record Comm_div_subs_info_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Comm_div_selection_criteria_type comm_div_selection_criteria optional,
- Comm_div_ntfy_trigger_criteria_type comm_div_ntfy_trigger_criteria optional,
- Comm_div_info_selection_criteria_type comm_div_info_selection_criteria optional,
- record of anytype elem_list optional
- }
-
- type record Diversion_rule_info_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string diversion_rule
- }
-
- type record User_info_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.string user_name optional,
- XSDAUX.anyURI user_URI
- }
-
- type record Time_range_selection_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of Time_range_type time_range_list optional
- }
-
- type Comm_div_info_type Comm_div_info;
-
- type record Comm_div_ntfy_trigger_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Time_range_selection_criteria_type notification_time_selection_criteria optional,
- Presence_status_selection_criteria_type presence_status_selection_criteria optional,
- XSDAUX.integerXSD notification_buffer_interval optional,
- record of anytype elem_list optional
- }
-
- type record Comm_div_info_selection_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.booleanXSD disable_originating_user_info optional,
- XSDAUX.booleanXSD disable_diverting_user_info optional,
- XSDAUX.booleanXSD disable_diverted_to_user_info optional,
- XSDAUX.booleanXSD disable_diversion_time_info optional,
- XSDAUX.booleanXSD disable_diversion_reason_info optional,
- XSDAUX.booleanXSD disable_diversion_rule_info optional,
- record of anytype elem_list optional
- }
-
- type record Time_range_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- XSDAUX.dateTime start_time,
- XSDAUX.dateTime end_time
- }
-
- type record Presence_status_selection_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- record of Presence_status_info_type presence_status_info_list optional
- }
-
- type record Diversion_reason_selection_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- Diversion_reason_info_types diversion_reason_info
- }
-
- type record Comm_div_info_type {
- XSDAUX.anyURI entity,
- Comm_div_subs_info_type comm_div_subs_info optional,
- Comm_div_ntfy_info_type comm_div_ntfy_info optional,
- record of anytype elem_list optional
- }
-
- type record Comm_div_selection_criteria_type {
- record of record {
- charstring name,
- anytype value_
- } anyAttributes optional,
- User_selection_criteria_type originating_user_selection_criteria optional,
- XSDAUX.anyURI diverting_user_selection_criteria optional,
- XSDAUX.anyURI diverted_to_user_selection_criteria optional,
- Time_range_selection_criteria_type diversion_time_selection_criteria optional,
- Diversion_reason_selection_criteria_type diversion_reason_selection_criteria optional,
- record of anytype elem_list optional
- }
-
-}
-with {
- encode "CDIVN";
-}
Index: v3.0.3/branches/v2/xsd/regInfo.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/regInfo.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/regInfo.xsd (nonexistent)
@@ -1,111 +0,0 @@
-
-<xs:schema targetNamespace="urn:ietf:params:xml:ns:reginfo"
-xmlns:tns="urn:ietf:params:xml:ns:reginfo"
-xmlns:xs="http://www.w3.org/2001/XMLSchema"
-elementFormDefault="qualified" attributeFormDefault="unqualified">
-<!--
- RFC 3680 clause 5.4
--->
-
- <!-- This import brings in the XML language attribute xml:lang-->
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
-schemaLocation="xml.xsd"/>
- <xs:element name="reginfo">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="tns:registration" minOccurs="0"
-maxOccurs="unbounded"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
-maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="version" type="xs:nonNegativeInteger"
-use="required"/>
- <xs:attribute name="state" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="full"/>
- <xs:enumeration value="partial"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="registration">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="tns:contact" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
-maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="aor" type="xs:anyURI" use="required"/>
- <xs:attribute name="id" type="xs:string" use="required"/>
- <xs:attribute name="state" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="init"/>
- <xs:enumeration value="active"/>
- <xs:enumeration value="terminated"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="contact">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="uri" type="xs:anyURI"/>
- <xs:element name="display-name" minOccurs="0">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute ref="xml:lang" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="unknown-param" minOccurs="0"
-maxOccurs="unbounded">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:any namespace="##other" processContents="lax" minOccurs="0"
-maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="state" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="active"/>
- <xs:enumeration value="terminated"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="event" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="registered"/>
- <xs:enumeration value="created"/>
- <xs:enumeration value="refreshed"/>
- <xs:enumeration value="shortened"/>
- <xs:enumeration value="expired"/>
- <xs:enumeration value="deactivated"/>
- <xs:enumeration value="probation"/>
- <xs:enumeration value="unregistered"/>
- <xs:enumeration value="rejected"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="duration-registered" type="xs:unsignedLong"/>
- <xs:attribute name="expires" type="xs:unsignedLong"/>
- <xs:attribute name="retry-after" type="xs:unsignedLong"/>
- <xs:attribute name="id" type="xs:string" use="required"/>
- <xs:attribute name="q" type="xs:string"/>
- <xs:attribute name="callid" type="xs:string"/>
- <xs:attribute name="cseq" type="xs:unsignedLong"/>
- </xs:complexType>
- </xs:element>
-</xs:schema>
Index: v3.0.3/branches/v2/xsd/xml.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/xml.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/xml.xsd (nonexistent)
@@ -1,38 +0,0 @@
-<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xml:lang="en">
-
- <xs:attribute name="lang">
- <xs:simpleType>
- <xs:union memberTypes="xs:language">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value=""/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="space">
- <xs:simpleType>
- <xs:restriction base="xs:NCName">
- <xs:enumeration value="default"/>
- <xs:enumeration value="preserve"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="base" type="xs:anyURI">
- </xs:attribute>
-
- <xs:attribute name="id" type="xs:ID">
- </xs:attribute>
-
- <xs:attributeGroup name="specialAttrs">
- <xs:attribute ref="xml:base"/>
- <xs:attribute ref="xml:lang"/>
- <xs:attribute ref="xml:space"/>
- <xs:attribute ref="xml:id"/>
- </xs:attributeGroup>
-</xs:schema>
Index: v3.0.3/branches/v2/xsd/CDIVN.xsd
===================================================================
--- v3.0.3/branches/v2/xsd/CDIVN.xsd (revision 647)
+++ v3.0.3/branches/v2/xsd/CDIVN.xsd (nonexistent)
@@ -1,249 +0,0 @@
-
-<xs:schema
- targetNamespace="http://uri.etsi.org/ngn/params/xml/comm-div-info"
- xmlns:tns="http://uri.etsi.org/ngn/params/xml/comm-div-info"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns="http://uri.etsi.org/ngn/params/xml/comm-div-info"
- elementFormDefault="qualified"
- attributeFormDefault="unqualified">
- <!--
- This import brings in the XML language definition
- -->
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
- <!--
- Communication Diversion Information. This is the top-level XML element
- -->
- <xs:element name="comm-div-info"
- type="comm-div-info-type" />
- <!--
- Communication Diversion Information Type. This is the top-level XML element
- -->
- <xs:complexType name="comm-div-info-type">
- <xs:sequence>
- <xs:element name="comm-div-subs-info"
- type="comm-div-subs-info-type" minOccurs="0" />
- <xs:element name="comm-div-ntfy-info"
- type="comm-div-ntfy-info-type" minOccurs="0" />
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="entity" type="xs:anyURI"
- use="required"/>
- </xs:complexType>
- <!---
- Communication Diversion Subscription Type.
- Used at Subscription time to
- select Communication Diversions for notification,
- when to notify them and
- what to notify.
- -->
- <xs:complexType name="comm-div-subs-info-type">
- <xs:sequence>
- <xs:element name="comm-div-selection-criteria"
- type="comm-div-selection-criteria-type"
- minOccurs="0" />
- <xs:element name="comm-div-ntfy-trigger-criteria"
- type="comm-div-ntfy-trigger-criteria-type"
- minOccurs="0" />
- <xs:element name="comm-div-info-selection-criteria"
- type="comm-div-info-selection-criteria-type"
- minOccurs="0" />
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!---
- Communication Diversion Notification Information Type
- Used while notifying the User about the Communication Diversion
- -->
- <xs:complexType name="comm-div-ntfy-info-type">
- <xs:sequence>
- <xs:element name="originating-user-info"
- type="user-info-type" minOccurs="0" />
- <xs:element name="diverting-user-info"
- type="xs:anyURI" minOccurs="0" />
- <xs:element name="diverted-to-user-info"
- type="xs:anyURI" minOccurs="0" />
- <xs:element name="diversion-time-info"
- type="xs:dateTime" minOccurs="0" />
- <xs:element name="diversion-reason-info"
- type="diversion-reason-info-type" minOccurs="0" />
- <xs:element name="diversion-rule-info"
- type="diversion-rule-info-type" minOccurs="0" />
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- COMMUNICATION DIVERSION SELECTION CRITERIA
- -->
- <xs:complexType name="comm-div-selection-criteria-type">
- <xs:sequence>
- <xs:element name="originating-user-selection-criteria"
- type="user-selection-criteria-type"
- minOccurs="0" />
- <xs:element name="diverting-user-selection-criteria"
- type="xs:anyURI"
- minOccurs="0" />
- <xs:element name="diverted-to-user-selection-criteria"
- type="xs:anyURI"
- minOccurs="0" />
- <xs:element name="diversion-time-selection-criteria"
- type="time-range-selection-criteria-type"
- minOccurs="0" />
- <xs:element name="diversion-reason-selection-criteria"
- type="diversion-reason-selection-criteria-type"
- minOccurs="0" />
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- COMMUNICATION DIVERSION NOTIFICATION TRIGGER CRITERIA
- -->
- <xs:complexType name="comm-div-ntfy-trigger-criteria-type">
- <xs:sequence>
- <xs:element name="notification-time-selection-criteria"
- type="time-range-selection-criteria-type"
- minOccurs="0" />
- <xs:element name="presence-status-selection-criteria"
- type="presence-status-selection-criteria-type"
- minOccurs="0" />
- <xs:element name="notification-buffer-interval" minOccurs="0" default="86400">
- <xs:simpleType>
- <xs:restriction base="xs:integer">
- <xs:maxInclusive value="86400"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- COMMUNICATION DIVERSION INFORMATION SELECTION CRITERIA
- -->
- <xs:complexType name="comm-div-info-selection-criteria-type">
- <xs:sequence>
- <xs:element name="disable-originating-user-info"
- type="xs:boolean" default="false" minOccurs="0" />
- <xs:element name="disable-diverting-user-info"
- type="xs:boolean" default="false" minOccurs="0" />
- <xs:element name="disable-diverted-to-user-info"
- type="xs:boolean" default="false" minOccurs="0" />
- <xs:element name="disable-diversion-time-info"
- type="xs:boolean" default="false" minOccurs="0" />
- <xs:element name="disable-diversion-reason-info"
- type="xs:boolean" default="false" minOccurs="0" />
- <xs:element name="disable-diversion-rule-info"
- type="xs:boolean" default="false" minOccurs="0" />
- <xs:any namespace="##other" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
-
- <!-- User Info Type -->
- <xs:complexType name="user-info-type">
- <xs:sequence>
- <xs:element name="user-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
- <xs:element name="user-URI" type="xs:anyURI"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
-
- <!--
- DIVERSION REASON INFO
- -->
-
- <xs:simpleType name="diversion-reason-info-types">
- <xs:list itemType="diversion-reason-info-type"/>
- </xs:simpleType>
- <xs:simpleType name="diversion-reason-info-type">
- <xs:restriction base="xs:integer">
- <xs:enumeration value="404"/>
- <xs:enumeration value="486"/>
- <xs:enumeration value="408"/>
- <xs:enumeration value="302"/>
- <xs:enumeration value="487"/>
- <xs:enumeration value="480"/>
- <xs:enumeration value="503"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- DIVERSION RULE INFO
- -->
- <xs:complexType name="diversion-rule-info-type">
- <xs:sequence>
- <xs:element name="diversion-rule" type="xs:string"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- ORIGINATING USER SELECTION CRITERIA
- -->
- <xs:complexType name="user-selection-criteria-type">
- <xs:sequence>
- <xs:element name="user-info"
- type="user-info-type" minOccurs="0"
- maxOccurs="unbounded" />
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- DIVERSION REASON SELECTION CRITERIA
- -->
- <xs:complexType name="diversion-reason-selection-criteria-type">
- <xs:sequence>
- <xs:element name="diversion-reason-info"
- type="diversion-reason-info-types"/>
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- TIME RANGE SELECTION CRITERIA
- -->
- <xs:complexType name="time-range-selection-criteria-type">
- <xs:sequence>
- <xs:element name="time-range"
- type="time-range-type" minOccurs="0"
- maxOccurs="unbounded" />
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- TIME RANGE INFO
- -->
- <xs:complexType name="time-range-type">
- <xs:sequence>
- <xs:element name="start-time" type="xs:dateTime" />
- <xs:element name="end-time" type="xs:dateTime" />
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- PRESENCE STATUS SELECTION CRITERIA
- -->
- <xs:complexType name="presence-status-selection-criteria-type">
- <xs:sequence>
- <xs:element name="presence-status-info"
- type="presence-status-info-type" minOccurs="0"
- maxOccurs="unbounded" />
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
- <!--
- PRESENCE STATUS INFo
- -->
- <xs:complexType name="presence-status-info-type">
- <xs:sequence>
- <xs:element name="presence-status" type="xs:string" />
- </xs:sequence>
- <xs:anyAttribute namespace="##other" processContents="lax"/>
- </xs:complexType>
-</xs:schema>
\ No newline at end of file
/v3.0.3/branches/v2/xsd/CDIVN.xsd
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_SDPTypes.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_SDPTypes.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_SDPTypes.ttcn (nonexistent)
@@ -1,310 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module defines message, attribute, structured and simple
- * SDP types as well constants used by LipSip constructs. <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 Adding of new attributes types is ok;
- * Adding of new optional attributes in @see SDP_attribute type
- * is ok;
- * Existing attribute types shall not be changed or removed -
- * change requests shall be made to http://t-ort.etsi.org
- */
-
-module LibSip_SDPTypes language "TTCN-3:2005"//MRO
-{
- group Constants
- {
- group SimpleConstants
- {
- // SDP net_type
- const charstring c_in := "IN";
-
- // SDP addr_type
- const charstring c_ip4 := "IP4";
-
- // SDP_media_desc: media
- const charstring c_audio := "audio";
- const charstring c_image := "image";
- const charstring c_video := "video";
-
- // SDP_media_desc: transport
- const charstring c_rtpAvp := "RTP/AVP";
- const charstring c_udptl := "Udptl";
-
- // SDP_attribute_list constants:
- const charstring c_local := "local";
- const charstring c_mandatory := "mandatory";
- const charstring c_none := "none";
- const charstring c_qos := "qos";
- const charstring c_remote := "remote";
- const charstring c_sendrecv := "sendrecv";
- const charstring c_send := "send";
- const charstring c_recv := "recv";
- const charstring c_e2e := "e2e";
- }
- }
- group Types
- {
- group SubTypes
- {
- group AttributeTypes
- {
- type record SDP_attribute_cat {
- charstring attr_value
- }
-
- type record SDP_attribute_keywds {
- charstring attr_value
- }
-
- type record SDP_attribute_tool {
- charstring attr_value
- }
-
- type record SDP_attribute_ptime {
- charstring attr_value
- }
-
- type record SDP_attribute_recvonly {
- }
-
- type record SDP_attribute_sendrecv {
- }
-
- type record SDP_attribute_sendonly {
- }
-
- type record SDP_attribute_inactive {
- }
-
- type record SDP_attribute_orient {
- charstring attr_value
- }
-
- type record SDP_attribute_type {
- charstring attr_value
- }
-
- type record SDP_attribute_charset {
- charstring attr_value
- }
-
- type record SDP_attribute_sdplang {
- charstring attr_value
- }
-
- type record SDP_attribute_lang {
- charstring attr_value
- }
-
- type record SDP_attribute_framerate {
- charstring attr_value
- }
-
- type record SDP_attribute_quality {
- charstring attr_value
- }
-
- type record SDP_attribute_fmtp {
- charstring attr_value
- }
-
- type record SDP_attribute_curr {
- charstring preconditionType,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_des {
- charstring preconditionType,
- charstring strength,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_conf {
- charstring preconditionType,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_rtpmap {
- charstring attr_value
- }
-
- type record SDP_attribute_rtcp {
- charstring attr_value
- }
-
- type record SDP_attribute_unknown {
- charstring name,
- charstring attr_value optional
- }
-
-
- type union SDP_attribute {
- SDP_attribute_cat cat,
- SDP_attribute_keywds keywds,
- SDP_attribute_tool tool,
- SDP_attribute_ptime ptime,
- SDP_attribute_recvonly recvonly,
- SDP_attribute_sendrecv sendrecv,
- SDP_attribute_sendonly sendonly,
- SDP_attribute_inactive inactive,
- SDP_attribute_orient orient,
- SDP_attribute_type sdp_type,
- SDP_attribute_charset charset,
- SDP_attribute_sdplang sdplang,
- SDP_attribute_lang lang,
- SDP_attribute_framerate framerate,
- SDP_attribute_quality quality,
- SDP_attribute_fmtp fmtp,
- SDP_attribute_curr curr,
- SDP_attribute_des des,
- SDP_attribute_conf conf,
- SDP_attribute_rtpmap rtpmap,
- SDP_attribute_rtcp rtcp,
-
- //* unknown has to be the last else encoding/decoding won't work!
- SDP_attribute_unknown unknown
- }
- } //* group AttributeTypes
-
- type set of SDP_attribute SDP_attribute_list;
-
- type record SDP_bandwidth {
- charstring modifier,
- integer bandwidth
- }
-
- type set of SDP_bandwidth SDP_bandwidth_list;
-
- type record SDP_connection {
- charstring net_type,
- charstring addr_type,
- SDP_conn_addr conn_addr
- }
-
- type record SDP_conn_addr {
- charstring addr,
- integer ttl optional,
- integer num_of_addr optional
- }
-
- type set of SDP_connection SDP_connection_list;
-
- type record SDP_contact {
- charstring addr_or_phone,
- charstring disp_name optional
- }
-
- type SDP_contact SDP_contact_tel;
-
- type SDP_contact SDP_contact_email;
-
- type set of SDP_contact_email SDP_email_list;
-
- type record of charstring SDP_fmt_list ;
-
- type record SDP_key {
- charstring method,
- charstring key optional
- }
-
- type record SDP_media_desc {
- SDP_media_field media_field,
- charstring information optional,
- SDP_connection_list connections optional,
- SDP_bandwidth_list bandwidth optional,
- SDP_key key optional,
- SDP_attribute_list attributes optional
- }
-
- type set of SDP_media_desc SDP_media_desc_list;
-
- type record SDP_media_port {
- integer port_number,
- integer num_of_ports optional
- }
-
- type record SDP_media_field {
- charstring media,
- SDP_media_port ports,
- charstring transport,
- SDP_fmt_list fmts
- }
-
- type record SDP_time{
- SDP_time_field time_field,
- SDP_repeat_list time_repeat optional
- }
-
- type record SDP_time_field{
- charstring start_time, //* field is numeric strings that may not fit into 32-bit signed int
- charstring stop_time //* field is numeric strings that may not fit into 32-bit signed int
- }
-
- type record SDP_repeat{
- SDP_typed_time repeat_interval,
- SDP_typed_time active,
- SDP_typed_time_list offsets
- }
-
- type set of SDP_repeat SDP_repeat_list;
-
- type record SDP_typed_time{
- integer time,
- charstring unit optional
- }
-
- type set of SDP_typed_time SDP_typed_time_list;
-
- type set of SDP_time SDP_time_list;
-
- type record SDP_timezone{
- charstring adjustment_time,
- SDP_typed_time offset
- }
-
- type set of SDP_timezone SDP_timezone_list;
-
- type record SDP_Origin{
- charstring user_name,
- charstring session_id,//* field is numeric strings that may not fit into 32-bit signed int
- charstring session_version, //* field is numeric strings that may not fit into 32-bit signed int
- charstring net_type,
- charstring addr_type,
- charstring addr
- }
-
- type set of SDP_contact_tel SDP_phone_list;
- } //* group SubTypes
-
-
- group MessageTypes
- {
- type record SDP_Message{
- integer protocol_version,
- SDP_Origin origin,
- charstring session_name,
- charstring information optional,
- charstring uri optional,
- SDP_email_list emails optional,
- SDP_phone_list phone_numbers optional,
- SDP_connection connection optional,
- SDP_bandwidth_list bandwidth optional,
- SDP_time_list times,
- SDP_timezone_list timezone_adjustments optional,
- SDP_key key optional,
- SDP_attribute_list attributes optional,
- SDP_media_desc_list media_list optional
- } with { encode "SDPCodec" }
- } // group MessageTypes
- } // group Types
-
-
-} // end module LibSip_SDPTypes
/v3.0.3/tags/v1.6.0/ttcn/LibSip_SDPTypes.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_Steps.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_Steps.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_Steps.ttcn (nonexistent)
@@ -1,4162 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests.
- */
-
-module LibSip_Steps language "TTCN-3:2005"//MRO
-{
- //LibCommon
- import from LibCommon_Sync all ;
- import from LibCommon_VerdictControl all ;
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_Templates all;
- import from LibSip_Interface all;
- import from LibSip_PIXITS all;
- import from LibSip_XMLTypes all;
-
-group externalfunctions {
-
- //Return random charstring
- external function fx_rndStr() return charstring;
- // Return the equivalent string in lower case
- external function fx_putInLowercase(charstring par_string) return charstring;
-
- external function fx_getIpAddr(charstring host_name) return charstring;
-
- // External function to generate a digest response.
- // References:
- // * RFC 2617 HTTP Authentication: Basic and Digest Access
- // Authentication, and
- // * RFC 1321 The MD5 Message-Digest Algorithm
- // See RFC 2617, chapter 5 Sample implementation, for example usage, as
- // the signature of calculateDigestResponse is according to the example
- // given in the RFC.
- //
- external function fx_calculateDigestResponse(
- charstring nonce,
- charstring cnonce,
- charstring user,
- charstring realm,
- charstring passwd,
- charstring alg,
- charstring nonceCount,
- charstring method,
- charstring qop,
- charstring URI,
- charstring HEntity) return charstring;
-
-}
-
-group ParameterOperations {
-
- /**
- *
- * @desc function to generate a 32 bits random number as a charstring for tag field
- * (used as e.g.: tag in from-header field, or branch parameter in via header)
- * @return random value with at least 32 bits of randomness
- *
- */
- function f_getRndTag() return charstring
- {
- var charstring tag_value;
- //tag_value is initialized with a random value with at least 32 bits of randomness
- // 4294967296 is a 32 bits integer
- tag_value := fx_rndStr()&fx_rndStr();
- return(tag_value);
- }
-
- /**
- *
- * @desc Function to prepare credentials for request that has an empty
- * entity body such as a REGISTER message.
- * @param p_userprofile to get important parameters
- * @return Credentials field
- */
- function f_calculatecCredentials_empty(in SipUserProfile p_userprofile) return Credentials
- {
- var template Credentials v_result;
-
- var charstring v_nonce := "";
-
- // RFC 2617 3.2.2 username:
- // The name of user in the specified realm.
- var charstring v_username := p_userprofile.privUsername;
-
- var charstring v_realm := p_userprofile.registrarDomain;
-
- var charstring v_uri := c_sipScheme & ":" & p_userprofile.registrarDomain;
-
- var charstring v_response := "";
-
- // Construct credentials for an Authorization field of a request.
- v_result :=
- {
- digestResponse :=
- {
- { id := "username", paramValue := v_username },
- { id := "realm", paramValue := v_realm },
- { id := "uri", paramValue := v_uri },
- { id := "nonce=""""", paramValue := omit }, // already enclosed to " characters
- { id := "response=""""", paramValue := omit } // already enclosed to " characters
- }};
-
- return v_result;
- }
-
-
- /**
- *
- * @desc Function to calculate credentials for request that has an empty
- * entity body such as a REGISTER message.
- * @param p_userprofile to get important parameters
- * @param p_method (can be "REGISTER", "INVITE",....)
- * @param p_challenge parameter from 4xx response
- * @return Credentials field
- * @verdict
- */
- function f_calculatecCredentials(in SipUserProfile p_userprofile, in charstring p_method,
- in CommaParam_List p_challenge) return Credentials
- {
- var template Credentials v_result;
-
- var charstring v_nonce := "";
-
- // Use a fixed client nonce.
- var charstring v_cnonce := "1317265";
-
- // RFC 2617 3.2.2 username:
- // The name of user in the specified realm.
- var charstring v_username := p_userprofile.privUsername;
-
- var charstring v_realm;
-
- // RFC 2617 3.2.2.2 passwd:
- // A known shared secret, the password of user of the specified
- // username.
- var charstring v_passwd := p_userprofile.passwd;
-
- var charstring v_algorithm;
-
- // Use a fixed nonce count.
- const charstring c_nonceCount := "00000002";
-
- var charstring v_qop := p_userprofile.qop;
-
- var charstring v_uri := c_sipScheme & ":" & p_userprofile.registrarDomain;
-
- // MD5 hash of empty entity body.
- const charstring c_hEntity := "d41d8cd98f00b204e9800998ecf8427e";
-
- var charstring v_response;
- var charstring v_opaque;
-
-
- // extract nonce, realm, algorithm, and opaque from challenge
-
- v_nonce := f_extractParamValueFromChallenge(p_challenge, "nonce");
- v_realm := f_extractParamValueFromChallenge(p_challenge, "realm");
- v_algorithm := f_extractParamValueFromChallenge(p_challenge, "algorithm");
- v_opaque := f_extractParamValueFromChallenge(p_challenge, "opaque");
-
- // calculate a digest response for the Authorize header
- v_response := fx_calculateDigestResponse(
- v_nonce,
- v_cnonce,
- v_username,
- v_realm,
- v_passwd,
- v_algorithm,
- c_nonceCount,
- p_method,
- v_qop,
- v_uri,
- c_hEntity);
-
- // Construct credentials for an Authorization field of a request.
- v_result :=
- {
- digestResponse :=
- {
- { id := "username", paramValue := v_username },
- { id := "realm", paramValue := v_realm },
- { id := "nonce", paramValue := v_nonce },
- { id := "uri", paramValue := v_uri },
- { id := "response", paramValue := v_response },
- { id := "algorithm=md5", paramValue := omit }, // algorithm is not enclosed to " characters
- { id := "cnonce", paramValue := v_cnonce },
- { id := "opaque", paramValue := v_opaque }, // already enclosed to " characters
- { id := "qop="&v_qop, paramValue := omit },//qop
- { id := "nc="&c_nonceCount, paramValue := omit }//nonceCount
- }
- };
-
- return v_result;
- }
-
- /**
- *
- * @desc Function to calculate credentials for request that has an empty
- * entity body such as a REGISTER message. NO RESPONSE value to cause an error!
- * @param p_userprofile to get important parameters
- * @param p_method (can be "REGISTER", "INVITE",....)
- * @param p_challenge parameter from 4xx response
- * @return Credentials field
- * @verdict
- */
- function f_calculatecCredentials_wo_response(in SipUserProfile p_userprofile, in charstring p_method,
- in CommaParam_List p_challenge) return Credentials
- {
- var Credentials v_result;
-
- var charstring v_nonce := "";
-
- // Use a fixed client nonce.
- var charstring v_cnonce := "1317265";
-
- // RFC 2617 3.2.2 username:
- // The name of user in the specified realm.
- var charstring v_username := p_userprofile.privUsername;
-
- var charstring v_realm;
-
- // RFC 2617 3.2.2.2 passwd:
- // A known shared secret, the password of user of the specified
- // username.
- var charstring v_passwd := p_userprofile.passwd;
-
- var charstring v_algorithm;
-
- // Use a fixed nonce count.
- const charstring c_nonceCount := "00000002";
-
- var charstring v_qop := p_userprofile.qop;
-
- var charstring v_uri := c_sipScheme & ":" & p_userprofile.registrarDomain;
-
- // MD5 hash of empty entity body.
- const charstring c_hEntity := "d41d8cd98f00b204e9800998ecf8427e";
-
- var charstring v_response;
- var charstring v_opaque;
-
-
- // extract nonce, realm, algorithm, and opaque from challenge
-
- v_nonce := f_extractParamValueFromChallenge(p_challenge, "nonce");
- v_realm := f_extractParamValueFromChallenge(p_challenge, "realm");
- v_algorithm := f_extractParamValueFromChallenge(p_challenge, "algorithm");
- v_opaque := f_extractParamValueFromChallenge(p_challenge, "opaque");
-
- // calculate a digest response for the Authorize header
- v_response := fx_calculateDigestResponse(
- v_nonce,
- v_cnonce,
- v_username,
- v_realm,
- v_passwd,
- v_algorithm,
- c_nonceCount,
- p_method,
- v_qop,
- v_uri,
- c_hEntity);
-
- // Construct credentials for an Authorization field of a request.
- v_result :=
- {
- digestResponse :=
- {
- { id := "username", paramValue := v_username },
- { id := "realm", paramValue := v_realm },
- { id := "nonce", paramValue := v_nonce },
- { id := "uri", paramValue := v_uri },
-// { id := "response", paramValue := v_response }, // not included to cause an error
- { id := "algorithm=md5", paramValue := omit }, // algorithm is not enclosed to " characters
- { id := "cnonce", paramValue := v_cnonce },
- { id := "opaque=""""", paramValue := omit }, // already enclosed to " characters
- { id := "qop="&v_qop, paramValue := omit },//qop
- { id := "nc="&c_nonceCount, paramValue := omit }//nonceCount
- }
- };
-
- return v_result;
- }
-
- /**
- *
- * @desc Function to calculate credentials for response 401 - WWW-Authorization
- * @param p_qop of the peer UE (alternatively )
- * @param p_authorization parameter from 1st REGISTER request
- * @return Credentials field
- * @verdict
- */
- function f_calculatecChallenge_forWWWAuthorizationBody(in charstring p_qop, in Authorization p_authorization) return Challenge
- {
- var CommaParam_List v_challenge;
-
- if (ischosen(p_authorization.body[0].digestResponse))
- {v_challenge := p_authorization.body[0].digestResponse}
- else {v_challenge := p_authorization.body[0].otherResponse.authParams};
-
- return (f_calculatecChallenge_forWWWAuthorization(p_qop,v_challenge));
- }
-
- /**
- *
- * @desc Function to calculate credentials for response 401 - WWW-Authorization
- * @param p_qop of the peer UE (alternatively )
- * @param p_challenge parameter from 1st REGISTER request
- * @return Credentials field
- * @verdict
- */
- function f_calculatecChallenge_forWWWAuthorization(in charstring p_qop, in CommaParam_List p_challenge) return Challenge
- {
- var Challenge v_result;
-
- var charstring v_realm;
-
- var charstring v_qop := p_qop;
-
- v_realm := f_extractParamValueFromChallenge(p_challenge, "realm");
-
- // Construct credentials for an Authorization field of a request.
- v_result :=
- {
- digestCln :=
- {
- { id := "realm", paramValue := v_realm },
- { id := "nonce", paramValue := "0edff6c521cc3f407f2d9e01cf6ed82b"},
- { id := "algorithm", paramValue := c_algorithm }, // algorithm is not enclosed with " characters
- { id := "ck", paramValue := "00112233445566778899aabbccddeeff" },
- { id := "ik", paramValue := "ffeeddccbbaa99887766554433221100" }, // already enclosed to " characters
- { id := "qop="""&v_qop&"""", paramValue := omit }//qop
-
- }
- };
-
- return v_result;
- }
-
- /**
- *
- * @desc Function to calculate credentials for request that has an empty
- * entity body such as a REGISTER message and at the end put different private name
- * @param p_userprofile to get important parameters
- * @param p_method (can be "REGISTER", "INVITE",....)
- * @param p_challenge parameter from 4xx response
- * @return Credentials field
- * @verdict
- */
- function f_calculatecCredentialsAndChangeUserName(in SipUserProfile p_userprofile, in charstring p_method,
- in CommaParam_List p_challenge) return Credentials
- {
- var Credentials v_result;
-
- var charstring v_nonce := "";
-
- // Use a fixed client nonce.
- var charstring v_cnonce := "1317265";
-
- // RFC 2617 3.2.2 username:
- // The name of user in the specified realm.
- var charstring v_username := p_userprofile.privUsername;
-
- var charstring v_realm;
-
- // RFC 2617 3.2.2.2 passwd:
- // A known shared secret, the password of user of the specified
- // username.
- var charstring v_passwd := p_userprofile.passwd;
-
- var charstring v_algorithm;
-
- // Use a fixed nonce count.
- const charstring c_nonceCount := "00000002";
-
- var charstring v_qop := p_userprofile.qop;
-
- var charstring v_uri := c_sipScheme & ":" & p_userprofile.registrarDomain;
-
- // MD5 hash of empty entity body.
- const charstring c_hEntity := "d41d8cd98f00b204e9800998ecf8427e";
-
- var charstring v_response;
- var charstring v_opaque;
-
-
- // extract nonce, realm, algorithm, and opaque from challenge
-
- v_nonce := f_extractParamValueFromChallenge(p_challenge, "nonce");
- v_realm := f_extractParamValueFromChallenge(p_challenge, "realm");
- v_algorithm := f_extractParamValueFromChallenge(p_challenge, "algorithm");
- v_opaque := f_extractParamValueFromChallenge(p_challenge, "opaque");
-
- // calculate a digest response for the Authorize header
- v_response := fx_calculateDigestResponse(
- v_nonce,
- v_cnonce,
- v_username,
- v_realm,
- v_passwd,
- v_algorithm,
- c_nonceCount,
- p_method,
- v_qop,
- v_uri,
- c_hEntity);
-
- // Construct credentials for an Authorization field of a request.
- v_result :=
- {
- digestResponse :=
- {
- { id := "username", paramValue := "DifferentToPrivateUser"},
- { id := "realm", paramValue := v_realm },
- { id := "nonce", paramValue := v_nonce },
- { id := "uri", paramValue := v_uri },
- { id := "response", paramValue := v_response },
- { id := "algorithm=md5", paramValue := omit }, // algorithm is not enclosed to " characters
- { id := "cnonce", paramValue := v_cnonce },
- { id := "opaque=""""", paramValue := omit }, // already enclosed to " characters
- { id := "qop="&v_qop, paramValue := omit },//qop
- { id := "nc="&c_nonceCount, paramValue := omit }//nonceCount
- }
- };
-
- return v_result;
- }
-
-
- /**
- *
- * @desc Function to check if param related to id from CommanParam_List exist
- * containing challenge.
- * @param p_challenge parameter from 4xx response
- * @param p_id name of parameter("nonce", "realm", "ck", "ik"...)
- * @return parameter p_id value
- */
- function f_checkParamValueFromChallengeIfPresent(in CommaParam_List p_challenge, in charstring p_id) return boolean
- {
- var boolean v_result := false;
- var integer v_len := sizeof(p_challenge);
- var charstring v_id := fx_putInLowercase(p_id);
-
- for (var integer i := 0; i < v_len; i := i + 1)
- {
- if (fx_putInLowercase(p_challenge[i].id) == v_id)
- {
- v_result := true;
- }
- }
-
- return v_result;
- }
-
- /**
- *
- * @desc Function to check if tag is present in SemicolonParam_List
- * @param p_param_l SemicolonParam_List
- * @return boolean true if tag is present
- */
- function f_checkTagPresent(SemicolonParam_List p_param_l) runs on SipComponent return boolean {
- var integer v_numberOfParams;
- var integer i := 0;
-
- v_numberOfParams := sizeof (p_param_l);
- while (i < v_numberOfParams) {
- if (fx_putInLowercase(p_param_l[i].id) == c_tagId) {
- return (true);
- }
- i := i + 1;
- }
- return (false);
- }
-
- /**
- *
- * @desc Function to extract paramValue related to id from CommanParam_List
- * containing challenge.
- * @param p_challenge parameter from 4xx response
- * @param p_id name of parameter("nonce", "realm",...)
- * @return parameter p_id value
- */
- function f_extractParamValueFromChallenge(in CommaParam_List p_challenge, in charstring p_id) return charstring
- {
- var charstring v_result := "";
- var integer v_len := sizeof(p_challenge);
- var charstring v_id := fx_putInLowercase(p_id);
-
- for (var integer i := 0; i < v_len; i := i + 1)
- {
- if (fx_putInLowercase(p_challenge[i].id) == v_id)
- {
- v_result := p_challenge[i].paramValue;
- }
- }
-
- if (v_result == "")
- {
- if(match(p_id,"algorithm"))
- {
- v_result := "MD5"
- }
- else if(match(p_id,"opaque"))
- {
- v_result := ""
- }
- else
- {
- var charstring v_tmpchar := "Cannot acquire value from credentials.";
- log ("Cannot acquire value from credentials.");
- setverdict(inconc);
- stop;
- }
- }
-
- return v_result;
- }
-
-}//end group ParameterOperations
-
-group FieldOperations {
-
- /**
- *
- * @desc function adds "Tag"-parameter in "To"-headerfield
- * @param p_to To header field that should get a Tag parameter
- *
- */
- function f_addTagInTo(inout To p_to) runs on SipComponent
- {
- f_addParameterTagIfNotPresent(c_tagId, f_getRndTag(), p_to);
- }
-
- /**
- *
- * @desc addition of a single parameter in the via header field
- * @param p_parameter_name name of parameter to be added
- * @param p_parameter_value value of parameter to be added
- * @param p_viaBody the via parameter to be extended
- * @verdict
- */
- function f_addParameterIfNotPresent(
- in charstring p_parameter_name,
- in charstring p_parameter_value,
- inout ViaBody p_viaBody)
-
- {
- if (ispresent (p_viaBody.viaParams)) {
- return;
- }
- p_viaBody.viaParams := {
- {
- p_parameter_name,
- p_parameter_value
- }
- };
- }
-
- /**
- *
- * @desc function to addd a parameter to the "To" header field (if there is not any parameter)
- * @param p_parameter_name name of the parameter to be added
- * @param p_parameter_value value of the paramter to be added
- * @param p_to "To" header field to be extended
- * @verdict
- */
- function f_addParameterTagIfNotPresent(
- in charstring p_parameter_name,
- in charstring p_parameter_value,
- inout To p_to)
-
- {
- if (ispresent (p_to.toParams)) {
- return;
- }
- p_to.toParams := {
- {
- p_parameter_name,
- p_parameter_value
- }
- };
- }
-
- /**
- *
- * @desc function compares the IP address of two hosts
- * @param p_host1 hostname
- * @param p_host2 hostname
- * @return boolean value that is true if the IP addresses are identical
- * @verdict
- */
- function f_equivalentHostAddr(in charstring p_host1, in charstring p_host2) return boolean
- {
- //A DNS server may be used
- return(fx_getIpAddr(p_host1) == fx_getIpAddr(p_host2));
- }
-
-
- /**
- *
- * @desc function checks if Require contains Precondition
- * @param p_message (request or response) SIP message to be analysed
- * @return true if p_id parameter exist
- */
- function f_checkRequirePrecondition(in Request p_message)
- {
- if (ispresent(p_message.msgHeader.require))
- {
- var boolean v_precondition_found:=false;
- for (var integer v_i:=0; v_i<sizeof(p_message.msgHeader.require.optionsTags); v_i:=v_i+1){
- if (match(p_message.msgHeader.require.optionsTags[v_i],c_tagPrecond)) {
- v_precondition_found:=true;
- }
- }
- if (not(v_precondition_found)){
- setverdict(fail);
- log("FAIL: precondition not found in Require options list!");
- }
- }
- else
- {
- setverdict(fail);
- log("FAIL: Require options is not present!");
- }
- }
-
- /**
- *
- * @desc function checks if P-Charging-Vector contains a particular parameter
- * @param p_message (request or response) SIP message to be analysed
- * @param p_id name of parameter
- * @return true if p_id parameter exist
- */
- function f_checkPChargingVectorHeaderParamId(in Request p_message, charstring p_id) return boolean
- {
- var integer v_chargeParamsLen;
-
- if (ispresent(p_message.msgHeader.pChargingVector)) {
- for (var integer i:=0; i<sizeof(p_message.msgHeader.pChargingVector.chargeParams); i:=i+1)
- {if(p_message.msgHeader.pChargingVector.chargeParams[i].id == p_id)
- {return (true)}
- };
- }
- return (false)
- }
-
- /**
- *
- * @desc function checks if P-Charging-Vector contains a particular parameter
- * @param p_message (request or response) SIP message to be analysed
- * @param p_id name of parameter
- * @return true if p_id parameter exist
- */
- function f_checkPChargingVectorHeaderParamIdResponse(in Response p_message, charstring p_id) return boolean
- {
- var integer v_chargeParamsLen;
-
- if (ispresent(p_message.msgHeader.pChargingVector)) {
- for (var integer i:=0; i<sizeof(p_message.msgHeader.pChargingVector.chargeParams); i:=i+1)
- {if(p_message.msgHeader.pChargingVector.chargeParams[i].id == p_id)
- {return (true)}
- };
- }
- return (false)
- }
-
- /**
- *
- * @desc function returns the Host/Port of a given Contact header field
- * @param p_contact contact header field to be analysed
- * @return Host/Port record from the contact header field
- */
- function f_getContactUri(in ContactAddress p_contact) runs on SipComponent return SipUrl
- {
- var SipUrl v_SipUrl;
-
- if (ischosen(p_contact.addressField.nameAddr))
- {
- v_SipUrl := p_contact.addressField.nameAddr.addrSpec;
- }
- else
- {
- v_SipUrl := p_contact.addressField.addrSpecUnion;
- }
-
- return(v_SipUrl);
- } // end f_getContactUri
-
- /**
- *
- * @desc function returns the Host/Port of a given Contact header field
- * @param p_contact contact header field to be analysed
- * @return Host/Port record from the contact header field
- */
- function f_getContactAddr(in ContactAddress p_contact) runs on SipComponent return HostPort
- {
- var HostPort v_locAddr;
- var SipUrl v_SipUrl;
-
- if (ischosen(p_contact.addressField.nameAddr))
- {
- v_SipUrl := p_contact.addressField.nameAddr.addrSpec;
- }
- else
- {
- v_SipUrl := p_contact.addressField.addrSpecUnion;
- }
-
- v_locAddr.host := v_SipUrl.hostPort.host;
-
- if (ispresent(v_SipUrl.hostPort.portField))
- {
- v_locAddr.portField := v_SipUrl.hostPort.portField;
- }
- else
- {
- v_locAddr.portField := c_defaultSipPort;
- }
-
- return(v_locAddr);
- } // end f_getContactAddr
-
- /**
- *
- * @desc function checks if History-Info-Header of the p_message contains a particular URI
- * @param p_message (request or response) SIP message to be analysed
- * @param p_URI name of parameter
- * @return true if p_URI parameter exist
- */
- function f_checkHeaderInfoURI(in Response p_message, SipUrl p_URI) return boolean
- {
- var integer v_chargeParamsLen;
-
- if (ispresent(p_message.msgHeader.historyInfo)) {
- for (var integer i:=0; i<sizeof(p_message.msgHeader.historyInfo.historyInfoList); i:=i+1)
- {if(p_message.msgHeader.historyInfo.historyInfoList[i].nameAddr.addrSpec == p_URI)
- {return (true)}
- };
- }
- return (false)
- }
-
- /**
- *
- * @desc function returns the Userinfo from a given To header field
- * @param p_to To header field to be analysed
- * @return Userinfo from the To header field as a charstring
- */
- function f_getUserfromTo(in To p_to) runs on SipComponent return charstring
- {
- var SipUrl v_SipUrl;
-
- if (ischosen(p_to.addressField.nameAddr))
- {
- v_SipUrl := p_to.addressField.nameAddr.addrSpec;
- }
- else
- {
- v_SipUrl := p_to.addressField.addrSpecUnion;
- }
-
- return(v_SipUrl.userInfo.userOrTelephoneSubscriber);
- } // end f_getUserfromTo
-
- /**
- *
- * @desc function to generate a 32 bits random number as a charstring for tag field
- * @param p_cSeq_s CSeq parameter used to modify the tag field value
- * @return tag value
- */
- function f_getRndCallId(inout CSeq p_cSeq_s) return charstring
- {
- var charstring v_tag_value;
- v_tag_value := fx_rndStr()&fx_rndStr();
- //v_tag_value is initialized with a random value with at least 32 bits of randomness
- // 4294967296 is a 32 bits integer
- //v_tag_value := int2str(float2int(4294967296.0*rnd()) + loc_CSeq_s.seqNumber );
- return(v_tag_value);
- }
-
- /**
- *
- * @desc function give access to the top element of the Path header field.
- * @param p_Request SIP message to be analysed
- * @return NameAddr (e.g. <sip:p.home.com>) or omit
- */
- function f_getPathHeaderTop(inout Request p_Request) return template NameAddr
- {
- if (ispresent(p_Request.msgHeader.path)) {
- if (sizeof(p_Request.msgHeader.path.pathValues)>0) {
- return(p_Request.msgHeader.path.pathValues[0].nameAddr)}
- };
- return(omit)
- }
-
- /**
- *
- * @desc function updates first element of a Via headerfield list
- * @param p_viaBody_List address list of a Via header field
- * @param p_source_address address to be inserted in the top element
- */
- function f_getViaReplyAddr(inout ViaBody_List p_viaBody_List, inout address4SIP p_source_address)
- runs on SipComponent
- {
- var ViaBody v_viaBody;
- var HostPort v_locAddr;
- // The address to send message shall be updated after getting information
- // in the Via header fied and according to 18.2.2
- v_viaBody := p_viaBody_List[0];
-
- // received parameter has to be addded to the via hader field
- // Be careful it could be an Host name and not an IP Address
-
- // TODO produce an error because of unkown host exception
- //if (not f_equivalentHostAddr(valueof (v_viaBody.sentBy.host),
- // valueof (p_source_address.host))) {
- f_addParameterIfNotPresent(
- c_receivedId,
- valueof (p_source_address.host),
- v_viaBody);
- //}
- if (ispresent(v_viaBody.sentBy.portField))
- {
- p_source_address.portField := valueof(v_viaBody.sentBy.portField);
- }
- else
- {
- p_source_address.portField := c_defaultSipPort;
- }
- }
-
- /**
- *
- * @desc functions give access to an element of the Route header field (record).
- * @param p_message (request) SIP message to be analysed
- * @param p_index index of Route record element to be retrieved
- * @return HostPort value of the Route element or omit
- */
- function f_getRouteHeaderElementAddressFromRequest(in Request p_message, in integer p_index) return HostPort
- {
- if (ispresent(p_message.msgHeader.route)) {
- if (sizeof(p_message.msgHeader.route.routeBody)>p_index) {
- return(p_message.msgHeader.route.routeBody[p_index].nameAddr.addrSpec.hostPort)}
- };
- setverdict(fail);
- return(c_hostport_dummy)
- }
-
- /**
- *
- * @desc functions give access to an element of the Record-Route header field (record).
- * @param p_message (request) SIP message to be analysed
- * @param p_index index of recordRoute record element to be retrieved
- * @return HostPort value of the Record-Route element or omit
- */
- function f_getRecordRouteHeaderElementAddressFromRequest(in Request p_message, in integer p_index) return HostPort
- {
- if (ispresent(p_message.msgHeader.recordRoute)) {
- if (sizeof(p_message.msgHeader.recordRoute.routeBody)>p_index) {
- return(p_message.msgHeader.recordRoute.routeBody[p_index].nameAddr.addrSpec.hostPort)}
- };
- setverdict(fail);
- return(c_hostport_dummy)
- }
-
- /**
- *
- * @desc functions give access to an element of the Record-Route header field (record).
- * @param p_message (response) SIP message to be analysed
- * @param p_index index of recordRoute record element to be retrieved
- * @return HostPort value of the Record-Route element or omit
- */
- function f_getRecordRouteHeaderElementAddressFromResponse(in Response p_message, in integer p_index) return HostPort
- {
- if (ispresent(p_message.msgHeader.recordRoute)) {
- if (sizeof(p_message.msgHeader.recordRoute.routeBody)>p_index) {
- return(p_message.msgHeader.recordRoute.routeBody[p_index].nameAddr.addrSpec.hostPort)}
- };
- setverdict(fail);
- return(c_hostport_dummy)
- }
-
- /**
- *
- * @desc functions give access to an element of the Via header field (record).
- * @param p_message (request) SIP message to be analysed
- * @param p_index index of via record element to be retrieved
- * @return HostPort value of the Via element or omit
- */
- function f_getViaHeaderElementHostPort(in Request p_message, in integer p_index) return HostPort
- {
-
- if (sizeof(p_message.msgHeader.via.viaBody)>p_index) {
- return(p_message.msgHeader.via.viaBody[p_index].sentBy)}
- setverdict(fail);
- return(c_hostport_dummy)
- }
-
- /**
- *
- * @desc functions give access to an element of the Via header field (record).
- * @param p_message (response) SIP message to be analysed
- * @param p_index index of via record element to be retrieved
- * @return HostPort value of the Via element or omit
- */ function f_getViaHeaderElementHostPortResponse(in Response p_message, in integer p_index) return HostPort
- {
-
- if (sizeof(p_message.msgHeader.via.viaBody)>p_index) {
- return(p_message.msgHeader.via.viaBody[p_index].sentBy)}
- setverdict(fail);
- return(c_hostport_dummy)
- }
-
- /**
- *
- * @desc function checks indicators if topology hiding (TH) has been applied:
- * - second element in via-header record has tokenized-by parameter
- * @param p_Request SIP message to be analysed
- * @return boolean value (true indicate TH, false otherwise)
- */
- function f_topologyHiding(inout Request p_request) runs on SipComponent return boolean
- {
- var GenericParam v_viaParameter := p_request.msgHeader.via.viaBody[1].viaParams[0]; // second element
- if (not v_viaParameter.id == "tokenized-by")
- {return(false)};
- return(true)
- }
-
- /**
- *
- * @desc function checks indicators if topology hiding (TH) has been applied:
- * - any element in via-header record has tokenized-by parameter
- * @param Response SIP message to be analysed
- * @return boolean value (true indicate TH, false otherwise)
- */
- function f_topologyHidingResponse(inout Response p_response) runs on SipComponent return boolean
- {
- var GenericParam v_viaParameter;
-
- for (var integer v_i := 0; v_i < sizeof(p_response.msgHeader.via.viaBody); v_i := v_i + 1) {
-
- v_viaParameter := p_response.msgHeader.via.viaBody[v_i].viaParams[0]; // first parameter
-
- if (not v_viaParameter.id == "tokenized-by")
- {return(false)}
- }
- return(true);
-
- }
-
-
-
-group SetHeaders {
-
-
- /**
- *
- * @desc function for setting of component variables related to message header fields
- * (message type independent: CSeq, contact, via), function uses information from userprofile
- *
- * @param p_cSeq_s CSeq parameter
- * @param p_method method name for cSeq header field
- */
- function f_setHeadersGeneral(inout CSeq p_cSeq_s, in charstring p_method) runs on SipComponent
- {
- var SemicolonParam_List v_params;
-
- p_cSeq_s.fieldName := CSEQ_E;
- p_cSeq_s.seqNumber := p_cSeq_s.seqNumber + 1;
- p_cSeq_s.method := p_method ;
- vc_cSeq := p_cSeq_s;
-
- vc_contact := valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile)));
- vc_branch := c_branchCookie & f_getRndTag();
- vc_via:={
- fieldName := VIA_E,
- viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
- }// end function f_setHeadersGeneral
-
-
-
- /**
- *
- * @desc function for setting of component variables related to message header fields
- * (message type independent: CSeq, contact, via), function uses information from userprofile
- *
- * @param p_cSeq_s CSeq parameter
- * @param p_method method name for cSeq header field
- */
- function f_setHeadersACK() runs on SipComponent
- {
- // vc_requestUri.hostPort := vc_reqHostPort;
- if(vc_response.statusLine.statusCode >= 200 and vc_response.statusLine.statusCode <= 299 ) //ref. RFC3261 8.1.1.7 Via
- {
- vc_branch := c_branchCookie & f_getRndTag();
- }
- vc_via:={
- fieldName := VIA_E,
- viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
- }// end function f_setHeadersGeneral
-
- /**
- *
- * @desc setting of general and basic Bye header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersBYE(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "BYE"); // cseq, contact, branch, via
-
- //vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- f_addTagInTo(vc_to);
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersBYE
-
- /**
- *
- * @desc setting of general and basic CANCEL header fields
- * @param p_cSeq_s
- */
- function f_setHeadersCANCEL(inout CSeq p_cSeq_s) runs on SipComponent
- {
-
- p_cSeq_s.method := "CANCEL";
- //vc_branch := c_branchCookie & f_getRndTag();
- vc_via:={
- fieldName := VIA_E,
- viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
- }// end function f_setHeadersCANCEL
-
- /**
- *
- * @desc function sets header field for the next outgoing REGISTER message
- * @param p_cSeq_s CSeq parameter to be applied
- */
- function f_setHeaders_REGISTER(inout CSeq p_cSeq_s) runs on SipComponent
- {
- var SemicolonParam_List v_params;
-
- f_setHeadersGeneral(p_cSeq_s, "REGISTER"); // cseq, contact, branch, via
-
- vc_requestUri:=
- {
- scheme := c_sipScheme,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
- vc_callIdReg := vc_callId; //remember callId for de-registration
-
-
- vc_to := valueof(m_To(m_SipUrl_currDomain(vc_userprofile)));
- vc_cancel_To := vc_to;
- v_params := {{id:=c_tagId, paramValue:=f_getRndTag()}}
- vc_from := {fieldName := FROM_E,
- addressField :=vc_to.addressField,
- fromParams := v_params
- };
-
- if(not vc_firstREGISTER_sent)
- {
- v_params := {{id:=c_expiresId, paramValue:=c_shortRegistration}};
- vc_contact.contactBody.contactAddresses[0].contactParams := v_params;
- }
-
- vc_firstREGISTER_sent := true;//f_setHeaders_Register is called in deREGISTER function
-
- vc_authorization :=
- {
- fieldName := AUTHORIZATION_E,
- body := {f_calculatecCredentials_empty(vc_userprofile)}
- }
-
- vc_via_REG := vc_via;
- }// end function setHeaders_REGISTER
-
- /**
- *
- * @desc function sets via, cseq and authorization header for the next outgoing (protected) REGISTER
- * @verdict
- */
- function f_setHeaders_2ndREGISTER(inout CSeq p_cSeq_s) runs on SipComponent
- {
- var CommaParam_List v_challenge;
-
- //Increment CSeq sequence number
- p_cSeq_s.seqNumber := p_cSeq_s.seqNumber + 1;
- vc_cSeq := p_cSeq_s;
-
- vc_requestUri:=
- {
- scheme := c_sipScheme,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- //new branch tag due to different branch tag in new REGISTER method
- vc_branch := c_branchCookie & f_getRndTag();
-
- vc_via_REG :={
- fieldName := VIA_E,
- viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
-
- // Extract challenge and calculate credentials for a response.
- v_challenge := vc_response.msgHeader.wwwAuthenticate.challenge.digestCln;
-
-
- // Prepair right answer
- vc_authorization :=
- {
- fieldName := AUTHORIZATION_E,
- body := {f_calculatecCredentials(vc_userprofile, "REGISTER", v_challenge)}
- }
-
- }// end function f_setHeaders_2ndREGISTER
-
- /**
- *
- * @desc function sets via, cseq and authorization header for the next outgoing (protected) REGISTER
- * NO response in Authorization header to cause an error
- * @verdict
- */
- function f_setHeaders_2ndREGISTER_wo_response() runs on SipComponent
- {
- var CommaParam_List v_challenge;
-
- vc_branch := c_branchCookie & f_getRndTag();
-
- vc_via_REG :={
- fieldName := VIA_E,
- viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
-
- if(ischosen(vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge))
- // Extract challenge and calculate credentials for a response.
- {
- v_challenge := vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge.authParams;
- }
- else
- {
- v_challenge := vc_response.msgHeader.wwwAuthenticate.challenge.digestCln;
- }
-
- // Increment CSeq sequence number
- vc_cSeq.seqNumber := vc_cSeq.seqNumber + 1;
-
- // Prepair right answer
- vc_authorization :=
- {
- fieldName := AUTHORIZATION_E,
- body := {f_calculatecCredentials_wo_response(vc_userprofile, "REGISTER", v_challenge)}
- }
-
- }// end function f_setHeaders_2ndREGISTER_wo_response
-
- /**
- *
- * @desc function sets via, cseq and authorization header with different private name for the next outgoing (protected) REGISTER
- * @verdict
- */
- function f_setHeaders_2ndREGISTER_authorizationWithDifferentUserName() runs on SipComponent
- {
- var CommaParam_List v_challenge;
-
- vc_branch := c_branchCookie & f_getRndTag();
-
- vc_requestUri:=
- {
- scheme := c_sipScheme,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
-
- vc_via_REG :={
- fieldName := VIA_E,
- viaBody := {valueof(m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
-
- // Extract challenge and calculate credentials for a response.
- v_challenge := vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge.authParams;
-
- // Increment CSeq sequence number
- vc_cSeq.seqNumber := vc_cSeq.seqNumber + 1;
-
- // Prepair right answer
- vc_authorization :=
- {
- fieldName := AUTHORIZATION_E,
- body := {f_calculatecCredentialsAndChangeUserName(vc_userprofile, "REGISTER", v_challenge)}
- }
-
- }// end function f_setHeaders_2ndREGISTER_authorizationWithDifferentUserName
-
-
- /**
- *
- * @desc function sets header fields for the next outgoing REGISTER (de-registration)
- * @param p_cSeq_s cSeq to be used
- * @verdict
- */
- function f_setHeaders_deREGISTER(inout CSeq p_cSeq_s) runs on SipComponent
- {
- var SemicolonParam_List v_params;
-
- f_setHeadersGeneral(p_cSeq_s, "REGISTER"); // cseq, contact, branch, via
-
- vc_requestUri:=
- {
- scheme := c_sipScheme,
- userInfo := omit,
- hostPort := {host:=vc_userprofile.registrarDomain, portField:=omit},
- urlParameters := omit,
- headers := omit
- };
- vc_to := valueof(m_To(m_SipUrl_currDomain(vc_userprofile)));
- v_params := {{id:=c_tagId, paramValue:=f_getRndTag()}}
- vc_from := {fieldName := FROM_E,
- addressField :=vc_to.addressField,
- fromParams := v_params
- };
-
- vc_contact :=
- {
- fieldName := CONTACT_E,
- contactBody := {wildcard := "*" }
- };
- } // end function f_setHeaders_deREGISTER
-
-
- /**
- *
- * @desc setting of general and basic Invite header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersINVITE(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
-
- vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersINVITE
-
- /**
- *
- * @desc setting of general and basic Update header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersUPDATE(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "UPDATE"); // cseq, contact, branch, via
-
- vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersUPDATE
-
- /**
- *
- * @desc setting of general and basic Message header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersMESSAGE(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "MESSAGE"); // cseq, contact, branch, via
-
- vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersMESSAGE
-
- /**
- *
- * @desc setting of general and basic Notify header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersNOTIFY(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "NOTIFY"); // cseq, contact, branch, via
-
- //after SUBSCRIBE message callid shall be same
- //vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersNOTIFY
-
- /**
- *
- * @desc setting of general and basic Publish header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersPUBLISH(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "PUBLISH"); // cseq, contact, branch, via
-
- //after SUBSCRIBE message callid shall be same
- //vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersPUBLISH
-
- /**
- *
- * @desc function sets header field for the next outgoing SUBSCRIBE message
- * @param p_cSeq_s CSeq parameter to be applied
- */
- function f_setHeaders_SUBSCRIBE(inout CSeq p_cSeq_s) runs on SipComponent
- {
- var SemicolonParam_List v_params;
-
- f_setHeadersGeneral(p_cSeq_s, "SUBSCRIBE"); // cseq, contact, branch, via
-
- vc_requestUri:=valueof(m_SipUrl_currDomain(vc_userprofile));
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- vc_callId := {
- fieldName := CALL_ID_E,
- callid := f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr
- }
-
- vc_to := valueof(m_To(m_SipUrl_currDomain(vc_userprofile)));
- vc_cancel_To := vc_to;
- v_params := {{id := c_tagId, paramValue := f_getRndTag()}};
- vc_from := {
- fieldName := FROM_E,
- addressField := vc_to.addressField,
- fromParams := v_params
- };
-
- }// end function setHeaders_SUBSCRIBE
-
- /**
- *
- * @desc setting of general and basic Subscribe header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersSUBSCRIBE(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "SUBSCRIBE"); // cseq, contact, branch, via
-
- vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersMESSAGE
-
- /**
- *
- * @desc setting of general and basic REFER header fields
- * in additon to the addresses (To, From, ReqUri)
- * @param p_cSeq_s
- */
- function f_setHeadersREFER(inout CSeq p_cSeq_s) runs on SipComponent
- {
- f_setHeadersGeneral(p_cSeq_s, "REFER"); // cseq, contact, branch, via
-
- //vc_callId := { fieldName:=CALL_ID_E, callid:=f_getRndCallId(p_cSeq_s) & c_AT & vc_userprofile.currIpaddr };
-
- vc_cancel_To := vc_to;
- vc_caller_To := vc_to;
-
- vc_caller_From := vc_from;
-
- vc_reqHostPort := vc_requestUri.hostPort;
-
- }// end function f_setHeadersREFER
-
- /**
- *
- * @desc This function reads all necessary headers from the received REGISTER message and generate the tag for the answer
- * @param p_Request REGISTER that has been received
- */
- function f_setHeadersOnReceiptOfREGISTER(Request p_Request)
- runs on SipComponent {
-
- f_setHeadersOnReceiptOfRequest(p_Request);
-
- vc_callId := p_Request.msgHeader.callId;
- vc_caller_From := vc_from;
- f_addTagInTo(vc_to);
- vc_caller_To := vc_to;
- vc_requestUri := p_Request.requestLine.requestUri;
-
- vc_cancel_To := p_Request.msgHeader.toField;
-
- if (ispresent(p_Request.msgHeader.contact) and (not ischosen(p_Request.msgHeader.contact.contactBody.wildcard))) {
- vc_reqHostPort := f_getContactAddr(p_Request.msgHeader.contact.contactBody.contactAddresses[0]);
- }
-
- // update callee information and pick up tag if the call need to be canceled
- vc_callee_To := {fieldName := TO_E,
- addressField := vc_caller_From.addressField,
- toParams := vc_caller_From.fromParams};
-
- vc_callee_From := {fieldName := FROM_E,
- addressField := vc_caller_To.addressField,
- fromParams := vc_caller_To.toParams};
-
- if (ispresent(p_Request.msgHeader.authorization)) {
- vc_authorization := p_Request.msgHeader.authorization;
- };
-
- } // end f_setHeadersOnReceiptOfREGISTER
-
- /**
- *
- * @desc This function reads all necessary headers from the received SUBSCRIBE message and generate the tag for the answer
- * @param p_Request SUBSCRIBE that has been received
- */
- function f_setHeadersOnReceiptOfSUBSCRIBE(Request p_Request)
- runs on SipComponent {
-
- f_setHeadersOnReceiptOfRequest(p_Request);
-
- vc_callId := p_Request.msgHeader.callId;
- vc_caller_From := vc_from;
- f_addTagInTo(vc_to);
- vc_caller_To := vc_to;
- vc_requestUri := p_Request.requestLine.requestUri;
-
- vc_cancel_To := p_Request.msgHeader.toField;
-
- if (ispresent(p_Request.msgHeader.contact)) {
- vc_reqHostPort := f_getContactAddr(p_Request.msgHeader.contact.contactBody.contactAddresses[0]);
- }
-
- // update callee information and pick up tag if the call need to be canceled
- vc_callee_To := {fieldName := TO_E,
- addressField := vc_caller_From.addressField,
- toParams := vc_caller_From.fromParams};
-
- vc_callee_From := {fieldName := FROM_E,
- addressField := vc_caller_To.addressField,
- fromParams := vc_caller_To.toParams};
-
- } // end f_setHeadersOnReceiptOfSUBSCRIBE
-
- /**
- *
- * @desc function reads all necessary headers from
- * the received INVITE message and generate the tag for the answer
- * @param p_Request received INVITE message
- * @verdict
- */
- function f_setHeadersOnReceiptOfINVITE(Request p_Request) runs on SipComponent {
-
- f_setHeadersOnReceiptOfRequest(p_Request);
-
- vc_callId := p_Request.msgHeader.callId;
-
- vc_requestUri2 := p_Request.requestLine.requestUri;
-
- vc_cancel_To := p_Request.msgHeader.toField;
- f_addTagInTo(vc_to);
- vc_caller_From := vc_from;
- vc_caller_To := vc_to;
-
- if (ispresent(p_Request.msgHeader.contact)) {
- vc_reqHostPort :=
- f_getContactAddr(p_Request.msgHeader.contact.contactBody.contactAddresses[0]);
- vc_requestUri := f_getContactUri(p_Request.msgHeader.contact.contactBody.contactAddresses[0]);
- };
-
- // update callee information and pick up tag if the call need to be canceled
- vc_callee_To := {fieldName := TO_E,
- addressField := vc_caller_From.addressField,
- toParams := vc_caller_From.fromParams};
-
- vc_callee_From := {fieldName := FROM_E,
- addressField := vc_caller_To.addressField,
- fromParams := vc_caller_To.toParams};
-
- if (ispresent(p_Request.msgHeader.privacy)) {
- vc_privacy := p_Request.msgHeader.privacy;
- };
-
- if (ispresent(p_Request.messageBody)) {
- //cleaning of attributes before assignment
- if (ispresent(vc_sdp_remote.media_list))
- {
- var integer v_length := sizeof(vc_sdp_remote.media_list);
- for (var integer i:=0; i<v_length; i:=i+1)
- {
- if (ispresent(vc_sdp_remote.media_list[i].attributes))
- {
- vc_sdp_remote.media_list[i].attributes := omit ;
- }
- };
- }
-
- // save SDP if present
- if ( ischosen(p_Request.messageBody.sdpMessageBody))
- {
- vc_sdp_remote := p_Request.messageBody.sdpMessageBody;
- vc_sdp_remote_is_valid := true;
- f_prepare_SDP_answer();
- };
-
- // save XML if present
- if ( ischosen(p_Request.messageBody.xmlBody))
- {
- vc_xml_remote := p_Request.messageBody.xmlBody;
- }
-
- if ( ischosen(p_Request.messageBody.mimeMessageBody))
- {
-
- for (var integer j:=0; j<sizeof(p_Request.messageBody.mimeMessageBody.mimeEncapsulatedList); j:=j+1){
- if (match(p_Request.messageBody.mimeMessageBody.mimeEncapsulatedList[j].content_type,c_sdpAplication))
- {
- vc_sdp_remote := p_Request.messageBody.mimeMessageBody.mimeEncapsulatedList[j].mime_encapsulated_part.sdpMessageBody;
- vc_sdp_remote_is_valid := true;
- f_prepare_SDP_answer();
- };
- if (match(p_Request.messageBody.mimeMessageBody.mimeEncapsulatedList[j].content_type,c_xmlAplication))
- {
- vc_xml_remote := p_Request.messageBody.mimeMessageBody.mimeEncapsulatedList[j].mime_encapsulated_part.xmlBody;
- };
- }
- }
- };
-
- if (ispresent(p_Request.msgHeader.supported.optionsTags)) {
- for (var integer i := sizeof(p_Request.msgHeader.supported.optionsTags); i>0; i:=i-1)
- {
- if (p_Request.msgHeader.supported.optionsTags[i-1]=="100rel")
- { vc_supported_100rel := true };
- if (p_Request.msgHeader.supported.optionsTags[i-1]=="precondition")
- { vc_supported_precondition := true }
- }
- };
-
- } // end f_setHeadersOnReceiptOfINVITE
-
- /**
- *
- * @desc function reads header field of a received BYE message
- * @param p_Request received BYE
- */
- function f_setHeadersOnReceiptOfBYE(Request p_BYE_Request)
- runs on SipComponent
- {
-
- f_setHeadersOnReceiptOfRequest(p_BYE_Request);
- vc_callId := p_BYE_Request.msgHeader.callId;
-
- } // end f_setHeadersOnReceiptOfBYE
-
- /**
- *
- * @desc function reads header field from an incoming Request message
- * @param p_Request received Request message
- */
- function f_setHeadersOnReceiptOfRequest(Request p_Request) runs on SipComponent {
- vc_request := p_Request;
- vc_callId := p_Request.msgHeader.callId;
- vc_cSeq := p_Request.msgHeader.cSeq;
- vc_iut_CSeq := p_Request.msgHeader.cSeq;
- vc_from := p_Request.msgHeader.fromField;
- vc_caller_From := p_Request.msgHeader.fromField;
- vc_to := p_Request.msgHeader.toField;
- vc_caller_To := p_Request.msgHeader.toField;
- vc_via := p_Request.msgHeader.via;
- // update sent_label according to received via header field
- f_getViaReplyAddr(vc_via.viaBody, vc_sent_label);
-
- // Catch route
- vc_boo_recordRoute:=false;
-
- //add tag field into To header if tag is not present
- if (not(ispresent(p_Request.msgHeader.toField.toParams)))
- {
- vc_to.toParams := {{id := c_tagId, paramValue := f_getRndTag()}};
- vc_caller_To := vc_to;
- }
- if (ispresent(p_Request.msgHeader.recordRoute))
- {
- vc_boo_recordRoute:=true;
- vc_recordRoute := p_Request.msgHeader.recordRoute;
- }
- } // end f_setHeadersOnReceiptOfRequest
-
- /**
- *
- * @desc functions reads header fields from an incoming Response message
- * @param p_cSeq
- * @param p_response received response message
- * @verdict
- */
- function f_setHeadersOnReceiptOfResponse(inout CSeq p_cSeq, Response p_response) runs on SipComponent
- {
- var integer v_i, v_j, v_nbroute;
- var Contact v_contact; //only for local purpose
-
- vc_response := p_response;
- //vc_cSeq := p_cSeq; //must not save global c_seq because it can overwrite temporary cSeq
- vc_to :=p_response.msgHeader.toField;
- vc_from :=p_response.msgHeader.fromField;
- vc_caller_To := vc_to;
- vc_caller_From := vc_from;
-
- if (ispresent(p_response.msgHeader.contact))
- {
- v_contact := p_response.msgHeader.contact;
- if (ischosen(v_contact.contactBody.contactAddresses))
- {
- vc_reqHostPort := f_getContactAddr(v_contact.contactBody.contactAddresses[0]);
- vc_requestUri := f_getContactUri(v_contact.contactBody.contactAddresses[0]);
- }
- }
- else
- {
- if (ischosen(vc_to.addressField.nameAddr))
- {
- vc_reqHostPort := vc_to.addressField.nameAddr.addrSpec.hostPort;
- vc_requestUri := vc_to.addressField.nameAddr.addrSpec;
- }
- else
- {
- vc_reqHostPort := vc_to.addressField.addrSpecUnion.hostPort;
- vc_requestUri := vc_to.addressField.addrSpecUnion;
- }
- }
-
- vc_callee_To:={fieldName := TO_E,
- addressField := vc_caller_From.addressField,
- toParams := vc_caller_From.fromParams};
-
- vc_callee_From:= {fieldName := FROM_E,
- addressField := vc_caller_To.addressField,
- fromParams := vc_caller_To.toParams};
-
- vc_via:= p_response.msgHeader.via;
-
- // Route Management
- if (ispresent(p_response.msgHeader.recordRoute))
- {
- vc_recordRoute := p_response.msgHeader.recordRoute;
- v_nbroute := sizeof(vc_recordRoute.routeBody);
- // copy and reverse the order of the routes in route header
- for (v_i:=0; v_i<=(v_nbroute - 1); v_i:=v_i+1)
- {
- v_j:= v_nbroute - 1 - v_i;
- vc_route.routeBody[v_j]:=vc_recordRoute.routeBody[v_i];
- }
- vc_route.fieldName := ROUTE_E;
- vc_boo_recordRoute := true;
- vc_boo_route := true;
- }
- else
- {
- vc_boo_recordRoute := false;
- vc_boo_route := false;
- };
-
-
- // extentions due to new fields in PRACK and UPDATE messages
- if (ispresent(p_response.msgHeader.rSeq)) {
- vc_rAck :=
- { fieldName := RACK_E,
- responseNum := valueof(p_response.msgHeader.rSeq.responseNum),
- seqNumber := valueof(p_response.msgHeader.cSeq.seqNumber),
- method := valueof(p_response.msgHeader.cSeq.method)
- };
- };
-
- // extentions due to new HistoryInfo fields 180 or 200OK messages
- if (ispresent(p_response.msgHeader.historyInfo)) {
- vc_historyInfoList := valueof(p_response.msgHeader.historyInfo.historyInfoList);
- vc_history_is_valid := true
- }
- else {vc_history_is_valid := false};
-
- //sdpMessageBody answer
- if (ispresent(p_response.messageBody)) {
- if ( ischosen(p_response.messageBody.sdpMessageBody))
- {
- vc_sdp_remote := p_response.messageBody.sdpMessageBody;
- vc_sdp_remote_is_valid := true;
- }
-
- if ( ischosen(p_response.messageBody.xmlBody))
- {
- vc_xml_remote := p_response.messageBody.xmlBody;
- }
-
- if ( ischosen(p_response.messageBody.mimeMessageBody))
- {
-
- for (var integer j:=0; j<sizeof(p_response.messageBody.mimeMessageBody.mimeEncapsulatedList); j:=j+1){
- if (match(p_response.messageBody.mimeMessageBody.mimeEncapsulatedList[j].content_type,c_sdpAplication))
- {
- vc_sdp_remote := p_response.messageBody.mimeMessageBody.mimeEncapsulatedList[j].mime_encapsulated_part.sdpMessageBody;
- };
- if (match(p_response.messageBody.mimeMessageBody.mimeEncapsulatedList[j].content_type,c_xmlAplication))
- {
- vc_xml_remote := p_response.messageBody.mimeMessageBody.mimeEncapsulatedList[j].mime_encapsulated_part.xmlBody;
- };
- }
- }
- };
-
- }// end function f_setHeadersOnReceiptOfResponse
-
- /**
- *
- * @desc functions reads ServiceRoute header field from an incoming 200 Response message in registration
- * @param p_cSeq
- * @param p_response received response message
- */
- function f_getServiceRouteMapIntoRouteInRegistration(inout CSeq p_cSeq, Response p_response) runs on SipComponent
- {
- var integer v_i, v_j, v_nbroute;
- var ServiceRoute v_serviceRoute;
-
- // Route Management
- if (ispresent(p_response.msgHeader.serviceRoute))
- {
- v_serviceRoute := p_response.msgHeader.serviceRoute;
- v_nbroute := sizeof(v_serviceRoute.routeBody);
- // copy and reverse the order of the routes in route header
- for (v_i:=0; v_i<=(v_nbroute - 1); v_i:=v_i+1)
- {
- v_j:= v_nbroute - 1 - v_i;
- vc_route.routeBody[v_j]:=v_serviceRoute.routeBody[v_i];
- }
- vc_route.fieldName := ROUTE_E;
- vc_route_REG := vc_route;
- vc_boo_route := true;
- }
-
- }// end function f_getServiceRouteMapIntoRouteInRegistration
-
- /**
- *
- * @desc functions reads Route header field from an incoming Request message and generate RecordRoute
- * @param p_cSeq
- * @param p_request received request message
- */
- function f_getRouteMapIntoRecordRoute(inout CSeq p_cSeq, Request p_request) runs on SipComponent
- {
- var integer v_i, v_j, v_nbroute;
- var Route v_route;
-
- // Route Management
- if (ispresent(p_request.msgHeader.route))
- {
- v_route := p_request.msgHeader.route;
- v_nbroute := sizeof(v_route.routeBody);
- // copy and reverse the order of the routes in route header
- for (v_i:=0; v_i<=(v_nbroute - 1); v_i:=v_i+1)
- {
- v_j:= v_nbroute - 1 - v_i;
- vc_recordRoute.routeBody[v_j]:=v_route.routeBody[v_i];
- }
- vc_recordRoute.fieldName := RECORD_ROUTE_E;
-
- vc_boo_recordRoute := true;
- }
-
- }// end function f_getRouteMapIntoRecordRoute
-
-
-} // end group SetHeaders
-
-} // end group FieldOperations
-
-group SDPOperations{
-
- /**
- * @desc check if message body include SDP attribute (2nd parameter)
- * for any media
- *
- */
- function f_check_attribute(in SDP_Message p_sdp, in template SDP_attribute p_attribute) runs on SipComponent return boolean {
-
- if (ispresent(p_sdp.media_list)) {
- for (var integer j:=0; j<sizeof(p_sdp.media_list); j:=j+1){
- if (ispresent(p_sdp.media_list[j].attributes)) {
- for (var integer i:=0; i<sizeof(p_sdp.media_list[j].attributes); i:=i+1){
- if (match(p_sdp.media_list[j].attributes[i],p_attribute))
- {return(true);};
- };
- }
- };
- }
- if (ispresent(p_sdp.attributes)) {
- for (var integer j:=0; j<sizeof(p_sdp.attributes); j:=j+1){
- if (match(p_sdp.attributes[j],p_attribute)) {return(true);};
- };
- }
-
- return(false);
- }
-
- /**
- *
- * @desc identify an SDP direction attribute (session or first media attribute) in a SDP message and return its answer value
- * @param p_sdp the SDP message that has been received
- * @param p_attribute incoming SDP attribute that need to be used for the SDP direction (answer)
- * @return the new attribute (to be send out) derived from the incoming SDP value
- * @verdict
- */
- function f_get_attribute_answer(in SDP_Message p_sdp, in template SDP_attribute p_attribute) runs on SipComponent return SDP_attribute {
-
- var template SDP_attribute v_attribute := p_attribute;
-
- // check if the selected attribute is included in the SDP offer (session attributes)
- if (ispresent(p_sdp.attributes)) {
- for (var integer j:=0; j<sizeof(p_sdp.attributes); j:=j+1){
- if (match(p_sdp.attributes[j],p_attribute)) {v_attribute := p_sdp.attributes[j];};
- };
- }
-
- // check if the selected attribute is included in the SDP offer (any of the media attributes)
- if (ispresent(p_sdp.media_list)) {
- for (var integer j:=0; j<sizeof(p_sdp.media_list); j:=j+1){
- if (ispresent(p_sdp.media_list[j].attributes)) {
- for (var integer i:=0; i<sizeof(p_sdp.media_list[j].attributes); i:=i+1){
- if (match(p_sdp.media_list[j].attributes[i],p_attribute))
- {v_attribute := p_sdp.media_list[j].attributes[i];};
- };
- }
- };
- }
- select (valueof(v_attribute))
- {
- case (mw_attribute_sendonly) {return(valueof(m_attribute_recvonly));}
- case (mw_attribute_sendrecv) {return(valueof(m_attribute_sendrecv));}//MRO
- case (mw_attribute_inactive) {return(valueof(m_attribute_inactive));}//MRO
- case (mw_attribute_recvonly) {return(valueof(m_attribute_sendonly));}//MRO
- }
- return(valueof(m_attribute_sendrecv));//the default return value in case of missing attribute offer
- }
-
- /**
- * @desc check if message body include SDP bandwidth (2nd parameter)
- * either for the session or a media description
- */
- function f_check_bandwidth(in SDP_Message loc_sdp, in template SDP_bandwidth loc_bandw) runs on SipComponent return boolean {
-
- if (ispresent(loc_sdp.bandwidth)) {
- for (var integer j:=0; j<sizeof(loc_sdp.bandwidth); j:=j+1){
- if (match(loc_sdp.bandwidth[j],loc_bandw)) {return(true);};
- };
- };
- if (ispresent(loc_sdp.media_list)) {
- for (var integer j:=0; j<sizeof(loc_sdp.media_list); j:=j+1){
- if (ispresent(loc_sdp.media_list[j].bandwidth)) {
- for(var integer i:=0; i< sizeof(loc_sdp.media_list[j].bandwidth); i:=i+1) {
- if (match(loc_sdp.media_list[j].bandwidth[i],loc_bandw)) {
- return(true);};
- }
- }
- };
- };
-
- return(false);
- }
-
- /**
- * @desc check if message body include SDP media (2nd parameter)
- *
- */
- function f_check_media(in SDP_Message loc_sdp, in template SDP_media_desc loc_media) runs on SipComponent return boolean {
-
- if (ispresent(loc_sdp.media_list)) {
- for (var integer j:=0; j<sizeof(loc_sdp.media_list); j:=j+1){
- if (match(loc_sdp.media_list[j].media_field.transport,loc_media.media_field.transport) and
- match(loc_sdp.media_list[j].media_field.fmts,loc_media.media_field.fmts))
- {return(true);};
- };
- }
- return(false);
- }
-
- /**
- * @desc
- * check if message body include precondition mechanism (a=des and
- * a=curr) retrun true, else false
- * @param loc_sdp SDP message
- */
- function f_check_precondition(in SDP_Message loc_sdp) runs on SipComponent return boolean {
- if (f_check_attribute(loc_sdp, mw_attribute_des) or
- f_check_attribute(loc_sdp, mw_attribute_curr))
- {return(true);}
-
- return(false);
- }
-
-
- /**
- * @desc check if message body include SDP media direction return true, else false
- *
- */
- function f_check_media_direction(in SDP_Message loc_sdp) runs on SipComponent return boolean {
-
- if (f_check_attribute(loc_sdp, mw_attribute_sendonly) or
- f_check_attribute(loc_sdp, mw_attribute_recvonly) or
- f_check_attribute(loc_sdp, mw_attribute_sendrecv) or
- f_check_attribute(loc_sdp, mw_attribute_inactive))
- {return(true);}
-
- return(false);
- }
-
- /**
- * @desc copy media/attribute lines from remote to local SDP variable
- *
- */
- function f_check_SDP(integer loc_sdp, integer loc_codec) runs on SipComponent
- return boolean
- {
- var SDP_media_desc v_media := f_prepare_media(loc_sdp,loc_codec);
- log("log0");
- if (vc_sdp_remote.media_list[0].media_field.media != v_media.media_field.media)
- { log("log1"); return false };
- if (vc_sdp_remote.media_list[0].media_field.transport != v_media.media_field.transport)
- { log("log2"); return false };
- if (vc_sdp_remote.media_list[0].media_field.fmts != v_media.media_field.fmts)
- { log("remote:",vc_sdp_remote.media_list[0].media_field.fmts,"expect:",v_media.media_field.fmts); return false };
-
- return true
- }
-
- /**
- * @desc replace the first curr media attribute with the given value.
- * @param p_sdp SDP message to modify
- * @param p_curr new curr attribute
- */
- function f_replace_curr_attribute(inout SDP_Message p_sdp, in SDP_attribute_curr p_curr) {
- if(ispresent(p_sdp.media_list)) {
- var integer mn := sizeof(p_sdp.media_list[0].attributes);
- for(var integer i := 0; i<=mn; i := i+1) {
- if(ischosen(p_sdp.media_list[0].attributes[i].curr)){
- p_sdp.media_list[0].attributes[i].curr := p_curr;
- i:=mn;
- }
- }
- }
- }
-
- /**
- * @desc append new media attribute to the first media description.
- * @param p_sdp SDP message to modify
- * @param p_att SDP attribute to appand
- */
- function f_append_media_attribute(inout SDP_Message p_sdp, in SDP_attribute p_att) {
- if(ispresent(p_sdp.media_list)) {
- var integer mn := sizeof(p_sdp.media_list[0].attributes);
- p_sdp.media_list[0].attributes[mn] := p_att;
- }
- }
-
-
- /**
- * @desc append new media to the existing media list in SDP
- *
- */
- function f_append_media(inout SDP_Message loc_SDP, in template SDP_media_desc loc_media)
- {
- var integer mn := sizeof(loc_SDP.media_list);
- loc_SDP.media_list[mn] := valueof(loc_media);
- }
-
- /**
- * @desc repare media/attribute lines
- *
- */
- function f_prepare_media(integer loc_sdp, integer loc_codec) runs on SipComponent
- return SDP_media_desc
- {
- var charstring v_codecs[32] := {
- "PCMU/8000", "GSM/8000", "G723/8000", "DVI4/8000",
- "DVI4/16000", "LPC/8000", "PCMA/8000", "G722/8000",
- "L16/44100/2", "L16/44100", "QCELP/8000", "CN/8000",
- "MPA/90000", "G728/8000", "DVI4/11025", "DVI4/22050",
- "G729/8000", "G726-40/8000", "G726-32/8000", "G726-24/8000",
- "G726-16/8000", "G726D/8000", "G726E/8000", "GSM-EFR/8000",
- "CelB/90000", "JPEG/90000", "Nv/90000", "H261/90000",
- "MPV/90000", "MP2T/90000", "H263/90000", "H263-1998/90000"
- }
- var SDP_media_desc v_media :=
- {
- media_field := {
- media := "audio",
- ports := {
- port_number := 10000,
- num_of_ports:=omit },
- transport := "RTP/AVP",
- fmts := { "0" }
- }, //m=audio 8500 RTP/AVP 0
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := omit
- };
-
- if (32<loc_codec or loc_codec<1) {
- log("Unexpected SDP variant");
- setverdict(inconc);
- return (v_media)}
-
- if (loc_sdp == 1) {}
- else if (loc_sdp == 2) {
- v_media.media_field.fmts := {PX_SIP_SDP_dyn}; //{ "98", "0" };
- v_media.attributes := {{
- rtpmap := { attr_value := PX_SIP_SDP_dyn & " " & v_codecs[loc_codec-1] } // PX_SIP_SDP_dyn := 98
- }}
- } else if (loc_sdp == 3) {
- v_media.media_field.fmts := { "8" }
- } else if (loc_sdp == 4) {
- v_media.media_field.fmts := { "99", "8" };
- v_media.attributes := {{
- rtpmap := { attr_value := "99 " & v_codecs[loc_codec-1] }
- }}
- } else if (loc_sdp == 5) {
- v_media.media_field.media := "image";
- v_media.media_field.transport := "udptl";
- v_media.media_field.fmts := { "t38" }
- } else if (loc_sdp == 6) {
- v_media.media_field.media := "image";
- v_media.media_field.transport := "tcptl";
- v_media.media_field.fmts := { "t38" }
- } else {
- log("Unexpected SDP variant"); setverdict(inconc)
- };
-
- return (v_media);
- }
-
- /**
- * @desc repare media/attribute lines
- *
- */
- function f_prepare_SDP(integer loc_sdp, integer loc_codec) runs on SipComponent
- {
-
- vc_sdp_local.media_list := {f_prepare_media(loc_sdp,loc_codec)};
- }
-
- /**
- *
- * @desc function that copy media/attribute lines from remote to local SDP variable
- */
- function f_prepare_SDP_answer() runs on SipComponent
- {
- var integer mn, cn := 0, i, j, k :=0;
- var charstring v_PT, v_rtpmap := "";
- var template charstring v_mypat := pattern "[ \t]#(0,)([\d]+)*";
- var SDP_attribute_list v_mediaAttributes := {};
- //increase session version
- vc_sdp_local.origin.session_version := int2str(str2int(vc_sdp_remote.origin.session_version)+1);
- // if more than one codec, select the firs one
- mn:= sizeof(vc_sdp_remote.media_list);
- for (i :=0; i < mn; i := i+1)
- {
- //for every single media
- if (ispresent(vc_sdp_remote.media_list[i].attributes))
- {
- cn := sizeof(vc_sdp_remote.media_list[i].attributes);
- };
- if (sizeof(vc_sdp_remote.media_list[i].media_field.fmts)>0)
- {
- // select the first one
- v_PT := vc_sdp_remote.media_list[i].media_field.fmts[0];
- vc_sdp_local.media_list[i].media_field.fmts := {v_PT};
- for (j :=0; j<cn; j:=j+1)
- {
- if (ischosen(vc_sdp_remote.media_list[i].attributes[j].rtpmap))
- {
- if (v_PT == regexp(vc_sdp_remote.media_list[i].attributes[j].rtpmap.attr_value, v_mypat, 0))
- {
- v_rtpmap := vc_sdp_remote.media_list[i].attributes[j].
- rtpmap.attr_value;
- v_mediaAttributes[k] := {rtpmap := {attr_value := v_rtpmap}};
- k := k+1;
- } // else line is not copied
- }
- else
- {
- // simple copy of attribute
- v_mediaAttributes[k] := vc_sdp_remote.media_list[i].attributes[j];
- k := k+1;
- }
- }
- vc_sdp_local.media_list[i].attributes := v_mediaAttributes;
-
- if (ispresent(vc_sdp_local.media_list[i].attributes))
- {
- cn := sizeof(vc_sdp_local.media_list[i].attributes);
- for (j :=0; j<cn; j:=j+1)
- {
- // simplified handling of status attributes (copy/keep status from peer):
- // a) copy/keep SDP_attribute_curr (invert tags if applicable)
- if (ischosen(vc_sdp_local.media_list[i].attributes[j].curr))
- {
- // invert local/remote status tags
- if (vc_sdp_local.media_list[i].attributes[j].curr.statusType == "local")
- {vc_sdp_local.media_list[i].attributes[j].curr.statusType := "remote"};
- if (vc_sdp_local.media_list[i].attributes[j].curr.statusType == "remote")
- {vc_sdp_local.media_list[i].attributes[j].curr.statusType := "local"};
- // invert send/recv direction tags
- if (vc_sdp_local.media_list[i].attributes[j].curr.direction == "send")
- {vc_sdp_local.media_list[i].attributes[j].curr.direction := "recv"};
- if (vc_sdp_local.media_list[i].attributes[j].curr.direction == "recv")
- {vc_sdp_local.media_list[i].attributes[j].curr.direction := "send"};
- }
- // b) copy/keep SDP_attribute_des (keep strength, invert tags if applicable)
- else if (ischosen(vc_sdp_local.media_list[i].attributes[j].des))
- {
- // invert local/remote status tags
- if (vc_sdp_local.media_list[i].attributes[j].des.statusType == "local")
- {vc_sdp_local.media_list[i].attributes[j].des.statusType := "remote"};
- if (vc_sdp_local.media_list[i].attributes[j].des.statusType == "remote")
- {vc_sdp_local.media_list[i].attributes[j].des.statusType := "local"};
- // invert send/recv direction tags
- if (vc_sdp_local.media_list[i].attributes[j].des.direction == "send")
- {vc_sdp_local.media_list[i].attributes[j].des.direction := "recv"};
- if (vc_sdp_local.media_list[i].attributes[j].des.direction == "recv")
- {vc_sdp_local.media_list[i].attributes[j].des.direction := "send"};
- }
- // c) simplification: assume no SDP_attribute_conf
- else if (ischosen(vc_sdp_local.media_list[i].attributes[j].conf))
- {
- // todo: handle SDP_attribute_conf
- }
- }
- };
-
- }
- }
- // add handling of prenegotiation, change ports if required etc.
- //if prenegotiation...
- }
-
- /**
- * @desc reject SDP offer by setting media ports to 0
- *
- */
- function f_reject_SDP_offer() runs on SipComponent
- {
- var integer mn, i;
- f_copy_SDP(); // TO BE DONE with more details!
- //increase session version
- vc_sdp_local.origin.session_version := int2str(str2int(vc_sdp_local.origin.session_version)+1);
- // if more than one codec, select the firs one
- mn:= sizeof(vc_sdp_local.media_list);
- for (i :=0; i < mn; i := i+1)
- {
- vc_sdp_local.media_list[i].media_field.ports := {0, omit};
- vc_sdp_local.media_list[i].attributes := omit; //{};
- };
- }
-
- /**
- *
- * @desc copies SDP message elements from remote to local component variable:
- * - bandwidth
- * - session version (will be incremented)
- * - media list
- * modify the direction attribute of an SDP media list entry within an SDP message (vc_sdp_local)
- * @param p_medianum list position number of the media (if value 0 identifies first media list element)
- * @param p_direction the new direction attribute to be included in the media entry
- * @verdict
- */
- function f_SIP_modMediaDirection(integer p_medianum, template SDP_attribute p_direction) runs on SipComponent
- {
- var boolean v_set_direction; // flag indicates if direction attribute has been modified
- var integer v_mn := 0; // length of media list (number of entries)
- var integer v_cn := 0; // number of attributes of a media entry
- var integer i, j, k := 0;
- var SDP_attribute_list v_mediaAttributes := {}; // collect the media attributes (to be assigned at end of function)
-
- f_copy_SDP(); // copy SDP session bandwidth and media list from remote to local component variable
-
- // increment session version
- vc_sdp_local.origin.session_version := int2str(str2int(vc_sdp_local.origin.session_version)+1);
-
- // if more than one codec, select the first one
- v_mn:= sizeof(vc_sdp_local.media_list);
-
- if (p_medianum == 0) //specific media requested
- {
- p_medianum := 1; // start checking from first media
- };
- if (p_medianum > 0) //specific media requested
- {
- if (not(p_medianum > v_mn))
- {v_mn := p_medianum}
- };
-
- // handling of media list elements
- for (i :=0; i < v_mn; i := i+1)
- {
- v_cn := 0; // initialize the number of attributes of the media list entry
-
- if (ispresent(vc_sdp_local.media_list)) //media_list is optional
- {
-// log("vc_sdp_local.media_list[i] ",vc_sdp_local.media_list[i]);
- if (ispresent(vc_sdp_local.media_list[i].attributes))
- {
- v_cn := sizeof(vc_sdp_local.media_list[i].attributes);
- };
-
- v_set_direction := false;
-
- //if (sizeof(vc_sdp_local.media_list[i].media_field.fmts)>1)
- // select the first one
- for (j :=0; j<v_cn; j:=j+1)
- {
- if (ischosen(vc_sdp_local.media_list[i].attributes[j].recvonly)
- or ischosen(vc_sdp_local.media_list[i].attributes[j].sendonly)
- or ischosen(vc_sdp_local.media_list[i].attributes[j].inactive)
- or ischosen(vc_sdp_local.media_list[i].attributes[j].sendrecv))
- {
- v_mediaAttributes[k] := valueof(p_direction);
- v_set_direction := true;
- }
- else // non-direction attributes will be copied
- {
- v_mediaAttributes[k] := vc_sdp_local.media_list[i].attributes[j];
- k := k+1;
- }
- }
-
- if (not v_set_direction)
- { v_mediaAttributes[k] := valueof(p_direction)};
- vc_sdp_local.media_list[i].attributes := v_mediaAttributes;
-
- // }
- }
- }
- // add handling of prenegotiation, change ports if required etc.
- //if prenegotiation...
- }
-
- /**
- * @desc modify session and media attributes direction
- *
- */
- function f_SIP_modSessionDirection(template SDP_attribute p_direction) runs on SipComponent
- {
- var boolean v_set_direction := false;
- var integer v_mn:= 0, i:=0;
-
- if (ispresent(vc_sdp_local.attributes))
- { v_mn:= sizeof(vc_sdp_local.attributes);
-
- for (i :=0; i < v_mn; i := i+1)
- {//for every single attribute (that is not omit)
- if (ischosen(vc_sdp_local.attributes[i].recvonly)
- or ischosen(vc_sdp_local.attributes[i].sendonly)
- or ischosen(vc_sdp_local.attributes[i].inactive)
- or ischosen(vc_sdp_local.attributes[i].sendrecv))
- {
- vc_sdp_local.attributes[i] := valueof(p_direction);
- v_set_direction := true;
- }
- }
- if (not v_set_direction) // if not sent before
- {
- vc_sdp_local.attributes[v_mn] := valueof(p_direction);
- };
- };
- }
-
- /**
- * @desc c
- *
- */
-
-
- /*
- *
- * @desc check (from remote) and set (local) the session/media attribute lines on directions
- * @param p_direction_in incoming SDP attribute that need to be checked
- * @param p_direction_out SDP attribute that should be included in the SDP answer (to be returned to peer)
- * @return
- * @verdict
- */
- function f_SIP_checksetSDPreqDirection(template SDP_attribute p_direction_in, template SDP_attribute p_direction_out) runs on SipComponent
- { var template SDP_attribute v_direction_out := p_direction_out;
- // check incoming SDP attribute
- if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,p_direction_in)))
- {setverdict(fail);};
- if (match(omit,p_direction_out))//not isvalue(v_direction_out))//MRO
- {v_direction_out := f_get_attribute_answer(vc_request.messageBody.sdpMessageBody, p_direction_in);}
- f_SIP_modMediaDirection(1, v_direction_out); // handling of attribute in media description
- f_SIP_modSessionDirection(v_direction_out); // handling of attribute in session
- }
-
- /*
- *
- * @desc check (from remote) and set (local)the session/media attribute lines on directions
- * @param p_direction_in attribute to be check
- * @param p_direction_out attrubyte to be
- * @return
- * @verdict
- */
- function f_SIP_checkSDPrespDirection(template SDP_attribute p_direction_in) runs on SipComponent
- {
- // check incoming SDP attribute
- if (not (ispresent(vc_response.messageBody) and f_check_attribute(vc_response.messageBody.sdpMessageBody,p_direction_in)))
- {setverdict(fail);};
- }
-
- /**
- * @desc check media/attribute lines from remote
- *
- */
- function f_SIP_checkMediaDirection(integer p_medianum, template SDP_attribute p_direction) runs on SipComponent
- return boolean
- {
- var integer v_mn, v_cn := 0, i, j;
- var boolean v_result := false;
- //increase session version
- vc_sdp_remote.origin.session_version := int2str(str2int(vc_sdp_remote.origin.session_version)+1);
- // if more than one codec, select the firs one
- v_mn:= sizeof(vc_sdp_remote.media_list);
- if (p_medianum == 0) //specific media requested
- {
- p_medianum := 1; // start checking from first media
- };
- if (p_medianum > 0) //specific media requested
- {
- if (p_medianum > v_mn) {return false}
- else {v_mn := p_medianum}
- };
- for (i :=p_medianum-1; i < v_mn; i := i+1)
- {
- //for every single media
- if (ispresent(vc_sdp_remote.media_list[i].attributes))
- {
- v_cn := sizeof(vc_sdp_remote.media_list[i].attributes);
- log (v_cn);
- };
- if (sizeof(vc_sdp_remote.media_list[i].attributes)>0)
- {
- // select the first one
- log(vc_sdp_remote.media_list[i].attributes);
- for (j :=0; j<sizeof(vc_sdp_remote.media_list[i].attributes); j:=j+1)
- {
- log(vc_sdp_remote.media_list[i].attributes[j]);
- if (ischosen(vc_sdp_remote.media_list[i].attributes[j].recvonly)
- or ischosen(vc_sdp_remote.media_list[i].attributes[j].sendonly)
- or ischosen(vc_sdp_remote.media_list[i].attributes[j].inactive)
- or ischosen(vc_sdp_remote.media_list[i].attributes[j].sendrecv))
- {
- if (match(vc_sdp_remote.media_list[i].attributes[j],p_direction))
- { v_result := true; }
- else { return false; }
- }
-
- //v_result := true; // TODO This is a shortcut since direction attributes are not decoded
- }
- }
- }
- return v_result
- }
-
- /**
- * @desc copy media/attribute lines from remote to local SDP variable
- *
- */
- function f_copy_SDP() runs on SipComponent
- {
- if (ispresent(vc_sdp_remote.bandwidth))
- {vc_sdp_local.bandwidth := vc_sdp_remote.bandwidth}
- else {vc_sdp_local.bandwidth := {}};
-
- if (ispresent(vc_sdp_remote.media_list))
- {
- // // cleaning of media before assignment
- // if (ispresent(vc_sdp_local.media_list))
- // {
- // for (var integer i:=0; i<sizeof(vc_sdp_local.media_list); i:=i+1)
- // {
- // vc_sdp_local.media_list[i] := omit ;
- // }
- // };
- vc_sdp_local.media_list := vc_sdp_remote.media_list;
- }
- }
-}//end group SDPOperations
-
-group AwaitingMessage {
-
- /**
- *
- * @desc Function for time delay
- */
- function f_awaitingDelayTimer(float p_delay) runs on SipComponent
- {
- tc_tDelay.start(p_delay);
- alt
- {
- [] tc_tDelay.timeout
- {
- setverdict (pass);
- }
- }
- } //end f_awaitingDelayTimer
-
- /**
- *
- * @desc Function waiting for any MSG -request/response
- */
- function f_awaitingAnyPassOnTimeout() runs on SipComponent
- {
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive //TAU error if expect (*)
- {
- tc_wait.stop;
- vc_boo_response:=true;
- vc_boo_request:=true;
- //setverdict(pass)
- }
- [] tc_wait.timeout
- {
- vc_boo_response:=false;
- vc_boo_request:=false;
- //setverdict (pass)
- }
- }
- } //end f_awaitingResponsePassOnTimeout
-
- /**
- *
- * @desc Function waiting for no MSG -request/response
- */
- function f_awaitingNonePassOnTimeout() runs on SipComponent
- {
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] tc_wait.timeout
- {
- setverdict (pass);
- }
- }
- } //end f_awaitingResponsePassOnTimeout
-
- /**
- *
- * @desc function awaits REGISTER
- * @param p_register expected REGISTER request
- */
- function f_awaitingREGISTER(in template REGISTER_Request p_register) runs on SipComponent
- {
- var Request v_request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_register)-> value v_request sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfREGISTER(v_request);
- }
- [] tc_wait.timeout
- {
- setverdict (fail);
- f_componentStop();
- }
- }
- }
-
- /**
- *
- * @desc function awaits SUBSCRIBE
- * @param p_register expected SUBSCRIBE request
- */
- function f_awaitingSUBSCRIBE(in template SUBSCRIBE_Request p_subscribe) runs on SipComponent
- {
- var Request v_request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_subscribe)-> value v_request sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfSUBSCRIBE(v_request);
- }
- }
- }
-
- /**
- *
- * @desc function awaits REGISTER and sends a 200 OK response
- * @param p_reply flag used to avoid the 200OK response sending
- */
- function f_awaitingREGISTER_sendReply(in template REGISTER_Request p_register, in boolean p_reply) runs on SipComponent
- {
- var Request v_request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_register)-> value v_request sender vc_sent_label
- {
- tc_wait.stop;
- vc_request := v_request;
- f_setHeadersOnReceiptOfREGISTER(v_request);
- //Answer to the Request
- if (p_reply) {f_send200OK();};
- }
-
- [] tc_wait.timeout
- {
- setverdict (fail);
- f_componentStop();
- }
- }
- }
-
-
- /**
- *
- * @desc Function waiting for a 200 OK response
- * @param p_cSeq_s current cSeq expectation
- */
- function f_awaitingOkResponse(inout CSeq p_cSeq_s) runs on SipComponent
- {
-
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callId, p_cSeq_s)) -> value vc_response
- {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
- setverdict(pass)
- }
- }
- } //end awaitingOkResponse
-
- /**
- *
- * @desc Function waiting for a response
- * @param p_Response expected response message
- */
- function f_awaitingResponse(in template Response p_Response) runs on SipComponent
- {
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (p_Response) -> value vc_response
- {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
- //setverdict(pass)
- }
- }
- } //end f_awaitingResponse
-
- /**
- *
- * @desc Function waiting for a response and send ACK on FailureResponses 4xx,5xx,6xx
- * @param p_Response expected response message
- */
- function f_awaitingResponseSendACK(in template Response p_Response) runs on SipComponent
- {
- tc_resp.start(PX_SIP_TRESP);
- alt {
- [] SIPP.receive (p_Response) -> value vc_response {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
- LibSip_Steps.f_setHeadersACK();
- f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));
- setverdict(pass);
- }
- }
- } //end f_awaitingResponse
-
- /**
- *
- * @desc Function waiting for a response
- * @param p_Response expected response message
- */
- function f_awaitingResponsePassOnTimeout(in template Response p_Response) runs on SipComponent
- {
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (p_Response) -> value vc_response
- {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
- vc_boo_response:=true;
- //setverdict(pass)
- }
- [] tc_resp.timeout
- {
- vc_boo_response:=false;
- //setverdict (pass)
- }
- }
- } //end f_awaitingResponsePassOnTimeout
-
- /**
- * @desc await INFO request
- * reply with 200 OK
- */
- function f_awaitingINFO_sendReply(in template INFO_Request p_info) runs on SipComponent
- {
- var INFO_Request v_request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_info)-> value v_request sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_request);
- //Answer to the INFO
- f_send200OK();
- }
- }
- } // end of f_awaitingINFO_sendReply
-
- /**
- *
- * @desc function awaiting for an incoming INVITE
- * @param p_request expected message
- */
- function f_awaitingINVITE(template INVITE_Request p_request) runs on SipComponent
- {
- var INVITE_Request v_INVITE_Request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_request) -> value v_INVITE_Request sender vc_sent_label
- {
- tc_wait.stop;
- vc_ignore_invite := true;
- vc_first_recv:= true; // communication has started
- f_setHeadersOnReceiptOfINVITE(v_INVITE_Request);
- SIPP.send(m_Response_Base(c_statusLine100, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)) to vc_sent_label;
- }
- }
- } //end f_awaitingINVITE
-
- /**
- *
- * @desc function awaiting for an incoming INVITE
- * @param p_request expected message
- */
- function f_awaitingINVITE_No100Response(template INVITE_Request p_request) runs on SipComponent
- {
- var INVITE_Request v_INVITE_Request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_request) -> value v_INVITE_Request sender vc_sent_label
- {
- tc_wait.stop;
- vc_ignore_invite := true;
- vc_first_recv:= true; // communication has started
- f_setHeadersOnReceiptOfINVITE(v_INVITE_Request);
- //SIPP.send(m_Response_Base(c_statusLine100, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)) to vc_sent_label;
- }
- }
- } //end f_awaitingInviteRequest
-
- /**
- *
- * @desc function awaiting for an incoming INVITE
- * @param p_request expected message
- */
- function f_awaitingINVITE_PassOnTimeout(template INVITE_Request p_request) runs on SipComponent
- {
- var INVITE_Request v_INVITE_Request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_request) -> value v_INVITE_Request sender vc_sent_label
- {
- tc_wait.stop;
- vc_ignore_invite := true;
- vc_first_recv:= true; // communication has started
- vc_boo_request := true;
- f_setHeadersOnReceiptOfINVITE(v_INVITE_Request);
- SIPP.send(m_Response_Base(c_statusLine100, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)) to vc_sent_label;
- }
- []tc_wait.timeout
- {
- vc_boo_request := false;
- }
- }
- } //end f_awaitingInviteRequest
-
- /**
- *
- * @desc function awaiting ACK request
- */
- function f_awaitingACK(in template ACK_Request p_ACK) runs on SipComponent
- {
- var Request v_ACK_Request;
- tc_ack.start(PX_SIP_TACK);
-
- alt
- {
- [] SIPP.receive(p_ACK) -> value v_ACK_Request
- {
- tc_ack.stop;
- }
- }
- } //end f_awaitingAckRequest
-
- /**
- *
- * @desc function awaiting BYE and sending 200OK response
- * @param p_BYE expected BYE
- */
- function f_awaitingBYE(in template BYE_Request p_BYE) runs on SipComponent
- {
- var BYE_Request v_BYE_Request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_BYE) -> value v_BYE_Request sender vc_sent_label
- {
- tc_wait.stop;
- vc_ignore_bye:= true;
- f_setHeadersOnReceiptOfBYE(v_BYE_Request);
- //f_send200OK();
- }
- }
- } // end f_awaitingBYE
-
- /**
- *
- * @desc function awaiting BYE and sending 200OK response
- * @param p_BYE expected BYE
- */
- function f_awaitingBYE_sendReply
- (in template BYE_Request p_BYE) runs on SipComponent
- {
- var BYE_Request v_BYE_Request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_BYE) -> value v_BYE_Request sender vc_sent_label
- {
- tc_wait.stop;
- vc_ignore_bye:= true;
- f_setHeadersOnReceiptOfBYE(v_BYE_Request);
- f_send200OK();
- }
- }
- } // end f_awaitingBYE_sendReply
-
- /**
- *
- * @desc function awaiting BYE and sending 200OK response
- * @param p_BYE expected BYE
- */
- function f_awaitingBYE_sendReply_PassOnTimeout(in template BYE_Request p_BYE) runs on SipComponent
- {
- var BYE_Request v_BYE_Request;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_BYE) -> value v_BYE_Request sender vc_sent_label
- {
- tc_wait.stop;
- vc_ignore_bye:= true;
- vc_boo_request := true;
- f_setHeadersOnReceiptOfBYE(v_BYE_Request);
- f_send200OK();
- }
- [] tc_wait.timeout
- {
- vc_boo_request := false;
- }
- }
- } // end f_awaitingBYE_sendReply_PassOnTimeout
-
- /**
- *
- * @desc function awaiting CANCEL
- * @param p_CANCEL expected CANCEL
- */
- function f_awaitingCANCEL(in template CANCEL_Request p_CANCEL) runs on SipComponent
- {
- var CANCEL_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- []SIPP.receive (p_CANCEL) -> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- }
- }
- } // end f_awaitingCANCEL
- /**
- * @desc await MESSAGE request
- */
- function f_awaitingMESSAGE(in template MESSAGE_Request p_MSG) runs on SipComponent
- {
- var MESSAGE_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- }
- [] SIPP.receive(mw_MESSAGE_Request_Base)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- log("Received MESSAGE not as expected!");
- setverdict (fail);
- }
- }
- } // end of f_awaitingMESSAGE
-
- /**
- * @desc await MESSAGE request
- * reply with 200 OK
- */
- function f_awaitingMESSAGE_sendReply() runs on SipComponent
- {
- var MESSAGE_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(mw_MESSAGE_Request_Base)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- //Answer to the MESSAGE
- f_send200OK();
- }
- }
-
- } // end of f_awaitingMESSAGE_sendReply
-
- /**
- * @desc await MESSAGE request
- */
- function f_awaitingMESSAGE_sendReply_PassOnTimeout(in template MESSAGE_Request p_MSG) runs on SipComponent
- {
- var MESSAGE_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- //Answer to the MESSAGE
- //f_send200OK();
- vc_boo_request := true;
- f_send200OK();
- //setverdict (pass);
- }
- [] tc_wait.timeout
- {
- vc_boo_request := false;
- //setverdict (pass);
- }
- }
- } // end of f_awaitingMESSAGE_PassOnTimeout
-
- /**
- * @desc await NOTIFY request
- * reply with 200 OK
- */
- function f_awaitingNOTIFY_sendReply(in template NOTIFY_Request p_MSG) runs on SipComponent
- {
- var NOTIFY_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_getRouteMapIntoRecordRoute(vc_cSeq, v_MSG);
- f_setHeadersOnReceiptOfRequest(v_MSG);
- //Answer to the NOTIFY
- f_send200OK();
- }
- }
- } // end of f_awaitingNOTIFY_sendReply
-
- /**
- * @desc await PRACK request
- * reply with 200 OK
- */
- function f_awaitingPRACK_sendReply(in template PRACK_Request p_MSG) runs on SipComponent
- {
- var PRACK_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- //Answer to the PRACK
- f_send200OK();
- }
- }
-
- } // end of f_awaitingPRACK_sendReply
-
- /**
- * @desc await PUBLISH request
- * reply with 200 OK
- */
- function f_awaitingPUBLISH_sendReply(in template PUBLISH_Request p_MSG) runs on SipComponent
- {
- var PUBLISH_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- //Answer to the PUBLISH
- f_send200OK();
- }
- }
-
- } // end of f_awaitingPUBLISH_sendReply
-
- /**
- * @desc await UPDATE request
- */
- function f_awaitingUPDATE(in template UPDATE_Request p_MSG) runs on SipComponent
- {
- var UPDATE_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- }
- }
- } // end of f_awaitingUPDATE
-
- /**
- * @desc await UPDATE request
- * reply with 200 OK
- */
- function f_awaitingUPDATE_sendReply(in template UPDATE_Request p_MSG) runs on SipComponent
- {
- var UPDATE_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- //Answer to the UPDATE
- f_send200OK();
- }
- }
-
- } // end of f_awaitingUPDATE_sendReply
-
-
- /**
- * @desc await REFER request
- */
- function f_awaitingREFER(in template REFER_Request p_MSG) runs on SipComponent
- {
- var REFER_Request v_MSG;
-
- tc_wait.start(PX_SIP_TWAIT);
- alt
- {
- [] SIPP.receive(p_MSG)-> value v_MSG sender vc_sent_label
- {
- tc_wait.stop;
- f_setHeadersOnReceiptOfRequest(v_MSG);
- }
- }
- } // end of f_awaitingUPDATE
-
-} // end AwaitingMessage
-
-group SendMessage {
-
- /**
- *
- * @desc send ACK message, update the route and recordRoute header fields depending on boolean flags
- * @param p_request template of the message to be sent
- */
- function f_SendACK(template ACK_Request p_request) runs on SipComponent
- {
- //p_request.msgHeader.route := f_route(); // update the route header field depending on vc_boo_route
- // n/a p_request.msgHeader.recordRoute := f_recordroute(); // update the route header field depending on vc_boo_route
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send BYE message, update the route and recordRoute header fields depending on boolean flags
- * @param p_request template of the message to be sent
- */
- function f_SendBYE(template BYE_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send CANCEL message
- * @param p_request template of the message to be sent
- */
- function f_SendCANCEL(template CANCEL_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send INFO message
- * @param p_request template of the message to be sent
- */
- function f_SendINFO(template INFO_Request p_request) runs on SipComponent
- {
- f_setHeadersGeneral(vc_cSeq, "INFO"); // cseq, contact, branch, via
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send INVITE message
- * @param p_request template of the message to be sent
- */
- function f_SendINVITE(template INVITE_Request p_request) runs on SipComponent
- {
- vc_requestFor407 := valueof(p_request);
- SIPP.send(p_request) to vc_sent_label;
- if(PX_SIP_INVITE_AUTHENTICATION_ENABLED) {a_altstep_401or407();};
- }
-
- /**
- *
- * @desc send PRACK message
- * @param p_request template of the message to be sent
- */
- function f_SendPRACK() runs on SipComponent
- {
- f_setHeadersGeneral(vc_cSeq, "PRACK"); // cseq, contact, branch, via
- vc_rAck := valueof(m_RAck(vc_response.msgHeader.rSeq.responseNum, vc_cSeq.seqNumber, vc_cSeq.method));
-
- SIPP.send(m_PRACK_Request_Base(
- vc_requestUri,
- vc_callId,
- vc_cSeq,
- vc_from,
- vc_to,
- vc_via,
- vc_rAck
- )) to vc_sent_label;
- }
-
- /**
- *
- * @desc send PUBLISH message
- * @param p_request template of the message to be sent
- */
- function f_SendPUBLISH(template PUBLISH_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send REGISTER message
- * @param p_request template of the message to be sent
- */
- function f_SendREGISTER(template REGISTER_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send SUBSCRIBE message
- * @param p_request template of the message to be sent
- */
- function f_SendSUBSCRIBE(template SUBSCRIBE_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send UPDATE message
- * @param p_request template of the message to be sent
- */
- function f_SendUPDATE(template UPDATE_Request p_request) runs on SipComponent
- {
- f_setHeadersGeneral(vc_cSeq, "UPDATE"); // cseq, contact, branch, via
- p_request.msgHeader.cSeq := vc_cSeq;
- p_request.msgHeader.contact := vc_contact;
- p_request.msgHeader.via := vc_via;
- vc_requestFor407 := valueof(p_request);
- SIPP.send(p_request) to vc_sent_label;
- if(PX_SIP_INVITE_AUTHENTICATION_ENABLED) {a_altstep_401or407();};
- }
-
- /**
- *
- * @desc function send MESSAGE message
- * @param p_request template of the message to be sent
- */
- function f_SendMESSAGE(template MESSAGE_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc function send NOTIFY message
- * @param p_request template of the notify to be sent
- */
- function f_SendNOTIFY(template NOTIFY_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send REFER message
- * @param p_request template of the message to be sent
- */
- function f_SendREFER(template REFER_Request p_request) runs on SipComponent
- {
- SIPP.send(p_request) to vc_sent_label;
- }
-
- /**
- *
- * @desc send 200 OK
- */
- function f_send200OK() runs on SipComponent
- {
- f_sendResponse(m_Response_Base(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
- }
-
- /**
- *
- * @desc send response
- * @param p_request template of the message to be sent
- */
- function f_sendResponse(template Response p_response) runs on SipComponent
- {
- //p_response.msgHeader.route := f_route(); // update the route header field depending on vc_boo_route//TODO check if route header is needed in responses
- p_response.msgHeader.recordRoute := f_recordroute(); // update the route header field depending on vc_boo_route
- SIPP.send(p_response) to vc_sent_label;
- }
-
-} // end SendMessage
-
-group GlobalSteps {
- /**
- *
- * @desc component initialization
- * @param p_cSeq_s cSeq value to be assigned to the component variable
- */
- function f_init_component(inout CSeq p_cSeq_s) runs on SipComponent
- {
- //Variables
- vc_cSeq := p_cSeq_s;
-
- //Defaults
- vc_def_catchSyncStop := activate(a_Sip_catchSyncStop());
- vc_default := activate (a_clearRegistration());
- }
-
- /**
- *
- * @desc component termination
- */
- function f_terminate_component() runs on SipComponent
- {
- log("component terminated - forced!");
- deactivate;
- stop;
- }
-
- /**
- *
- * @desc component termination
- */
- function f_componentStop() runs on SipComponent
- {
- syncPort.send(m_syncClientStop);
- SIPP.clear;
- stop;
- }
-
- /**
- *
- * @desc setting of user parameters with PIXIT values
- * @param p_user identifies the selected user configuration and location
- */
- function f_init_userprofile(in integer p_user) runs on SipComponent
- {
- vc_userprofile.id := p_user;
-
- select(p_user){
- case (c_userProfile_SIP1_home) { //variant c_userProfile_SIP1_home
- vc_userprofile.currPort := PX_SIP_TS1_PORT;
- vc_userprofile.currIpaddr := PX_SIP_TS1_IPADDR;
- vc_userprofile.contactPort := PX_SIP_TS1_PORT;
- vc_userprofile.contactIpaddr := PX_SIP_TS1_IPADDR;
- vc_userprofile.bearerIpaddr := PX_SIP_TS1_BEARER_IPADDR;
- vc_userprofile.homeDomain := PX_SIP_TS1_LOCAL_DOMAIN;
- vc_userprofile.publUsername := PX_SIP_TS1_LOCAL_USER;
- vc_userprofile.qop := PX_SIP_SUT_UE1_QOP;
- vc_userprofile.privUsername := PX_SIP_SUT_UE1_USERNAME;
- vc_userprofile.passwd := PX_SIP_SUT_UE1_PASSWD;
- vc_userprofile.registrarDomain := PX_SIP_SUT_REGISTRAR_DOMAIN;
- }
- case (c_userProfile_SIP2_home) { //variant c_userProfile_SIP2_home
- vc_userprofile.currPort := PX_SIP_TS2_PORT;
- vc_userprofile.currIpaddr := PX_SIP_TS2_IPADDR;
- vc_userprofile.contactPort := PX_SIP_TS2_PORT;
- vc_userprofile.contactIpaddr := PX_SIP_TS2_IPADDR;
- vc_userprofile.bearerIpaddr := PX_SIP_TS2_BEARER_IPADDR;
- vc_userprofile.homeDomain := PX_SIP_TS2_LOCAL_DOMAIN;
- vc_userprofile.publUsername := PX_SIP_TS2_LOCAL_USER;
- vc_userprofile.qop := PX_SIP_SUT_UE2_QOP;
- vc_userprofile.privUsername := PX_SIP_SUT_UE2_USERNAME;
- vc_userprofile.passwd := PX_SIP_SUT_UE2_PASSWD;
- vc_userprofile.registrarDomain := PX_SIP_SUT_REGISTRAR_DOMAIN;
- }
-
- }
- }
-
- /**
- *
- * @desc function waits for particular time that allows the SUT to return to idle state
- */
- function f_awaitSUTidle() runs on SipComponent
- {
- vc_ignore4xx := true; // allow 4xx in default
- tc_noAct.start;
- alt {
- [] tc_noAct.timeout{}
- }
- }
-
- /**
- *
- * @desc function waits for particular time before next expected message
- */
- function f_wait(float p_time) runs on SipComponent
- {
- tc_noAct.start(p_time);
- alt {
- [] tc_noAct.timeout{}
- }
- }
-
- /**
- *
- * @desc function cause termination of a PTC
- * @param p_syncPoint dummy parameter (copied from the common lib)
- */
- function f_check2Null(in charstring p_syncPoint) runs on SipComponent
- {
- //!= pass does not work, because in case of "none" execution shall continue
- if (getverdict == inconc or getverdict == fail){
- log("**** f_check2Null: Verdict evaluated to fail or inconc. Stopping test execution now ");
- f_selfOrClientSyncAndVerdict (p_syncPoint, e_error) ;
- }//end if
- }
-
-/*
- *
- * @desc original copied from older LibCommon_VerdictControl
- */
- function f_getVerdict()
- return FncRetCode {
- var FncRetCode v_ret := e_error;
- if (getverdict == pass or getverdict == none) {
- v_ret := e_success;
- }
- return v_ret;
- }
-
-}// end group GlobalSteps
-
-group Registration {
-
- /**
- *
- * @desc registration and authentication with MD5
- * @param p_cSeq_s cseq parameter
- * @param p_register register template
- * @param p_auth flag indicating if authentication is needed
- */
- function f_Registration(inout CSeq p_cSeq_s, out template REGISTER_Request p_register, in boolean p_auth) runs on SipComponent
- {
- if (PX_SIP_REGISTRATION)
- {
- f_setHeaders_REGISTER(p_cSeq_s);
- p_register := m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization);
- f_SendREGISTER(p_register); //LibSip
-
- //awaiting of 401 and sending 2nd REGISTER and awaiting 200 OK REGISTER
- if (p_auth)
- {
- // receiving 401 Unauthorized response.
- // and Re-send REGISTER request with Authorization header
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (mw_Response_Base(c_statusLine401, vc_callId, p_cSeq_s)) -> value vc_response
- {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(p_cSeq_s, vc_response);
- // set headers via, cseq and authorization
- f_setHeaders_2ndREGISTER(p_cSeq_s);
- p_register := m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization);
- // Re-send protected REGISTER
- f_SendREGISTER(p_register);//LibSip
-
- // awaiting 200 OK REGISTER
- f_awaitingOkResponse(p_cSeq_s);
- f_getServiceRouteMapIntoRouteInRegistration(p_cSeq_s, vc_response);
- }
- [] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callId, p_cSeq_s)) -> value vc_response
- {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
- f_getServiceRouteMapIntoRouteInRegistration(p_cSeq_s, vc_response);
- log ("Authorization was not requested as expected");
- }
- }
- }
- else
- {
- f_awaitingOkResponse(p_cSeq_s);
- f_getServiceRouteMapIntoRouteInRegistration(p_cSeq_s, vc_response);
- }
-
- };
- }//end function f_Registration
-
-
- /**
- *
- * @desc remove registration
- * @param p_cSeq_s cseq parameter
- */
- function f_RemoveRegistration(inout CSeq p_cSeq) runs on SipComponent
- {
- var CommaParam_List v_challenge;
- var Credentials v_credentials;
- var template REGISTER_Request v_request;
-
- //
- if(vc_DeregDone)
- {
- f_componentStop();
- }
- else {vc_DeregDone := true;}
-
- if (PX_SIP_REGISTRATION)
- {
- f_setHeaders_deREGISTER(p_cSeq);
- v_request := m_REGISTER_Request_expires(vc_requestUri, vc_callIdReg,
- p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0");
- v_request.msgHeader.route := f_route();
-
- f_SendREGISTER(v_request);
- if (PX_SIP_REGISTER_AUTHENTICATION_ENABLED)
- {
- // receiving 401 Unauthorized response.
- // and Re-send REGISTER request with Authorization header
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (mw_Response_Base(c_statusLine401, vc_callIdReg, p_cSeq)) -> value vc_response
- {
- tc_resp.stop;
- // set headers via, cseq and authorization
- f_setHeaders_2ndREGISTER(p_cSeq);
- v_request := m_REGISTER_Request_expires(vc_requestUri, vc_callIdReg,
- p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0");
- v_request.msgHeader.route := f_route();
- // Re-send protected REGISTER
- f_SendREGISTER(v_request);//LibSip
-
- // awaiting 200 OK REGISTER
- f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
- }
- [] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq))-> value vc_response
- {
- tc_resp.stop;
- f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
- //log ("Authorization was not requested as expected");
- }
- }
- }
- else
- {
- f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
- }
- }
- } // end f_RemoveRegistration
-
- /**
- *
- * @desc remove registration without authorization
- * @param p_cSeq_s cseq parameter
- */
- function f_RemoveRegistration_wo_authorization(inout CSeq p_cSeq) runs on SipComponent
- {
- var SemicolonParam_List tmp_params;
- if (PX_SIP_REGISTRATION)
- {
- f_setHeaders_deREGISTER(p_cSeq);
- f_SendREGISTER(m_REGISTER_Request_expires(vc_requestUri, vc_callIdReg, p_cSeq,
- vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0" ));
- f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
- }
- } // end f_RemoveRegistration_wo_authorization
-
-}//end group Registration
-
- group Subscription {
-
- /**
- *
- * @desc UE send subscrbe, await on 200 OK, await notify and send 200 OK
- * @param p_cSeq_s cseq parameter
- * @param p_subscribe subscribe template
- */
- function f_Subscription(inout CSeq p_cSeq_s,template SUBSCRIBE_Request p_subscribe) runs on SipComponent
- {
- //f_setHeaders_SUBSCRIBE(p_cSeq_s);
- //send SUBSCRIBE
- f_SendSUBSCRIBE(p_subscribe);
- // awaiting 200 OK SUBSCRIBE
- f_awaitingOkResponse(p_cSeq_s);
-
- //await NOTIFY and send reply 200 OK
- f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId));
-
- }//end function f_Subscription
-
- /**
- *
- * @desc UE send subscrbe, await on 200 OK, await notify and send 200 OK
- * @param p_cSeq_s cseq parameter
- * @param p_subscribe subscribe template
- * @param p_notify notify template
- */
- function f_SubscriptionWithNotification(inout CSeq p_cSeq_s, template SUBSCRIBE_Request p_subscribe, template NOTIFY_Request p_notify) runs on SipComponent
- {
- f_setHeaders_SUBSCRIBE(p_cSeq_s);
- //send SUBSCRIBE
- f_SendSUBSCRIBE(p_subscribe);
- // awaiting 200 OK SUBSCRIBE
- f_awaitingOkResponse(p_cSeq_s);
-
- //await NOTIFY and send reply 200 OK
- f_awaitingNOTIFY_sendReply(p_notify);
-
- }//end function f_Subscription
-
- /**
- *
- * @desc UE await subscrbe, send on 200 OK; possibility to handle also other SUBSCRIBE methods where event is different than reg
- * @param p_cSeq_s cseq parameter
- * @param p_subscribe subscribe template
- */
- function f_awaitingSubscription(inout CSeq p_cSeq_s, template SUBSCRIBE_Request p_subscribe) runs on SipComponent
- {
- var Request v_request;
-
- tc_wait.start(2.0);//awaiting of all SUBSCRIBES
- alt
- {
- [] SIPP.receive(p_subscribe)-> value v_request sender vc_sent_label
- {
- f_setHeadersOnReceiptOfSUBSCRIBE(v_request);
- f_send200OK();
- repeat;
- }
- [] SIPP.receive(mw_SUBSCRIBE_Request_Base)-> value v_request sender vc_sent_label
- {
- f_setHeadersOnReceiptOfSUBSCRIBE(v_request);
- f_send200OK();
- repeat;
- }
- [] tc_wait.timeout
- {
- setverdict(pass);
- }
-
-
- }
- // TODO check how to solve sending of NOTIFY on SUBSCRIBE
-
- }//end function f_awaitingSubscription
-
- }//end group Subscription
-
-group Preambles {
-
- /**
- *
- * @desc Set variables and default initialization for user profile
- * @param p_userprofile user profile of call
- * @param p_cSeq_s cseq parameter
- */
- function f_SIP_preamble_woREG(in integer p_userprofile, inout CSeq p_cSeq_s) runs on SipComponent
- {
- //varables and altsteps
- f_init_component(p_cSeq_s);
-
- //Preamble
- f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
- vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile));
- }
-
- /**
- *
- * @desc Set variables and default initialization for user profile and handle registration and authentication with MD5
- * @param p_userprofile user profile of call
- * @param p_cSeq_s cseq parameter
- * @param p_register register template
- */
- function f_SIP_preamble_withREG(in integer p_userprofile, inout CSeq p_cSeq_s, template REGISTER_Request p_register) runs on SipComponent
- {
- //preamble
- f_SIP_preamble_woREG(p_userprofile, p_cSeq_s);
-
- //Registration, Awaiting
- f_Registration(p_cSeq_s, p_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
- }
-
-}// end group Preambles
-
-group Postambles {
-
- /**
- *
- * @desc function send BYE and awaits reponse
- * @param p_CallId parameter for outgoing BYE
- * @param p_cSeq parameter for outgoing BYE
- * @param p_from parameter for outgoing BYE
- * @param p_to parameter for outgoing BYE
- * @param p_reqHostPort parameter for outgoing BYE
- */
- function f_terminateCall(SipUrl p_requestUri, CallId p_CallId, inout CSeq p_cSeq, From p_from,
- template To p_to) runs on SipComponent
- {
- // Sending of a BYE request to release the call and expect a final response
- f_SendBYE(m_BYE_Request_cause(p_requestUri, p_CallId, p_cSeq, p_from, valueof(p_to), vc_via, PX_SIP_BYE_CAUSE));
-
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (mw_Response_Base(mw_statusLine1xx, p_CallId, p_cSeq))
- {
- repeat;
- }
- [] SIPP.receive (mw_Response_Base(mw_statusLineFinal, p_CallId, p_cSeq))
- {
- tc_resp.stop;
- }
- }
- } // end function f_terminateCall
-
- function f_cancelCall(template CANCEL_Request p_request)
- runs on SipComponent
- {
- // This function is called to bring back the IUT in idle condition
- // in case of errors or unexpected behaviour.
-
- // Sending of a CANCEL request with the same Cseq
- f_setHeadersCANCEL(vc_cSeq);
- f_SendCANCEL(p_request);
- tc_resp.start(PX_SIP_TRESP);
- alt
- {
- [] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq))
- {
- tc_resp.stop;
- }
- }
- }
-
- function f_cancelCall_await487(template CANCEL_Request p_request)
- runs on SipComponent
- {
- // This function is called to bring back the IUT in idle condition
- // in case of errors or unexpected behaviour.
-
- // Sending of a CANCEL request with the same Cseq
- f_cancelCall(p_request);
- // set method on INVITE
- vc_cSeq.method := "INVITE";
-
- //await on 487 response and send ACK
- f_awaitingResponse(mw_Response_Base(c_statusLine487, vc_callId, vc_cSeq));
- f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));
- }
-
- function f_awaitCancelCall_send487(template CANCEL_Request p_request)
- runs on SipComponent
- {
- f_awaitingCANCEL(p_request);
- f_sendResponse(m_Response_Base(c_statusLine200, vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via));
-
- // set method on INVITE
- vc_cSeq.method := "INVITE";
-
- //send 487 response and await ACK
- f_sendResponse(m_Response_Base(c_statusLine487, vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via));
- // await ACK
- f_awaitingACK(mw_ACK_Request_Base(vc_callId));
- }
-
-} // end group Postambles
-
-group SipChecks
-{
-
-
- /*
- * @desc check the presence of conversation at SIP side
- *
- */
- function f_check_Conversation() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if conversation at SIP port";
-
- if (PX_SIP_CheckConversation) {
- opPort.call(s_SIP_conversation:{v_question, -})
- {[] opPort.getreply(s_SIP_conversation:{-, true}) {}
- [] opPort.getreply(s_SIP_conversation:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); // Note: implemented in test bodies
-
- return
- } // end of f_check_Conversation
-
- /*
- * @desc check the presence of conversation at SIP side
- *
- */
- function f_check_Ringing() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if ringing at SIP port";
-
- if (PX_SIP_CheckRinging) {
- opPort.call(s_SIP_ringing:{v_question, -})
- {[] opPort.getreply(s_SIP_ringing:{-, true}) {}
- [] opPort.getreply(s_SIP_ringing:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_Ringing, f_getVerdict());
- return
- } // end of f_check_Ringing
-
- /*
- * @desc check the announcement at SIP side (UE A)
- *
- */
- function f_check_AnnouncementUE_A() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if announcement at UE A";
-
- if (PX_SIP_CheckConversation) {
- opPort.call(s_SIP_announcementA:{v_question, -})
- {[] opPort.getreply(s_SIP_announcementA:{-, true}) {}
- [] opPort.getreply(s_SIP_announcementA:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_annoucA, f_getVerdict());
- return
- } // end of f_check_AnnouncementUE_A
-
- /*
- * @desc check the announcement at SIP side (UE B)
- *
- */
- function f_check_AnnouncementUE_B() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if announcement at UE B";
-
- if (PX_SIP_CheckConversation) {
- opPort.call(s_SIP_announcementB:{v_question, -})
- {[] opPort.getreply(s_SIP_announcementB:{-, true}) {}
- [] opPort.getreply(s_SIP_announcementB:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_annoucB, f_getVerdict());
- return
- } // end of f_check_AnnouncementUE_B
-
- /*
- * @desc check the announcement at SIP side
- *
- */
- function f_check_Announcement() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if announcement at SIP side";
-
- if (PX_SIP_CheckConversation) {
- opPort.call(s_SIP_announcement:{v_question, -})
- {[] opPort.getreply(s_SIP_announcement:{-, true}) {}
- [] opPort.getreply(s_SIP_announcement:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_annouc, f_getVerdict());
- return
- } // end of f_check_Announcement
-
- /*
- * @desc check the Voice message at SIP side
- *
- */
- function f_check_VoiceMessage() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if voice message at SIP side";
-
- if (PX_SIP_CheckConversation) {
- opPort.call(s_SIP_voiceMessage:{v_question, -})
- {[] opPort.getreply(s_SIP_voiceMessage:{-, true}) {}
- [] opPort.getreply(s_SIP_voiceMessage:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_voicem, f_getVerdict());
- return
- } // end of f_check_Announcement
-
- /*
- * @desc check the stop of media stream
- *
- */
- function f_check_MediaStopped() runs on SipComponent
- {
- var boolean v_result;
- var charstring v_question := "confirm if media stream stopped";
-
- if (PX_SIP_CheckConversation) {
- opPort.call(s_SIP_mediastopped:{v_question, -})
- {[] opPort.getreply(s_SIP_mediastopped:{-, true}) {}
- [] opPort.getreply(s_SIP_mediastopped:{-, false})
- {all timer.stop;
- setverdict(fail);
- syncPort.send(m_syncClientStop);
- stop;}
- }
- }
-
- f_selfOrClientSyncAndVerdict(c_uPlaneStop, f_getVerdict());
- return
- } // end of f_check_MediaStopped
-
-}
-
-group DefaultsTestStep
-{
-
-
- /**
- * @desc This default handles receiving of the sync server
- * STOP message and calls the RT HUT postamble. (copy from common lib)
- */
- altstep a_Sip_catchSyncStop() runs on SipComponent
- {
- [] syncPort.receive(m_syncServerStop)
- {
- tc_sync.stop ;
- log("**** a_Sip_catchSyncStop: Test component received STOP signal from MTC - going to IDLE state **** ");
- //TODO complete postamble
- syncPort.send(m_syncClientStop);
- //in case if deregistration was not done
- //f_RemoveRegistration(vc_cSeq);
- f_terminate_component();
- log("**** a_Sip_catchSyncStop: TEST COMPONENT NOW STOPPING ITSELF! **** ") ;
- setverdict(inconc);
- stop ;
- }
- }
-
-
- /**
- *
- * @desc main default altstep to handle unexpected messages and timeout
- * @verdict fail for all unexpected branches
- */
- altstep a_clearRegistration() runs on SipComponent
- {
- var Response v_response;
- var Request v_request;
-
- [] any timer.timeout
- {
- setverdict(fail);
- all timer.stop;
- //TODO check how to solve release of call
- //f_SendCANCEL(m_CANCEL_Request(vc_callId, vc_cSeq, vc_from, vc_cancel_To, vc_reqHostPort, vc_via )); // difference between registration state or transaction state
- vc_callId := vc_callIdReg;
- f_RemoveRegistration(vc_cSeq);
- }
-
- // allow repeated INVITEs
- [vc_ignore_invite] SIPP.receive(mw_INVITE_Request_Base)
- {
- repeat
- }
-
- // allow repeated BYEs after ack of the first BYE
- [vc_ignore_bye] SIPP.receive (mw_BYE_Request_Base(?))
- {
- repeat
- }
- [] SIPP.receive (mw_ACK_Request_Base(?))
- {
- repeat
- }
- // allow 100 replies
- [] SIPP.receive(mw_Response_Base(c_statusLine100,vc_callId, vc_cSeq))
- {
- repeat
- }
-
- // ignore 181 if flag is set (following TS 183004 §4.5.2.1)
- [vc_ignore181] SIPP.receive(mw_Response_Base(c_statusLine181,vc_callId, vc_cSeq))-> value v_response sender vc_sent_label
- {
- f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
- repeat;
- }
-
- // according to SIP chap.8.1.3.2
- [] SIPP.receive(mw_Response_Base(c_statusLine183,vc_callId, vc_cSeq))
- {
- repeat;
- }
-
- // ignore 484 if flag is set
- [vc_ignore484] SIPP.receive(mw_Response_Base(c_statusLine484,vc_callId, vc_cSeq))
- {
- repeat
- }
-
- [vc_ignore4xx] SIPP.receive(mw_Response_Base(mw_statusLine4xx,vc_callId, ?))-> value v_response sender vc_sent_label
- {
- f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
- f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
- repeat
- }
-
- [vc_ignore200OKinv] SIPP.receive(mw_Response_Base(c_statusLine200, vc_callId, ?))
- {
- repeat
- }
-
- [] SIPP.receive(mw_INFO_Request_Base(vc_callId))->value v_request sender vc_sent_label
- {
- f_setHeadersOnReceiptOfRequest(v_request);
- f_send200OK();
- repeat
- }
-
- // awaiting of Notify
- [] SIPP.receive(mw_NOTIFY_Request_Base(vc_callId))->value v_request sender vc_sent_label
- {
- f_setHeadersOnReceiptOfRequest(v_request);
- f_send200OK();
- repeat
- }
- // awaiting of subscribe from UE
- [vc_ignore_subscribe] SIPP.receive(mw_SUBSCRIBE_Request_Base)-> value v_request sender vc_sent_label
- {
- f_setHeadersOnReceiptOfSUBSCRIBE(v_request);
- f_send200OK();
- repeat;
- }
-
- //awaiting of subscribe on proxy
- [] SIPP.receive(mw_SUBSCRIBE_Request_Base)->value v_request sender vc_sent_label
- {
- f_setHeadersOnReceiptOfRequest(v_request);
- f_sendResponse(m_Response_Contact(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact));
- //f_setHeadersGeneral(vc_cSeq, "NOTIFY"); // cseq, contact, branch, via
- //f_SendNOTIFY(m_NOTIFY_Request_contact(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact));
- log(v_request.msgHeader.contact.contactBody.contactAddresses[0].addressField.nameAddr.addrSpec);
- f_SendNOTIFY(m_NOTIFY_Request_contact(v_request.msgHeader.contact.contactBody.contactAddresses[0].addressField.nameAddr.addrSpec, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact));
- f_awaitingOkResponse(vc_cSeq);
- repeat
- }
-
- // unexpected BYE is acknowledged to avoid retransmissions
- [] SIPP.receive(mw_BYE_Request_Base(?))-> value v_request sender vc_sent_label
- {
- setverdict(fail);
- f_setHeadersOnReceiptOfRequest(v_request);
- f_send200OK();
- f_RemoveRegistration(vc_cSeq);
- }
-
- // unexpected CANCEL is acknowledged to avoid retransmissions
- [] SIPP.receive(mw_CANCEL_Request_Base(?))-> value v_request sender vc_sent_label
- {
- setverdict(fail);
- f_setHeadersOnReceiptOfRequest(v_request);
- //Answer to the CANCEL
- f_send200OK();
- f_RemoveRegistration(vc_cSeq);
- }
- // catch 4xx response
- [] SIPP.receive(mw_Response_Base(mw_statusLine4xx, vc_callId, ?))-> value v_response sender vc_sent_label
- {
- setverdict(fail);
- f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
- LibSip_Steps.f_setHeadersACK();
- f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
- f_RemoveRegistration(vc_cSeq);
- }
- // catch 5xx response
- [] SIPP.receive(mw_Response_Base(mw_statusLine5xx, vc_callId, ?))-> value v_response sender vc_sent_label
- {
- setverdict(fail);
- f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response);
- LibSip_Steps.f_setHeadersACK();
- f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
- f_RemoveRegistration(vc_cSeq);
- }
- // catch invalid REGISTER
- [] SIPP.receive(mw_REGISTER_Request_Base)-> value v_request sender vc_sent_label
- {
- setverdict(fail);
- f_componentStop();
- }
- // any
- [] SIPP.receive
- {
- setverdict(fail);
- all timer.stop;
-// f_setHeadersCANCEL(vc_cSeq);
-// f_SendCANCEL(m_CANCEL_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_cancel_To, vc_via )); // difference between registration state or transaction state
- f_RemoveRegistration(vc_cSeq);
- }
- }
-
- /**
- *
- * @desc altstep handle authentication for INVITE message
- */
- altstep a_altstep_401or407() runs on SipComponent {
- [] any port.check (receive) {
- var CommaParam_List v_challenge;
- var Credentials v_Credentials;
- var Response v_Response;
- var Request v_Request := valueof (vc_requestFor407);
-
- tc_resp.start (PX_SIP_TRESP);
- alt {
- [] SIPP.receive (mw_Response_Base((c_statusLine401,c_statusLine407),
- vc_callId,
- vc_cSeq)) -> value v_Response {
- tc_resp.stop;
- // get tag from To header if available
- vc_to := v_Response.msgHeader.toField;
- if (vc_cSeq.method == "INVITE"){
- // send ACK
- f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));
- }
- // resent the INVITE message with Proxyauthorization header include
- // Extract challenge and calculate credentials for a response.
- if (ischosen (v_Response
- .msgHeader
- .proxyAuthenticate
- .challenge
- .otherChallenge // instead of digestCln (changed by axr to comply to alcatel)
- )) {
- v_challenge :=
- v_Response
- .msgHeader
- .proxyAuthenticate
- .challenge
- .otherChallenge.authParams;
- v_Credentials :=
- f_calculatecCredentials(vc_userprofile,
- vc_requestFor407.msgHeader.cSeq.method,
- v_challenge);
- } else {
- log ("No scheme in Proxy Authenticate header!!");
- setverdict (inconc);
- stop;
- }
-
- vc_branch := c_branchCookie & f_getRndTag();
- vc_via := {
- fieldName := VIA_E,
- viaBody := {
- valueof (m_ViaBody_currIpaddr(vc_branch, vc_userprofile))}
- };
-
- v_Request.msgHeader.via := vc_via;
- // Increment CSeq sequence number of and add the credentials
- // to the original saved INVITE message.
- vc_cSeq.method := vc_requestFor407.msgHeader.cSeq.method;
- vc_cSeq.seqNumber := vc_cSeq.seqNumber + 1;
- v_Request.msgHeader.cSeq.seqNumber :=
- vc_cSeq.seqNumber;
- v_Request.msgHeader.proxyAuthorization.fieldName :=
- PROXY_AUTHORIZATION_E;
- v_Request.msgHeader.proxyAuthorization.credentials :=
- {v_Credentials};
-
- // Re-send the saved INVITE with Authorization header
- // included.
- SIPP.send (v_Request) to vc_sent_label;
- }
- }
- }
- }
-
-
-} // end of group DefaultsTestStep
-} // end module LibSip_Steps
/v3.0.3/tags/v1.6.0/ttcn/LibSip_Steps.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_Templates.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_Templates.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_Templates.ttcn (nonexistent)
@@ -1,3327 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @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;
-
- //LibXMLTypes
- import from ietf_params_xml_ns_resource_lists language "XSD" all
- with {
- extension "File:../xsd/ResourceList.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_xcap language "XSD" all
- with {
- extension "File:../xsd/SupplementaryServices.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_mcid language "XSD" all
- with {
- extension "File:../xsd/MCID.xsd"
- }
-
- import from Ims3gpp language "XSD" all
- with {
- extension "File:../xsd/Ims3gpp.xsd"
- }
-
- import from ietf_params_xml_ns_conference_info language "XSD" all
- with {
- extension "File:../xsd/CONF.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_pstn language "XSD" all
- with {
- extension "File:../xsd/PSTN.xsd"
- }
-
- group ModuleParameters {
-
- modulepar boolean MB_LENGTH_FROM_ENCVAL:=false; //* 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 Addr_Union m_AddrUnion_NameAddr(template NameAddr p_nameAddr) :=
- {
- nameAddr := p_nameAddr
- }
-
- template Addr_Union m_AddrUnion_DisplayAndSipUrl(template charstring p_displayName, template SipUrl p_addrSpec) :=
- {
- nameAddr := m_CallingAddr(p_displayName, p_addrSpec)
- }
-
- template NameAddr m_CallingAddr(template charstring p_displayName, template 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 SemicolonParam_List m_cpc :=
- {{"cpc",PX_SIP_ISUP_CPC_VALUE}};
-
- template SemicolonParam_List m_ReasonParams
- (template charstring p_cause, template charstring p_text) :=
- {m_Cause(p_cause),m_Text(p_text)};
-
- template ReasonValue m_ReasonValue
- (template charstring p_cause, template charstring p_text) :=
- {
- token := "Q.850",
- reasonParams := m_ReasonParams(p_cause,p_text)
- };
-
- template ReasonValue m_ReasonValueSIP
- (template charstring p_cause, template charstring p_text) :=
- {
- token := "SIP",
- reasonParams := m_ReasonParams(p_cause,p_text)
- };
-
- template RouteBody mw_routeBody (template SipUrl p_sipurl):=
- {
- nameAddr :=
- {
- displayName := *,
- addrSpec := p_sipurl
- },
- rrParam := *
- }
-
- template SentProtocol m_SentProtocol (charstring p_protocol) :=
- {protocolName := c_sipName,
- protocolVersion:= c_sipVersion,
- transport:= p_protocol};
-
- template SipUrl m_SipUrl_currDomain(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo := //* optional
- {
- userOrTelephoneSubscriber := p_userprofile.publUsername,//* charstring
- password := omit //* optional charstring
- },
- hostPort :=
- {
- host := p_userprofile.homeDomain, //* hostname, IPv4 or IPv6 as a charstring
- portField := omit //* p_userprofile.currPort //* optional integer
- },
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_contactIpaddr(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo := //* optional
- {
- userOrTelephoneSubscriber := p_userprofile.publUsername,//* charstring
- password := omit //* optional charstring
- },
- hostPort :=
- {
- host := p_userprofile.contactIpaddr, //* hostname, IPv4 or IPv6 as a charstring
- portField := p_userprofile.contactPort //* optional integer
- },
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_contactIpaddrAndCpc(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo := //* optional
- {
- userOrTelephoneSubscriber := p_userprofile.publUsername & "; cpc=" & PX_SIP_ISUP_CPC_VALUE,//* charstring
- password := omit //* optional charstring
- },
- hostPort :=
- {
- host := p_userprofile.contactIpaddr, //* hostname, IPv4 or IPv6 as a charstring
- portField := p_userprofile.contactPort //* optional integer
- },
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_currIpaddr(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo := //* optional
- {
- userOrTelephoneSubscriber := p_userprofile.publUsername,//* charstring
- password := omit //* optional charstring
- },
- hostPort :=
- {
- host := p_userprofile.currIpaddr, //* hostname, IPv4 or IPv6 as a charstring
- portField := p_userprofile.currPort //* optional integer
- },
- urlParameters := omit,
- headers := omit
- }
-
- template SipUrl m_SipUrl_Anonymous := //* SIP-URL with a calles party number
- {
- scheme := c_sipScheme, //* contains "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 SipUrl m_TelUrl_publUser(in SipUserProfile p_userprofile) := //* SIP-URL of the test system on SIP side
- {
- scheme := c_telScheme, //* contains "tel"
- 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 SipUrl mw_TelUrl :=
- {
- scheme := c_telScheme,
- userInfo := *,
- hostPort := ?,
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_SipUrl :=
- {
- scheme := c_sipScheme,
- userInfo := *,
- hostPort := ?,
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_TelSip_unavailableInvalidUri :=
- {
- scheme := (c_telScheme,c_sipScheme),
- userInfo := {userOrTelephoneSubscriber:="unavailable", password:=omit},
- hostPort := {host:="anonymous.invalid", portField:=c_defaultSipPort},
- urlParameters := omit,
- headers := omit
- };
-
-
- template SipUrl mw_TelSip_unavailableUri (charstring p_host):=
- {
- scheme := (c_telScheme,c_sipScheme),
- userInfo := {userOrTelephoneSubscriber:="unavailable", password:=omit},
- hostPort := {host:=p_host, portField:=c_defaultSipPort},
- urlParameters := omit,
- headers := omit
- };
-
- template SipUrl mw_SipUrl_Number(charstring p_number) := //* SIP-URL with a calling party number
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
- hostPort := ?,
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_TelSipUrl_Number(template charstring p_number) := //* SIP-URL with a calling party number
- {
- scheme := (c_telScheme,c_sipScheme), //* contains "sip" or "tel"
- userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*}, //* nat or int format
- hostPort := ?,
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_SipUrl_Host(charstring p_host) := //* SIP-URL with a calling party number
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo:= *,
- hostPort := {host:=p_host, portField:=*},
- urlParameters := *,
- headers := *
- };
-
-
- template SipUrl mw_SipUrl_NumberHost(charstring p_number, charstring p_host) := //* SIP-URL with a calling party number
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
- hostPort := {host:=p_host, portField:=*},
- urlParameters := *,
- headers := *
- };
-
- template SipUrl mw_SipUrl_NumberHostParam(charstring p_number, charstring p_host, template SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo:= {userOrTelephoneSubscriber:=p_number, password:=*},
- hostPort := {host:=p_host, portField:=*},
- urlParameters := *,
- headers := p_urlParameters
- };
-
- template SipUrl m_SipUrl_NumberHostParam(charstring p_number, charstring p_host, template SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo:= {userOrTelephoneSubscriber:=p_number, password:=omit},
- hostPort := {host:=p_host, portField:=c_defaultSipPort},
- urlParameters := p_urlParameters,
- headers := omit
- };
-
- template SipUrl mw_SipUrl_Anonymous := //* SIP-URL with a calles party number
- {
- scheme := c_sipScheme, //* contains "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 SipUrl mw_SipUrl_urlParam(template SemicolonParam_List p_urlParameters) := //* SIP-URL with a calling party number
- {
- scheme := c_sipScheme, //* contains "sip"
- userInfo:= *,
- hostPort := *,
- urlParameters := p_urlParameters,
- headers := *
- };
-
- template ContactAddress mw_ContactAddress :=
- {
- addressField := ?,
- contactParams := *
- };
-
- template HostPort mw_hostPort(template charstring p_host, template integer p_portField) :=
- {
- host := p_host,
- portField := p_portField
- };
-
- template StatusLine mw_statusLine1xx := {sipVersion := c_sipNameVersion, statusCode := (100..199), reasonPhrase := ?};
- template StatusLine mw_statusLine4xx := {sipVersion := c_sipNameVersion, statusCode := (400..499), reasonPhrase := ?};
- template StatusLine mw_statusLine5xx := {sipVersion := c_sipNameVersion, statusCode := (500..599), reasonPhrase := ?};
- template StatusLine mw_statusLineFinal := {sipVersion := c_sipNameVersion, statusCode := (200..699), reasonPhrase := ?};
-
- template NameAddr mw_NameAddr_DispName_User_Host(template charstring p_dn, template charstring p_user, template charstring p_host) :=
- {
- displayName := p_dn,
- addrSpec :=
- {
- scheme := c_sipScheme, //* contains "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 Addr_Union mw_AddrUnion_Nameaddr(template charstring p_dn, template charstring p_user, template charstring p_host):=
- {
- nameAddr:=mw_NameAddr_DispName_User_Host(p_dn,p_user,p_host)
- }
-
- template SipUrl mw_SipUrl_User_Host(template charstring p_user, template charstring p_host) :=
- {
- scheme := c_sipScheme, //* contains "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 Addr_Union mw_AddrUnion_SipUrl(template charstring p_user, template charstring p_host):=
- {
- addrSpecUnion:=mw_SipUrl_User_Host(p_user,p_host)
- }
-
-
- } //* end group Subfields
-
-
-
-
-
- group HeaderFieldTemplates {
- template LibSip_SIPTypesAndValues.Allow m_Allow (template Method_List p_methods) := {
- fieldName := ALLOW_E,
- methods := p_methods
- }
-
- template LibSip_SIPTypesAndValues.Allow mw_Allow (charstring p_method) := {
- fieldName := ALLOW_E,
- methods := superset(p_method)
- }
-
- template GenericParam m_Cause (template charstring p_cause):=
- {id:="cause", paramValue:=p_cause}
-
- template GenericParam mw_Cause (template charstring p_cause):=
- {id:=?, paramValue:= pattern "*{p_cause}*"}
-
- template Authorization m_Authorization (template Credentials p_Credentials):=
- {
- fieldName := AUTHORIZATION_E,
- body := {p_Credentials}
- }
-
- template Authorization m_Authorization_digest (template CommaParam_List p_CommaParam_List):=
- {
- fieldName := AUTHORIZATION_E,
- body := {{digestResponse := p_CommaParam_List}}
- }
-
- template Authorization m_add_Authorization_digest (in Authorization p_auth, template CommaParam_List p_CommaParam_List):=
- {
- fieldName := AUTHORIZATION_E,
- body := {{digestResponse := f_merge_CommaParam_List(p_auth.body[0].digestResponse,valueof(p_CommaParam_List))}}
- }
-
- template Authorization m_Authorization_other :=
- {
- fieldName := AUTHORIZATION_E,
- body := {{otherResponse := ?}}
- }
-
- template Contact m_Contact(template SipUrl p_sipUrl) :=
- {
- fieldName := CONTACT_E,
- contactBody :=
- {
- contactAddresses :=
- {
- {
- addressField := { addrSpecUnion := p_sipUrl},
- contactParams := omit
- }
- }
- } //* end contactBody
- }//* end m_Contact
-
- template Contact m_Contact_profile(in SipUserProfile p_userprofile) :=
- {
- fieldName := CONTACT_E,
- contactBody :=
- {
- contactAddresses :=
- {
- {
- addressField := { addrSpecUnion := m_SipUrl_contactIpaddr(p_userprofile)},
- contactParams := omit
- }
- }
- } //* end contactBody
- }//* end m_Contact
-
-
- template Contact m_Contact_profile_expires(in SipUserProfile p_userprofile, in 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 From m_From(template NameAddr p_nameAddr, charstring p_tag_str) :=
- {
- fieldName := FROM_E,
- addressField :=
- {nameAddr := p_nameAddr},//* end addressField
- fromParams := {{id := c_tagId, paramValue := p_tag_str}}
- };
-
- template From m_From_Anonymous(charstring p_tag_str) :=
- {
- fieldName := FROM_E,
- addressField :=
- {nameAddr := {
- displayName := "Anonymous", //* optional charstring
- addrSpec := m_SipUrl_Anonymous //* SipUrl
- }},//* end addressField
- fromParams := {{id := c_tagId, paramValue := p_tag_str}}
- };
-
- template From m_From_SipUrl(template SipUrl p_sipUrl) :=
- {
- fieldName := FROM_E,
- addressField :=
- {nameAddr := {
- displayName := omit, //* optional charstring
- addrSpec := p_sipUrl //* SipUrl
- }},//* end addressField
- fromParams := omit
- };
-
- template Event m_Event_refer :=
- {
- fieldName := EVENT_E,
- eventType := "refer",
- eventParams := omit
- };
-
- template Event m_Event_conference :=
- {
- fieldName := EVENT_E,
- eventType := "conference",
- eventParams := omit
- };
-
- template Event m_Event_presence :=
- {
- fieldName := EVENT_E,
- eventType := "presence",
- eventParams := omit
- };
-
- template Event m_Event_reg :=
- {
- fieldName := EVENT_E,
- eventType := "reg",
- eventParams := omit
- };
-
- template Event m_Event_cdiv :=
- {
- fieldName := EVENT_E,
- eventType := "comm-div-info",
- eventParams := omit
- };
-
- template Event m_Event_mcid :=
- {
- fieldName := EVENT_E,
- eventType := "comm-div-info",
- eventParams := omit
- };
-
- template Expires m_Expires_600000 :=
- {
- fieldName := EXPIRES_E,
- deltaSec := "600000"
- };
-
- template Expires m_Expires (charstring p_deltaSec):=
- {
- fieldName := EXPIRES_E,
- deltaSec := p_deltaSec
- };
-
-
- template PAssertedID m_PAssertedID(template Addr_Union p_pAssertedIDValue) :=
- {
- fieldName := P_ASSERTED_ID_E,
- pAssertedIDValueList := {p_pAssertedIDValue}
- };
-
- template HistoryInfo mw_HistoryInfo(template HistoryInfo_List p_HistoryInfo_List) :=
- {
- fieldName := HISTORY_INFO_E,
- historyInfoList := p_HistoryInfo_List
- };
-
- template HistoryInfoEntry mw_HistoryInfoEntry(template SipUrl p_Url, template IntegerList p_index, template SemicolonParam_List p_paramlist) :=
- {
- nameAddr := {displayName:=*, addrSpec:= p_Url},
- hiIndex := p_index,
- hiExtention := p_paramlist
- }
-
- template HistoryInfo m_HistoryInfo(template HistoryInfo_List p_HistoryInfo_List) :=
- {
- fieldName := HISTORY_INFO_E,
- historyInfoList := p_HistoryInfo_List
- };
-
- template HistoryInfoEntry m_HistoryInfoEntry(template SipUrl p_Url, template IntegerList p_index, template SemicolonParam_List p_paramlist) :=
- {
- nameAddr := {displayName:=omit, addrSpec:= p_Url},
- hiIndex := p_index,
- hiExtention := p_paramlist
- }
-
- template PAssertedID m_PAssertedID_2x(template Addr_Union p_pAssertedIDValue1, template Addr_Union p_pAssertedIDValue2) :=
- {
- fieldName := P_ASSERTED_ID_E,
- pAssertedIDValueList := {p_pAssertedIDValue1, p_pAssertedIDValue2}
- };
-
- template PAssertedID mw_PAssertedID(template PAssertedIDValue p_pAssertedIDValue) :=
- {
- fieldName := P_ASSERTED_ID_E,
- pAssertedIDValueList := {p_pAssertedIDValue}
- };
-
- template PAssertedIDValue mw_PAssertedIDValue(template SipUrl p_SipUrl) :=
- {
- nameAddr :={displayName := *, addrSpec:=p_SipUrl}
- };
-
- template PPreferredID m_PPreferredID(template Addr_Union p_pPreferredIDValue) :=
- {
- fieldName := P_PREFERRED_ID_E,
- pPreferredIDValueList := {p_pPreferredIDValue}
- };
-
- template Privacy m_Privacy(PrivacyValue p_privacy) :=
- {
- fieldName := PRIVACY_E,
- privValueList := {p_privacy}
- };
-
- template 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 Reason m_Reason(integer p_cause) :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValue(int2str(p_cause),"dummy")}
- };
-
- template Reason m_Reason21 :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValue(int2str(21),"call reject")}
- };
-
- template RecordRoute m_recordRoute_currIpAddr (in SipUserProfile p_userprofile):=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody := {{nameAddr := {displayName := omit,
- addrSpec := {scheme := c_sipScheme, //* contains "sip"
- userInfo := omit,
- hostPort := {host:=p_userprofile.currIpaddr, portField:= p_userprofile.currPort},
- urlParameters := omit,
- headers := omit}
- },
- rrParam := omit}
- }};
-
- template ReferredBy m_ReferredBy_SipUrl(template SipUrl p_sipUrl) :=
- {
- fieldName := REFERRED_BY_E,
- nameAddr :={displayName := omit, addrSpec:=p_sipUrl},
- referredbyIdParams := omit
- }
-
- template ReferTo m_ReferTo_SipUrl(template SipUrl p_sipUrl, charstring p_method) :=
- {
- fieldName := REFER_TO_E,
- nameAddr :={displayName := omit, addrSpec:=p_sipUrl},
- referToParams := {{id:="method",paramValue :=p_method}}
- }
-
- template Replaces m_Replaces(
- charstring p_callId,
- charstring p_toTag,
- 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 Require m_Require_replaces :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {c_replaces}
- };
-
-
- template Require m_Require_empty :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {""}
- };
-
- template Require m_Require_100rel :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {c_tag100rel}
- };
-
- template Require m_Require_prec :=
- {
- fieldName := REQUIRE_E,
- optionsTags := {c_tagPrecond}
- }
-
- template SubscriptionState m_SubscriptionState_active :=
- {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := "active",
- substateParams := {{id:="expires",paramValue:="60000"}}
- }
-
- template Supported m_Supported_fromChange :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tagFromChange}
- }
-
- template Supported m_Supported_prec :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tagPrecond}
- }
-
- template Supported m_Supported_100rel :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tag100rel}
- }
-
- template Supported m_Supported_100rel_prec :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:={c_tag100rel, c_tagPrecond}
- }
-
- template GenericParam m_Text (template charstring p_text):=
- {id:="text", paramValue:=p_text}
-
- template GenericParam m_UserPhone :=
- {
- id := "user",
- paramValue := "phone"
- }
-
- template GenericParam m_UserToUserEncodingHex :=
- {
- id := "encoding",
- paramValue := "hex"
- }
-
- template UserToUser m_UserToUserData(template charstring p_U2UData):=
- {
- fieldName := USER_TO_USER_E,
- uuiData := p_U2UData,
- uuiParam := m_UserToUserEncodingHex
- }
-
- template To m_To(template SipUrl p_sipUrl) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := "ETSI Tester", //* optional charstring
- addrSpec := p_sipUrl //* SipUrl
- }},//* end addressField
- toParams := omit
- };
-
- template To m_To_SipUrl(SipUrl p_sipUrl) :=
- {
- fieldName := TO_E,
- addressField :=
- {nameAddr := {
- displayName := omit, //* optional charstring
- addrSpec := p_sipUrl //* SipUrl
- }},//* end addressField
- toParams := omit
- };
-
- template To mw_To_NameAddr_SipUrl(template charstring p_dn, template 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)),
- toParams := *
- }
-
- template To mw_To(template SipUrl p_sipUrl) := {
- fieldName := TO_E,
- addressField := { nameAddr := {displayName := *, addrSpec := p_sipUrl}},
- toParams:= *
- }
-
- template From mw_From(template SipUrl p_sipUrl) := {
- fieldName := FROM_E,
- addressField := { nameAddr := {displayName := *, addrSpec := p_sipUrl}},
- fromParams:= *
- }
-
- template From mw_From_NameAddr_SipUrl(template charstring p_dn, template charstring p_user, template charstring p_host) :=
- {
- fieldName := FROM_E,
- addressField := (mw_AddrUnion_Nameaddr(p_dn,p_user,p_host),mw_AddrUnion_SipUrl(p_user,p_host)),
- fromParams := *
- }
- template ViaBody m_ViaBody_currIpaddr(charstring branch_val,in SipUserProfile p_userprofile) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_userprofile.currIpaddr, portField:= p_userprofile.currPort},
- viaParams:={{id :=c_branchId,paramValue :=branch_val}}
- }
-
- template ViaBody mw_ViaBody_interface(template HostPort p_hostport) :=
- {
- sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
- sentBy:={host:=p_hostport.host, portField:= p_hostport.portField},
- viaParams:=*
- }
-
- template Via mw_Via(template ViaBody p_viabody) :=
- {
- fieldName := VIA_E,
- viaBody:= ? //* superset(p_viabody)
- }
-
- template CallId mw_CallId_any :=
- {
- fieldName := CALL_ID_E,
- callid := ?
- }
-
- template Privacy mw_Privacy_id :=
- {
- fieldName := PRIVACY_E,
- privValueList := {*,"id",*}
- };
-
-
- template Privacy mw_Privacy(template charstring p_value) :=
- {
- fieldName := PRIVACY_E,
- privValueList := {*,p_value,*}
- };
-
-
- template Privacy mw_Privacy_user :=
- {
- fieldName := PRIVACY_E,
- privValueList := {*,"user",*}
- };
-
- template Reason mw_Reason(integer p_cause) :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValue(int2str(p_cause),?)}
- };
-
- template Reason mw_ReasonSIP(integer p_cause) :=
- {
- fieldName := REASON_E,
- reasonValues := {m_ReasonValueSIP(int2str(p_cause),?)}
- };
-
- template Require mw_Require_not_100rel :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset(complement(c_tag100rel))
- };
-
- template Require mw_require_100rel :=
- {
- fieldName := REQUIRE_E,
- optionsTags := superset(c_tag100rel)
- };
-
- template RecordRoute mw_recordroute (template RouteBody p_routeBody):=
- {
- fieldName := RECORD_ROUTE_E,
- routeBody := ? //* superset(p_routeBody)
- };
-
- template Route mw_route (template RouteBody_List p_routeBody):=
- {
- fieldName := ROUTE_E,
- routeBody := p_routeBody
- };
-
- template StatusLine mw_statusLine(template integer p_statusCode) :=
- {
- sipVersion:=c_sipNameVersion,
- statusCode:=p_statusCode,
- reasonPhrase:=?
- };
-
- template Supported mw_Supported_100rel_prec :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:= superset(c_tag100rel, c_tagPrecond)
- }
-
- template Supported mw_Supported_100rel :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:= superset(c_tag100rel)
- }
-
- template Supported mw_Supported_fromChange :=
- {
- fieldName:=SUPPORTED_E,
- optionsTags:= superset(c_tagFromChange)
- }
-
- template UserToUser mw_UserToUserData(template charstring p_U2UData):=
- {
- fieldName := USER_TO_USER_E,
- uuiData := p_U2UData,
- uuiParam := ?
- }
-
- template Contact mw_Contact_conference :=
- {
- fieldName := CONTACT_E,
- contactBody :=
- {
- contactAddresses :=
- {
- {
- addressField := ?,//MRO
- contactParams := {{"isfocus",*}}
- }
- }
- }
- }
-
- template AlertInfo m_AlertInfo(charstring p_urn) := {
- fieldName := ALERT_INFO_E,
- alertInfoBody := {{p_urn, omit}}
- }
-
- template AlertInfo mw_AlertInfo(template charstring p_urn) := {
- fieldName := ALERT_INFO_E,
- alertInfoBody := superset({p_urn, omit})
- }
- } //* end of group HeaderFieldTemplates
-
-
-group MessageTemplates {
-group dummy_templates {
- group dummy_parameter_send {
-
- template RequestLine m_requestLine_dummy(Method p_method) :=
- {
- method := p_method,
- requestUri := c_unavailableUri,
- sipVersion := c_sipNameVersion
- }
-
- template MessageHeader m_msgHeader_dummy :=
- {
- accept := omit,
- acceptContact := omit,
- acceptEncoding := omit,
- acceptLanguage := omit,
- alertInfo := omit,
- allow := omit,
- allowEvents := omit, //* RFC3265
- authenticationInfo := omit,
- authorization := omit,
- callId := c_empty_CallId,
- callInfo := omit,
- contact := omit,
- contentDisposition := omit,
- contentEncoding := omit,
- contentLanguage := omit,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0},
- contentType := omit, //* if message body present m, else not present
- cSeq := c_empty_cSeq,
- date := omit,
- errorInfo := omit,
- event := omit, //* RFC3265
- expires := omit,
- fromField := c_empty_From,
- historyInfo := omit, //* RFC4244
- inReplyTo := omit,
- maxForwards := c_maxForwards70,
- mimeVersion := omit,
- minExpires := omit,
- minSE := omit, //* RFC4028
- organization := omit,
- pAccessNetworkInfo := omit, //* RFC3455
- pAssertedID := omit,
- pAssertedService := omit,
- pAssociatedURI := omit,
- path := omit, //* RFC3327
- pCalledPartyID := omit, //* RFC3455
- pChargingFunctionAddresses := omit, //* RFC3455
- pChargingVector := omit, //* RFC3455
- pEarlyMedia := omit, //* RFC5009
- pMediaAuthorization := omit, //* RFC3313
- pPreferredID := omit,
- priority := omit,
- privacy := omit,
- proxyAuthenticate := omit,
- proxyAuthorization := omit,
- proxyRequire := omit,
- pVisitedNetworkID := omit, //* RFC3455
- rAck := omit,
- rSeq := omit,
- reason := omit,
- recordRoute := omit,
- referredBy := omit, //* RFC3892 - REFER method
- referTo := omit, //* RFC3515 - REFER method
- replaces := omit, //* RFC3891
- replyTo := omit,
- require := omit,
- retryAfter := omit,
- route := omit,
- securityClient := omit, //* RFC3329
- securityServer := omit, //* RFC3329
- securityVerify := omit, //* RFC3329
- server := omit,
- serviceRoute := omit, //* RFC3608
- sessionExpires := omit, //* RFC4028
- subject := omit,
- subscriptionState := omit, //* RFC3265
- supported := omit,
- timestamp := omit,
- toField := c_empty_To,
- unsupported := omit,
- userToUser := omit,
- userAgent := omit,
- via := c_empty_Via,
- warning := omit,
- wwwAuthenticate := omit,
- undefinedHeader_List := omit
- }
- } //* group dummy_parameter_send
-
- group dummy_parameter_receive {
-
- template RequestLine mw_requestLine_dummy(Method p_method) :=
- {
- method := p_method,
- requestUri := ?,
- sipVersion := c_sipNameVersion
- }
-
- template MessageHeader mw_msgHeader_dummy :=
- {
- accept := *,
- acceptContact := *,
- acceptEncoding := *,
- acceptLanguage := *,
- alertInfo := *,
- allow := *,
- allowEvents := *, //* RFC3265
- authenticationInfo := *,
- authorization := *,
- callId := ?,
- callInfo := *,
- contact := *,
- contentDisposition := *,
- contentEncoding := *,
- contentLanguage := *,
- contentLength := ?,
- contentType := *,
- cSeq := ?,
- date := *,
- errorInfo := *,
- event := *, //* RFC3265
- expires := *,
- fromField := ?,
- historyInfo := *, //* RFC4244
- inReplyTo := *,
- maxForwards := *,
- mimeVersion := *,
- minExpires := *,
- minSE := *, //* RFC4028
- organization := *,
- pAccessNetworkInfo := *, //* RFC3455
- pAssertedID := *,
- pAssertedService := *,
- pAssociatedURI := *,
- path := *, //* RFC3327
- pCalledPartyID := *, //* RFC3455
- pChargingFunctionAddresses := *, //* RFC3455
- pChargingVector := *, //* RFC3455
- pEarlyMedia := *, //* RFC5009
- pMediaAuthorization := *, //* RFC3313
- pPreferredID := *,
- priority := *,
- privacy := *,
- proxyAuthenticate := *,
- proxyAuthorization := *,
- proxyRequire := *,
- pVisitedNetworkID := *, //* RFC3455
- rAck := *,
- rSeq := *,
- reason := *,
- recordRoute := *,
- referredBy := *, //* RFC3892 - REFER method
- referTo := *, //* RFC3515 - REFER method
- replaces := *, //* RFC 3891
- replyTo := *,
- require := *,
- retryAfter := *,
- route := *,
- securityClient := *, //* RFC3329
- securityServer := *, //* RFC3329
- securityVerify := *, //* RFC3329
- server := *,
- serviceRoute := *, //* RFC3608
- sessionExpires := *, //* RFC4028
- subject := *,
- subscriptionState := *, //* RFC3265
- supported := *,
- timestamp := *,
- toField := ?,
- unsupported := *,
- userToUser := *,
- userAgent := *,
- via := ?,
- warning := *,
- wwwAuthenticate := *,
- undefinedHeader_List := *
- }
- }//* end group dummy_parameter_receive
-
- group dummy_request_templates_send {
-
- template ACK_Request m_ACK_Dummy :=
- {
- requestLine := m_requestLine_dummy(ACK_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template BYE_Request m_BYE_Dummy :=
- {
- requestLine := m_requestLine_dummy(BYE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template CANCEL_Request m_CANCEL_Dummy :=
- {
- requestLine := m_requestLine_dummy(CANCEL_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template INFO_Request m_INFO_Dummy :=
- {
- requestLine := m_requestLine_dummy(INFO_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template INVITE_Request m_INVITE_Dummy :=
- {
- requestLine := m_requestLine_dummy(INVITE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template MESSAGE_Request m_MESSAGE_Dummy :=
- {
- requestLine := m_requestLine_dummy(MESSAGE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template NOTIFY_Request m_NOTIFY_Dummy :=
- {
- requestLine := m_requestLine_dummy(NOTIFY_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template PRACK_Request m_PRACK_Dummy :=
- {
- requestLine := m_requestLine_dummy(PRACK_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template PUBLISH_Request m_PUBLISH_Dummy :=
- {
- requestLine := m_requestLine_dummy(PUBLISH_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template REGISTER_Request m_REGISTER_Dummy :=
- {
- requestLine := m_requestLine_dummy(REGISTER_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template REFER_Request m_REFER_Dummy :=
- {
- requestLine := m_requestLine_dummy(REFER_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Dummy :=
- {
- requestLine := m_requestLine_dummy(SUBSCRIBE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
-
- template UPDATE_Request m_UPDATE_Dummy :=
- {
- requestLine := m_requestLine_dummy(UPDATE_E),
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
- }//* end group dummy_request_templates_send
- group dummy_request_templates_receive{
-
- template ACK_Request mw_ACK_Dummy :=
- {
- requestLine := mw_requestLine_dummy(ACK_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template BYE_Request mw_BYE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(BYE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template CANCEL_Request mw_CANCEL_Dummy :=
- {
- requestLine := mw_requestLine_dummy(CANCEL_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template INFO_Request mw_INFO_Dummy :=
- {
- requestLine := mw_requestLine_dummy(INFO_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template INVITE_Request mw_INVITE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(INVITE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template MESSAGE_Request mw_MESSAGE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(MESSAGE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template NOTIFY_Request mw_NOTIFY_Dummy :=
- {
- requestLine := mw_requestLine_dummy(NOTIFY_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template PRACK_Request mw_PRACK_Dummy :=
- {
- requestLine := mw_requestLine_dummy(PRACK_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template PUBLISH_Request mw_PUBLISH_Dummy :=
- {
- requestLine := mw_requestLine_dummy(PUBLISH_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template REFER_Request mw_REFER_Dummy :=
- {
- requestLine := mw_requestLine_dummy(REFER_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template REGISTER_Request mw_REGISTER_Dummy :=
- {
- requestLine := mw_requestLine_dummy(REGISTER_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(SUBSCRIBE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
-
- template UPDATE_Request mw_UPDATE_Dummy :=
- {
- requestLine := mw_requestLine_dummy(UPDATE_E),
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
- }//* end group dummy_request_templates_receive
-
- group dummy_response_templates_send{
-
- template Response m_Response_Dummy :=
- {
- statusLine := c_statusLine100,
- msgHeader := m_msgHeader_dummy,
- messageBody := omit,
- payload := omit
- }
- } //* group dummy_response_templates_send
-
- group dummy_response_templates_receive{
- template Response mw_Response_Dummy :=
- {
- statusLine := ?,
- msgHeader := mw_msgHeader_dummy,
- messageBody := *,
- payload := *
- }
- } //* group dummy_response_templates_receive
-}
-
-group base_templates{
-
- group request_send {
-
-
- template ACK_Request m_ACK_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_ACK_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "ACK"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template BYE_Request m_BYE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via) modifies m_BYE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template CANCEL_Request m_CANCEL_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via) modifies m_CANCEL_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
-
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template INFO_Request m_INFO_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via) modifies m_INFO_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template INVITE_Request m_INVITE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact) modifies m_INVITE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template MESSAGE_Request m_MESSAGE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via) modifies m_MESSAGE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template NOTIFY_Request m_NOTIFY_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_NOTIFY_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "NOTIFY"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template PRACK_Request m_PRACK_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, RAck p_RAck)
- modifies m_PRACK_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PRACK"},
- fromField := p_from,
- rAck := p_RAck,
- toField := p_to,
- via := p_via
- },
- messageBody := omit
- }
-
-
- template PUBLISH_Request m_PUBLISH_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Event p_event, template RAck p_RAck, template MessageBody p_mb)
- modifies m_PUBLISH_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText/*c_sdpAplication*/},
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "PUBLISH"},
- event := p_event,
- fromField := p_from,
- toField := p_to,
- via := p_via
- },
- messageBody := p_mb
- }
-
- template REFER_Request m_REFER_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, Contact p_contact,
- From p_from, template To p_to, Via p_via, template ReferTo p_referTo, template ReferredBy p_referredBy)
- modifies m_REFER_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contact := p_contact,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "REFER"},
- fromField := p_from,
- referTo := p_referTo,
- referredBy := p_referredBy,
- toField := p_to,
- via := p_via
- }
- }
-
- template REFER_Request m_REFER_Request_replaces (
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- Contact p_contact,
- From p_from,
- template To p_to,
- Via p_via,
- template ReferTo p_referTo,
- template ReferredBy p_referredBy,
- template Replaces p_replaces,
- template Require p_require
- ) modifies m_REFER_Request_Base := {
- msgHeader :=
- {
- replaces := p_replaces,
- require := p_require
- }
- }
-
- template REGISTER_Request m_REGISTER_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template Authorization p_authorization) modifies m_REGISTER_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- authorization := p_authorization,
- callId := p_callId,
- contact := p_contact,
- cSeq := p_cSeq,
- fromField := p_from,
- toField := p_to,
- supported := {
- fieldName := SUPPORTED_E, optionsTags := {"path"}
- },
- via := p_via
- }
- }
-
- template SUBSCRIBE_Request m_SUBSCRIBE_Request_Base (SipUrl p_requestUri, CallId p_callId,
- CSeq p_cSeq, From p_from, To p_to, Via p_via) modifies m_SUBSCRIBE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- }
- }
-
- template UPDATE_Request m_UPDATE_Request_Base (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb) modifies m_UPDATE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- contact := p_contact,
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- cSeq := {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "UPDATE"},
- fromField := p_from,
- toField := p_to,
- via := p_via
- },
- messageBody := p_mb
- }
-
- } //* end of group message_send
-
- group request_receive {
-
- template ACK_Request mw_ACK_Request_Base (template CallId p_callId) modifies mw_ACK_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template BYE_Request mw_BYE_Request_Base(template CallId p_callId) modifies mw_BYE_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template CANCEL_Request mw_CANCEL_Request_Base (template CallId p_callId) modifies mw_CANCEL_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template INFO_Request mw_INFO_Request_Base(template CallId p_callId) modifies mw_INFO_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template INVITE_Request mw_INVITE_Request_Base modifies mw_INVITE_Dummy :=
- {
- requestLine :=
- {
- method := INVITE_E
- }
- }
-
- template MESSAGE_Request mw_MESSAGE_Request_Base modifies mw_MESSAGE_Dummy :=
- {
- msgHeader :=
- {
- contact := *
- }
- }
-
- template NOTIFY_Request mw_NOTIFY_Request_Base (template CallId p_callId) modifies mw_NOTIFY_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template PRACK_Request mw_PRACK_Request_Base(template CallId p_callId) modifies mw_PRACK_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template PUBLISH_Request mw_PUBLISH_Request_Base(template CallId p_callId) modifies mw_PUBLISH_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template REFER_Request mw_REFER_Request_Base (CallId p_callId) modifies mw_REFER_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- template REFER_Request
- mw_REFER_Request(CallId p_callId, SipUrl p_requestUri,
- SipUrl p_referredBy)
- modifies mw_REFER_Request_Base := {
- requestLine := {requestUri := p_requestUri},
- msgHeader := {
- callId := p_callId,
- referredBy := {
- fieldName := REFERRED_BY_E,
- nameAddr := {displayName := *, addrSpec := p_referredBy},
- referredbyIdParams := *
- }
- }
- }
-
- template INVITE_Request mw_INVITE_Request(template Require p_require,
- SipUrl p_referredBy) modifies mw_INVITE_Request_Base := {
- msgHeader := {
- require := p_require,
- referredBy := {
- fieldName := REFERRED_BY_E,
- nameAddr := {displayName := *, addrSpec := p_referredBy},
- referredbyIdParams := *
- }
- }
- }
-
- template REGISTER_Request mw_REGISTER_Request_Base modifies mw_REGISTER_Dummy :=
- {
- requestLine :=
- {
- method := REGISTER_E
- }
- }
-
- template SUBSCRIBE_Request mw_SUBSCRIBE_Request_Base modifies mw_SUBSCRIBE_Dummy :=
- {
- requestLine :=
- {
- method := SUBSCRIBE_E
- }
- }
-
- template UPDATE_Request mw_UPDATE_Request_Base(template CallId p_callId) modifies mw_UPDATE_Dummy :=
- {
- msgHeader :=
- {
- callId := p_callId
- }
- }
-
- } //* end group request_receive
-
- group response_send {
-
- template Response m_Response_Base (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via) modifies m_Response_Dummy:=
- {
- statusLine := p_statusLine,
- msgHeader :=
- {
- callId := p_callId,
- cSeq := p_cSeq,
- fromField := p_from,
- maxForwards := omit,
- toField := p_to,
- via := p_via
- },
- messageBody := omit,
- payload := omit
- }
-
-
-
- } //* end group response_send
-
- group response_receive {
-
- template Response mw_Response_Base (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Dummy:=
- {
- statusLine := p_statusLine,
- msgHeader :=
- {
- callId := p_callId,
- contentLength := *,
- cSeq := p_cSeq,
- fromField := ?,
- maxForwards := *,
- toField := ?,
- via := ?
- }
- }
- } //* end group message_receive
-
-} //* end group full_templates
-
-group modified_templates {
-
-group request_send {
-
- template ACK_Request m_ACK_Request_route (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Route p_route)
- modifies m_ACK_Request_Base
- :=
- {
- msgHeader :=
- {
- route := p_route
- }
- }
-
- template ACK_Request m_ACK_Request_sdp (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via,template MessageBody p_mb )
- modifies m_ACK_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- template BYE_Request m_BYE_Request_cause
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, integer p_cause)
- modifies m_BYE_Request_Base
- :=
- {
- msgHeader :=
- {
- reason := m_Reason(p_cause) //* PIXIT value
- }
- }
-
- template INVITE_Request m_INVITE_Request_sdp
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template MessageBody p_mb)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- template INVITE_Request m_INVITE_Request_ResourceList
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
- Via p_via, Contact p_contact, template MessageBody p_mb)
- modifies m_INVITE_Request_Base
- :=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := "application/resource-lists+xml"},
- contentDisposition := {
- fieldName := CONTENT_DISPOSITION_E,
- dispositionType := "recipient-list",
- dispositionParams := omit
- },
- require := {
- fieldName := REQUIRE_E,
- optionsTags := {"recipient-list-invite"}
- }
- },
- messageBody := p_mb
- }
-
- template REGISTER_Request m_REGISTER_Request_expires
- (SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, Contact p_contact,
- template Authorization p_authorization, charstring p_expires)
- modifies m_REGISTER_Request_Base
- :=
- {
- msgHeader :=
- {
- authorization := p_authorization,
- expires := {
- fieldName := EXPIRES_E,
- deltaSec := p_expires }
- }
- }
-
- template NOTIFY_Request m_NOTIFY_Request_contact (
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact
- ) modifies m_NOTIFY_Request_Base
- :=
- {
- msgHeader :=
- {
- contact := p_contact,
- event := m_Event_reg,
- subscriptionState := m_SubscriptionState_active
- }
- }
-
- template NOTIFY_Request m_NOTIFY_Request_sipfrag (
- SipUrl p_requestUri,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- charstring p_state,
- charstring p_sipfrag
- ) modifies m_NOTIFY_Request_Base := {
- requestLine :=
- {
- method := NOTIFY_E,
- requestUri :=
- {
- hostPort:= p_requestUri.hostPort
- }
- },
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(p_sipfrag)},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := "message/sipfrag"},
- subscriptionState := {
- fieldName := SUBSCRIPTION_STATE_E,
- subState := p_state,
- substateParams := omit
- },
- event := m_Event_refer
- },
- messageBody := {
- sipfrag := p_sipfrag
- }
- }
-
-} //* end group request_send
-
-
-group request_receive {
-
- template BYE_Request mw_BYE_Request_Reason(template CallId p_callId, integer p_cause) modifies mw_BYE_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_Reason(p_cause)
- }
- }
-
- template BYE_Request mw_BYE_Request_ReasonSIP(template CallId p_callId, integer p_cause) modifies mw_BYE_Request_Base :=
- {
- msgHeader :=
- {
- reason := mw_ReasonSIP(p_cause)
- }
- }
-
- template BYE_Request mw_BYE_Request_headerfieldlist
- (
- template CallId p_callId,
- template SipUrl p_requestUri,
- template To p_to,
- template From p_from,
- template CSeq p_cSeq,
- template Route p_route,
- template RecordRoute p_recordRoute,
- template Reason p_reason
- ) modifies mw_BYE_Request_Base :=
- { requestLine :=
- {
- requestUri := p_requestUri
- },
- msgHeader :=
- {
- callId := p_callId,
- toField := p_to,
- fromField := p_from,
- cSeq := p_cSeq,
- route := p_route,
- recordRoute := p_recordRoute,
- reason := p_reason
- }
- }
-
- template BYE_Request mw_BYE_Request_UserToUser(template CallId p_callId) modifies mw_BYE_Request_Base :=
- {
- msgHeader :=
- {
- userToUser := ?
- }
- }
-
-
- template INVITE_Request mw_INVITE_Request_RequestURI (template SipUrl p_sipUrl) modifies mw_INVITE_Dummy :=
- {
- requestLine :=
- {
- requestUri := p_sipUrl,
- sipVersion := c_sipNameVersion
- }
- }
-
- template INFO_Request mw_INFO_Request_MB (template CallId p_callId, template MessageBody p_mb) modifies mw_INFO_Request_Base :=
- {
- messageBody := p_mb
- }
-
- template INVITE_Request mw_INVITE_Request_expires modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {expires := ?}
- }
-
- template INVITE_Request mw_INVITE_Request_callid(CallId p_callid) modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := {callId := p_callid}
- }
-
- template INVITE_Request mw_INVITE_Request_MB (template CallId p_callId, template MessageBody p_mb) modifies mw_INVITE_Request_Base :=
- {
- msgHeader := {callId := p_callId},
- messageBody := p_mb
- }
-
- template INVITE_Request mw_INVITE_Request_noPaccessNetworkInfo (template CallId p_callId)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := omit}
- }
- template INVITE_Request mw_INVITE_Request_PaccessNetworkInfo (template CallId p_callId)
- modifies mw_INVITE_Request_Base
- :=
- {
- msgHeader := { pAccessNetworkInfo := ?}
- }
-
- template REGISTER_Request mw_REGISTER_Request_ISC (template PAccessNetworkInfo p_access , template PVisitedNetworkID p_visited )modifies mw_REGISTER_Request_Base :=
- {
- msgHeader := {
- pAccessNetworkInfo := p_access,
- pVisitedNetworkID := p_visited
- }
-
- }
-
- template UPDATE_Request mw_UPDATE_Request_SDP(template CallId p_callId, template MessageBody p_mb) modifies mw_UPDATE_Dummy :=
- {
- messageBody := p_mb
- }
-
- template NOTIFY_Request mw_NOTIFY_Request_MB (template CallId p_callId, template MessageBody p_mb) modifies mw_NOTIFY_Request_Base :=
- {
- messageBody := p_mb
- }
-
-} //* end group request_receive
-
-group response_send {
-
- template Response m_Response_AlertInfo (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- AlertInfo p_alertInfo
- ) modifies m_Response_Base:= {
- msgHeader := {
- alertInfo := p_alertInfo
- }
- }
-
- template Response m_Response_Contact (
- StatusLine p_statusLine,
- CallId p_callId,
- CSeq p_cSeq,
- From p_from,
- To p_to,
- Via p_via,
- Contact p_contact
- ) modifies m_Response_Base:= {
- msgHeader := {
- contact := p_contact
- }
- }
-
- template Response m_Response_ext (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute) modifies m_Response_Base:=
- {
- msgHeader :={
- route := p_route, //f_route(),
- recordRoute := p_recordroute //f_recordroute()
- }
- }
-
- template Response m_Response_mbody (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template MessageBody p_mb) modifies m_Response_ext:=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication}
- },
- messageBody := p_mb
- }
-
- template Response m_Response_PAsserted_Privacy (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies m_Response_ext:=
- {
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- template Response mw_Response_PAsserted_Privacy_Supported (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy, template Supported p_supported) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy,
- supported := p_supported
- }
- }
-
- template Response m_Response_PAsserted_Privacy_mbody (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
- From p_from, To p_to, Via p_via, template Route p_route, template RecordRoute p_recordroute, template PAssertedID p_pAssertedID, template Privacy p_privacy, MessageBody p_mb) modifies m_Response_ext:=
- {
- msgHeader :=
- {
- contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
- contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_sdpAplication},
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- },
- messageBody := p_mb
- }
-
-} //* end group response_send
-
-
-group response_receive {
-
- template Response mw_Response_Expires (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template DeltaSec p_deltaSec) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- expires := {fieldName := EXPIRES_E, deltaSec := p_deltaSec}
- }
- }
-
- template Response mw_Response_PAsserted_Privacy (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- pAssertedID := p_pAssertedID,
- privacy := p_privacy
- }
- }
-
- template Response mw_Response_Reason (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, integer p_cause) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- reason := mw_Reason(p_cause)
- }
- }
-
- template Response mw_Response_RecordRoute (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template RecordRoute p_recordRoute) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- recordRoute := p_recordRoute
- }
- }
-
- template Response mw_Response_Via (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Via p_via) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- via := p_via
- }
- }
-
- template Response mw_Response_Contact (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Contact p_contact) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- contact := p_contact
- }
- }
-
- template Response mw_Response_AlertInfo (
- template StatusLine p_statusLine,
- template CallId p_callId,
- template CSeq p_cSeq,
- template AlertInfo p_alertInfo
- ) modifies mw_Response_Base:= {
- statusLine := {
- sipVersion := c_sipNameVersion,
- statusCode := p_statusLine.statusCode,
- reasonPhrase := ?
- },
- msgHeader :=
- {
- alertInfo := p_alertInfo
- }
- }
-
- template Response mw_Response_HistoryInfo (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template HistoryInfo p_historyInfo) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- historyInfo:=p_historyInfo
- }
- }
-
- template Response mw_Response_messageBody (
- template StatusLine p_statusLine,
- template CallId p_callId,
- template CSeq p_cSeq,
- template Require p_require,
- template MessageBody p_mb
- ) modifies mw_Response_Base:= {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- require := p_require
- },
- messageBody := p_mb
- }
-
- template Response mw_Response_Require (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Require p_require) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- require := p_require
- }
- }
-
- template Response mw_Response_Require_ifpresent (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Require p_require) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- require := p_require ifpresent
- }
- }
-
- template Response mw_Response_Supported (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq, template Supported p_supported) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- supported := p_supported
- }
- }
-
- template Response mw_Response_UserToUser (template StatusLine p_statusLine, template CallId p_callId,
- template CSeq p_cSeq) modifies mw_Response_Base:=
- {
- statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
- msgHeader :=
- {
- userToUser := ?
- }
- }
-} //* end group response_receive
-
-
-} //* end group modified_templates
-
-} //* end group MessageTemplates
-
-group SDP_Templates {
-
- group SDP_Messages {
-
- group base_templates {
-
- template SDP_Message m_SDP(SDP_media_desc p_media, in SipUserProfile p_userprofile) := {
- protocol_version := 0, //* v=0
- origin := {
- user_name := "voicesession",
- session_id := "30000",
- session_version := "0",
- net_type := c_in,
- addr_type := c_ip4,
- addr := p_userprofile.contactIpaddr },
- //* o=voicesession 12345 12345 IN IP4 172.27.1.219
- session_name := "Voice Session", //* s=Voice Session
- information := omit,
- uri := omit,
- emails := omit,
- phone_numbers := omit,
- connection := {
- net_type := c_in,
- addr_type := c_ip4,
- conn_addr := { addr:= p_userprofile.bearerIpaddr, ttl:=omit, num_of_addr:=omit }
- }, //* c=IN IP4 172.27.1.219
- bandwidth := omit,
- times := { { time_field := { "0", "0" }, time_repeat:=omit
- }
- }, //* t=0 0
- timezone_adjustments := omit,
- key := omit,
- attributes := omit,
- media_list := {p_media}
- };
-
- template SDP_Message m_SDP_mediaList(SDP_media_desc_list p_media_list, in SipUserProfile p_userprofile)
- := {
- protocol_version := 0, //* v=0
- origin := {
- user_name := "voicesession",
- session_id := "30000",
- session_version := "0",
- net_type := c_in,
- addr_type := c_ip4,
- addr := p_userprofile.contactIpaddr },
- //* o=voicesession 12345 12345 IN IP4 172.27.1.219
- session_name := "Voice Session", //* s=Voice Session
- information := omit,
- uri := omit,
- emails := omit,
- phone_numbers := omit,
- connection := {
- net_type := c_in,
- addr_type := c_ip4,
- conn_addr := { addr:= p_userprofile.bearerIpaddr, ttl:=omit, num_of_addr:=omit }
- }, //* c=IN IP4 172.27.1.219
- bandwidth := omit,
- times := { { time_field := { "0", "0" }, time_repeat:=omit
- }
- }, //* t=0 0
- timezone_adjustments := omit,
- key := omit,
- attributes := omit,
- media_list := p_media_list
- };
-
- template SDP_Message m_SDP_media_attr_preconditions(SDP_media_desc p_media, in SipUserProfile p_userprofile, SDP_attribute_list p_attribute_list)
- modifies m_SDP
- := {
- media_list := {
- {
- media_field := {
- media := c_audio,
- ports := { port_number := 8500, num_of_ports:=omit },
- transport := c_rtpAvp,
- fmts := { "0" }
- }, //* m=audio 8500 RTP/AVP 0
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := p_attribute_list
- }}
- }
-
- template SDP_Message m_SDP_attribute(SDP_media_desc p_media, in SipUserProfile p_userprofile, SDP_attribute loc_attribute)
- modifies m_SDP
- := {
- attributes := {loc_attribute}
- };
-
- template SDP_Message mw_SDP := {
- protocol_version := 0, //* v=0
- origin := ?,
- session_name := ?,
- information := omit,
- uri := omit,
- emails := omit,
- phone_numbers := omit,
- connection := ?,
- bandwidth := omit,
- times := { { time_field := { "0", "0" }, time_repeat:=omit
- }
- }, //* t=0 0
- timezone_adjustments := omit,
- key := omit,
- attributes := omit,
- media_list := ?
- };
-
-
- }//* end group base_templates
-
- group modified_templates{
- template SDP_Message m_SDP_bandwidth(SDP_media_desc p_media, in SipUserProfile p_userprofile)
- modifies m_SDP
- := {
- bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
- };
-
- template SDP_Message m_SDP_unacceptable(SDP_media_desc p_media, in SipUserProfile p_userprofile)
- modifies m_SDP
- := {
- protocol_version := 1, //* v=1 unacceptable version of SDP
- bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
- };
-
- template SDP_Message m_SDP_encrypted(SDP_media_desc p_media, in SipUserProfile p_userprofile)
- modifies m_SDP
- := {
- protocol_version := 1, //* v=1 unacceptable version of SDP
- bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
- };
- }//* end group modified_templates
-
- } //* end group SDP_Messages
-
- group SDP_Fields {
-
- template SDP_media_desc m_media(template SDP_media_field p_mf) := {
- media_field := p_mf,
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := omit
- };
-
- template SDP_media_desc m_mediaFieldBandwdthAttributes(template SDP_media_field p_mf, template SDP_bandwidth p_bw, template SDP_attribute_list p_attributes) := {
- media_field := p_mf,
- information := omit,
- connections := omit,
- bandwidth := {p_bw},
- key := omit,
- attributes := p_attributes
- };
-
- template SDP_media_desc m_media_dynPT(charstring p_PT, charstring p_encod) := {
- media_field := {
- media := c_audio,//* "audio",
- ports := { port_number := 8500, num_of_ports:=omit },
- transport := c_rtpAvp,//* "RTP/AVP",
- fmts := { p_PT }
- }, //* m=audio 8500 RTP/AVP 8
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := { { rtpmap := { attr_value := p_PT & " " & p_encod }
- }
- } //* a=rtpmap:8 PCMA/8000
- };
-
- template SDP_media_desc m_media_unsupported := {
- media_field := {
- media := "video",
- ports := { port_number := 11500, num_of_ports:=omit },
- transport := "RTP/AVP",
- fmts := { "99" }
- }, //* m=audio 8500 RTP/AVP 0
- information := omit,
- connections := omit,
- bandwidth := omit,
- key := omit,
- attributes := { {
- rtpmap := { attr_value := "99 X-Experimental/180000"}
- }}
- };
-
- template SDP_bandwidth m_bandwidth(template charstring loc_m, template integer loc_b) := {
- modifier:=loc_m,
- bandwidth:=loc_b
- };
-
- template SDP_bandwidth m_bandwidth_as_64:=
- {
- modifier:="AS",
- bandwidth:=64
- }
-
- template SDP_bandwidth mw_bandwidth_rs:=
- {
- modifier:="RS",
- bandwidth:=?
- }
-
- template SDP_bandwidth mw_bandwidth_rr:=
- {
- modifier:="RR",
- bandwidth:=?
- }
-
- template SDP_media_field m_media_field(charstring p_media, integer p_portNum, charstring p_transport, charstring p_fmts) :=
- {
- media := p_media,
- ports := { port_number := p_portNum, num_of_ports:=omit },
- transport := p_transport,
- fmts := { p_fmts }
- }
-
- template SDP_media_field mw_media_PCMU :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := c_rtpAvp,
- fmts := { "0" }
- }
-
- template SDP_media_field mw_media_PCMA :=
- {
- media := c_audio,
- ports := { port_number := 8500, num_of_ports:=omit },
- transport := c_rtpAvp,
- fmts := { "8" }
- }
-
- template SDP_media_field mw_media_PCMA_U_DPT :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := c_rtpAvp,
- fmts := { * }
- }
-
- template SDP_media_field mw_media_T38 :=
- {
- media := c_image,
- ports := { port_number := ?, num_of_ports:=* },
- transport := pattern "*ptl", //* udptl,tcptl
- fmts := { "t38" }
- }
-
- template SDP_media_field mw_media_G722 :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := "RTP/AVP",
- fmts := { "9" }
- }
-
- template SDP_media_field mw_media_AMR_DPT :=
- {
- media := c_audio,
- ports := { port_number := ?, num_of_ports:=* },
- transport := c_rtpAvp,
- fmts := { * }
- }
-
-
- template SDP_attribute m_attribute_sendonly := {sendonly:={}};
- template SDP_attribute mw_attribute_sendonly := {sendonly:={}};//MRO
- template SDP_attribute m_attribute_recvonly := {recvonly:={}};
- template SDP_attribute mw_attribute_recvonly := {recvonly:={}};//MRO
- template SDP_attribute m_attribute_sendrecv := {sendrecv:={}};
- template SDP_attribute mw_attribute_sendrecv := {sendrecv:={}};//MRO
- template SDP_attribute m_attribute_inactive := {inactive:={}};
- template SDP_attribute mw_attribute_inactive := {inactive:={}};//MRO
- template SDP_attribute mw_attribute_sendonly_inactive := (mw_attribute_sendonly,mw_attribute_inactive);
- template SDP_attribute mw_attribute_sendrecv_recvonly_omit := (mw_attribute_sendrecv,mw_attribute_recvonly,omit);
- template SDP_attribute m_attribute_AMR_DPT := { rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " AMR" }};
- template SDP_attribute m_attribute_CLEARMODE_DPT := {rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " CLEARMODE/8000" }};
- template SDP_attribute m_attribute_G722 := { rtpmap := { attr_value := "9 G722/8000" }};
- template SDP_attribute m_attribute_PCMU := { rtpmap := { attr_value := "0 PCMU/8000" }};
- template SDP_attribute m_attribute_PCMU_DPT := { rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " PCMU/8000" }};
- template SDP_attribute m_attribute_PCMA := { rtpmap := { attr_value := "8 PCMA/8000" }};
- template SDP_attribute m_attribute_PCMA_DPT := { rtpmap := { attr_value := /*pattern "**/PX_SIP_SDP_dyn & " PCMA/8000" }};
- template SDP_attribute m_attribute_T38 := { unknown := { name:=?, attr_value := pattern "*t38*" }};
-
- template SDP_attribute m_attribute_curr (charstring p_preconditionType, charstring p_statusType, charstring p_direction):=
- {
- curr:={preconditionType := p_preconditionType,
- statusType := p_statusType,
- direction := p_direction}
- };
-
- template SDP_attribute mw_attribute_curr :=
- {
- curr := ?
- };
-
- template SDP_attribute m_attribute_des (charstring p_preconditionType, charstring p_strength, charstring p_statusType, charstring p_direction):=
- {
- des:={preconditionType := p_preconditionType,
- strength := p_strength,
- statusType := p_statusType,
- direction := p_direction}
- };
-
- template SDP_attribute mw_attribute_des :=
- {
- des := ?
- };
-
- template SDP_attribute m_attribute_conf (charstring p_preconditionType, charstring p_statusType, charstring p_direction):=
- {
- conf:={preconditionType := p_preconditionType,
- statusType := p_statusType,
- direction := p_direction}
- };
- } //* end group SDP_Fields
-
-} //* end group SDP_Templates
-
-group MessageBodies {
-
- template MessageBody m_MBody_SDP(template SDP_Message p_SDP):=
- {
- sdpMessageBody := p_SDP
- };
-
- template MessageBody m_MBody_XML(template XmlBody p_xmlBody):=
- {
- xmlBody := p_xmlBody
- };
-
- template MessageBody m_MBody_longPlainText:=
- {
- textplain := c_longMessageContent_1300Bytes
- };
-
- template MessageBody m_mBody_plainText(charstring p_plaitext):=
- {
- textplain := p_plaitext
- };
-
- template MessageBody m_MBody_sipfrag(charstring p_sipfrag) := {
- sipfrag := p_sipfrag
- }
-
- template MessageBody m_MBody_MIMESdpXml(template SDP_Message p_sdp, template XmlBody p_xmlBody):=
- {
- mimeMessageBody := {boundary:="PX_SIP_MIME_Boundary",
- mimeEncapsulatedList:= {
- {content_type:="PX_SIP_SDP_ContentType",
- content_disposition:=omit,
- mime_encapsulated_part:={sdpMessageBody := p_sdp}},
- {content_type:="PX_SIP_ISUP_ContentType",
- content_disposition:=omit,
- mime_encapsulated_part:={xmlBody := p_xmlBody}}
- }
- }
- }
-
- template MessageBody mw_MBody_SDP(template SDP_Message p_SDP):=
- {
- sdpMessageBody := p_SDP
- };
-
- template MessageBody mw_MBody_XML(template XmlBody p_xmlBody):=
- {
- xmlBody := p_xmlBody
- };
-
- template MessageBody mw_MBody_MIMESdpXml(template SDP_Message p_sdp, template XmlBody p_xmlBody):=
- {
- mimeMessageBody := {boundary:=?,
- mimeEncapsulatedList:= {
- {content_type:=?,
- content_disposition:=*,
- mime_encapsulated_part:={sdpMessageBody := p_sdp}},
- {content_type:=?,
- content_disposition:=*,
- mime_encapsulated_part:={xmlBody := p_xmlBody}}
- }
- }
- }
-
- template MessageBody mw_MBody_MIME_Ims3gpp(
- template charstring p_disposition,
- template TIMS3GPP p_ims3gpp
- ):= {
- mimeMessageBody := {boundary:=?,
- mimeEncapsulatedList:= {
- *,
- {
- content_type:= c_ims3gppAplication,
- content_disposition:= p_disposition,
- mime_encapsulated_part :={
- xmlBody := {
- ims3gpp := p_ims3gpp
- }
- }
- },
- *
- }
- }
- }
-
- template MessageBody mw_MBody_MIME_Ims3gppCW(
- template charstring p_disposition,
- template TIMS3GPP p_ims3gpp
- ):= {
- mimeMessageBody := {boundary:=?,
- mimeEncapsulatedList:= {
- *,
- {
- content_type:= c_ims3gppCwApplication,
- content_disposition:= p_disposition,
- mime_encapsulated_part :={
- xmlBody := {
- ims3gpp := p_ims3gpp
- }
- }
- },
- *
- }
- }
- }
-
-}
-/*
- *
- * @desc group TemplatePreparationFunctions contain functions which are used for templates
- */
-group TemplatePreparationFunctions {
-
- group MessageBody_Calculation{
-
- /**
- *
- * @desc Calculation of Message Body length
- * @param p_mb_par contain message body part
- * @return message body length
- */
- function f_MessageBodyLength(MessageBody p_mb_par) return integer {
-
- var integer v_result:=0;
- if (MB_LENGTH_FROM_ENCVAL){ //by default it is set to true
-
- v_result:= lengthof(encvalue(p_mb_par))/8; // length in bypes, let get length of encoded value
- }
- else{
-
- // assume SDP_Message ONLY in the message body
- if (ischosen(p_mb_par.sdpMessageBody))
- {
- v_result := f_SDPlength(p_mb_par.sdpMessageBody);
- };
-
- // assume XML_Body ONLY in the message body
- if (ischosen(p_mb_par.xmlBody))
- {
- v_result := f_XMLBody_Length(p_mb_par.xmlBody, USE_FX_FOR_XML_LENGTH );
- };
-
- // assume MIME_Message in the message body
- if (ischosen(p_mb_par.mimeMessageBody))
- {
- v_result := f_MIMElength(p_mb_par.mimeMessageBody);
- };
-
- //assume sipfrag in the message body
- if (ischosen(p_mb_par.sipfrag))
- {
- v_result := f_TextPlainLength(p_mb_par); //same function due to same type with textplain
- };
-
- //assume textplain in the message body
- if (ischosen(p_mb_par.textplain))
- {
- v_result := f_TextPlainLength(p_mb_par);
- };
- }
-
- return v_result
- }
-
-
- group SDP_Len_calculation {
- /**
- *
- * @desc Calculation of SDP length
- * @param p_mb contain sdp message
- * @return sdp_lenght
- */
- function f_SDPlength(SDP_Message p_mb) return integer
- {
- var integer v_result:=2; //* due to empty line beginning of message body
- var charstring v_auxstring;
-
- v_result := 2+c_CRlen + lengthof(int2str(p_mb.protocol_version)); //* "v="
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.origin.user_name & " " &
- p_mb.origin.session_id & " " &
- p_mb.origin.session_version & " " &
- p_mb.origin.net_type & " " &
- p_mb.origin.addr_type & " " &
- p_mb.origin.addr
- ); //* "o="
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.session_name); //* "s="
- if (ispresent(p_mb.information))
- {v_auxstring:=p_mb.information; v_result := v_result + 2+c_CRlen + lengthof(v_auxstring);}; //* "i= "
- if (ispresent(p_mb.uri))
- {v_auxstring:=p_mb.uri; v_result := v_result + 2+c_CRlen + lengthof(v_auxstring);}; //* "u="
-
- if (ispresent(p_mb.emails)) {
- for (var integer i:=0; i<sizeof(p_mb.emails); i:=i+1)
- {v_result := v_result + 2+c_CRlen + lengthof(p_mb.emails[i].addr_or_phone); //* "e="
- if (ispresent(p_mb.emails[i].disp_name))
- {v_auxstring:=p_mb.emails[i].disp_name; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- };
-
- if (ispresent(p_mb.phone_numbers)) {
- for (var integer i:=0; i<sizeof(p_mb.phone_numbers); i:=i+1)
- {v_result := v_result + 2+c_CRlen + lengthof(p_mb.phone_numbers[i].addr_or_phone); //* "p= "
- if (ispresent(p_mb.phone_numbers[i].disp_name))
- {v_auxstring:=p_mb.phone_numbers[i].disp_name; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- };
-
- if (ispresent(p_mb.connection))
- {
- var integer v_len_con0 := f_SDPlength_connection(p_mb.connection);
- v_result := v_result + v_len_con0;
- }; //* "c="
-
- if (ispresent(p_mb.bandwidth))
- {
- for (var integer i:=0; i<sizeof(p_mb.bandwidth); i:=i+1) { //* "b= "
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.bandwidth[i].modifier & " ") +
- lengthof(int2str(p_mb.bandwidth[i].bandwidth));
- }
- };
-
- for (var integer i:=0; i<sizeof(p_mb.times); i:=i+1) {
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.times[i].time_field.start_time & " "
- & p_mb.times[i].time_field.stop_time);//* "t="
-
- if (ispresent(p_mb.times[i].time_repeat))
- {
- for (var integer j:=0; j<sizeof(p_mb.times[i].time_repeat); j:=j+1)
- {
- v_result := v_result + 2+c_CRlen + lengthof(int2str(p_mb.times[i].time_repeat[j].repeat_interval.time)); //* "r="
- if (ispresent(p_mb.times[i].time_repeat[j].repeat_interval.unit))
- {
- v_auxstring:=p_mb.times[i].time_repeat[j].repeat_interval.unit;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
-
- v_result := v_result + 1 + lengthof(int2str(p_mb.times[i].time_repeat[j].active.time));
- if (ispresent(p_mb.times[i].time_repeat[j].active.unit))
- {
- v_auxstring:=p_mb.times[i].time_repeat[j].active.unit;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
-
- for (var integer k:=0; k<sizeof(p_mb.times[i].time_repeat[j].offsets); k:=k+1)
- {
- v_result := v_result + 1 + lengthof(int2str(p_mb.times[i].time_repeat[j].offsets[k].time));
- if (ispresent(p_mb.times[i].time_repeat[j].offsets[k].unit))
- {
- v_auxstring:=p_mb.times[i].time_repeat[j].offsets[k].unit;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
- }
- }
- };
- };
-
- if (ispresent(p_mb.timezone_adjustments))
- {log("timezone adjustments have not been considered in SDP length calculation yet");
- }; //* "z="
-
- if (ispresent(p_mb.key)) {
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.key.method); //* "k= "
- if (ispresent(p_mb.key.key))
- {v_auxstring:=p_mb.key.key; v_result := v_result + 1 + lengthof(v_auxstring);};
- };
- if (ispresent(p_mb.attributes)) {
- for (var integer i:=0; i<sizeof(p_mb.attributes); i:=i+1){ //* "a= "
- var integer v_len_con1 := f_SDPlength_attribute(p_mb.attributes[i]);
- v_result := v_result + v_len_con1;
- };
- }; //* "a="
-
- if (ispresent(p_mb.media_list))
- {
- for (var integer i:=0; i<sizeof(p_mb.media_list); i:=i+1){ //* "m= "
-
- //* for each media_field
- //* log("p_mb.media_list[i] ",p_mb.media_list[i]);
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.media_list[i].media_field.media)
- + 1 + lengthof(int2str(p_mb.media_list[i].media_field.ports.port_number));
-
-
- if (ispresent(p_mb.media_list[i].media_field.ports.num_of_ports))
- {v_result := v_result + 1 + lengthof(int2str(p_mb.media_list[i].media_field.ports.num_of_ports));};
- v_result := v_result + 1 + lengthof(p_mb.media_list[i].media_field.transport);
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].media_field.fmts); j:=j+1){
- v_result := v_result + 1 + lengthof(valueof(p_mb.media_list[i].media_field.fmts[j]));
- }
-
- if (ispresent(p_mb.media_list[i].information)) {
- v_auxstring:=p_mb.media_list[i].information;
- v_result := v_result + 2+c_CRlen + lengthof(v_auxstring); //* "i= "
- };
- if (ispresent(p_mb.media_list[i].connections)) {
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].media_field.fmts); j:=j+1){
- var integer v_len_con2 := f_SDPlength_connection(p_mb.media_list[i].connections[j]);
- v_result := v_result + v_len_con2;
- }; //* end for
- };
- if (ispresent(p_mb.media_list[i].bandwidth)) { //* "b= "
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].bandwidth); j:=j+1){
- v_result := v_result + 2+c_CRlen + lengthof(p_mb.media_list[i].bandwidth[j].modifier)
- + 1 + lengthof(int2str(p_mb.media_list[i].bandwidth[j].bandwidth));
- }; //* end for
- };
- if (ispresent(p_mb.media_list[i].key)) { //* "k= "
- v_result := v_result + 1 + lengthof(p_mb.media_list[i].key.method);
- if (ispresent(p_mb.media_list[i].key.key)) {
- v_auxstring := p_mb.media_list[i].key.key;
- v_result := v_result + 1 + lengthof(v_auxstring);
- };
- };
- if (ispresent(p_mb.media_list[i].attributes)) {
- for (var integer j:=0; j<sizeof(p_mb.media_list[i].attributes); j:=j+1){ //* "a= "
- var integer v_len_attr := f_SDPlength_attribute(p_mb.media_list[i].attributes[j]);
- v_result := v_result + v_len_attr;
- } //* end for j
- };
- }; //* end for i
- }; //* end if media_list
-
- return v_result;
- };//* end function f_SDPlength
-
- function f_SDPlength_connection(SDP_connection p_element) return integer //* "c="
- {
- var integer v_result:=0;
- var charstring v_auxstring;
- v_result := v_result + 2+c_CRlen + lengthof(p_element.net_type & " " &
- p_element.addr_type & " " &
- p_element.conn_addr.addr);
- if (ispresent(p_element.conn_addr.ttl))
- {v_result := v_result + 1 + lengthof(int2str(p_element.conn_addr.ttl));};
- if (ispresent(p_element.conn_addr.num_of_addr))
- {v_result := v_result + 1 + lengthof(int2str(p_element.conn_addr.num_of_addr));};
- return v_result
- } //* f_SDPlength_connection
-
- function f_SDPlength_attribute(SDP_attribute p_element) return integer //* "a="
- {
- var integer v_result:=0;
- var charstring v_auxstring;
- if (ischosen(p_element.cat)) {v_result := v_result + 2+c_CRlen + lengthof("cat:" & p_element.cat.attr_value)};
- if (ischosen(p_element.keywds)) {v_result := v_result + 2+c_CRlen + lengthof("keywds:" & p_element.keywds.attr_value)};
- if (ischosen(p_element.tool)) {v_result := v_result + 2+c_CRlen + lengthof("tool:" & p_element.tool.attr_value)};
- if (ischosen(p_element.ptime)) {v_result := v_result + 2+c_CRlen + lengthof("ptime:" & p_element.ptime.attr_value)};
- if (ischosen(p_element.recvonly)) {v_result := v_result +c_CRlen + lengthof("recvonly")};
- if (ischosen(p_element.sendrecv)) {v_result := v_result +c_CRlen + lengthof("sendrecv")};
- if (ischosen(p_element.sendonly)) {v_result := v_result +c_CRlen + lengthof("sendonly")};
- if (ischosen(p_element.inactive)) {v_result := v_result +c_CRlen + lengthof("inactive")};
- if (ischosen(p_element.orient)) {v_result := v_result + 2+c_CRlen + lengthof("orient:" & p_element.orient.attr_value)};
- if (ischosen(p_element.sdp_type)) {v_result := v_result + 2+c_CRlen + lengthof("type:" & p_element.sdp_type.attr_value)};
- if (ischosen(p_element.charset)) {v_result := v_result + 2+c_CRlen + lengthof("charset" & p_element.charset.attr_value)};
- if (ischosen(p_element.sdplang)) {v_result := v_result + 2+c_CRlen + lengthof("sdplang:" & p_element.sdplang.attr_value)};
- if (ischosen(p_element.lang)) {v_result := v_result + 2+c_CRlen + lengthof("lang:" & p_element.lang.attr_value)};
- if (ischosen(p_element.framerate)) {v_result := v_result + 2+c_CRlen + lengthof("framerate:" & p_element.framerate.attr_value)};
- if (ischosen(p_element.quality)) {v_result := v_result + 2+c_CRlen + lengthof("quality:" & p_element.quality.attr_value)};
- if (ischosen(p_element.fmtp)) {v_result := v_result + 2+c_CRlen + lengthof("fmtp:" & p_element.fmtp.attr_value)};
- if (ischosen(p_element.curr)) {v_result := v_result + 2+c_CRlen + lengthof("curr:" & p_element.curr.preconditionType & " "
- & p_element.curr.statusType & " " & p_element.curr.direction)};
- if (ischosen(p_element.des)) {v_result := v_result + 2+c_CRlen + lengthof("des:" & p_element.des.preconditionType & " "
- & p_element.des.strength & " " & p_element.des.statusType & " " & p_element.des.direction)};
- if (ischosen(p_element.conf)) {v_result := v_result + 2+c_CRlen + lengthof("conf:" & p_element.conf.preconditionType & " "
- & p_element.des.statusType & " " & p_element.des.direction)};
- if (ischosen(p_element.rtpmap)) {v_result := v_result + 2+c_CRlen + lengthof("rtpmap:" & p_element.rtpmap.attr_value)};
- if (ischosen(p_element.rtcp)) {v_result := v_result + 2+c_CRlen + lengthof("rtcp:" & p_element.rtcp.attr_value)};
- if (ischosen(p_element.unknown))
- {v_result := v_result + 2+c_CRlen + lengthof(p_element.unknown.name);
- if (ispresent(p_element.unknown.attr_value))
- {var charstring aux := p_element.unknown.attr_value;
- v_result := v_result + lengthof(":" & p_element.unknown.attr_value);
- };
- };
- //* log("axr: length attribute=", v_result);
- return v_result
- } //* f_SDPlength_attribute
-
- } //* group SDPlen_calculation
-
- group XML_Len_calculation{
-
- /**
- * @desc Declaration of external functions to calculate length of message bodies
- * switching of internal or external functions are made by boolean module parameter/PIXIT
- * USE_FX_FOR_XML_LENGTH declared at top of this module
- */
-
- external function fx_calculateXMLBodyLen(XmlBody p_mb) return integer;
-
- /**
- *
- * @desc Calculation of XML body length
- * @param p_mb contain XML body
- * @return xml_length
- */
- function f_XMLBody_Length(XmlBody p_mb, boolean p_ext_func) return integer
- {
- var integer v_result:=0;
-
- if ( p_ext_func){
- v_result := fx_calculateXMLBodyLen(p_mb);
- }else{
- // assume ConferenceInfo ONLY in the XML message body
- if (ischosen(p_mb.conference_type))
- {
- v_result := f_XMLBody_ConferenceInfo_Length(p_mb.conference_type);
- };
-
- // assume CUG ONLY in the XML message body
- if (ischosen(p_mb.cug))
- {
- v_result := f_XMLBody_Cug_Length(p_mb.cug);
- };
-
- // assume MCID ONLY in the XML message body
- if (ischosen(p_mb.mcid))
- {
- v_result := f_XMLBody_Mcid_Length(p_mb.mcid);
- };
-
- // assume PSTNTransit ONLY in the XML message body
- if (ischosen(p_mb.pstnTransit))
- {
- v_result := f_XMLBody_PSTNTransit_Length(p_mb.pstnTransit);
- };
-
- // assume Simservs ONLY in the XML message body
- if (ischosen(p_mb.simservs))
- {
- v_result := f_XMLBody_Simservs_Length(p_mb.simservs);
- };
-
- // assume ResourceLists ONLY in the XML message body
- if (ischosen(p_mb.resourceLists))
- {
- v_result := f_XMLBody_ResourceList_Length(p_mb.resourceLists);
- };
-
- // assume Ims3GPP ONLY in the XML message body
- if (ischosen(p_mb.ims3gpp))
- {
- v_result := f_XMLBody_Ims3GPP_Length(p_mb.ims3gpp);
- };
-
- /** Add aditional checks regarding to new variants,
- * also implement appropriate function for calculation
- */
- }
- return v_result
- } //* f_XMLBodyLength
-
- group XMLBodies_calculation{
-
- /**
- *
- * @desc Calculation of XML ConferenceInfo element length
- * @param p_mb contain XML ConfInfo body
- * @return xml_length
- */
- function f_XMLBody_ConferenceInfo_Length(Conference_type p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_ConferenceInfo_Length
-
- /**
- *
- * @desc Calculation of XML CUG element length
- * @param p_mb contain XML CUG body
- * @return xml_length
- */
- function f_XMLBody_Cug_Length(Cug p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_Cug_Length
-
- /**
- *
- * @desc Calculation of XML MCID element length
- * @param p_mb contain XML MCID body
- * @return xml_length
- */
- function f_XMLBody_Mcid_Length(Mcid p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
-
- return v_result
- } //* f_XMLBody_Mcid_Length
-
- /**
- *
- * @desc Calculation of XML PSTNTransit element length
- * @param p_mb contain XML PSTNTransit body
- * @return xml_length
- */
- function f_XMLBody_PSTNTransit_Length(PSTN_transit p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_PSTNTransit_Length
-
- /** @desc Calculation of XML Simservs element length
- * @param p_mb contain XML Simservs body
- * @return xml_length
- */
- function f_XMLBody_Simservs_Length(Simservs p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_Simservs_Length
-
- /** @desc Calculation of XML ResourceList length
- * @param p_mb contain XML ResourceList body
- * @return xml_length
- */
- function f_XMLBody_ResourceList_Length(Resource_lists p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_ResourceList_Length
-
- /** @desc Calculation of XML Ims3GPP length
- * @param p_mb contain XML Ims3GPP body
- * @return xml_length
- */
- function f_XMLBody_Ims3GPP_Length(TIMS3GPP p_mb) return integer
- {
- var integer v_result:= lengthof(encvalue(p_mb))/8;
- return v_result
- } //* f_XMLBody_Ims3GPP_Length
-
- } //* XMLBodies_calculation
-
- }//* group XMLlen_calculation
-
- group MIME_Len_calculation{
- /**
- *
- * @desc Calculation of MIME length
- * @param p_mb contain MIME message
- * @return xml_length
- */
- function f_MIMElength(MIME_Message p_mb) return integer
- {
- var integer v_result:=2; //0d0a
-
- v_result := v_result + lengthof(p_mb.boundary) + 2/*0d0a*/;
-
- for (var integer i:=0; i<sizeof(p_mb.mimeEncapsulatedList); i:=i+1){
-
- v_result := v_result + lengthof("Content-Type: ")+ lengthof(p_mb.mimeEncapsulatedList[i].content_type) + 2/*0d0a*/ ;
-
- if (ispresent(p_mb.mimeEncapsulatedList[i].content_disposition)){
- v_result := v_result + lengthof("Content-Disposition: ")+ lengthof(p_mb.mimeEncapsulatedList[i].content_disposition) + 2/*0d0a*/ ;
- }
-
- //v_result := v_result +2/*0d0a*/; ??? to check
-
- // assume SDP_Message ONLY in the message body
- if (ischosen(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.sdpMessageBody))
- {
- v_result := v_result + f_SDPlength(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.sdpMessageBody);
- };
-
- // assume XML_Body ONLY in the message body
- if (ischosen(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlBody))
- {
- v_result := v_result + f_XMLBody_Length(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlBody, USE_FX_FOR_XML_LENGTH );
- };
-
-// //assume XML_Message ONLY in the message body
-// if (ischosen(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlMessage))
-// {
-// v_result := v_result + f_XMLlength(p_mb.mimeEncapsulatedList[i].mime_encapsulated_part.xmlMessage, USE_FX_FOR_XML_LENGTH );
-// };
-
- //v_result := v_result +2/*0d0a*/; ??? to check
- }
-
- //v_result := v_result +2/*0d0a*/; ??? to check
-
- return v_result
- } //* f_MIMElength
-
- }//* group MIMElen_calculation
-
- group TextPlain_Len_calculation{
- /**
- *
- * @desc Calculation of messagebody-textplain type length
- * @param p_mb contain textplain message
- * @return lenght
- */
- function f_TextPlainLength(MessageBody p_mb) return integer
- {
- var integer v_result:=0;
-
- v_result:=v_result+lengthof(p_mb.textplain);
-
- return v_result;
- }//* end function f_TextPlainLength
-
- }//*end group TextPlainLen_calculation
-
- }//*group MessageBody_Calculation
-
-
- group GiveHeaders {
- /**
- *
- * @desc Return component variable of recordRoute header if vc_boo_recordRoute is true
- * @return component variable of recordRoute header
- */
-
- function f_recordroute() runs on SipComponent return template RecordRoute
- {
- template RecordRoute v_recordRoute := omit;
- if (vc_boo_recordRoute)
- {return vc_recordRoute}
- else {return(v_recordRoute)} //* TODO: RecordRoute is not OPTIONAL!!! Check IT!
- }
-
- /**
- *
- * @desc Return component variable of Route header if vc_boo_route is true
- * @return component variable of recordRoute header
- */
- function f_route() runs on SipComponent return template Route
- {
- template Route v_route := omit;
- if (vc_boo_route)
- {return vc_route} //* TODO: Route header need to be in reverse order than RecordRoute, question of return value - RecordRoute
- else {return(v_route)} //* TODO: Route is not OPTIONAL!!! Check IT!
- }
-
- } //* end group GiveHeaders
-
-group others {
-
-/*
- *
- * @desc function combines two comma parameter lists
- * @param p_list1 first list
- * @param p_list2 second list
- * @return comma parameter list that contains parameters from both input lists
- * @verdict
- */
-
- function f_merge_CommaParam_List(CommaParam_List p_list1, CommaParam_List p_list2) return template CommaParam_List
- { var template CommaParam_List p_result;
- var integer limit1 := sizeof(p_list1);
- for (var integer i:=0; i<limit1; i:=i+1) {
- p_result[i] := p_list1[i]
- };
- for (var integer i:=0; i<sizeof(p_list2); i:=i+1) {
- p_result[i+limit1] := p_list2[i]
- };
- return p_result
- }
-
-} //* end group others
-
-} //* group TemplatePreparationFunctions
-
-
-} //* end module LibSip_Templates
/v3.0.3/tags/v1.6.0/ttcn/LibSip_Templates.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_PIXITS.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_PIXITS.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_PIXITS.ttcn (nonexistent)
@@ -1,364 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- * NOTE: PIXITS in folowing groups can be ignored if this information
- * is provided in other modules of the ATS that uses this SIP library
- * - Ports_and_addresses_of_the_SUT
- * - PortsAndAddressesOfTheTS1
- * - PortsAndAddressesOfTheTS2
- * - PortsAndAddressesOfTheTS3
- * - ParametersForHTTP_Authentication
- */
-
-module LibSip_PIXITS language "TTCN-3:2005"//MRO
-{
- //LibCommon
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_DataStrings all;
-
-// _____________________________ PIXIT-S_______________________________
- group SIP_PIXITparameters{
- group SDPParameter {
- modulepar {
-
- /** @desc charstring for SDP dynamic port
- */
- charstring PX_SIP_SDP_dyn := "0";
-
- /** @desc charstring for SDP bandwidth modifier
- */
- charstring PX_SIP_SDP_b_modifier := "AS";
-
- /** @desc integer for SDP bandwidth value
- */
- integer PX_SIP_SDP_b_bandwidth := 64;
-
- /** @desc charstring for SDP media attribute encoding supported by the IUT
- */
- charstring PX_SIP_SDP_encoding := "PCMU/8000";
-
- /** @desc charstring for SDP media attribute encoding unavailable by the IUT
- */
- charstring PX_SIP_SDP_encoding_unavail := "GSM/8000"; // f_Sip_TC2105_IS___xx__U18
-
- /** @desc charstring for SDP media attribute encoding unsupported by the IUT
- */
- charstring PX_SIP_SDP_encoding_unsup := "GSM/8000"; // f_Sip_TC2105_IS___xx__U18
-
- /** @desc charstring for SDP media T.38 transport (used in TC2101_IS___AU__09)
- */
- charstring PX_SIP_SDP_transport := "udptl";
- } // modulepar
- } //group SDP Parameter
-
- group ISUPinterworkingParameters{
- modulepar {
- /** @desc charstring for Used CPC language
- */
- charstring PX_SIP_ISUP_LANGUAGE := "English";
- /** @desc charstring for Used CPC language
- */
- charstring PX_SIP_ISUP_CPC_VALUE := "prison";
- }//modulepar
- } // goup PSTNParameters
-
- group SupportedOptions{
- modulepar {
-
- /** @desc boolean for True if 100rel mechanism is supported in SIP
- */
- boolean PX_SIP_100rel := false;
-
- /** @desc boolean for True if precondition mechanism is supported in SIP
- */
- boolean PX_SIP_precondition := false;
-
- /** @desc boolean for True if UDP Transport is used by the IUT to run campaign
- */
- boolean PX_SIP_UDP := true;
-
- /** @desc charstring for Used Transport in upper case "UDP"/"TCP"
- */
- charstring PX_SIP_TRANSPORT := "UDP";
- }//modulepar
- }// group SupportedOptions{
-
- // PIXITS in group Ports_and_addresses_of_the_SUT can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group Ports_and_addresses_of_the_SUT{
- modulepar{
-
- /** @desc integer for SUT port number to exchange SIP messages
- */
- integer PX_SIP_SUT_PORT := 5060;
-
- /** @desc charstring for SUT IP address to exchange SIP messages
- */
- charstring PX_SIP_SUT_IPADDR := "172.27.16.115";
-
- /** @desc charstring for SUT domain
- */
- charstring PX_SIP_SUT_HOME_DOMAIN := "172.27.16.115";
-
- /** @desc charstring for unknown SUT domain
- */
- charstring PX_SIP_SUT_HOME_DOMAIN_UNKNOWN := "172.88.88.88";
-
- } //modulepar
- }
-
- // PIXITS in group PortsAndAddressesOfTheTS1 can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group PortsAndAddressesOfTheTS1 {
-// Ports and addresses of the TS1 (tester), first access
- modulepar {
- /** @desc integer for port number used by the TS1 to exchange SIP messages
- */
- integer PX_SIP_TS1_PORT := 5060;
-
- /** @desc charstring for IP address used by the TS1 to exchange SIP messages
- */
- charstring PX_SIP_TS1_IPADDR := "172.27.1.218";
-
- /** @desc charstring for identity of the tester local domain
- */
- charstring PX_SIP_TS1_LOCAL_DOMAIN := "172.27.1.218";
-
- /** @desc charstring for identity of the tester local user
- */
- charstring PX_SIP_TS1_LOCAL_USER := "2910";
-
- /** @desc charstring for identity of the user with active call diversion service
- */
- charstring PX_SIP_TS1_LOCAL_USER_DIV := "2907";
-
- /** @desc charstring for identity of the tester local user (format "+"cc+ndc+sn)
- */
- charstring PX_SIP_TS1_LOCAL_USER_FULL := "+ 33492941111";
-
- /** @desc integer for port number used by the TS to exchange media streams
- */
- integer PX_SIP_TS1_BEARER_PORT := 52000;
-
- /** @desc charstring for port number used by the TS to exchange media streams
- */
- integer PX_SIP_TS1_BEARER_PORT2 := 62000;
-
- /** @desc charstring for IP address used by the TS to exchange media streams
- */
- charstring PX_SIP_TS1_BEARER_IPADDR := "172.27.1.218";
- }//modulepar
- }// group PortsAndAddressesOfTheTS
-
- // PIXITS in group PortsAndAddressesOfTheTS2 can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group PortsAndAddressesOfTheTS2 {
-// Ports and addresses of the TS2 (tester), second access
- modulepar {
-
- /** @desc integer for port number used by the TS2 to exchange SIP messages
- */
- integer PX_SIP_TS2_PORT := 5060;
-
- /** @desc charstring for IP address used by the TS2 to exchange SIP messages
- */
- charstring PX_SIP_TS2_IPADDR := "172.27.1.219";
-
- /** @desc charstring for identity of the tester local domain
- */
- charstring PX_SIP_TS2_LOCAL_DOMAIN := "172.27.1.219";
-
- /** @desc charstring for identity of the tester local user
- */
- charstring PX_SIP_TS2_LOCAL_USER := "2911";
-
- /** @desc charstring for identity of the user with active call diversion service
- */
- charstring PX_SIP_TS2_LOCAL_USER_DIV := "2011";
-
- /** @desc charstring for identity of the tester local user (format "+"cc+ndc+sn)
- */
- charstring PX_SIP_TS2_LOCAL_USER_FULL := "+ 33 4 92941111";
-
- /** @desc integer for port number used by the TS to exchange media streams
- */
- integer PX_SIP_TS2_BEARER_PORT := 53000;
-
- /** @desc integer for port number used by the TS to exchange media streams
- */
- integer PX_SIP_TS2_BEARER_PORT2 := 63000;
-
- /** @desc charstring for IP address used by the TS to exchange media streams
- */
- charstring PX_SIP_TS2_BEARER_IPADDR := "172.27.1.218";
-
- } // modulepar
- }//group PortsAndAddressesOfTheTS2
-
- // PIXITS in group PortsAndAddressesOfTheTS3 can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group PortsAndAddressesOfTheTS3 {
-// Ports and addresses of the TS3 (tester), second access
- modulepar{
- /** @desc integer for Port number used by the TS3 to exchange SIP messages
- */
- integer PX_SIP_TS3_PORT := 5060;
-
- /** @desc charstring for IP address used by the TS3 to exchange SIP messages
- */
- charstring PX_SIP_TS3_IPADDR := "172.27.1.220";
-
- /** @desc charstring for identity of the tester local domain
- */
- charstring PX_SIP_TS3_LOCAL_DOMAIN := "172.27.1.220";
-
- /** @desc charstring for identity of the tester local user
- */
- charstring PX_SIP_TS3_LOCAL_USER := "2012";
-
- } //modulepar
- } //group PortsAndAddressesOfTheTS3
-
- group RegistrationParameters {
- modulepar {
-
- /** @desc boolean for the SIP user if it have to register itself before executing a test case
- */
- boolean PX_SIP_REGISTRATION := false;
-
- /** @desc integer for the minimun SIP user registration expires-value
- */
- integer PX_SIP_REGISTRATION_exp_min := 3600;
-
- /** @desc charstring for REGISTRAR domain
- */
- charstring PX_SIP_SUT_REGISTRAR_DOMAIN := "172.27.16.115";
- }// modulepar
- }// group Registration parameters
-
- group ReleaseCause{
- modulepar {
- /** @desc integer for Release cause to be used in BYE and in Failure messages
- */
- integer PX_SIP_BYE_CAUSE := 16;
- }//modulepar
- }//group ReleaseCause
-
- group RTPStreamControlAndCheck{
- modulepar {
- /** @desc boolean for True, if conversation check is implemented.
- */
- boolean PX_SIP_CheckConversation := false;
-
- /** @desc boolean for True, if DTMF check is implemented.
- */
- boolean PX_SIP_CheckDTMF := false;
-
- /** @desc boolean for True, if Announcement sending is implemented.
- */
- boolean PX_SIP_SendAnnouncement := false;
-
- /** @desc boolean for True, if ringing check is implemented.
- */
- boolean PX_SIP_CheckRinging := false;
- }//modulepar
- }//group RTPStreamControlAndCheck
-
- group SwitchToEnableAuthentication {
- modulepar{
- /** @desc boolean for option controlling if authentication is enabled/disabled for REGISTER messages
- */
- boolean PX_SIP_REGISTER_AUTHENTICATION_ENABLED := true;
-
- /** @desc boolean for option controlling if authentication is enabled/disabled for INVITE messages
- */
- boolean PX_SIP_INVITE_AUTHENTICATION_ENABLED := false;
- }
- }
-
- // PIXITS in group ParametersForHTTP_Authentication can be ignored if this information is provided in other modules of the ATS that uses this SIP library
- group ParametersForHTTP_Authentication {
- modulepar{
-
- /** @desc charstring for RFC 2617 clause 3-2-1 qop options:
- * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The
- * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
- */
- charstring PX_SIP_SUT_UE1_QOP := "auth";
-
- /** @desc charstring for RFC 2617 clause 3-2-2 username:
- * The name of user in the specified realm
- */
- charstring PX_SIP_SUT_UE1_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username
- */
- charstring PX_SIP_SUT_UE1_PASSWD := "1234";
-
- /** @desc charstring for RFC 2617 3-2-1 qop options:
- * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The
- * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
- */
- charstring PX_SIP_SUT_UE2_QOP := "auth";
-
- /** @desc charstring for RFC 2617 clause 3-2-2 username:
- * The name of user in the specified realm
- */
- charstring PX_SIP_SUT_UE2_USERNAME := "abcd";
-
- /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username
- */
- charstring PX_SIP_SUT_UE2_PASSWD := "1234";
-
- }//modulepar
- }//group ParametersForHTTP_Authentication
-
- group SIP_Timers {
- modulepar {
- /** @desc float for T1 RTT estimate (500 ms)
- */
- float PX_SIP_T1 := 0.5;
-
- /** @desc float for T2 Maximum retransmit interval for non-INVITE requests and INVITE response (4000 ms)
- */
- float PX_T2 := 4.0;
-
- /** @desc float for T4 Maximum duration a message will remain in the network
- */
- float PX_T4 := 1.0;
-
- /** @desc float for TDELAY default value for timeout on outgoing SIP request (ie 64*T1)
- */
- float PX_SIP_TF := 32.0;
-
- /** @desc float for TWait default value for waiting an operator action
- */
- float PX_SIP_TWAIT := 30.0;
-
- /** @desc float for TAck default value for waiting an acknowledgement
- */
- float PX_SIP_TACK := 8.0;
-
- /** @desc float for TResp default value for waiting for a response from the IUT
- */
- float PX_SIP_TRESP := 15.0;
-
- /** @desc float for TNoAct default value for waiting no message from the IUT
- * Value given for PX_TNOACT should be less than value of
- * SHORT_REGISTRATION constant (which is currently "3" (seconds))
- */
- float PX_SIP_TNOACT := 1.0;
-
- /** @desc float for TSYNC default value to synchronise ptc
- */
- float PX_SIP_TSYNC := 10.0;
-
- /** @desc float for TGUARD default value for an extra long timer to limit test execution
- */
- float PX_SIP_TGUARD := 120.0;
-
- /** @desc float for TRespRetention minimum time that a Proxy will wait before sending a final response
- */
- float PX_TRespRetention := 1.0;
- }//modulepar
- }//group SIP_Timers
- } //group SIP_PIXITparameters
-} // end module LibSip_PIXITS
/v3.0.3/tags/v1.6.0/ttcn/LibSip_PIXITS.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_Interface.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_Interface.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_Interface.ttcn (nonexistent)
@@ -1,184 +0,0 @@
-/*
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the types used by the test component
- * for SIP-IMS tests. Module become from STF306 and STF334-336
- */
-
-module LibSip_Interface language "TTCN-3:2005"//MRO
-{
- //LibCommon
- import from LibCommon_Sync all;
- import from LibCommon_AbstractData all;
- import from LibCommon_BasicTypesAndValues all;
- import from LibCommon_DataStrings all;
- //LibSip
- import from LibSip_SIPTypesAndValues all;
- import from LibSip_SDPTypes all;
- import from LibSip_XMLTypes all;
-
- import from LibSip_PIXITS all;
-
- group AdressTypes
- {
- type record address4SIP
- {
- //HostPort
- charstring host optional, // hostname, IPv4 or IPv6
- integer portField optional // represented as an integer
- } with { encode "SIPCodec" }
-
- type address4SIP address;
-
- }// end group AdressTypes
-
- type port SipPort message {
- inout Request,
- REGISTER_Request,
- INVITE_Request,
- OPTIONS_Request,
- BYE_Request,
- CANCEL_Request,
- ACK_Request,
- PRACK_Request,
- NOTIFY_Request,
- SUBSCRIBE_Request,
- PUBLISH_Request,
- UPDATE_Request,
- REFER_Request,
- MESSAGE_Request,
- INFO_Request,
- Response,
- Raw } with { extension "address" };
-
- signature s_SIP_conversation (in charstring text, out boolean answer);
- signature s_SIP_ringing (in charstring text, out boolean answer);
- signature s_SIP_announcementA (in charstring text, out boolean answer);
- signature s_SIP_announcementB (in charstring text, out boolean answer);
- signature s_SIP_announcement (in charstring text, out boolean answer);
- signature s_SIP_voiceMessage (in charstring text, out boolean answer);
- signature s_SIP_mediastopped (in charstring text, out boolean answer);
- type port operatorPort procedure {inout s_SIP_conversation; inout s_SIP_ringing; inout s_SIP_announcementA; inout s_SIP_announcementB; inout s_SIP_announcement; inout s_SIP_voiceMessage; inout s_SIP_mediastopped};
-
- // Solution for building error problem. (Important for validation)
- //type component ImsComponent extends SipComponent need to be located in LibIms_Interface and not in LibSip_Interface module
- //With this solution TAU compiler error.
-// type component ImsComponent extends SipComponent
-// {
-// // general variables
-// var ImsInterfaceProfile vc_interfaceprofile
-// } // end ImsComponent
-
- type component SipComponent
- {
- //port
- port SipPort SIPP;
- // used for communication with the operator
- port operatorPort opPort;
-
- // current address to send TCP/UDP messages
- var SipUserProfile vc_userprofile; // PIXIT userinformation
- var address vc_sent_label;//removed because this value is predefined and used to open socket := {host := PX_SIP_SUT_IPADDR, portField := PX_SIP_SUT_PORT};
-
- // last incoming message
- var Response vc_response; // last incoming response message
- var boolean vc_boo_response := false; // to check if response received or not
- var Request vc_request; // last incoming request message
- var boolean vc_boo_request := false; // to check if request received or not
- var Request vc_requestFor407; // last INVITE request to be authorized if 407/401 received from Proxy
-
- var SipUrl vc_requestUri := c_empty_RequestUri;
- var SipUrl vc_requestUri2 := c_empty_RequestUri;//MRO
- var charstring vc_branch := "";
- var charstring vc_branch_ICSCF := "";
- var charstring vc_branch_SCSCF := "";
-
- // SIP message header fields (for building next message)
- var CallId vc_callId := c_empty_CallId;
- var CallId vc_callIdReg := c_empty_CallId;
- var From vc_from := c_empty_From;
- var To vc_to := c_empty_To;
- var To vc_cancel_To := c_empty_To; // used for next CANCEL
- var Via vc_via := c_empty_Via;
- var Via vc_via_REG := c_empty_Via; // via used in last REGISTER
- var ContentType vc_contentType:= c_empty_ContentType;//MRO
-
- var RecordRoute vc_recordRoute; // value of RecordRoute header
- var boolean vc_boo_recordRoute := false; // boolean indicates valid recordRoute
- var Route vc_route; // value of Route header
- var Route vc_route_REG; // value of Route header from registration ServiceRoute header for initial Requests
- var boolean vc_boo_route := false; // boolean indicates valid Route
-
- var Contact vc_contact; // value of Contact header
- var CSeq vc_cSeq := c_empty_cSeq; // value of CSeq header
- var RAck vc_rAck := { fieldName := RACK_E, responseNum := 1, seqNumber := 1, method := "INVITE"}; // value of RAck header
- var HostPort vc_reqHostPort := {host:=PX_SIP_SUT_IPADDR, portField:=PX_SIP_SUT_PORT}; // address to send request
- var Privacy vc_privacy;
- var HistoryInfo_List vc_historyInfoList := {}; // value of history list according to RFC4244
- var SipUrl vc_confURI; // conference URI according to TS124147 ch. 5.3.1.3.2
- var SDP_Message vc_sdp_remote; // incoming SDP offers
- var SDP_Message vc_sdp_local; // SDP values to be sent
- var XmlBody vc_xml_remote; // incoming XML value
- var XmlBody vc_xml_local; //SDP values to be sent
-
- var CSeq vc_iut_CSeq := c_empty_cSeq; // value of last CSeq header used by the IUT in request
- // To/From header-fields to be used if the callee will release the session
- var To vc_callee_To := c_empty_To;
- var From vc_callee_From := c_empty_From;
- // To/From header-fields to be used if the caller will release the session
- var To vc_caller_To := c_empty_To;
- var From vc_caller_From := c_empty_From;
- var Authorization vc_authorization;
-
- // variables for storing default references
- var default vc_default;
- var default vc_def_catchSyncStop;
-
- // general timers
- timer tc_T1 := PX_SIP_T1;
- timer tc_Tf := PX_SIP_TF;
- timer tc_wait := PX_SIP_TWAIT;
- timer tc_ack := PX_SIP_TACK;
- timer tc_resp := PX_SIP_TRESP;
- timer tc_noAct := PX_SIP_TNOACT; // time for SUT to get idle state
-// timer TRept;
-// timer TSync := PX_SIP_TSYNC;
- timer tc_guard := PX_SIP_TGUARD;//MRO
- timer tc_tDelay := 32.0;
-
- var float vc_tcRESP := PX_SIP_TRESP; // standard value for TRESP (may be modified in particular tests)
-
- // indicators set/used parameter status or state handling in default
- var boolean vc_sdp_remote_is_valid := false; // true if there is a value in v_SDP_remote
- var boolean vc_history_is_valid := false; // true if there is a HistoryList in response message
- var boolean vc_send_SDP := false; // send SDP in the next outgoing message
- var boolean vc_ignore_bye := false; // enable ignore of repeated bye in default
- var boolean vc_ignore_invite := false; // enable ignore invite in default
- var boolean vc_ignore_subscribe := false; // enable ignore subscribe in default
- var boolean vc_ignore181 := false; // enable ignore of 181 in default
- var boolean vc_ignore484 := false; // enable ignore of 484 in default
- var boolean vc_ignore4xx := false; // enable ignore of 4xx in default
- var boolean vc_ignore200OKinv := false; // enable ignore of 200OKinv in default
- var boolean vc_supported_100rel := false; // true if the received invite contains 100rel
- var boolean vc_supported_precondition:= false; // true if the received invite contains precondition
- var boolean vc_MESSAGEreceived := false; // true if MESSAGE received during altstep
- var boolean vc_first_recv := false; // true after receipt of first incomming SIP message
- var boolean vc_firstREGISTER_sent := false; // true after sent of first REGISTER message
- var boolean vc_DeregDone := false; // true after first DeREGISTRATION trail (avoid loop)
- var boolean v_white_space := false;//MRO
-
- // ETS address
- var address v_ets_label := { host := PX_SIP_TS1_IPADDR, portField := PX_SIP_TS1_PORT};
-
- // parts needed for Client/SelfSyncComp type compatibility
- var StringStack v_stateStack := c_initStringStack;
- port SyncPort syncSendPort;
- port SyncPort syncPort;
- timer tc_sync := PX_TSYNC_TIME_LIMIT;
-
-// // used for communication with the operator
-// port operatorPort_SIP opPort;
-
- } // end SipComponent
-
-} // end module LibSip_Interface
/v3.0.3/tags/v1.6.0/ttcn/LibSip_Interface.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_SIPTypesAndValues.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_SIPTypesAndValues.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_SIPTypesAndValues.ttcn (nonexistent)
@@ -1,1824 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module defines message, header, structured and simple SIP
- * types as well constants used by LipSip constructs. <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 Adding of new message and header types is ok;
- * Adding of new optional header fields in @see MessageHeader type
- * is ok but should be done at same time as dummy template updates;
- * Existing message or header types shall not be changed or removed -
- * change requests shall be made to http://t-ort.etsi.org
- */
-
-module LibSip_SIPTypesAndValues language "TTCN-3:2005"//MRO
-{
- // Lib Common
- import from LibCommon_TextStrings {const c_CRLF};
- // SipAts
- import from LibSip_SDPTypes all;
- import from LibSip_XMLTypes all;
-
-group Constants
-{
-group SimpleConstants
- {
- // SIP name protocol plus version
- const charstring c_sipNameVersion := "SIP/2.0";
-
- // SIP name protocol
- const charstring c_sipName := "SIP";
-
- // SIP version
- const charstring c_sipVersion := "2.0";
-
- // SIP scheme
- const charstring c_sipScheme := "sip";
-
- // TEL scheme
- const charstring c_telScheme := "tel";
-
- // TAG_ID
- const charstring c_tagId := "tag";
-
- // BRANCH_ID
- const charstring c_branchId := "branch";
-
- // BRANCH_COOKIE
- const charstring c_branchCookie := "z9hG4bK";
-
- // EXPIRES_ID
- const charstring c_expiresId := "expires";
-
- // MADDR_ID
- const charstring c_maddrId := "maddr";
-
- // METHOD_ID
- const charstring c_methodId := "method";
-
- // RECEIVED_ID
- const charstring c_receivedId := "received";
-
- // TTL_ID
- const charstring c_ttlId := "ttl";
-
- // USER_ID
- const charstring c_userId := "user";
-
- // SDP name application
- const charstring c_sdpAplication := "application/sdp";
-
- // XML name application
- const charstring c_xmlAplication := "application/xml";
-
- // MIME name application
- const charstring c_mimeMultipart := "multipart/mixed";
-
- // IMS 3GPP name application
- const charstring c_ims3gppAplication := "application/3gpp-ims+xml";
-
- // IMS 3GPP name CW application
- const charstring c_ims3gppCwApplication := "application/vnd.3gpp.cw+xml";
-
- // IMS ETSI name MCID application
- const charstring c_imsEtsiMcidApplication := "application/vnd.etsi.mcid+xml";
-
- // IMS ETSI name CUG application
- const charstring c_imsEtsiCugApplication := "application/vnd.etsi.cug+xml";
-
- // IMS ETSI name Simservs application(TIP/TIR, ACR, CDIV, OIP/OIR, CUG)
- const charstring c_imsEtsiSimservsApplication := "application/vnd.etsi.simservs+xml";
-
- // OCTET-STREAM name application
- const charstring c_octetAplication := "application/octet-stream";
-
- // PLAIN-TEXT name application
- const charstring c_plainText := "text/plain";
-
- //text content of 1300 bytes for messages with message body
- const charstring c_longMessageContent_1300Bytes :=//"Hello!";
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"&
- c_CRLF;
-
-
- // Default SIP port number : 5060
- const integer c_defaultSipPort := 5060;
-
- // Default SIP protocol : UDP
- const charstring c_defaultSipProt := "UDP";
-
- // Fixed IP multicast address
- const charstring c_mcastSipIpaddr := "224.0.1.75";
-
- // Short delta-second used in expires parameter to acknowledge a registration
- const charstring c_shortRegistration := "3600";
-
- // ([RFC3891]Sec 6.1)
- const charstring c_earlyFlag := "early-only";
-
- // option tag replaces ([RFC3261])
- const charstring c_replaces := "replaces";
-
- // option tag 100rel (reliable provisional response [RFC3262])
- const charstring c_tag100rel := "100rel";
-
- // option tag from-change ([RFC4916])
- const charstring c_tagFromChange := "from-change";
-
- // option tag precondition (ch.11 [RFC3312])
- const charstring c_tagPrecond := "precondition";
-
- // due to problem with TAU compiler because hardcoded return statement constant is created
- const HostPort c_hostport_dummy := {host:="", portField:=c_defaultSipPort};
-
- // CLIP/CLIR information
- const PrivacyValue c_privacy_none := "none";
- const PrivacyValue c_privacy_id := "id";
- const PrivacyValue c_privacy_header := "header";
- const PrivacyValue c_privacy_user := "user";
- const PrivacyValue c_privacy_critical := "critical";
-
- // @ (at) sign
- const charstring c_AT := "@";
- //MRO
- const charstring c_SP := oct2char('20'O);
- const charstring c_SLASH := oct2char('2F'O);
- const charstring c_LT := oct2char('3C'O);
- const charstring c_GT := oct2char('3E'O);
-
- // * (wildchard) sign
- const charstring c_WILDCARD := "*";
-
- const integer c_CRlen := 2; // length of new line (0d0a)
-
- const GenericParam c_Integrity_protected_yes := {"integrity-protected","yes"}
- const GenericParam c_Integrity_protected_no := {"integrity-protected","no"}
- const GenericParam c_Integrity_protected_ip_assoc_pending := {"integrity-protected","ip-assoc-pending"}
-
-
-} //end group SimpleConstants
-
-group AuthorizationConstants {
-
- const charstring c_ik := "";
- const charstring c_ck := "";
- const charstring c_algorithm := "MD5";
- const charstring c_nonce := "";
- const charstring c_nonce_value := "0edff6c521cc3f407f2d9e01cf6ed82b";
-
-} //end group AuthorizationConstants
-
-group PChargingVectorConstants {
-
- const charstring c_icid := "icid-value";
- const charstring c_icid_value := "123abc";
- const charstring c_icid_generated_at := "icid-generated-at";
- const charstring c_orig_ioi := "orig-ioi";
- const charstring c_term_ioi := "term-ioi";
-
-} //end group PChargingVectorConstants
-
-group HeaderFieldConstants {
-
- const CallId c_empty_CallId :=
- {
- fieldName := CALL_ID_E,
- callid := ""
- };
-
- const ContentType c_empty_ContentType :=
- {
- fieldName := CONTENT_TYPE_E,
- mediaType := ""
- };
-
- const CSeq c_empty_cSeq := {
- fieldName := CSEQ_E,
- seqNumber:=0,
- method:="EMPTY" };
-
- const From c_empty_From := {
- fieldName := FROM_E,
- addressField := {nameAddr :=
- {displayName := omit,
- addrSpec := {
- scheme := c_sipScheme,
- userInfo := omit ,
- hostPort := {host:="127.0.0.1", portField:=c_defaultSipPort},
- urlParameters := omit,
- headers := omit
- }
- }
- },
- fromParams := omit
- };
-
- const MaxForwards c_maxForwards70 := {fieldName:=MAX_FORWARDS_E, forwards:=70}
-
- const SipUrl c_empty_RequestUri :=
- {
- scheme := c_sipScheme,
- userInfo := omit ,
- hostPort := {host:="127.0.0.1", portField:=c_defaultSipPort},
- urlParameters := omit,
- headers := omit
- };
-
- const SipUrl c_unavailableUri :=
- {
- scheme := c_sipScheme,
- userInfo := {userOrTelephoneSubscriber:="unavailable", password:=omit},
- hostPort := {host:="anonymous.invalid", portField:=c_defaultSipPort},
- urlParameters := omit,
- headers := omit
- };
-
- const To c_empty_To :=
- { // value of To header
- fieldName := TO_E,
- addressField :=
- {
- nameAddr :=
- {
- displayName := omit,
- addrSpec :=
- {
- scheme := c_sipScheme,
- userInfo := omit ,
- hostPort := {host:="127.0.0.1", portField:=c_defaultSipPort},
- urlParameters := omit,
- headers := omit
- }
- }
- },
- toParams := omit
- };
-
- const Via c_empty_Via := {
- fieldName := VIA_E,
- viaBody :={
- {sentProtocol := {
- protocolName := c_sipName,
- protocolVersion := c_sipVersion,
- transport := c_defaultSipProt
- },
- sentBy := {host:="127.0.0.1", portField:=c_defaultSipPort},
- viaParams:= omit
- }
- }};
-
-
-}
-
-
-group UserProfileConstants
-{
- // number of user profile from 1-10 for SIP profile
- const integer c_userProfile_SIP1_home := 1;
- const integer c_userProfile_SIP2_home := 2;
-
-} //end group UserProfileConstants
-
-group StatusLines
- {
- const StatusLine c_statusLine100 := {c_sipNameVersion, 100, "Trying"};
- const StatusLine c_statusLine180 := {c_sipNameVersion, 180, "Ringing"};
- const StatusLine c_statusLine181 := {c_sipNameVersion, 181, "Call is Being Forwarded"};
- const StatusLine c_statusLine182 := {c_sipNameVersion, 182, "Queued"};
- const StatusLine c_statusLine183 := {c_sipNameVersion, 183, "Session Progress"};
-
- const StatusLine c_statusLine200 := {c_sipNameVersion, 200, "OK"};
- const StatusLine c_statusLine202 := {c_sipNameVersion, 202, "Accepted"};
-
- const StatusLine c_statusLine300 := {c_sipNameVersion, 300, "Multiple Choices"};
- const StatusLine c_statusLine301 := {c_sipNameVersion, 301, "Moved Permanently"};
- const StatusLine c_statusLine302 := {c_sipNameVersion, 302, "Moved Temporarily"};
- const StatusLine c_statusLine305 := {c_sipNameVersion, 305, "Use Proxy"};
- const StatusLine c_statusLine380 := {c_sipNameVersion, 380, "Alternative Service"};
-
- const StatusLine c_statusLine400 := {c_sipNameVersion, 400, "Bad Request"};
- const StatusLine c_statusLine401 := {c_sipNameVersion, 401, "Unauthorized"};
- const StatusLine c_statusLine402 := {c_sipNameVersion, 402, "Payment Required"};
- const StatusLine c_statusLine403 := {c_sipNameVersion, 403, "Forbidden"};
- const StatusLine c_statusLine404 := {c_sipNameVersion, 404, "Not Found"};
- const StatusLine c_statusLine405 := {c_sipNameVersion, 405, "Method Not Allowed"};
- const StatusLine c_statusLine406 := {c_sipNameVersion, 406, "Not Acceptable"};
- const StatusLine c_statusLine407 := {c_sipNameVersion, 407, "Proxy authentication required"};
- const StatusLine c_statusLine408 := {c_sipNameVersion, 408, "Request Timeout"};
- const StatusLine c_statusLine410 := {c_sipNameVersion, 410, "Gone"};
- const StatusLine c_statusLine413 := {c_sipNameVersion, 413, "Request Entity too long"};
- const StatusLine c_statusLine414 := {c_sipNameVersion, 414, "Request-uri too long"};
- const StatusLine c_statusLine415 := {c_sipNameVersion, 415, "Unsupported Media type"};
- const StatusLine c_statusLine416 := {c_sipNameVersion, 416, "Unsupported URI scheme"};
- const StatusLine c_statusLine420 := {c_sipNameVersion, 420, "Bad Extension"};
- const StatusLine c_statusLine421 := {c_sipNameVersion, 421, "Extension required"};
- const StatusLine c_statusLine422 := {c_sipNameVersion, 422, "Session Interval Too Small"};
- const StatusLine c_statusLine423 := {c_sipNameVersion, 423, "Interval Too Brief"};
- const StatusLine c_statusLine433 := {c_sipNameVersion, 433, "Anonymity Disallowed"};
- const StatusLine c_statusLine480 := {c_sipNameVersion, 480, "Temporarily Unavailable"};
- const StatusLine c_statusLine481 := {c_sipNameVersion, 481, "Call/Transaction doesnot exist"};
- const StatusLine c_statusLine482 := {c_sipNameVersion, 482, "Loop Detected"};
- const StatusLine c_statusLine483 := {c_sipNameVersion, 483, "Too many hops"};
- const StatusLine c_statusLine484 := {c_sipNameVersion, 484, "Address Incomplete"};
- const StatusLine c_statusLine485 := {c_sipNameVersion, 485, "Ambiguous"};
- const StatusLine c_statusLine486 := {c_sipNameVersion, 486, "Busy Here"};
- const StatusLine c_statusLine487 := {c_sipNameVersion, 487, "Request Terminated"};
- const StatusLine c_statusLine488 := {c_sipNameVersion, 488, "Not acceptable here"};
- const StatusLine c_statusLine493 := {c_sipNameVersion, 493, "Undecipherable"};
- const StatusLine c_statusLine500 := {c_sipNameVersion, 500, "Server Internal error"};
- const StatusLine c_statusLine501 := {c_sipNameVersion, 501, "Not implemented"};
- const StatusLine c_statusLine502 := {c_sipNameVersion, 502, "Bad Gateway"};
- const StatusLine c_statusLine503 := {c_sipNameVersion, 503, "Service Unavailable"};
- const StatusLine c_statusLine504 := {c_sipNameVersion, 504, "Server timeout"};
- const StatusLine c_statusLine505 := {c_sipNameVersion, 505, "Version not supported"};
- const StatusLine c_statusLine513 := {c_sipNameVersion, 513, "Message too long"};
- const StatusLine c_statusLine580 := {c_sipNameVersion, 580, "Precondition failure"};
- const StatusLine c_statusLine600 := {c_sipNameVersion, 600, "Busy Everywhere"};
- const StatusLine c_statusLine603 := {c_sipNameVersion, 603, "Decline"};
- const StatusLine c_statusLine604 := {c_sipNameVersion, 604, "Does not exist anywhere"};
- const StatusLine c_statusLine606 := {c_sipNameVersion, 606, "Not acceptable"};
-
-} //end StatusLines
-
-group SIPSyncPointNames {
- const charstring c_Ringing := "Ringing";
- const charstring c_uPlane := "uPlane";
- const charstring c_sync1 := "sync1";
- const charstring c_sync2 := "sync2";
- const charstring c_sync3 := "sync3";
- const charstring c_sync4 := "sync4";
- const charstring c_uPlaneStop := "uPlaneStop";
- const charstring c_annoucA := "announcementA";
- const charstring c_annoucB := "announcementB";
- const charstring c_annouc := "announcement";
- const charstring c_voicem := "voiceMessage";
- }
-
-} //end group Constants
-
-group Types {
-group SubTypes{// Subtypes
-
- group TokenTypes // TokensTypes
- {
- // [20]
- type enumerated FieldName
- {
- ACCEPT_E,
- ACCEPT_ENCODING_E,
- ACCEPT_LANGUAGE_E,
- ALERT_INFO_E,
- ALLOW_E,
- AUTHENTICATION_INFO_E,
- AUTHORIZATION_E,
- CALL_ID_E,
- CALL_INFO_E,
- CONTACT_E,
- CONTENT_DISPOSITION_E,
- CONTENT_ENCODING_E,
- CONTENT_LANGUAGE_E,
- CONTENT_LENGTH_E,
- CONTENT_TYPE_E,
- CSEQ_E,
- DATE_E,
- ERROR_INFO_E,
- EXPIRES_E,
- FROM_E,
- IN_REPLY_TO_E,
- MAX_FORWARDS_E,
- MIME_VERSION_E,
- MIN_EXPIRES_E,
- ORGANIZATION_E,
- PRIORITY_E,
- PROXY_AUTHENTICATE_E,
- PROXY_AUTHORIZATION_E,
- PROXY_REQUIRE_E,
- RECORD_ROUTE_E,
- REPLY_TO_E,
- REQUIRE_E,
- RETRY_AFTER_E,
- ROUTE_E,
- SERVER_E,
- SUBJECT_E,
- SUPPORTED_E,
- TIMESTAMP_E,
- TO_E,
- UNSUPPORTED_E,
- USER_AGENT_E,
- VIA_E,
- WARNING_E,
- WWW_AUTHENTICATE_E,
-
- // [3262/7.1]
- RACK_E,
- RSEQ_E,
-
- // [3265/7.2]
- ALLOW_EVENTS_E,
- EVENT_E,
- SUBSCRIPTION_STATE_E,
-
- // [3313]
- P_MEDIA_AUTHORIZATION_E,
-
- // [3323]
- PRIVACY_E,
-
- // [3325]
- P_ASSERTED_ID_E,
- P_PREFERRED_ID_E,
-
- // [3326]
- REASON_E,
-
- // [3515] - REFER method
- REFER_TO_E,
-
- // [3891]
- REPLACES_E,
-
- // [3892] - REFER method
- REFERRED_BY_E,
-
- // [4244]
- HISTORY_INFO_E,
-
- // [3313]
- P_MEDIA_AUTH_E,
-
- // [3327]
- PATH_E,
-
- // [3329]
- SECURITY_CLIENT_E,
- SECURITY_SERVER_E,
- SECURITY_VERIFY_E,
-
- // [3455]
- P_ACCESS_NETWORK_INFO_E,
- P_ASSOCIATED_URI_E,
- P_CALLED_PARTY_E,
- P_CHARGING_FUNCTION_ADDRESSES_E,
- P_CHARGING_VECTOR_E,
- P_VISITED_NETWORK_E,
-
- // [3608]
- SERVICE_ROUTE_E,
-
- // [3841]
- ACCEPT_CONTACT_E,
-
- // [4028]
- MIN_SE_E,
- SESSION_EXPIRES_E,
-
- P_ASSERTED_SERVICE_E,
-
- //[5009]
- P_EARLY_MEDIA_E,
-
- //http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07
- //Transporting User to User Call Control Information in SIP for ISDN Interworking
- USER_TO_USER_E
-
- }
-
- // [7.1]
- type enumerated Method {
- ACK_E,
- BYE_E,
- CANCEL_E,
- INVITE_E,
- OPTIONS_E,
- REGISTER_E,
- PRACK_E, // Note: this element is not defined in [5]
- SUBSCRIBE_E, NOTIFY_E, // [3265]
- PUBLISH_E, // [3903/12]
- REFER_E, // [3515]
- UPDATE_E, // [3311]
- MESSAGE_E, // [3428]
- INFO_E, // [2976]
- UNKNOWN_METHOD_E
- }
-
- // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31,
- // 20.33, 20.34, 20.39, 20.42, 20.44]
- type record GenericParam
- {
- charstring id,
- charstring paramValue optional
- }
-
- // [?]
- type set of GenericParam SemicolonParam_List;
-
- // [?]
- type set of GenericParam AmpersandParam_List;
-
- // [?]
- type set of GenericParam CommaParam_List;
-
- // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43]
- type record HostPort
- {
- charstring host optional, // hostname, IPv4 or IPv6
- integer portField optional // represented as an integer
- }
-
- // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39]
-/**
- *
- * @desc identifier for user or telephone subscriber
- * @member userOrTelephoneSubscriber provides the username or a phone name identifying the subscriber
- * @member password related password information
- *
- */
- type record UserInfo
- {
- charstring userOrTelephoneSubscriber,
- charstring password optional
- }
-
- // [19.1.1 ;used in: 20.10, 20.20, 20.30, 20.31, 20.34, 20.39]
-
-
-/**
- *
- * @desc Uniform Resource Identifier (URI)
- * @member scheme distinguishes call types, e.g. voice, fax etc. or related address scheme, e.g. tel, sip
- * @member userInfo Contains user information (also in non-SIP URLs) with optional parameter as passwords
- * @member hostPort Hostname or IP address information and port identifier of the target
- * @member urlParameters Contains either SIP or TEL URL parameters, separated by semicolons, e.g. transport=tcp or user=phone
- * @member headers Additional information added after the parameters, e.g. priority=urgent
- */
- type record SipUrl
- {
- charstring scheme, // e.g "sip" or "tel"
- UserInfo userInfo optional,
- HostPort hostPort optional,
- SemicolonParam_List urlParameters optional,
- AmpersandParam_List headers optional
- }
-
- // [20.1, RFC2616 14.1]
- type record AcceptBody
- {
- charstring mediaRange,
- SemicolonParam_List acceptParam optional
- }
-
- // [20.1, RFC2616 14.1]
- type set of AcceptBody AcceptBody_List;
-
- // [20.4]
- type record AlertInfoBody
- {
- charstring url, // any URI
- SemicolonParam_List genericParams optional
- }
-
- // [20.4]
- type set of AlertInfoBody AlertInfoBody_List;
-
- // [20.8]
- type charstring CallidString; // token ["@" token]
-
- // [20.8]
- type set of CallidString CallidString_List;
-
- // [20.9]
- type record CallInfoBody
- {
- charstring url, // any URI
- SemicolonParam_List infoParams optional
- }
-
- // [20.9]
- type set of CallInfoBody CallInfoBody_List;
-
- // [20.27, 20.44, .......10.32, 10.48; RFC2616 14.33, 14.47; RFC2617 1.2]
- type union Challenge
- {
- CommaParam_List digestCln,
- OtherAuth otherChallenge
- }
-
- // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39]
- type record NameAddr
- {
- charstring displayName optional,
- SipUrl addrSpec
- }
-
- // [20.10, 20.20, 20.31, 20.39]
- type union Addr_Union
- {
- NameAddr nameAddr,
- SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field
- }
-
- // [20.10]
- type record ContactAddress
- {
- Addr_Union addressField,
- SemicolonParam_List contactParams optional
- }
-
- // [20.10]
- type set of ContactAddress ContactAddress_List; // 1 or more elements
-
- // [20.10]
- type union ContactBody
- {
- charstring wildcard,
- ContactAddress_List contactAddresses
- }
-
- // [20.2, 20.12; RFC2616 14.3, 14.11]
- type charstring ContentCoding;
-
- // [20.2, 20.12; RFC2616 14.3, 14.11]
- type set of ContentCoding ContentCoding_List;
-
- // [20.7, 20.28; RFC2616 14.35 RFC2617 1.2]
- type union Credentials
- {
- CommaParam_List digestResponse,
- OtherAuth otherResponse
- }
-
- // allow multiple Authorization headers due to RFC3261 ch. 20.7 and 20.28
- type record of Credentials CredentialsList;
-
- // [20.19, 20.23, 20.33]
- type charstring DeltaSec; // an external operation can handle this field
-
- // [20.18]
- type record ErrorInfoBody
- {
- charstring uri, // any URI
- SemicolonParam_List genericParams optional
- }
-
- // [20.18]
- type set of ErrorInfoBody ErrorInfoBody_List;
-
- // [20.3 RFC2616 14.4]
- type record LanguageBody
- {
- charstring languageRange,
- SemicolonParam_List acceptParam optional
- }
-
- // [20.3 RFC2616 14.4]
- type set of LanguageBody LanguageBody_List;
-
- // [20.13; RFC2616 14.12]
- type charstring LanguageTag;
-
- // [20.13; RFC2616 14.12]
- type set of LanguageTag LanguageTag_List;
-
- // [20.5]
- type set of charstring Method_List;
-
-
- // [20.29, 20.32, 20.37, 20.40]
- type charstring OptionTag;
-
- // [20.29, 20.32, 20.37, 20.40]
- type set of OptionTag OptionTag_List;
-
-
- // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2]
- type record OtherAuth
- {
- charstring authScheme,
- CommaParam_List authParams
- }
-
- type record Payload
- {
- integer payloadlength,
- charstring payloadvalue
- }
-
- // [20.30,20.34]
- type record RouteBody
- {
- NameAddr nameAddr,
- SemicolonParam_List rrParam optional
- }
-
- // [20.30,20.34]
- type record of RouteBody RouteBody_List;
-
- // [20.42]
- type record SentProtocol
- {
- charstring protocolName,
- charstring protocolVersion,
- charstring transport
- }
-
- // [20.35, 20.41; RFC2616 14.43]
- type charstring ServerVal;
-
- // [20.35, 20.41; RFC2616 14.43]
- type set of ServerVal ServerVal_List;
-
- // [20.38]
- type record TimeValue
- {
- integer majorDigit, // represented as an integer
- integer minorDigit optional // represented as an integer
- }
-
- // [20.42]
- type record ViaBody
- {
- SentProtocol sentProtocol,
- HostPort sentBy,
- SemicolonParam_List viaParams optional
- }
-
- // [20.42]
- type record of ViaBody ViaBody_List;
-
- // [20.43]
- type union WarnAgent
- {
- HostPort hostPort,
- charstring pseudonym
- }
-
- // [20.43]
- type record WarningValue
- {
- integer warnCode, // represented as an integer
- WarnAgent warnAgent,
- charstring warnText
- }
-
- // [20.43]
- type set of WarningValue WarningValue_List;
-
- type Addr_Union PAssertedIDValue;
-
- type record of PAssertedIDValue PAssertedIDValue_List;
-
- type charstring PAssertedServiceValue;
-
- type Addr_Union PPreferredIDValue;
-
- type record of PPreferredIDValue PPreferredIDValue_List;
-
- type charstring PrivacyValue;
-
- type record of PrivacyValue PrivacyValue_List;
-
-
- } // end group TokensType
-
-
- group HeaderFieldTypes // Header Fields
- {
- group CommonHeaderFieldTypes
- {
- // [20.1, RFC2616 14.1]
- type record Accept
- {
- FieldName fieldName (ACCEPT_E),
- AcceptBody_List acceptArgs optional
- }
-
- // [20.2, RFC2616 14.3]
- type record AcceptEncoding
- {
- FieldName fieldName (ACCEPT_ENCODING_E),
- ContentCoding_List contentCoding optional
- }
-
- // [20.3, RFC2616 14.4]
- type record AcceptLanguage
- {
- FieldName fieldName (ACCEPT_LANGUAGE_E),
- LanguageBody_List languageBody optional
- }
-
- // [20.4]
- type record AlertInfo
- {
- FieldName fieldName (ALERT_INFO_E),
- AlertInfoBody_List alertInfoBody optional
- }
-
- // [20.5]
- type record Allow
- {
- FieldName fieldName (ALLOW_E),
- Method_List methods optional
- }
-
- // [20.6]
- type record AuthenticationInfo
- {
- FieldName fieldName (AUTHENTICATION_INFO_E),
- CommaParam_List ainfo
- }
-
- // [20.7 RFC2617 3.2.2]
- type record Authorization
- {
- FieldName fieldName (AUTHORIZATION_E),
- CredentialsList body // changed from Credentials to allow multiple Authorization headers
- }
-
- // [20.8]
- type record CallId
- {
- FieldName fieldName (CALL_ID_E),
- CallidString callid
- }
-
- // [20.9]
- type record CallInfo
- {
- FieldName fieldName (CALL_INFO_E),
- CallInfoBody_List callInfoBody optional
- }
-
- // [20.10]
- type record Contact
- {
- FieldName fieldName (CONTACT_E),
- ContactBody contactBody
- }
-
- // [20.11]
- type record ContentDisposition
- {
- FieldName fieldName (CONTENT_DISPOSITION_E),
- charstring dispositionType,
- SemicolonParam_List dispositionParams optional
- }
-
- // [20.12 RFC2616 14.11]
- type record ContentEncoding
- {
- FieldName fieldName (CONTENT_ENCODING_E),
- ContentCoding_List contentCoding
- }
-
- // [20.13 RFC2616 14.12]
- type record ContentLanguage
- {
- FieldName fieldName (CONTENT_LANGUAGE_E),
- LanguageTag_List languageTag
- }
-
- // [20.14]
- type record ContentLength
- {
- FieldName fieldName (CONTENT_LENGTH_E),
- integer len // this field is represented as an integer
- }
-
- // [20.15]
- type record ContentType
- {
- FieldName fieldName (CONTENT_TYPE_E),
- charstring mediaType
- }
-
- // [20.16]
- type record CSeq
- {
- FieldName fieldName (CSEQ_E),
- integer seqNumber, // this field is represented as an integer
- charstring method
- }
-
- // [20.17]
- type record Date
- {
- FieldName fieldName (DATE_E),
- charstring sipDate
- }
-
- // [20.18]
- type record ErrorInfo
- {
- FieldName fieldName (ERROR_INFO_E),
- ErrorInfoBody_List errorInfo optional
- }
-
- // [20.19]
- type record Expires
- {
- FieldName fieldName (EXPIRES_E),
- DeltaSec deltaSec
- }
-
- // [20.20]
- type record From
- {
- FieldName fieldName (FROM_E),
- Addr_Union addressField,
- SemicolonParam_List fromParams optional
- }
-
- // [20.21]
- type record InReplyTo
- {
- FieldName fieldName (IN_REPLY_TO_E),
- CallidString_List callids
- }
-
- // [20.22]
- type record MaxForwards
- {
- FieldName fieldName (MAX_FORWARDS_E),
- integer forwards // this field is represented as an integer
- }
-
- // [20.23]
- type record MinExpires
- {
- FieldName fieldName (MIN_EXPIRES_E),
- DeltaSec deltaSec
- }
-
- // [20.24 RFC2616 19.4.1]
- type record MimeVersion
- {
- FieldName fieldName (MIME_VERSION_E),
- integer majorNumber, // this field is represented as an integer
- integer minorNumber // this field is represented as an integer
- }
-
- // [20.25]
- type record Organization
- {
- FieldName fieldName (ORGANIZATION_E),
- charstring organization
- }
-
- // [20.26]
- type record Priority
- {
- FieldName fieldName (PRIORITY_E),
- charstring priorityValue
- }
-
- // [20.27 RFC2616 14.33 RFC2617 1.2]
- type record ProxyAuthenticate
- {
- FieldName fieldName (PROXY_AUTHENTICATE_E),
- Challenge challenge
- }
-
- // [20.28 RFC2616 14.35 RFC2617 1.2]
- type record ProxyAuthorization
- {
- FieldName fieldName (PROXY_AUTHORIZATION_E),
- CredentialsList credentials // changed from Credentials to allow multiple Authorization headers
- }
-
- // [20.29]
- type record ProxyRequire
- {
- FieldName fieldName (PROXY_REQUIRE_E),
- OptionTag_List optionsTags
- }
-
- // [20.30]
- type record RecordRoute
- {
- FieldName fieldName (RECORD_ROUTE_E),
- RouteBody_List routeBody
- }
-
- // [20.31]
- type record ReplyTo
- {
- FieldName fieldName (REPLY_TO_E),
- Addr_Union addressField,
- SemicolonParam_List replyToParams optional
- }
-
- // [20.32]
- type record Require
- {
- FieldName fieldName (REQUIRE_E),
- OptionTag_List optionsTags
- }
-
- // [20.33]
- type record RetryAfter
- {
- FieldName fieldName (RETRY_AFTER_E),
- DeltaSec deltaSec,
- charstring comment optional,
- SemicolonParam_List retryParams optional
- }
-
- // [20.34]
- type record Route
- {
- FieldName fieldName (ROUTE_E),
- RouteBody_List routeBody
- }
-
- // [20.35 RFC2616 14.38]
- type record Server
- {
- FieldName fieldName (SERVER_E),
- ServerVal_List serverBody
- }
-
- // [20.36]
- type record Subject
- {
- FieldName fieldName (SUBJECT_E),
- charstring summary
- }
-
- // [20.37]
- type record Supported
- {
- FieldName fieldName (SUPPORTED_E),
- OptionTag_List optionsTags optional
- }
-
- // [20.38]
- type record Timestamp
- {
- FieldName fieldName (TIMESTAMP_E),
- TimeValue timeValue optional,
- TimeValue delay optional
- }
-
- // [20.39]
- type record To
- {
- FieldName fieldName (TO_E),
- Addr_Union addressField,
- SemicolonParam_List toParams optional
- }
-
- // [20.40]
- type record Unsupported
- {
- FieldName fieldName (UNSUPPORTED_E),
- OptionTag_List optionsTags
- }
-
- // Undefined header field
- type record UndefinedHeader
- {
- charstring headerName,
- charstring headerValue
- }
-
- type set of UndefinedHeader UndefinedHeader_List;
-
- // [20.41 RFC2616 14.43]
- type record UserAgent
- {
- FieldName fieldName (USER_AGENT_E),
- ServerVal_List userAgentBody
- }
-
- // [20.42]
- type record Via
- {
- FieldName fieldName (VIA_E),
- ViaBody_List viaBody
- }
-
- // [20.43]
- type record Warning
- {
- FieldName fieldName (WARNING_E),
- WarningValue_List warningValue
- }
-
- // [20.44 RFC2616 14.47 RFC2617 1.2]
- type record WwwAuthenticate
- {
- FieldName fieldName (WWW_AUTHENTICATE_E),
- Challenge challenge
- }
- }//end group CommonHeaderFieldTypes
- group RFC3262HeaderFieldTypes
- {
- // [3262/7.1]
- type record RSeq {
- FieldName fieldName(RSEQ_E),
- integer responseNum
- }
-
- // [3262/7.2]
- type record RAck {
- FieldName fieldName(RACK_E),
- integer responseNum,
- integer seqNumber,
- charstring method
- }
- }//end group RFC3262HeaderFieldTypes
-
- group RFC3265HeaderFieldTypes
- {
- // [3265/7.2]
- type record AllowEvents {
- FieldName fieldName(ALLOW_EVENTS_E),
- EventType_List eventTypes
- }
-
- type set of EventType EventType_List;
- type charstring EventType;
-
- // [3265/7.2]
- type record Event {
- FieldName fieldName(EVENT_E),
- EventType eventType,
- SemicolonParam_List eventParams optional
- }
-
- // [3265/7.2]
- type record SubscriptionState {
- FieldName fieldName(SUBSCRIPTION_STATE_E),
- SubState subState,
- SemicolonParam_List substateParams optional
- }
-
- type charstring SubState;
- }//end group RFC3265HeaderFieldTypes
-
- group RFC3313HeaderFieldTypes
- {
- // [3313/5]
- type record PMediaAuthorization {
- FieldName fieldName(P_MEDIA_AUTHORIZATION_E),
- PMediaAuthorization_List pMediaAuthorizations
- }
-
- type charstring PMediaAuthValue; //HEXDIG "0"-"9", "A"-"F"
-
- type record of PMediaAuthValue PMediaAuthorization_List;
-
- }//end group RFC3265HeaderFieldTypes
-
- group RFC3323HeaderFieldTypes
- {
- // [3323]
- type record Privacy {
- FieldName fieldName(PRIVACY_E),
- PrivacyValue_List privValueList
- }
- }//end group RFC3323HeaderFieldTypes
-
- group RFC3325HeaderFieldTypes
- {
- // [3325]
- type record PAssertedID {
- FieldName fieldName(P_ASSERTED_ID_E),
- PAssertedIDValue_List pAssertedIDValueList
- }
-
- // [3325]
- type record PPreferredID {
- FieldName fieldName(P_PREFERRED_ID_E),
- PPreferredIDValue_List pPreferredIDValueList
- }
- }//end group RFC3325HeaderFieldTypes
-
- group RFC3326HeaderFieldTypes
- {
- //[3326]
- type record of ReasonValue ReasonValues;
-
- type record ReasonValue {
- charstring token,
- SemicolonParam_List reasonParams optional
- }
-
- type record Reason {
- FieldName fieldName(REASON_E),
- ReasonValues reasonValues
- }
- }//end group RFC3326HeaderFieldTypes
-
- group RFC3327HeaderFieldTypes
- {
- // [3327]
- type record Path {
- FieldName fieldName(PATH_E),
- PathValues pathValues
- }
-
- type record of PathValue PathValues;
-
- type record PathValue {
- NameAddr nameAddr,
- SemicolonParam_List rrParam optional
- }
- }//end group RFC3515HeaderFieldTypes
-
- group RFC3329HeaderFieldTypes
- {
- // [RFC3329/2.2]
- type record SecurityMechanism {
- charstring mechName,
- SemicolonParam_List mechParams optional
- }
-
- type set of SecurityMechanism SecurityMechanism_List;
-
- type record SecurityClient {
- FieldName fieldName(SECURITY_CLIENT_E),
- SecurityMechanism_List securityMech
- }
-
- type record SecurityServer {
- FieldName fieldName(SECURITY_SERVER_E),
- SecurityMechanism_List securityMech
- }
-
- type record SecurityVerify {
- FieldName fieldName(SECURITY_VERIFY_E),
- SecurityMechanism_List securityMech
- }
- }//end group RFC3329HeaderFieldTypes
-
- group RFC3455HeaderFieldTypes
- {
- type record of NameAddrParam NameAddrParam_List;
-
- type record NameAddrParam {
- NameAddr nameAddr,
- SemicolonParam_List genericParams optional
- }
- //[3455/5.1]
- type record PAssociatedURI {
- FieldName fieldName(P_ASSOCIATED_URI_E),
- NameAddrParam_List nameAddrList
- }
- //[3455/5.2]
- type record PCalledPartyID {
- FieldName fieldName(P_CALLED_PARTY_E),
- NameAddrParam nameAddParams
- }
-
- type record of VnetworkSpec VnetworkSpec_List;
-
- type record VnetworkSpec {
- charstring vNetworkSpecToken,
- SemicolonParam_List genericParams optional
- }
-
- //[3455/5.3]
- type record PVisitedNetworkID {
- FieldName fieldName(P_VISITED_NETWORK_E),
- VnetworkSpec_List vNetWorkSpec
- }
-
- //[3455/5.4]
- type record PAccessNetworkInfo {
- FieldName fieldName(P_ACCESS_NETWORK_INFO_E),
- charstring accessType,
- SemicolonParam_List genericParams optional
- }
-
- //[3455/5.5]
- type record PChargingFunctionAddresses {
- FieldName fieldName(P_CHARGING_FUNCTION_ADDRESSES_E),
- SemicolonParam_List chargeAddrParams optional
- }
-
- //[3455/5.6]
- type record PChargingVector {
- FieldName fieldName(P_CHARGING_VECTOR_E),
- SemicolonParam_List chargeParams optional
- }
- }//end group RFC33455HeaderFieldTypes
-
- group RFC3515HeaderFieldTypes
- {
- // [3515]
- type record ReferTo {
- FieldName fieldName(REFER_TO_E),
- NameAddr nameAddr,
- SemicolonParam_List referToParams optional
- }
- }//end group RFC3515HeaderFieldTypes
-
- group RFC3608HeaderFieldTypes
- {
- // [3608]
- type record ServiceRoute {
- FieldName fieldName(SERVICE_ROUTE_E),
- RouteBody_List routeBody
- }
- }//end group RFC33608HeaderFieldTypes
-
-
- group RFC3841HeaderFieldTypes
- {
- // [3841]
- type record AcceptContact {
- FieldName fieldName(ACCEPT_CONTACT_E),
- AcRcValue_List acValues
- }
-
- type set of AcRcValue AcRcValue_List;
-
- type record AcRcValue {
- charstring wildcard(c_WILDCARD),
- SemicolonParam_List acRcParams optional
- }
- }// end group RFC3841HeaderFieldTypes
-
- group RFC3891HeaderFieldTypes
- {
- // [3891]
- type record Replaces
- {
- FieldName fieldName (REPLACES_E),
- SemicolonParam_List replacesParams
- }
- }// end group RFC3891HeaderFieldTypes
-
- group RFC3892HeaderFieldTypes
- {
- // [3892]
- type record ReferredBy {
- FieldName fieldName(REFERRED_BY_E),
- NameAddr nameAddr,
- SemicolonParam_List referredbyIdParams optional
- }
- }//end group RFC3892HeaderFieldTypes
-
- group RFC4028HeaderFieldTypes
- {
- // [4028]
- type record MinSE {
- FieldName fieldName(MIN_SE_E),
- DeltaSec deltaSec,
- SemicolonParam_List minSeParam optional
- }
- // [4028]
- type record SessionExpires {
- FieldName fieldName(SESSION_EXPIRES_E),
- DeltaSec deltaSec,
- SemicolonParam_List seParam optional
- }
- }//end group RFC4028HeaderFieldTypes
-
- group RFC4244HeaderFieldTypes
- {
- // [4244]
- type record HistoryInfo {
- FieldName fieldName(HISTORY_INFO_E),
- HistoryInfo_List historyInfoList
- }
-
- type record of HistoryInfoEntry HistoryInfo_List;
-
- type record of integer IntegerList;
-
- type record HistoryInfoEntry {
- NameAddr nameAddr,
- IntegerList hiIndex optional,
- SemicolonParam_List hiExtention optional
- }
- }//end group RFC4244HeaderFieldTypes
-
- group RFC5009PEarlyMediaHeader
- {
- // [5009]
- type record PEarlyMedia {
- FieldName fieldName(P_EARLY_MEDIA_E),
- EM_List em_param
- }
- type record of charstring EM_List;
- }//end group RFC5009PEarlyMediaHeader
-
- //http://tools.ietf.org/html/draft-johnston-sipping-cc-uui-07, expires 16.Aug.2009
- //Transporting User to User Call Control Information in SIP for ISDN Interworking
- //type definition of SIP header mechanism
- group UserToUser_PreliminaryRFCDraft
- {
- type record UserToUser{
- FieldName fieldName (USER_TO_USER_E),
- charstring uuiData length(256), /*length limitation due to ISDN, max of allowed 128 hex digits are represented by 256 characters*/
- GenericParam uuiParam
- }
-
- }//end group UserToUser_PreliminaryRFCDraft
-
- type record PAssertedService {
- FieldName fieldName(P_ASSERTED_SERVICE_E),
- PAssertedServiceValue pAssertedServiceValue
- }
-
- } // end group HeaderFieldTypes
-
- group MessageHeaderTypes
- {
-
- // Message-Header for all SIP requests and responses [20]
- type set MessageHeader
- {
- Accept accept optional,
- AcceptContact acceptContact optional,
- AcceptEncoding acceptEncoding optional,
- AcceptLanguage acceptLanguage optional,
- AlertInfo alertInfo optional,
- Allow allow optional,
- AllowEvents allowEvents optional, // 3265/7.2
- AuthenticationInfo authenticationInfo optional, // only in responses
- Authorization authorization optional, // only in requests
- CallId callId optional, // optional only in Invalid test cases mandatory otherwise
- CallInfo callInfo optional,
- Contact contact optional, // optional in response and all requests except INVITE where mandatory
- ContentDisposition contentDisposition optional,
- ContentEncoding contentEncoding optional,
- ContentLanguage contentLanguage optional,
- ContentLength contentLength optional, // optional in responses and all requests except ACK where mandatory
- ContentType contentType optional,
- CSeq cSeq optional, // optional only in Invalid test cases mandatory otherwise
- Date date optional,
- ErrorInfo errorInfo optional, // only in responses
- Event event optional, // 3265/7.2
- Expires expires optional,
- From fromField,
- HistoryInfo historyInfo optional, // 4244
- InReplyTo inReplyTo optional, // only in requests
- MaxForwards maxForwards optional, // mandatory in requests not required in responses!
- MimeVersion mimeVersion optional,
- MinExpires minExpires optional, // only in responses
- MinSE minSE optional, // 4028
- Organization organization optional,
- PAccessNetworkInfo pAccessNetworkInfo optional, // 3455
- PAssertedID pAssertedID optional, // 3325
- PAssertedService pAssertedService optional,
- PAssociatedURI pAssociatedURI optional, // 3455
- Path path optional, // 3327
- PCalledPartyID pCalledPartyID optional, // 3455
- PChargingFunctionAddresses pChargingFunctionAddresses optional, // 3455
- PChargingVector pChargingVector optional, // 3455
- PEarlyMedia pEarlyMedia optional, // 5009
- PMediaAuthorization pMediaAuthorization optional, // 3313
- PPreferredID pPreferredID optional, // 3325
- Priority priority optional, // only in requests
- Privacy privacy optional, // 3323
- ProxyAuthenticate proxyAuthenticate optional, // only in responses
- ProxyAuthorization proxyAuthorization optional, // only in requests
- ProxyRequire proxyRequire optional, // only in requests
- PVisitedNetworkID pVisitedNetworkID optional, // 3455
- RAck rAck optional, // 3262/7.1
- RSeq rSeq optional, // 3262/7.1
- Reason reason optional, // 3326
- RecordRoute recordRoute optional,
- ReferredBy referredBy optional, // 3892 - REFER method
- ReferTo referTo optional, // 3515 - REFER method
- Replaces replaces optional, // 3891
- ReplyTo replyTo optional, // optional in responses and INVITE requests
- Require require optional,
- RetryAfter retryAfter optional, // only in responses
- Route route optional, // only in requests
- SecurityClient securityClient optional, // 3329
- SecurityServer securityServer optional, // 3329
- SecurityVerify securityVerify optional, // 3329
- Server server optional, // only in responses
- ServiceRoute serviceRoute optional, // 3608
- SessionExpires sessionExpires optional, // 4028
- Subject subject optional, // only in requests
- SubscriptionState subscriptionState optional, // 3265/7.2
- Supported supported optional,
- Timestamp timestamp optional,
- To toField,
- Unsupported unsupported optional, // only in responses
- UserToUser userToUser optional,
- UserAgent userAgent optional,
- Via via,
- Warning warning optional, // only in responses
- WwwAuthenticate wwwAuthenticate optional, // only in responses
- UndefinedHeader_List undefinedHeader_List optional
- }
-
- } // end group MessageHeaderTypes
-
- group StartLineTypes
- {
- // Request-Line [7.1]
- type record RequestLine
- {
- Method method,
- SipUrl requestUri,
- charstring sipVersion
- }
-
- // Status-Line [7.2]
- type record StatusLine
- {
- charstring sipVersion,
- integer statusCode,
- charstring reasonPhrase
- }
-
- } // end group StartLineTypes
-
-
- group otherTypes{
-
- type record SipUserProfile
- {
- /** @desc integer for the userprofile identifier
- */
- integer id,
-
- /** @desc integer for Port number to exchange SIP messages
- */
- integer currPort,
-
- /** @desc charstring for IP address to exchange SIP messages
- */
- charstring currIpaddr,
-
- /** @desc integer for Port number to exchange SIP messages
- */
- integer contactPort,
-
- /** @desc charstring for IP address to exchange SIP messages
- */
- charstring contactIpaddr,
-
- /** @desc charstring for IP address used by the TS to exchange media streams
- */
- charstring bearerIpaddr,
-
- /** @desc charstring for identity of the tester local domain
- */
- charstring homeDomain,
-
- /** @desc charstring for identity of the tester local user
- */
- charstring publUsername,
-
- /** @desc charstring for RFC 2617 3.2.1 qop options:
- * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server. The
- * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection.
- */
- charstring qop,
-
- /** @desc charstring for RFC 2617 3.2.2 username for authentication
- * The name of user in the specified realm
- */
- charstring privUsername,
-
- /** @desc charstring for RFC 2617 3.2.2.2 passwd: A known shared secret, the password of user of the specified username
- */
- charstring passwd,
-
- /** @desc charstring for registrar domain for authentication and request line
- */
- charstring registrarDomain
-
- }
-
-
- } // end group otherTypes
-
- }// end group Subtypes
-
-
-
- group MSGtypes{
-
- group RequestTypes
- {
- // [7.1]
-
- /**
- *
- * @desc generic type of a SIP request message
- * @member statusLine contains a method name, a Request-URI, and the protocol version
- * @member msgHeader include all possible header fields that are allowed to be present according to RFCs and other standards
- * @member messageBody depends on the request method, includes e.g. SDP message.
- * @member payload contains the whole message as it has been received in its text format
- */
- type record Request
- {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- // Note: the introduction of the following specific types is to enable better means for logging
- // on the other side the generic type is useful for functions dealing with multiple SIP message types
-
- type record REGISTER_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record INVITE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record OPTIONS_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record BYE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record CANCEL_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- type record ACK_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3262/7.1]
- type record PRACK_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3265/7.1]
- type record NOTIFY_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3265/7.1]
- type record SUBSCRIBE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- // [3903/11.1]
- type record PUBLISH_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- // [3311/7]
- type record UPDATE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- //
- type record REFER_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
- //
- type record MESSAGE_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec" }
-
- //
- type record INFO_Request {
- RequestLine requestLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
-
-
- } //with { encode "SIPCodec" }// end group RequestTypes
-
- group ResponseTypes
- {
- // [7.2]
-
- /**
- *
- * @desc generic type of a SIP response message
- * @member statusLine consists of the protocol version followed by a numeric Status-Code and its associated textual phrase
- * @member msgHeader include all possible header fields that are allowed to be present according to RFCs and other standards
- * @member messageBody depends on the response method, includes e.g. SDP message.
- * @member payload contains the whole message as it has been received in its text format
- */
- type record Response
- {
- StatusLine statusLine,
- MessageHeader msgHeader,
- MessageBody messageBody optional,
- Payload payload optional
- } with { encode "SIPCodec"}
- } //with { encode "SIPCodec" }// end group ResponseTypes
-
- // This MSG type is defined for sending synctactic variations, ans syntactically
- // erroneous messages, and receving messages failed parsing.
- group SyntacticTypes
- {
- type charstring Raw;
- } // end group SyntacticTypes
-
- // This type is defined for particular SIP message body types like SDP
-
- group MessageBodyTypes
- {
- type union MessageBody{
- SDP_Message sdpMessageBody, // if there is only SDP part
-// XMLMessage xmlMessage, // if there is XML message (with header and body)
- XmlBody xmlBody, // if there is XML body
- MIME_Message mimeMessageBody, // if there is SDP and encapsulated ISUP part
- charstring sipfrag, // if content-Type is message/sipfrag (cp. NOTIFY, cp TS124147 A.4.3.1.2)
- charstring textplain // if content type is text/plain (for testing long messages)
- };
-
- } // end group MessageBodyTypes
-
- group MIMETypes
- {
- group SubMIMETypes
- {
-
- type union MIME_Encapsulated_Parts {
- SDP_Message sdpMessageBody,
- XmlBody xmlBody // if there is XML body
-// XMLMessage xmlMessage // if there is XML message (with header and body)
- }
-
- type record MIME_Encapsulated_Part {
- charstring content_type,
- charstring content_disposition optional,
- MIME_Encapsulated_Parts mime_encapsulated_part
- }
- }//end group SubMIMETypes
-
- group MessageTypes {
-
- type record MIME_Message {
- charstring boundary, // len:
- MimeEncapsulatedList mimeEncapsulatedList
- }
-
- type record of MIME_Encapsulated_Part MimeEncapsulatedList;
-
- } // group MessageTypes
- } // group MIMETypes
-
- }// end group MSGTypes
-}// end group Types
-
-} // end module LibSip_TypesAndValues
/v3.0.3/tags/v1.6.0/ttcn/LibSip_SIPTypesAndValues.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/ttcn/LibSip_XMLTypes.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/ttcn/LibSip_XMLTypes.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/ttcn/LibSip_XMLTypes.ttcn (nonexistent)
@@ -1,100 +0,0 @@
-/**
- * @author STF 346, STF366, STF368, STF369
- * @version $Id$
- * @desc This module provides the XML type system for SIP tests.
- * The types have been generated automatically, followed by manual modifications:
- * - bitType substituted by OneBitType
- * - twobitType substituted by TwoBitType
- * - addition of pattern for: OneBitType, TwoBitType, ThreeBitType, FourBitType, FourBitType, SixBitType
- * - application of enumerated for: State_type, Endpoint_status_type, Joining_type, Disconnection_type, Media_status_type,
- * Originating_identity_presentation_restriction, Terminating_identity_presentation_restriction
- * - addition of length value: NetworkIdentityType, SixteenbitType
- * - addition of value restriction: CugIndexType
- * - substitution of "content" by "choice": Call_type, Mcid
- * - additional type renaming (upper first letter): AbsService, Anonymous, Busy,
- * Communication_diverted, Conference_description_type, Conference_info,
- * Conference_media_type, Conference_medium_type, Conference_state_type,
- * Conference_type, Cug, CugRequestType, Empty_element_type, Endpoint_type,
- * Execution_type, Host_type, Keywords_type, Media, Media_type, No_answer,
- * Not_reachable, Not_registered, Originating_identity_presentation, Presence_status,
- * Presence_status_activity_type, RequestType, ResponseType, Roaming,
- * Rule_deactivated, Sidebars_by_val_type, Simservs, SimservType,
- * Terminating_identity_presentation, Uri_type, Uris_type, User_roles_type,
- * User_languages_type, User_type, Users_type
- *
- * new group CDIV added by STF369
- * new group ACR_CD added by STF38
- */
-module LibSip_XMLTypes language "TTCN-3:2009" {
-
-import from XSDAUX all;
-
- import from org_w3_www__XML_1998_namespace language "XSD" all
- with {
- extension "File:../xsd/xml.xsd"
- }
-
- import from ietf_params_xml_ns_common_policy language "XSD" all
- with {
- extension "File:../xsd/common-policy.xsd"
- }
-
- import from ietf_params_xml_ns_resource_lists language "XSD" all
- with {
- extension "File:../xsd/ResourceList.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_xcap language "XSD" all
- with {
- extension "File:../xsd/SupplementaryServices.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_mcid language "XSD" all
- with {
- extension "File:../xsd/MCID.xsd"
- }
-
- import from Ims3gpp language "XSD" all
- with {
- extension "File:../xsd/Ims3gpp.xsd"
- }
- import from X_3gpp_ns_cw_1_0 language "XSD" all
- with {
- extension "File:../xsd/cw.xsd"
- }
-
- import from ietf_params_xml_ns_conference_info language "XSD" all
- with {
- extension "File:../xsd/CONF.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_simservs_pstn language "XSD" all
- with {
- extension "File:../xsd/PSTN.xsd"
- }
-
- import from org_etsi_uri__ngn_params_xml_comm_div_info language "XSD" all
- with {
- extension "File:../xsd/CDIVN.xsd"
- }
-
- import from oma_xml_xdm_common_policy language "XSD" all
- with {
- extension "File:../xsd/xdm_commonPolicy-v1_0.xsd"
- }
-
-
- group XmlTypes {
- type union XmlBody {
- Mcid mcid, // if there is XML Mcid
- Comm_div_info_type cdivn, // if there is XML cdivn
- Simservs simservs, // if there is XML simservs (Oip/r, Tip/r, Call Diversion, ICB, OCB ...)
- Conference_type conference_type, // if there is XML conf
- Ims_cw cw, // if there is XML cw (defined in X_3gpp_ns_cw_1_0.ttcn3view)
- Cug cug, // if there is XML cug (defined in org_etsi_uri__ngn_params_xml_simservs_xcap.ttcn3view)
- TIMS3GPP ims3gpp, // if there is XML IMS 3GPP
- PSTN_transit pstnTransit, // if there is XML PSTN_transit
- Resource_lists resourceLists // if there is XML Resource List data
- }
- }
-} /* end module LibSip_XMLTypes */
\ No newline at end of file
/v3.0.3/tags/v1.6.0/ttcn/LibSip_XMLTypes.ttcn
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3.0.3/tags/v1.6.0/codec/c++/sdp_codets.cpp
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/sdp_codets.cpp (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/sdp_codets.cpp (nonexistent)
@@ -1,8 +0,0 @@
-#include "gen_classes.h"
-#include <boost/regex.hpp>
-
-namespace t3devlib { namespace gen {
-
-
-
-}} // namespaces
Index: v3.0.3/tags/v1.6.0/codec/c++/EchoPort.h
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/EchoPort.h (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/EchoPort.h (nonexistent)
@@ -1,61 +0,0 @@
-/****************************************************************************/
-/* $Id$ */
-/* */
-/* (c) 2009 Universite de Rennes 1 */
-/* */
-/* Contributors: */
-/* - Anthony BAIRE */
-/* */
-/* Contact address: <t3devkit@irisa.fr> */
-/* */
-/* */
-/* This file is part of application examples provided along with T3DevKit, */
-/* a free toolkit for building TTCN-3 tests. */
-/* */
-/* This software is governed by the CeCILL-B license under French law and */
-/* abiding by the rules of distribution of free software. You can use, */
-/* modify and/or redistribute the software under the terms of the CeCILL-B */
-/* license as circulated by CEA, CNRS and INRIA at the following URL */
-/* "http://www.cecill.info". */
-/* */
-/* As a counterpart to the access to the source code and rights to copy, */
-/* modify and redistribute granted by the license, users are provided only */
-/* with a limited warranty and the software's author, the holder of the */
-/* economic rights, and the successive licensors have only limited */
-/* liability. */
-/* */
-/* In this respect, the user's attention is drawn to the risks associated */
-/* with loading, using, modifying and/or developing or reproducing the */
-/* software by the user in light of its specific status of free software, */
-/* that may mean that it is complicated to manipulate, and that also */
-/* therefore means that it is reserved for developers and experienced */
-/* professionals having in-depth computer knowledge. Users are therefore */
-/* encouraged to load and test the software's suitability as regards their */
-/* requirements in conditions enabling the security of their systems and/or */
-/* data to be ensured and, more generally, to use and operate it in the */
-/* same conditions as regards security. */
-/* */
-/* The fact that you are presently reading this means that you have had */
-/* knowledge of the CeCILL-B license and that you accept its terms. */
-/****************************************************************************/
-#ifndef EchoPort_h
-#define EchoPort_h
-
-#include <t3devlib/t3devlib.h>
-
-
-class EchoPort : public t3devlib::Port
-{
-public:
- EchoPort (t3devlib::PortId& id);
- ~EchoPort();
-
-protected:
- bool Map (const t3devlib::PortId& port_id);
- bool Unmap (const t3devlib::PortId& port_id);
- bool Send (const t3devlib::ComponentId& from, const t3devlib::Bitstring& msg);
-
-};
-
-
-#endif
Index: v3.0.3/tags/v1.6.0/codec/c++/sip_codets.cpp
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/sip_codets.cpp (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/sip_codets.cpp (nonexistent)
@@ -1,3631 +0,0 @@
-#include "gen_classes.h"
-#include <boost/regex.hpp>
-
-namespace t3devlib { namespace gen {
-
-class Regex {
-public:
- typedef std::string::const_iterator iterator;
-
-
- Regex(const char* regex, int flags = 0)
- : mSource (regex), mRegex (regex, boost::regex_constants::perl | boost::regex_constants::no_mod_m)
- {
- //FIXME: remove flags ?
- }
-
- bool Match (Buffer& buffer) {
- mStart = iterator (reinterpret_cast<const char*> (buffer.GetValueBin()) + (buffer.GetPosition() / 8));
- mStop = iterator (reinterpret_cast<const char*> (buffer.GetValueBin()) + (buffer.GetEndMarker() / 8));
-
- int result = boost::regex_search (mStart, mStop, mResults, mRegex);
-
-#if 0
- boost::match_results<iterator>::iterator it;
- std::cout << endl << "matching /"<< mSource <<"/" << endl;
- int id=0;
- for (it=mResults.begin() ; it!=mResults.end() ; ++it)
- {
- std::cout << "first " << id << " *" << &*it->first << "*" << endl;
- std::cout << "second " << id << " *" << &*it->second << "*" << endl;
- id++;
- }
-#endif
- return result;
- }
-
- void AssertMatch (Buffer& buffer, Variable* v) throw (DecodeError) {
- if (!Match (buffer)) {
- Error (v, buffer);
- }
- }
-
- int GetMatchedLength(int id = 0) {
- return mResults[id].length()*8;
- }
-
- std::string GetMatchedString(int id = 0) {
- return std::string (mResults[id].first, mResults[id].second);
- }
-
- const char* GetMatchedPosition(int id = 0) {
- return &*mResults[id].first;
- }
-
- const char GetLastMatchedChar(int id = 0) {
- return *(&*mResults[id].second - 1); // FIXME: how about null match ?
- }
-
- void MovePast (Buffer& buffer, int id = 0)
- {
- buffer.SetPosition ((&*mResults[id].second - reinterpret_cast<const char*> (buffer.GetValueBin())) * 8);
- }
-
- void MoveAt (Buffer& buffer, int id = 0)
- {
- buffer.SetPosition ((&*mResults[id].first - reinterpret_cast<const char*> (buffer.GetValueBin())) * 8);
- }
-
- void Error (Variable* v, Buffer& buffer) throw (DecodeError) {
-
- std::string message ("cannot match regex /");
- message += mSource;
- message += "/ in '";
- if ((mStop - mStart) > 40) {
- message.append (&*mStart, 40);
- message += "...";
- } else {
- message.append (mStart, mStop);
- }
- message += "'\n";
- throw DecodeError (v, message);
- }
-
-private:
- const char* mSource;
- boost::regex mRegex;
- iterator mStart, mStop;
- boost::match_results<iterator> mResults;
-};
-
-void normalise_quoted_string (Charstring& cs, bool remove_quotes = false) throw (DecodeError)
-{
- std::string result;
-
- //FIXME: how LWS shall be normalised ?
-
- const unsigned char* p = cs.GetValueBin();
- const unsigned char* end = p + (cs.GetLength() / 8);
-
- if (remove_quotes)
- {
- if ((end - p) < 2)
- goto error_malformed;
-
- if ((*p++ != '"') | (*--end != '"'))
- goto error_malformed;
- }
-
- for ( ; p!=end ; p++)
- {
- switch (*p) {
- case '\r': //LWS
- case '\n':
-
- case ' ': //WSP
- case '\v':
- case '\t':
- case '\f':
-
- case 0x21: //!
- // plain text
- result += *p;
- break;
-
- case '\\':
- // escaped character
- p++;
- if ((p == end) || ((*p == '\r') | (*p == '\n'))) {
- // cannot be escaped
- // (should never happen since we checked it wit a regex before)
- DecodeError e (&cs);
- e.Msg() << "Invalid escaped sequence in quoted string: \\\\x" << std::hex << ((int) *p) << std::endl;
- throw e;
- }
-
- // valid escaped character
- result += *p;
- break;
-
- default:
- if ((*p >= 0x23) && (*p <= 0x7e))
- {
- // plain text
- result += *p;
-
- } else if (*p > 127) {
- // UTF-8 character
- //
- // FIXME: how to represent UTF-8 chars ? ('%xx' escape sequences are not used here)
- result += *p;
-
- } else {
- // non allowed character
- // (should never happen since we checked it wit a regex before)
- DecodeError e (&cs);
- e.Msg() << "Invalid character in quoted string: \\x" << std::hex << ((int) *p) << std::endl;
- throw e;
- }
- }
- }
-
- // replace the string with the quoted string
- {
- Bytestring& bs = cs;
- bs.SetValue (result);
- }
- return;
-
-error_malformed:
- DecodeError e(&cs);
- e.Msg() << "Malformed quoted string: " << cs.GetValue() << endl;
- throw e;
-}
-
-static inline bool asciichar_is_displayable (char c)
-{
- if ((c >= 32) && (c<127))
- return true;
- return (c == '\r') | (c == '\n') | (c == '\t') | (c == '%');
-}
-
-void normalise_escaped_string (Charstring& cs) throw (DecodeError)
-{
- std::string result;
-
- const unsigned char* p = cs.GetValueBin();
- const unsigned char* end = p + (cs.GetLength() / 8);
-
- for ( ; p!=end ; p++)
- {
- unsigned char c;
-
- if (*p == '%') {
- // escaped char %xx
-
- if ((end - p) < 3)
- goto error_malformed;
-
- char buff[3] = { p[1], p[2], '\0'};
- p += 2;
-
- char* next;
- c = strtol(buff, &next, 16);
-
- if (next != &buff[2])
- goto error_malformed;
- //TODO: check that the result is UTF-8 valid ?
- } else {
- c = *p;
- }
-
- if (asciichar_is_displayable(c))
- {
- // 7-bit character
- result += c;
- } else {
- // 8-bit character and control characters
- // -> escape it
- char buff[4];
- sprintf (buff, "%%%02x", c);
- result += buff;
- }
- }
-
- // replace the string with the quoted string
- {
- Bytestring& bs = cs;
- bs.SetValue (result);
- }
- return;
-
-error_malformed:
- DecodeError e(&cs);
- e.Msg() << "Malformed string: " << cs.GetValue() << endl;
- throw e;
-}
-
-//WSP: space, htab, vtab, form feed
-#define SIPCHARS_WSP " \t\v\f"
-#define SIPREG_LWS "(?:[" SIPCHARS_WSP "]*\\r\\n)?[" SIPCHARS_WSP "]+"
-#define SIPREG_SWS "(?:" SIPREG_LWS ")?"
-
-void remove_whitespace (Buffer & buffer) {
- static Regex reg_ws ("^" SIPREG_LWS);
- if (reg_ws.Match (buffer)) {
- int nPos = buffer.GetPosition() + reg_ws.GetMatchedLength();
- buffer.SetPosition (nPos);
- }
-}
-
-void read_sp (Buffer & buffer, Variable* v) {
- static Regex reg_ws ("^[ \t]+");
- reg_ws.AssertMatch (buffer, v);
- int nPos = buffer.GetPosition() + reg_ws.GetMatchedLength();
- buffer.SetPosition (nPos);
-}
-
-bool is_sip_scheme (const char * pszScheme) {
- return strcasecmp(pszScheme, "sip") == 0 || strcasecmp(pszScheme, "sips") == 0;
-}
-
-bool is_tel_scheme (const char * pszScheme) {
- return strcasecmp(pszScheme, "tel") == 0 || strcasecmp(pszScheme, "fax") == 0 ||
- strcasecmp(pszScheme, "modem") == 0;
-}
-
-//whitespace
-
-
-#define SIPCHARS_MARK "\\-_.!~*'()"
-#define SIPCHARS_ALFA "A-Za-z"
-#define SIPCHARS_ALFANUM "0-9" SIPCHARS_ALFA
-#define SIPCHARS_HEXA "0-9A-Fa-f"
-#define SIPCHARS_UNRESERVED SIPCHARS_ALFANUM SIPCHARS_MARK
-#define SIPCHARS_RESERVED ";/?:@&=+$,"
-#define SIPCHARS_USER_UNRESERVED "&=+$,;?/"
-#define SIPCHARS_UTF8_NONASCII "\x80-\xFD"
-#define SIPCHARS_TEXT_UTF8CHAR "\x21-\xFD"
-#define SIPREG_ESCAPED "(%[0-9A-Fa-f]{2})"
-#define SIPREG_TOKEN "[" SIPCHARS_ALFANUM ".!%*_+`'~\\-]+"
-#define SIPREG_TOKEN_NODOT "[" SIPCHARS_ALFANUM "!%*_+`'~\\-]+"
-#define SIPREG_WORD "(?:[][" SIPCHARS_ALFANUM "\\-.!%*_+`'~()<>:\\\\\"/?{}])+"
-#define SIPREG_ASCII_WITHOUT_COMMA "[\\x21-\\x2B\\x2D-\\x7E]+"
-#define SIPREG_TEXT_UTF8_TRIM "[\x21-\xFD]([\x21-\xFD]|(" SIPREG_LWS "))*"
-
-
-// sip version
-#define SIPREG_SIP_VERSION "SIP/[0-9]\\.[0-9]"
-
-// header name
-#define SIPREG_HNAME "(?:[][/?:+$" SIPCHARS_UNRESERVED "]|" SIPREG_ESCAPED ")+"
-
-// host name
-#define SIPREG_TOPLABEL "[" SIPCHARS_ALFA "]([" SIPCHARS_ALFANUM "\\-]*[" SIPCHARS_ALFANUM "])?"
-#define SIPREG_DOMAINLABEL "[" SIPCHARS_ALFANUM "]([" SIPCHARS_ALFANUM "\\-]*[" SIPCHARS_ALFANUM "])?"
-#define SIPREG_HOSTNAME "(" SIPREG_DOMAINLABEL "\\.)*" SIPREG_TOPLABEL "\\.?"
-
-#define SIPREG_HCOLON "[ ]*:" SIPREG_SWS
-#define SIPREG_COMMA SIPREG_SWS "[,]" SIPREG_SWS
-#define SIPREG_SEMI SIPREG_SWS "[;]" SIPREG_SWS
-#define SIPREG_EQUAL SIPREG_SWS "[=]" SIPREG_SWS
-#define SIPREG_SLASH SIPREG_SWS "[/]" SIPREG_SWS
-
-// without leading and trailing whitespace
-#define SIPREG_QUOTED_PAIR "[\\x5C][\\x00-\\x09\\x0B\\x0C\\x0E-\\x7F]"
-#define SIPREG_QUOTED_STRING "[\"]((" SIPREG_LWS ")|[]!#-[^-~" SIPCHARS_UTF8_NONASCII"]|(" SIPREG_QUOTED_PAIR "))*[\"]"
-#define SIPREG_DISPLAY_NAME "((" SIPREG_TOKEN "(" SIPREG_LWS SIPREG_TOKEN ")*)|(" SIPREG_QUOTED_STRING "))"
-
-#define SIPREG_COMMENT "[(]((" SIPREG_LWS ")|[\\x021-\\x5B\\x5D-\\xFD]|(" SIPREG_QUOTED_PAIR "))*[)]"
-
-// IPv4
-#define SIPREG_IP4 "([0-9]{1,3}\\.){3}[0-9]{1,3}"
-
-// IPv6
-#define SIPREG_HEX4 "[" SIPCHARS_HEXA "]{1,4}"
-#define SIPREG_HEXSEQ SIPREG_HEX4 "([:]" SIPREG_HEX4 ")*"
-#define SIPREG_HEXPART "(((" SIPREG_HEXSEQ ")?[:]{2}(" SIPREG_HEXSEQ ")?)|(" SIPREG_HEXSEQ "))"
-#define SIPREG_IP6 "[[]" SIPREG_HEXPART "([:]" SIPREG_IP4 ")?[]]"
-
-// host
-#define SIPREG_HOST "((" SIPREG_HOSTNAME ")|(" SIPREG_IP4 ")|(" SIPREG_IP6 "))"
-#define SIPREG_ABSOLUTE_URI "([" SIPCHARS_UNRESERVED "/;?:@&=+$,]|" SIPREG_ESCAPED ")+"
-
-// phone number (global or local)
-#define SIPREG_PHONE_NUMBER "(([+][\\-0-9.()]+)|[\\-0-9()*#A-Da-dPpWw]+)"
-
-#define SIPCHARS_PPARAM_UNRESERVED "][/:&+$"
-#define SIPREG_PPARAM "([" SIPCHARS_PPARAM_UNRESERVED SIPCHARS_UNRESERVED "]|" SIPREG_ESCAPED ")"
-#define SIPREG_PPARAM_ALLOWED "[" SIPCHARS_PPARAM_UNRESERVED SIPCHARS_UNRESERVED ";=%]+"
-
-#define SIPCHARS_HPARAM_UNRESERVED "][/?:+$"
-#define SIPREG_HPARAM "([" SIPCHARS_HPARAM_UNRESERVED SIPCHARS_UNRESERVED "]|" SIPREG_ESCAPED ")"
-#define SIPREG_HPARAM_ALLOWED "[" SIPCHARS_HPARAM_UNRESERVED SIPCHARS_UNRESERVED ";=%]+"
-
-#define SIPREG_TELPARAM_NAME "[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+"
-#define SIPREG_TELPARAM_VALUE "([\\x21\\x23-\\x3A\\x3C-\\x7E]+|(" SIPREG_QUOTED_STRING "))"
-#define SIPREG_TELPARAMS "([;]" SIPREG_TELPARAM_NAME "([=]" SIPREG_TELPARAM_VALUE ")?)+"
-
-#define SIPREG_GPARAM_VALUE "(([" SIPCHARS_ALFANUM ".!%*_+`'~\\-:]+)|(" SIPREG_QUOTED_STRING "))"
-
-// content type parameter
-#define SIPREG_M_PARAMETER SIPREG_TOKEN SIPREG_EQUAL "(?:" SIPREG_TOKEN "|" SIPREG_QUOTED_STRING ")"
-
-
-bool detect_separator(Regex & reg_separator, Buffer & buffer)
-{
- bool bRes;
- if (bRes = reg_separator.Match(buffer))
- reg_separator.MovePast(buffer);
- return bRes;
-}
-bool detect_comma(Buffer & buffer)
-{
- Regex reg_comma ("^" SIPREG_COMMA);
- return detect_separator(reg_comma, buffer);
-}
-
-bool detect_semi(Buffer & buffer) throw (DecodeError)
-{
- Regex reg_semi ("^" SIPREG_SEMI);
- return detect_separator(reg_semi, buffer);
-}
-
-void SipUrl::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csColon;
- csColon.SetValue(":");
-
- switch(field_id) {
- case id_scheme:
- csColon.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void SipUrl::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
-
- static Regex reg_scheme ("^[" SIPCHARS_ALFA "][" SIPCHARS_ALFANUM "+.\\-]*");
- static Regex reg_colon ("^[:]");
- static Regex reg_userinfo ("^(?:[" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED ")+(?::(?:[" SIPCHARS_UNRESERVED "&=+$,]|"SIPREG_ESCAPED")*)?[@]");
- static Regex reg_phone ("^" SIPREG_PHONE_NUMBER);
- static Regex reg_hostport ("^[][" SIPCHARS_ALFANUM ":.\\-]+");
- static Regex reg_absolute_uri ("^" SIPREG_ABSOLUTE_URI);
- static Regex reg_urlParams ("^;" SIPREG_PPARAM_ALLOWED);
- static Regex reg_headers ("^[?]" SIPREG_PPARAM_ALLOWED);
- static Regex reg_telParams ("^" SIPREG_TELPARAMS);
-
- const char * pszScheme;
- switch (id) {
- case id_scheme:
- reg_scheme.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_scheme.GetMatchedLength());
- break;
-
- case id_userInfo:
- reg_colon.AssertMatch(buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- pszScheme = Get_scheme().GetValue();
- SetHypFieldIsPresent (id, 0);
- // user-info is not decoded in case of absoluteURI
- if (is_sip_scheme(pszScheme)) {
- if (reg_userinfo.Match (buffer)) {
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength (id, reg_userinfo.GetMatchedLength() - 8);
- }
- }
- // telephone numbers are decoded to the userInfo field
- else if (is_tel_scheme(pszScheme)){
- reg_phone.AssertMatch(buffer, this);
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength (id, reg_phone.GetMatchedLength());
- }
- else { // absoluteURI
- if (reg_absolute_uri.Match (buffer)) {
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength(id, reg_absolute_uri.GetMatchedLength());
- }
- }
- break;
-
- case id_hostPort:
- pszScheme = Get_scheme().GetValue();
- if (is_sip_scheme(pszScheme)) {
- // remove '@'
- if (IsPresent (id_userInfo)) {
- buffer.SetPosition(buffer.GetPosition() + 8);
- }
- if (reg_hostport.Match (buffer)) {
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength(id, reg_hostport.GetMatchedLength());
- } else if (IsPresent (id_userInfo)) {
- reg_hostport.Error(this, buffer);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- } else { // tel or absoluteURI
- SetHypFieldIsPresent(id, 0);
- }
- break;
-
- case id_urlParameters:
- pszScheme = Get_scheme().GetValue();
- if (is_sip_scheme(pszScheme) && reg_urlParams.Match (buffer)){
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength(id, reg_urlParams.GetMatchedLength());
- } else if (is_tel_scheme(pszScheme)) {
- // "tel" parameters have a different syntax (e.g. & is allowed within both id and values)
- if (reg_telParams.Match (buffer)) {
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength(id, reg_telParams.GetMatchedLength());
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
- else {
- SetHypFieldIsPresent(id, 0);
- }
- break;
- case id_headers:
- pszScheme = Get_scheme().GetValue();
- if (is_sip_scheme(pszScheme) && reg_headers.Match (buffer)){
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength(id, reg_headers.GetMatchedLength());
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- break;
- }
-}
-
-void UserInfo::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csColon;
- csColon.SetValue(":");
-
- switch(field_id) {
- case id_password:
- csColon.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void UserInfo::PostEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring csAt;
- csAt.SetValue("@");
-
- csAt.Encode(buffer);
-}
-
-void UserInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_username ("^([" SIPCHARS_UNRESERVED SIPCHARS_USER_UNRESERVED "]|" SIPREG_ESCAPED ")+");
- static Regex reg_colon ("^[:]");
- static Regex reg_password ("^([&=+$," SIPCHARS_UNRESERVED "]|" SIPREG_ESCAPED ")*");
- static Regex reg_absolute_uri ("^" SIPREG_ABSOLUTE_URI);
-
- // absoluteURI is mapped into SipUrl.userInfo.userOrTelephoneSubscriber and requires special handling
- Variable* parent = GetParent();
- bool bRequestUri = false;
- if (parent != NULL) {
- const char * pszParName = parent->GetTypeName();
- if (strcmp(pszParName, "SipUrl") == 0) {
- SipUrl * pSipUrl = dynamic_cast<SipUrl*>(parent);
- const char * pszScheme = pSipUrl->Get_scheme().GetValue();
- bRequestUri = !is_sip_scheme(pszScheme);
- }
- }
- Regex * pRegex;
- switch (id) {
- case id_userOrTelephoneSubscriber:
- pRegex = bRequestUri ? &reg_absolute_uri : &reg_username;
- pRegex->AssertMatch (buffer, this);
- SetHypFieldLength(id, pRegex->GetMatchedLength());
- break;
- case id_password:
- if(!bRequestUri && reg_colon.Match(buffer)) {
- buffer.SetPosition(buffer.GetPosition() + 8);
- SetHypFieldIsPresent (id, 1);
- reg_password.AssertMatch (buffer, this);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- break;
- }
-}
-
-void UserInfo::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- if (IsPresent (id_userOrTelephoneSubscriber))
- normalise_escaped_string (Get_userOrTelephoneSubscriber());
- if (IsPresent (id_password))
- normalise_escaped_string (Get_password());
-}
-
-void HostPort::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csColon;
- csColon.SetValue(":");
-
- switch(field_id) {
- case id_portField:
- if(IsPresent(field_id)) {
- Get_portField().SetFormat(Integer::AsciiDecimal);
- csColon.Encode(buffer);
- }
- break;
- default:
- break;
- }
-}
-
-void HostPort::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_host ("^" SIPREG_HOST);
- static Regex reg_colon ("^:");
-
- switch (id) {
- case id_host:
- // host is always present
- SetHypFieldIsPresent(id, 1);
- reg_host.AssertMatch (buffer, this);
- SetHypFieldLength(id, reg_host.GetMatchedLength());
- break;
-
- case id_portField:
- if(reg_colon.Match (buffer)) {
- buffer.SetPosition(buffer.GetPosition() + 8);
- SetHypFieldIsPresent (id, 1);
- Get_portField().SetFormat(Integer::AsciiDecimal);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- break;
- }
-}
-
-void SemicolonParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csSemi;
- csSemi.SetValue(";");
-
- csSemi.Encode(buffer);
-}
-
-void SemicolonParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_SEMI);
- if (reg_separator.Match(buffer)) // the separator can be in the beginning
- reg_separator.MovePast(buffer);
-}
-
-void SemicolonParam_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_semi (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void AmpersandParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csAmpersand, csQuestion;
- csAmpersand.SetValue("&");
- csQuestion.SetValue("?");
-
- if(field_id == 0) {
- csQuestion.Encode(buffer);
- }
- else {
- csAmpersand.Encode(buffer);
- }
-}
-
-void AmpersandParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_start ("^[?]");
- static Regex reg_separator ("^[&]");
-
- if (!buffer.GetBitsLeft())
- return;
- if (GetSize() == 0){
- reg_start.AssertMatch(buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- }
- else if (reg_separator.Match(buffer))
- buffer.SetPosition(buffer.GetPosition() + 8);
- else
- SetHypSize(-2);
-}
-
-void CommaParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void CommaParam_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Variable* parent = GetParent();
- if (parent != NULL) {
- const char * pszParName = parent->GetTypeName();
- if (strcmp(pszParName, "Credentials") == 0 ||
- strcmp(pszParName, "AuthenticationInfo") == 0){
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
- }
- }
-}
-
-void CommaParam_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- if (GetSize() > 0 && !reg_content.Match(buffer)) {
- SetHypSize(-2);
- }
-}
-
-void CommaParam_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- if (detect_comma (buffer) && reg_content.Match (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-
-void GenericParam::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csEqual;
- csEqual.SetValue("=");
-
- switch(field_id) {
- case id_paramValue:
- if(IsPresent(field_id)) {
- csEqual.Encode(buffer);
- }
- break;
- default:
- break;
- }
-}
-
-void GenericParam::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_equal ("^" SIPREG_EQUAL);
-
- static Regex reg_pparname ("^" SIPREG_PPARAM "+");
- static Regex reg_pparvalue ("^" SIPREG_PPARAM "*");
-
- static Regex reg_hparname ("^" SIPREG_HPARAM "+");
- static Regex reg_hparvalue ("^" SIPREG_HPARAM "*");
-
- static Regex reg_telparname ("^" SIPREG_TELPARAM_NAME);
- static Regex reg_telparvalue ("^" SIPREG_TELPARAM_VALUE);
-
- static Regex reg_gparname ("^" SIPREG_TOKEN);
- static Regex reg_gparvalue ("^" SIPREG_GPARAM_VALUE);
-
- Regex * preg_name = NULL;
- Regex * preg_value;
- bool bMandatoryParam = false;
-
- Variable* parent = GetParent();
- if (parent == NULL)
- throw DecodeError (this, "Parent type cannot be null\n");
- const char * pszParName = parent->GetTypeName();
- if (strcmp(pszParName, "SemicolonParam_List") == 0){
- parent = parent->GetParent();
- if (parent != NULL && strcmp (parent->GetTypeName(), "SipUrl") == 0) {
- SipUrl * pSipUrl = dynamic_cast<SipUrl*>(parent);
- const char * pszScheme = pSipUrl->Get_scheme().GetValue();
- if (is_sip_scheme(pszScheme)) {
- preg_name = &reg_pparname;
- preg_value = &reg_pparvalue;
- }
- else if (is_tel_scheme(pszScheme)) {
- preg_name = &reg_telparname;
- preg_value = &reg_telparvalue;
- }
- }
- if (preg_name == NULL) {
- preg_name = &reg_gparname;
- preg_value = &reg_gparvalue;
- }
- }
- else if (strcmp(pszParName, "AmpersandParam_List") == 0){
- preg_name = &reg_hparname;
- preg_value = &reg_hparvalue;
- bMandatoryParam = true;
- }
- else if (strcmp(pszParName, "CommaParam_List") == 0){
- preg_name = &reg_gparname;
- preg_value = &reg_gparvalue;
- }
- else {
- std::string message ("Unexpected parent type of parameter record: '");
- message += pszParName;
- message += '\n';
- throw DecodeError (this, message);
- }
-
- char c;
- switch (id) {
- case id_id:
- preg_name->AssertMatch (buffer, this);
- SetHypFieldLength (id, preg_name->GetMatchedLength());
- break;
- case id_paramValue:
- if (bMandatoryParam)
- reg_equal.AssertMatch(buffer, this);
- if(bMandatoryParam || (buffer.GetBitsLeft() && reg_equal.Match(buffer))) {
- buffer.SetPosition(buffer.GetPosition() + reg_equal.GetMatchedLength());
- preg_value->AssertMatch (buffer, this);
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength (id, preg_value->GetMatchedLength());
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- break;
- }
-}
-
-
-void RequestLine::PostEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring cs;
-
- cs.SetValue("\r\n");
- cs.Encode(buffer);
-}
-
-void RequestLine::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring cs;
-
- cs.SetValue(" ");
-
- switch(field_id) {
- case id_method:
- case id_requestUri:
- cs.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void GenericParam::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- Variable* param_list = GetParent();
- if (!param_list)
- return;
-
- Variable* parent = param_list->GetParent();
- if (!parent)
- return;
- const char* parent_type = parent->GetTypeName();
-
- if (strcmp (parent_type, "SipUrl") == 0) {
- normalise_escaped_string (Get_id());
- }
-
- if (IsPresent (id_paramValue))
- {
- Charstring& value = Get_paramValue();
-
- if (value.GetLength() &&
- (*value.GetValueBin() == '"')) {
- normalise_quoted_string (value, true);
- } else {
- const char* par_name = Get_id().GetValue();
-
- //TODO: add other unescaped params
- if (strcmp (parent_type, "ViaBody") == 0) {
- if ((strcmp (par_name, "branch") == 0)
- || (strcmp (par_name, "ttl") == 0)
- || (strcmp (par_name, "maddr") == 0)
- || (strcmp (par_name, "received") == 0))
- goto skip_escape;
- } else if (strcmp (parent_type, "From") == 0) {
- if (strcmp (par_name, "tag") == 0)
- goto skip_escape;
- }
-do_escape:
- normalise_escaped_string (value);
-skip_escape: ;
-
- }
- }
-}
-
-void RequestLine::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_method ("^" SIPREG_TOKEN);
- static Regex reg_request_uri ("[^ \t\n\r]+");
- static Regex reg_sip_version (SIPREG_SIP_VERSION);
- switch (id) {
- case id_method:
- reg_method.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_method.GetMatchedLength());
- break;
- case id_requestUri:
- read_sp (buffer, this);
- reg_request_uri.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_request_uri.GetMatchedLength());
- break;
- case id_sipVersion:
- read_sp (buffer, this);
- reg_sip_version.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_sip_version.GetMatchedLength());
- break;
- }
-}
-
-void RequestLine::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_crlf ("^\r\n");
-
- reg_crlf.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + reg_crlf.GetMatchedLength());
-}
-
-const char* Method::msSipMethods[] = {
- "ACK_E",
- "BYE_E",
- "CANCEL_E",
- "INVITE_E",
- "OPTIONS_E",
- "REGISTER_E",
- "PRACK_E",
- "SUBSCRIBE_E",
- "NOTIFY_E",
- "PUBLISH_E",
- "REFER_E",
- "UPDATE_E",
- "MESSAGE_E",
- "INFO_E",
- "UNKNOWN_METHOD_E"
- , "" };
-
-const char* Method::msMethodValues[] = {
- "ACK",
- "BYE",
- "CANCEL",
- "INVITE",
- "OPTIONS",
- "REGISTER",
- "PRACK",
- "SUBSCRIBE",
- "NOTIFY",
- "PUBLISH",
- "REFER",
- "UPDATE",
- "MESSAGE",
- "INFO"
- "UNKNOWN_METHOD"
- , "" };
-
-void Method::Encode (Buffer& buffer) throw (EncodeError)
-{
- Charstring c;
- const char ** ppMethod = msSipMethods;
- const std::string & val = GetValueString();
-
- int i = 0;
- while (*(ppMethod[i]) && strcmp(ppMethod[i], val.c_str()) != 0)
- i++;
-
- if (*(ppMethod[i]) == 0) {
- std::string message ("unsupported enum value '");
- message += val;
- message += '\n';
- throw EncodeError (this, message);
- }
-
- c.SetValue(msMethodValues[i]);
- c.Encode(buffer);
-}
-
-void Method::Decode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_method ("^" SIPREG_TOKEN);
-
- reg_method.AssertMatch (buffer, this);
-
- const char ** ppValue = msMethodValues;
- const std::string & val = reg_method.GetMatchedString();
-
- int i = 0;
- while (*(ppValue[i]) && strcmp(ppValue[i], val.c_str()) != 0) // case sensitive!!!
- i++;
-
- if (*(ppValue[i]) == 0) {
- SetValueString ("UNKNOWN_METHOD_E");
- } else {
- SetValueString (msSipMethods[i]);
- }
- buffer.SetPosition(buffer.GetPosition() + reg_method.GetMatchedLength());
-}
-
-void StatusLine::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
- switch(field_id) {
- case id_statusCode:
- Get_statusCode().SetFormat(Integer::AsciiDecimal);
- case id_reasonPhrase:
- csWS.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void StatusLine::PostEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring csCRLF;
- csCRLF.SetValue("\r\n");
-
- csCRLF.Encode(buffer);
-}
-
-void StatusLine::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_sip_version (SIPREG_SIP_VERSION);
- static Regex reg_status_code ("^[0-9]{3}");
- static Regex reg_phrase ("([" SIPCHARS_RESERVED SIPCHARS_UNRESERVED SIPCHARS_UTF8_NONASCII " \t]|" SIPREG_ESCAPED ")*");
-
- switch (id) {
- case id_sipVersion:
- reg_sip_version.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_sip_version.GetMatchedLength());
- break;
- case id_statusCode:
- read_sp (buffer, this);
- reg_status_code.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_status_code.GetMatchedLength());
- Get_statusCode().SetFormat(Integer::AsciiDecimal);
- break;
- case id_reasonPhrase:
- read_sp (buffer, this);
- reg_phrase.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_phrase.GetMatchedLength());
- break;
- }
-}
-
-void StatusLine::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_crlf ("^\r\n");
-
- reg_crlf.AssertMatch(buffer, this);
- reg_crlf.MovePast(buffer);
-
- normalise_escaped_string (Get_reasonPhrase());
-}
-
-class SipHeaderMap {
-public:
- struct Entry {
- Entry (const char* name, const char* abbrev, int id_msg_hdr, const char* id_fdn)
- : mName (name), mAbbrev (abbrev), mIdMessageHeader (id_msg_hdr), mIdFieldName (id_fdn)
- {}
- const std::string mName;
- const std::string mAbbrev;
- const int mIdMessageHeader;
- const std::string mIdFieldName;
- };
-
- static const Entry& GetByName (const std::string& key)
- {
- const mMapName_t& m = msInstance.mMapName;
- mMapName_t::const_iterator it = m.find (key);
- if (it != m.end()) {
- return *it->second;
- } else {
- return *msInstance.mUndef;
- }
- }
-
- static const Entry& GetByIdFieldName (const std::string& key)
- {
- const std::map<std::string, Entry*>& m = msInstance.mMapIdFieldName;
- std::map <std::string, Entry*>::const_iterator it = m.find (key);
- if (it != m.end()) {
- return *it->second;
- } else {
- return *msInstance.mUndef;
- }
- }
-
- static const Entry& GetByIdMessageHeader (int key)
- {
- const std::map<int, Entry*>& m = msInstance.mMapIdMessageHeader;
- std::map <int, Entry*>::const_iterator it = m.find (key);
- if (it != m.end()) {
- return *it->second;
- } else {
- return *msInstance.mUndef;
- }
- }
-
-
-private:
- void AddEntry (const Entry& entry) {
- mEntries.push_back(entry);
- Entry& e = *mEntries.rbegin();
-
- //TODO: check unicity
- mMapName[e.mName] = &e;
- mMapName[e.mAbbrev] = &e;
- mMapIdMessageHeader[e.mIdMessageHeader] = &e;
- mMapIdFieldName[e.mIdFieldName] = &e;
- }
-
- SipHeaderMap() {
-
-#define SIP_HEADER_ADD(name, abbr, msghdr, fdname) AddEntry (Entry (#name, #abbr, MessageHeader::id_ ## msghdr, #fdname));
-
- // Name Abbrev MessageHeader FieldName
- // field id field id
- SIP_HEADER_ADD (From, f, fromField, FROM_E);
- SIP_HEADER_ADD (Via, v, via, VIA_E);
- SIP_HEADER_ADD (Accept, , accept, ACCEPT_E);
- SIP_HEADER_ADD (Call-ID, i, callId, CALL_ID_E);
- SIP_HEADER_ADD (CSeq, , cSeq, CSEQ_E);
- SIP_HEADER_ADD (Content-Length, l, contentLength, CONTENT_LENGTH_E);
- SIP_HEADER_ADD (Content-Type, c, contentType, CONTENT_TYPE_E);
- SIP_HEADER_ADD (Contact, m, contact, CONTACT_E);
- SIP_HEADER_ADD (To, t, toField, TO_E);
- SIP_HEADER_ADD (Accept-Encoding, , acceptEncoding, ACCEPT_ENCODING_E);
- SIP_HEADER_ADD (Accept-Language, , acceptLanguage, ACCEPT_LANGUAGE_E);
- SIP_HEADER_ADD (Max-Forwards, , maxForwards, MAX_FORWARDS_E);
- SIP_HEADER_ADD (Alert-Info, , alertInfo, ALERT_INFO_E);
- SIP_HEADER_ADD (Require, , require, REQUIRE_E);
- SIP_HEADER_ADD (Proxy-Require, , proxyRequire, PROXY_REQUIRE_E);
- SIP_HEADER_ADD (Record-Route, , recordRoute, RECORD_ROUTE_E);
- SIP_HEADER_ADD (Allow, , allow, ALLOW_E);
- SIP_HEADER_ADD (Authentication-Info, , authenticationInfo, AUTHENTICATION_INFO_E);
- SIP_HEADER_ADD (Authorization, , authorization, AUTHORIZATION_E);
- SIP_HEADER_ADD (Call-Info, , callInfo, CALL_INFO_E);
- SIP_HEADER_ADD (Content-Disposition, , contentDisposition, CONTENT_DISPOSITION_E);
- SIP_HEADER_ADD (Content-Encoding, e, contentEncoding, CONTENT_ENCODING_E);
- SIP_HEADER_ADD (Content-Language, , contentLanguage, CONTENT_LANGUAGE_E);
- SIP_HEADER_ADD (Date, , date, DATE_E);
- SIP_HEADER_ADD (Error-Info, , errorInfo, ERROR_INFO_E);
- SIP_HEADER_ADD (Expires, , expires, EXPIRES_E);
- SIP_HEADER_ADD (In-Reply-To, , inReplyTo, IN_REPLY_TO_E);
- SIP_HEADER_ADD (MIME-Version, , mimeVersion, MIME_VERSION_E);
- SIP_HEADER_ADD (Min-Expires, , minExpires, MIN_EXPIRES_E);
- SIP_HEADER_ADD (Organization, , organization, ORGANIZATION_E);
- SIP_HEADER_ADD (Priority, , priority, PRIORITY_E);
- SIP_HEADER_ADD (Proxy-Authenticate, , proxyAuthenticate, PROXY_AUTHENTICATE_E);
- SIP_HEADER_ADD (Proxy-Authorization, , proxyAuthorization, PROXY_AUTHORIZATION_E);
- SIP_HEADER_ADD (Reply-To, , replyTo, REPLY_TO_E);
- SIP_HEADER_ADD (Retry-After, , retryAfter, RETRY_AFTER_E);
- SIP_HEADER_ADD (Route, , route, ROUTE_E);
- SIP_HEADER_ADD (Server, , server, SERVER_E);
- SIP_HEADER_ADD (Supported, , supported, SUPPORTED_E);
- SIP_HEADER_ADD (Subject, s, subject, SUBJECT_E);
- SIP_HEADER_ADD (Timestamp, , timestamp, TIMESTAMP_E);
- SIP_HEADER_ADD (Unsupported, , unsupported, UNSUPPORTED_E);
- SIP_HEADER_ADD (User-Agent, , userAgent, USER_AGENT_E);
- SIP_HEADER_ADD (Warning, , warning, WARNING_E);
- SIP_HEADER_ADD (WWW-Authenticate, , wwwAuthenticate, WWW_AUTHENTICATE_E);
- SIP_HEADER_ADD (RSeq, , rSeq, RSEQ_E);
- SIP_HEADER_ADD (RAck, , rAck, RACK_E);
- SIP_HEADER_ADD (Allow-Events, u, allowEvents, ALLOW_EVENTS_E);
- SIP_HEADER_ADD (Event, o, event, EVENT_E);
- SIP_HEADER_ADD (Subscription-State, , subscriptionState, SUBSCRIPTION_STATE_E);
- SIP_HEADER_ADD (P-Media-Authorization, , pMediaAuthorization, P_MEDIA_AUTHORIZATION_E);
- SIP_HEADER_ADD (Privacy, , privacy, PRIVACY_E);
- SIP_HEADER_ADD (P-Asserted-Identity, , pAssertedID, P_ASSERTED_ID_E);
- SIP_HEADER_ADD (P-Preferred-Identity, , pPreferredID, P_PREFERRED_ID_E);
- SIP_HEADER_ADD (Reason, , reason, REASON_E);
- SIP_HEADER_ADD (Path, , path, PATH_E);
- SIP_HEADER_ADD (Security-Client, , securityClient, SECURITY_CLIENT_E);
- SIP_HEADER_ADD (Security-Server, , securityServer, SECURITY_SERVER_E);
- SIP_HEADER_ADD (Security-Verify, , securityVerify, SECURITY_VERIFY_E);
- SIP_HEADER_ADD (P-Associated-URI, , pAssociatedURI, P_ASSOCIATED_URI_E);
- SIP_HEADER_ADD (P-Called-Party-ID, , pCalledPartyID, P_CALLED_PARTY_E);
- SIP_HEADER_ADD (P-Visited-Network-ID, , pVisitedNetworkID, P_VISITED_NETWORK_E);
- SIP_HEADER_ADD (P-Access-Network-Info, , pAccessNetworkInfo, P_ACCESS_NETWORK_INFO_E);
- SIP_HEADER_ADD (P-Charging-Function-Addresses, , pChargingFunctionAddresses, P_CHARGING_FUNCTION_ADDRESSES_E);
- SIP_HEADER_ADD (P-Charging-Vector, , pChargingVector, P_CHARGING_VECTOR_E);
- SIP_HEADER_ADD (Refer-To, r, referTo, REFER_TO_E);
- SIP_HEADER_ADD (Service-Route, , serviceRoute, SERVICE_ROUTE_E);
- SIP_HEADER_ADD (Accept-Contact, a, acceptContact, ACCEPT_CONTACT_E);
- SIP_HEADER_ADD (Referred-By, b, referredBy, REFERRED_BY_E);
- SIP_HEADER_ADD (Session-Expires, , sessionExpires, SESSION_EXPIRES_E);
- SIP_HEADER_ADD (Min-SE, , minSE, MIN_SE_E);
- SIP_HEADER_ADD (History-Info, , historyInfo, HISTORY_INFO_E);
- SIP_HEADER_ADD (P-Early-Media, , pEarlyMedia, P_EARLY_MEDIA_E);
- SIP_HEADER_ADD (P-Asserted-Service, , pAssertedService, P_ASSERTED_SERVICE_E);
- {
- mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, ""));
- Entry& e = *mEntries.rbegin();
- mMapIdMessageHeader[e.mIdMessageHeader] = &e;
- mUndef = &e;
- }
- }
-
- static SipHeaderMap msInstance;
-
- std::list<Entry> mEntries;
- Entry* mUndef;
-
- class StringCaseInsensitiveComparator
- {
- public:
- bool operator() (const std::string& a, const std::string& b) const
- {
- return (strcasecmp (a.c_str(), b.c_str()) < 0);
- }
- };
-
- typedef std::map <std::string, Entry*, StringCaseInsensitiveComparator> mMapName_t;
- mMapName_t mMapName;
- std::map <std::string, Entry*> mMapIdFieldName;
- std::map <int, Entry*> mMapIdMessageHeader;
-
-};
-
-SipHeaderMap SipHeaderMap::msInstance;
-
-void MessageHeader::PostEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring csCRLF;
- csCRLF.SetValue("\r\n");
-
- csCRLF.Encode(buffer);
-}
-
-void MessageHeader::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csCRLF;
- csCRLF.SetValue("\r\n");
-
- if(IsPresent(field_id)) {
- csCRLF.Encode(buffer);
- }
-}
-
-void MessageHeader::PreDecodeField (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_header_name ("^(" SIPREG_TOKEN ")" SIPREG_HCOLON);
- static Regex reg_crlf ("^\r\n");
-
- if (reg_crlf.Match (buffer)) {
- reg_crlf.MovePast (buffer);
- SetHypNextField (-2); // end of the headers
- } else {
- reg_header_name.AssertMatch (buffer, this);
-
- const SipHeaderMap::Entry& hdr = SipHeaderMap::GetByName(reg_header_name.GetMatchedString (1));
- int id = hdr.mIdMessageHeader;
-
- // check that this field is not duplicated
- if (IsPresent(id)) {
- switch (id) {
- case id_accept:
- case id_acceptEncoding:
- case id_acceptLanguage:
- case id_alertInfo:
- case id_allow:
- case id_authorization:
- case id_contact:
- case id_contentEncoding:
- case id_contentLanguage:
- case id_errorInfo:
- case id_inReplyTo:
- case id_proxyAuthorization:
- case id_proxyRequire:
- case id_recordRoute:
- case id_require:
- case id_route:
- case id_supported:
- case id_unsupported:
- case id_via:
- case id_warning:
- case id_allowEvents:
- case id_pMediaAuthorization:
- case id_pAssertedID:
- case id_pPreferredID:
- case id_reason:
- case id_path:
- case id_securityClient:
- case id_securityServer:
- case id_securityVerify:
- case id_pAssociatedURI:
- case id_pCalledPartyID:
- case id_pVisitedNetworkID:
- case id_acceptContact:
- case id_historyInfo:
- case id_pEarlyMedia:
- case id_undefinedHeader_List:
- // these fields can appear multiple times
- break;
- default:
- DecodeError e (this);
- e.Msg() << "Duplicated field in the message: "
- << hdr.mName << std::endl;
- throw (e);
- }
- }
- SetHypNextField (id);
- }
-}
-
-void MessageHeader::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_crlf ("^\r\n");
-
- reg_crlf.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + reg_crlf.GetMatchedLength());
-}
-
-
-const char* FieldName::msFields[] = {
- "ACCEPT_E",
- "ACCEPT_ENCODING_E",
- "ACCEPT_LANGUAGE_E",
- "ALERT_INFO_E",
- "ALLOW_E",
- "AUTHENTICATION_INFO_E",
- "AUTHORIZATION_E",
- "CALL_ID_E",
- "CALL_INFO_E",
- "CONTACT_E",
- "CONTENT_DISPOSITION_E",
- "CONTENT_ENCODING_E",
- "CONTENT_LANGUAGE_E",
- "CONTENT_LENGTH_E",
- "CONTENT_TYPE_E",
- "CSEQ_E",
- "DATE_E",
- "ERROR_INFO_E",
- "EXPIRES_E",
- "FROM_E",
- "IN_REPLY_TO_E",
- "MAX_FORWARDS_E",
- "MIME_VERSION_E",
- "MIN_EXPIRES_E",
- "ORGANIZATION_E",
- "PRIORITY_E",
- "PROXY_AUTHENTICATE_E",
- "PROXY_AUTHORIZATION_E",
- "PROXY_REQUIRE_E",
- "RECORD_ROUTE_E",
- "REPLY_TO_E",
- "REQUIRE_E",
- "RETRY_AFTER_E",
- "ROUTE_E",
- "SERVER_E",
- "SUBJECT_E",
- "SUPPORTED_E",
- "TIMESTAMP_E",
- "TO_E",
- "UNSUPPORTED_E",
- "USER_AGENT_E",
- "VIA_E",
- "WARNING_E",
- "WWW_AUTHENTICATE_E",
- "RACK_E",
- "RSEQ_E",
- "ALLOW_EVENTS_E",
- "EVENT_E",
- "SUBSCRIPTION_STATE_E",
- "P_MEDIA_AUTHORIZATION_E",
- "PRIVACY_E",
- "P_ASSERTED_ID_E",
- "P_PREFERRED_ID_E",
- "REASON_E",
- "REFER_TO_E",
- "REFERRED_BY_E",
- "HISTORY_INFO_E",
- "P_MEDIA_AUTH_E",
- "PATH_E",
- "SECURITY_CLIENT_E",
- "SECURITY_SERVER_E",
- "SECURITY_VERIFY_E",
- "P_ACCESS_NETWORK_INFO_E",
- "P_ASSOCIATED_URI_E",
- "P_CALLED_PARTY_E",
- "P_CHARGING_FUNCTION_ADDRESSES_E",
- "P_CHARGING_VECTOR_E",
- "P_VISITED_NETWORK_E",
- "SERVICE_ROUTE_E",
- "ACCEPT_CONTACT_E",
- "MIN_SE_E",
- "SESSION_EXPIRES_E",
- "P_ASSERTED_SERVICE_E",
- "P_EARLY_MEDIA_E"
- , "" };
-
-void FieldName::Encode (Buffer& buffer) throw (EncodeError)
-{
- Charstring c;
-
- c.SetValue ((SipHeaderMap::GetByIdFieldName(GetValueString()).mName + ": ").c_str());
- c.Encode(buffer);
-}
-
-void FieldName::Decode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_header_name ("^([A-Za-z\\-]+)" SIPREG_HCOLON);
-
- reg_header_name.AssertMatch (buffer, this);
- SetValueString (SipHeaderMap::GetByName(reg_header_name.GetMatchedString (1)).mIdFieldName.c_str());
-
- buffer.SetPosition(buffer.GetPosition() + reg_header_name.GetMatchedLength());
-}
-
-void Addr_Union::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_name_addr ("^" SIPREG_DISPLAY_NAME "?" SIPREG_SWS "<[^\\r\\n]*>");
-
- mPosition = buffer.GetPosition();
-
- SetHypChosenId (
- reg_name_addr.Match (buffer)
- ? id_nameAddr
- : id_addrSpecUnion
- );
-}
-
-void Addr_Union::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- if (GetChosenId() == id_addrSpecUnion) {
- Variable* parent = GetParent();
- if (parent && (
- (strcmp (parent->GetTypeName(), "From") == 0) ||
- (strcmp (parent->GetTypeName(), "ContactAddress") == 0) ||
- (strcmp (parent->GetTypeName(), "ReplyTo") == 0) ||
- (strcmp (parent->GetTypeName(), "To") == 0) ))
- {
- // in the case we decoded an address not enclosed in <> in a
- // From, Contact, Reply-To or To header, then we must ensure
- // that it does not contain comma, semicolon or question mark
-
- const unsigned char* start = buffer.GetValueBin() + (mPosition/8);
- const unsigned char* end = buffer.GetValueBin() + (buffer.GetPosition()/8);
-
- for (const unsigned char* p=start ; p!=end ; p++) {
- switch (*p) {
- case ';':
- Get_addrSpecUnion().SetField (SipUrl::id_urlParameters, new Undef);
- case '?':
- Get_addrSpecUnion().SetField (SipUrl::id_headers, new Undef);
- buffer.SetPosition ((p-start) * 8 + mPosition);
- goto finished;
- case ',':
- throw DecodeError (this, "Url must not contain unescaped comma, semicolor or question mark if it is not enclosed with <>\n");
- default: ;
- }
- }
- finished: ;
- }
- }
-}
-
-void ContactBody::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_asterisk ("^[*]");
- if (reg_asterisk.Match (buffer)) {
- if (GetChosenId() == id_contactAddresses)
- throw DecodeError (this, "cannot process wildcard; contactAddresses option is already selected\n");
- SetHypChosenId (id_wildcard);
- SetHypFieldLength(id_wildcard, 8);
- } else {
- if (GetChosenId() == id_wildcard)
- throw DecodeError (this, "cannot process address list; wildcart option is already selected\n");
- SetHypChosenId (id_contactAddresses);
- }
-}
-
-void ContactAddress_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void ContactAddress_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void ContactAddress_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void ContactAddress::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- if (id == id_contactParams) {
- if(reg_semicolon.Match(buffer)) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void From::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_semicolon ("^;");
- if (id == id_fromParams) {
- if(reg_semicolon.Match(buffer)) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void To::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_semicolon ("^;");
- if (id == id_toParams) {
- if(reg_semicolon.Match(buffer)) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void ReplyTo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_semicolon ("^;");
- if (id == id_replyToParams) {
- if(reg_semicolon.Match(buffer)) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void Accept::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_accept_args ("^[^;,\\r\\n]");
- if (id == id_acceptArgs){
- if(reg_accept_args.Match(buffer) || Get_acceptArgs().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else if (Get_acceptArgs().GetSize() == 0){
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void AcceptBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_media_range ("^[^" SIPCHARS_WSP ";,\\r\\n]+");
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- switch (id){
- case id_mediaRange:
- reg_media_range.AssertMatch (buffer, this);
- SetHypFieldLength(id, reg_media_range.GetMatchedLength());
- break;
- case id_acceptParam:
- if (reg_semicolon.Match (buffer) ) {
- SetHypFieldIsPresent(id, 1);
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
-}
-
-void AcceptBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void AcceptBody_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // we assume that we are decoding one field at onece
- // multiple fields are handled by successively decoding
- // the via field several times in MessageHeader
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void AcceptBody_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- if (GetSize() > 0 && !reg_content.Match(buffer)) {
- SetHypSize(-2);
- }
-}
-
-void AcceptBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- if (detect_comma (buffer) && reg_content.Match (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void AcceptEncoding::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_content_coding ("^[^,\\r\\n]");
- if (id == id_contentCoding){
- if(reg_content_coding.Match(buffer) ||
- Get_contentCoding().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void ContentCoding_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void ContentCoding_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- if (GetSize() == 0)
- reg_content.AssertMatch(buffer, this);
- else if (!reg_content.Match(buffer)) {
- SetHypSize(-2);
- return;
- }
- SetHypFieldLength(reg_content.GetMatchedLength());
-}
-
-
-void ContentCoding_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- if (detect_comma (buffer) && reg_content.Match (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void AcceptLanguage::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_language_body ("^[^;,\\r\\n]");
- if (id == id_languageBody){
- if(reg_language_body.Match(buffer) ||
- Get_languageBody().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void LanguageBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_language_range ("^[^" SIPCHARS_WSP ";,\\r\\n]+");
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- switch (id){
- case id_languageRange:
- reg_language_range.AssertMatch (buffer, this);
- SetHypFieldLength(id, reg_language_range.GetMatchedLength());
- break;
- case id_acceptParam:
- if (reg_semicolon.Match (buffer)) {
- SetHypFieldIsPresent(id, 1);
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
-}
-
-void LanguageBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void LanguageBody_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // we assume that we are decoding one field at onece
- // multiple fields are handled by successively decoding
- // the via field several times in MessageHeader
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void LanguageBody_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) {
- static Regex reg_language ("^[^" SIPCHARS_WSP ";,\\r\\n]+");
- if (!reg_language.Match(buffer)) {
- SetHypSize(-2);
- return;
- }
-}
-
-void LanguageBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_language ("^[^" SIPCHARS_WSP ";,\\r\\n]+");
- if (detect_comma (buffer) && reg_language.Match (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void MaxForwards::PreEncode (Buffer& buffer) throw (EncodeError)
-{
- Get_forwards().SetFormat(Integer::AsciiDecimal);
-}
-
-void MaxForwards::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_forwards().SetFormat(Integer::AsciiDecimal);
-}
-
-void AlertInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_alert_info ("^[^;,\\r\\n]");
- if (id == id_alertInfoBody){
- if(reg_alert_info.Match(buffer) || Get_alertInfoBody().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void AlertInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csLeftAngle;
- csLeftAngle.SetValue("<");
-
- if(field_id == id_url) {
- csLeftAngle.Encode(buffer);
- }
-}
-
-void AlertInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csRightAngle;
- csRightAngle.SetValue(">");
-
- if(field_id == id_url) {
- csRightAngle.Encode(buffer);
- }
-}
-
-void AlertInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_url ("^<" SIPREG_ABSOLUTE_URI ">");
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- switch (id){
- case id_url:
- reg_url.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- SetHypFieldLength(id, reg_url.GetMatchedLength() - 16);
- break;
- case id_genericParams:
- if (reg_semicolon.Match (buffer)) {
- SetHypFieldIsPresent(id, 1);
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
-}
-
-void AlertInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- switch (id){
- case id_url:
- buffer.SetPosition(buffer.GetPosition() + 8);
- break;
- }
-}
-
-void AlertInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void AlertInfoBody_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // we assume that we are decoding one field at onece
- // multiple fields are handled by successively decoding
- // the via field several times in MessageHeader
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void AlertInfoBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void Allow::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_allow ("^[^,\\r\\n]");
- if (id == id_methods){
- if(reg_allow.Match(buffer) || Get_methods().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void Method_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void Method_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // we assume that we are decoding one field at onece
- // multiple fields are handled by successively decoding
- // the via field several times in MessageHeader
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void Method_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) {
- static Regex reg_content ("^" SIPREG_TOKEN);
-
- if (reg_content.Match (buffer)) {
- SetHypFieldLength(reg_content.GetMatchedLength());
- } else {
- SetHypSize(-2);
- return;
- }
-}
-
-void Method_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_TOKEN);
-
- if (detect_comma (buffer) && reg_content.Match (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void Credentials::PreEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring csDigestWS;
- csDigestWS.SetValue("Digest ");
-
- if(GetChosenId() == id_digestResponse) {
- csDigestWS.Encode(buffer);
- }
-}
-
-void Credentials::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_digest ("^[Dd][Ii][Gg][Ee][Ss][Tt]" SIPREG_LWS);
- if (reg_digest.Match (buffer)) {
- if (GetChosenId() == id_otherResponse)
- throw DecodeError (this, "cannot process digest credentials; otherResponse option is already selected\n");
- buffer.SetPosition(buffer.GetPosition() + reg_digest.GetMatchedLength());
- SetHypChosenId (id_digestResponse);
- } else {
- if (GetChosenId() == id_digestResponse)
- throw DecodeError (this, "cannot process custom credentials; digestResponse option is already selected\n");
- SetHypChosenId (id_otherResponse);
- }
-}
-
-void Challenge::PreEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring csDigestWS;
- csDigestWS.SetValue("Digest ");
-
- if(GetChosenId() == id_digestCln) {
- csDigestWS.Encode(buffer);
- }
-}
-
-void Challenge::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_digest ("^[Dd][Ii][Gg][Ee][Ss][Tt]" SIPREG_LWS);
- if (reg_digest.Match (buffer)) {
- buffer.SetPosition(buffer.GetPosition() + reg_digest.GetMatchedLength());
- SetHypChosenId (id_digestCln);
- } else {
- SetHypChosenId (id_otherChallenge);
- }
-}
-
-void OtherAuth::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
- switch(field_id) {
- case id_authScheme:
- csWS.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void OtherAuth::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_auth_scheme ("^" SIPREG_TOKEN);
- static Regex reg_separator ("^" SIPREG_LWS);
-
- switch (id){
- case id_authScheme:
- reg_auth_scheme.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_auth_scheme.GetMatchedLength());
- break;
- case id_authParams:
- reg_separator.AssertMatch(buffer, this);
- buffer.SetPosition(buffer.GetPosition() + reg_separator.GetMatchedLength());
- Get_authParams().SetHypSize (GetSize() + 1);
- Get_authParams().SetHypAppend (1);
- break;
- }
-}
-
-void CallInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_call_info ("^[^;,\\r\\n]");
- if (id == id_callInfoBody){
- if(reg_call_info.Match(buffer)) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void CallInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csLeftAngle;
- csLeftAngle.SetValue("<");
-
- if(field_id == id_url) {
- csLeftAngle.Encode(buffer);
- }
-}
-
-void CallInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csRightAngle;
- csRightAngle.SetValue(">");
-
- if(field_id == id_url) {
- csRightAngle.Encode(buffer);
- }
-}
-
-void CallInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_url ("^<" SIPREG_ABSOLUTE_URI ">");
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- switch (id){
- case id_url:
- reg_url.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- SetHypFieldLength(id, reg_url.GetMatchedLength() - 16);
- break;
- case id_infoParams:
- if (reg_semicolon.Match (buffer)) {
- SetHypFieldIsPresent(id, 1);
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
-}
-
-void CallInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- switch (id){
- case id_url:
- buffer.SetPosition(buffer.GetPosition() + 8);
- break;
- }
-}
-
-void CallInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void CallInfoBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void ContentDisposition::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_disposition_type ("^" SIPREG_TOKEN);
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- switch (id){
- case id_dispositionType:
- reg_disposition_type.AssertMatch (buffer, this);
- SetHypFieldLength(id, reg_disposition_type.GetMatchedLength());
- break;
- case id_dispositionParams:
- if (reg_semicolon.Match (buffer)) {
- SetHypFieldIsPresent(id, 1);
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
-}
-
-void LanguageTag_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void LanguageTag_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void LanguageTag_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- reg_content.AssertMatch(buffer, this);
- SetHypFieldLength(reg_content.GetMatchedLength());
-}
-
-void LanguageTag_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void Date::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_date ("^[^\\r\\n]+");
- if (id == id_sipDate){
- reg_date.AssertMatch(buffer, this);
- SetHypFieldLength(id, reg_date.GetMatchedLength());
- }
-}
-
-void ErrorInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_error_info ("^[^;,\\r\\n]");
- if (id == id_errorInfo){
- if(reg_error_info.Match(buffer) || Get_errorInfo().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- }
-}
-
-void ErrorInfoBody::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csLeftAngle;
- csLeftAngle.SetValue("<");
-
- if(field_id == id_uri) {
- csLeftAngle.Encode(buffer);
- }
-}
-
-void ErrorInfoBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csRightAngle;
- csRightAngle.SetValue(">");
-
- if(field_id == id_uri) {
- csRightAngle.Encode(buffer);
- }
-}
-
-void ErrorInfoBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_uri ("^<" SIPREG_ABSOLUTE_URI ">");
- static Regex reg_semicolon ("^" SIPREG_SEMI);
- switch (id){
- case id_uri:
- reg_uri.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- SetHypFieldLength(id, reg_uri.GetMatchedLength() - 16);
- break;
- case id_genericParams:
- if (reg_semicolon.Match (buffer)) {
- SetHypFieldIsPresent(id, 1);
- } else {
- SetHypFieldIsPresent(id, 0);
- }
- }
-}
-
-void ErrorInfoBody::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- switch (id){
- case id_uri:
- buffer.SetPosition(buffer.GetPosition() + 8);
- break;
- }
-}
-
-void ErrorInfoBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void ErrorInfoBody_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void ErrorInfoBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void Expires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_delta_sec ("^[0-9]+");
-
- switch (id) {
- case id_deltaSec:
- reg_delta_sec.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_delta_sec.GetMatchedLength());
- break;
- }
-}
-
-void CallidString_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void CallidString_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void CallidString_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_ASCII_WITHOUT_COMMA);
- reg_content.AssertMatch(buffer, this);
- SetHypFieldLength(reg_content.GetMatchedLength());
-}
-
-
-void CallidString_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void MimeVersion::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csDot;
- csDot.SetValue(".");
-
- switch(field_id) {
- case id_majorNumber:
- Get_majorNumber().SetFormat(Integer::AsciiDecimal);
- break;
- case id_minorNumber:
- Get_minorNumber().SetFormat(Integer::AsciiDecimal);
- csDot.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void MimeVersion::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_majorNumber().SetFormat(Integer::AsciiDecimal);
- Get_minorNumber().SetFormat(Integer::AsciiDecimal);
-}
-void MimeVersion::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^[.]");
- if (id == id_minorNumber) {
- reg_separator.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- }
-}
-void MinExpires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_delta_sec ("^[0-9]+");
-
- switch (id) {
- case id_deltaSec:
- reg_delta_sec.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_delta_sec.GetMatchedLength());
- break;
- }
-}
-
-void Organization::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_organization ("^(" SIPREG_TEXT_UTF8_TRIM ")*");
-
- switch (id) {
- case id_organization:
- reg_organization.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_organization.GetMatchedLength());
- break;
- }
-}
-
-void Priority::PreDecodeField (int id, Buffer& buffer) throw (DecodeError){
- static Regex reg_priority ("^" SIPREG_TOKEN);
- if (id == id_priorityValue){
- reg_priority.AssertMatch(buffer, this);
- SetHypFieldLength(id, reg_priority.GetMatchedLength());
- }
-}
-
-void RetryAfter::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csLeftPar;
- csLeftPar.SetValue("(");
-
- if(field_id == id_comment && IsPresent(id_comment)) {
- csLeftPar.Encode(buffer);
- }
-}
-
-void RetryAfter::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csRightPar;
- csRightPar.SetValue(")");
-
- if(field_id == id_comment && IsPresent(id_comment)) {
- csRightPar.Encode(buffer);
- }
-}
-
-void RetryAfter::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_delta_sec ("^[0-9]+");
- static Regex reg_comment ("^" SIPREG_COMMENT);
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_deltaSec:
- reg_delta_sec.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_delta_sec.GetMatchedLength());
- break;
- case id_comment:
- remove_whitespace(buffer);
- if (reg_comment.Match (buffer)) {
- SetHypFieldIsPresent(id, 1);
- SetHypFieldLength (id, reg_comment.GetMatchedLength() - 16);
- buffer.SetPosition(buffer.GetPosition() + 8);
- }
- else
- SetHypFieldIsPresent(id, 0);
- break;
- case id_retryParams:
- if (reg_separator.Match (buffer))
- SetHypFieldIsPresent(id, 1);
- else
- SetHypFieldIsPresent(id, 0);
- break;
- }
-}
-
-void RetryAfter::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_parenthesis ("^[)]");
- if (id == id_comment && IsPresent(id))
- {
- reg_parenthesis.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- remove_whitespace(buffer);
- }
-}
-
-void Subject::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_summary ("^(" SIPREG_TEXT_UTF8_TRIM ")*");
-
- switch (id) {
- case id_summary:
- reg_summary.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_summary.GetMatchedLength());
- break;
- }
-}
-
-
-void ServerVal_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
- if(field_id != 0) {
- csWS.Encode(buffer);
- }
-}
-
-void ServerVal_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^(" SIPREG_TOKEN "(" SIPREG_SLASH SIPREG_TOKEN ")?|" SIPREG_COMMENT ")");
- reg_content.AssertMatch(buffer, this);
- SetHypFieldLength(reg_content.GetMatchedLength());
-}
-
-void ServerVal_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_LWS);
- if (reg_separator.Match (buffer)) {
- reg_separator.MovePast (buffer);
- SetHypSize (GetSize() + 1);
- }
- else
- SetHypSize (-2);
-}
-
-void Supported::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_TOKEN);
-
- switch (id){
- case id_optionsTags:
- if (reg_content.Match (buffer) || Get_optionsTags().GetSize() > 0)
- SetHypFieldIsPresent(id, 1);
- else
- SetHypFieldIsPresent(id, 0);
- break;
- }
-}
-
-void NameAddr::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csLeftAngle;
- csLeftAngle.SetValue("<");
-
- if(field_id == id_addrSpec) {
- csLeftAngle.Encode(buffer);
- }
-}
-
-void NameAddr::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS, csRightAngle;
- csWS.SetValue(" ");
- csRightAngle.SetValue(">");
-
- switch(field_id) {
- case id_displayName:
- if(IsPresent(id_displayName)) {
- csWS.Encode(buffer);
- }
- break;
- case id_addrSpec:
- csRightAngle.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void NameAddr::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_display_name ("^" SIPREG_DISPLAY_NAME);
- static Regex reg_laquot = ("^<");
- static Regex reg_uri = ("^[^\\r\\n]+");
-
- remove_whitespace(buffer);
- switch (id){
- case id_displayName:
- if (reg_display_name.Match(buffer)) {
- SetHypFieldIsPresent (id, 1);
- SetHypFieldLength (id, reg_display_name.GetMatchedLength());
- } else {
- SetHypFieldIsPresent (id, 0);
- }
- break;
- case id_addrSpec:
- reg_laquot.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- reg_uri.AssertMatch(buffer, this);
- SetHypFieldLength (id, reg_uri.GetMatchedLength());
- break;
- }
-}
-
-void NameAddr::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_raquot ("^>");
-
- reg_raquot.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8);
- remove_whitespace(buffer);
-
- if (IsPresent (id_displayName)) {
- if (Get_displayName().GetLength() &&
- (*Get_displayName().GetValueBin() == '"'))
- normalise_quoted_string (Get_displayName(), true);
- }
-}
-
-void SentProtocol::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csSlash;
- csSlash.SetValue("/");
-
- if(field_id != id_protocolName) {
- csSlash.Encode(buffer);
- }
-}
-
-void SentProtocol::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
-
- if (id) {
- static Regex reg_slash ("^/");
- reg_slash.AssertMatch (buffer, this);
- reg_slash.MovePast (buffer);
- }
-
- static Regex reg_sp ("^" SIPREG_TOKEN);
-
- reg_sp.AssertMatch (buffer, this);
-
- SetHypFieldLength (id, reg_sp.GetMatchedLength());
-}
-
-void ViaBody::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
- if(field_id == id_sentProtocol) {
- csWS.Encode(buffer);
- }
-}
-
-void ViaBody::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_lws ("^" SIPREG_LWS);
- static Regex reg_semi ("^;");
-
- switch (id) {
- case id_sentBy:
- reg_lws.AssertMatch (buffer, this);
- reg_lws.MovePast (buffer);
- break;
- case id_viaParams:
- SetHypFieldIsPresent (id, reg_semi.Match (buffer) ? 1 : 0);
- break;
- default:
- ;
- }
-}
-
-void ViaBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void ViaBody_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // we assume that we are decoding one field at once
- // multiple fields are handled by successively decoding
- // the via field several times in MessageHeader
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void ViaBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- Regex reg_comma ("^" SIPREG_COMMA);
-
- if (reg_comma.Match(buffer)) {
- reg_comma.MovePast(buffer);
-
- SetHypSize (GetSize() + 1);
- }
-}
-
-void UndefinedHeader_List::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csCRLF;
- csCRLF.SetValue("\r\n");
-
- csCRLF.Encode(buffer);
-}
-
-void UndefinedHeader_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // we assume that we are decoding one field at once
- // multiple fields are handled by successively decoding
- // the via field several times in MessageHeader
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void UndefinedHeader::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csColon;
- csColon.SetValue(": ");
-
- if(field_id == id_headerName) {
- csColon.Encode(buffer);
- }
-}
-
-void UndefinedHeader::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_header_name ("^" SIPREG_TOKEN);
-
- // TODO: match properly UTF-8 characters
- // TODO: normalise the value ?...
- static Regex reg_header_value ("^" SIPREG_HCOLON "(([^\\r\\n]|" SIPREG_SWS ")*)");
-
- switch (id) {
- case id_headerName:
- reg_header_name.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_header_name.GetMatchedLength());
- break;
- case id_headerValue:
- reg_header_value.AssertMatch (buffer, this);
- reg_header_value.MoveAt (buffer, 1);
- SetHypFieldLength (id, reg_header_value.GetMatchedLength(1));
- break;
- default:
- ;
- }
-}
-
-void UndefinedHeader::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- normalise_escaped_string (Get_headerValue());
-}
-
-void CallId::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (id == id_callid) {
- static Regex reg_cid ("^" SIPREG_WORD "(@" SIPREG_WORD ")*" );
-
- reg_cid.AssertMatch(buffer, this);
- SetHypFieldLength (id, reg_cid.GetMatchedLength());
- }
-}
-
-void CSeq::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
- switch(field_id) {
- case id_method:
- csWS.Encode(buffer);
- break;
- case id_seqNumber:
- Get_seqNumber().SetFormat(Integer::AsciiDecimal);
- break;
- default:
- break;
- }
-}
-
-void CSeq::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_method ("^" SIPREG_LWS "(" SIPREG_TOKEN ")");
-
- switch (id) {
- case id_seqNumber:
- Get_seqNumber().SetFormat(Integer::AsciiDecimal);
- break;
- case id_method:
- reg_method.AssertMatch (buffer, this);
- reg_method.MoveAt (buffer, 1);
- SetHypFieldLength (id, reg_method.GetMatchedLength(1));
- break;
- }
-}
-
-void ContentLength::PreEncode (Buffer& buffer) throw (EncodeError)
-{
- Get_len().SetFormat(Integer::AsciiDecimal);
-}
-
-void ContentLength::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_len().SetFormat(Integer::AsciiDecimal);
-}
-
-void ContentType::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_ctype ("^" SIPREG_TOKEN "/" SIPREG_TOKEN "(" SIPREG_SEMI SIPREG_M_PARAMETER ")*");
- if (id == id_mediaType)
- {
- reg_ctype.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_ctype.GetMatchedLength());
- }
-
-}
-
-void ContentLength::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- int l = Get_len().GetValue();
- MessageBody::SetHypLength ((l > 0) ? (l * 8) : -1);
-}
-
-#define SIP_MESSAGE_CODET(msgname) \
-void msgname::PostDecodeField (int id, Buffer& buffer) throw (DecodeError) \
-{ \
- switch (id) { \
- case id_msgHeader: \
- SetHypFieldIsPresent (id_messageBody, (MessageBody::GetHypLength() >= 0) ? 1 : 0); \
- SetHypFieldIsPresent (id_payload, 0); \
- break; \
- case id_payload: \
- if (buffer.GetBitsLeft()) { \
- DecodeError ex(this); \
- ex.Msg() << "buffer not fully decoded (" << buffer.GetBitsLeft()/8 << " remaining bytes)" << std::endl; \
- throw ex; \
- } \
- Get_payload().Get_payloadlength().SetValue(buffer.GetLength() / 8); \
- Get_payload().Get_payloadvalue().SetValueBin(buffer.GetValueBin(), buffer.GetLength()); \
- \
- /* replace undisplayable characters with '?' */ \
- Charstring& payload = Get_payload().Get_payloadvalue(); \
- int byte_length = buffer.GetLength() / 8; \
- for (int i=0 ; i<byte_length ; i++) { \
- if (!asciichar_is_displayable (payload[i])) \
- payload[i] = '?'; \
- } \
- break; \
- } \
-}
-
-#define SIP_MESSAGE_CODET_ERROR(msgname) \
-void msgname::PostDecode (Buffer& buffer, DecodeError& e) throw (DecodeError) \
-{ \
- std::cerr << "###################################################################################" << std::endl; \
- std::cerr << "### INVALID SIP MESSAGE RECEIVED ###" << std::endl; \
- std::cerr << "### ###" << std::endl; \
- e.Dump(std::cerr); \
- std::cerr << "###-----------------------------------------------------------------------------###" << std::endl; \
- std::cerr.write (reinterpret_cast<const char*>(buffer.GetValueBin()), buffer.GetLength()/8); \
- std::cerr << "###################################################################################" << std::endl; \
- /* tell t3devkit to ignore silently the message */ \
- throw DecodeIgnoreMessage(e.mVar); \
-}
-
-SIP_MESSAGE_CODET (Response)
-SIP_MESSAGE_CODET_ERROR (Response)
-SIP_MESSAGE_CODET (Request)
-SIP_MESSAGE_CODET_ERROR (Request)
-SIP_MESSAGE_CODET (REGISTER_Request)
-SIP_MESSAGE_CODET_ERROR (REGISTER_Request)
-SIP_MESSAGE_CODET (INVITE_Request)
-SIP_MESSAGE_CODET_ERROR (INVITE_Request)
-SIP_MESSAGE_CODET (OPTIONS_Request)
-SIP_MESSAGE_CODET_ERROR (OPTIONS_Request)
-SIP_MESSAGE_CODET (BYE_Request)
-SIP_MESSAGE_CODET_ERROR (BYE_Request)
-SIP_MESSAGE_CODET (CANCEL_Request)
-SIP_MESSAGE_CODET_ERROR (CANCEL_Request)
-SIP_MESSAGE_CODET (ACK_Request)
-SIP_MESSAGE_CODET_ERROR (ACK_Request)
-SIP_MESSAGE_CODET (PRACK_Request)
-SIP_MESSAGE_CODET_ERROR (PRACK_Request)
-SIP_MESSAGE_CODET (NOTIFY_Request)
-SIP_MESSAGE_CODET_ERROR (NOTIFY_Request)
-SIP_MESSAGE_CODET (SUBSCRIBE_Request)
-SIP_MESSAGE_CODET_ERROR (SUBSCRIBE_Request)
-SIP_MESSAGE_CODET (PUBLISH_Request)
-SIP_MESSAGE_CODET_ERROR (PUBLISH_Request)
-SIP_MESSAGE_CODET (UPDATE_Request)
-SIP_MESSAGE_CODET_ERROR (UPDATE_Request)
-SIP_MESSAGE_CODET (REFER_Request)
-SIP_MESSAGE_CODET_ERROR (REFER_Request)
-SIP_MESSAGE_CODET (MESSAGE_Request)
-SIP_MESSAGE_CODET_ERROR (MESSAGE_Request)
-SIP_MESSAGE_CODET (INFO_Request)
-SIP_MESSAGE_CODET_ERROR (INFO_Request)
-
-void MessageBody::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- // TODO: decode SDP payload
- SetHypChosenId (id_textplain);
-}
-
-void OptionTag_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void OptionTag_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void OptionTag_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_TOKEN);
-
- bool bMandatory = true;
- Variable* parent = GetParent();
- if (parent != NULL) {
- const char * pszParName = parent->GetTypeName();
- if (strcmp(pszParName, "Supported") == 0)
- bMandatory = false;
- }
-
- if (bMandatory || GetSize() == 0)
- reg_content.AssertMatch(buffer, this);
- else if (!reg_content.Match (buffer)) {
- SetHypSize (-2);
- return;
- }
- SetHypFieldLength(reg_content.GetMatchedLength());
-}
-
-void OptionTag_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_content ("^" SIPREG_TOKEN);
- if (detect_comma (buffer) && reg_content.Match (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void RouteBody_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void RouteBody_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void RouteBody_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void RouteBody::PreDecodeField(int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_semi ("^;");
-
- if (id == id_rrParam) {
- SetHypFieldIsPresent (id, reg_semi.Match(buffer) ? 1 : 0);
- }
-}
-
-void Timestamp::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
- switch(field_id) {
- case id_delay:
- if(IsPresent(id_delay)) {
- csWS.Encode(buffer);
- }
- break;
- default:
- break;
- }
-}
-
-void Timestamp::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_LWS);
-
- switch (id) {
- case id_timeValue:
- SetHypFieldIsPresent (id, 1); //always present (mandatory in BNF)
- break;
- case id_delay:
- if (reg_separator.Match (buffer)) {
- reg_separator.MovePast (buffer);
- SetHypFieldIsPresent (id, 1);
- } else
- SetHypFieldIsPresent (id, 0);
- break;
- }
-}
-
-void TimeValue::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csDot;
- csDot.SetValue(".");
-
- switch(field_id) {
- case id_majorDigit:
- Get_majorDigit().SetFormat(Integer::AsciiDecimal);
- break;
- case id_minorDigit:
- Get_minorDigit().SetFormat(Integer::AsciiDecimal);
- csDot.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void TimeValue::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_majorDigit().SetFormat(Integer::AsciiDecimal);
- Get_minorDigit().SetFormat(Integer::AsciiDecimal);
-}
-
-void TimeValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^[.]");
- static Regex reg_digits ("^[0-9]+");
- switch (id) {
- case id_minorDigit:
- SetHypFieldIsPresent (id, 0);
- if (reg_separator.Match (buffer)) {
- reg_separator.MovePast( buffer);
- if (reg_digits.Match (buffer))
- SetHypFieldIsPresent(id, 1);
- }
- break;
- }
-}
-
-void WarningValue_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void WarningValue_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void WarningValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void WarningValue::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS, csDoubleQuote;
- csWS.SetValue(" ");
- csDoubleQuote.SetValue("\"");
-
- switch(field_id) {
- case id_warnCode:
- Get_warnCode().SetFormat(Integer::AsciiDecimal);
- break;
- case id_WarnText:
- csWS.Encode(buffer);
- csDoubleQuote.Encode(buffer);
- break;
- case id_warnAgent:
- csWS.Encode(buffer);
- break;
- }
-}
-
-void WarningValue::PostEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csDoubleQuote;
- csDoubleQuote.SetValue("\"");
-
- if(field_id == id_WarnText) {
- csDoubleQuote.Encode(buffer);
- }
-}
-
-void WarningValue::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_warnCode().SetFormat(Integer::AsciiDecimal);
-}
-
-void WarningValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^[ ]");
- static Regex reg_text ("^" SIPREG_QUOTED_STRING);
- switch (id) {
- case id_warnAgent:
- reg_separator.AssertMatch (buffer, this);
- reg_separator.MovePast (buffer);
- break;
- case id_WarnText:
- reg_separator.AssertMatch (buffer, this);
- reg_separator.MovePast (buffer);
- reg_text.AssertMatch (buffer, this);
- buffer.SetPosition(buffer.GetPosition() + 8); // remove starting quota
- SetHypFieldLength (id, reg_text.GetMatchedLength() - 16);
- break;
- }
-}
-
-void WarningValue::PostDecode (Buffer& buffer) throw (DecodeError)
-{
- buffer.SetPosition(buffer.GetPosition() + 8); // remove ending quota
-
- normalise_quoted_string (Get_WarnText());
-}
-
-void WarnAgent::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_host ("^" SIPREG_HOST "([:][0-9]+)?");
- static Regex reg_pseudonym ("^" SIPREG_TOKEN);
- int nLen1 = -1;
- int nLen2 = -1;
- if (reg_host.Match (buffer))
- nLen1 = reg_host.GetMatchedLength();
- if (reg_pseudonym.Match (buffer))
- nLen2 = reg_pseudonym.GetMatchedLength();
- if (nLen2 > nLen1) {
- SetHypChosenId (id_pseudonym);
- SetHypFieldLength (id_pseudonym, nLen2);
- } else
- SetHypChosenId (id_hostPort);
-}
-
-void RSeq::PreEncode (Buffer& buffer) throw (EncodeError)
-{
- Get_responseNum().SetFormat(Integer::AsciiDecimal);
-}
-
-void RSeq::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_responseNum().SetFormat(Integer::AsciiDecimal);
-}
-
-void RAck::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csWS;
- csWS.SetValue(" ");
-
-
- switch(field_id) {
- case id_responseNum:
- Get_responseNum().SetFormat(Integer::AsciiDecimal);
- break;
- case id_seqNumber:
- Get_seqNumber().SetFormat(Integer::AsciiDecimal);
- case id_method:
- csWS.Encode(buffer);
- break;
- default:
- break;
- }
-}
-
-void RAck::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- Get_responseNum().SetFormat(Integer::AsciiDecimal);
- Get_seqNumber().SetFormat(Integer::AsciiDecimal);
-}
-
-void RAck::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^[ ]");
- static Regex reg_method ("^" SIPREG_TOKEN);
- switch (id) {
- case id_seqNumber:
- reg_separator.AssertMatch (buffer, this);
- reg_separator.MovePast (buffer);
- break;
- case id_method:
- reg_separator.AssertMatch (buffer, this);
- reg_separator.MovePast (buffer);
- reg_method.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_method.GetMatchedLength());
- break;
- }
-}
-
-void EventType_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void EventType_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void EventType_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_event ("^" SIPREG_TOKEN);
- reg_event.AssertMatch (buffer, this);
- SetHypFieldLength (reg_event.GetMatchedLength());
-}
-
-void EventType_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void Event::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_event ("^" SIPREG_TOKEN);
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_eventType:
- reg_event.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_event.GetMatchedLength());
- break;
- case id_eventParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void SubscriptionState::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_substate ("^" SIPREG_TOKEN);
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_subState:
- reg_substate.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_substate.GetMatchedLength());
- break;
- case id_substateParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void PMediaAuthorization_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void PMediaAuthorization_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void PMediaAuthorization_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_media_authorization ("^[" SIPCHARS_HEXA "]+");
- reg_media_authorization.AssertMatch (buffer, this);
- SetHypFieldLength (reg_media_authorization.GetMatchedLength());
-}
-
-void PMediaAuthorization_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void PrivacyValue_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csSemi;
- csSemi.SetValue(";");
-
- if(field_id != 0) {
- csSemi.Encode(buffer);
- }
-}
-
-void PrivacyValue_List::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_privacy ("^" SIPREG_TOKEN);
- reg_privacy.AssertMatch (buffer, this);
- SetHypFieldLength (reg_privacy.GetMatchedLength());
-}
-
-void PrivacyValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_semi (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void PAssertedIDValue_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void PAssertedIDValue_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void PAssertedIDValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void PPreferredIDValue_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void PPreferredIDValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-
-void ReasonValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_token:
- reg_token.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_token.GetMatchedLength());
- break;
- case id_reasonParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void ReasonValues::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void PathValues::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void ReasonValues::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void ReasonValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void PathValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_rrParam:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void PathValues::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void PathValues::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void SecurityMechanism::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_mechName:
- reg_token.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_token.GetMatchedLength());
- break;
- case id_mechParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void SecurityMechanism_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void SecurityMechanism_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void SecurityMechanism_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void NameAddrParam::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_genericParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void NameAddrParam_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void NameAddrParam_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void NameAddrParam_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void VnetworkSpec::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^(" SIPREG_TOKEN ")|(" SIPREG_QUOTED_STRING ")");
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_vNetworkSpecToken:
- reg_token.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_token.GetMatchedLength());
- break;
- case id_genericParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void VnetworkSpec_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void VnetworkSpec_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void VnetworkSpec_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void PAccessNetworkInfo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_accessType:
- reg_token.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_token.GetMatchedLength());
- break;
- case id_genericParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void PChargingFunctionAddresses::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
- switch (id) {
- case id_chargeAddrParams:
- SetHypFieldIsPresent (id, reg_token.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void PChargingVector::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
- switch (id) {
- case id_chargeParams:
- SetHypFieldIsPresent (id, reg_token.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void ReferTo::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_referToParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void AcRcValue_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void AcRcValue_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void AcRcValue_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void AcRcValue::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_wildcard ("^[*]");
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_wildcard:
- reg_wildcard.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_wildcard.GetMatchedLength());
- break;
- case id_acRcParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-void ReferredBy::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_referredbyIdParams:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void SessionExpires::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_delta_sec ("^[0-9]+");
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_deltaSec:
- reg_delta_sec.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_delta_sec.GetMatchedLength());
- break;
- case id_seParam:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void MinSE::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_delta_sec ("^[0-9]+");
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_deltaSec:
- reg_delta_sec.AssertMatch (buffer, this);
- SetHypFieldLength (id, reg_delta_sec.GetMatchedLength());
- break;
- case id_minSeParam:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-
-
-
-void IntegerList::PreEncode (Buffer& buffer) throw (EncodeError)
-{
- Charstring csIndexEqual;
- csIndexEqual.SetValue("index=");
-
- csIndexEqual.Encode(buffer);
-}
-
-void IntegerList::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csDot;
- csDot.SetValue(".");
-
- if(field_id != 0) {
- csDot.Encode(buffer);
- }
- GetField(field_id).SetFormat(Integer::AsciiDecimal);
-}
-
-void IntegerList::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- SetSize (GetSize() + 1);
- GetField(id).SetFormat(Integer::AsciiDecimal);
-}
-
-void IntegerList::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- Regex reg_dot ("^[\\x2E]");
-
- if (detect_separator(reg_dot, buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void HistoryInfoEntry::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_index ("^" SIPREG_SEMI "[Ii][Nn][Dd][Ee][Xx][=]");
- static Regex reg_separator ("^" SIPREG_SEMI);
-
- switch (id) {
- case id_hiIndex:
- if (reg_index.Match (buffer)) {
- reg_index.MovePast (buffer);
- SetHypFieldIsPresent (id, 1);
- } else
- SetHypFieldIsPresent (id, 0);
- break;
- case id_hiExtention:
- SetHypFieldIsPresent (id, reg_separator.Match (buffer) ? 1 : 0);
- break;
- }
-}
-
-void HistoryInfo_List::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void HistoryInfo_List::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void HistoryInfo_List::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void CharstringList::PreEncodeField (int field_id, Buffer& buffer) throw (EncodeError)
-{
- Charstring csComma;
- csComma.SetValue(",");
-
- if(field_id != 0) {
- csComma.Encode(buffer);
- }
-}
-
-void CharstringList::PreDecodeField (int id, Buffer& buffer) throw (DecodeError) {
- static Regex reg_token ("^" SIPREG_TOKEN);
- if (GetSize() == 0)
- reg_token.AssertMatch(buffer, this);
- else if (!reg_token.Match(buffer)) {
- SetHypSize(-2);
- return;
- }
- SetHypFieldLength(reg_token.GetMatchedLength());
-}
-
-void CharstringList::PreDecode (Buffer& buffer) throw (DecodeError)
-{
- SetHypSize (GetSize() + 1);
- SetHypAppend (1);
-}
-
-void CharstringList::PostDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- if (detect_comma (buffer))
- SetHypSize (GetSize() + 1);
- else
- SetHypSize (-2);
-}
-
-void PEarlyMedia::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
-
- switch (id) {
- case id_em_param:
- if (reg_token.Match (buffer) || Get_em_param().GetSize() > 0) {
- SetHypFieldIsPresent (id, 1);
- } else
- SetHypFieldIsPresent (id, 0);
- break;
- }
-}
-
-void PAssertedService::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
-{
- static Regex reg_token ("^" SIPREG_TOKEN);
-
- switch (id) {
- case id_pAssertedServiceValue:
- reg_token.AssertMatch (buffer, this);
- SetHypFieldLength(id, reg_token.GetMatchedLength());
- break;
- }
-}
-
-}} // namespaces
Index: v3.0.3/tags/v1.6.0/codec/c++/Makefile
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/Makefile (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/Makefile (nonexistent)
@@ -1,28 +0,0 @@
-
-#T3DK_TTCN_SOURCES = ../../ttcn/LibSip_SIPTypesAndValues.ttcn ../../ttcn/LibSip_SDPTypes.ttcn
-T3DK_TTCN_SOURCES = $(wildcard ../validation/*.ttcn)
-
-T3DK_ROOT_MODULE = TestExecution
-
-T3DK_C_SOURCES = $(wildcard *.c)
-
-T3DK_CXX_SOURCES = $(wildcard *.cpp)
-
-T3DK_CDGEN_HEADER = codec.h
-
-T3DK_CODETS = sip_codets.cpp
-
-T3DK_LIBS = -lboost_regex$(if $(shell uname -o | grep Cygwin),-gcc-mt,)
-
-CPPFLAGS = -I.
-
-CC = gcc
-
-CXX = g++
-
-CFLAGS = -g
-
-CXXFLAGS = -g
-
-include $(shell t3devkit-config --mk)
-
Index: v3.0.3/tags/v1.6.0/codec/c++/codec.h
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/codec.h (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/codec.h (nonexistent)
@@ -1,67 +0,0 @@
-#ifndef CODEC_INC
-#define CODEC_INC
-#include <t3devlib/t3devlib.h>
-
-namespace t3devlib {
-namespace gen {
-
-typedef t3devlib::Charstring CallidString;
-typedef t3devlib::Charstring ContentCoding;
-typedef t3devlib::Charstring DeltaSec; // an external operation can handle this field
-typedef t3devlib::Charstring LanguageTag;
-typedef t3devlib::Charstring OptionTag;
-typedef t3devlib::Charstring ServerVal;
-typedef t3devlib::Charstring PAssertedServiceValue;
-typedef t3devlib::Charstring PrivacyValue;
-typedef t3devlib::Charstring EventType;
-typedef t3devlib::Charstring SubState;
-typedef t3devlib::Charstring PMediaAuthValue; //HEXDIG "0"-"9", "A"-"F"
-typedef t3devlib::Charstring Raw;
-
-// ! subtype of structured types !
-#define SDP_contact_tel SDP_contact
-#define SDP_contact_email SDP_contact
-#define PAssertedIDValue Addr_Union
-#define PPreferredIDValue Addr_Union
-
-typedef t3devlib::Undef XmlBody;
-
-
-// enumerated types
-class FieldName : public t3devlib::Enum
-{
-private:
- static const char* msFields[];
-public:
- FieldName() : Enum (msFields) {}
-
- const char* GetModuleName() const { return "LibSip_SIPTypesAndValues"; }
- const char* GetTypeName() const { return "FieldName"; }
-
- void Encode (Buffer& buffer) throw (EncodeError);
- void Decode (Buffer& buffer) throw (DecodeError);
-};
-
-// enumerated types
-class Method : public t3devlib::Enum
-{
-private:
- static const char* msSipMethods[];
- static const char* msMethodValues[];
-public:
- Method() : Enum (msSipMethods) {}
-
- const char* GetModuleName() const { return "LibSip_SIPTypesAndValues"; }
- const char* GetTypeName() const { return "Method"; }
-
- void Encode (Buffer& buffer) throw (EncodeError);
- void Decode (Buffer& buffer) throw (DecodeError);
-};
-
-// additional attributes
-#define DEFINITIONS_Addr_Union() int mPosition;
-
-}} //namespaces
-
-#endif // ----- #ifndef CODEC_INC -----
-
Index: v3.0.3/tags/v1.6.0/codec/c++/init.cpp
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/init.cpp (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/init.cpp (nonexistent)
@@ -1,67 +0,0 @@
-/****************************************************************************/
-/* $Id$ */
-/* */
-/* (c) 2009 Universite de Rennes 1 */
-/* */
-/* Contributors: */
-/* - Anthony BAIRE */
-/* */
-/* Contact address: <t3devkit@irisa.fr> */
-/* */
-/* */
-/* This file is part of application examples provided along with T3DevKit, */
-/* a free toolkit for building TTCN-3 tests. */
-/* */
-/* This software is governed by the CeCILL-B license under French law and */
-/* abiding by the rules of distribution of free software. You can use, */
-/* modify and/or redistribute the software under the terms of the CeCILL-B */
-/* license as circulated by CEA, CNRS and INRIA at the following URL */
-/* "http://www.cecill.info". */
-/* */
-/* As a counterpart to the access to the source code and rights to copy, */
-/* modify and redistribute granted by the license, users are provided only */
-/* with a limited warranty and the software's author, the holder of the */
-/* economic rights, and the successive licensors have only limited */
-/* liability. */
-/* */
-/* In this respect, the user's attention is drawn to the risks associated */
-/* with loading, using, modifying and/or developing or reproducing the */
-/* software by the user in light of its specific status of free software, */
-/* that may mean that it is complicated to manipulate, and that also */
-/* therefore means that it is reserved for developers and experienced */
-/* professionals having in-depth computer knowledge. Users are therefore */
-/* encouraged to load and test the software's suitability as regards their */
-/* requirements in conditions enabling the security of their systems and/or */
-/* data to be ensured and, more generally, to use and operate it in the */
-/* same conditions as regards security. */
-/* */
-/* The fact that you are presently reading this means that you have had */
-/* knowledge of the CeCILL-B license and that you accept its terms. */
-/****************************************************************************/
-#include <t3devlib/t3devlib.h>
-#include "EchoPort.h"
-
-namespace t3devlib {
-
- void PAInit()
- {
- }
-
- void SAInit()
- {
- Port::RegisterType ("TestSystem", "SipPort", &createPort<EchoPort>);
- Port::RegisterType ("TestSystem", "SipTestPort", &createPort<EchoPort>);
- }
-
- void CDInit()
- {
- }
-
- void PAReset()
- {
- }
-
- void SAReset()
- {
- }
-}
Index: v3.0.3/tags/v1.6.0/codec/c++/EchoPort.cpp
===================================================================
--- v3.0.3/tags/v1.6.0/codec/c++/EchoPort.cpp (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/c++/EchoPort.cpp (nonexistent)
@@ -1,65 +0,0 @@
-/****************************************************************************/
-/* $Id$ */
-/* */
-/* (c) 2009 Universite de Rennes 1 */
-/* */
-/* Contributors: */
-/* - Anthony BAIRE */
-/* */
-/* Contact address: <t3devkit@irisa.fr> */
-/* */
-/* */
-/* This file is part of application examples provided along with T3DevKit, */
-/* a free toolkit for building TTCN-3 tests. */
-/* */
-/* This software is governed by the CeCILL-B license under French law and */
-/* abiding by the rules of distribution of free software. You can use, */
-/* modify and/or redistribute the software under the terms of the CeCILL-B */
-/* license as circulated by CEA, CNRS and INRIA at the following URL */
-/* "http://www.cecill.info". */
-/* */
-/* As a counterpart to the access to the source code and rights to copy, */
-/* modify and redistribute granted by the license, users are provided only */
-/* with a limited warranty and the software's author, the holder of the */
-/* economic rights, and the successive licensors have only limited */
-/* liability. */
-/* */
-/* In this respect, the user's attention is drawn to the risks associated */
-/* with loading, using, modifying and/or developing or reproducing the */
-/* software by the user in light of its specific status of free software, */
-/* that may mean that it is complicated to manipulate, and that also */
-/* therefore means that it is reserved for developers and experienced */
-/* professionals having in-depth computer knowledge. Users are therefore */
-/* encouraged to load and test the software's suitability as regards their */
-/* requirements in conditions enabling the security of their systems and/or */
-/* data to be ensured and, more generally, to use and operate it in the */
-/* same conditions as regards security. */
-/* */
-/* The fact that you are presently reading this means that you have had */
-/* knowledge of the CeCILL-B license and that you accept its terms. */
-/****************************************************************************/
-#include "EchoPort.h"
-using namespace t3devlib;
-
-EchoPort::EchoPort (PortId& id) :
- Port (id)
-{
-}
-
-EchoPort::~EchoPort()
-{
-}
-
-bool EchoPort::Map (const PortId& connected_port_id)
-{
- return true;
-}
-
-bool EchoPort::Unmap (const PortId& connected_port_id)
-{
- return true;
-}
-
-bool EchoPort::Send (const ComponentId& from,const Bitstring& msg) {
- return EnqueueMsg (from, msg);
-}
Index: v3.0.3/tags/v1.6.0/codec/validation/LibSip_SDPTypes.ttcn
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/LibSip_SDPTypes.ttcn (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/LibSip_SDPTypes.ttcn (nonexistent)
@@ -1,310 +0,0 @@
-/**
- * @author STF 346
- * @version $Id: LibSip_SDPTypes.ttcn 33 2009-03-31 15:04:53Z schulzs $
- * @desc This module defines message, attribute, structured and simple
- * SDP types as well constants used by LipSip constructs. <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 Adding of new attributes types is ok;
- * Adding of new optional attributes in @see SDP_attribute type
- * is ok;
- * Existing attribute types shall not be changed or removed -
- * change requests shall be made to http://t-ort.etsi.org
- */
-
-module LibSip_SDPTypes
-{
- group Constants
- {
- group SimpleConstants
- {
- // SDP net_type
- const charstring c_in := "IN";
-
- // SDP addr_type
- const charstring c_ip4 := "IP4";
-
- // SDP_media_desc: media
- const charstring c_audio := "audio";
- const charstring c_image := "image";
- const charstring c_video := "video";
-
- // SDP_media_desc: transport
- const charstring c_rtpAvp := "RTP/AVP";
- const charstring c_udptl := "Udptl";
-
- // SDP_attribute_list constants:
- const charstring c_local := "local";
- const charstring c_mandatory := "mandatory";
- const charstring c_none := "none";
- const charstring c_qos := "qos";
- const charstring c_remote := "remote";
- const charstring c_sendrecv := "sendrecv";
- const charstring c_send := "send";
- const charstring c_recv := "recv";
- const charstring c_e2e := "e2e";
- }
- }
- group Types
- {
- group SubTypes
- {
- group AttributeTypes
- {
- type record SDP_attribute_cat {
- charstring attr_value
- }
-
- type record SDP_attribute_keywds {
- charstring attr_value
- }
-
- type record SDP_attribute_tool {
- charstring attr_value
- }
-
- type record SDP_attribute_ptime {
- charstring attr_value
- }
-
- type record SDP_attribute_recvonly {
- }
-
- type record SDP_attribute_sendrecv {
- }
-
- type record SDP_attribute_sendonly {
- }
-
- type record SDP_attribute_inactive {
- }
-
- type record SDP_attribute_orient {
- charstring attr_value
- }
-
- type record SDP_attribute_type {
- charstring attr_value
- }
-
- type record SDP_attribute_charset {
- charstring attr_value
- }
-
- type record SDP_attribute_sdplang {
- charstring attr_value
- }
-
- type record SDP_attribute_lang {
- charstring attr_value
- }
-
- type record SDP_attribute_framerate {
- charstring attr_value
- }
-
- type record SDP_attribute_quality {
- charstring attr_value
- }
-
- type record SDP_attribute_fmtp {
- charstring attr_value
- }
-
- type record SDP_attribute_curr {
- charstring preconditionType,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_des {
- charstring preconditionType,
- charstring strength,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_conf {
- charstring preconditionType,
- charstring statusType,
- charstring direction
- }
-
- type record SDP_attribute_rtpmap {
- charstring attr_value
- }
-
- type record SDP_attribute_rtcp {
- charstring attr_value
- }
-
- type record SDP_attribute_unknown {
- charstring name,
- charstring attr_value optional
- }
-
-
- type union SDP_attribute {
- SDP_attribute_cat cat,
- SDP_attribute_keywds keywds,
- SDP_attribute_tool tool,
- SDP_attribute_ptime ptime,
- SDP_attribute_recvonly recvonly,
- SDP_attribute_sendrecv sendrecv,
- SDP_attribute_sendonly sendonly,
- SDP_attribute_inactive inactive,
- SDP_attribute_orient orient,
- SDP_attribute_type sdp_type,
- SDP_attribute_charset charset,
- SDP_attribute_sdplang sdplang,
- SDP_attribute_lang lang,
- SDP_attribute_framerate framerate,
- SDP_attribute_quality quality,
- SDP_attribute_fmtp fmtp,
- SDP_attribute_curr curr,
- SDP_attribute_des des,
- SDP_attribute_conf conf,
- SDP_attribute_rtpmap rtpmap,
- SDP_attribute_rtcp rtcp,
-
- //* unknown has to be the last else encoding/decoding won't work!
- SDP_attribute_unknown unknown
- }
- } //* group AttributeTypes
-
- type set of SDP_attribute SDP_attribute_list;
-
- type record SDP_bandwidth {
- charstring modifier,
- integer bandwidth
- }
-
- type set of SDP_bandwidth SDP_bandwidth_list;
-
- type record SDP_connection {
- charstring net_type,
- charstring addr_type,
- SDP_conn_addr conn_addr
- }
-
- type record SDP_conn_addr {
- charstring addr,
- integer ttl optional,
- integer num_of_addr optional
- }
-
- type set of SDP_connection SDP_connection_list;
-
- type record SDP_contact {
- charstring addr_or_phone,
- charstring disp_name optional
- }
-
- type SDP_contact SDP_contact_tel;
-
- type SDP_contact SDP_contact_email;
-
- type set of SDP_contact_email SDP_email_list;
-
- type record of charstring SDP_fmt_list ;
-
- type record SDP_key {
- charstring method,
- charstring key optional
- }
-
- type record SDP_media_desc {
- SDP_media_field media_field,
- charstring information optional,
- SDP_connection_list connections optional,
- SDP_bandwidth bandwidth optional,
- SDP_key key optional,
- SDP_attribute_list attributes optional
- }
-
- type set of SDP_media_desc SDP_media_desc_list;
-
- type record SDP_media_port {
- integer port_number,
- integer num_of_ports optional
- }
-
- type record SDP_media_field {
- charstring media,
- SDP_media_port ports,
- charstring transport,
- SDP_fmt_list fmts
- }
-
- type record SDP_time{
- SDP_time_field time_field,
- SDP_repeat_list time_repeat optional
- }
-
- type record SDP_time_field{
- charstring start_time, //* field is numeric strings that may not fit into 32-bit signed int
- charstring stop_time //* field is numeric strings that may not fit into 32-bit signed int
- }
-
- type record SDP_repeat{
- SDP_typed_time repeat_interval,
- SDP_typed_time active,
- SDP_typed_time_list offsets
- }
-
- type set of SDP_repeat SDP_repeat_list;
-
- type record SDP_typed_time{
- integer time,
- charstring unit optional
- }
-
- type set of SDP_typed_time SDP_typed_time_list;
-
- type set of SDP_time SDP_time_list;
-
- type record SDP_timezone{
- charstring adjustment_time,
- SDP_typed_time offset
- }
-
- type set of SDP_timezone SDP_timezone_list;
-
- type record SDP_Origin{
- charstring user_name,
- charstring session_id,//* field is numeric strings that may not fit into 32-bit signed int
- charstring session_version, //* field is numeric strings that may not fit into 32-bit signed int
- charstring net_type,
- charstring addr_type,
- charstring addr
- }
-
- type set of SDP_contact_tel SDP_phone_list;
- } //* group SubTypes
-
-
- group MessageTypes
- {
- type record SDP_Message{
- integer protocol_version,
- SDP_Origin origin,
- charstring session_name,
- charstring information optional,
- charstring uri optional,
- SDP_email_list emails optional,
- SDP_phone_list phone_numbers optional,
- SDP_connection connection optional,
- SDP_bandwidth_list bandwidth optional,
- SDP_time_list times,
- SDP_timezone_list timezone_adjustments optional,
- SDP_key key optional,
- SDP_attribute_list attributes optional,
- SDP_media_desc_list media_list optional
- }
- } // group MessageTypes
- } // group Types
-
-
-} // end module LibSip_SDPTypes
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/init.cpp
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/init.cpp (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/init.cpp (nonexistent)
@@ -1,66 +0,0 @@
-/****************************************************************************/
-/* $Id$ */
-/* */
-/* (c) 2009 Universite de Rennes 1 */
-/* */
-/* Contributors: */
-/* - Anthony BAIRE */
-/* */
-/* Contact address: <t3devkit@irisa.fr> */
-/* */
-/* */
-/* This file is part of application examples provided along with T3DevKit, */
-/* a free toolkit for building TTCN-3 tests. */
-/* */
-/* This software is governed by the CeCILL-B license under French law and */
-/* abiding by the rules of distribution of free software. You can use, */
-/* modify and/or redistribute the software under the terms of the CeCILL-B */
-/* license as circulated by CEA, CNRS and INRIA at the following URL */
-/* "http://www.cecill.info". */
-/* */
-/* As a counterpart to the access to the source code and rights to copy, */
-/* modify and redistribute granted by the license, users are provided only */
-/* with a limited warranty and the software's author, the holder of the */
-/* economic rights, and the successive licensors have only limited */
-/* liability. */
-/* */
-/* In this respect, the user's attention is drawn to the risks associated */
-/* with loading, using, modifying and/or developing or reproducing the */
-/* software by the user in light of its specific status of free software, */
-/* that may mean that it is complicated to manipulate, and that also */
-/* therefore means that it is reserved for developers and experienced */
-/* professionals having in-depth computer knowledge. Users are therefore */
-/* encouraged to load and test the software's suitability as regards their */
-/* requirements in conditions enabling the security of their systems and/or */
-/* data to be ensured and, more generally, to use and operate it in the */
-/* same conditions as regards security. */
-/* */
-/* The fact that you are presently reading this means that you have had */
-/* knowledge of the CeCILL-B license and that you accept its terms. */
-/****************************************************************************/
-#include <t3devlib/t3devlib.h>
-#include "SipTorturePort.h"
-
-namespace t3devlib {
-
- void PAInit()
- {
- }
-
- void SAInit()
- {
- Port::RegisterType ("TestSystem", "SipPort", &createPort<SipTorturePort>);
- }
-
- void CDInit()
- {
- }
-
- void PAReset()
- {
- }
-
- void SAReset()
- {
- }
-}
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/SipTorturePort.cpp
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/SipTorturePort.cpp (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/SipTorturePort.cpp (nonexistent)
@@ -1,92 +0,0 @@
-/****************************************************************************/
-/* $Id$ */
-/* */
-/* (c) 2009 Universite de Rennes 1 */
-/* */
-/* Contributors: */
-/* - Anthony BAIRE */
-/* */
-/* Contact address: <t3devkit@irisa.fr> */
-/* */
-/* */
-/* This file is part of application examples provided along with T3DevKit, */
-/* a free toolkit for building TTCN-3 tests. */
-/* */
-/* This software is governed by the CeCILL-B license under French law and */
-/* abiding by the rules of distribution of free software. You can use, */
-/* modify and/or redistribute the software under the terms of the CeCILL-B */
-/* license as circulated by CEA, CNRS and INRIA at the following URL */
-/* "http://www.cecill.info". */
-/* */
-/* As a counterpart to the access to the source code and rights to copy, */
-/* modify and redistribute granted by the license, users are provided only */
-/* with a limited warranty and the software's author, the holder of the */
-/* economic rights, and the successive licensors have only limited */
-/* liability. */
-/* */
-/* In this respect, the user's attention is drawn to the risks associated */
-/* with loading, using, modifying and/or developing or reproducing the */
-/* software by the user in light of its specific status of free software, */
-/* that may mean that it is complicated to manipulate, and that also */
-/* therefore means that it is reserved for developers and experienced */
-/* professionals having in-depth computer knowledge. Users are therefore */
-/* encouraged to load and test the software's suitability as regards their */
-/* requirements in conditions enabling the security of their systems and/or */
-/* data to be ensured and, more generally, to use and operate it in the */
-/* same conditions as regards security. */
-/* */
-/* The fact that you are presently reading this means that you have had */
-/* knowledge of the CeCILL-B license and that you accept its terms. */
-/****************************************************************************/
-#include <fstream>
-#include "SipTorturePort.h"
-using namespace t3devlib;
-using namespace std;
-
-SipTorturePort::SipTorturePort (PortId& id) :
- Port (id)
-{
-}
-
-SipTorturePort::~SipTorturePort()
-{
-}
-
-bool SipTorturePort::Map (const PortId& connected_port_id)
-{
- string filename ("data/");
- filename += GetTestcaseId().GetObjectName();
- filename += ".dat";
-
- cout << "Reading testcase data from " << filename << endl;
-
- ifstream in (filename.c_str(), ios_base::in | ios_base::binary);
-
- if (!in) {
- cerr << "Cannot open " << filename << endl;
- return false;
- }
-
- in.seekg (0, ios_base::end);
- streampos size = in.tellg();
- in.seekg (0, ios_base::beg);
-
- char* buff = new char[size];
- in.read (buff, size);
-
- EnqueueMsg (connected_port_id, MappedBitstring (buff, size*8));
-
- delete buff;
-
- return in.good();
-}
-
-bool SipTorturePort::Unmap (const PortId& connected_port_id)
-{
- return true;
-}
-
-bool SipTorturePort::Send (const ComponentId& from,const Bitstring& msg) {
- cerr << "cannot send data to the Sip 'Torture' Port" << endl;
- return false;
-}
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_CPARAM02_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_CPARAM02_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_CPARAM02_V.dat (nonexistent)
@@ -1,10 +0,0 @@
-REGISTER sip:example.com SIP/2.0
-Via: SIP/2.0/UDP saturn.example.com:5060;branch=z9hG4bKkdjuw
-Max-Forwards: 70
-From: sip:watson@example.com;tag=838293
-To: sip:watson@example.com
-Call-ID: cparam02.70710@saturn.example.com
-CSeq: 3 REGISTER
-Contact: <sip:+19725552222@gw1.example.net;unknownparam>
-l: 0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_ESCNULL_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_ESCNULL_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_ESCNULL_V.dat (nonexistent)
@@ -1,11 +0,0 @@
-REGISTER sip:example.com SIP/2.0
-To: sip:null-%00-null@example.com
-From: sip:null-%00-null@example.com;tag=839923423
-Max-Forwards: 70
-Call-ID: escnull.39203ndfvkjdasfkq3w4otrq0adsfdfnavd
-CSeq: 14398234 REGISTER
-Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bKkdjuw
-Contact: <sip:%00@host5.example.com>
-Contact: <sip:%00%00@host5.example.com>
-L:0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_INVUT_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_INVUT_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_INVUT_V.dat (nonexistent)
@@ -1,14 +0,0 @@
-INVITE sip:user@example.com SIP/2.0
-Contact: <sip:caller@host5.example.net>
-To: sip:j.user@example.com
-From: sip:caller@example.net;tag=8392034
-Max-Forwards: 70
-Call-ID: invut.0ha0isndaksdjadsfij34n23d
-CSeq: 235448 INVITE
-Via: SIP/2.0/UDP somehost.example.com;branch=z9hG4bKkdjuw
-Content-Type: application/unknownformat
-Content-Length: 40
-
-<audio>
- <pcmu port="443"/>
-</audio>
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MISMATCH01_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MISMATCH01_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MISMATCH01_V.dat (nonexistent)
@@ -1,9 +0,0 @@
-OPTIONS sip:user@example.com SIP/2.0
-To: sip:j.user@example.com
-From: sip:caller@example.net;tag=34525
-Max-Forwards: 6
-Call-ID: mismatch01.dj0234sxdfl3
-CSeq: 8 INVITE
-Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKkdjuw
-l: 0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MISMATCH02_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MISMATCH02_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MISMATCH02_V.dat (nonexistent)
@@ -1,17 +0,0 @@
-NEWMETHOD sip:user@example.com SIP/2.0
-To: sip:j.user@example.com
-From: sip:caller@example.net;tag=34525
-Max-Forwards: 6
-Call-ID: mismatch02.dj0234sxdfl3
-CSeq: 8 INVITE
-Contact: <sip:caller@host.example.net>
-Via: SIP/2.0/UDP host.example.net;branch=z9hG4bKkdjuw
-Content-Type: application/sdp
-l: 138
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.1
-c=IN IP4 192.0.2.1
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LONGREQ_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LONGREQ_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LONGREQ_V.dat (nonexistent)
@@ -1,53 +0,0 @@
-INVITE sip:user@example.com SIP/2.0
-To: "I have a user name of extremeextremeextremeextremeextremeextremeextremeextremeextremeextreme proportion"<sip:user@example.com:6000;unknownparam1=verylonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongvalue;longparamnamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamename=shortvalue;verylonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongParameterNameWithNoValue>
-F: sip:amazinglylongcallernameamazinglylongcallernameamazinglylongcallernameamazinglylongcallernameamazinglylongcallername@example.net;tag=12982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982982424;unknownheaderparamnamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamenamename=unknowheaderparamvaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevalue;unknownValuelessparamnameparamnameparamnameparamnameparamnameparamnameparamnameparamnameparamnameparamname
-Call-ID: longreq.onereallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongcallid
-CSeq: 3882340 INVITE
-Unknown-LongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLong-Name: unknown-longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong-value; unknown-longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong-parameter-name = unknown-longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong-parameter-value
-Via: SIP/2.0/TCP sip33.example.com
-v: SIP/2.0/TCP sip32.example.com
-V: SIP/2.0/TCP sip31.example.com
-Via: SIP/2.0/TCP sip30.example.com
-ViA: SIP/2.0/TCP sip29.example.com
-VIa: SIP/2.0/TCP sip28.example.com
-VIA: SIP/2.0/TCP sip27.example.com
-via: SIP/2.0/TCP sip26.example.com
-viA: SIP/2.0/TCP sip25.example.com
-vIa: SIP/2.0/TCP sip24.example.com
-vIA: SIP/2.0/TCP sip23.example.com
-V : SIP/2.0/TCP sip22.example.com
-v : SIP/2.0/TCP sip21.example.com
-V : SIP/2.0/TCP sip20.example.com
-v : SIP/2.0/TCP sip19.example.com
-Via : SIP/2.0/TCP sip18.example.com
-Via : SIP/2.0/TCP sip17.example.com
-Via: SIP/2.0/TCP sip16.example.com
-Via: SIP/2.0/TCP sip15.example.com
-Via: SIP/2.0/TCP sip14.example.com
-Via: SIP/2.0/TCP sip13.example.com
-Via: SIP/2.0/TCP sip12.example.com
-Via: SIP/2.0/TCP sip11.example.com
-Via: SIP/2.0/TCP sip10.example.com
-Via: SIP/2.0/TCP sip9.example.com
-Via: SIP/2.0/TCP sip8.example.com
-Via: SIP/2.0/TCP sip7.example.com
-Via: SIP/2.0/TCP sip6.example.com
-Via: SIP/2.0/TCP sip5.example.com
-Via: SIP/2.0/TCP sip4.example.com
-Via: SIP/2.0/TCP sip3.example.com
-Via: SIP/2.0/TCP sip2.example.com
-Via: SIP/2.0/TCP sip1.example.com
-Via: SIP/2.0/TCP host.example.com;received=192.0.2.5;branch=verylonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongbranchvalue
-Max-Forwards: 70
-Contact: <sip:amazinglylongcallernameamazinglylongcallernameamazinglylongcallernameamazinglylongcallernameamazinglylongcallername@host5.example.net>
-Content-Type: application/sdp
-l: 150
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.1
-s=-
-c=IN IP4 192.0.2.1
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_SCALAR02_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_SCALAR02_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_SCALAR02_V.dat (nonexistent)
@@ -1,12 +0,0 @@
-REGISTER sip:example.com SIP/2.0
-Via: SIP/2.0/TCP host129.example.com;branch=z9hG4bK342sdfoi3
-To: <sip:user@example.com>
-From: <sip:user@example.com>;tag=239232jh3
-CSeq: 36893488147419103232 REGISTER
-Call-ID: scalar02.23o0pd9vanlq3wnrlnewofjas9ui32
-Max-Forwards: 300
-Expires: 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-Contact: <sip:user@host129.example.com>
- ;expires=280297596632815
-Content-Length: 0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_NOVELSC_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_NOVELSC_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_NOVELSC_V.dat (nonexistent)
@@ -1,9 +0,0 @@
-OPTIONS soap.beep://192.0.2.103:3002 SIP/2.0
-To: sip:user@example.com
-From: sip:caller@example.net;tag=384
-Max-Forwards: 3
-Call-ID: novelsc.asdfasser0q239nwsdfasdkl34
-CSeq: 3923423 OPTIONS
-Via: SIP/2.0/TCP host9.example.com;branch=z9hG4bKkdjuw39234
-Content-Length: 0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_ESCRURI_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_ESCRURI_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_ESCRURI_V.dat (nonexistent)
@@ -1,19 +0,0 @@
-INVITE sip:user@example.com?Route=%3Csip:example.com%3E SIP/2.0
-To: sip:user@example.com
-From: sip:caller@example.net;tag=341518
-Max-Forwards: 7
-Contact: <sip:caller@host39923.example.net>
-Call-ID: escruri.23940-asdfhj-aje3br-234q098w-fawerh2q-h4n5
-CSeq: 149209342 INVITE
-Via: SIP/2.0/UDP host-of-the-hour.example.com;branch=z9hG4bKkdjuw
-Content-Type: application/sdp
-Content-Length: 150
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.1
-s=-
-c=IN IP4 192.0.2.1
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MULTI01_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MULTI01_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MULTI01_I.dat (nonexistent)
@@ -1,26 +0,0 @@
-INVITE sip:user@company.com SIP/2.0
-Contact: <sip:caller@host25.example.net>
-Via: SIP/2.0/UDP 192.0.2.25;branch=z9hG4bKkdjuw
-Max-Forwards: 70
-CSeq: 5 INVITE
-Call-ID: multi01.98asdh@192.0.2.1
-CSeq: 59 INVITE
-Call-ID: multi01.98asdh@192.0.2.2
-From: sip:caller@example.com;tag=3413415
-To: sip:user@example.com
-To: sip:other@example.net
-From: sip:caller@example.net;tag=2923420123
-Content-Type: application/sdp
-l: 154
-Contact: <sip:caller@host36.example.net>
-Max-Forwards: 5
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.25
-s=-
-c=IN IP4 192.0.2.25
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_TRANSPORTS_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_TRANSPORTS_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_TRANSPORTS_V.dat (nonexistent)
@@ -1,14 +0,0 @@
-OPTIONS sip:user@example.com SIP/2.0
-To: sip:user@example.com
-From: <sip:caller@example.com>;tag=323
-Max-Forwards: 70
-Call-ID: transports.kijh4akdnaqjkwendsasfdj
-Accept: application/sdp
-CSeq: 60 OPTIONS
-Via: SIP/2.0/UDP t1.example.com;branch=z9hG4bKkdjuw
-Via: SIP/2.0/SCTP t2.example.com;branch=z9hG4bKklasjdhf
-Via: SIP/2.0/TLS t3.example.com;branch=z9hG4bK2980unddj
-Via: SIP/2.0/UNKNOWN t4.example.com;branch=z9hG4bKasd0f3en
-Via: SIP/2.0/TCP t5.example.com;branch=z9hG4bK0a9idfnee
-l: 0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_DBLREQ.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_DBLREQ.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_DBLREQ.dat (nonexistent)
@@ -1,30 +0,0 @@
-REGISTER sip:example.com SIP/2.0
-To: sip:j.user@example.com
-From: sip:j.user@example.com;tag=43251j3j324
-Max-Forwards: 8
-I: dblreq.0ha0isndaksdj99sdfafnl3lk233412
-Contact: sip:j.user@host.example.com
-CSeq: 8 REGISTER
-Via: SIP/2.0/UDP 192.0.2.125;branch=z9hG4bKkdjuw23492
-Content-Length: 0
-
-
-INVITE sip:joe@example.com SIP/2.0
-t: sip:joe@example.com
-From: sip:caller@example.net;tag=141334
-Max-Forwards: 8
-Call-ID: dblreq.0ha0isnda977644900765@192.0.2.15
-CSeq: 8 INVITE
-Via: SIP/2.0/UDP 192.0.2.15;branch=z9hG4bKkdjuw380234
-Content-Type: application/sdp
-Content-Length: 150
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.15
-s=-
-c=IN IP4 192.0.2.15
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m =video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_BADDATE_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_BADDATE_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_BADDATE_V.dat (nonexistent)
@@ -1,20 +0,0 @@
-INVITE sip:user@example.com SIP/2.0
-To: sip:user@example.com
-From: sip:caller@example.net;tag=2234923
-Max-Forwards: 70
-Call-ID: baddate.239423mnsadf3j23lj42--sedfnm234
-CSeq: 1392934 INVITE
-Via: SIP/2.0/UDP host.example.com;branch=z9hG4bKkdjuw
-Date: Fri, 01 Jan 2010 16:00:00 EST
-Contact: <sip:caller@host5.example.net>
-Content-Type: application/sdp
-Content-Length: 150
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.5
-s=-
-c=IN IP4 192.0.2.5
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_SDP01_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_SDP01_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_SDP01_V.dat (nonexistent)
@@ -1,20 +0,0 @@
-INVITE sip:user@example.com SIP/2.0
-To: sip:j_user@example.com
-Contact: <sip:caller@host15.example.net>
-From: sip:caller@example.net;tag=234
-Max-Forwards: 5
-Call-ID: sdp01.ndaksdj9342dasdd
-Accept: text/nobodyKnowsThis
-CSeq: 8 INVITE
-Via: SIP/2.0/UDP 192.0.2.15;branch=z9hG4bKkdjuw
-Content-Length: 150
-Content-Type: application/sdp
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.5
-s=-
-c=IN IP4 192.0.2.5
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_BADINV01_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_BADINV01_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_BADINV01_I.dat (nonexistent)
@@ -1,19 +0,0 @@
-INVITE sip:user@example.com SIP/2.0
-To: sip:j.user@example.com
-From: sip:caller@example.net;tag=134161461246
-Max-Forwards: 7
-Call-ID: badinv01.0ha0isndaksdjasdf3234nas
-CSeq: 8 INVITE
-Via: SIP/2.0/UDP 192.0.2.15;;,;,,
-Contact: "Joe" <sip:joe@example.org>;;;;
-Content-Length: 152
-Content-Type: application/sdp
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.15
-s=-
-c=IN IP4 192.0.2.15
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LWSRURI_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LWSRURI_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LWSRURI_I.dat (nonexistent)
@@ -1,19 +0,0 @@
-INVITE sip:user@example.com; lr SIP/2.0
-To: sip:user@example.com;tag=3xfe-9921883-z9f
-From: sip:caller@example.net;tag=231413434
-Max-Forwards: 5
-Call-ID: lwsruri.asdfasdoeoi2323-asdfwrn23-asd834rk423
-CSeq: 2130706432 INVITE
-Via: SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKkdjuw2395
-Contact: <sip:caller@host1.example.net>
-Content-Type: application/sdp
-Content-Length: 159
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.1
-s=-
-c=IN IP4 192.0.2.1
-t=3149328700 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_UNREASON_V.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_UNREASON_V.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_UNREASON_V.dat (nonexistent)
@@ -1,18 +0,0 @@
-SIP/2.0 200 = 2**3 * 5**2 но сто девяносто девять - простое
-Via: SIP/2.0/UDP 192.0.2.198;branch=z9hG4bK1324923
-Call-ID: unreason.1234ksdfak3j2erwedfsASdf
-CSeq: 35 INVITE
-From: sip:user@example.com;tag=11141343
-To: sip:user@example.edu;tag=2229
-Content-Length: 154
-Content-Type: application/sdp
-Contact: <sip:user@host198.example.com>
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.198
-s=-
-c=IN IP4 192.0.2.198
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_QUOTBAL_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_QUOTBAL_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_QUOTBAL_I.dat (nonexistent)
@@ -1,19 +0,0 @@
-INVITE sip:user@example.com SIP/2.0
-To: "Mr. J. User <sip:j.user@example.com>
-From: sip:caller@example.net;tag=93334
-Max-Forwards: 10
-Call-ID: quotbal.aksdj
-Contact: <sip:caller@host59.example.net>
-CSeq: 8 INVITE
-Via: SIP/2.0/UDP 192.0.2.59:5050;branch=z9hG4bKkdjuw39234
-Content-Type: application/sdp
-Content-Length: 152
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.15
-s=-
-c=IN IP4 192.0.2.15
-t=0 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_REGBADCT_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_REGBADCT_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_REGBADCT_I.dat (nonexistent)
@@ -1,10 +0,0 @@
-REGISTER sip:example.com SIP/2.0
-To: sip:user@example.com
-From: sip:user@example.com;tag=998332
-Max-Forwards: 70
-Call-ID: regbadct.k345asrl3fdbv@10.0.0.1
-CSeq: 1 REGISTER
-Via: SIP/2.0/UDP 135.180.130.133:5060;branch=z9hG4bKkdjuw
-Contact: sip:user@example.com?Route=%3Csip:sip.example.com%3E
-l: 0
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MCL01_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MCL01_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MCL01_I.dat (nonexistent)
@@ -1,13 +0,0 @@
-OPTIONS sip:user@example.com SIP/2.0
-Via: SIP/2.0/UDP host5.example.net;branch=z9hG4bK293423
-To: sip:user@example.com
-From: sip:other@example.net;tag=3923942
-Call-ID: mcl01.fhn2323orihawfdoa3o4r52o3irsdf
-CSeq: 15932 OPTIONS
-Content-Length: 13
-Max-Forwards: 60
-Content-Length: 5
-Content-Type: text/plain
-
-There's no way to know how many octets are supposed to be here.
-
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LTGTRURI_I.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LTGTRURI_I.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_LTGTRURI_I.dat (nonexistent)
@@ -1,19 +0,0 @@
-INVITE <sip:user@example.com> SIP/2.0
-To: sip:user@example.com
-From: sip:caller@example.net;tag=39291
-Max-Forwards: 23
-Call-ID: ltgtruri.1@192.0.2.5
-CSeq: 1 INVITE
-Via: SIP/2.0/UDP 192.0.2.5
-Contact: <sip:caller@host5.example.net>
-Content-Type: application/sdp
-Content-Length: 159
-
-v=0
-o=mhandley 29739 7272939 IN IP4 192.0.2.5
-s=-
-c=IN IP4 192.0.2.5
-t=3149328700 0
-m=audio 49217 RTP/AVP 0 12
-m=video 3227 RTP/AVP 31
-a=rtpmap:31 LPC
Index: v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MPART01.dat
===================================================================
--- v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MPART01.dat (revision 647)
+++ v3.0.3/tags/v1.6.0/codec/validation/TortureTests/data/TC_MPART01.dat (nonexistent)
@@ -1,35 +0,0 @@
-MESSAGE sip:kumiko@example.org SIP/2.0
-Via: SIP/2.0/UDP 127.0.0.1:5070;branch=z9hG4bK-d87543-4dade06d0bdb11ee-1--d87543-;rport
-Max-Forwards: 70
-Route: <sip:127.0.0.1:5080>
-Identity: r5mwreLuyDRYBi/0TiPwEsY3rEVsk/G2WxhgTV1PF7hHuLIK0YWVKZhKv9Mj8UeXqkMVbnVq37CD+813gvYjcBUaZngQmXc9WNZSDNGCzA+fWl9MEUHWIZo1CeJebdY/XlgKeTa0Olvq0rt70Q5jiSfbqMJmQFteeivUhkMWYUA=
-Contact: <sip:fluffy@127.0.0.1:5070>
-To: <sip:kumiko@example.org>
-From: <sip:fluffy@example.com>;tag=2fb0dcc9
-Call-ID: 3d9485ad0c49859b@Zmx1ZmZ5LW1hYy0xNi5sb2NhbA..
-CSeq: 1 MESSAGE
-Content-Transfer-Encoding: binary
-Content-Type: multipart/mixed;boundary=7a9cbec02ceef655
-Date: Sat, 15 Oct 2005 04:44:56 GMT
-User-Agent: SIPimp.org/0.2.5 (curses)
-Content-Length: 553
-
---7a9cbec02ceef655
-Content-Type: text/plain
-Content-Transfer-Encoding: binary
-
-Hello
---7a9cbec02ceef655
-Content-Type: application/octet-stream
-Content-Transfer-Encoding: binary
-
-0‚R *†H†÷ - ‚C0‚?1 0+