Loading CONF/CONF_TC_Functions.ttcn3 +502 −307 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 { Loading Loading @@ -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 Loading @@ -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 -----> Loading Loading @@ -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 Loading @@ -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, Loading @@ -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, Loading @@ -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( Loading Loading @@ -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 Loading @@ -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, Loading @@ -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, Loading @@ -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 )); )); Loading @@ -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 Loading @@ -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, Loading @@ -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, Loading @@ -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 )); )); Loading @@ -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, Loading @@ -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, Loading @@ -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, Loading @@ -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 { Loading CONF/CONF_TestCases.ttcn3 +30 −28 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
CONF/CONF_TC_Functions.ttcn3 +502 −307 Original line number Original line Diff line number Diff line Loading @@ -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 Loading @@ -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 { Loading Loading @@ -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 Loading @@ -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 -----> Loading Loading @@ -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 Loading @@ -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, Loading @@ -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, Loading @@ -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( Loading Loading @@ -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 Loading @@ -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, Loading @@ -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, Loading @@ -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 )); )); Loading @@ -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 Loading @@ -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, Loading @@ -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, Loading @@ -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 )); )); Loading @@ -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, Loading @@ -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, Loading @@ -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, Loading @@ -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 { Loading
CONF/CONF_TestCases.ttcn3 +30 −28 File changed.Preview size limit exceeded, changes collapsed. Show changes