Loading AtsNIT_SipSip/ttcn/AtsNIT_SipSip_SS_TCFunctions.ttcn +1171 −321 File changed.Preview size limit exceeded, changes collapsed. Show changes AtsNIT_SipSip/ttcn/AtsNIT_SipSip_Steps.ttcn3 +99 −28 Original line number Diff line number Diff line Loading @@ -41,6 +41,23 @@ module AtsNIT_SipSip_Steps { return v_SipUrl; } /** * * @desc extract the tag values. ex To tag, From tag * @param p_paramList header info * @param p_name header name * @return tag value */ function f_getTag(in SemicolonParam_List p_paramList, in charstring p_name) return charstring { for(var integer i :=0 ; i < sizeof(p_paramList); i := i+1) { if(p_paramList[i].id == p_name) { return p_paramList[i].paramValue; } } return "0" } } group sessionFunctions { Loading Loading @@ -190,6 +207,38 @@ module AtsNIT_SipSip_Steps { f_awaitingACK(mw_ACK_Request_Base(vc_callId)); } function f_acceptCall4ECT(in SipUrl p_referredBy) runs on ImsComponent { // await INVITE f_awaitingINVITE(mw_INVITE_Request(m_Require_replaces, p_referredBy)); // send 180 Ringing f_sendResponse(m_Response_18XonINVITE( c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact )); // send 200 OK f_sendResponse(m_Response_2xxonINVITE_UE( c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_route(), valueof(m_MBody_SDP(vc_sdp_local)) )); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); } /** * Loading Loading @@ -279,6 +328,7 @@ module AtsNIT_SipSip_Steps { p_cSeq_s, p_profile ); f_SendINVITE(m_INVITE_Request_sdp( vc_requestUri, vc_callId, Loading Loading @@ -352,12 +402,40 @@ module AtsNIT_SipSip_Steps { in integer p_to_user, in SipUrl c_requestUri, in SipUrl p_refer_to_user, in SipUrl p_referred_by_user in SipUrl p_referred_by_user, in boolean flag ) runs on ImsComponent { var charstring v_callId; var charstring v_toTag; var charstring v_fromTag; if(flag) { v_callId := vc_callId.callid; v_toTag := f_getTag(vc_to.toParams, "to-tag"); v_fromTag := f_getTag(vc_from.fromParams, "from-tag"); // set Refer headers LibIms_Steps.f_setHeadersREFER(p_cSeq, p_to_user); // send Refer with the Replaces and Require headers f_SendREFER(m_REFER_Request_replaces( c_requestUri, vc_callId, vc_cSeq, vc_contact, vc_from, vc_to, vc_via, m_ReferTo_SipUrl(p_refer_to_user, "INVITE"), m_ReferredBy_SipUrl(p_referred_by_user), m_Replaces(v_callId, v_toTag, v_fromTag), m_Require_replaces )); } else { // set Refer headers LibIms_Steps.f_setHeadersREFER(p_cSeq, p_to_user); // send Refer // send Refer without the Replaces and Require headers f_SendREFER(m_REFER_Request_Base( c_requestUri, vc_callId, Loading @@ -369,6 +447,7 @@ module AtsNIT_SipSip_Steps { m_ReferTo_SipUrl(p_refer_to_user, "INVITE"), m_ReferredBy_SipUrl(p_referred_by_user) )); } // Receive a 202 f_awaitingResponse(mw_Response_Base( Loading Loading @@ -410,21 +489,13 @@ module AtsNIT_SipSip_Steps { tc_resp.start(PX_SIP_TRESP); alt { [] SIPP.receive(mw_REFER_Request_Base(vc_callId))-> value v_Refer sender vc_sent_label [] SIPP.receive(mw_REFER_Request(vc_callId, v_userA, v_userB))-> value v_Refer sender vc_sent_label { tc_resp.stop; f_setHeadersOnReceiptOfRequest(v_Refer); if (ispresent(v_Refer.msgHeader.referTo) and ispresent(v_Refer.requestLine.requestUri) and ispresent(v_Refer.msgHeader.referredBy)) { if ((v_Refer.requestLine.requestUri != v_userA) or (v_Refer.msgHeader.referredBy.nameAddr.addrSpec != v_userB)) { setverdict(fail); } if (ispresent(v_Refer.msgHeader.referTo)) { v_ECTSessId := v_Refer.msgHeader.referTo.nameAddr.addrSpec; } else { setverdict(fail); } } } Loading AtsNIT_SipSip/ttcn/AtsNIT_SipSip_Testcases.ttcn +117 −0 Original line number Diff line number Diff line Loading @@ -2267,6 +2267,123 @@ group TP2_1_SS_OIP_OIR { }//end group TP2_10_SS_CD group TP2_11_SS_ECT { /* * @desc TC_SS___XXSS_ECT_01 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_01 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT01UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT01UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT01UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_01 /* * @desc TC_SS___XXSS_ECT_02 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_02 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT02UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT02UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT02UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_02 /* * @desc TC_SS___XXSS_ECT_03 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_03 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT03UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT03UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT03UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_03 /* * @desc TC_SS___XXSS_ECT_04 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_04 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT04UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT04UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT04UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_04 }//end group TP2_11_SS_ECT }//end group TP_2_SupplementaryServices Loading Loading
AtsNIT_SipSip/ttcn/AtsNIT_SipSip_SS_TCFunctions.ttcn +1171 −321 File changed.Preview size limit exceeded, changes collapsed. Show changes
AtsNIT_SipSip/ttcn/AtsNIT_SipSip_Steps.ttcn3 +99 −28 Original line number Diff line number Diff line Loading @@ -41,6 +41,23 @@ module AtsNIT_SipSip_Steps { return v_SipUrl; } /** * * @desc extract the tag values. ex To tag, From tag * @param p_paramList header info * @param p_name header name * @return tag value */ function f_getTag(in SemicolonParam_List p_paramList, in charstring p_name) return charstring { for(var integer i :=0 ; i < sizeof(p_paramList); i := i+1) { if(p_paramList[i].id == p_name) { return p_paramList[i].paramValue; } } return "0" } } group sessionFunctions { Loading Loading @@ -190,6 +207,38 @@ module AtsNIT_SipSip_Steps { f_awaitingACK(mw_ACK_Request_Base(vc_callId)); } function f_acceptCall4ECT(in SipUrl p_referredBy) runs on ImsComponent { // await INVITE f_awaitingINVITE(mw_INVITE_Request(m_Require_replaces, p_referredBy)); // send 180 Ringing f_sendResponse(m_Response_18XonINVITE( c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact )); // send 200 OK f_sendResponse(m_Response_2xxonINVITE_UE( c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_route(), valueof(m_MBody_SDP(vc_sdp_local)) )); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); } /** * Loading Loading @@ -279,6 +328,7 @@ module AtsNIT_SipSip_Steps { p_cSeq_s, p_profile ); f_SendINVITE(m_INVITE_Request_sdp( vc_requestUri, vc_callId, Loading Loading @@ -352,12 +402,40 @@ module AtsNIT_SipSip_Steps { in integer p_to_user, in SipUrl c_requestUri, in SipUrl p_refer_to_user, in SipUrl p_referred_by_user in SipUrl p_referred_by_user, in boolean flag ) runs on ImsComponent { var charstring v_callId; var charstring v_toTag; var charstring v_fromTag; if(flag) { v_callId := vc_callId.callid; v_toTag := f_getTag(vc_to.toParams, "to-tag"); v_fromTag := f_getTag(vc_from.fromParams, "from-tag"); // set Refer headers LibIms_Steps.f_setHeadersREFER(p_cSeq, p_to_user); // send Refer with the Replaces and Require headers f_SendREFER(m_REFER_Request_replaces( c_requestUri, vc_callId, vc_cSeq, vc_contact, vc_from, vc_to, vc_via, m_ReferTo_SipUrl(p_refer_to_user, "INVITE"), m_ReferredBy_SipUrl(p_referred_by_user), m_Replaces(v_callId, v_toTag, v_fromTag), m_Require_replaces )); } else { // set Refer headers LibIms_Steps.f_setHeadersREFER(p_cSeq, p_to_user); // send Refer // send Refer without the Replaces and Require headers f_SendREFER(m_REFER_Request_Base( c_requestUri, vc_callId, Loading @@ -369,6 +447,7 @@ module AtsNIT_SipSip_Steps { m_ReferTo_SipUrl(p_refer_to_user, "INVITE"), m_ReferredBy_SipUrl(p_referred_by_user) )); } // Receive a 202 f_awaitingResponse(mw_Response_Base( Loading Loading @@ -410,21 +489,13 @@ module AtsNIT_SipSip_Steps { tc_resp.start(PX_SIP_TRESP); alt { [] SIPP.receive(mw_REFER_Request_Base(vc_callId))-> value v_Refer sender vc_sent_label [] SIPP.receive(mw_REFER_Request(vc_callId, v_userA, v_userB))-> value v_Refer sender vc_sent_label { tc_resp.stop; f_setHeadersOnReceiptOfRequest(v_Refer); if (ispresent(v_Refer.msgHeader.referTo) and ispresent(v_Refer.requestLine.requestUri) and ispresent(v_Refer.msgHeader.referredBy)) { if ((v_Refer.requestLine.requestUri != v_userA) or (v_Refer.msgHeader.referredBy.nameAddr.addrSpec != v_userB)) { setverdict(fail); } if (ispresent(v_Refer.msgHeader.referTo)) { v_ECTSessId := v_Refer.msgHeader.referTo.nameAddr.addrSpec; } else { setverdict(fail); } } } Loading
AtsNIT_SipSip/ttcn/AtsNIT_SipSip_Testcases.ttcn +117 −0 Original line number Diff line number Diff line Loading @@ -2267,6 +2267,123 @@ group TP2_1_SS_OIP_OIR { }//end group TP2_10_SS_CD group TP2_11_SS_ECT { /* * @desc TC_SS___XXSS_ECT_01 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_01 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT01UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT01UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT01UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_01 /* * @desc TC_SS___XXSS_ECT_02 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_02 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT02UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT02UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT02UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_02 /* * @desc TC_SS___XXSS_ECT_03 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_03 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT03UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT03UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT03UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_03 /* * @desc TC_SS___XXSS_ECT_04 * @param p_CSeq_s Transaction Id */ testcase TC_SS___XXSS_ECT_04 ( inout CSeq p_CSeq_s ) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent1; var ImsComponent v_imsComponent2; var ImsComponent v_imsComponent3; //Configuration f_cf_3imsUp(v_imsComponent1, v_imsComponent2, v_imsComponent3); f_IncCSeq(p_CSeq_s); //Start v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSECT04UE1(p_CSeq_s)); v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSECT04UE2(p_CSeq_s)); v_imsComponent3.start(f_AtsNIT_TC_SS___XXSSECT04UE3(p_CSeq_s)); // synchronize all PTCs on all sychronization points f_serverSync3ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); //Clear configration f_cf_3imsDown(v_imsComponent1, v_imsComponent2, v_imsComponent3); } // end TC_SS___XXSS_ECT_04 }//end group TP2_11_SS_ECT }//end group TP_2_SupplementaryServices Loading