pax_global_header 0000666 0000000 0000000 00000000064 12402070460 0014505 g ustar 00root root 0000000 0000000 52 comment=1262ddba20a05eea13484116494fb12a68beee4e
LibSip-v2/ 0000775 0000000 0000000 00000000000 12402070460 0012560 5 ustar 00root root 0000000 0000000 LibSip-v2/XSDAUX.ttcn 0000664 0000000 0000000 00000005306 12402070460 0014472 0 ustar 00root root 0000000 0000000 module XSDAUX {//MRO
/* 0.anySimpleType */
type anytype anySimpleType;
/* 1.string */
type charstring string;
/* 2.boolean */
type integer bitXSD (1, 0) ;
type union booleanXSD {
bitXSD bit, boolean bool
}
/* 3.decimal */
type float decimal;
/* 4.float */
type float floatXSD;
/* 5.double */
type float double;
/* 6.duration */
type charstring duration;
/* 7.dateTime */
type charstring dateTime;
/* 8.time */
type charstring time;
/* 9.date */
type charstring date;
/* 10.gYearMonth */
type charstring gYearMonth;
/* 11.gYear */
type charstring gYear;
/* 12.gMonthDay */
type charstring gMonthDay;
/* 13.gDay */
type charstring gDay;
/* 14.gMonth */
type charstring gMonth;
/* 15.hexBinary */
type hexstring hexBinary;
/* 16.base64Binary */
type charstring base64Binary;
/* 17.anyURI */
type charstring anyURI;
/* 18.QName */
type charstring QName;
/* 19.NOTATION */
type charstring NOTATION;
/* 20.normalizedString */
type charstring normalizedString;
/* 21.token */
type charstring token;
/* 22.language */
type charstring languageXSD;
/* 23.NMTOKEN */
type charstring NMTOKEN;
/* 24.NMTOKENS */
type set of charstring NMTOKENS;
/* 25.Name */
type charstring Name;
/* 27.NCName */
type charstring NCName;
/* 28.ID */
type charstring ID;
/* 29.IDREFS */
type set of charstring IDREFS;
/* 30.ENTITY */
type charstring ENTITY;
/* 31.ENTITIES */
type set of charstring ENTITIES;
/* 32.nonPositiveInteger */
type integer nonPositiveInteger (- infinity .. 0) ;
/* 33.negativeInteger */
type integer negativeInteger (- infinity .. - 1) ;
/* 34.long */
// type integer long (- 9223372036854775808 .. 9223372036854775807) ;//MRO
/* 35.int */
type integer int (- 2147483648 .. 2147483647) ;
/* 36.short */
type integer short (- 32768 .. 32767) ;
/* 37.byte */
type integer byte (- 128 .. 127) ;
/* 38.nonNegativeInteger */
type integer nonNegativeInteger (0 .. infinity) ;
/* 39.unsignedLong */
type integer unsignedLong (0 .. 18446744073709551615) ;//MRO
/* 40.unsignedInt */
type integer unsignedInt (0 .. 4294967295) ;
/* 41.unsignedShort */
type integer unsignedShort (0 .. 65535) ;
/* 42.unsignedByte */
type integer unsignedByte (0 .. 255) ;
/* 43.positiveInteger */
type integer positiveInteger (1 .. infinity) ;
/* 44.integer */
type integer integerXSD;
/* 45.anyAttributes */
type record of record {
charstring name,
charstring val
} anyAttributes;
/* 46. anyType */
/**
* This is to represent elements without a given type
*/
type record anyType {
}
}
LibSip-v2/ttcn/ 0000775 0000000 0000000 00000000000 12402070460 0013530 5 ustar 00root root 0000000 0000000 LibSip-v2/ttcn/LibSip_Interface.ttcn 0000664 0000000 0000000 00000021246 12402070460 0017571 0 ustar 00root root 0000000 0000000 /*
* @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
LibSip-v2/ttcn/LibSip_MessageBodyTypes.ttcn 0000664 0000000 0000000 00000003413 12402070460 0021114 0 ustar 00root root 0000000 0000000 /******************************************************************************/
// $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
};
}
LibSip-v2/ttcn/LibSip_PIXITS.ttcn 0000664 0000000 0000000 00000032236 12402070460 0016712 0 ustar 00root root 0000000 0000000 /*
* @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
LibSip-v2/ttcn/LibSip_SDPTypes.ttcn 0000664 0000000 0000000 00000024340 12402070460 0017342 0 ustar 00root root 0000000 0000000 /**
* @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.
* 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
LibSip-v2/ttcn/LibSip_SIPTypesAndValues.ttcn 0000664 0000000 0000000 00000172264 12402070460 0021163 0 ustar 00root root 0000000 0000000 /**
* @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.
* 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
LibSip-v2/ttcn/LibSip_SMSFunctions.ttcn3 0000664 0000000 0000000 00000003040 12402070460 0020277 0 ustar 00root root 0000000 0000000 /*
* @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