Loading BC/ttcn/AtsIms_Gm_TCFunctions.ttcn +118 −100 Original line number 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) 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, p_cSeq_s); // assignment of PIXIT values to component variable 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, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // LibSip f_awaitingResponse(mw_Response_Base(c_statusLine401, *, p_cSeq_s)); f_awaitingResponse(mw_Response_Algorithm(c_statusLine401, *, p_cSeq_s, ?/*v_credentialsList*/ )); 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) runs on ImsComponent { f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, f_IMS_preamble_woRegistration(c_userProfile_UE1atSUTvisiting, p_cSeq_s); // assignment of PIXIT // values to component // variable Loading Loading @@ -598,21 +606,25 @@ module AtsIms_Gm_TCFunctions { // preamble // done // TESTBODY f_setHeaders_REGISTER(p_cSeq_s); v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // set expires header v_register.msgHeader.expires := { fieldName := EXPIRES_E, deltaSec := "0" }; // send REGISTER f_SendREGISTER(v_register); // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_RemoveRegistration(p_cSeq_s); // f_setHeaders_REGISTER(p_cSeq_s); // v_register := // valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, // p_cSeq_s, vc_from, vc_to, // vc_via_REG, vc_contact, // vc_authorization)); // // set expires header // v_register.msgHeader.expires := { // fieldName := EXPIRES_E, deltaSec := "0" // }; // // send REGISTER // f_SendREGISTER(v_register); // // await response - 200 ... // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -655,8 +667,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, Loading Loading @@ -1558,8 +1569,6 @@ module AtsIms_Gm_TCFunctions { vc_caller_To, v_notMatchingVia, vc_contact)); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -2392,8 +2401,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send BYE UE2 // @SUT LibIms_Steps .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); Loading Loading @@ -2496,8 +2504,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, Loading @@ -2516,8 +2523,7 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE2 // @SUT LibIms_Steps .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, v_notMatchingRoute)); Loading Loading @@ -2717,8 +2723,8 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // @SUT LibIms_Steps .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, v_notMatchingRoute)); Loading Loading @@ -2979,7 +2985,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response 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 // point Loading Loading @@ -3144,8 +3150,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, Loading Loading @@ -3347,7 +3352,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response 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 // point Loading Loading @@ -3390,8 +3395,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, Loading Loading @@ -3470,10 +3474,14 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response LibSip_Steps.f_setHeadersBYE(vc_cSeq); // 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)); } tc_resp.start(PX_SIP_TRESP); f_awaitingResponse(mw_Response_PchargingVecFctadrId(c_statusLine200, vc_callId, vc_cSeq, omit, omit, *)); f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -3757,10 +3765,15 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // @SUT LibSip_Steps .f_setHeadersBYE(p_cSeq_s); LibSip_Steps.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, vc_callee_From, vc_callee_To, vc_via, vc_route)); } // await response - 200 vc_boo_response := false; f_awaitingResponsePassOnTimeout(mw_Response_Base((c_statusLine200) Loading Loading @@ -3914,7 +3927,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response 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 // point Loading Loading @@ -4479,7 +4492,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // SendBYE and await response 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 f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -4802,7 +4815,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // SendBYE and await response 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 f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -5114,7 +5127,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // SendBYE and await response 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 f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -6275,7 +6288,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, Loading Loading @@ -6440,7 +6453,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); 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, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // ReINVITE ... // prepare and send RE-INVITE UE2 // @SUT // TODO Check function to set headers for reinvite on // originating side LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, m_MBody_SDP(vc_sdp_local))); // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); // f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // // // ReINVITE ... // // prepare and send RE-INVITE UE2 // // @SUT // // TODO Check function to set headers for reinvite on // // originating side // LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); // f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, // p_cSeq_s, vc_from, vc_to, // vc_via, vc_contact, omit, // vc_route, omit, // m_MBody_SDP(vc_sdp_local))); // // // await response - 200 ... // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // vc_cSeq)); // // send ACK // LibSip_Steps.f_setHeadersACK(); // f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, // vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -6587,21 +6600,7 @@ module AtsIms_Gm_TCFunctions { // Awaiting INVITE 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 .... 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")), vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, Loading @@ -6622,11 +6622,29 @@ module AtsIms_Gm_TCFunctions { )))); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // // Awaiting RE-INVITE // 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 // await BYE (503 or 488 ...) and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP Loading Loading
BC/ttcn/AtsIms_Gm_TCFunctions.ttcn +118 −100 Original line number 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) 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, p_cSeq_s); // assignment of PIXIT values to component variable 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, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // LibSip f_awaitingResponse(mw_Response_Base(c_statusLine401, *, p_cSeq_s)); f_awaitingResponse(mw_Response_Algorithm(c_statusLine401, *, p_cSeq_s, ?/*v_credentialsList*/ )); 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) runs on ImsComponent { f_IMS_preamble_woRegistration(c_userProfile_UE1atSUThome, f_IMS_preamble_woRegistration(c_userProfile_UE1atSUTvisiting, p_cSeq_s); // assignment of PIXIT // values to component // variable Loading Loading @@ -598,21 +606,25 @@ module AtsIms_Gm_TCFunctions { // preamble // done // TESTBODY f_setHeaders_REGISTER(p_cSeq_s); v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization)); // set expires header v_register.msgHeader.expires := { fieldName := EXPIRES_E, deltaSec := "0" }; // send REGISTER f_SendREGISTER(v_register); // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_RemoveRegistration(p_cSeq_s); // f_setHeaders_REGISTER(p_cSeq_s); // v_register := // valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, // p_cSeq_s, vc_from, vc_to, // vc_via_REG, vc_contact, // vc_authorization)); // // set expires header // v_register.msgHeader.expires := { // fieldName := EXPIRES_E, deltaSec := "0" // }; // // send REGISTER // f_SendREGISTER(v_register); // // await response - 200 ... // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -655,8 +667,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, Loading Loading @@ -1558,8 +1569,6 @@ module AtsIms_Gm_TCFunctions { vc_caller_To, v_notMatchingVia, vc_contact)); // await ACK f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -2392,8 +2401,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send BYE UE2 // @SUT LibIms_Steps .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); Loading Loading @@ -2496,8 +2504,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, Loading @@ -2516,8 +2523,7 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE2 // @SUT LibIms_Steps .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, v_notMatchingRoute)); Loading Loading @@ -2717,8 +2723,8 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // @SUT LibIms_Steps .f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); LibIms_Steps.f_setHeadersBYE(p_cSeq_s, c_userProfile_UE1atSUThome); f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_callee_From, vc_callee_To, vc_via, v_notMatchingRoute)); Loading Loading @@ -2979,7 +2985,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response 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 // point Loading Loading @@ -3144,8 +3150,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, Loading Loading @@ -3347,7 +3352,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response 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 // point Loading Loading @@ -3390,8 +3395,7 @@ module AtsIms_Gm_TCFunctions { // TESTBODY // prepare and send INVITE UE2 // @SUT LibIms_Steps .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, Loading Loading @@ -3470,10 +3474,14 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response LibSip_Steps.f_setHeadersBYE(vc_cSeq); // 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)); } tc_resp.start(PX_SIP_TRESP); f_awaitingResponse(mw_Response_PchargingVecFctadrId(c_statusLine200, vc_callId, vc_cSeq, omit, omit, *)); f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -3757,10 +3765,15 @@ module AtsIms_Gm_TCFunctions { // prepare and send BYE UE1 // @SUT LibSip_Steps .f_setHeadersBYE(p_cSeq_s); LibSip_Steps.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, vc_callee_From, vc_callee_To, vc_via, vc_route)); } // await response - 200 vc_boo_response := false; f_awaitingResponsePassOnTimeout(mw_Response_Base((c_statusLine200) Loading Loading @@ -3914,7 +3927,7 @@ module AtsIms_Gm_TCFunctions { // SendBYE and await response 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 // point Loading Loading @@ -4479,7 +4492,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // SendBYE and await response 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 f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -4802,7 +4815,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // SendBYE and await response 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 f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -5114,7 +5127,7 @@ module AtsIms_Gm_TCFunctions { // POSTAMBLE // SendBYE and await response 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 f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -6275,7 +6288,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, Loading Loading @@ -6440,7 +6453,7 @@ module AtsIms_Gm_TCFunctions { vc_sdp_local := valueof(m_SDP_unacceptable(valueof(m_media_dynPT ("0", "PCMU/8000")), ("0", "PCMU/8000",{"unacceptable", omit})), vc_userprofile)); 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, vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // ReINVITE ... // prepare and send RE-INVITE UE2 // @SUT // TODO Check function to set headers for reinvite on // originating side LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, m_MBody_SDP(vc_sdp_local))); // await response - 200 ... f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); // send ACK LibSip_Steps.f_setHeadersACK(); f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route)); // f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // // // ReINVITE ... // // prepare and send RE-INVITE UE2 // // @SUT // // TODO Check function to set headers for reinvite on // // originating side // LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true, c_userProfile_UE2atSUThome); // f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId, // p_cSeq_s, vc_from, vc_to, // vc_via, vc_contact, omit, // vc_route, omit, // m_MBody_SDP(vc_sdp_local))); // // // await response - 200 ... // f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, // vc_cSeq)); // // send ACK // LibSip_Steps.f_setHeadersACK(); // f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, // vc_from, vc_to, vc_via, vc_route)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point Loading Loading @@ -6587,21 +6600,7 @@ module AtsIms_Gm_TCFunctions { // Awaiting INVITE 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 .... 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")), vc_userprofile)); f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200, vc_callId, vc_cSeq, vc_caller_From, Loading @@ -6622,11 +6622,29 @@ module AtsIms_Gm_TCFunctions { )))); f_awaitingACK(mw_ACK_Request_Base(vc_callId)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // point // test // body // done f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync point 1 // // Awaiting RE-INVITE // 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 // await BYE (503 or 488 ...) and send 200OK f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP Loading