Commit bf367808 authored by schmitting's avatar schmitting
Browse files

corrections due to validation runs

parent 88e1a845
Loading
Loading
Loading
Loading
+502 −307
Original line number Original line Diff line number Diff line
@@ -30,20 +30,46 @@ module CONF_TC_Functions {
    import from LibIms_Templates all;
    import from LibIms_Templates all;


    function f_TC_CONF_N01_001(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N01_001(CSeq p_CSeq) runs on ImsComponent {
//        f_init_ics_scscf(p_CSeq);
//
//        // ----  test body  ----->
//
//        // send INVITE including conf-factory-uri
//        LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
//        f_SendINVITE(m_INVITE_Request_Base(
//            vc_requestUri, 
//            vc_callId, 
//            vc_cSeq, 
//            vc_from, 
//            vc_to, 
//            vc_via, 
//            vc_contact
//        ));

        f_init_ics_scscf(p_CSeq);
        f_init_ics_scscf(p_CSeq);
        LibIms_Steps.f_init_userprofile(c_userProfile_UE1atSUThome);


        // ----  test body  ----->
        // ----  test body  ----->


        // send INVITE including conf-factory-uri
        // send INVITE including conf-factory-uri
        LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        f_SendINVITE(m_INVITE_Request_Base(
        vc_route := valueof(m_route_interface_CONF(vc_interfaceprofile,vc_userprofile,"orig"));
        
        f_SendINVITE(m_INVITE_Request_CONF_IMS(
        	vc_requestUri, 
        	vc_requestUri, 
        	vc_callId, 
        	vc_callId, 
        	vc_cSeq, 
        	vc_cSeq, 
        	vc_from, 
        	vc_from, 
        	vc_to, 
        	vc_to, 
        	vc_via, 
        	vc_via, 
            vc_contact
        	vc_contact, 
        	m_Require_prec, 
            vc_route, 
            omit, 
        	m_PAssertedID(vc_from.addressField), 
        	m_Supported_100rel, 
        	m_pChargingVector_icid_TS, 
            m_MBody_SDP(vc_sdp_local)
        ));
        ));
        
        
        //receive 200 OK
        //receive 200 OK
@@ -63,28 +89,40 @@ module CONF_TC_Functions {
            vc_via
            vc_via
        ));
        ));
        
        
        f_SubscriptionWithNotification(
//        f_SubscriptionWithNotification(
            vc_cSeq,
//            vc_cSeq,
            m_SUBSCRIBE_Request_Event(
//            m_SUBSCRIBE_Request_Event(
//                vc_requestUri, 
//                vc_callId, 
//                vc_cSeq, 
//                vc_from, 
//                vc_to, 
//                vc_via, 
//                vc_contact,
//                m_Event_conference
//            ),
//            mw_NOTIFY_Request(
//                vc_callId,
//                "active",
//                *,
//                m_Event_conference,
//                *
//            )
//        ); 
        
        // subscribe conference info
        f_subscribeConf(vc_cSeq, f_initSipUrl(c_conferenceProfile_factoryURI));        
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
        f_terminateCall_IMS(
            vc_requestUri, 
            vc_requestUri, 
            vc_callId,
            vc_callId,
            vc_cSeq, 
            vc_cSeq, 
                vc_from, 
            vc_caller_From,
                vc_to, 
            vc_caller_To
                vc_via, 
                vc_contact,
                m_Event_conference
            ),
            mw_NOTIFY_Request(
                vc_callId,
                "active",
                *,
                m_Event_conference,
                *
            )
        );
        );
        
        
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    }
    }
    
    
    function f_TC_CONF_N01_002(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N01_002(CSeq p_CSeq) runs on ImsComponent {
@@ -2582,20 +2620,34 @@ module CONF_TC_Functions {
    }
    }
    
    
    function f_TC_CONF_N08_001(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N08_001(CSeq p_CSeq) runs on ImsComponent {

        var SessionDialog v_UE1_Session, v_UE2_Session;
         var SipUrl v_conf;
        
         f_init_ics_scscf(p_CSeq);
         f_init_ics_scscf(p_CSeq);
         LibIms_Steps.f_init_userprofile(c_userProfile_UE1atSUThome);


         // ----  test body  ----->
         // ----  test body  ----->


        // ----  create conference  ----->
         // send INVITE including conf-factory-uri
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        f_SendINVITE(m_INVITE_Request_Base(
         vc_route := valueof(m_route_interface_CONF(vc_interfaceprofile,vc_userprofile,"orig"));

         f_SendINVITE(m_INVITE_Request_CONF_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_from, 
             vc_from, 
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
            vc_contact
             vc_contact, 
             m_Require_prec, 
             vc_route, 
             omit, 
             m_PAssertedID(vc_from.addressField), 
             m_Supported_100rel, 
             m_pChargingVector_icid_TS, 
             m_MBody_SDP(vc_sdp_local)
         ));
         ));
        
        
        //receive 200 OK
        //receive 200 OK
@@ -2622,11 +2674,28 @@ module CONF_TC_Functions {
        
        
        // ----  UE#1 INVITE UE#2  ----->
        // ----  UE#1 INVITE UE#2  ----->
        
        
//        f_referConference(
		 LibIms_Steps.f_setHeadersREFER(vc_cSeq, c_conferenceProfile_factoryURI);
//            vc_cSeq, 
         vc_to.addressField.addrSpecUnion := v_conf;
//            c_userProfile_UE2atSUThome, 
         f_SendREFER(m_REFER_Request_Base(
//            f_initSipUrl(c_conferenceProfile_factoryURI)
             v_conf, 
//        );
             vc_callId, 
             vc_cSeq, 
             vc_contact,
             vc_from, 
             vc_to, 
             vc_via, 
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
             m_ReferredBy_SipUrl(f_initSipUrl(c_userProfile_UE1atSUThome))
         ));
         
         v_UE1_Session := f_saveSession();
        
         //receive 202 
         f_awaitingResponse(mw_Response_Base(
             c_statusLine202, 
             vc_callId, 
             vc_cSeq
         ));
        
        
        // ----  UE#2 get INVITE ----->
        // ----  UE#2 get INVITE ----->
        
        
@@ -2683,20 +2752,34 @@ module CONF_TC_Functions {
    }
    }
    
    
    function f_TC_CONF_N09_001(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N09_001(CSeq p_CSeq) runs on ImsComponent {

		 var SessionDialog v_UE1_Session, v_UE2_Session;
         var SipUrl v_conf;
        
         f_init_ics_scscf(p_CSeq);
         f_init_ics_scscf(p_CSeq);
         LibIms_Steps.f_init_userprofile(c_userProfile_UE1atSUThome);


         // ----  test body  ----->
         // ----  test body  ----->


        // ----  create conference  ----->
         // send INVITE including conf-factory-uri
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        f_SendINVITE(m_INVITE_Request_Base(
         vc_route := valueof(m_route_interface_CONF(vc_interfaceprofile,vc_userprofile,"orig"));

         f_SendINVITE(m_INVITE_Request_CONF_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_from, 
             vc_from, 
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
            vc_contact
             vc_contact, 
             m_Require_prec, 
             vc_route, 
             omit, 
             m_PAssertedID(vc_from.addressField), 
             m_Supported_100rel, 
             m_pChargingVector_icid_TS, 
             m_MBody_SDP(vc_sdp_local)
         ));
         ));
        
        
        //receive 200 OK
        //receive 200 OK
@@ -2707,6 +2790,9 @@ module CONF_TC_Functions {
            mw_Contact_conference
            mw_Contact_conference
        ));
        ));
        
        
         // save conferance URI
         v_conf := vc_requestUri;
        
        f_SendACK(m_ACK_Request_Base(
        f_SendACK(m_ACK_Request_Base(
            vc_requestUri, 
            vc_requestUri, 
            vc_callId, 
            vc_callId, 
@@ -2720,20 +2806,48 @@ module CONF_TC_Functions {
        
        
        // ----  UE#1 INVITE UE#2  ----->
        // ----  UE#1 INVITE UE#2  ----->


//        f_referConference(
		 LibIms_Steps.f_setHeadersREFER(vc_cSeq, c_conferenceProfile_factoryURI);
//            vc_cSeq, 
         vc_to.addressField.addrSpecUnion := v_conf;
//            c_userProfile_UE2atSUThome, 
         f_SendREFER(m_REFER_Request_Base(
//            f_initSipUrl(c_conferenceProfile_factoryURI)
             v_conf, 
//        );
             vc_callId, 
             vc_cSeq, 
             vc_contact,
             vc_from, 
             vc_to, 
             vc_via, 
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
             m_ReferredBy_SipUrl(f_initSipUrl(c_userProfile_UE1atSUThome))
         ));
         
         v_UE1_Session := f_saveSession();
        
         //receive 202 
         f_awaitingResponse(mw_Response_Base(
             c_statusLine202, 
             vc_callId, 
             vc_cSeq
         ));
        

        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
            vc_callId,
            "active",
            *,
            m_Event_refer,
            * 
        ));
        
        
        // ----  UE#2 get INVITE ----->
        // ----  UE#2 get INVITE ----->
        
        
        f_awaitingINVITE(mw_INVITE_Request_CONF(
        f_awaitingINVITE(mw_INVITE_Request_CONF(
            f_initSipUrl(c_userProfile_UE2atSUThome),
            f_initSipUrl(c_userProfile_UE2atSUThome),
            mw_PAssertedID(mw_AddrUnion_Nameaddr(*,PX_IMS_SUT_UE2_PUBLIC_USER, *)),
            ?,  //mw_PAssertedID(mw_AddrUnion_Nameaddr(*,PX_IMS_SUT_UE2_PUBLIC_USER, *)),
            mw_Contact_conference
            mw_Contact_conference
        ));
        ));
        
        
        v_UE2_Session := f_saveSession();
        
        f_sendResponse(m_Response_2XXonINVITE_privacy_UE(
        f_sendResponse(m_Response_2XXonINVITE_privacy_UE(
            c_statusLine200,
            c_statusLine200,
            vc_callId, 
            vc_callId, 
@@ -2749,14 +2863,6 @@ module CONF_TC_Functions {


        f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        
        
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
            vc_callId,
            "active",
            *,
            m_Event_conference,
            * 
        ));
        
        // UE#2 subscribe conference info
        // UE#2 subscribe conference info
        // creating a new dialog
        // creating a new dialog
         LibIms_Steps.f_setHeadersSUBSCRIBE(
         LibIms_Steps.f_setHeadersSUBSCRIBE(
@@ -2967,20 +3073,34 @@ module CONF_TC_Functions {
    }
    }
    
    
    function f_TC_CONF_N09_003(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N09_003(CSeq p_CSeq) runs on ImsComponent {
        
        var SessionDialog v_UE1_Session, v_UE2_Session;
         var SipUrl v_conf;
        
         f_init_ics_scscf(p_CSeq);
         f_init_ics_scscf(p_CSeq);
         LibIms_Steps.f_init_userprofile(c_userProfile_UE1atSUThome);


         // ----  test body  ----->
         // ----  test body  ----->


        // ----  create conference  ----->
         // send INVITE including conf-factory-uri
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        f_SendINVITE(m_INVITE_Request_Base(
         vc_route := valueof(m_route_interface_CONF(vc_interfaceprofile,vc_userprofile,"orig"));

         f_SendINVITE(m_INVITE_Request_CONF_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_from, 
             vc_from, 
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
            vc_contact
             vc_contact, 
             m_Require_prec, 
             vc_route, 
             omit, 
             m_PAssertedID(vc_from.addressField), 
             m_Supported_100rel, 
             m_pChargingVector_icid_TS, 
             m_MBody_SDP(vc_sdp_local)
         ));
         ));
        
        
         //receive 200 OK
         //receive 200 OK
@@ -2991,6 +3111,9 @@ module CONF_TC_Functions {
             mw_Contact_conference
             mw_Contact_conference
         ));
         ));
        
        
         // save conferance URI
         v_conf := vc_requestUri;
        
         f_SendACK(m_ACK_Request_Base(
         f_SendACK(m_ACK_Request_Base(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
@@ -3000,14 +3123,16 @@ module CONF_TC_Functions {
             vc_via
             vc_via
         ));
         ));
        
        
         v_UE1_Session := f_saveSession();
    
         f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
         f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        
         // ----  UE#1 INVITE UE#2  ----->
         // ----  UE#1 INVITE UE#2  ----->
        
        
        LibIms_Steps.f_setHeadersREFER_conf(vc_cSeq, f_initSipUrl(c_conferenceProfile_factoryURI));
         LibIms_Steps.f_setHeadersREFER(vc_cSeq, c_conferenceProfile_factoryURI);
            
         vc_to.addressField.addrSpecUnion := v_conf;
         f_SendREFER(m_REFER_Request_Privacy(
         f_SendREFER(m_REFER_Request_Privacy(
            vc_requestUri, 
             v_conf, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_contact,
             vc_contact,
@@ -3015,30 +3140,33 @@ module CONF_TC_Functions {
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
            omit,
             omit, //m_ReferredBy_SipUrl(f_initSipUrl(c_userProfile_UE1atSUThome)),
        	m_Privacy(c_privacy_user)
        	m_Privacy(c_privacy_user)
         ));
         ));
        
        
         v_UE1_Session := f_saveSession();
        
         //receive 202 
         f_awaitingResponse(mw_Response_Base(
         f_awaitingResponse(mw_Response_Base(
             c_statusLine202, 
             c_statusLine202, 
             vc_callId, 
             vc_callId, 
             vc_cSeq
             vc_cSeq
         ));
         ));
        
        
        //await NOTIFY and send reply 200 OK
        
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
             vc_callId,
             vc_callId,
             "active",
             "active",
            "application/message/sipfrag",
             *,
             m_Event_refer,
             m_Event_refer,
            m_MBody_sipfrag("SIP/2.0 100 Trying")
             *
         ));
         ));
        
        
        // ----  UE#2 get INVITE ----->
        
        
        f_awaitingINVITE(mw_INVITE_Request_CONF_OIR(
         // ----  UE#2 get INVITE ----->
         f_awaitingINVITE(mw_INVITE_Request_CONF(
             f_initSipUrl(c_userProfile_UE2atSUThome),
             f_initSipUrl(c_userProfile_UE2atSUThome),
            mw_PAssertedID(mw_AddrUnion_Nameaddr(*,PX_IMS_SUT_UE2_PUBLIC_USER, *)),
             mw_PAssertedID(mw_PAssertedIDValue(mw_SipUrl_custom(v_conf.userInfo.userOrTelephoneSubscriber, *))),
             mw_Contact_conference
             mw_Contact_conference
         ));
         ));
        
        
@@ -3057,53 +3185,82 @@ module CONF_TC_Functions {


         f_awaitingACK(mw_ACK_Request_Base(vc_callId));
         f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        
        
        //await NOTIFY and send reply 200 OK
         v_UE2_Session := f_saveSession();
         f_loadSession(v_UE1_Session);
        
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
             vc_callId,
             vc_callId,
            "active",
             "terminated",
            "application/message/sipfrag",
             *,
             m_Event_refer,
             m_Event_refer,
            m_MBody_sipfrag("SIP/2.0 200 OK") 
             *
         ));
         ));
        
        
        // UE#1 sends BYE
         f_loadSession(v_UE2_Session);
        LibIms_Steps.f_setHeadersBYE(p_CSeq, c_conferenceProfile_factoryURI);
        
        f_SendBYE(m_BYE_Request_Base(
         f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
         // disconnect UE2
        vc_to := {fieldName := TO_E,
          addressField := vc_callee_From.addressField,
          toParams := vc_callee_From.fromParams};
  
        vc_from := {fieldName := FROM_E,
          addressField := vc_callee_To.addressField,
          fromParams := vc_callee_To.toParams};
         f_terminateCall_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId,
             vc_callId,
            p_CSeq, 
             vc_cSeq, 
            vc_from,
            vc_from,
            vc_to, 
            vc_to
            vc_via
         );
         ));
        
        
        f_awaitingResponse(mw_Response_Base(
         // disconnect UE1
            c_statusLine200, 
         f_loadSession(v_UE1_Session);
        
         f_terminateCall_IMS(
        	 v_conf, 
             vc_callId,
             vc_callId,
            vc_cSeq
             vc_cSeq, 
        ));
             vc_caller_From,
             vc_caller_To
         );
        
        
        // UE#2 receives BYE
         f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
        f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));


        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    }
    }
    
    
    function f_TC_CONF_N09_004(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N09_004(CSeq p_CSeq) runs on ImsComponent {

        
        var SessionDialog v_UE1_Session, v_UE2_Session;
         var SipUrl v_conf;
        
         f_init_ics_scscf(p_CSeq);
         f_init_ics_scscf(p_CSeq);
         LibIms_Steps.f_init_userprofile(c_userProfile_UE1atSUThome);


         // ----  test body  ----->
         // ----  test body  ----->


        // ----  create conference  ----->
         // send INVITE including conf-factory-uri
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        f_SendINVITE(m_INVITE_Request_Base(
         vc_route := valueof(m_route_interface_CONF(vc_interfaceprofile,vc_userprofile,"orig"));

         f_SendINVITE(m_INVITE_Request_CONF_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_from, 
             vc_from, 
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
            vc_contact
             vc_contact, 
             m_Require_prec, 
             vc_route, 
             omit, 
             m_PAssertedID(vc_from.addressField), 
             m_Supported_100rel, 
             m_pChargingVector_icid_TS, 
             m_MBody_SDP(vc_sdp_local)
         ));
         ));
        
        
         //receive 200 OK
         //receive 200 OK
@@ -3114,6 +3271,9 @@ module CONF_TC_Functions {
             mw_Contact_conference
             mw_Contact_conference
         ));
         ));
        
        
         // save conferance URI
         v_conf := vc_requestUri;
        
         f_SendACK(m_ACK_Request_Base(
         f_SendACK(m_ACK_Request_Base(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
@@ -3123,14 +3283,16 @@ module CONF_TC_Functions {
             vc_via
             vc_via
         ));
         ));
        
        
         v_UE1_Session := f_saveSession();
    
         f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
         f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        
        
         // ----  UE#1 INVITE UE#2  ----->
         // ----  UE#1 INVITE UE#2  ----->
        
        
        LibIms_Steps.f_setHeadersREFER_conf(vc_cSeq, f_initSipUrl(c_conferenceProfile_factoryURI));
         LibIms_Steps.f_setHeadersREFER(vc_cSeq, c_conferenceProfile_factoryURI);
            
         vc_to.addressField.addrSpecUnion := v_conf;
         f_SendREFER(m_REFER_Request_Privacy(
         f_SendREFER(m_REFER_Request_Privacy(
            vc_requestUri, 
             v_conf, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_contact,
             vc_contact,
@@ -3138,30 +3300,33 @@ module CONF_TC_Functions {
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
            omit,
             omit, //m_ReferredBy_SipUrl(f_initSipUrl(c_userProfile_UE1atSUThome)),
        	m_Privacy(c_privacy_header)
        	m_Privacy(c_privacy_header)
         ));
         ));
        
        
         v_UE1_Session := f_saveSession();
        
         //receive 202 
         f_awaitingResponse(mw_Response_Base(
         f_awaitingResponse(mw_Response_Base(
             c_statusLine202, 
             c_statusLine202, 
             vc_callId, 
             vc_callId, 
             vc_cSeq
             vc_cSeq
         ));
         ));
        
        
        //await NOTIFY and send reply 200 OK
        
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
             vc_callId,
             vc_callId,
             "active",
             "active",
            "application/message/sipfrag",
             *,
             m_Event_refer,
             m_Event_refer,
            m_MBody_sipfrag("SIP/2.0 100 Trying")
             *
         ));
         ));
        
        
        // ----  UE#2 get INVITE ----->
        
        
        f_awaitingINVITE(mw_INVITE_Request_CONF_OIR(
         // ----  UE#2 get INVITE ----->
         f_awaitingINVITE(mw_INVITE_Request_CONF(
             f_initSipUrl(c_userProfile_UE2atSUThome),
             f_initSipUrl(c_userProfile_UE2atSUThome),
            mw_PAssertedID(mw_AddrUnion_Nameaddr(*,PX_IMS_SUT_UE2_PUBLIC_USER, *)),
             mw_PAssertedID(mw_PAssertedIDValue(mw_SipUrl_custom(v_conf.userInfo.userOrTelephoneSubscriber, *))),
             mw_Contact_conference
             mw_Contact_conference
         ));
         ));
        
        
