Commit 5bad9f1f authored by filatov's avatar filatov
Browse files

Tag 3.0.1 has been created

parent 62e1413b
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
/**
 * @author STF160, STF471
 * @version $Id: LibSip_Common.ttcn 488 2014-09-18 10:17:19Z rennoch $
 * @desc This module provides the common definitions for SIP messages.
 *              This module is part of LibSipV3.
*/
module LibSip_Common {

  type set length (1..infinity) of charstring Charstring_List;
  
  // [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 union GenValue {
    charstring  tokenOrHost,
    charstring  quotedString
  }

  type record GenericParam
  {
    charstring             id,
    GenValue               paramValue optional
  }
  
  // [?]
  type set of GenericParam SemicolonParam_List;
  
  // [?]
  type set of GenericParam AmpersandParam_List;
  
  // [?]
  type set of GenericParam CommaParam_List;
  //------------------------------------------------------------------------------
      
}
with {
    encode "LibSip V3";
} // end module LibSip_Common
+208 −0
Original line number Diff line number Diff line
/**
 *  @author     STF 346, STF366, STF368, STF369, STF450, STF471
 *  @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 LibSipV3.
 */
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 "LibSip V3";
        }

        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 p_text,
        out boolean p_answer
    ) ;
    signature s_SIP_ringing(
        in charstring p_text,
        out boolean p_answer
    ) ;
    signature s_SIP_announcementA(
        in charstring p_text,
        out boolean p_answer
    ) ;
    signature s_SIP_announcementB(
        in charstring p_text,
        out boolean p_answer
    ) ;
    signature s_SIP_announcement(
        in charstring p_text,
        out boolean p_answer
    ) ;
    signature s_SIP_voiceMessage(
        in charstring p_text,
        out boolean p_answer
    ) ;
    signature s_SIP_mediastopped(
        in charstring p_text,
        out boolean p_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 extends SelfSyncComp {
        // 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 template(omit) CallId vc_callId := c_empty_CallId;
        var template(omit) CallId vc_callIdReg := c_empty_CallId;
        var template(omit) CallId vc_callIdSub := 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(omit) RecordRoute vc_recordRoute; // value of RecordRoute header
        var boolean vc_boo_recordRoute := false; // boolean indicates valid recordRoute
        var template(omit) Route vc_route; // value of Route header
        var template(omit) Route vc_route_REG; // value of Route header from registration ServiceRoute header for initial Requests
        var
        UrnUriComponents
            vc_reqUrnUri := {
                namespaceId := "",
                namespaceSpecificString := ""
            };
        var boolean vc_boo_route := false; // boolean indicates valid Route
        var template(omit) Contact vc_contact; // value of Contact header
        var CSeq vc_cSeq := c_empty_cSeq; // value of CSeq header
        var template(value)
        RAck
            vc_rAck := {
                fieldName := RACK_E,
                responseNum := 1,
                seqNumber := 1,
                method := "INVITE"
            }; // value of RAck header

        // address to send request
        var HostPort vc_reqHostPort := {//STF471 removed PIXIT assignment, should be performed in specific ATS 
            host := "127.0.0.1",    // former PX_SIP_SUT_IPADDR value
            portField := 5060       //former PX_SIP_SUT_PORT value
        };
        var template(omit) 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 template(omit) 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 := 0.5;//STF471 default value, should be set in specific ATS, former PX_SIP_T1
        timer tc_Tf := 32.0;//STF471 default value, should be set in specific ATS, former 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 := 10.0; //STF471 default value, should be set in specific ATS, former PX_SIP_TSYNC
        timer tc_guard := 120.0; //STF471 default value, should be set in specific ATS, former PX_SIP_TGUARD
        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 vc_white_space := false; // MRO
        var boolean vc_subscribed := false;
        // ETS address
        var address vc_ets_label; //This value should be initialized in specific ATS

    // // used for communication with the operator
    // port OperatorPort_SIP opPort;
    } // end SipComponent
} // end module LibSip_Interface
+23 −0
Original line number Diff line number Diff line
/**
 * @author      STF471
 * @version     $Id: LibSip_Steps.ttcn 614 2014-07-07 10:01:14Z tepelmann $
 * @desc        This module provides all modules of the LibSip as public imports.
 *              Importing this module will automatically import all here listed modules,
 *              no other LibSip_xxx module import needed in this case.
 *              This module is part of LibSipV3.
 */
