Commit b1898e4a authored by Iztok Juvancic's avatar Iztok Juvancic
Browse files

added tc function TC ISC_SCCAS_SRA_BYE_03

parent 07fdb6b6
Loading
Loading
Loading
Loading
+59 −1
Original line number Diff line number Diff line
@@ -3346,7 +3346,7 @@ module AtsSccas_TCFunctions {
				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,
@@ -3377,6 +3377,64 @@ module AtsSccas_TCFunctions {
             */
            function f_TC_ISC_SCCAS_SRA_BYE_03(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(16)
												));
				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_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_03