@@ -3180,56 +3345,86 @@ module CONF_TC_Functions {


         f_awaitingACK(mw_ACK_Request_Base(vc_callId));
         f_awaitingACK(mw_ACK_Request_Base(vc_callId));
        
        
        //await NOTIFY and send reply 200 OK
         v_UE2_Session := f_saveSession();
         f_loadSession(v_UE1_Session);
        
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
         f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
             vc_callId,
             vc_callId,
            "active",
             "terminated",
            "application/message/sipfrag",
             *,
             m_Event_refer,
             m_Event_refer,
            m_MBody_sipfrag("SIP/2.0 200 OK") 
             *
         ));
         ));
        
        
        // UE#1 sends BYE
         f_loadSession(v_UE2_Session);
        LibIms_Steps.f_setHeadersBYE(p_CSeq, c_conferenceProfile_factoryURI);
        
        f_SendBYE(m_BYE_Request_Base(
         f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        
         // disconnect UE2
        vc_to := {fieldName := TO_E,
          addressField := vc_callee_From.addressField,
          toParams := vc_callee_From.fromParams};
  
        vc_from := {fieldName := FROM_E,
          addressField := vc_callee_To.addressField,
          fromParams := vc_callee_To.toParams};
         f_terminateCall_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId,
             vc_callId,
            p_CSeq, 
             vc_cSeq, 
            vc_from,
            vc_from,
            vc_to, 
            vc_to
            vc_via
         );
         ));
        
        
        f_awaitingResponse(mw_Response_Base(
         // disconnect UE1
            c_statusLine200, 
         f_loadSession(v_UE1_Session);
        
         f_terminateCall_IMS(
        	 v_conf, 
             vc_callId,
             vc_callId,
            vc_cSeq
             vc_cSeq, 
        ));
             vc_caller_From,
             vc_caller_To
         );
        
        
        // UE#2 receives BYE
         f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
        f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));


        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    }
    }
    
    
    
    
    function f_TC_CONF_N10_001(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N10_001(CSeq p_CSeq) runs on ImsComponent {
         
        var SessionDialog v_UE1_Session, v_UE2_Session;
         var SipUrl v_conf;
        
         f_init_ics_scscf(p_CSeq);
         f_init_ics_scscf(p_CSeq);
         LibIms_Steps.f_init_userprofile(c_userProfile_UE1atSUThome);


         // ----  test body  ----->
         // ----  test body  ----->


        // ----  create conference  ----->
         // send INVITE including conf-factory-uri
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
         LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_conferenceProfile_factoryURI);
        f_SendINVITE(m_INVITE_Request_Base(
         vc_route := valueof(m_route_interface_CONF(vc_interfaceprofile,vc_userprofile,"orig"));

         f_SendINVITE(m_INVITE_Request_CONF_IMS(
             vc_requestUri, 
             vc_requestUri, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_from, 
             vc_from, 
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
            vc_contact
             vc_contact, 
             m_Require_prec, 
             vc_route, 
             omit, 
             m_PAssertedID(vc_from.addressField), 
             m_Supported_100rel, 
             m_pChargingVector_icid_TS, 
             m_MBody_SDP(vc_sdp_local)
         ));         
         ));         
      
      
         
    
        //receive 200 OK
        //receive 200 OK
        f_awaitingResponse(mw_Response_Contact(
        f_awaitingResponse(mw_Response_Contact(
            c_statusLine200, 
            c_statusLine200, 
@@ -3238,6 +3433,9 @@ module CONF_TC_Functions {
            mw_Contact_conference
            mw_Contact_conference
        ));
        ));


         // save conferance URI
         v_conf := vc_requestUri;

        f_SendACK(m_ACK_Request_Base(
        f_SendACK(m_ACK_Request_Base(
            vc_requestUri, 
            vc_requestUri, 
            vc_callId, 
            vc_callId, 
@@ -3247,14 +3445,16 @@ module CONF_TC_Functions {
            vc_via
            vc_via
        ));
        ));
        
        
        v_UE1_Session := f_saveSession();
    
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    
    
        // ----  UE#1 INVITE UE#2  ----->
        // ----  UE#1 INVITE UE#2  ----->


        LibIms_Steps.f_setHeadersREFER_conf(vc_cSeq, f_initSipUrl(c_conferenceProfile_factoryURI));
         LibIms_Steps.f_setHeadersREFER(vc_cSeq, c_conferenceProfile_factoryURI);
        
         vc_to.addressField.addrSpecUnion := v_conf;
        f_SendREFER(m_REFER_Request_Base(
         f_SendREFER(m_REFER_Request_Privacy(
            vc_requestUri, 
             v_conf, 
             vc_callId, 
             vc_callId, 
             vc_cSeq, 
             vc_cSeq, 
             vc_contact,
             vc_contact,
@@ -3262,36 +3462,31 @@ module CONF_TC_Functions {
             vc_to, 
             vc_to, 
             vc_via, 
             vc_via, 
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
             m_ReferTo_SipUrl(f_initSipUrl(c_userProfile_UE2atSUThome), "INVITE"),
            m_ReferredBy_SipUrl(f_initSipUrl(c_userProfile_UE1atSUThome))
             m_ReferredBy_SipUrl(f_initSipUrl(c_userProfile_UE1atSUThome)),
        	 omit //m_Privacy(c_privacy_user)
         ));
         ));
         
         
        v_UE1_Session := f_saveSession();
        
        f_awaitingResponse(mw_Response_Base(
        f_awaitingResponse(mw_Response_Base(
            c_statusLine404, 
            {c_sipNameVersion, (400..499), *}, //c_statusLine404, 
            vc_callId, 
            vc_callId, 
            vc_cSeq
            vc_cSeq
        ));
        ));


        // UE#1 sends BYE
         f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
        LibIms_Steps.f_setHeadersBYE(p_CSeq, c_conferenceProfile_factoryURI);
         // disconnect UE1
        f_SendBYE(m_BYE_Request_Base(
         f_loadSession(v_UE1_Session);
            vc_requestUri, 
            vc_callId, 
            p_CSeq, 
            vc_from, 
            vc_to, 
            vc_via
         ));
        
        
        f_awaitingResponse(mw_Response_Base(
         f_terminateCall_IMS(
            c_statusLine200, 
        	 v_conf, 
             vc_callId,
             vc_callId,
            vc_cSeq
             vc_cSeq, 
        ));
             vc_caller_From,
    
             vc_caller_To
        // UE#2 receives BYE
         );
        f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
         f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
        
        
        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    }
    }
    
    
    function f_TC_CONF_N10_002(CSeq p_CSeq) runs on ImsComponent {
    function f_TC_CONF_N10_002(CSeq p_CSeq) runs on ImsComponent {
+30 −28

File changed.

Preview size limit exceeded, changes collapsed.