module LibSip_Library {
    
    public import from LibSip_Interface all;
    public import from LibSip_MessageBodyTypes all;
    public import from LibSip_PIXITS all;
    public import from LibSip_SDPTypes all;
    public import from LibSip_SimpleMsgSummaryTypes all;
    public import from LibSip_SMSFunctions all;
    public import from LibSip_SMSTemplates all;
    public import from LibSip_SMSTypesAndValues all;
    public import from LibSip_Steps all;
    public import from LibSip_Templates all;
    public import from LibSip_XMLTypes all;
    
}
 No newline at end of file
+53 −0
Original line number Diff line number Diff line
/******************************************************************************
 *  @author     STF 346, STF366, STF368, STF369, STF450, STF471
 *  @version    $Id: LibSip_MessageBodyTypes.ttcn 622 2014-07-10 14:50:54Z nikolajev $
 *  @desc       This module provides the types used for alternative SIP message
 *              body variants and combinations.
 *              This module is part of LibSipV3.           
 */

module LibSip_MessageBodyTypes {
    import from LibSip_SDPTypes all;
    import from LibSip_SimpleMsgSummaryTypes all;
    import from LibSip_XMLTypes all;

    /*
     * Simple body types that can be used instead of the more detailed XML and SDP
     * without codec support
     * */
    //type charstring XmlBody;
    //type charstring SDP_Message;

    group MIMETypes {
        type union MIME_Encapsulated_Parts {
            SDP_Message sdpMessageBody,
            XmlBody xmlBody // if there is XML 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
    }
}
+137 −0
Original line number Diff line number Diff line
/**
 * @author     STF 346, STF366, STF368, STF369, STF450, STF471
 * @version    $Id$
 * @desc        This module provides module parameters used within the SIP
 *             protocol for timers, SDP formats etc.
 *             This module is part of LibSipV3.
 */
module LibSip_PIXITS {
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;

    // ____________________________ PIXIT-S_______________________________
    group SIP_PIXITparameters {
        group SDPParameter {

            /**
             * @desc charstring for SDP user name
             */
            modulepar charstring PX_SIP_SDP_USER_NAME := "voicesession";

            /**
             * @desc charstring for SDP session identifier
             */
            modulepar charstring PX_SIP_SDP_SESSION_ID := "30000";

            /**
             * @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";

            /**
             * @desc charstring for SDP media attribute encoding clockrate supported by the IUT
             */
            modulepar charstring PX_SIP_SDP_CLOCKRATE := "8000";

        } // group SDP Parameter
        group XMLCOnfiguration{
            
            /**
             * @desc boolean for MessageBody length calculation based on encvalue operation result
             */
            modulepar boolean PX_MB_LENGTH_FROM_ENCVAL := true;
            
            /**
             * @desc boolean for MessageBody length calculation to be performed by external function
             */
            modulepar boolean PX_USE_FX_FOR_XML_LENGTH := false;
        }

        group SupportedOptions {

            /**
             * @desc charstring for Used Transport in upper case "UDP"/"TCP"
             */
            modulepar charstring PX_SIP_TRANSPORT := "UDP";


        } // group SupportedOptions{

        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 charstring for PX_AUTH_ALGORITHM security algorithm Possible values: MD5 or AKAv1-MD5
             */
            modulepar charstring PX_AUTH_ALGORITHM := "AKAv1-MD5";


        } // group Registration parameters
        
        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 SIP_Timers {
            /**
             * @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;

        } // group SIP_Timers

        group MimePart {
            /**
             * @desc charstring for delimiter value used in mime multipart message to separate message body parts
             */
            modulepar charstring PX_SIP_MIME_BOUNDARY := "boundary1";

        } // group MimePart

    } // group SIP_PIXITparameters
} // end module LibSip_PIXITS
Loading