Loading ttcn/AtsSccas/AtsSccas_Steps.ttcn +28 −0 Original line number Diff line number Diff line Loading @@ -515,6 +515,29 @@ module AtsSccas_Steps { LibSip_Steps.f_setHeadersINVITE(p_cSeq_s); } // end f_setHeadersINVITE_AS /** * @desc Sets BYE header fields (IMS addresses) extension of general settings from LibSip basic function * @param p_cSeq_s The current cSeq * @param p_to_user The selected user's SIP URL */ function f_setHeaders_BYE_AS( inout CSeq p_cSeq_s, in SipUrl p_to_user, in SipUrl p_from_user ) runs on ImsComponent { vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier vc_from := f_initFromHeader(p_from_user, f_getRndTag()); // init of vc_from using userProfile identifier vc_requestUri := p_to_user; // Request URI of Invite is identical with To header if (vc_boo_route) { vc_route := m_route_interface(vc_interfaceprofile); } if (vc_boo_recordRoute) { vc_recordRoute := m_recordRoute_currIpAddr(vc_userprofile); } LibSip_Steps.f_setHeadersBYE(p_cSeq_s); } // end f_setHeadersBYE_AS /** * @desc setting of general and basic OPTIONS header fields in additon to the addresses (To, From, ReqUri) * @param p_cSeq_s Loading Loading @@ -680,6 +703,11 @@ module AtsSccas_Steps { var CSeq v_cSeq_s := p_cSeq_s; } //end function f_ReleaseDialogAS function f_PS2CSTransfer(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_cSeq_s := p_cSeq_s; } //end function f_PS2CSTransfer /** * @desc function send OPTIONS message Loading ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +97 −3 Original line number Diff line number Diff line Loading @@ -3256,12 +3256,48 @@ module AtsSccas_TCFunctions { f_EstablishDialogAS(v_cSeq_s); //Send BYE with reason 503 f_IncCSeq(v_cSeq_s); f_setHeaders_BYE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); //?? send INVITE f_SendBYE( m_sccas_bye_reason( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, -, m_Reason(503) )); //?? do not receive BYE tc_ack.start; alt { [] SIPP.receive(mw_BYE_Request_Base(vc_callId)) { log("*** " & __SCOPE__ & ": FAIL: BYE message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } [] SIPP.receive(mw_INVITE_Request_AS(?, ?, ?, ?, *, *)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: INVITE message was received ***"); f_sendResponse( m_Response_2xx_Base( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG )); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } f_ReleaseDialogAS(v_cSeq_s); f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync Loading @@ -3274,6 +3310,64 @@ module AtsSccas_TCFunctions { */ function f_TC_ISC_SCCAS_SRA_BYE_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; f_registrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_EstablishDialogAS(v_cSeq_s); f_PS2CSTransfer(v_cSeq_s); //Send BYE with reason 503 f_IncCSeq(v_cSeq_s); f_setHeaders_BYE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_SendBYE(m_sccas_bye_targetDialog( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, -,-,-,-, m_Reason(503) )); tc_ack.start; alt { [] SIPP.receive(mw_Response_2xx_Base(vc_callId, vc_cSeq)) { log("*** " & __SCOPE__ & ": PASS: 200 Ok message was received ***") } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } tc_ack.start; alt { [] SIPP.receive(mw_BYE_Request_Base(vc_callId)) { log("*** " & __SCOPE__ & ": PASS: BYE message was received ***"); //f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync f_sendResponse( m_Response_2xx_Base( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG )); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } f_ReleaseDialogAS(v_cSeq_s); f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_SRA_BYE_02 Loading ttcn/AtsSccas/AtsSccas_Templates.ttcn +36 −1 Original line number Diff line number Diff line Loading @@ -539,6 +539,41 @@ module AtsSccas_Templates }, messageBody := p_mb } template (omit) BYE_Request m_sccas_bye_reason( template(value) SipUrl p_requestUri, template(value) CallId p_callId, template(value) CSeq p_cSeq, template(value) From p_from, template(value) To p_to, template(value) Via p_via, template(omit) Route p_route := omit, in template (value) Reason p_reason := m_Reason(503) ) modifies m_BYE_Request_UE := { msgHeader := { reason := p_reason } } template (omit) BYE_Request m_sccas_bye_targetDialog( in template (value) SipUrl p_requestUri, in template (value) CallId p_callId, in template (value) CSeq p_cSeq, in template (value) From p_from, in template (value) To p_to, in template (value) LibSip_SIPTypesAndValues.Via p_via, in template (omit) Route p_route := omit, in template (omit) Require p_require := m_require({"tdialog"}), in template (value) TargetDialog p_targetDialog := m_targetDialog("CallidString"), in template (omit) PAssertedID p_pAssertedID := omit,//m_PAssertedID(m_AddrUnion_NameAddr(m_NameAddr(,))), in template (value) Reason p_reason := m_Reason(503) ) modifies m_BYE_Request_UE := { msgHeader := { require := p_require, targetDialog := p_targetDialog, pAssertedID := p_pAssertedID, reason := p_reason } } group response_sent{ template(value) Response m_Response_18XonINVITE_AS_Featurecaps( Loading Loading
ttcn/AtsSccas/AtsSccas_Steps.ttcn +28 −0 Original line number Diff line number Diff line Loading @@ -515,6 +515,29 @@ module AtsSccas_Steps { LibSip_Steps.f_setHeadersINVITE(p_cSeq_s); } // end f_setHeadersINVITE_AS /** * @desc Sets BYE header fields (IMS addresses) extension of general settings from LibSip basic function * @param p_cSeq_s The current cSeq * @param p_to_user The selected user's SIP URL */ function f_setHeaders_BYE_AS( inout CSeq p_cSeq_s, in SipUrl p_to_user, in SipUrl p_from_user ) runs on ImsComponent { vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier vc_from := f_initFromHeader(p_from_user, f_getRndTag()); // init of vc_from using userProfile identifier vc_requestUri := p_to_user; // Request URI of Invite is identical with To header if (vc_boo_route) { vc_route := m_route_interface(vc_interfaceprofile); } if (vc_boo_recordRoute) { vc_recordRoute := m_recordRoute_currIpAddr(vc_userprofile); } LibSip_Steps.f_setHeadersBYE(p_cSeq_s); } // end f_setHeadersBYE_AS /** * @desc setting of general and basic OPTIONS header fields in additon to the addresses (To, From, ReqUri) * @param p_cSeq_s Loading Loading @@ -680,6 +703,11 @@ module AtsSccas_Steps { var CSeq v_cSeq_s := p_cSeq_s; } //end function f_ReleaseDialogAS function f_PS2CSTransfer(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_cSeq_s := p_cSeq_s; } //end function f_PS2CSTransfer /** * @desc function send OPTIONS message Loading
ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +97 −3 Original line number Diff line number Diff line Loading @@ -3256,12 +3256,48 @@ module AtsSccas_TCFunctions { f_EstablishDialogAS(v_cSeq_s); //Send BYE with reason 503 f_IncCSeq(v_cSeq_s); f_setHeaders_BYE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); //?? send INVITE f_SendBYE( m_sccas_bye_reason( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, -, m_Reason(503) )); //?? do not receive BYE tc_ack.start; alt { [] SIPP.receive(mw_BYE_Request_Base(vc_callId)) { log("*** " & __SCOPE__ & ": FAIL: BYE message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } [] SIPP.receive(mw_INVITE_Request_AS(?, ?, ?, ?, *, *)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: INVITE message was received ***"); f_sendResponse( m_Response_2xx_Base( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG )); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } f_ReleaseDialogAS(v_cSeq_s); f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync Loading @@ -3274,6 +3310,64 @@ module AtsSccas_TCFunctions { */ function f_TC_ISC_SCCAS_SRA_BYE_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; f_registrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_EstablishDialogAS(v_cSeq_s); f_PS2CSTransfer(v_cSeq_s); //Send BYE with reason 503 f_IncCSeq(v_cSeq_s); f_setHeaders_BYE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_SendBYE(m_sccas_bye_targetDialog( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, -,-,-,-, m_Reason(503) )); tc_ack.start; alt { [] SIPP.receive(mw_Response_2xx_Base(vc_callId, vc_cSeq)) { log("*** " & __SCOPE__ & ": PASS: 200 Ok message was received ***") } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } tc_ack.start; alt { [] SIPP.receive(mw_BYE_Request_Base(vc_callId)) { log("*** " & __SCOPE__ & ": PASS: BYE message was received ***"); //f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync f_sendResponse( m_Response_2xx_Base( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG )); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } f_ReleaseDialogAS(v_cSeq_s); f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_SRA_BYE_02 Loading
ttcn/AtsSccas/AtsSccas_Templates.ttcn +36 −1 Original line number Diff line number Diff line Loading @@ -539,6 +539,41 @@ module AtsSccas_Templates }, messageBody := p_mb } template (omit) BYE_Request m_sccas_bye_reason( template(value) SipUrl p_requestUri, template(value) CallId p_callId, template(value) CSeq p_cSeq, template(value) From p_from, template(value) To p_to, template(value) Via p_via, template(omit) Route p_route := omit, in template (value) Reason p_reason := m_Reason(503) ) modifies m_BYE_Request_UE := { msgHeader := { reason := p_reason } } template (omit) BYE_Request m_sccas_bye_targetDialog( in template (value) SipUrl p_requestUri, in template (value) CallId p_callId, in template (value) CSeq p_cSeq, in template (value) From p_from, in template (value) To p_to, in template (value) LibSip_SIPTypesAndValues.Via p_via, in template (omit) Route p_route := omit, in template (omit) Require p_require := m_require({"tdialog"}), in template (value) TargetDialog p_targetDialog := m_targetDialog("CallidString"), in template (omit) PAssertedID p_pAssertedID := omit,//m_PAssertedID(m_AddrUnion_NameAddr(m_NameAddr(,))), in template (value) Reason p_reason := m_Reason(503) ) modifies m_BYE_Request_UE := { msgHeader := { require := p_require, targetDialog := p_targetDialog, pAssertedID := p_pAssertedID, reason := p_reason } } group response_sent{ template(value) Response m_Response_18XonINVITE_AS_Featurecaps( Loading