Commit 0cfc0ee7 authored by filatov's avatar filatov
Browse files

The version of the LibSip v2 in the moment of STF471 delivery

parent 84e65ddd
Loading
Loading
Loading
Loading
+150 −0
Original line number Diff line number Diff line
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 {
	}
}
+188 −0
Original line number Diff line number Diff line
/*
 *	@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
+52 −0
Original line number Diff line number Diff line
/******************************************************************************/
// $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
  };


}
+355 −0

File added.

Preview size limit exceeded, changes collapsed.

+324 −0
Original line number Diff line number Diff line
/**
 *  @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
Loading