Loading BC/ttcn/AtsIms_Gm_TCFunctions.ttcn +118 −100 Original line number Original line Diff line number Diff line Loading @@ -177,18 +177,26 @@ module AtsIms_Gm_TCFunctions { */ */ function f_TC_IMST2_GM_REG_02_UE1(in CSeq p_cSeq_s) function f_TC_IMST2_GM_REG_02_UE1(in CSeq p_cSeq_s) runs on ImsComponent { runs on ImsComponent { /* FIXME Check with Bostjan codec issues or TTWB issue? const GenericParam c_aka := {"algorithm","AKAv1-MD5"}; var template CommaParam_List v_commaParam_List := superset(c_aka); var template Credentials v_credentials := {digestResponse:= v_commaParam_List}; var template CredentialsList v_credentialsList := { v_credentials }; */ f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable p_cSeq_s); // assignment of PIXIT values to component variable f_setHeaders_REGISTER(p_cSeq_s); f_setHeaders_REGISTER(p_cSeq_s); vc_authorization.body := {f_calculatecCredentials_empty(vc_userprofile, true)}; // Override with PX_AUTH_ALGORITHM security algorithm f_SendREGISTER(m_REGISTER_Request_Base(vc_requestUri, f_SendREGISTER(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_callId, p_cSeq_s, vc_from, vc_to, vc_from, vc_to, vc_via_REG, vc_contact, vc_via_REG, vc_contact, vc_authorization)); // LibSip vc_authorization)); // LibSip f_awaitingResponse(mw_Response_Base(c_statusLine401, *, f_awaitingResponse(mw_Response_Algorithm(c_statusLine401, *, p_cSeq_s)); p_cSeq_s, ?/*v_credentialsList*/ )); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done Loading Loading @@ -474,7 +482,7 @@ module AtsIms_Gm_TCFunctions { function f_TC_IMST2_GM_REG_09_UE1(in CSeq p_cSeq_s) function f_TC_IMST2_GM_REG_09_UE1(in CSeq p_cSeq_s) runs on ImsComponent { runs on ImsComponent { f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, f_IMS_preamble_woRegistration(c_userProfile_UE1atSUTvisiting, p_cSeq_s); // assignment of PIXIT p_cSeq_s); // assignment of PIXIT // values to component // values to component // variable // variable Loading Loading @@ -598,21 +606,25 @@ module AtsIms_Gm_TCFunctions { // preamble // preamble // done // done // TESTBODY // TESTBODY f_setHeaders_REGISTER(p_cSeq_s); f_RemoveRegistration(p_cSeq_s); v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, // f_setHeaders_REGISTER(p_cSeq_s); p_cSeq_s, vc_from, vc_to, // v_register := vc_via_REG, vc_contact, // valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, vc_authorization)); // p_cSeq_s, vc_from, vc_to, // set expires header // vc_via_REG, vc_contact, v_register.msgHeader.expires := { // vc_authorization)); fieldName := EXPIRES_E, deltaSec := "0" // // set expires header }; // v_register.msgHeader.expires := { // send REGISTER // fieldName := EXPIRES_E, deltaSec := "0" f_SendREGISTER(v_register); // }; // await response - 200 ... // // send REGISTER f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // f_SendREGISTER(v_register); vc_cSeq)); // // await response - 200 ... // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -655,8 +667,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, Loading Loading @@ -1558,8 +1569,6 @@ module AtsIms_Gm_TCFunctions { vc_caller_To, vc_caller_To, v_notMatchingVia, v_notMatchingVia, vc_contact)); vc_contact)); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -2392,8 +2401,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send BYE UE2 // prepare and send BYE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); vc_from, vc_to, vc_via, vc_route)); Loading Loading @@ -2496,8 +2504,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_via, vc_contact, omit, Loading @@ -2516,8 +2523,7 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE2 // prepare and send BYE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_from, vc_to, vc_via, v_notMatchingRoute)); v_notMatchingRoute)); Loading Loading @@ -2717,8 +2723,8 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // prepare and send BYE UE1 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, vc_callee_From, vc_callee_To, vc_via, v_notMatchingRoute)); v_notMatchingRoute)); Loading Loading @@ -2979,7 +2985,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -3144,8 +3150,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_via, vc_contact, omit, Loading Loading @@ -3347,7 +3352,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -3390,8 +3395,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_via, vc_contact, omit, Loading Loading @@ -3470,10 +3474,14 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response LibSip_Steps.f_setHeadersBYE(vc_cSeq); LibSip_Steps.f_setHeadersBYE(vc_cSeq); // Sending of a BYE request to release the call and expect a final response // Sending of a BYE request to release the call and expect a final response if(ispresent(f_recordroute())) { var Route v_route := { ROUTE_E, valueof(f_recordroute().routeBody)}; f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, v_route)); } else { f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_route)); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_route)); } tc_resp.start(PX_SIP_TRESP); tc_resp.start(PX_SIP_TRESP); f_awaitingResponse(mw_Response_PchargingVecFctadrId(c_statusLine200, vc_callId, f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,vc_cSeq)); vc_cSeq, omit, omit, *)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -3757,10 +3765,15 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // prepare and send BYE UE1 // @SUT // @SUT LibSip_Steps LibSip_Steps.f_setHeadersBYE(p_cSeq_s); .f_setHeadersBYE(p_cSeq_s); if (ispresent(f_recordroute())) { var Route v_route := { ROUTE_E, valueof(f_recordroute().routeBody)}; f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, v_route)); } else { f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, vc_route)); vc_callee_From, vc_callee_To, vc_via, vc_route)); } // await response - 200 // await response - 200 vc_boo_response := false; vc_boo_response := false; f_awaitingResponsePassOnTimeout(mw_Response_Base((c_statusLine200) f_awaitingResponsePassOnTimeout(mw_Response_Base((c_statusLine200) Loading Loading @@ -3914,7 +3927,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -4479,7 +4492,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // POSTAMBLE // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); // send REGISTER, await 401, send REGISTER, await 200 OK // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -4802,7 +4815,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // POSTAMBLE // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); // send REGISTER, await 401, send REGISTER, await 200 OK // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -5114,7 +5127,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // POSTAMBLE // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); // send REGISTER, await 401, send REGISTER, await 200 OK // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -6275,7 +6288,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_callId, vc_cSeq, Loading Loading @@ -6440,7 +6453,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, Loading Loading @@ -6515,27 +6528,27 @@ module AtsIms_Gm_TCFunctions { f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // // ReINVITE ... // // ReINVITE ... // prepare and send RE-INVITE UE2 // // prepare and send RE-INVITE UE2 // @SUT // // @SUT // TODO Check function to set headers for reinvite on // // TODO Check function to set headers for reinvite on // originating side // // originating side LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); // LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, // f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, // p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, // vc_via, vc_contact, omit, vc_route, omit, // vc_route, omit, m_MBody_SDP(vc_sdp_local))); // m_MBody_SDP(vc_sdp_local))); // // await response - 200 ... // // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); // vc_cSeq)); // send ACK // // send ACK LibSip_Steps.f_setHeadersACK(); // LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, // f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); // vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -6587,21 +6600,7 @@ module AtsIms_Gm_TCFunctions { // Awaiting INVITE // Awaiting INVITE f_awaitingINVITE(mw_INVITE_Request_Base); f_awaitingINVITE(mw_INVITE_Request_Base); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_recordroute(), valueof(m_MBody_SDP( vc_sdp_local )))); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // Awaiting RE-INVITE f_awaitingINVITE(mw_INVITE_Request_NoPCharging); /*TODO need to define MIME type application/pkcs7-mime .... /*TODO need to define MIME type application/pkcs7-mime .... need to change header fields of message need to change header fields of message Loading @@ -6612,6 +6611,7 @@ module AtsIms_Gm_TCFunctions { valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), vc_userprofile)); vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_callId, vc_cSeq, vc_caller_From, vc_caller_From, Loading @@ -6622,11 +6622,29 @@ module AtsIms_Gm_TCFunctions { )))); )))); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // test // body // // Awaiting RE-INVITE // done // f_awaitingINVITE(mw_INVITE_Request_NoPCharging); // // // // f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, // vc_callId, vc_cSeq, // vc_caller_From, // vc_caller_To, vc_via, // vc_contact, f_recordroute(), // valueof(m_MBody_SDP( // vc_sdp_local // )))); // // f_awaitingACK(mw_ACK_Request_Base(vc_callId)); // f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // // point // // test // // body // // done // POSTAMBLE // POSTAMBLE // await BYE (503 or 488 ...) and send 200OK // await BYE (503 or 488 ...) and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP Loading Loading
BC/ttcn/AtsIms_Gm_TCFunctions.ttcn +118 −100 Original line number Original line Diff line number Diff line Loading @@ -177,18 +177,26 @@ module AtsIms_Gm_TCFunctions { */ */ function f_TC_IMST2_GM_REG_02_UE1(in CSeq p_cSeq_s) function f_TC_IMST2_GM_REG_02_UE1(in CSeq p_cSeq_s) runs on ImsComponent { runs on ImsComponent { /* FIXME Check with Bostjan codec issues or TTWB issue? const GenericParam c_aka := {"algorithm","AKAv1-MD5"}; var template CommaParam_List v_commaParam_List := superset(c_aka); var template Credentials v_credentials := {digestResponse:= v_commaParam_List}; var template CredentialsList v_credentialsList := { v_credentials }; */ f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable p_cSeq_s); // assignment of PIXIT values to component variable f_setHeaders_REGISTER(p_cSeq_s); f_setHeaders_REGISTER(p_cSeq_s); vc_authorization.body := {f_calculatecCredentials_empty(vc_userprofile, true)}; // Override with PX_AUTH_ALGORITHM security algorithm f_SendREGISTER(m_REGISTER_Request_Base(vc_requestUri, f_SendREGISTER(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_callId, p_cSeq_s, vc_from, vc_to, vc_from, vc_to, vc_via_REG, vc_contact, vc_via_REG, vc_contact, vc_authorization)); // LibSip vc_authorization)); // LibSip f_awaitingResponse(mw_Response_Base(c_statusLine401, *, f_awaitingResponse(mw_Response_Algorithm(c_statusLine401, *, p_cSeq_s)); p_cSeq_s, ?/*v_credentialsList*/ )); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done Loading Loading @@ -474,7 +482,7 @@ module AtsIms_Gm_TCFunctions { function f_TC_IMST2_GM_REG_09_UE1(in CSeq p_cSeq_s) function f_TC_IMST2_GM_REG_09_UE1(in CSeq p_cSeq_s) runs on ImsComponent { runs on ImsComponent { f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, f_IMS_preamble_woRegistration(c_userProfile_UE1atSUTvisiting, p_cSeq_s); // assignment of PIXIT p_cSeq_s); // assignment of PIXIT // values to component // values to component // variable // variable Loading Loading @@ -598,21 +606,25 @@ module AtsIms_Gm_TCFunctions { // preamble // preamble // done // done // TESTBODY // TESTBODY f_setHeaders_REGISTER(p_cSeq_s); f_RemoveRegistration(p_cSeq_s); v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, // f_setHeaders_REGISTER(p_cSeq_s); p_cSeq_s, vc_from, vc_to, // v_register := vc_via_REG, vc_contact, // valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, vc_authorization)); // p_cSeq_s, vc_from, vc_to, // set expires header // vc_via_REG, vc_contact, v_register.msgHeader.expires := { // vc_authorization)); fieldName := EXPIRES_E, deltaSec := "0" // // set expires header }; // v_register.msgHeader.expires := { // send REGISTER // fieldName := EXPIRES_E, deltaSec := "0" f_SendREGISTER(v_register); // }; // await response - 200 ... // // send REGISTER f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // f_SendREGISTER(v_register); vc_cSeq)); // // await response - 200 ... // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -655,8 +667,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, Loading Loading @@ -1558,8 +1569,6 @@ module AtsIms_Gm_TCFunctions { vc_caller_To, vc_caller_To, v_notMatchingVia, v_notMatchingVia, vc_contact)); vc_contact)); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -2392,8 +2401,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send BYE UE2 // prepare and send BYE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); vc_from, vc_to, vc_via, vc_route)); Loading Loading @@ -2496,8 +2504,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_via, vc_contact, omit, Loading @@ -2516,8 +2523,7 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE2 // prepare and send BYE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_from, vc_to, vc_via, v_notMatchingRoute)); v_notMatchingRoute)); Loading Loading @@ -2717,8 +2723,8 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // prepare and send BYE UE1 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, vc_callee_From, vc_callee_To, vc_via, v_notMatchingRoute)); v_notMatchingRoute)); Loading Loading @@ -2979,7 +2985,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -3144,8 +3150,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_via, vc_contact, omit, Loading Loading @@ -3347,7 +3352,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -3390,8 +3395,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // TESTBODY // prepare and send INVITE UE2 // prepare and send INVITE UE2 // @SUT // @SUT LibIms_Steps LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_via, vc_contact, omit, Loading Loading @@ -3470,10 +3474,14 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response LibSip_Steps.f_setHeadersBYE(vc_cSeq); LibSip_Steps.f_setHeadersBYE(vc_cSeq); // Sending of a BYE request to release the call and expect a final response // Sending of a BYE request to release the call and expect a final response if(ispresent(f_recordroute())) { var Route v_route := { ROUTE_E, valueof(f_recordroute().routeBody)}; f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, v_route)); } else { f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_route)); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_route)); } tc_resp.start(PX_SIP_TRESP); tc_resp.start(PX_SIP_TRESP); f_awaitingResponse(mw_Response_PchargingVecFctadrId(c_statusLine200, vc_callId, f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,vc_cSeq)); vc_cSeq, omit, omit, *)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -3757,10 +3765,15 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // prepare and send BYE UE1 // @SUT // @SUT LibSip_Steps LibSip_Steps.f_setHeadersBYE(p_cSeq_s); .f_setHeadersBYE(p_cSeq_s); if (ispresent(f_recordroute())) { var Route v_route := { ROUTE_E, valueof(f_recordroute().routeBody)}; f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, v_route)); } else { f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, vc_route)); vc_callee_From, vc_callee_To, vc_via, vc_route)); } // await response - 200 // await response - 200 vc_boo_response := false; vc_boo_response := false; f_awaitingResponsePassOnTimeout(mw_Response_Base((c_statusLine200) f_awaitingResponsePassOnTimeout(mw_Response_Base((c_statusLine200) Loading Loading @@ -3914,7 +3927,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -4479,7 +4492,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // POSTAMBLE // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); // send REGISTER, await 401, send REGISTER, await 200 OK // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -4802,7 +4815,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // POSTAMBLE // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); // send REGISTER, await 401, send REGISTER, await 200 OK // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -5114,7 +5127,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // POSTAMBLE // SendBYE and await response // SendBYE and await response f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To); vc_callee_From, vc_callee_To, f_recordroute()); // send REGISTER, await 401, send REGISTER, await 200 OK // send REGISTER, await 401, send REGISTER, await 200 OK f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -6275,7 +6288,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_callId, vc_cSeq, Loading Loading @@ -6440,7 +6453,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, Loading Loading @@ -6515,27 +6528,27 @@ module AtsIms_Gm_TCFunctions { f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // // ReINVITE ... // // ReINVITE ... // prepare and send RE-INVITE UE2 // // prepare and send RE-INVITE UE2 // @SUT // // @SUT // TODO Check function to set headers for reinvite on // // TODO Check function to set headers for reinvite on // originating side // // originating side LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); // LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, // f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, // p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, // vc_via, vc_contact, omit, vc_route, omit, // vc_route, omit, m_MBody_SDP(vc_sdp_local))); // m_MBody_SDP(vc_sdp_local))); // // await response - 200 ... // // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); // vc_cSeq)); // send ACK // // send ACK LibSip_Steps.f_setHeadersACK(); // LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, // f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); // vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // point Loading Loading @@ -6587,21 +6600,7 @@ module AtsIms_Gm_TCFunctions { // Awaiting INVITE // Awaiting INVITE f_awaitingINVITE(mw_INVITE_Request_Base); f_awaitingINVITE(mw_INVITE_Request_Base); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_contact, f_recordroute(), valueof(m_MBody_SDP( vc_sdp_local )))); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // Awaiting RE-INVITE f_awaitingINVITE(mw_INVITE_Request_NoPCharging); /*TODO need to define MIME type application/pkcs7-mime .... /*TODO need to define MIME type application/pkcs7-mime .... need to change header fields of message need to change header fields of message Loading @@ -6612,6 +6611,7 @@ module AtsIms_Gm_TCFunctions { valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), vc_userprofile)); vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_callId, vc_cSeq, vc_caller_From, vc_caller_From, Loading @@ -6622,11 +6622,29 @@ module AtsIms_Gm_TCFunctions { )))); )))); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // test // body // // Awaiting RE-INVITE // done // f_awaitingINVITE(mw_INVITE_Request_NoPCharging); // // // // f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, // vc_callId, vc_cSeq, // vc_caller_From, // vc_caller_To, vc_via, // vc_contact, f_recordroute(), // valueof(m_MBody_SDP( // vc_sdp_local // )))); // // f_awaitingACK(mw_ACK_Request_Base(vc_callId)); // f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // // point // // test // // body // // done // POSTAMBLE // POSTAMBLE // await BYE (503 or 488 ...) and send 200OK // await BYE (503 or 488 ...) and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP Loading