diff --git a/AtsCommon/SipIsup_PICS.ttcn b/AtsCommon/SipIsup_PICS.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..019d9c4adbdd0f97f61d411421cb660e2c2b5372 --- /dev/null +++ b/AtsCommon/SipIsup_PICS.ttcn @@ -0,0 +1,987 @@ +/* + * @author STF 366 + * @version $Id$ + * @desc This module contains the module parameters given in + * "SIP-ISUP Interworking between the IP Multimedia (IM) Core Network (CN) subsystem and Circuit Switched (CS) networks; PICS" + * ETSI ES 186 009-1 V0.0.3 + */ + +module SipIsup_PICS { +group PICS_Module_Parameters +{ + modulepar { +// Roles Table 1 + /* @desc Does the SUT implement Profile A? + ** @remark PICS Reference: Table 1, Item 1 + */ + boolean PC_IMPL_PROF_A; + + /* @desc Does the SUT implement Profile B? + ** @remark PICS Reference: Table 1, Item 2 + */ + boolean PC_IMPL_PROF_B; + + /* @desc Is the SUT connected to a BICC Network? + ** @remark PICS Reference: Table 1, Item 4 + */ + boolean PC_CONN_BICC; + + /* @desc Is the SUT connected to an ISUP Network? + ** @remark PICS Reference: Table 1, Item 5 + */ + boolean PC_CONN_ISUP; + + /* @desc Is the SUT connected with a �-law network? + ** @remark PICS Reference: Table 1, Item 6 + */ + boolean PC_CONN_MULAW; + + /* @desc Is the SUT connected with an outgoing international exchange? + ** @remark PICS Reference: Table 1, Item 7 + */ + boolean PC_CONN_OUT_INTERNAT; + + /* @desc Is the SUT connected with an incoming international exchange? + ** @remark PICS Reference: Table 1, Item 8 + */ + boolean PC_CONN_INC_INTERNAT; + + /* @desc Is the SUT an implementation according ETSI EN 383 001? + ** @remark PICS Reference: Table 1, Item 9 + */ + boolean PC_IMPL_383_001; + +// ForwardAddressSignalling Table 3 + /* @desc Does the SIP implementation use the en bloc operation in the forward address signalling (sending)? + ** @remark PICS Reference: Table 3, Item 1 + */ + boolean PC_USE_SIP_TX_ENBLOCK; + + /* @desc Does the SIP implementation use the overlap operation in the forward address signalling (sending)? + ** @remark PICS Reference: Table 3, Item 2 + */ + boolean PC_USE_SIP_TX_OVERLAP; + + /* @desc Does the SIP implementation support the overlap operation in the forward address signalling (receiving)? + ** @remark PICS Reference: Table 3, Item 4 + */ + boolean PC_SUPP_SIP_RX_OVERLAP; + + /* @desc Does the ISUP implementation support the overlap operation in the forward address signalling (receiving)? + ** @remark PICS Reference: Table 3, Item 8 + */ + boolean PC_SUPP_ISUP_RX_OVERLAP; + + +// RoleIndependentCapabilities Table 4 + /* @desc Does the SUT use the Continuity check procedures during call setup? + ** @remark PICS Reference: Table 4, Item 1 + */ + boolean PC_USE_CONT_CHK; + + /* @desc Does the SUT support the Continuity check procedures during call setup? + ** @remark PICS Reference: Table 4, Item 2 + */ + boolean PC_SUPP_CONT_CHK; + + /* @desc Does the SUT support internal resource reservations (preconditons used)? + ** @remark PICS Reference: Table 4, Item 4 + */ + boolean PC_SUPP_INT_RESOURCE; + + /* @desc Is the SUT able to support the reliability of provisional responses? + ** @remark PICS Reference: Table 4, Item 5 + */ + boolean PC_SUPP_RELY_PROV; + + /* @desc Does the SUT perform the automatic repeat attempt? + ** @remark PICS Reference: Table 4, Item 6 + */ + boolean PC_PERF_AUT_REPEAT; + + /* @desc Does the SUT send an ACM message after determination of end of address signalling? + ** @remark PICS Reference: Table 4, Item 9 + */ + boolean PC_SEND_ACM_EOA; + + /* @desc Does the SUT map the REL cause value into the reason header field of a SIP message (BYE, CANCEL or SIP final response)? + ** @remark PICS Reference: Table 4, Item 10 + */ + boolean PC_MAP_REL_CAUSE; + + /* @desc Does the SUT map a received reason header field included in a SIP message (BYE, CANCEL or SIP final response) to the ISUP cause value in the sent REL? + ** @remark PICS Reference: Table 4, Item 11 + */ + boolean PC_MAP_REASON_REL; + + /* @desc Does the SUT interwork the SIP Failure response to ISUP? + ** @remark PICS Reference: Table 4, Item 12 + */ + boolean PC_INTERW_SIP_FAIL; + + /* @desc Does the SUT derive the Display-name in the "From header field" from the "additional calling party number" or "calling party number"? + ** @remark PICS Reference: Table 4, Item 13 + */ + boolean PC_DERIV_DISPL_FROM; + + /* @desc Does the SUT control the exchange for the Suspend procedure? + ** @remark PICS Reference: Table 4, Item 14 + */ + boolean PC_CTRL_SUSP; + + /* @desc Does the SUT use internal resource reservations (preconditons used)? + ** @remark PICS Reference: Table 4, Item 15 + */ + boolean PC_USE_INT_RESOURCE; + + /* @desc Does the SUT satisfy the call using a new address provided in a Contact header field received in a 3xx response? + ** @remark PICS Reference: Table 4, Item 17 + */ + boolean PC_USE_NEW_ADDR_CONTACT; + + /* @desc Does the SUT refuse an offer with a 415 Unsupported media type response if more than one media typs are received in a SDP? + ** @remark PICS Reference: Table 4, Item 19 + */ + boolean PC_REFUSE_415_OFFER; + + /* @desc Does the SUT derive the Display-name in the "P-Asserted-Identity header field" from the "calling party number" or "additional calling party number"? + ** @remark PICS Reference: Table 4, Item 20 + */ + boolean PC_DERIV_DISP_P_ASS; + + /* @desc Does the SUT redirect to a new destination according the BICC/ISUP requirements if a REL is received with cause 23? + ** @remark PICS Reference: Table 4, Item 21 + */ + boolean PC_REDIR_CAUSE_23; + + /* @desc What is the value of PICS item 23 in table 4? + ** @remark PICS Reference: Table 4, Item 23 + */ + boolean PC_TABLE4_23; + + /* @desc What is the value of PICS item 23 in table 4? + ** @remark PICS Reference: Table 4, Item 24 + */ + boolean PC_TABLE4_24; + +// SupplementaryServiceMajorCapabilities Table 5 + /* @desc Does the SUT support the service Call Hold (HOLD)? + ** @remark PICS Reference: Table 5, Item 5 + */ + boolean PC_SUPP_HOLD; + + /* @desc Does the SUT support the service Terminal Portability (TP)? + ** @remark PICS Reference: Table 5, Item 6 + */ + boolean PC_SUPP_TP; + + /* @desc Does the SUT support the service Conference Call, add-on (CONF)? + ** @remark PICS Reference: Table 5, Item 10 + */ + boolean PC_SUPP_CONF; + + /* @desc Does the SUT support the Three-Party (3PTY) service? + ** @remark PICS Reference: Table 5, Item 18 + */ + boolean PC_SUPP_3PTY; + +// CLI Table 6 + /* @desc Does the SUT include a network provided E.164 calling party number if the P-Asserted -Identity header field has not been received or not in the format "+"CC+NDC+SN; address signal: network provided? + ** @remark PICS Reference: Table 6, Item 1 + */ + boolean PC_INCL_E164_P_ASS_NTWK; + + /* @desc Does the SUT include an addtional calling party number if a From header field has been received in the format "+"CC+NDC+SN; address signal: derived from the From header field? + ** @remark PICS Reference: Table 6, Item 3 + */ + boolean PC_INCL_ADD_CLD_FROM; + + /* @desc Does the SUT send a Calling Party Number with an Number Presentation restriction Indicator set to "presentation allowed" if no P-Asserted -Identity header field has not been received or not in the format "+"CC+NDC+SN? + ** @remark PICS Reference: Table 6, Item 9 + */ + boolean PC_SEND_CLI_ALLOWED_NO_P; + + /* @desc Does the SUT send a Calling Party Number with an Number Presentation restriction Indicator set to "address not available" if no P-Asserted -Identity header field has not been received or not in the format "+"CC+NDC+SN? + ** @remark PICS Reference: Table 6, Item 11 + */ + boolean PC_SEND_CLI_NOT_AVAIL_NO_P; + + /* @desc Does the SUT send a Calling Party Number with an Number Presentation restriction Indicator set to "resentation restricted by the network" if no P-Asserted -Identity header field has not been received or not in the format "+"CC+NDC+SN? + ** @remark PICS Reference: Table 6, Item 12 + */ + boolean PC_SEND_CLI_RESTR_NTWK_NO_P; + +// HOLD Table 8 + /* @desc Does the SUT support that a party can put the other party on hold after alerting has commenced? + ** @remark PICS Reference: Table 8, Item 1 + */ + boolean PC_SUPP_HOLD_AFTER_ALERT; + + /* @desc Does the SUT support that a party can put the other party on hold after the calling user has provided all of the information necessary for processing the call? + ** @remark PICS Reference: Table 8, Item 2 + */ + boolean PC_SUPP_HOLD_NEC_INFO; + +// MCID Table 9 + /* @desc Does the SUT return an IRS with bit A of the MCID response indicator set to 0 "MCID not included", if the network does not support the MCID service? + ** @remark PICS Reference: Table 9, Item 1 + */ + boolean PC_RET_IRS_MCID_NOT; + +// UUS Table 11 + /* @desc Does the SUT understand an explicit user-to-user request? + ** @remark PICS Reference: Table 11, Item 1 + */ + boolean PC_IMPL_EXPL_USER_USER; + + /* @desc Does the SUT support the rejection procedure of an explicit service request or discarding of user-to-user information as described in 1.1.5.x.5.2/Q.737? + ** @remark PICS Reference: Table 11, Item 2 + */ + boolean PC_SUPP_REJ_UUI_Q737; + + /* @desc Does the SUT reject a user-to-user request service 3 not essential after call set-up using the FRJ message? + ** @remark PICS Reference: Table 11, Item 3 + */ + boolean PC_REJ_UUS3ESSENTIAL_FRJ; + +// ECT Table 12 + /* @desc Does the SUT return a LOP (response) message with the indication "insufficient information"? + ** @remark PICS Reference: Table 12, Item 1 + */ + boolean PC_RET_LOP_INSUFF; + } +} // endgroup PICS_Module_Parameters + + +group testCaseSelectionFunctions +{ + /* dummy selection function always returning 'true' */ + function f_selection_true() return boolean + { + return true + }// end function f_selection_true() + + /* Mnemonic selection reference: ( ( not PICS 4/5 ) ) and ( PICS 1/6 ) */ + function f_selection_001() return boolean + { + return((not PC_SUPP_RELY_PROV) and PC_CONN_MULAW) + }// end function f_selection_001() + + /* Mnemonic selection reference: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + function f_selection_002() return boolean + { + return((not PC_USE_INT_RESOURCE) and PC_CONN_BICC) + }// end function f_selection_002() + + /* Mnemonic selection reference: ( ( not PICS 4/15 ) ) and ( PICS 1/5 ) */ + function f_selection_003() return boolean + { + return((not PC_USE_INT_RESOURCE) and PC_CONN_ISUP) + }// end function f_selection_003() + + /* Mnemonic selection reference: ( ( not PICS 4/5 ) ) and ( PICS 1/6 ) */ + function f_selection_004() return boolean + { + return((not PC_SUPP_INT_RESOURCE) and PC_CONN_MULAW) + }// end function f_selection_004() + + /* Mnemonic selection reference: ( PICS 1/2 ) and ( PICS 1/9 ) and ( PICS 4/23 ) */ + function f_selection_005() return boolean + { + return(PC_IMPL_PROF_B and PC_IMPL_383_001 and PC_TABLE4_23) + }// end function f_selection_005() + + /* Mnemonic selection reference: not PICS 5/18 */ + function f_selection_006() return boolean + { + return(not PC_SUPP_3PTY) + }// end function f_selection_006() + + /* Mnemonic selection reference: ( not PICS 1/9 ) */ + function f_selection_007() return boolean + { + return(not PC_IMPL_383_001) + }// end function f_selection_007() + + /* Mnemonic selection reference: ( not PICS 11/2 ) */ + function f_selection_008() return boolean + { + return(not PC_SUPP_REJ_UUI_Q737) + }// end function f_selection_008() + + /* Mnemonic selection reference: ( not PICS 3/4 ) */ + function f_selection_009() return boolean + { + return(not PC_SUPP_SIP_RX_OVERLAP) + }// end function f_selection_009() + + /* Mnemonic selection reference: ( not PICS 4/10 ) */ + function f_selection_010() return boolean + { + return(not PC_MAP_REL_CAUSE) + }// end function f_selection_010() + + /* Mnemonic selection reference: ( not PICS 4/15 ) and PICS 4/21 */ + function f_selection_011() return boolean + { + return((not PC_MAP_REL_CAUSE) and PC_REDIR_CAUSE_23) + }// end function f_selection_011() + + /* Mnemonic selection reference: ( not PICS 4/12 ) */ + function f_selection_012() return boolean + { + return(not PC_MAP_REASON_REL) + }// end function f_selection_012() + + /* Mnemonic selection reference: ( not PICS 4/12 ) */ + function f_selection_013() return boolean + { + return(not PC_INTERW_SIP_FAIL) + }// end function f_selection_013() + + /* Mnemonic selection reference: ( not PICS 4/13 ) */ + function f_selection_014() return boolean + { + return(not PC_DERIV_DISPL_FROM) + }// end function f_selection_014() + + /* Mnemonic selection reference: ( not PICS 4/13 ) and ( not PICS 4/20 ) */ + function f_selection_015() return boolean + { + return((not PC_DERIV_DISPL_FROM) and (not PC_DERIV_DISP_P_ASS)) + }// end function f_selection_015() + + /* Mnemonic selection reference: ( not PICS 4/13 ) and PICS 4/20 */ + function f_selection_016() return boolean + { + return((not PC_DERIV_DISPL_FROM) and PC_DERIV_DISP_P_ASS) + }// end function f_selection_016() + + /* Mnemonic selection reference: ( not PICS 4/150 ) */ + function f_selection_017() return boolean + { + return(not PC_USE_INT_RESOURCE) + }// end function f_selection_017() + + /* Mnemonic selection reference: ( not PICS 4/17 ) */ + function f_selection_018() return boolean + { + return(not PC_USE_NEW_ADDR_CONTACT) + }// end function f_selection_018() + + /* Mnemonic selection reference: ( not PICS 4/5 ) */ + function f_selection_019() return boolean + { + return(not PC_SUPP_RELY_PROV) + }// end function f_selection_019() + + /* Mnemonic selection reference: ( not PICS 9/1 ) */ + function f_selection_020() return boolean + { + return(not PC_RET_IRS_MCID_NOT) + }// end function f_selection_020() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( ( not PICS 4/9 ) ) */ + function f_selection_021() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and (not PC_TABLE4_24) and (not PC_SEND_ACM_EOA)) + }// end function f_selection_021() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( PICS 4/9 ) */ + function f_selection_022() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and (not PC_TABLE4_24) and PC_SEND_ACM_EOA) + }// end function f_selection_022() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + function f_selection_023() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and (not PC_USE_INT_RESOURCE) and (not PC_TABLE4_24) and (not PC_SEND_ACM_EOA)) + }// end function f_selection_023() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + function f_selection_024() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and (not PC_USE_INT_RESOURCE) and (not PC_TABLE4_24) and PC_SEND_ACM_EOA) + }// end function f_selection_024() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 ) */ + function f_selection_025() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and (not PC_TABLE4_24)) + }// end function f_selection_025() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + function f_selection_026() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and (not PC_TABLE4_24) and (not PC_SEND_ACM_EOA)) + }// end function f_selection_026() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + function f_selection_027() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and (not PC_TABLE4_24) and (not PC_SEND_ACM_EOA)) + }// end function f_selection_027() + + /* Mnemonic selection reference: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + function f_selection_028() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and (not PC_TABLE4_24) and PC_SEND_ACM_EOA) + }// end function f_selection_028() + + /* Mnemonic selection reference: ( PICS 1/2 ) and ( ( not PICS 1/9 ) ) */ + function f_selection_029() return boolean + { + return(PC_IMPL_PROF_B and (not PC_IMPL_383_001)) + }// end function f_selection_029() + + /* Mnemonic selection reference: ( PICS 1/2 ) and ( PICS 1/9 ) and ( ( not PICS 4/23 ) ) */ + function f_selection_030() return boolean + { + return(PC_IMPL_PROF_B and PC_IMPL_383_001 and (not PC_TABLE4_23)) + }// end function f_selection_030() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 1/9 and PICS 3/1 ) and ( PICS 4/9 ) */ + function f_selection_031() return boolean + { + return(PC_IMPL_PROF_B and PC_IMPL_383_001 and PC_USE_SIP_TX_ENBLOCK and PC_SEND_ACM_EOA) + }// end function f_selection_031() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + function f_selection_032() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and (not PC_SEND_ACM_EOA)) + }// end function f_selection_032() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 ) and ( PICS 4/9 ) */ + function f_selection_033() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and PC_SEND_ACM_EOA) + }// end function f_selection_033() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and ( not PICS 1/9 ) ) and ( PICS 4/9 ) */ + function f_selection_034() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and (not PC_IMPL_383_001) and PC_SEND_ACM_EOA) + }// end function f_selection_034() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + function f_selection_035() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and (not PC_USE_INT_RESOURCE) and PC_SUPP_CONT_CHK and (not PC_SEND_ACM_EOA)) + }// end function f_selection_035() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + function f_selection_036() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and (not PC_USE_INT_RESOURCE) and PC_SUPP_CONT_CHK and PC_SEND_ACM_EOA) + }// end function f_selection_036() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 ) */ + function f_selection_037() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_SUPP_CONT_CHK) + }// end function f_selection_037() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + function f_selection_038() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_SUPP_CONT_CHK and (not PC_SEND_ACM_EOA)) + }// end function f_selection_038() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + function f_selection_039() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_SUPP_CONT_CHK and (not PC_SEND_ACM_EOA)) + }// end function f_selection_039() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + function f_selection_040() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and (not PC_TABLE4_24) and PC_SUPP_CONT_CHK and PC_SEND_ACM_EOA) + }// end function f_selection_040() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 3/8) ) and ( PICS 4/2 ) */ + function f_selection_041() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_OVERLAP and (not PC_USE_INT_RESOURCE) and PC_SUPP_ISUP_RX_OVERLAP and PC_SUPP_CONT_CHK) + }// end function f_selection_041() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 ) */ + function f_selection_042() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_OVERLAP and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_SUPP_CONT_CHK) + }// end function f_selection_042() + + /* Mnemonic selection reference: ( PICS 1/9 ) and ( ( not PICS 1/7 ) ) */ + function f_selection_043() return boolean + { + return(PC_IMPL_383_001 and (not PC_CONN_OUT_INTERNAT)) + }// end function f_selection_043() + + /* Mnemonic selection reference: ( PICS 1/9 ) and ( ( not PICS 1/8 ) ) */ + function f_selection_044() return boolean + { + return(PC_IMPL_383_001 and (not PC_CONN_INC_INTERNAT)) + }// end function f_selection_044() + + /* Mnemonic selection reference: ( PICS 1/9 ) and ( PICS 1/7 ) */ + function f_selection_045() return boolean + { + return(PC_IMPL_383_001 and PC_CONN_OUT_INTERNAT) + }// end function f_selection_045() + + /* Mnemonic selection reference: ( PICS 1/9 ) and ( PICS 1/8 ) */ + function f_selection_046() return boolean + { + return(PC_IMPL_383_001 and PC_CONN_INC_INTERNAT) + }// end function f_selection_046() + + /* Mnemonic selection reference: ( PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + function f_selection_047() return boolean + { + return(PC_USE_SIP_TX_ENBLOCK and (not PC_SEND_ACM_EOA)) + }// end function f_selection_047() + + /* Mnemonic selection reference: ( PICS 3/2 ) and ( PICS 3/8 ) */ + function f_selection_048() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and PC_SUPP_ISUP_RX_OVERLAP) + }// end function f_selection_048() + + /* Mnemonic selection reference: ( PICS 3/2 ) and ( PICS 1/4 ) */ + function f_selection_049() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and PC_CONN_BICC) + }// end function f_selection_049() + + /* Mnemonic selection reference: ( PICS 3/2 ) and ( PICS 1/5 ) */ + function f_selection_050() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and PC_CONN_ISUP) + }// end function f_selection_050() + + /* Mnemonic selection reference: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/4 and PICS 4/2 ) */ + function f_selection_051() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and (not PC_USE_INT_RESOURCE) and PC_CONN_BICC and PC_SUPP_CONT_CHK) + }// end function f_selection_051() + + /* Mnemonic selection reference: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/4 and PICS 4/2 ) ) */ + function f_selection_052() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and (not PC_USE_INT_RESOURCE) and PC_CONN_BICC and PC_SUPP_CONT_CHK) + }// end function f_selection_052() + + /* Mnemonic selection reference: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/5 and PICS 4/2 ) */ + function f_selection_053() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and (not PC_USE_INT_RESOURCE) and PC_CONN_ISUP and PC_SUPP_CONT_CHK) + }// end function f_selection_053() + + /* Mnemonic selection reference: ( PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + function f_selection_054() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_CONN_BICC and PC_SUPP_CONT_CHK) + }// end function f_selection_054() + + /* Mnemonic selection reference: ( PICS 3/2 and PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2 ) */ + function f_selection_055() return boolean + { + return(PC_USE_SIP_TX_OVERLAP and PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_CONN_ISUP and PC_SUPP_CONT_CHK) + }// end function f_selection_055() + + /* Mnemonic selection reference: ( PICS 3/4 ) and ( PICS 3/8 ) */ + function f_selection_056() return boolean + { + return(PC_SUPP_SIP_RX_OVERLAP and PC_SUPP_ISUP_RX_OVERLAP) + }// end function f_selection_056() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( ( not PICS 1/6 ) and ( not PICS 4/1 ) ) */ + function f_selection_057() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and (not PC_CONN_MULAW) and (not PC_USE_CONT_CHK)) + }// end function f_selection_057() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( ( not PICS 1/6 ) and PICS 4/1 ) */ + function f_selection_058() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and (not PC_CONN_MULAW) and PC_USE_CONT_CHK) + }// end function f_selection_058() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and ( not PICS 1/6 ) and PICS 4/1 ) */ + function f_selection_059() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_BICC and (not PC_CONN_MULAW) and PC_USE_CONT_CHK) + }// end function f_selection_059() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 1/6 and PICS 4/1 ) */ + function f_selection_060() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_BICC and PC_CONN_MULAW and PC_USE_CONT_CHK) + }// end function f_selection_060() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 4/1 ) */ + function f_selection_061() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_BICC and PC_USE_CONT_CHK) + }// end function f_selection_061() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 4/1 ) */ + function f_selection_062() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_ISUP and (not PC_CONN_MULAW) and PC_USE_CONT_CHK) + }// end function f_selection_062() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/5 and PICS 1/6 and PICS 4/1 ) */ + function f_selection_063() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_ISUP and PC_CONN_MULAW and PC_USE_CONT_CHK) + }// end function f_selection_063() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/5 and PICS 4/1 ) */ + function f_selection_064() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_ISUP and PC_USE_CONT_CHK) + }// end function f_selection_064() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/6 and ( not PICS 4/1 ) ) */ + function f_selection_065() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_MULAW and (not PC_USE_CONT_CHK)) + }// end function f_selection_065() + + /* Mnemonic selection reference: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/6 and PICS 4/1 ) */ + function f_selection_066() return boolean + { + return(PC_SUPP_INT_RESOURCE and PC_SUPP_RELY_PROV and PC_CONN_MULAW and PC_USE_CONT_CHK) + }// end function f_selection_066() + + /* Mnemonic selection reference: ( PICS 4/5 ) and ( PICS 1/6 ) */ + function f_selection_067() return boolean + { + return(PC_SUPP_RELY_PROV and PC_CONN_MULAW) + }// end function f_selection_067() + + /* Mnemonic selection reference: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + function f_selection_068() return boolean + { + return(PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_CONN_BICC and PC_SUPP_CONT_CHK) + }// end function f_selection_068() + + /* Mnemonic selection reference: ( PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + function f_selection_069() return boolean + { + return(PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_CONN_ISUP and PC_SUPP_CONT_CHK) + }// end function f_selection_069() + + /* Mnemonic selection reference: ( PICS 5/6 ) and ( PICS 4/14 ) */ + function f_selection_070() return boolean + { + return(PC_SUPP_TP and PC_CTRL_SUSP) + }// end function f_selection_070() + + /* Mnemonic selection reference: ( PICS 8/1 ) and ( PICS 5/10 ) */ + function f_selection_071() return boolean + { + return(PC_SUPP_HOLD_AFTER_ALERT and PC_SUPP_CONF) + }// end function f_selection_071() + + /* Mnemonic selection reference: ( PICS 8/2 ) and ( PICS 5/10 ) */ + function f_selection_072() return boolean + { + return(PC_SUPP_HOLD_NEC_INFO and PC_SUPP_CONF) + }// end function f_selection_072() + + /* Mnemonic selection reference: not PICS 11/2 */ + function f_selection_073() return boolean + { + return(not PC_SUPP_REJ_UUI_Q737) + }// end function f_selection_073() + + /* Mnemonic selection reference: NOT PICS 12/1 */ + function f_selection_074() return boolean + { + return(not PC_RET_LOP_INSUFF) + }// end function f_selection_074() + + /* Mnemonic selection reference: not PICS 5/10 */ + function f_selection_075() return boolean + { + return(not PC_SUPP_CONF) + }// end function f_selection_075() + + /* Mnemonic selection reference: ( PICS 1/1 ) and ( ( not PICS 4/24 ) ) */ + function f_selection_076() return boolean + { + return(PC_IMPL_PROF_A and (not PC_TABLE4_24)) + }// end function f_selection_076() + + /* Mnemonic selection reference: PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) */ + function f_selection_077() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and (not PC_TABLE4_24)) + }// end function f_selection_077() + + /* Mnemonic selection reference: PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) */ + function f_selection_078() return boolean + { + return(PC_IMPL_PROF_A and PC_USE_SIP_TX_ENBLOCK and (not PC_USE_INT_RESOURCE) and (not PC_TABLE4_24)) + }// end function f_selection_078() + + /* Mnemonic selection reference: PICS 1/2 */ + function f_selection_079() return boolean + { + return(PC_IMPL_PROF_B) + }// end function f_selection_079() + + /* Mnemonic selection reference: PICS 1/2 and PICS 3/1 */ + function f_selection_080() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK) + }// end function f_selection_080() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 ) */ + function f_selection_081() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and (not PC_USE_INT_RESOURCE) and PC_SUPP_CONT_CHK) + }// end function f_selection_081() + + /* Mnemonic selection reference: PICS 1/2 and PICS 3/2 */ + function f_selection_082() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_OVERLAP) + }// end function f_selection_082() + + /* Mnemonic selection reference: PICS 1/9 */ + function f_selection_083() return boolean + { + return(PC_IMPL_383_001) + }// end function f_selection_083() + + /* Mnemonic selection reference: PICS 1/9 and ( not PICS 4/19 ) */ + function f_selection_084() return boolean + { + return(PC_IMPL_383_001 and (not PC_REFUSE_415_OFFER)) + }// end function f_selection_084() + + /* Mnemonic selection reference: PICS 1/9 and PICS 4/19 */ + function f_selection_085() return boolean + { + return(PC_IMPL_383_001 and PC_REFUSE_415_OFFER) + }// end function f_selection_085() + + /* Mnemonic selection reference: PICS 1/9 and PICS 6/1 and PICS 6/12 */ + function f_selection_086() return boolean + { + return(PC_IMPL_383_001 and PC_INCL_E164_P_ASS_NTWK and PC_SEND_CLI_RESTR_NTWK_NO_P) + }// end function f_selection_086() + + /* Mnemonic selection reference: PICS 1/9 and PICS 6/1 and PICS 6/3 and PICS 6/12 */ + function f_selection_087() return boolean + { + return(PC_IMPL_383_001 and PC_INCL_E164_P_ASS_NTWK and PC_INCL_ADD_CLD_FROM and PC_SEND_CLI_RESTR_NTWK_NO_P) + }// end function f_selection_087() + + /* Mnemonic selection reference: PICS 1/9 and PICS 6/12 */ + function f_selection_088() return boolean + { + return(PC_IMPL_383_001 and PC_SEND_CLI_RESTR_NTWK_NO_P) + }// end function f_selection_088() + + /* Mnemonic selection reference: PICS 11/1 and PICS 11/2 */ + function f_selection_089() return boolean + { + return(PC_IMPL_EXPL_USER_USER and PC_SUPP_REJ_UUI_Q737) + }// end function f_selection_089() + + /* Mnemonic selection reference: PICS 12/1 */ + function f_selection_090() return boolean + { + return(PC_RET_LOP_INSUFF) + }// end function f_selection_090() + + /* Mnemonic selection reference: PICS 3/1 */ + function f_selection_091() return boolean + { + return(PC_USE_SIP_TX_ENBLOCK) + }// end function f_selection_091() + + /* Mnemonic selection reference: PICS 3/2 */ + function f_selection_092() return boolean + { + return(PC_USE_SIP_TX_OVERLAP) + }// end function f_selection_092() + + /* Mnemonic selection reference: PICS 3/4 */ + function f_selection_093() return boolean + { + return(PC_SUPP_SIP_RX_OVERLAP) + }// end function f_selection_093() + + /* Mnemonic selection reference: PICS 4/10 */ + function f_selection_094() return boolean + { + return(PC_MAP_REL_CAUSE) + }// end function f_selection_094() + + /* Mnemonic selection reference: PICS 4/11 */ + function f_selection_095() return boolean + { + return(PC_MAP_REASON_REL) + }// end function f_selection_095() + + /* Mnemonic selection reference: PICS 4/12 */ + function f_selection_096() return boolean + { + return(PC_INTERW_SIP_FAIL) + }// end function f_selection_096() + + /* Mnemonic selection reference: PICS 4/13 */ + function f_selection_097() return boolean + { + return(PC_DERIV_DISPL_FROM) + }// end function f_selection_097() + + /* Mnemonic selection reference: PICS 4/13 and ( not PICS 4/20 ) */ + function f_selection_098() return boolean + { + return(PC_DERIV_DISPL_FROM and (not PC_DERIV_DISP_P_ASS)) + }// end function f_selection_098() + + /* Mnemonic selection reference: PICS 4/13 and PICS 4/20 */ + function f_selection_099() return boolean + { + return(PC_DERIV_DISPL_FROM and PC_DERIV_DISP_P_ASS) + }// end function f_selection_099() + + /* Mnemonic selection reference: PICS 4/14 */ + function f_selection_100() return boolean + { + return(PC_CTRL_SUSP) + }// end function f_selection_100() + + /* Mnemonic selection reference: PICS 4/17 */ + function f_selection_101() return boolean + { + return(PC_USE_NEW_ADDR_CONTACT) + }// end function f_selection_101() + + /* Mnemonic selection reference: PICS 4/5 and ( not PICS 4/4 ) */ + function f_selection_102() return boolean + { + return(PC_SUPP_INT_RESOURCE and (not PC_SUPP_RELY_PROV)) + }// end function f_selection_102() + + /* Mnemonic selection reference: PICS 4/5 */ + function f_selection_103() return boolean + { + return(PC_SUPP_RELY_PROV) + }// end function f_selection_103() + + /* Mnemonic selection reference: ( PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 )*/ + function f_selection_104() return boolean + { + return(PC_SUPP_RELY_PROV and PC_USE_INT_RESOURCE and PC_SUPP_CONT_CHK) + }// end function f_selection_104() + + /* Mnemonic selection reference: PICS 4/6 */ + function f_selection_105() return boolean + { + return(PC_PERF_AUT_REPEAT) + }// end function f_selection_105() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 1/9 and PICS 3/2 and PICS 4/24 ) and ( not PICS 4/9 ) */ + function f_selection_106() return boolean + { + return(PC_IMPL_PROF_B and PC_IMPL_383_001 and PC_USE_SIP_TX_ENBLOCK and PC_USE_SIP_TX_OVERLAP and PC_TABLE4_24 and (not PC_REFUSE_415_OFFER)) + }// end function f_selection_106() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 1/9 and PICS 3/1 and PICS 4/24 ) and ( not PICS 4/9 ) */ + function f_selection_107() return boolean + { + return(PC_IMPL_PROF_B and PC_IMPL_383_001 and PC_TABLE4_24 and (not PC_REFUSE_415_OFFER)) + }// end function f_selection_107() + + /* Mnemonic selection reference: ( PICS 1/2 and PICS 3/1 and PICS 4/24 ) and ( not PICS 4/9 ) */ + function f_selection_108() return boolean + { + return(PC_IMPL_PROF_B and PC_USE_SIP_TX_ENBLOCK and PC_TABLE4_24 and (not PC_REFUSE_415_OFFER)) + }// end function f_selection_108() + + /* Mnemonic selection reference: PICS 5/6 */ + function f_selection_109() return boolean + { + return(PC_SUPP_TP) + }// end function f_selection_109() + + /* Mnemonic selection reference: PICS 6/1 */ + function f_selection_110() return boolean + { + return(PC_INCL_E164_P_ASS_NTWK) + }// end function f_selection_110() + + /* Mnemonic selection reference: PICS 6/1 and PICS 6/11 */ + function f_selection_111() return boolean + { + return(PC_INCL_E164_P_ASS_NTWK and PC_SEND_CLI_NOT_AVAIL_NO_P) + }// end function f_selection_111() + + /* Mnemonic selection reference: PICS 6/1 and PICS 6/3 */ + function f_selection_112() return boolean + { + return(PC_INCL_E164_P_ASS_NTWK and PC_INCL_ADD_CLD_FROM) + }// end function f_selection_112() + + /* Mnemonic selection reference: PICS 6/1 and PICS 6/3 and PICS 6/9 */ + function f_selection_113() return boolean + { + return(PC_INCL_E164_P_ASS_NTWK and PC_INCL_ADD_CLD_FROM and PC_SEND_CLI_ALLOWED_NO_P) + }// end function f_selection_113() + + /* Mnemonic selection reference: PICS 6/1 and PICS 6/9 */ + function f_selection_114() return boolean + { + return(PC_INCL_E164_P_ASS_NTWK and PC_SEND_CLI_ALLOWED_NO_P) + }// end function f_selection_114() + + /* Mnemonic selection reference: PICS 6/3 */ + function f_selection_115() return boolean + { + return(PC_INCL_ADD_CLD_FROM) + }// end function f_selection_115() + + /* Mnemonic selection reference: ( not PICS 4/11 ) */ + function f_selection_116() return boolean + { + return(not PC_MAP_REASON_REL) + }// end function f_selection_116() + + /* Mnemonic selection reference: PICS 8/1 PICS 5/5 and PICS 5/18 */ + function f_selection_117() return boolean + { + return(PC_SUPP_HOLD_AFTER_ALERT and PC_SUPP_HOLD and PC_SUPP_3PTY) + }// end function f_selection_117() + + /* Mnemonic selection reference: PICS 8/2 and PICS 5/5 and PICS 5/18 */ + function f_selection_118() return boolean + { + return(PC_SUPP_HOLD_NEC_INFO and PC_SUPP_HOLD and PC_SUPP_3PTY) + }// end function f_selection_118() + + /* Mnemonic selection reference: ( ( not PICS 11/1 )or ( not PICS 11/3 ) ) */ + function f_selection_119() return boolean + { + return((not PC_REJ_UUS3ESSENTIAL_FRJ) or (not PC_IMPL_EXPL_USER_USER)) + }// end function f_selection_119() + + /* Mnemonic selection reference: PICS 9/1 */ + function f_selection_120() return boolean + { + return(PC_RET_IRS_MCID_NOT) + }// end function f_selection_120() + +} + + +}// end module SipIsup_PICS diff --git a/AtsCommon/SipIsup_PIXITS.ttcn b/AtsCommon/SipIsup_PIXITS.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..dec4cc2ea0c620a6fb35cb894db26f208e0cf76f --- /dev/null +++ b/AtsCommon/SipIsup_PIXITS.ttcn @@ -0,0 +1,27 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module contains the PIXIT parameters + */ + +module SipIsup_PIXITS { + + import from SipIsup_TypesAndValues all; + + /* + ** @remark Reference: XXX + ** @desc What is the local receive poilcy for SIP? + * Value of PX_STATUS_LINE + * 1: receive no cause due to local policy, 2: receive cause #31 due to local policy + */ + modulepar {UInt2 PX_LOCAL_POLICY := 1; + integer PX_CSeq_Start := 1; + integer PX_Variant_i_Start := 1; + integer PX_Variant_j_Start := 1; + boolean PX_Variant_i_Inc := false; + boolean PX_Variant_j_Inc := false; + } + + + +}// end module SipIsup_PIXITS \ No newline at end of file diff --git a/AtsCommon/SipIsup_TestConfiguration.ttcn b/AtsCommon/SipIsup_TestConfiguration.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..80f365b72ae497f821a15d79e4ee2da76e1a7df1 --- /dev/null +++ b/AtsCommon/SipIsup_TestConfiguration.ttcn @@ -0,0 +1,115 @@ +/* + * @author STF 276 + * @version $Id$ + * @desc This module contains functions which implement the + * configuration of the SUT adapter and mapping of test + * components for establishing and tearing down different + * test configurations. + * + */ + module SipIsup_TestConfiguration { + + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //AtsSipIsup + import from SipIsup_TestSystem all; + import from SipIsup_SIP_TypesAndConf all; + //import from SipIsup_ISUP_Configuration all; + import from SipIsup_ISUP_ModuleParams all; + import from SipIsup_ISUP_ParamTypes all; + import from SipIsup_ISUP_MsgTypes all; + + + group auxSipFunction { + + /* + ** @desc f_IncCSeq returns an input parameter incremented by 1000 + ** reason is to run the next testcase with a higher CSeq value + */ + function f_IncCSeq(inout CSeq loc_CSeq) + runs on ServerSyncComp + { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; + return + }; + // end f_IncCSeq + + }//end group auxSipFunction + + group syncCommands { + const charstring c_syncSip_Isup := "syncSipIsup"; + }//end group syncCommands + + group cf00 { + + /* + ** @desc Creates configuration of CF0) + */ + function f_cf00Up( out SipComponent p_sipComponent, + out IsupBiccComponent p_isupBiccComponent) + runs on ServerSyncComp { + //Variables + var FncRetCode v_ret := e_success; + //Create + p_sipComponent := SipComponent.create ; + p_isupBiccComponent := IsupBiccComponent.create ; + //Connect + connect(p_sipComponent:syncPort, self:syncPort) ; + map(p_sipComponent:SIPP, system:UDP1); // Init test Configuration + if (PX_SIP_CheckConversation) + {map(p_sipComponent:opPort, system:opPortS);} // Init test Configuration + connect(p_isupBiccComponent:syncPort, self:syncPort) ; + //Map + if (PX_IsupBicc_CheckConversation or PX_IsupBicc_CheckRinging) + {map(p_isupBiccComponent:opPort_IsupBicc, system:opPortS_IsupBicc);} // Init test Configuration +// note-axr: workaround to avoid enumerated PIXIT parameter +// if (PX_ISUP_IsupOrBicc == selectIsup) { + if (PX_ISUP_Isup) { + map(p_isupBiccComponent:IsupBiccP, system:atm); + } + else { + map(p_isupBiccComponent:IsupBiccP, system:atm); + } + //map(p_sipComponent:SIPP, system:UDP1); + + f_setVerdict(v_ret); + }//end f_cf00Up + + }//end group cf00 + + group cfDown { + + /* + ** @desc Deletes configuration of CF03 + */ + function f_cfTwoPtcsDown( in SipComponent p_sipComponent, + in IsupBiccComponent p_isupBiccComponent) + runs on ServerSyncComp { + f_serverWaitForAllClientsToStop(); + //Variables + var FncRetCode v_ret := e_success; + //Disconnect + disconnect(p_sipComponent:syncPort, self:syncPort) ; + disconnect(p_isupBiccComponent:syncPort, self:syncPort) ; + //Unmap +// note-axr: workaround to avoid enumerated PIXIT parameter +// if (PX_ISUP_IsupOrBicc == selectIsup) { + if (PX_ISUP_Isup) { + unmap(p_isupBiccComponent:IsupBiccP, system:atm ); // IsupP + } + else { + unmap(p_isupBiccComponent:IsupBiccP, system:atm); // BiccP + } + unmap(p_sipComponent:SIPP, system:UDP1); + if (PX_SIP_CheckConversation) + {unmap(p_sipComponent:opPort, system:opPortS);} + if (PX_IsupBicc_CheckConversation or PX_IsupBicc_CheckRinging) + {unmap(p_isupBiccComponent:opPort_IsupBicc, system:opPortS_IsupBicc);} // Init test Configuration + + }//end f_cfTwoPtcsDown + + } //end group cfDown + + + +} // end module SipIsup_TestConfiguration \ No newline at end of file diff --git a/AtsCommon/SipIsup_TestExecution.ttcn b/AtsCommon/SipIsup_TestExecution.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..12495cad45443d6a5b39f01433e4b34ce3852238 --- /dev/null +++ b/AtsCommon/SipIsup_TestExecution.ttcn @@ -0,0 +1,1639 @@ +module SipIsup_TestExecution { + + //LobCommon + import from LibCommon_BasicTypesAndValues all; + //AtsCommon + import from SipIsup_PIXITS all; + import from SipIsup_Testcases all; + //SipAts + import from SipIsup_SIP_TypesAndConf all; + import from SipIsup_PICS all; + + control { + + //Variables + var UInt8 i, j := 0; + //var UInt8 j := 0; + var CSeq v_CSeq_s := { + fieldName := CSEQ_E, + seqNumber := 0, + method := "INVITE" + }; + + /* Mnemonic selection condition: PICS 4/5 and ( not PICS 4/4 ) */ + if (f_selection_102()) { + execute(TC_101_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and ( not PICS 1/6 ) and PICS 4/1 ) */ + if (f_selection_059()) { + execute(TC_101_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 4/1 ) */ + if (f_selection_062()) { + execute(TC_101_003(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( ( not PICS 1/6 ) and ( not PICS 4/1 ) ) */ + if (f_selection_057()) { + execute(TC_101_004(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 ) and ( PICS 1/6 ) */ + if (f_selection_067()) { + execute(TC_101_005(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 1/6 and PICS 4/1 ) */ + if (f_selection_060()) { + execute(TC_101_006(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/5 and PICS 1/6 and PICS 4/1 ) */ + if (f_selection_063()) { + execute(TC_101_007(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/6 and ( not PICS 4/1 ) ) */ + if (f_selection_065()) { + execute(TC_101_008(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/5 ) ) and ( PICS 1/6 ) */ + if (f_selection_004()) { + execute(TC_101_009(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and ( not PICS 1/6 ) and PICS 4/1 ) */ + if (f_selection_059()) { + execute(TC_101_010(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/5 and ( not PICS 1/6 ) and PICS 4/1 ) */ + if (f_selection_062()) { + execute(TC_101_011(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( ( not PICS 1/6 ) and PICS 4/1 ) */ + if (f_selection_058()) { + execute(TC_101_012(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/5 ) ) and ( PICS 1/6 ) */ + if (f_selection_001()) { + execute(TC_101_013(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 1/6 and PICS 4/1 ) */ + if (f_selection_060()) { + execute(TC_101_014(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/5 and PICS 1/6 and PICS 4/1 ) */ + if (f_selection_063()) { + execute(TC_101_015(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/6 and PICS 4/1 ) */ + if (f_selection_066()) { + execute(TC_101_016(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 ) and ( ( not PICS 1/9 ) ) */ + if (f_selection_029()) { + execute(TC_101_017(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 ) and ( PICS 1/9 ) and ( ( not PICS 4/23 ) ) */ + if (f_selection_030()) { + execute(TC_101_018(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 ) and ( ( not PICS 4/24 ) ) */ + if (f_selection_076()) { + execute(TC_101_019(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=8; i:=i+1) { + execute(TC_101_020(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=8; i:=i+1) { + execute(TC_101_021(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_101_022(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + execute(TC_101_023(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( ( not PICS 1/7 ) ) */ + if (f_selection_043()) { + execute(TC_101_024(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( PICS 1/7 ) */ + if (f_selection_045()) { + execute(TC_101_025(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 1/9 ) */ + if (f_selection_007()) { + execute(TC_101_026(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( PICS 1/7 ) */ + if (f_selection_045()) { + execute(TC_101_027(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( PICS 1/7 ) */ + if (f_selection_045()) { + execute(TC_101_028(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( PICS 1/7 ) */ + if (f_selection_045()) { + execute(TC_101_029(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/9 and PICS 4/19 */ + if (f_selection_085()) { + execute(TC_101_030(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/9 and ( not PICS 4/19 ) */ + if (f_selection_084()) { + execute(TC_101_031(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 ) and ( PICS 1/9 ) and ( PICS 4/23 ) */ + if (f_selection_005()) { + execute(TC_101_032(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/4 ) and ( PICS 3/8 ) */ + if (f_selection_056()) { + execute(TC_102_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/4 ) and ( PICS 3/8 ) */ + if (f_selection_056()) { + execute(TC_102_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/4 and PICS 4/1 ) */ + if (f_selection_061()) { + execute(TC_103_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/4 and PICS 4/5 ) and ( PICS 1/5 and PICS 4/1 ) */ + if (f_selection_064()) { + execute(TC_103_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_104_001(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_104_002(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + execute(TC_105_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_105_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_105_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_106_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/5 */ + if (f_selection_103()) { + execute(TC_106_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/5 ) */ + if (f_selection_019()) { + execute(TC_106_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_107_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/5 */ + if (f_selection_103()) { + execute(TC_107_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/5 ) */ + if (f_selection_019()) { + execute(TC_107_003(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=38; i:=i+1) { + execute(TC_108_001(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=11; i:=i+1) { + execute(TC_108_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_108_003(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_108_004(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_108_005(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_108_006(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=38; i:=i+1) { + execute(TC_108_007(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=11; i:=i+1) { + execute(TC_108_008(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=11; i:=i+1) { + execute(TC_108_009(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=11; i:=i+1) { + execute(TC_108_010(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_108_011(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_108_012(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/15 ) and PICS 4/21 */ + if (f_selection_011()) { + execute(TC_108_013(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/6 */ + if (f_selection_105()) { + execute(TC_108_101(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + execute(TC_108_102(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_010()) { + execute(TC_108_103(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 3/4 */ + if (f_selection_093()) { + execute(TC_108_104(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 3/4 */ + if (f_selection_093()) { + execute(TC_108_105(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_108_106(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_108_107(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_108_108(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_108_109(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_108_110(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_108_111(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/12 ) */ + if (f_selection_012()) { + execute(TC_109_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/12 ) */ + if (f_selection_012()) { + execute(TC_109_002(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/12 */ + if (f_selection_095()) { + execute(TC_109_003(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/12 */ + if (f_selection_095()) { + execute(TC_109_004(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_004(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_005(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_006(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_007(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_008(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_009(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_010(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_110_011(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_111_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/14 */ + if (f_selection_100()) { + execute(TC_111_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_112_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_301_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_301_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_301_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_301_004(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/5 ) */ + if (f_selection_003()) { + execute(TC_301_005(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/5 ) */ + if (f_selection_003()) { + execute(TC_301_006(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/5 ) */ + if (f_selection_003()) { + execute(TC_301_007(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/150 ) */ + if (f_selection_017()) { + execute(TC_301_008(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/5 ) */ + if (f_selection_003()) { + execute(TC_301_009(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_012(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_013(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_014(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_015(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_301_016(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_018(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_019(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_301_020(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_027(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_301_028(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + execute(TC_301_031(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_301_032(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + if (f_selection_002()) { + execute(TC_301_037(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + if (f_selection_002()) { + execute(TC_301_038(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + if (f_selection_002()) { + execute(TC_301_039(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + if (f_selection_002()) { + execute(TC_301_040(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + if (f_selection_002()) { + execute(TC_301_041(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_068()) { + execute(TC_301_042(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_068()) { + execute(TC_301_043(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 4/15 ) ) and ( PICS 1/4 ) */ + if (f_selection_002()) { + execute(TC_301_044(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/7 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_068()) { + execute(TC_301_045(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/7 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_068()) { + execute(TC_301_046(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2) */ + if (f_selection_069()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_301_048(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_069()) { + execute(TC_301_049(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_069()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_301_051(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=9; i:=i+1) { + execute(TC_301_053(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=13; i:=i+1) { + execute(TC_301_054(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 1/1 */ + if (f_selection_076()) { + for (i:=1; i<=13; i:=i+1) { + execute(TC_301_055(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 1/9 ) */ + if (f_selection_true()) { + execute(TC_301_056(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 1/9 ) */ + if (f_selection_true()) { + execute(TC_301_057(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 1/9 ) */ + if (f_selection_true()) { + execute(TC_301_058(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 1/9 ) */ + if (f_selection_true()) { + execute(TC_301_059(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_301_060(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( PICS 1/8 ) */ + if (f_selection_046()) { + execute(TC_301_061(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( ( not PICS 1/8 ) ) */ + if (f_selection_044()) { + execute(TC_301_062(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( PICS 1/8 ) */ + if (f_selection_046()) { + execute(TC_301_063(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/9 ) and ( ( not PICS 1/8 ) ) */ + if (f_selection_044()) { + execute(TC_301_064(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 3/1 */ + if (f_selection_091()) { + execute(TC_302_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 ) and ( PICS 1/5 ) */ + if (f_selection_050()) { + execute(TC_302_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_053()) { + execute(TC_302_003(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_053()) { + execute(TC_302_004(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_053()) { + execute(TC_302_005(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_053()) { + execute(TC_302_007(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_055()) { + execute(TC_302_009(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and PICS 4/7 and PICS 4/15 ) and ( PICS 1/5 and PICS 4/2 ) */ + if (f_selection_055()) { + execute(TC_302_010(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/4 and PICS 4/2 ) ) */ + if (f_selection_052()) { + execute(TC_302_011(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_051()) { + execute(TC_302_012(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_051()) { + execute(TC_302_013(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_051()) { + execute(TC_302_014(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_054()) { + execute(TC_302_015(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_054()) { + execute(TC_302_016(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_054()) { + execute(TC_302_017(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 1/4 and PICS 4/2 ) */ + if (f_selection_054()) { + execute(TC_302_018(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 ) and ( PICS 1/4 ) */ + if (f_selection_049()) { + execute(TC_302_019(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/2 ) and ( PICS 3/8 ) */ + if (f_selection_048()) { + execute(TC_302_020(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( PICS 4/9 ) */ + if (f_selection_022()) { + execute(TC_303_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 1/9 ) ) and ( PICS 4/9 ) */ + if (f_selection_034()) { + execute(TC_303_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( PICS 4/9 ) */ + if (f_selection_022()) { + execute(TC_303_003(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 ) and ( PICS 4/9 ) */ + if (f_selection_033()) { + execute(TC_303_004(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( PICS 4/9 ) */ + if (f_selection_022()) { + execute(TC_303_005(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 ) and ( PICS 4/9 ) */ + if (f_selection_033()) { + execute(TC_303_006(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) */ + if (f_selection_077()) { + execute(TC_303_007(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/2 and PICS 3/1 */ + if (f_selection_080()) { + execute(TC_303_008(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/2 and PICS 3/2 */ + if (f_selection_082()) { + execute(TC_303_010(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_021()) { + execute(TC_303_011(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_032()) { + execute(TC_303_012(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_021()) { + execute(TC_303_013(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_032()) { + execute(TC_303_014(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_021()) { + execute(TC_303_015(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_032()) { + execute(TC_303_016(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/1 and PICS 3/1 and not ( PICS 4/24 ) */ + if (f_selection_077()) { + execute(TC_303_017(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/2 and PICS 3/1 */ + if (f_selection_080()) { + execute(TC_303_018(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_047()) { + execute(TC_303_019(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_047()) { + execute(TC_303_020(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_047()) { + execute(TC_303_021(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 3/1 ) and ( ( not PICS 4/9 ) ) */ + if (f_selection_047()) { + execute(TC_303_022(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + if (f_selection_028()) { + execute(TC_303_023(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + if (f_selection_040()) { + execute(TC_303_024(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + if (f_selection_028()) { + execute(TC_303_025(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + if (f_selection_040()) { + execute(TC_303_026(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + if (f_selection_028()) { + execute(TC_303_027(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/14 ) */ + if (f_selection_040()) { + execute(TC_303_028(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 ) */ + if (f_selection_025()) { + execute(TC_303_029(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 ) */ + if (f_selection_037()) { + execute(TC_303_030(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/2 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 ) */ + if (f_selection_042()) { + execute(TC_303_032(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_026()) { + execute(TC_303_033(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_038()) { + execute(TC_303_034(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_027()) { + execute(TC_303_035(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_039()) { + execute(TC_303_036(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and PICS 4/5 and PICS 4/15 and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_027()) { + execute(TC_303_037(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_039()) { + execute(TC_303_038(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + if (f_selection_024()) { + execute(TC_303_039(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + if (f_selection_036()) { + execute(TC_303_040(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + if (f_selection_024()) { + execute(TC_303_041(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + if (f_selection_036()) { + execute(TC_303_042(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + if (f_selection_024()) { + execute(TC_303_043(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and PICS 4/9 ) */ + if (f_selection_036()) { + execute(TC_303_044(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) */ + if (f_selection_078()) { + execute(TC_303_045(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 ) */ + if (f_selection_081()) { + execute(TC_303_046(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/2 and ( not PICS 4/15 ) ) and ( PICS 3/8) ) and ( PICS 4/2 ) */ + if (f_selection_041()) { + execute(TC_303_047(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_023()) { + execute(TC_303_048(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_035()) { + execute(TC_303_049(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_023()) { + execute(TC_303_050(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_035()) { + execute(TC_303_051(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/1 and PICS 3/1 and ( not PICS 4/15 ) and not ( PICS 4/24 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_023()) { + execute(TC_303_052(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and ( not PICS 4/15 ) ) and ( PICS 4/2 and ( not PICS 4/9 ) ) */ + if (f_selection_035()) { + execute(TC_303_053(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 1/9 and PICS 3/1 ) and ( PICS 4/9 ) */ + if (f_selection_031()) { + execute(TC_303_054(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 1/9 and PICS 3/2 and PICS 4/24 ) and ( not PICS 4/9 ) */ + if (f_selection_106()) { + execute(TC_303_055(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 1/9 and PICS 3/1 and PICS 4/24 ) and ( not PICS 4/9 ) */ + if (f_selection_107()) { + execute(TC_303_056(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 1/2 and PICS 3/1 and PICS 4/24 ) and ( not PICS 4/9 ) */ + if (f_selection_108()) { + execute(TC_303_057(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 3/1 */ + if (f_selection_091()) { + execute(TC_304_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 3/1 */ + if (f_selection_091()) { + execute(TC_304_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_305_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/1 */ + if (f_selection_076()) { + execute(TC_306_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/2 */ + if (f_selection_079()) { + execute(TC_306_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_307_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + execute(TC_307_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + execute(TC_307_003(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_307_004(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + execute(TC_307_005(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/10 ) */ + if (f_selection_010()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_307_006(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=6; i:=i+1) { + execute(TC_307_007(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=6; i:=i+1) { + execute(TC_307_008(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=6; j:=j+1) { + execute(TC_307_009(v_CSeq_s, i, j)); + } + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=6; i:=i+1) { + execute(TC_307_010(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=6; j:=j+1) { + execute(TC_307_011(v_CSeq_s, i, j)); + } + } + } + /* Mnemonic selection condition: ( not PICS 4/11 ) */ + if (f_selection_116()) { + execute(TC_308_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/11 */ + if (f_selection_095()) { + execute(TC_308_004(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/11 ) */ + if (f_selection_116()) { + for (i:=1; i<=25; i:=i+1) { + execute(TC_308_007(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/12 */ + if (f_selection_096()) { + for (i:=1; i<=13; i:=i+1) { + execute(TC_308_008(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/12 ) */ + if (f_selection_013()) { + for (i:=1; i<=13; i:=i+1) { + execute(TC_308_009(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/11 ) */ + if (f_selection_116()) { + execute(TC_308_010(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/11 ) */ + if (f_selection_116()) { + execute(TC_308_011(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 4/11 ) */ + if (f_selection_116()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=25; j:=j+1) { + execute(TC_308_013(v_CSeq_s, i, j)); + } + } + } + /* Mnemonic selection condition: ( not PICS 4/11 ) */ + if (f_selection_116()) { + for (i:=1; i<=4; i:=i+1) { + execute(TC_308_014(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: not PICS 4/10 */ + if (f_selection_010()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=25; j:=j+1) { + execute(TC_308_017(v_CSeq_s, i, j)); + } + } + } + /* Mnemonic selection condition: ( not PICS 4/17 ) */ + if (f_selection_018()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_308_018(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/17 */ + if (f_selection_101()) { + for (i:=1; i<=5; i:=i+1) { + execute(TC_308_019(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + execute(TC_308_020(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/10 */ + if (f_selection_094()) { + execute(TC_308_021(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 3/2 */ + if (f_selection_092()) { + execute(TC_308_022(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 3/4 ) */ + if (f_selection_009()) { + execute(TC_308_023(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 )*/ + if (f_selection_104()) { + execute(TC_308_024(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 )*/ + if (f_selection_104()) { + execute(TC_308_025(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 4/5 and PICS 4/15 ) and ( PICS 4/2 )*/ + if (f_selection_104()) { + execute(TC_308_026(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_309_001(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=5; i:=i+1) { + for (j:=1; j<=2; j:=j+1) { + execute(TC_309_002(v_CSeq_s, i, j)); + } + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_309_003(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_309_005(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=2; j:=j+1) { + execute(TC_309_006(v_CSeq_s, i, j)); + } + } + } + if (f_selection_true()) { + execute(TC_309_007(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=5; i:=i+1) { + for (j:=1; j<=2; j:=j+1) { + execute(TC_309_008(v_CSeq_s, i, j)); + } + } + } + if (f_selection_true()) { + execute(TC_309_009(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_309_011(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=2; j:=j+1) { + execute(TC_309_012(v_CSeq_s, i, j)); + } + } + } + if (f_selection_true()) { + execute(TC_309_013(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_309_014(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=5; i:=i+1) { + for (j:=1; j<=2; j:=j+1) { + execute(TC_309_015(v_CSeq_s, i, j)); + } + } + } + if (f_selection_true()) { + execute(TC_309_016(v_CSeq_s)); + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_309_017(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=4; i:=i+1) { + for (j:=1; j<=2; j:=j+1) { + execute(TC_309_018(v_CSeq_s, i, j)); + } + } + } + if (f_selection_true()) { + execute(TC_309_019(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/9 */ + if (f_selection_114()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_001(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 */ + if (f_selection_110()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 */ + if (f_selection_110()) { + execute(TC_501_003(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 6/1 */ + if (f_selection_110()) { + execute(TC_501_004(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 6/1 */ + if (f_selection_110()) { + execute(TC_501_005(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/3 and PICS 6/9 */ + if (f_selection_113()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_006(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/3 */ + if (f_selection_112()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_007(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/3 */ + if (f_selection_112()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_008(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/3 */ + if (f_selection_112()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_009(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/3 */ + if (f_selection_112()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_010(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_011(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_012(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + execute(TC_501_013(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_501_014(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_501_015(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 6/3 */ + if (f_selection_115()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_016(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/3 */ + if (f_selection_115()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_017(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/3 */ + if (f_selection_115()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_018(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/3 */ + if (f_selection_115()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_019(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/3 */ + if (f_selection_115()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_020(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 6/1 and PICS 6/11 */ + if (f_selection_111()) { + execute(TC_501_021(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/9 */ + if (f_selection_083()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_022(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 1/9 and PICS 6/1 and PICS 6/12 */ + if (f_selection_086()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_023(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 1/9 and PICS 6/1 and PICS 6/3 and PICS 6/12 */ + if (f_selection_087()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_501_024(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_502_001(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_502_002(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_502_003(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + execute(TC_502_004(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_502_005(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_502_006(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_502_007(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 5/6 */ + if (f_selection_109()) { + execute(TC_503_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 5/6 ) and ( PICS 4/14 ) */ + if (f_selection_070()) { + execute(TC_503_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 8/2 ) and ( PICS 5/10 ) */ + if (f_selection_072()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_504_001(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 8/1 ) and ( PICS 5/10 ) */ + if (f_selection_071()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_504_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 8/2 ) and ( PICS 5/10 ) */ + if (f_selection_072()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_504_003(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 8/1 ) and ( PICS 5/10 ) */ + if (f_selection_071()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_504_004(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: NOT PICS 5/10 */ + if (f_selection_075()) { + execute(TC_504_005(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 8/2 and PICS 5/5 and PICS 5/18 */ + if (f_selection_118()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_505_001(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 8/2 and PICS 5/5 and PICS 5/18 */ + if (f_selection_118()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_505_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: not PICS 5/18 */ + if (f_selection_006()) { + execute(TC_505_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_506_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 9/1 */ + if (f_selection_120()) { + execute(TC_507_001(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 9/1 ) */ + if (f_selection_020()) { + execute(TC_507_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_508_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_509_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_509_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_509_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_509_004(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_510_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_510_002(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_511_001(v_CSeq_s)); + } + /* Mnemonic selection condition: not PICS 11/2 */ + if (f_selection_073()) { + execute(TC_511_002(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 12/1 */ + if (f_selection_090()) { + execute(TC_512_001(v_CSeq_s)); + } + /* Mnemonic selection condition: NOT PICS 12/1 */ + if (f_selection_074()) { + execute(TC_512_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_513_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_514_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/9 */ + if (f_selection_083()) { + execute(TC_515_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 1/9 and PICS 6/12 */ + if (f_selection_088()) { + execute(TC_515_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_601_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 4/13 */ + if (f_selection_097()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) */ + if (f_selection_014()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_003(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/13 and PICS 4/20 */ + if (f_selection_099()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_004(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) and PICS 4/20 */ + if (f_selection_016()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_005(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/13 and PICS 4/20 */ + if (f_selection_099()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_006(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) and PICS 4/20 */ + if (f_selection_016()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_007(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/13 and ( not PICS 4/20 ) */ + if (f_selection_098()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_008(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) and ( not PICS 4/20 ) */ + if (f_selection_015()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_009(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/13 and ( not PICS 4/20 ) */ + if (f_selection_098()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_010(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) and ( not PICS 4/20 ) */ + if (f_selection_015()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_011(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/13 and PICS 4/20 */ + if (f_selection_099()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_012(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 4/13 and PICS 4/20 */ + if (f_selection_099()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_013(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) and PICS 4/20 */ + if (f_selection_016()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_014(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( not PICS 4/13 ) and PICS 4/20 */ + if (f_selection_016()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_601_015(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_602_001(v_CSeq_s, i)); + } + } + if (f_selection_true()) { + execute(TC_602_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_602_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_602_004(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_602_005(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_602_006(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 5/6 */ + if (f_selection_109()) { + execute(TC_603_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 5/6 */ + if (f_selection_109()) { + execute(TC_603_002(v_CSeq_s)); + } + /* Mnemonic selection condition: ( PICS 8/2 ) and ( PICS 5/10 ) */ + if (f_selection_072()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_604_001(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 8/1 ) and ( PICS 5/10 ) */ + if (f_selection_071()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_604_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 8/2 ) and ( PICS 5/10 ) */ + if (f_selection_072()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_604_003(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: ( PICS 8/1 ) and ( PICS 5/10 ) */ + if (f_selection_071()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_604_004(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: not PICS 5/10 */ + if (f_selection_075()) { + execute(TC_604_005(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 8/2 and PICS 5/5 and PICS 5/18 */ + if (f_selection_118()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_605_001(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: PICS 8/1 PICS 5/5 and PICS 5/18 */ + if (f_selection_117()) { + for (i:=1; i<=2; i:=i+1) { + execute(TC_605_002(v_CSeq_s, i)); + } + } + /* Mnemonic selection condition: not PICS 5/10 */ + if (f_selection_006()) { + execute(TC_605_003(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_606_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_607_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_608_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_608_002(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_609_001(v_CSeq_s)); + } + if (f_selection_true()) { + execute(TC_610_001(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_002(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_003(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_004(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_005(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_006(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_007(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 11/1 and PICS 11/2 */ + if (f_selection_089()) { + execute(TC_610_008(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 11/2 ) */ + if (f_selection_008()) { + execute(TC_610_009(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 11/2 ) */ + if (f_selection_008()) { + execute(TC_610_010(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 11/2 ) */ + if (f_selection_008()) { + execute(TC_610_011(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 11/2 ) */ + if (f_selection_008()) { + execute(TC_610_012(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 11/2 ) */ + if (f_selection_008()) { + execute(TC_610_013(v_CSeq_s)); + } + /* Mnemonic selection condition: ( not PICS 11/2 ) */ + if (f_selection_008()) { + execute(TC_610_014(v_CSeq_s)); + } + /* Mnemonic selection condition: ( ( not PICS 11/1 )or ( not PICS 11/3 ) ) */ + if (f_selection_119()) { + execute(TC_610_015(v_CSeq_s)); + } + /* Mnemonic selection condition: PICS 12/1 */ + if (f_selection_090()) { + execute(TC_611_001(v_CSeq_s)); + } + /* Mnemonic selection condition: NOT PICS 12/1 */ + if (f_selection_074()) { + execute(TC_611_002(v_CSeq_s)); + } + + + + }//end control + +} // end module SipIsup_TestExecution \ No newline at end of file diff --git a/AtsCommon/SipIsup_TestSystem.ttcn b/AtsCommon/SipIsup_TestSystem.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..896dfccba4a3ad36fad06130e1ad1e7c6344e39f --- /dev/null +++ b/AtsCommon/SipIsup_TestSystem.ttcn @@ -0,0 +1,166 @@ +/* + * @author STF 276 + * @version $Id$ + * @desc Specifies component types used by the IPv6 ATS. + * Definitions are based on component type definitions + * from IPv6, SCOP and common synchronization libraries. + * + */ + module SipIsup_TestSystem { + + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_AbstractData all; + import from LibCommon_Time all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + //AtsSip + import from SipIsup_SIP_TypesAndConf all; + //AtsIsup + import from SipIsup_ISUP_ModuleParams all; + import from SipIsup_ISUP_ParamTypes all; + import from SipIsup_ISUP_MsgTypes all; + + /* + ** @desc The test system interface + */ + type component TestAdapter { + port IsupBiccPort atm; + port SipPort UDP1, UDP2, UDP3, TCP1, TCP2, TCP3; + port operatorPort opPortS; + port operatorPort_IsupBicc opPortS_IsupBicc; + } + + + //type component SipComponent is defined in SipIsup_SIP_TypesAndConf + + group CMTypes + { + type charstring CM_Message; + } // end group CMTypes + + + group SystemConfiguration + { + group TestComponents + { + group TestSystemInterfaces + { + type component IsupBiccInterfaces + { + port IsupBiccPort IsupP; // Port on the test system used when ISUP signalling is used. + port IsupBiccPort BiccP; // Port on the test system used when BICC signalling is used. + } + } // end Group TestSystemInterfaces + + group TestAbstractComponents + { + + type component IsupBiccComponent + { + // general variables + // current address to send TCP/UDP messages + // var address sent_label := {host := PX_IUT_IPADDR, portField := PX_IUT_PORT}; + + // current address to send UDP multicast messages + + // general timers + timer TWait := PX_ISUP_TWAIT; + timer TAck := PX_ISUP_TAC; + timer TNoAc := PX_ISUP_TNOAC; + timer TSync := PX_ISUP_TSYNC; + + // Timers for delaying messages to be transmitted, to simulate realistic response times to the SUT + timer TDelay_ACM := PX_TDelay_ACM; + timer TDelay_ANM := PX_TDelay_ANM; + timer TDelay_APM := PX_TDelay_APM; + timer TDelay_CGB := PX_TDelay_CGB; + timer TDelay_CON := PX_TDelay_CON; + timer TDelay_COT := PX_TDelay_COT; + timer TDelay_CPG := PX_TDelay_CPG; + timer TDelay_FAC := PX_TDelay_FAC; + timer TDelay_FAR := PX_TDelay_FAR; + timer TDelay_GRS := PX_TDelay_GRS; + timer TDelay_IDR := PX_TDelay_IDR; + timer TDelay_LOP := PX_TDelay_LOP; + timer TDelay_REL := PX_TDelay_REL; + timer TDelay_RES := PX_TDelay_RES; + timer TDelay_RLC := PX_TDelay_RLC; + timer TDelay_RSC := PX_TDelay_RSC; + timer TDelay_SAM := PX_TDelay_SAM; + timer TDelay_SUS := PX_TDelay_SUS; + timer TDelay_UNKNOWN := PX_TDelay_UNKNOWN; + timer ProtocolTimer; + + port IsupBiccPort IsupBiccP; + port Coordination cpA; + port Coordination cpB; + + // parts needed for Client/SelfSyncComp type compatibility + var StringStack v_stateStack:= c_initStringStack; + var Bit12 v_CircuitIdentityCode1; + var CallInstanceCode v_CallInstanceCode1; + var Bit12 v_CircuitIdentityCode2; + var CallInstanceCode v_CallInstanceCode2; + var Bit12 v_CircuitIdentityCodeDef; + var CallInstanceCode v_CallInstanceCodeDef; + var Bit4 v_SLS; + var Bit4 v_SLS2; + + //bearer states associated with cic1 and cic2: 0: not setup; 1: setup reuested; + //2: release requested; 3: setup + var integer v_ISUP_BearerState1; //state associated with cic1 + var integer v_ISUP_BearerState2; //state associated with cic2 + var boolean v_ISUP_inTestBody; + var boolean v_ACM_expected1; // First IAM sent, ACM pending, if true + var boolean v_ACM_expected2; // Second IAM sent, ACM pending, if true + + var default v_Default;// Generic default variable, used for activation + + var ISUP_BICC_MSG_ind v_IAM_r;// to store received IAM message and extract values + var ISUP_BICC_MSG_ind v_ACM_r; // to store a received ACM message and extract values + var ISUP_BICC_MSG_ind v_ANY_r; // to store a received any message and extract values + + port SyncPort syncSendPort; + port SyncPort syncPort; + port operatorPort_IsupBicc opPort_IsupBicc; + timer tc_sync := PX_ISUP_TSYNC_TIME_LIMIT; + + }// component IsupBiccComponent + + }// end Group TestAbstractComponents + + }// end group TestComponents + + group Ports + { + //used for communication with the operator + + type port operatorPort_IsupBicc procedure {inout s_IsupBicc_conversation; inout s_IsupBicc_ringing}; + type port IsupBiccPort message + { + out ISUP_BICC_MSG_req; /* ASP used to send an ISUP/BICC message */ + in ISUP_BICC_MSG_ind; /* ASP used to receive an ISUP/BICC message */ + out InitializeIsupBicc_req; /* ASP used to Initialize the test system. */ + in InitializeIsupBicc_cnf; /* Answer whether all necessary TS initializations have been successfully performed. The result can be positive or negative. The result will be positive only if the TS is able to send and recieve messages at the SIP- and the ISUP/BICC-interface of the SUT. */ + out BearerSetup_req; /* For BICC: request TS to setup the bearer connection between TS and SUT. */ + in BearerSetup_acc; /* For BICC: answer to BearerSetup_req. The answer can be positive (bearer connection setup successful) or negative (bearer connection setup failed). */ + in BearerSetup_ind; /* For BICC: Indication that the bearer connection between TS and SUT has been setup by the SUT. */ + out BearerRelease_req; /* For BICC: request to release the established bearer connection. */ + in BearerRelease_cnf; /* For BICC: confirmation that the requested bearer is released. */ + in BearerRelease_ind; /* Indication of whether the bearer is successfully released. */ + } + + type port Coordination message + { + inout CM_Message + }with {extension "internal" } + } // End Group Ports + + } //end group SystemConfiguration + signature s_IsupBicc_conversation (in charstring text, out boolean answer); + signature s_IsupBicc_ringing (in charstring text, out boolean answer); + +} // end module SipIsup_TestSystem diff --git a/AtsCommon/SipIsup_Testcases.ttcn b/AtsCommon/SipIsup_Testcases.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..5b804b038a844a73979e1ac1e36d9d1950e91c4d --- /dev/null +++ b/AtsCommon/SipIsup_Testcases.ttcn @@ -0,0 +1,9494 @@ +/* + * @author STF 18X + * @version $Id$ + * @desc This module contains test cases and their test case functions + * for the SIP-ISUP interworking. + */ + module SipIsup_Testcases { + + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //AtsCommon + import from SipIsup_TestConfiguration all; + //Ats Sip + import from SipIsup_TestSystem all; + import from SipIsup_SIP_TypesAndConf all; + import from SipIsup_SIP_TCFunctions all; + + import from SipIsup_PIXITS all; + + //Ats Isup + //import from SipIsup_ISUP_Configuration all; + import from SipIsup_ISUP_TCFunctions all; + import from SipIsup_ISUP_ModuleParams all; + +//TC_Reset_Circuits() + testcase TC_Reset_Circuits(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + v_isupBiccComponent.start(f_Reset_Circuits()) ; + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_Reset_Circuits() + +//TC_Reset_Groups() + testcase TC_Reset_Groups(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + v_isupBiccComponent.start(f_Reset_Groups()) ; + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_Reset_Groups() + +group BasicCall { +group TP1_InterworkingFromSIPtoISUP { +group TP101_Sending_IAM { + +/* +* @desc TC_101_001 +* @param loc_CSeq_s Transaction Id +*/ + testcase TC_101_001(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_101_001 + + + + /* + * @desc TC_101_002 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_002(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_002()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_002 + + + /* + * @desc TC_101_003 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_003(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_003()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_003 + + + /* + * @desc TC_101_004 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_004(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_004()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_004 + + + /* + * @desc TC_101_005 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_005(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_005()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_005 + + + /* + * @desc TC_101_006 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_006(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_006()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_006 + + + /* + * @desc TC_101_007 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_007(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_007()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_007 + + + /* + * @desc TC_101_008 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_008(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_008(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_008()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_008 + + + /* + * @desc TC_101_009 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_009(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_009(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_009()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_009 + + + /* + * @desc TC_101_010 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_010(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_010(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_010()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_010 + + + /* + * @desc TC_101_011 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_011(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_011(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_011()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_011 + + + /* + * @desc TC_101_012 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_012(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_012(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_012()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_012 + + + /* + * @desc TC_101_013 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_013(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_013()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_013 + + + /* + * @desc TC_101_014 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_014(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_014()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_014 + + + /* + * @desc TC_101_015 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_015(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_015(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_015()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_015 + + + /* + * @desc TC_101_016 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_016(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_016(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_016()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_016 + + + /* + * @desc TC_101_017 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_017(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_017(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_017()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_017 + + + /* + * @desc TC_101_018 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_018(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_018(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_018()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_018 + + + /* + * @desc TC_101_019 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_019(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_019(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_019()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_019 + + + /* + * @desc TC_101_020 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_020(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_020(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_020(VA)) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_020 + + + /* + * @desc TC_101_021 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_021(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_021(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_021(VA)) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_021 + + /* + * @desc TC_101_022 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_022(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_022(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_022(VA)) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_022 + + + /* + * @desc TC_101_023 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_023(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_023(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_023()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_023 + + + /* + * @desc TC_101_024 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_024(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_024(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_024()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_024 + + + /* + * @desc TC_101_025 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_025(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_025(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_025()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_025 + + + /* + * @desc TC_101_026 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_026(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_026(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_026()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_026 + + + /* + * @desc TC_101_027 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_027(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_027(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_027()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_027 + + + /* + * @desc TC_101_028 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_028(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_028(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_028()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_028 + + + /* + * @desc TC_101_029 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_029(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_029(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_029()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_029 + + + /* + * @desc TC_101_030 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_030(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_030(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_030()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_030 + + + /* + * @desc TC_101_031 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_031(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_031(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_031()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_031 + + /* + * @desc TC_101_032 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_101_032(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_101_032(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_101_032()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } //endTC_101_032 + + +} // end group TP101_SendingIAM + +group TP102_Sending_SAM { + +/* +* @desc TC_102_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_102_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_102_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_102_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_102_001 + + +/* +* @desc TC_102_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_102_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_102_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_102_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_102_002 + +} // end group TP102_Sending_SAM + +group TP103_Sending_COT { + +/* +* @desc TC_103_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_103_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_103_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_103_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_103_001 + + +/* +* @desc TC_103_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_103_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_103_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_103_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_103_002 + +} // end group TP103_Receiving_COT + +group TP104_Receiving_ACM { + +/* +* @desc TC_104_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_104_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_104_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_104_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_104_001 + + +/* +* @desc TC_104_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_104_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_104_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_104_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_Ringing, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_104_002 + +} // end group TP104_Receiving_ACM + +group TP105_Receiving_CPG { + +/* +* @desc TC_105_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_105_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_105_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_105_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_105_001 + + +/* +* @desc TC_105_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_105_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_105_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_105_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_105_002 + + +/* +* @desc TC_105_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_105_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_105_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_105_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_105_003 + +} // end group TP105_Receiving_CPG + +group TP106_Receiving_ANM { + + /* +* @desc TC_106_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_106_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_106_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_106_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_106_001 + + +/* +* @desc TC_106_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_106_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_106_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_106_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_106_002 + + +/* +* @desc TC_106_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_106_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_106_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_106_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_106_003 + +} // end group TP106_Receiving_ANM + +group TP107_Receiving_CON { + +/* +* @desc TC_107_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_107_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_107_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_107_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_107_001 + + +/* +* @desc TC_107_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_107_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_107_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_107_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_107_002 + + +/* +* @desc TC_107_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_107_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_107_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_107_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_107_003 + +} // end group TP107_Receiving_CON + +group TP108_Receipt_REL { + +/* +* @desc TC_108_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_001(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_001 + + +/* +* @desc TC_108_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_002 + + +/* +* @desc TC_108_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_003(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_003(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_003(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_003 + + +/* +* @desc TC_108_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_004(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_004(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_004(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_004 + + +/* +* @desc TC_108_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_005(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_005(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_005(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_005 + + +/* +* @desc TC_108_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_006(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_006(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_006(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_006 + + +/* +* @desc TC_108_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_007(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_007(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_007(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_007 + + +/* +* @desc TC_108_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_008(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_008(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_008(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_008 + + +/* +* @desc TC_108_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_009(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_009(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_009(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_009 + + +/* +* @desc TC_108_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_010(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_010(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_010(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_010 + + +/* +* @desc TC_108_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_011(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_011(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_011(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_011 + + +/* +* @desc TC_108_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_012(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_012(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_012(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_012 + + +/* +* @desc TC_108_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_013(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_013()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_013 + + +} // end group TP108_ReceiptREL + +group TP1081_AutonomousRelease { + +/* +* @desc TC_108_101 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_101(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_101(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_101()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_101 + + +/* +* @desc TC_108_102 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_102(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_102(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_102()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_102 + +/* +* @desc TC_108_103 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_103(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_103(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_103()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_103 + + +/* +* @desc TC_108_104 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_104(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_104(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_104()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_104 + + +/* +* @desc TC_108_105 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_105(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_105(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_105()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_105 + + +/* +* @desc TC_108_106 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_106(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_106(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_106()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_106 + + +/* +* @desc TC_108_107 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_107(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_107(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_107()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_107 + + +/* +* @desc TC_108_108 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_108(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_108(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_108()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_108 + + +/* +* @desc TC_108_109 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_109(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_109(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_109()) ; + + // synchronize both PTCs on 2 sychronization points with timeout in between + f_serverSyncClientsTimed(2,c_prDone, PX_TSYNC_TIME_LIMIT); + + tc_sync.start(PX_Timeout_T7*0.95); + alt + { + [] tc_sync.timeout{}; + } + + f_serverSync2ClientsAndStop({c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_109 + + +/* +* @desc TC_108_110 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_110(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_110(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_110()) ; + + // synchronize both PTCs on 2 sychronization points with timeout in between + f_serverSyncClientsTimed(2,c_prDone, PX_TSYNC_TIME_LIMIT); + + tc_sync.start(PX_Timeout_T9*0.95); + alt + { + [] tc_sync.timeout{}; + } + + f_serverSync2ClientsAndStop({c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_110 + + +/* +* @desc TC_108_111 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_108_111(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_108_111(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_108_111()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_108_111 + +} // end group TP1081_AutonomousRelease + +group TP109_Receiving_BYE_CANCEL_REL { + +/* +* @desc TC_109_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_109_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_109_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_109_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_109_001 + + +/* +* @desc TC_109_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_109_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_109_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_109_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_109_002 + + +/* +* @desc TC_109_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_109_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_109_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_109_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_109_003 + + +/* +* @desc TC_109_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_109_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_109_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_109_004()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_109_004 + +} // end group TP109_Receiving_BYE_CANCEL_REL + +group TP110_Receiving_RSC_GRS_CGB { + +/* +* @desc TC_110_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_001 + + +/* +* @desc TC_110_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_002 + + +/* +* @desc TC_110_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_003 + + +/* +* @desc TC_110_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_004()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_004 + +/* +* @desc TC_110_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_005 + + +/* +* @desc TC_110_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_006(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_006()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_006 + + +/* +* @desc TC_110_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_007(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_007()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_007 + + +/* +* @desc TC_110_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_008(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_008(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_008()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_008 + + +/* +* @desc TC_110_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_009(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_009(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_009()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_009 + + +/* +* @desc TC_110_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_010(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_010(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_010()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone,c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_010 + + +/* +* @desc TC_110_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_110_011(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_110_011(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_110_011()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_110_011 + +} // end group TP110_Receiving_RSC_GRS_CGB + +group TP111_Receiving_SUS { + +/* +* @desc TC_111_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_111_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_111_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_111_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_111_001 + + +/* +* @desc TC_111_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_111_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_111_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_111_002()) ; + + // synchronize both PTCs on 3 sychronization points with timeout in between + f_serverSyncClientsTimed(2,c_prDone, PX_TSYNC_TIME_LIMIT); + f_serverSyncClientsTimed(2,c_sync1, PX_TSYNC_TIME_LIMIT); + + tc_sync.start(PX_Timeout_T6*0.95); + alt + { + [] tc_sync.timeout{}; + } + + f_serverSync2ClientsAndStop({c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_111_002 + +} // end group TP111_Receiving_SUS + +group TP112_Receiving_RES { + +/* +* @desc TC_112_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_112_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_112_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_112_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_112_001 + +}//end group TP112_Receiving_RES + + + + +} // end group TP1_InterworkingFromSIPtoISUP + + +group TP3_InterworkingFromISUPtoSIP { + +group TP301_SendingINVITE { + + + /* + * @desc TC_301_001 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_001(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_001 + + + + /* + * @desc TC_301_002 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_002(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_002 + + /* + * @desc TC_301_003 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_003(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_003 + + /* + * @desc TC_301_004 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_004(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_004()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_004 + + /* + * @desc TC_301_005 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_005(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_005 + + /* + * @desc TC_301_006 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_006(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_006()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_006 + + /* + * @desc TC_301_007 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_007(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_007()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_007 + + /* + * @desc TC_301_008 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_008(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_008(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_008()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_008 + + /* + * @desc TC_301_009 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_009(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_009(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_009()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_009 + + /* + * @desc TC_301_012 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_012(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_012(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_012()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_012 + + /* + * @desc TC_301_013 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_013(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_013()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_013 + + /* + * @desc TC_301_014 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_014(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_014()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_014 + + /* + * @desc TC_301_015 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_015(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_015(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_015()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_015 + + /* + * @desc TC_301_016 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_016(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_016(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_016()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_016 + + /* + * @desc TC_301_018 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_018(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_018(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_018()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_018 + + /* + * @desc TC_301_019 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_019(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_019(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_019()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_019 + + /* + * @desc TC_301_020 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_020(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_020(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_020()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_020 + + /* + * @desc TC_301_027 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_027(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_027(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_027()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_027 + + /* + * @desc TC_301_028 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_028(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_028(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_028()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_028 + + /* + * @desc TC_301_031 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_031(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_031(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_031()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_031 + + /* + * @desc TC_301_032 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_032(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_032(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_032()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_032 + + /* + * @desc TC_301_037 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_037(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_037(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_037()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_037 + + /* + * @desc TC_301_038 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_038(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_038(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_038()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_038 + + /* + * @desc TC_301_039 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_039(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_039(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_039()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_039 + + /* + * @desc TC_301_040 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_040(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_040(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_040()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_040 + + /* + * @desc TC_301_041 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_041(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_041(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_041()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_041 + + /* + * @desc TC_301_042 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_042(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_042(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_042()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_042 + + /* + * @desc TC_301_043 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_043(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_043(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_043()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_043 + + /* + * @desc TC_301_044 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_044(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_044(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_044()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_044 + + /* + * @desc TC_301_045 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_045(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_045(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_045()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_045 + + /* + * @desc TC_301_046 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_046(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_046(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_046()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_046 + + /* + * @desc TC_301_048 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_048(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_048(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_048()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_048 + + /* + * @desc TC_301_049 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_049(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_049(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_049()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_049 + + /* + * @desc TC_301_051 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_051(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_051(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_051()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_051 + + /* + * @desc TC_301_053 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_053(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_053(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_053(VA)) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_053 + + /* + * @desc TC_301_054 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_054(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_054(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_054(VA)) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_054 + + /* + * @desc TC_301_055 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_055(inout CSeq loc_CSeq_s, in integer VA) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_055(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_055(VA)) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_055 + + /* + * @desc TC_301_056 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_056(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_056(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_056()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_056 + + /* + * @desc TC_301_057 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_057(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_057(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_057()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_057 + + /* + * @desc TC_301_058 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_058(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_058(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_058()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_058 + + /* + * @desc TC_301_059 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_059(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_059(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_059()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_059 + + /* + * @desc TC_301_060 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_060(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_060(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_060()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_060 + + /* + * @desc TC_301_061 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_061(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_061(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_061()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_061 + + /* + * @desc TC_301_062 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_062(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_062(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_062()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_062 + + /* + * @desc TC_301_063 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_063(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_063(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_063()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_063 + + /* + * @desc TC_301_064 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_301_064(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_301_064(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_301_064()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_301_064 + + +} // end group TP301_SendingINVITE + +group TP302_Receiving_SAM { + + /* + * @desc TC_302_001 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_302_001(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_302_001 + + /* + * @desc TC_302_002 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_302_002(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_302_002 + + /* + * @desc TC_302_003 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_302_003(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_003()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_302_003 + + /* + * @desc TC_302_004 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_302_004(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_004()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_302_004 + + /* + * @desc TC_302_005 + * @param loc_CSeq_s Transaction Id + */ + testcase TC_302_005(inout CSeq loc_CSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + + } // end TC_302_005 + +/* +* @desc TC_302_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_007(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_007()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_007 + + +/* +* @desc TC_302_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_009(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_009(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_009()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_009 + + +/* +* @desc TC_302_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_010(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_010(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_010()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_010 + + +/* +* @desc TC_302_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_011(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_011(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_011()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_011 + + +/* +* @desc TC_302_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_012(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_012(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_012()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_012 + + +/* +* @desc TC_302_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_013(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_013()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_013 + + +/* +* @desc TC_302_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_014(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_014()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_014 + + + +/* +* @desc TC_302_015 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_015(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_015(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_015()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_015 + + +/* +* @desc TC_302_016 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_016(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_016(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_016()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_016 + + +/* +* @desc TC_302_017 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_017(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_017(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_017()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_017 + + +/* +* @desc TC_302_018 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_018(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_018(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_018()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_018 + + +/* +* @desc TC_302_019 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_019(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_019(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_019()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_019 + + +/* +* @desc TC_302_020 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_302_020(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_302_020(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_302_020()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_302_020 + +}//end group TP302_Receiving_SAM + +group TP303_Sending_ACM { + + /* +* @desc TC_303_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_001 + + +/* +* @desc TC_303_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_002 + + +/* +* @desc TC_303_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_003 + + +/* +* @desc TC_303_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_004()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_004 + + +/* +* @desc TC_303_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_005 + + +/* +* @desc TC_303_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_006(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_006()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_006 + + +/* +* @desc TC_303_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_007(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_007()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_007 + + +/* +* @desc TC_303_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_008(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_008(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_008()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_008 + +/* +* @desc TC_303_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_010(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_010(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_010()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_010 + + +/* +* @desc TC_303_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_011(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_011(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_011()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_011 + + +/* +* @desc TC_303_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_012(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_012(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_012()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_012 + + +/* +* @desc TC_303_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_013(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_013()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_013 + + +/* +* @desc TC_303_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_014(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_014()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_014 + + +/* +* @desc TC_303_015 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_015(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_015(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_015()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_015 + + +/* +* @desc TC_303_016 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_016(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_016(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_016()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_016 + + +/* +* @desc TC_303_017 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_017(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_017(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_017()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_017 + + +/* +* @desc TC_303_018 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_018(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_018(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_018()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_018 + + +/* +* @desc TC_303_019 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_019(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_019(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_019()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_019 + + +/* +* @desc TC_303_020 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_020(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_020(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_020()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_020 + + +/* +* @desc TC_303_021 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_021(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_021(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_021()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_021 + + +/* +* @desc TC_303_022 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_022(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_022(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_022()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_022 + + +/* +* @desc TC_303_023 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_023(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_023(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_023()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_023 + + +/* +* @desc TC_303_024 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_024(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_024(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_024()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_024 + + +/* +* @desc TC_303_025 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_025(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_025(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_025()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_025 + + +/* +* @desc TC_303_026 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_026(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_026(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_026()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_026 + + +/* +* @desc TC_303_027 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_027(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_027(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_027()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_027 + + +/* +* @desc TC_303_028 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_028(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_028(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_028()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_028 + + +/* +* @desc TC_303_029 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_029(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_029(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_029()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_029 + + +/* +* @desc TC_303_030 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_030(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_030(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_030()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_030 + + +/* +* @desc TC_303_032 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_032(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_032(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_032()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_032 + + +/* +* @desc TC_303_033 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_033(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_033(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_033()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_033 + + +/* +* @desc TC_303_034 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_034(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_034(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_034()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_034 + + +/* +* @desc TC_303_035 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_035(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_035(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_035()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_035 + + +/* +* @desc TC_303_036 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_036(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_036(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_036()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_036 + + +/* +* @desc TC_303_037 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_037(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_037(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_037()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_037 + + +/* +* @desc TC_303_038 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_038(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_038(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_038()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_038 + + +/* +* @desc TC_303_039 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_039(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_039(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_039()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_039 + + +/* +* @desc TC_303_040 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_040(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_040(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_040()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_040 + + +/* +* @desc TC_303_041 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_041(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_041(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_041()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_041 + + +/* +* @desc TC_303_042 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_042(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_042(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_042()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_042 + + +/* +* @desc TC_303_043 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_043(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_043(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_043()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_043 + + +/* +* @desc TC_303_044 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_044(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_044(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_044()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_044 + + +/* +* @desc TC_303_045 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_045(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_045(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_045()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_045 + + +/* +* @desc TC_303_046 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_046(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_046(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_046()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_046 + + +/* +* @desc TC_303_047 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_047(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_047(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_047()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_047 + + +/* +* @desc TC_303_048 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_048(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_048(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_048()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_048 + + +/* +* @desc TC_303_049 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_049(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_049(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_049()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_049 + + +/* +* @desc TC_303_050 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_050(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_050(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_050()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_050 + + +/* +* @desc TC_303_051 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_051(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_051(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_051()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_051 + + +/* +* @desc TC_303_052 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_052(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_052(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_052()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_052 + + +/* +* @desc TC_303_053 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_053(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_053(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_053()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_053 + +/* +* @desc TC_303_054 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_054(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_054(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_054()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_054 + +/* +* @desc TC_303_055 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_055(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_055(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_055()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_055 + +/* +* @desc TC_303_056 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_056(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_056(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_056()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_056 + +/* +* @desc TC_303_057 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_303_057(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_303_057(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_303_057()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_303_057 + +}//end group TP303_Sending_ACM + +group TP304_Sending_CPG { + + +/* +* @desc TC_304_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_304_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_304_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_304_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_304_001 + + +/* +* @desc TC_304_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_304_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_304_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_304_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_304_002 + + +}//end group TP304_Sending_CPG + +group TP305_Sending_ANM { + /* +* @desc TC_305_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_305_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_305_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_305_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_305_001 + + +}//end group TP305_Sending_ANM + +group TP306_Sending_CON { + + /* +* @desc TC_306_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_306_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_306_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_306_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_306_001 + + +/* +* @desc TC_306_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_306_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_306_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_306_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_306_002 + +}//end group TP306_Sending_CON + +group TP307_Receiving_REL { + + /* +* @desc TC_307_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_001 + + +/* +* @desc TC_307_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_002 + + +/* +* @desc TC_307_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_003 + + +/* +* @desc TC_307_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_004(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_004(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_004()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_004 + + +/* +* @desc TC_307_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_005 + + +/* +* @desc TC_307_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_006(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_006(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_006()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_006 + + +/* +* @desc TC_307_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_007(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_007(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_007(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_007 + + +/* +* @desc TC_307_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_008(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_008(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_008(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_008 + + +/* +* @desc TC_307_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_009(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_009(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_009(VA2)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_009 + + +/* +* @desc TC_307_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_010(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_010(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_307_010(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_010 + + +/* +* @desc TC_307_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_307_011(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_307_011(loc_CSeq_s, VA, VA2 )); + v_isupBiccComponent.start(f_IsupBicc_TC_307_011(VA2)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_307_011 + +}//end group TP307_Receiving_REL + +group TP308_Sending_REL{ + + + +/* +* @desc TC_308_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_001 + + +/* +* @desc TC_308_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_004()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_004 + + +/* +* @desc TC_308_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_007(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_007(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_007(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_007 + + +/* +* @desc TC_308_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_008(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_008(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_008(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_008 + + +/* +* @desc TC_308_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_009(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_009(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_009()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_009 + + +/* +* @desc TC_308_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_010(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_010(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_010()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_010 + +/* +* @desc TC_308_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_011(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_011(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_011()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_011 + + +/* +* @desc TC_308_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_013(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_013(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_013(VA2)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_013 + + +/* +* @desc TC_308_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_014(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_014(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_014(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_014 + + +/* +* @desc TC_308_017 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_017(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_017(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_017(VA2)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_017 + + +/* +* @desc TC_308_018 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_018(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_018(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_018(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_018 + + +/* +* @desc TC_308_019 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_019(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_019(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_019()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_019 + + +/* +* @desc TC_308_020 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_020(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_020(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_020()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_020 + + +/* +* @desc TC_308_021 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_021(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_021(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_021()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_021 + + +/* +* @desc TC_308_022 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_022(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_022(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_022()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_022 + + +/* +* @desc TC_308_023 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_023(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_023(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_023()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_023 + + +/* +* @desc TC_308_024 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_024(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_024(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_024()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_024 + + +/* +* @desc TC_308_025 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_025(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_025(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_025()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_025 + + +/* +* @desc TC_308_026 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_308_026(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_308_026(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_308_026()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_308_026 + + +}//end group TP308_Sending_REL + +group TP309_Receiving_RSC_GRS_CGB { + + /* +* @desc TC_309_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_001 + + +/* +* @desc TC_309_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_002(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_002(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_002 + + +/* +* @desc TC_309_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_003(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_003(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_003 + + +/* +* @desc TC_309_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_005(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_005(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_005 + + +/* +* @desc TC_309_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_006(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_006(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_006()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_006 + + +/* +* @desc TC_309_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_007(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_007()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_007 + + +/* +* @desc TC_309_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_008(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_008(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_008()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_008 + + +/* +* @desc TC_309_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_009(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_009(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_009()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_009 + + +/* +* @desc TC_309_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_011(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_011(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_011()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_011 + + +/* +* @desc TC_309_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_012(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_012(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_012()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_012 + + +/* +* @desc TC_309_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_013(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_013()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_013 + + +/* +* @desc TC_309_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_014(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_014()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_014 + + +/* +* @desc TC_309_015 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_015(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_015(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_015()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_015 + + +/* +* @desc TC_309_016 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_016(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_016(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_016()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_016 + + +/* +* @desc TC_309_017 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_017(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_017(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_017()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_017 + + +/* +* @desc TC_309_018 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_018(inout CSeq loc_CSeq_s, in integer VA, in integer VA2) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_018(loc_CSeq_s, VA, VA2)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_018()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_018 + + +/* +* @desc TC_309_019 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_309_019(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_309_019(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_309_019()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_309_019 + +}//end group TP309_Receiving_RSC_GRS_CGB + +}//end group TP3_InterworkingFromISUPtoSIP +}//end group BasicCall + +group SupplementaryServices { +group TP5_InterworkingFromSIPtoISUP { + + +group TP501_CLI { + +/* +* @desc TC_501_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_001(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_001 + + +/* +* @desc TC_501_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_002 + + +/* +* @desc TC_501_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_003 + + +/* +* @desc TC_501_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_004()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_004 + + +/* +* @desc TC_501_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_005 + + +/* +* @desc TC_501_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_006(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_006(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_006(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_006 + + +/* +* @desc TC_501_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_007(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_007(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_007(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_007 + + +/* +* @desc TC_501_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_008(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_008(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_008(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_008 + + +/* +* @desc TC_501_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_009(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_009(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_009(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_009 + + +/* +* @desc TC_501_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_010(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_010(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_010(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_010 + + +/* +* @desc TC_501_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_011(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_011(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_011(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_011 + + +/* +* @desc TC_501_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_012(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_012(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_012(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_012 + + +/* +* @desc TC_501_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_013(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_013()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_013 + + +/* +* @desc TC_501_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_014(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_014()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_014 + + +/* +* @desc TC_501_015 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_015(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_015(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_015()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_015 + + +/* +* @desc TC_501_016 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_016(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_016(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_016(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_016 + + +/* +* @desc TC_501_017 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_017(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_017(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_017(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_017 + + +/* +* @desc TC_501_018 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_018(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_018(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_018(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_018 + + +/* +* @desc TC_501_019 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_019(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_019(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_019(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_019 + + +/* +* @desc TC_501_020 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_020(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_020(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_020(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_020 + + +/* +* @desc TC_501_021 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_021(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_021(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_021()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_021 + + +/* +* @desc TC_501_022 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_022(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_022(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_022(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_022 + + +/* +* @desc TC_501_023 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_023(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_023(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_023(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_023 + + +/* +* @desc TC_501_024 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_501_024(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_501_024(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_501_024(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_501_024 + + + +}//end group TP501_CLI + +group TP502_HOLD { + +/* +* @desc TC_502_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_001()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_001 + + +/* +* @desc TC_502_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_002()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_002 + + +/* +* @desc TC_502_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_003(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_003(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_003()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_003 + +/* +* @desc TC_502_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_004()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_004 + +/* +* @desc TC_502_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_005()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_005 + +/* +* @desc TC_502_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_006(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_006()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_006 + +/* +* @desc TC_502_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_502_007(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_502_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_502_007()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_502_007 + +}//end group TP502_HOLD + + +group TP503_TP { + /* +* @desc TC_503_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_503_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_503_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_503_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_503_001 + + +/* +* @desc TC_503_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_503_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_503_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_503_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_503_002 + +}//end group TP503_TP + +group TP504_CONF { + /* +* @desc TC_504_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_504_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_504_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_504_001(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_504_001 + + +/* +* @desc TC_504_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_504_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_504_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_504_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_504_002 + + +/* +* @desc TC_504_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_504_003(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_504_003(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_504_003(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_504_003 + + +/* +* @desc TC_504_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_504_004(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_504_004(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_504_004(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_504_004 + + +/* +* @desc TC_504_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_504_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_504_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_504_005()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_504_005 + +}//end group TP504_CONF + + +group TP505_3PTY { + +/* +* @desc TC_505_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_505_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_505_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_505_001(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_505_001 + + +/* +* @desc TC_505_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_505_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_505_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_505_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_505_002 + + +/* +* @desc TC_505_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_505_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_505_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_505_003()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_505_003 + + +}//end group TP505_3PTY + +group TP506_COL { + /* +* @desc TC_506_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_506_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_506_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_506_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_506_001 + + +}//end group TP506_COL + +group TP507_MCID { + /* +* @desc TC_507_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_507_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_507_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_507_001()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_507_001 + + +/* +* @desc TC_507_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_507_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_507_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_507_002()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_507_002 + + +}//end group TP507_MCID + +group TP508_SUB { + /* +* @desc TC_508_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_508_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_508_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_508_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_508_001 + + +}//end group TP508_SUB + +group TP509_CDIV { + + /* +* @desc TC_509_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_509_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_509_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_509_001()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_509_001 + + +/* +* @desc TC_509_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_509_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_509_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_509_002()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_509_002 + + +/* +* @desc TC_509_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_509_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_509_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_509_003()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_509_003 + + +/* +* @desc TC_509_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_509_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_509_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_509_004()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_509_004 + + +}//end group TP509_CDIV + +group TP510_CW { + /* +* @desc TC_510_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_510_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_510_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_510_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_510_001 + + +/* +* @desc TC_510_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_510_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_510_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_510_002()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_510_002 + + +}//end group TP510_CW + +group TP511_UUS { + + /* +* @desc TC_511_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_511_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_511_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_511_001()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_511_001 + + +/* +* @desc TC_511_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_511_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_511_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_511_002()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_511_002 + +} // end group TP511_UUS + +group TP512_ECT { + +/* +* @desc TC_512_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_512_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_512_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_512_001()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_512_001 + + +/* +* @desc TC_512_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_512_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_512_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_512_002()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_512_002 + +} // end group TP512_ECT + +group TP513_CCBS { + +/* +* @desc TC_513_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_513_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_513_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_513_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_513_001 + +} // end group TP513_CCBS + +group TP514_CCNR { + +/* +* @desc TC_514_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_514_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_514_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_514_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_514_001 + +} // end group TP514_CCNR + +group TP515_ACR { + +/* +* @desc TC_515_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_515_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_515_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_515_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_515_001 + + +/* +* @desc TC_515_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_515_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_515_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_515_002()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_515_002 + +}//end group TP515_ACR + + +} // end group TP5_InterworkingFromSIPtoISUP +group TP6_InterworkingFromISUPtoSIP { + +group TP601_CLI { + /* +* @desc TC_601_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_001 + + +/* +* @desc TC_601_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_002 + + +/* +* @desc TC_601_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_003(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_003(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_003(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_003 + + +/* +* @desc TC_601_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_004(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_004(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_004(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_004 + + +/* +* @desc TC_601_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_005(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_005(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_005(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_005 + + +/* +* @desc TC_601_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_006(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_006(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_006(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_006 + + +/* +* @desc TC_601_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_007(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_007(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_007(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_007 + + +/* +* @desc TC_601_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_008(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_008(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_008(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_008 + + +/* +* @desc TC_601_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_009(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_009(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_009(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_009 + + +/* +* @desc TC_601_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_010(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_010(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_010(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_010 + + +/* +* @desc TC_601_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_011(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_011(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_011(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_011 + + +/* +* @desc TC_601_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_012(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_012(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_012(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_012 + +/* +* @desc TC_601_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_013(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_013(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_013(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_013 + +/* +* @desc TC_601_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_014(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_014(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_014(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_014 + +/* +* @desc TC_601_015 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_601_015(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_601_015(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_601_015(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_601_015 + +} // end group TP601_CLI + +group TP602_HOLD { + +/* +* @desc TC_602_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_602_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_602_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_602_001()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_602_001 + + +/* +* @desc TC_602_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_602_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_602_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_602_002()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_602_002 + + +/* +* @desc TC_602_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_602_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_602_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_602_003()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_602_003 + +/* +* @desc TC_602_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_602_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_602_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_602_004()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_602_004 + +/* +* @desc TC_602_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_602_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_602_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_602_005()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_602_005 + +/* +* @desc TC_602_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_602_006(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_602_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_602_006()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_602_006 +} // end group TP602_HOLD + +group TP603_TP { + +/* +* @desc TC_603_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_603_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_603_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_603_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_603_001 + + +/* +* @desc TC_603_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_603_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_603_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_603_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_603_002 + +} // end group TP603_TP + +group TP604_CONF { + +/* +* @desc TC_604_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_604_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_604_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_604_001(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_604_001 + + +/* +* @desc TC_604_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_604_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_604_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_604_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_604_002 + + +/* +* @desc TC_604_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_604_003(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_604_003(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_604_003(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_604_003 + + +/* +* @desc TC_604_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_604_004(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_604_004(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_604_004(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_604_004 + + +/* +* @desc TC_604_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_604_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_604_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_604_005()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_604_005 + +} // end group TP604_CONF + +group TP605_3PTY { + +/* +* @desc TC_605_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_605_001(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_605_001(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_605_001(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_605_001 + + +/* +* @desc TC_605_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_605_002(inout CSeq loc_CSeq_s, in integer VA) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_605_002(loc_CSeq_s, VA)); + v_isupBiccComponent.start(f_IsupBicc_TC_605_002(VA)) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_605_002 + + +/* +* @desc TC_605_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_605_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_605_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_605_003()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_605_003 + +} // end group TP605_3PTY + +group TP606_COL { + +/* +* @desc TC_606_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_606_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_606_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_606_001()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_606_001 + +} // end group TP606_COL + +group TP607_SUB { + +/* +* @desc TC_607_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_607_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_607_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_607_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_607_001 + +} // end group TP607_SUB + +group TP608_CUG { + +/* +* @desc TC_608_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_608_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_608_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_608_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_608_001 + + +/* +* @desc TC_608_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_608_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_608_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_608_002()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_608_002 + +} // end group TP608_CUG + +group TP609_CDIV { + +/* +* @desc TC_609_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_609_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_609_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_609_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_609_001 + +} // end group TP609_CDIV + +group TP610_UUS { + +/* +* @desc TC_610_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_001()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_001 + + +/* +* @desc TC_610_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_002()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_002 + + +/* +* @desc TC_610_003 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_003(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_003(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_003()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_003 + + +/* +* @desc TC_610_004 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_004(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_004(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_004()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_004 + + +/* +* @desc TC_610_005 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_005(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_005(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_005()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_005 + + +/* +* @desc TC_610_006 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_006(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_006(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_006()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_006 + + +/* +* @desc TC_610_007 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_007(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_007(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_007()) ; + + // synchronize both PTCs on 2 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_007 + + +/* +* @desc TC_610_008 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_008(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_008(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_008()) ; + + // synchronize both PTCs on 4 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_008 + + +/* +* @desc TC_610_009 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_009(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_009(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_009()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_009 + + +/* +* @desc TC_610_010 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_010(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_010(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_010()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_010 + + +/* +* @desc TC_610_011 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_011(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_011(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_011()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_011 + + +/* +* @desc TC_610_012 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_012(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_012(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_012()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_012 + + +/* +* @desc TC_610_013 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_013(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_013(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_013()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_013 + + +/* +* @desc TC_610_014 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_014(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_014(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_014()) ; + + // synchronize both PTCs on 3 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_014 + + +/* +* @desc TC_610_015 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_610_015(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_610_015(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_610_015()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_610_015 + +} // end group TP610_UUS + +group TP611_ECT { + +/* +* @desc TC_611_001 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_611_001(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_611_001(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_611_001()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_sync1, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_611_001 + + +/* +* @desc TC_611_002 +* @param loc_CSeq_s Transaction Id +*/ +testcase TC_611_002(inout CSeq loc_CSeq_s) +runs on ServerSyncComp +system TestAdapter { + //Variables + var SipComponent v_sipComponent ; + var IsupBiccComponent v_isupBiccComponent ; + + f_cf00Up(v_sipComponent, v_isupBiccComponent); + + //Start + f_IncCSeq(loc_CSeq_s); v_sipComponent.start(f_Sip_TC_611_002(loc_CSeq_s)); + v_isupBiccComponent.start(f_IsupBicc_TC_611_002()) ; + + // synchronize both PTCs on 5 sychronization points + f_serverSync2ClientsAndStop({c_prDone, c_uPlane, c_uPlane, c_tbDone}); + + f_cfTwoPtcsDown(v_sipComponent, v_isupBiccComponent); + +} //endTC_611_002 + +}//end group TP611_ECT + +}//end group TP6_InterworkingFromISUPtoSIP +}//end group SupplementaryServices + + +} // end module SipIsup_Testcases diff --git a/AtsCommon/SipIsup_TypesAndValues.ttcn b/AtsCommon/SipIsup_TypesAndValues.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..bc2382dab06227426861f95b2aefc819c54723a0 --- /dev/null +++ b/AtsCommon/SipIsup_TypesAndValues.ttcn @@ -0,0 +1,28 @@ +/* + * @author STF 276 + * @version $Id$ + * @desc Specifies component types used by the IPv6 ATS. + * Definitions are based on component type definitions + * from IPv6, SCOP and common synchronization libraries. + * + */ + module SipIsup_TypesAndValues { + + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_AbstractData all; + import from LibCommon_Time all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + const charstring c_resourceUnavailable := "Make internal resource reservation unsuccessful"; + + type integer UInt2 (0..3); + type integer UInt3 (0..7); + type integer UInt4 (0..15); + type integer UInt5 (0..31); + type integer UInt6 (0..63); + type integer UInt8 (0..255); + +} // end module SipIsup_TypesAndValues diff --git a/IsupAts/SipIsup_ISUP_Constants.ttcn b/IsupAts/SipIsup_ISUP_Constants.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..769ab1eda1e2809a05204f9b39dddceb43f29e0e --- /dev/null +++ b/IsupAts/SipIsup_ISUP_Constants.ttcn @@ -0,0 +1,1027 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides ISUP/BICC-related constants used by the test component +*/ +module SipIsup_ISUP_Constants +{ + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + import from SipIsup_ISUP_ParamTypes all; + +group constants +{ + +/* Value 'Connected' of bit field element 'action indicator' in IE 'Action indicator'. */ +const Bit1 c_AI_actInd_conn := '0'B; + +/* Value 'no indication' of bit field element 'Called party's category indicator' in IE 'Backward call Indicators'. */ +const Bit2 c_BCI_cldPcatInd_noInd := '00'B; + +/* Value 'ordinary subscriber' of bit field element 'Called party's category indicator' in IE 'Backward call Indicators'. */ +const Bit2 c_BCI_cldPcatInd_ordSub := '01'B; + +/* Value 'payphone' of bit field element 'Called party's category indicator' in IE 'Backward call Indicators'. */ +const Bit2 c_BCI_cldPcatInd_payPh := '10'B; + +/* Value 'connect when free (national use)' of bit field element 'Called party status indicator' in IE 'Backward call Indicators'. */ +const Bit2 c_BCI_cldPstatInd_conWfree := '10'B; + +/* Value 'no indication' of bit field element 'Called party status indicator' in IE 'Backward call Indicators'. */ +const Bit2 c_BCI_cldPstatInd_noInd := '00'B; + +/* Value 'subscriber free' of bit field element 'Called party status indicator' in IE 'Backward call Indicators'. */ +const Bit2 c_BCI_cldPstatInd_subFree := '01'B; + +/* Value 'incoming echo control device included' of bit field element 'Echo control device indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_eCtrlDevInd_incl := '1'B; + +/* Value 'incoming echo control device not included' of bit field element 'Echo control device indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_eCtrlDevInd_notIncl := '0'B; + +/* Value 'interworking encountered' of bit field element 'Interworking indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_interwInd_Interw := '1'B; + +/* Value 'no interworking encountered (Signalling System No. 7 all the way)' of bit field element 'Interworking indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_interwInd_noInterw := '0'B; + +/* Value 'terminating access ISDN' of bit field element 'ISDN access indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_isdnAccInd_ISDN := '1'B; + +/* Value 'terminating access non-ISDN' of bit field element 'ISDN access indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_isdnAccInd_notISDN := '0'B; + +/* Value 'ISUP not used all the way' of bit field element 'ISDN user part indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_isdnUpInd_NotUsed := '0'B; + +/* Value 'ISUP used all the way' of bit field element 'ISDN user part indicator' in IE 'Backward call Indicators'. */ +const Bit1 c_BCI_isdnUpInd_used := '1'B; + +/* Value 'CCBS possible' of element 'Diagnostics' in IE 'Cause'. */ +const octetstring c_CAU_cDiagn_CCBSposs := '01'O; + +/* Value 'User-to-User parameter name' of element 'Diagnostics' in IE 'Cause'. */ +const octetstring c_CAU_cDiagn_uupName := '2A'O; + +/* Value 'Network beyond interworking point' of bit field element 'Location' in IE 'Cause'. */ +const Bit4 c_CAU_cLocation_ntwBeyond := '1010'B; + +/* Value 'CCNR possible' of bit field element 'CCNR possible indicator' in IE 'CCNR possible indicator'. */ +const Bit1 c_CCNPI_ccnrPosblInd_notPsbl := '1'B; + +/* Value 'CCNR not possible' of bit field element 'CCNR possible indicator' in IE 'CCNR possible indicator'. */ +const Bit1 c_CCNPI_ccnrPosblInd_psbl := '0'B; + +/* Value 'presentation allowed with redirection number' of bit field element 'Notification subscription options' in IE 'Call diversion information'. */ +const Bit3 c_CDI_notSubscrOptions_alwdWith := '010'B; + +/* Value 'presentation allowed without redirection number' of bit field element 'Notification subscription options' in IE 'Call diversion information'. */ +const Bit3 c_CDI_notSubscrOptions_alwdWithout := '011'B; + +/* Value 'presentation not allowed' of bit field element 'Notification subscription options' in IE 'Call diversion information'. */ +const Bit3 c_CDI_notSubscrOptions_notAlwd := '001'B; + +/* Value 'Unknown' of bit field element 'Notification subscription options' in IE 'Call diversion information'. */ +const Bit3 c_CDI_notSubscrOptions_unknown := '000'B; + +/* Value 'deflection during alerting' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_defAlert := '0100'B; + +/* Value 'deflection immediate response' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_defImRsp := '0101'B; + +/* Value 'no reply' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_noRepl := '0010'B; + +/* Value 'mobile subscriber not reachable' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_notReach := '0110'B; + +/* Value 'User busy' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_uBusy := '0001'B; + +/* Value 'unconditional' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_unCond := '0011'B; + +/* Value 'Unknown' of bit field element 'Redirecting reason' in IE 'Call diversion information'. */ +const Bit4 c_CDI_redirReason_unkn := '0000'B; + +/* Value 'hardware failure oriented' of bit field element 'Circuit Group Supervision Message Type Indicator' in IE 'Circuit Group Supervision Message Type'. */ +const Bit2 c_CGBMT_cgSupMtypeInd_hwOrtd := '01'B; + +/* Value 'maintenance oriented' of bit field element 'Circuit Group Supervision Message Type Indicator' in IE 'Circuit Group Supervision Message Type'. */ +const Bit2 c_CGBMT_cgSupMtypeInd_maint := '00'B; + +/* Value 'routing to internal network number allowed' of bit field element 'Internal network number indicator' in IE 'Called party number'. */ +const Bit1 c_CLD_intNtwNum_alwd := '0'B; + +/* Value 'routing to internal network number not allowed' of bit field element 'Internal network number indicator' in IE 'Called party number'. */ +const Bit1 c_CLD_intNtwNum_notAlwd := '1'B; + +/* Value 'international number' of bit field element 'Nature of address indicator' in IE 'Called party number'. */ +const Bit7 c_CLD_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Called party number'. */ +const Bit7 c_CLD_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Called party number'. */ +const Bit7 c_CLD_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Called party number'. */ +const Bit7 c_CLD_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown (national use)' of bit field element 'Nature of address indicator' in IE 'Called party number'. */ +const Bit7 c_CLD_natAddrInd_unknown := '0000010'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Called party number'. */ +const Bit3 c_CLD_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Called party number'. */ +const Bit3 c_CLD_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Called party number'. */ +const Bit3 c_CLD_numPlanInd_telex := '100'B; + +/* Value 'unknown' of bit field element 'Numbering plan indicator' in IE 'Called party number'. */ +const Bit3 c_CLD_numPlanInd_unknown := '000'B; + +/* Value 'presentation allowed' of bit field element 'Address presentation restricted indicator' in IE 'Calling party number'. */ +const Bit2 c_CLI_aprInd_alwd := '00'B; + +/* Value 'address not available' of bit field element 'Address presentation restricted indicator' in IE 'Calling party number'. */ +const Bit2 c_CLI_aprInd_aNotAv := '10'B; + +/* Value 'presentation restricted' of bit field element 'Address presentation restricted indicator' in IE 'Calling party number'. */ +const Bit2 c_CLI_aprInd_restr := '01'B; + +/* Value 'reserved for restriction by the network' of bit field element 'Address presentation restricted indicator' in IE 'Calling party number'. */ +const Bit2 c_CLI_aprInd_restrNtwk := '11'B; + +/* Value 'routing to internal network number allowed' of bit field element 'Internal network number indicator' in IE 'Calling party number'. */ +const Bit1 c_CLI_intNtwNum_alwd := '0'B; + +/* Value 'routing to internal network number not allowed' of bit field element 'Internal network number indicator' in IE 'Calling party number'. */ +const Bit1 c_CLI_intNtwNum_notAlwd := '1'B; + +/* Value 'international number' of bit field element 'Nature of address indicator' in IE 'Calling party number'. */ +const Bit7 c_CLI_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Calling party number'. */ +const Bit7 c_CLI_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Calling party number'. */ +const Bit7 c_CLI_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Calling party number'. */ +const Bit7 c_CLI_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown' of bit field element 'Nature of address indicator' in IE 'Calling party number'. */ +const Bit7 c_CLI_natAddrInd_unknown := '0000000'B; + +/* Value 'complete' of bit field element 'Number incomplete indicator' in IE 'Calling party number'. */ +const Bit1 c_CLI_numIncmplInd_cmpl := '0'B; + +/* Value 'incomplete' of bit field element 'Number incomplete indicator' in IE 'Calling party number'. */ +const Bit1 c_CLI_numIncmplInd_inCmpl := '1'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Calling party number'. */ +const Bit3 c_CLI_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Calling party number'. */ +const Bit3 c_CLI_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Calling party number'. */ +const Bit3 c_CLI_numPlanInd_telex := '100'B; + +/* Value 'network provided' of bit field element 'Screening indicator' in IE 'Calling party number'. */ +const Bit2 c_CLI_screenInd_ntwProv := '11'B; + +/* Value 'user provided, verified and passed' of bit field element 'Screening indicator' in IE 'Calling party number'. */ +const Bit2 c_CLI_screenInd_userProv := '01'B; + +/* Value 'presentation allowed' of bit field element 'Address presentation restricted indicator' in IE 'Connected number'. */ +const Bit2 c_CNN_aprInd_alwd := '00'B; + +/* Value 'address not available' of bit field element 'Address presentation restricted indicator' in IE 'Connected number'. */ +const Bit2 c_CNN_aprInd_aNotAv := '10'B; + +/* Value 'presentation restricted' of bit field element 'Address presentation restricted indicator' in IE 'Connected number'. */ +const Bit2 c_CNN_aprInd_restr := '01'B; + +/* Value 'reserved for restriction by the network' of bit field element 'Address presentation restricted indicator' in IE 'Connected number'. */ +const Bit2 c_CNN_aprInd_restrNtwk := '11'B; + +/* Value 'international number' of bit field element 'Nature of address indicator' in IE 'Connected number'. */ +const Bit7 c_CNN_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Connected number'. */ +const Bit7 c_CNN_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Connected number'. */ +const Bit7 c_CNN_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Connected number'. */ +const Bit7 c_CNN_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown (national use)' of bit field element 'Nature of address indicator' in IE 'Connected number'. */ +const Bit7 c_CNN_natAddrInd_unknown := '0000010'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Connected number'. */ +const Bit3 c_CNN_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Connected number'. */ +const Bit3 c_CNN_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Connected number'. */ +const Bit3 c_CNN_numPlanInd_telex := '100'B; + +/* Value 'network provided' of bit field element 'Screening indicator' in IE 'Connected number'. */ +const Bit2 c_CNN_screenInd_ntwProv := '11'B; + +/* Value 'user provided, verified and passed' of bit field element 'Screening indicator' in IE 'Connected number'. */ +const Bit2 c_CNN_screenInd_userProv := '01'B; + +/* Value 'notification required' of bit field element 'connect Type' in IE 'Connect Type'. */ +const Bit2 c_CNT_connType_notReq := '00'B; + +/* Value 'ordinary calling subscriber' of bit field element 'Calling party's category value' in IE 'Calling party's category'. */ +const Bit8 c_CPC_cPartyCat_ordSubs := '00001010'B; + +/* Value 'continuity check failed' of bit field element 'Continuity indicator' in IE 'Continuity indicators'. */ +const Bit1 c_CTI_contInd_failed := '0'B; + +/* Value 'continuity check successful' of bit field element 'Continuity indicator' in IE 'Continuity indicators'. */ +const Bit1 c_CTI_contInd_succ := '1'B; + +/* Value 'ALERTING' of bit field element 'event indicator' in IE 'Event information'. */ +const Bit7 c_EVI_eventInd_alert := '0000001'B; + +/* Value 'call forwarded on busy' of bit field element 'event indicator' in IE 'Event information'. */ +const Bit7 c_EVI_eventInd_cfb := '0000100'B; + +/* Value 'call forwarded on no reply (national use)' of bit field element 'event indicator' in IE 'Event information'. */ +const Bit7 c_EVI_eventInd_cfNoRepl := '0000101'B; + +/* Value 'call forwarded unconditional (national use)' of bit field element 'event indicator' in IE 'Event information'. */ +const Bit7 c_EVI_eventInd_cfu := '0000110'B; + +/* Value 'in-band information or an appropriate pattern is now available' of bit field element 'event indicator' in IE 'Event information'. */ +const Bit7 c_EVI_eventInd_inBand := '0000011'B; + +/* Value 'PROGRESS' of bit field element 'event indicator' in IE 'Event information'. */ +const Bit7 c_EVI_eventInd_progr := '0000010'B; + +/* Value 'end-to-end information available' of bit field element 'End-to-end information indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_eToEndInfoInd_EtoEinfo := '1'B; + +/* Value 'no end-to-end information available' of bit field element 'End-to-end information indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_eToEndInfoInd_noEtoEinfo := '0'B; + +/* Value 'no end-to-end method available (only link-by-link method available)' of bit field element 'End-to-end method available' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_eToEndMavail_noEmethod := '00'B; + +/* Value 'pass-along and SCCP methods available (national use)' of bit field element 'End-to-end method available' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_eToEndMavail_paSccp := '11'B; + +/* Value 'pass-along method available (national use)' of bit field element 'End-to-end method available' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_eToEndMavail_passAlong := '01'B; + +/* Value 'SCCP method available' of bit field element 'End-to-end method available' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_eToEndMavail_sccp := '10'B; + +/* Value 'interworking encountered' of bit field element 'Interworking indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_interwInd_Interw := '0'B; + +/* Value 'no interworking encountered (Signalling System No. 7 all the way)' of bit field element 'Interworking indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_interwInd_noInterw := '1'B; + +/* Value 'terminating access ISDN' of bit field element 'ISDN access indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_isdnAccInd_ISDN := '1'B; + +/* Value 'terminating access non-ISDN' of bit field element 'ISDN access indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_isdnAccInd_notISDN := '0'B; + +/* Value 'ISUP not used all the way' of bit field element 'ISDN user part indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_isdnUpInd_NotUsed := '0'B; + +/* Value 'ISUP used all the way' of bit field element 'ISDN user part indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_isdnUpInd_used := '1'B; + +/* Value 'ISDN user part not required all the way' of bit field element 'ISDN user part preference indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_isdnUpPrefInd_notReq := '01'B; + +/* Value 'ISDN user part preferred all the way' of bit field element 'ISDN user part preference indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_isdnUpPrefInd_pref := '00'B; + +/* Value 'ISDN user part required all the way' of bit field element 'ISDN user part preference indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_isdnUpPrefInd_requi := '10'B; + +/* Value 'call to be treated as an international' of bit field element 'National/international call indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_nInatCallInd_internat := '1'B; + +/* Value 'call to be treated as a national call' of bit field element 'National/international call indicator' in IE 'Forward call Indicators'. */ +const Bit1 c_FCI_nInatCallInd_nat := '0'B; + +/* Value 'connectionless and connection oriented methods available (national use)' of bit field element 'SCCP method indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_sccpMind_both := '11'B; + +/* Value 'connectionless method available (national use' of bit field element 'SCCP method indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_sccpMind_conLess := '01'B; + +/* Value 'connection oriented method available' of bit field element 'SCCP method indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_sccpMind_conOrient := '10'B; + +/* Value 'no indication' of bit field element 'SCCP method indicator' in IE 'Forward call Indicators'. */ +const Bit2 c_FCI_sccpMind_noInd := '00'B; + +/* Value 'presentation allowed' of bit field element 'Address presentation restricted indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_aprInd_alwd := '00'B; + +/* Value 'address not available' of bit field element 'Address presentation restricted indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_aprInd_aNotAv := '10'B; + +/* Value 'presentation restricted' of bit field element 'Address presentation restricted indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_aprInd_restr := '01'B; + +/* Value 'reserved for restriction by the network' of bit field element 'Address presentation restricted indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_aprInd_restrNtwk := '11'B; + +/* Value 'international number' of bit field element 'Nature of address indicator' in IE 'Generic number'. */ +const Bit7 c_GEN_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Generic number'. */ +const Bit7 c_GEN_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Generic number'. */ +const Bit7 c_GEN_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Generic number'. */ +const Bit7 c_GEN_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown (national use)' of bit field element 'Nature of address indicator' in IE 'Generic number'. */ +const Bit7 c_GEN_natAddrInd_unknown := '0000010'B; + +/* Value 'complete' of bit field element 'Number incomplete indicator' in IE 'Generic number'. */ +const Bit1 c_GEN_numIncmplInd_cmpl := '0'B; + +/* Value 'incomplete' of bit field element 'Number incomplete indicator' in IE 'Generic number'. */ +const Bit1 c_GEN_numIncmplInd_inCmpl := '1'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Generic number'. */ +const Bit3 c_GEN_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Generic number'. */ +const Bit3 c_GEN_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Generic number'. */ +const Bit3 c_GEN_numPlanInd_telex := '100'B; + +/* Value 'additional called number' of bit field element 'Number qualifier indicator' in IE 'Generic number'. */ +const Bit8 c_GEN_numQualInd_cldNum := '00000001'B; + +/* Value 'additional calling party number' of bit field element 'Number qualifier indicator' in IE 'Generic number'. */ +const Bit8 c_GEN_numQualInd_cliNum := '00000110'B; + +/* Value 'additional connected number' of bit field element 'Number qualifier indicator' in IE 'Generic number'. */ +const Bit8 c_GEN_numQualInd_connNum := '00000101'B; + +/* Value 'network provided' of bit field element 'Screening indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_screenInd_ntwProv := '11'B; + +/* Value 'user provided, not verified' of bit field element 'Screening indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_screenInd_userNotVerif := '00'B; + +/* Value 'user provided, verified and passed' of bit field element 'Screening indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_screenInd_userProv := '01'B; + +/* Value 'user provided, verified and failed' of bit field element 'Screening indicator' in IE 'Generic number'. */ +const Bit2 c_GEN_screenInd_userProvFailed := '10'B; + +/* Value 'conference disconnected' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_confDisc := '1000011'B; + +/* Value 'conference established' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_confEst := '1000010'B; + +/* Value 'call is diverting' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_diverting := '1111011'B; + +/* Value 'isolated' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_isolated := '1000101'B; + +/* Value 'reattached' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_reattached := '1000110'B; + +/* Value 'remote hold' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_remHold := '1111001'B; + +/* Value 'remote retrieval' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_remRetriv := '1111010'B; + +/* Value 'call is a waiting call' of bit field element 'generic notification indicator' in IE 'Generic notification indicator'. */ +const Bit7 c_GNI_gNotInd_waitCall := '1100000'B; + +/* Value 'request' of bit field element 'type' in IE 'Loop prevention indicators'. */ +const Bit1 c_LPI_lopReqResp_req := '0'B; + +/* Value 'response' of bit field element 'type' in IE 'Loop prevention indicators'. */ +const Bit1 c_LPI_lopReqResp_rsp := '1'B; + +/* Value 'insufficient information' of bit field element 'response' in IE 'Loop prevention indicators'. */ +const Bit2 c_LPI_lopResponse_insuff := '00'B; + +/* Value 'no loop exists' of bit field element 'response' in IE 'Loop prevention indicators'. */ +const Bit2 c_LPI_lopResponse_noLoop := '01'B; + +/* Value 'simultaneous transfer' of bit field element 'response' in IE 'Loop prevention indicators'. */ +const Bit2 c_LPI_lopResponse_simult := '10'B; + +/* Value 'discard message' of bit field element 'Discard message indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_discMsgInd_discard := '1'B; + +/* Value 'do not discard message' of bit field element 'Discard message indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_discMsgInd_noDiscard := '0'B; + +/* Value 'discard information' of bit field element 'Pass on not possible indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_ponpInd_discInfo := '1'B; + +/* Value 'release call' of bit field element 'Pass on not possible indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_ponpInd_release := '0'B; + +/* Value 'do not release call' of bit field element 'Release call indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_releaseCallInd_noRel := '0'B; + +/* Value 'release call' of bit field element 'Release call indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_releaseCallInd_release := '1'B; + +/* Value 'do not send notification' of bit field element 'Send notification indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_sendNotificInd_notSnotif := '0'B; + +/* Value 'send notification' of bit field element 'Send notification indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_sendNotificInd_sendNotif := '1'B; + +/* Value 'end node interpretation' of bit field element 'Transit at intermediate exchange indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_transIntmedExchInd_endToEnd := '1'B; + +/* Value 'transit interpretation' of bit field element 'Transit at intermediate exchange indicator' in IE 'Message compatibility info'. */ +const Bit1 c_MCPI_transIntmedExchInd_transit := '0'B; + +/* Value 'MCID not requested' of bit field element 'MCID request indicator value' in IE 'MCID request indicators'. */ +const Bit1 c_MRQI_mcidRqInd_notReq := '0'B; + +/* Value 'MCID requested' of bit field element 'MCID request indicator value' in IE 'MCID request indicators'. */ +const Bit1 c_MRQI_mcidRqInd_req := '1'B; + +/* Value 'MCID included' of bit field element 'MCID response indicator value' in IE 'MCID response indicators'. */ +const Bit1 c_MRSI_mcidRsInd_incl := '1'B; + +/* Value 'MCID not included' of bit field element 'MCID response indicator value' in IE 'MCID response indicators'. */ +const Bit1 c_MRSI_mcidRsInd_notIncl := '0'B; + +/* Value 'COT to be expected' of bit field element 'Continuity check indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_cotChkInd_expected := '10'B; + +/* Value 'no COT to be expected' of bit field element 'Continuity check indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_cotChkInd_notExp := '00'B; + +/* Value 'continuity check not required' of bit field element 'Continuity check indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_cotChkInd_notReq := '00'B; + +/* Value 'continuity check performed on a previous circuit' of bit field element 'Continuity check indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_cotChkInd_performed := '10'B; + +/* Value 'continuity check required on this circuit' of bit field element 'Continuity check indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_cotChkInd_requi := '01'B; + +/* Value 'outgoing echo control device included' of bit field element 'Echo control device indicator' in IE 'Nature of connection indicators'. */ +const Bit1 c_NCI_eCtrlDevInd_included := '1'B; + +/* Value 'outgoing echo control device not included' of bit field element 'Echo control device indicator' in IE 'Nature of connection indicators'. */ +const Bit1 c_NCI_eCtrlDevInd_notIncl := '0'B; + +/* Value 'no satellite circuit in the connection' of bit field element 'Satellite indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_satInd_none := '00'B; + +/* Value 'one satellite circuit in the connection' of bit field element 'Satellite indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_satInd_one := '01'B; + +/* Value 'two satellite circuits in the connection' of bit field element 'Satellite indicator' in IE 'Nature of connection indicators'. */ +const Bit2 c_NCI_satInd_two := '10'B; + +/* Value 'call diversion may occur' of bit field element 'call diversion may occur indicator' in IE 'Optional Backward call Indicators'. */ +const Bit1 c_OBCI_cDivMayOcc_mayOcc := '1'B; + +/* Value 'no indication' of bit field element 'call diversion may occur indicator' in IE 'Optional Backward call Indicators'. */ +const Bit1 c_OBCI_cDivMayOcc_noInd := '0'B; + +/* Value 'in-band information or an appropriate pattern is now available' of bit field element 'in band information indicator' in IE 'Optional Backward call Indicators'. */ +const Bit1 c_OBCI_inBandInfoInd_available := '1'B; + +/* Value 'no indication' of bit field element 'in band information indicator' in IE 'Optional Backward call Indicators'. */ +const Bit1 c_OBCI_inBandInfoInd_noInd := '0'B; + +/* Value 'presentation allowed' of bit field element 'Address presentation restricted indicator' in IE 'Original called number'. */ +const Bit2 c_OCN_aprInd_alwd := '00'B; + +/* Value 'address not available' of bit field element 'Address presentation restricted indicator' in IE 'Original called number'. */ +const Bit2 c_OCN_aprInd_aNotAlwd := '10'B; + +/* Value 'presentation restricted' of bit field element 'Address presentation restricted indicator' in IE 'Original called number'. */ +const Bit2 c_OCN_aprInd_restr := '01'B; + +/* Value 'reserved for restriction by the network' of bit field element 'Address presentation restricted indicator' in IE 'Original called number'. */ +const Bit2 c_OCN_aprInd_restrNtwk := '11'B; + +/* Value 'international number' of bit field element 'Nature of address indicator' in IE 'Original called number'. */ +const Bit7 c_OCN_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Original called number'. */ +const Bit7 c_OCN_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Original called number'. */ +const Bit7 c_OCN_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Original called number'. */ +const Bit7 c_OCN_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown (national use)' of bit field element 'Nature of address indicator' in IE 'Original called number'. */ +const Bit7 c_OCN_natAddrInd_unknown := '0000010'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Original called number'. */ +const Bit3 c_OCN_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Original called number'. */ +const Bit3 c_OCN_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Original called number'. */ +const Bit3 c_OCN_numPlanInd_telex := '100'B; + +/* Value 'not requested' of bit field element 'Connected line identity request indicator' in IE 'Optional forward call indicators'. */ +const Bit1 c_OFCI_conLineIdRqInd_notReq := '0'B; + +/* Value 'requested' of bit field element 'Connected line identity request indicator' in IE 'Optional forward call indicators'. */ +const Bit1 c_OFCI_conLineIdRqInd_req := '1'B; + +/* Value 'non-CUG call' of bit field element 'Closed user group call indicator' in IE 'Optional forward call indicators'. */ +const Bit2 c_OFCI_cugCallInd_nonCug := '00'B; + +/* Value 'closed user group call, outgoing access allowed' of bit field element 'Closed user group call indicator' in IE 'Optional forward call indicators'. */ +const Bit2 c_OFCI_cugCallInd_outAllwd := '10'B; + +/* Value 'closed user group call, outgoing access not allowed' of bit field element 'Closed user group call indicator' in IE 'Optional forward call indicators'. */ +const Bit2 c_OFCI_cugCallInd_outNotAllwd := '11'B; + +/* releaseCallIndicator +Value 'Release call' of bit field element 'Release call indicator' in IE 'Parameter compatibility information/ParameterInstructionIndicator'. */ +const Bit1 c_PCI_relCall_ind_release := '0'B; + +/* Value 'presentation allowed' of bit field element 'Address presentation restricted indicator' in IE 'Redirecting number'. */ +const Bit2 c_RDGN_aprInd_alwd := '00'B; + +/* Value 'address not available' of bit field element 'Address presentation restricted indicator' in IE 'Redirecting number'. */ +const Bit2 c_RDGN_aprInd_aNotAv := '10'B; + +/* Value 'presentation restricted' of bit field element 'Address presentation restricted indicator' in IE 'Redirecting number'. */ +const Bit2 c_RDGN_aprInd_restr := '01'B; + +/* Value 'reserved for restriction by the network' of bit field element 'Address presentation restricted indicator' in IE 'Redirecting number'. */ +const Bit2 c_RDGN_aprInd_restrNtwk := '11'B; + +/* Value 'international number' of bit field element 'Nature of address indicator' in IE 'Redirecting number'. */ +const Bit7 c_RDGN_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Redirecting number'. */ +const Bit7 c_RDGN_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Redirecting number'. */ +const Bit7 c_RDGN_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Redirecting number'. */ +const Bit7 c_RDGN_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown (national use)' of bit field element 'Nature of address indicator' in IE 'Redirecting number'. */ +const Bit7 c_RDGN_natAddrInd_unknown := '0000010'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Redirecting number'. */ +const Bit3 c_RDGN_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Redirecting number'. */ +const Bit3 c_RDGN_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Redirecting number'. */ +const Bit3 c_RDGN_numPlanInd_telex := '100'B; + +/* Value 'no reply (national use)' of bit field element 'Original redirection reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_origRedirReason_noReply := '0010'B; + +/* Value 'user busy (national use)' of bit field element 'Original redirection reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_origRedirReason_uBusy := '0001'B; + +/* Value 'unconditional (national use)' of bit field element 'Original redirection reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_origRedirReason_uncond := '0011'B; + +/* Value 'unknown/not available' of bit field element 'Original redirection reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_origRedirReason_unknown := '0000'B; + +/* Value 'call diverted, all redirection information presentation restricted' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_divAllRestr := '100'B; + +/* Value 'call diverted' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_diverted := '011'B; + +/* Value 'call diversion, redirection number presentation restricted (national use)' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_divNumRestr := '110'B; + +/* Value 'no redirection (national use)' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_noRedir := '000'B; + +/* Value 'call rerouted, all redirection information presentation restricted' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_reRouAllRestr := '010'B; + +/* Value 'call rerouted, redirection number presentation restricted (national use)' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_reRouNumRestr := '101'B; + +/* Value 'call rerouted (national use)' of bit field element 'Redirecting indicator' in IE 'Redirection information'. */ +const Bit3 c_RDNI_redirectInd_reRouted := '001'B; + +/* Value 'deflection during alerting' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_deflAlert := '0100'B; + +/* Value 'deflection immediate response' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_deflImm := '0101'B; + +/* Value 'mobile subscriber not reachable' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_mobSubsnReach := '0110'B; + +/* Value 'no reply' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_noReply := '0010'B; + +/* Value 'user busy' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_uBusy := '0001'B; + +/* Value 'unconditional' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_uncond := '0011'B; + +/* Value 'unknown/not available' of bit field element 'Redirecting reason' in IE 'Redirection information'. */ +const Bit4 c_RDNI_redirReason_unknown := '0000'B; + +/* Value 'presentation allowed' of bit field element 'Address presentation restricted indicator' in IE 'Redirection number'. */ +const Bit2 c_RDNN_aprInd_alwd := '00'B; + +/* Value 'address not available' of bit field element 'Address presentation restricted indicator' in IE 'Redirection number'. */ +const Bit2 c_RDNN_aprInd_aNotAv := '10'B; + +/* Value 'presentation restricted' of bit field element 'Address presentation restricted indicator' in IE 'Redirection number'. */ +const Bit2 c_RDNN_aprInd_restr := '01'B; + +/* Value 'reserved for restriction by the network' of bit field element 'Address presentation restricted indicator' in IE 'Redirection number'. */ +const Bit2 c_RDNN_aprInd_restrNtwk := '11'B; + +/* Value 'international numbe' of bit field element 'Nature of address indicator' in IE 'Redirection number'. */ +const Bit7 c_RDNN_natAddrInd_internat := '0000100'B; + +/* Value 'national (significant) number' of bit field element 'Nature of address indicator' in IE 'Redirection number'. */ +const Bit7 c_RDNN_natAddrInd_natSig := '0000011'B; + +/* Value 'network-specific number (national use)' of bit field element 'Nature of address indicator' in IE 'Redirection number'. */ +const Bit7 c_RDNN_natAddrInd_ntwSpec := '0000101'B; + +/* Value 'subscriber number (national use)' of bit field element 'Nature of address indicator' in IE 'Redirection number'. */ +const Bit7 c_RDNN_natAddrInd_subscr := '0000001'B; + +/* Value 'unknown (national use)' of bit field element 'Nature of address indicator' in IE 'Redirection number'. */ +const Bit7 c_RDNN_natAddrInd_unknown := '0000010'B; + +/* Value 'Data numbering plan (ITU-T Recommendation X.121) (national use)' of bit field element 'Numbering plan indicator' in IE 'Redirection number'. */ +const Bit3 c_RDNN_numPlanInd_data := '011'B; + +/* Value 'ISDN (Telephony) numbering plan (ITU-T Recommendation E.164)' of bit field element 'Numbering plan indicator' in IE 'Redirection number'. */ +const Bit3 c_RDNN_numPlanInd_isdn := '001'B; + +/* Value 'Telex numbering plan (ITU-T Recommendation F.69) (national use)' of bit field element 'Numbering plan indicator' in IE 'Redirection number'. */ +const Bit3 c_RDNN_numPlanInd_telex := '100'B; + +/* Value 'presentation allowed' of bit field element 'Presentation restricted indicator' in IE 'Redirection number restriction'. */ +const Bit2 c_RDNR_presRestrInd_allowed := '00'B; + +/* Value 'presentation restricted' of bit field element 'Presentation restricted indicator' in IE 'Redirection number restriction'. */ +const Bit2 c_RDNR_presRestrInd_restr := '01'B; + +/* Value 'network initiated' of bit field element 'Suspend resume indicator' in IE 'Suspend resume indicators'. */ +const Bit1 c_SRI_suspResInd_ntw := '1'B; + +/* Value 'ISDN subscriber initiated' of bit field element 'Suspend resume indicator' in IE 'Suspend resume indicators'. */ +const Bit1 c_SRI_suspResInd_user := '0'B; + +/* Value '3.1 kHz audio' of bit field element 'Transmission medium requirement value' in IE 'Transmission medium requirement'. */ +const Bit8 c_TMR_tmrValue_31Audio := '00000011'B; + +/* Value 'speech' of bit field element 'Transmission medium requirement value' in IE 'Transmission medium requirement'. */ +const Bit8 c_TMR_tmrValue_speech := '00000000'B; + +/* Value '64 kbit/s unrestricted' of bit field element 'Transmission medium requirement value' in IE 'Transmission medium requirement'. */ +const Bit8 c_TMR_tmrValue_64Kbs := '00000010'B; + +/* Value '64 kbit/s preferred' of bit field element 'Transmission medium requirement value' in IE 'Transmission medium requirement'. */ +const Bit8 c_TMR_tmrValue_64Kbs_pref := '00000110'B; + +/* Value 'Unrestricted digital information with tones/announcements' of bit field element 'Transmission medium requirement value' in IE 'Transmission medium requirement' */ +const Bit8 c_TMR_tmrValue_tones := '00000101'B; + +/* Value '3.1 kHz audio' of bit field element 'Information Transfer Capability' in IE 'User service information'. */ +const Bit5 c_USI_infoTrfCap_31Audio := '10000'B; + +/* Value 'Restricted digital information' of bit field element 'Information Transfer Capability' in IE 'User service information'. */ +const Bit5 c_USI_infoTrfCap_restr := '01001'B; + +/* Value 'Speech' of bit field element 'Information Transfer Capability' in IE 'User service information'. */ +const Bit5 c_USI_infoTrfCap_speech := '00000'B; + +/* Value 'Unrestricted digital information with tones/announcements' of bit field element 'Information Transfer Capability' in IE 'User service information'. */ +const Bit5 c_USI_infoTrfCap_tones := '10001'B; + +/* Value 'Unrestricted digital information' of bit field element 'Information Transfer Capability' in IE 'User service information'. */ +const Bit5 c_USI_infoTrfCap_unrestr := '01000'B; + +/* Value 'Video' of bit field element 'Information Transfer Capability' in IE 'User service information'. */ +const Bit5 c_USI_infoTrfCap_video := '11000'B; + +/* Value 'A-Law' of bit field element 'User Information Layer 1 Protocol Indicator' in IE 'User service information'. */ +const Bit5 c_USI_userInfoL1_ALaw := '00011'B; + +/* Value 'mu-Law' of bit field element 'User Information Layer 1 Protocol Indicator' in IE 'User service information'. */ +const Bit5 c_USI_userInfoL1_muLaw := '00010'B; + +/* Value 'Telephony' of bit field element 'High layer characteristics identification' in IE 'User service information'. */ +const Bit7 c_USI_hlc_telephony := '0000001'B; + +/* Value 'Facsimile Group 2/3 (Recommendation F.182' of bit field element 'High layer characteristics identification' in IE 'User service information'. */ +const Bit7 c_USI_hlc_fax2_3 := '0000100'B; + +/* Value 'user-to-user information discarded by the network' of bit field element 'Network discard indicator' in IE 'User-to-user indicators'. */ +const Bit1 c_UUI_netwDiscInd_discarded := '1'B; + +/* Value 'no information' of bit field element 'Network discard indicator' in IE 'User-to-user indicators'. */ +const Bit1 c_UUI_netwDiscInd_noInfo := '0'B; + +/* Value 'request' of bit field element 'service type indicator' in IE 'User-to-user indicators'. */ +const Bit1 c_UUI_service_ind_req := '0'B; + +/* Value 'response' of bit field element 'service type indicator' in IE 'User-to-user indicators'. */ +const Bit1 c_UUI_service_ind_rsp := '1'B; + +/* Value 'no information' of bit field element 'Service 1 request' in IE 'User-to-user indicators'. */ +const Bit2 c_UUI_service_req_noInfo := '00'B; + +/* Value 'request, not essential' of bit field element 'Service 1 request' in IE 'User-to-user indicators'. */ +const Bit2 c_UUI_service_req_notEss := '10'B; + +/* Value 'no information' of bit field element 'Service 1 response' in IE 'User-to-user indicators'. */ +const Bit2 c_UUI_service_rsp_noInfo := '00'B; + +/* Value 'not provided' of bit field element 'Service 1 response' in IE 'User-to-user indicators'. */ +const Bit2 c_UUI_service_rsp_notProv := '01'B; + +/* Value 'provided' of bit field element 'Service 1 response' in IE 'User-to-user indicators'. */ +const Bit2 c_UUI_service_rsp_prov := '10'B; + +/* Value 'request, essential' of bit field element 'Service 1 request' in IE 'User-to-user indicators'. */ +const Bit2 c_UUI_service_req_ess := '11'B; + +/* Value 'ordinary subscriber' for element callingPartysCategory inside Calling party's category parameter (CGC); Optional(O) format. (TX side).*/ +const Bit8 c_ISUP_CGC_cliPCat_ord_subs := '00001010'B; + +/* Value '1 satellite' for element satelliteIndicator inside Nature of connection indicators parameter (NCI); Fixed(F) format. (TX side).*/ +const Bit2 c_ISUP_NCI_satInd_1sat := '01'B; + +/* Value 'included' for element echoControlDeviceIndicator inside Nature of connection indicators parameter (NCI); Fixed(F) format. (TX side).*/ +const Bit1 c_ISUP_NCI_echoContrDevInd_incl := '1'B; + +/* Value 'Interworking encountered' for element interworkingIndicator inside Forward call indicators parameter (FCI); Fixed(F) format. (TX side).*/ +const Bit1 c_ISUP_FCI_interwInd_enc := '1'B; + +/* Value 'ISDN user part/BICC not used all the way' for element iSDNUserPartIndicator inside Forward call indicators parameter (FCI); Fixed(F) format. (TX side).*/ +const Bit1 c_ISUP_FCI_iSDNUserPartInd_notAlwUsed := '0'B; + +/* Value 'ISDN user part/BICC not required all the way' for element iSDNUserPartPrefIndicator inside Forward call indicators parameter (FCI); Fixed(F) format. (TX side).*/ +const Bit2 c_ISUP_FCI_iSDNUserPartPrefInd_notReq := '01'B; + +/* Value 'Originating access non-ISDN' for element iSDNAccessIndicator inside Forward call indicators parameter (FCI); Fixed(F) format. (TX side).*/ +const Bit1 c_ISUP_FCI_iSDNAccessInd_nonISDN := '0'B; + +/* Value 'network provided' for element screeningIndicator inside Calling party number parameter (CGN); Optional(O) format. (TX side).*/ +const Bit2 c_ISUP_CGN_screeningInd := '11'B; + +/* Value 'ISDN/Telephony (E.164)' for element numberingPlanIndicator inside Calling party number parameter (CGN); Optional(O) format. (TX side).*/ +const Bit3 c_ISUP_CGN_numbPlanInd_E164 := '001'B; + +/* Value 'complete' for element iNN inside Calling party number parameter (CGN); Optional(O) format. (TX side).*/ +const Bit1 c_ISUP_CGN_iNN_compl := '0'B; + +/* Value 'additional calling party number' for element numberQualifierIndicator inside Generic number parameter (GNU); Optional(O) format. (TX side).*/ +const Bit8 c_ISUP_GNU_numQualifierInd_add := '00000110'B; + +/* Value 'user provided, not verified' for element screeningIndicator inside Generic number parameter (GNU); Optional(O) format. (TX side).*/ +const Bit2 c_ISUP_GNU_screenInd_upnv := '00'B; + +/* Value 'E.164' for element numberingPlanIndicator inside Generic number parameter (GNU); Optional(O) format. (TX side).*/ +const Bit3 c_ISUP_GNU_numbPlanInd_E164 := '001'B; + +/* Value 'complete' for element iNN inside Generic number parameter (GNU); Optional(O) format. (TX side).*/ +const Bit1 c_ISUP_GNU_iNN_compl := '0'B; + +}// end group constants + + +group functions +{ +/* Function f_char_to_BCD +* @desc: Returns BCD code in a hexstring converted from +* address digits (p_char) in charstring format +* Filler character '0'H is added where necessary +* End-of-Pulsing charater is added, if p_eop is TRUE +* Works for address lengths starting from 0 (i.e. empty string) +*/ + function f_char_to_BCD(in charstring p_char, in boolean p_eop) return octetstring { + var integer v_string_length := lengthof(p_char); + var charstring v_address_char := p_char; + var octetstring v_address_oct; + var hexstring v_address_hex_ASCII; + + var integer i; + var hexstring v_address_hex_NUM := ''H; + + if (p_eop) // End of Pulsing required + { + + if (v_string_length mod 2 == 1) // odd number of digits + { + v_address_char := v_address_char & "O"; // instead of "?" + // add End of Pulsing, ASCII code of "O" = '4F'H + v_string_length := v_string_length + 1; + } + else // even number of digits + { + v_address_char := v_address_char & "O0"; // instead of "0?" + // add filler and End of Pulsing, ASCII code of "O" = '4F'H + v_string_length := v_string_length + 2; + } + } + else // End of Pulsing NOT required + { + if (v_string_length mod 2 == 1) // odd number of digits + { + v_address_char := v_address_char & "0"; + // add filler + v_string_length := v_string_length + 1; + } + } + + v_address_oct := (char2oct(v_address_char)); + v_address_hex_ASCII := oct2hex(v_address_oct); + /* Examples + "1234" -> '31323334'H + "12345O" -> '31323334353F' */ + +// var integer i; +// var hexstring v_address_hex_NUM := ''H; + + // fill hexstring with adequate number of hex digits + for (i := 0; i < v_string_length; i := i + 1) + { + v_address_hex_NUM := v_address_hex_NUM & '0'H; + } + // fill hexstring with address in BCD format + for (i := 0; i < v_string_length; i := i + 2) + { + v_address_hex_NUM[i] := v_address_hex_ASCII[2*i + 3]; + v_address_hex_NUM[i+1] := v_address_hex_ASCII[2*i + 1]; + } + + v_address_oct := hex2oct(v_address_hex_NUM); + return v_address_oct; + } // end function f_char_to_BCD + + /* Function f_calc_oddeven + * @desc: Returns the odd/even indicator of address digits in p_char + * in a bitstring[1] + * Filler and End-of-Pulsing charaters (if p_eop is TRUE) are taken into account + * Works for address lengths starting from 0 (i.e. empty string) + */ + function f_calc_oddeven(in charstring p_char, in boolean p_eop) return bitstring { + var integer v_string_length := lengthof(p_char); + var bitstring v_odd_even_ind; + + if (p_eop) // End of Pulsing required + { + if (v_string_length mod 2 == 1) // odd number of digits + { + v_odd_even_ind := '0'B; + } + else // even number of digits + { + v_odd_even_ind := '1'B; + } + } + else // End of Pulsing NOT required + { + if (v_string_length mod 2 == 1) // odd number of digits + { + v_odd_even_ind := '1'B; + } + else // even number of digits + { + v_odd_even_ind := '0'B; + } + } + + return v_odd_even_ind; + + } // end function f_calc_oddeven + + /* Function f_calc_paramLen + * @desc: Returns the parameter length of parameters carrying the address digits + * in p_char in a bitstring[8] + * Filler and End-of-Pulsing charaters (if p_eop is TRUE) are taken into account + * An offset (p_offset) is added dependant on the presence of octets 3 and 4 + */ + function f_calc_paramLen(in charstring p_char, in boolean p_eop, in integer p_offset) + return bitstring { + var integer v_string_length := lengthof(p_char); + var bitstring v_paramLen; + + if (p_eop) // End of Pulsing required + { + if (v_string_length mod 2 == 1) // odd number of digits + { + v_string_length := (v_string_length + 1) / 2; + } + else // even number of digits + { + v_string_length := (v_string_length + 2) / 2; + } + } + else // End of Pulsing NOT required + { + if (v_string_length mod 2 == 1) // odd number of digits + { + v_string_length := (v_string_length + 1) / 2; + } + else // even number of digits + { + v_string_length := v_string_length / 2; + } + } + + v_paramLen := int2bit((v_string_length + p_offset), 8); + return v_paramLen; + + } // end function f_calc_paramLen + +/* These functions are used to calculate the length of fields of type +octetstring with an offset added and deliver the result as Bitstring of size 8, +first parameter is the name of the structure, in which the octetstring, +whose length is calculated, resides +p_int is the offset, +i.e. when calculating the length of a CDN parameter, +p_oct carries the octets in field addressSignals +p_int carries the value 2 as offset for octet 3 and 4 */ + +/* Function to calculate length of CDN parameter */ +function f_calc_length_cdn (in template CDN_PAR_lv p_cdn, in integer p_int) +return Bit8 { + var CDN_PAR_lv v_cdn := valueof(p_cdn); + return int2bit((lengthof (v_cdn.addressSignals) + p_int), 8 ); +} + +/* Function to calculate length of RAS parameter */ +function f_calc_length_ras (in template RAS_PAR_lv p_ras, in integer p_int) +return Bit8 { + var RAS_PAR_lv v_ras := valueof(p_ras); + return int2bit((lengthof (v_ras.status) + p_int), 8 ); +} + +/* Function to calculate length of ATP parameter carrying one CGPS IE*/ +function f_calc_length_atp_cgps (in template InformationElements p_ies, in integer p_int) +return Bit8 { + var InformationElements v_ies := valueof(p_ies); + return int2bit((lengthof (v_ies.callingPartySubaddress.subaddressInformation) + p_int), 8 ); +} + +/* Function to calculate length of ATP parameter carrying one CODS IE*/ +function f_calc_length_atp_cods (in template InformationElements p_ies, in integer p_int) +return Bit8 { + var InformationElements v_ies := valueof(p_ies); + return int2bit((lengthof (v_ies.connectedSubaddress.subaddressInformation) + p_int), 8 ); +} + +}// end functions + +}// End module SipIsup_ISUP_Constants + + + + + + diff --git a/IsupAts/SipIsup_ISUP_ModuleParams.ttcn b/IsupAts/SipIsup_ISUP_ModuleParams.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..0292df426e89462d121ff7f6b79a2582d6c84e10 --- /dev/null +++ b/IsupAts/SipIsup_ISUP_ModuleParams.ttcn @@ -0,0 +1,834 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides ISUP/BICC-related Module Parameters. + * They are all mapped to PIXIT. +*/ +module SipIsup_ISUP_ModuleParams{ + + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + import from SipIsup_ISUP_ParamTypes all; + import from SipIsup_ISUP_MsgTypes all; + + +group PIXIT_Items +{ + modulepar + { + + /* @desc Time to delay ACM message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.7 + */ + float PX_TDelay_ACM := 1.0; + + /* @desc Time to delay ANM message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.8 + */ + float PX_TDelay_ANM := 1.0; + + /* @desc Time to delay APM message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.9 + */ + float PX_TDelay_APM := 1.0; + + /* @desc Time to delay CGB message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.10 + */ + float PX_TDelay_CGB := 1.0; + + /* @desc Time to delay CON message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.11 + */ + float PX_TDelay_CON := 1.0; + + /* @desc Time to delay COTM message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.12 + */ + float PX_TDelay_COT := 1.0; + + /* @desc Time to delay CPG message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.13 + */ + float PX_TDelay_CPG := 1.0; + + /* @desc Time to delay FAC message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.14 + */ + float PX_TDelay_FAC := 1.0; + + /* @desc Time to delay FAR message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.15 + */ + float PX_TDelay_FAR := 1.0; + + /* @desc Time to delay GRS message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.16 + */ + float PX_TDelay_GRS := 1.0; + + /* @desc Time to delay IDR message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.17 + */ + float PX_TDelay_IDR := 1.0; + + /* @desc Time to delay LOP message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.18 + */ + float PX_TDelay_LOP := 1.0; + + /* @desc Time to delay REL message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.19 + */ + float PX_TDelay_REL := 1.0; + + /* @desc Time to delay RES message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.20 + */ + float PX_TDelay_RES := 1.0; + + /* @desc Time to delay RLC message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.21 + */ + float PX_TDelay_RLC := 1.0; + + /* @desc Time to delay RSC message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.22 + */ + float PX_TDelay_RSC := 1.0; + + /* @desc Time to delay SAM message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.23 + */ + float PX_TDelay_SAM := 1.0; + + /* @desc Time to delay SUS message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.24 + */ + float PX_TDelay_SUS := 1.0; + + /* @desc Time to delay UNKNOWN message before sending + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.25 + */ + float PX_TDelay_UNKNOWN := 1.0; + + /* @desc Nominal timeout value of ISUP protocol timer T2 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.26 + */ + float PX_Timeout_T2 := 180.0; + + /* @desc Nominal timeout value of ISUP protocol timer T39 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.27 + */ + float PX_Timeout_T39 := 120.0; + + /* @desc Nominal timeout value of ISUP protocol timer T6 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.28 + */ + float PX_Timeout_T6 := 10.0; + + /* @desc Nominal timeout value of ISUP protocol timer T7 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.29 + */ + float PX_Timeout_T7 := 25.0; + + /* @desc Nominal timeout value of ISUP protocol timer T + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.30 + */ + float PX_Timeout_T8 := 12.0; + + /* @desc Nominal timeout value of ISUP protocol timer T9 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.31 + */ + float PX_Timeout_T9 := 135.0; + + /* @desc Nominal timeout value of ISUP/SIP interworking protocol timer TOIW1 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.32 + */ + float PX_Timeout_TOIW1 := 4.0; + + /* @desc Nominal timeout value of ISUP/SIP interworking protocol timer TOIW2 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.33 + */ + float PX_Timeout_TOIW2 := 4.0; + + /* @desc Nominal timeout value of ISUP/SIP interworking protocol timer TOIW3 + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.34 + */ + float PX_Timeout_TOIW3 := 4.0; + + + /* @desc Time to control PTC.stop + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.5 + */ + float PX_ISUP_TDONE := 15.0; + + /* @desc Time to control the reception of a message + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.1 + */ + float PX_ISUP_TAC := 5.0; + + /* @desc Time to control that IUT sends nothing + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.2 + */ + float PX_ISUP_TNOAC := 5.0; + + /* @desc Time to control that IUT reacts prior to Upper Tester action + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.6 + */ + float PX_ISUP_TWAIT := 30.0; + + /* @desc Time to control that IUT reacts prior to Upper Tester action + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.3 + */ + float PX_ISUP_TSYNC := 10.0; + + /* @desc Time to control that IUT reacts prior to Upper Tester action + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A3, item 3.4 + */ + float PX_ISUP_TSYNC_TIME_LIMIT := 20.0; + + + /* @desc Select whether ISUP or BICC testing is done. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.1 + */ + SelectIsupOrBicc PX_ISUP_IsupOrBicc := selectIsup; + boolean PX_ISUP_Isup := true; + /* @desc Network indicator inside the Service Indicator octet (SIO). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.2 + */ + Bit2 PX_ISUP_NW_IND := '10'B; + + /* @desc Point code of the TS (ISUP interface). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.5 + */ + Bit14 PX_ISUP_PC_TS := '00000011001000'B; + + /* @desc Point code of the SUT (ISUP interface). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.4 + */ + Bit14 PX_ISUP_PC_SUT := '00000001111100'B; + + /* @desc Signalling Link Selection (SLS) value of the ISUP link between TS and SUT. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.3 + */ + Bit4 PX_ISUP_SLS := '0000'B; + + /* @desc Address (e.g. IP) of the TS (ISUP/BICC side). The use of this address is to enable the TS to communicate with the SUT at the ISUP/BICC side to establish and maintain the lower layer connections. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.7 + */ + octetstring PX_TS_ADRESS_ISUP_BICC; + + /* @desc Address (e.g. IP) of the SUT (ISUP/BICC side). The use of this address is to enable the TS to communicate with the SUT at the ISUP/BICC side to establish and maintain the lower layer connections. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.6 + */ + octetstring PX_SUT_ADRESS_ISUP_BICC; + + /* @desc Default Circuit Identity Code value for signalling connection 1). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.8 + */ + Bit12 PX_ISUP_TX_CIC_cicv1 := '000000000001'B; + + /* @desc Default Circuit Identity Code value for signalling connection 2). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.9 + */ + Bit12 PX_ISUP_TX_CIC_cicv2 := '000000000010'B; + + /* @desc Default Call Instance Code value for signalling connection 1). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.10 + */ + CallInstanceCode PX_ISUP_TX_CIC_caicv1 := '00000001'O; + + /* @desc Default Call Instance Code value for signalling connection 2). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A2, item 2.11 + */ + CallInstanceCode PX_ISUP_TX_CIC_caicv2 := '00000002'O; + + /* @desc 'Subaddress information' value sent in the 'Access transport/Connected sub-address' Parameter in the ANM message (default). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.1.1 + */ + octetstring PX_ISUP_ANM_AT_connSub_val := 'A031323334'O; + + /* @desc 'component' value (accepted by the SUT without immediate response (PIXIT)) sent in the 'Facility' parameter in the FAC message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.2 + */ + octetstring PX_ISUP_FAC_comp_txDef := 'A430050005800100'O; // Rejct component, unknown invID, generalProblem, unrecognizedComponent + + /* @desc 'address digits' value (CC NDC SN) received in the 'Called party number' parameter in the IAM message, when the nature of address is 'international number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.6.11 + */ + charstring PX_ISUP_IAM_CLD_digits_rxInat := "3864123"; + + /* @desc Default 'address digits' value received in the 'Called party number' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.3.1 + */ + charstring PX_ISUP_IAM_CLD_digits_rxDef := "123"; + + /* @desc 'address digits' value (NDC SN) received in the 'Called party number' parameter in the IAM message, when the nature of address is 'national number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.3.3 + */ + charstring PX_ISUP_IAM_CLD_digits_rxNat := "4123"; + + /* @desc Default 'address digits' value received in the 'Calling party number' parameter in the IAM message, when the Called party number is 'international'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.5.1 + */ + charstring PX_ISUP_IAM_CLI_digits_rxInat := "38642909"; + + /* @desc Default 'address digits' value received in the 'Calling party number' parameter in the IAM message, when the Called party number is 'national (sign.) number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.5.2 + */ + charstring PX_ISUP_IAM_CLI_digits_rxNat := "42909"; + + /* @desc Default 'address digits' value received in the 'Calling party number' parameter in the IAM message, when the Nature of address is not explicitly specified. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.5.3 + */ + charstring PX_ISUP_IAM_CLI_digits_rxDef := "2909"; + + /* @desc Default 'Number incomplete indicator' value received in the 'Calling party number' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.5.4 + */ + Bit1 PX_ISUP_IAM_CLI_numIncmplInd_rxDef := '0'B; + + /* @desc Default 'address digits' value sent in the 'Calling party number' parameter in the IAM message, when the Called party number is 'international'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.6.1 + */ + charstring PX_ISUP_IAM_CLI_digits_txInat := "3864123"; + + /* @desc Default 'address digits' value sent in the 'Calling party number' parameter in the IAM message, when the Called party number is 'national (sign.) number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.6.2 + */ + charstring PX_ISUP_IAM_CLI_digits_txNat := "4123"; + + /* @desc 'address digits' value received in the 'Generic number' parameter in the IAM message, when the Nature of Address is 'international number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.7.1 + */ + charstring PX_ISUP_IAM_GEN_digits_rxInat := "38642909"; + + /* @desc 'address digits' value received in the 'Generic number' parameter in the IAM message, when the Nature of Address is 'national (sign.) number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.7.2 + */ + charstring PX_ISUP_IAM_GEN_digits_rxNat := "42909"; + + /* @desc 'address digits' value sent in the 'Generic number' parameter in the IAM message, when the Nature of Address is 'international number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.8.1 + */ + charstring PX_ISUP_IAM_GEN_digits_txInat := "3864123"; + + /* @desc 'address digits' value sent in the 'Generic number' parameter in the IAM message, when the Nature of Address is 'national (sign.) number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.8.2 + */ + charstring PX_ISUP_IAM_GEN_digits_txNat := "4123"; + + /* @desc Complete 'address digits' value sent in the 'Called party number' parameter in the IAM message, when the destination is an automatically answering SIP. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.1.1 + */ + charstring PX_ISUP_IAM_CLD_digits_auto := "2909"; + + /* @desc 'nature of address' value sent in the 'Called party number' parameter in the IAM message, when the destination is an automatically answering SIP. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.1.2 + */ Bit7 PX_ISUP_TX_CLD_natAddr_auto := '0000001'B; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, when 'sending complete' is not sent, not the maximum number of digits are sent, the number is complete and completeness is determined by analysis of the number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.2.1 + */ + charstring PX_ISUP_IAM_CLD_digits_analysis := "2909"; + + /* @desc 'nature of address' value sent in the 'Called party number' parameter in the IAM message, when 'sending complete' is not sent, not the maximum number of digits are sent, the number is complete and completeness is determined by analysis of the number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.2.2 + */ + Bit7 PX_ISUP_TX_CLD_natAddr_analysis := '0000001'B; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, when 'sending complete' is not sent, not the maximum number of digits are sent, the number is complete and completeness is determined by timeout. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.3.1 + */ + charstring PX_ISUP_IAM_CLD_digits_timeout := "2909"; + + /* @desc 'nature of address' value value sent in the 'Called party number' parameter in the IAM message, when 'sending complete' is not sent, not the maximum number of digits are sent, the number is complete and completeness is determined by timeout.. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.3.2 + */ Bit7 PX_ISUP_TX_CLD_natAddr_timeout := '0000001'B; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing the maximum number of digits according to the national numbering plan, and no 'sending complete'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.4.1 + */ + charstring PX_ISUP_IAM_CLD_digits_max := "29090000000000000000"; + + /* @desc 'nature of address' value sent in the 'Called party number' parameter in the IAM message, containing the maximum number of digits according to the national numbering plan, and no 'sending complete'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.4.2 + */ + Bit7 PX_ISUP_TX_CLD_natAddr_max := '0000001'B; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing the minimum number of digits required for routing, and no 'sending complete'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.5.1 + */ + charstring PX_ISUP_IAM_CLD_digits_min :="2909"; + + /* @desc 'nature of address' value sent in the 'Called party number' parameter in the IAM message, containing the minimum number of digits required for routing, and no 'sending complete'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.5.2 + */ + Bit7 PX_ISUP_TX_CLD_natAddr_min := '0000001'B; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, converted by the IWU such that the To header field contains a sip: URI. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.6.1 + */ + charstring PX_ISUP_IAM_CLD_digits_SipUri :="2909"; + + /* @desc 'nature of address' value sent in the 'Called party number' parameter in the IAM message, converted by the IWU such that the To header field contains a sip: URI. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.6.2 + */ + Bit7 PX_ISUP_TX_CLD_natAddr_SipUri := '0000001'B; + + /* @desc Default 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing the complete address and 'sending complete'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.7.1 + */ + charstring PX_ISUP_IAM_CLD_digits_txDef :="2909"; + + /* @desc Default 'nature of address' value sent in the 'Called party number' parameter in the IAM message, containing the complete address and 'sending complete'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.7.2 + */ + Bit7 PX_ISUP_TX_CLD_natAddr_txDef := '0000001'B; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing a leading part of an address (to be completed by 2 SAM messages), and where the nature of address is 'subscriber number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.8 + */ + charstring PX_ISUP_IAM_CLD_digits_Leading_subs :="29"; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing a leading part of an address (to be completed by 2 SAM messages), and where the nature of address is 'national (sign.) number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.9 + */ + charstring PX_ISUP_IAM_CLD_digits_Leading_nat :="429"; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing a leading part of an address (to be completed by 2 SAM messages), converted by the IWU such that the To header field contains a sip: URI. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.10 + */ + charstring PX_ISUP_IAM_CLD_digits_Leading_sipUri :="29"; + + /* @desc 'address digits' value sent in the 'Called party number' parameter in the IAM message, containing a leading part of an address (to be completed by 2 SAM messages), and where the nature of address is 'international number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.11 + */ + charstring PX_ISUP_IAM_CLD_digits_Leading_inat :="386429"; + + /* @desc Default 'complete address digits' value sent in the 'Called party number' parameter in the IAM message, when the nature of address is specified as 'international number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.12 + */ + charstring PX_ISUP_IAM_CLD_digits_txDef_inat :="38642909"; + + /* @desc Default 'complete address digits' value sent in the 'Called party number' parameter in the IAM message, when the nature of address is specified as 'national (sign.) number'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.13 + */ + charstring PX_ISUP_IAM_CLD_digits_txDef_nat :="42909"; + + /* @desc 'address digits' value (less than minimum number digits to route the call) sent in the 'Calling party number' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.14.1 + */ + charstring PX_ISUP_IAM_CLD_digits_less :="12"; + + /* @desc 'nature of addresss' value (number of digits less than minimum number digits to route the call) sent in the 'Calling party number' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.14.2 + */ + Bit7 PX_ISUP_IAM_CLD_natAddr_less := '0000001'B; + + /* @desc Default 'user-to-user information' value (Service 1 data) sent in the 'User-to-user information' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.9.1 + */ + octetstring PX_ISUP_IAM_UUI_userInfo_S1 := '0449534B524154454C'O; + + /* @desc Default 'user-to-user information' value (Service 2 data) sent in the 'User-to-user information' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.9.2 + */ + octetstring PX_ISUP_IAM_UUI_userInfo_S2 := '0449534B524154454C'O; + + /* @desc Default 'user-to-user information' value (Service 3 data) sent in the 'User-to-user information' parameter in the IAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.9.3 + */ + octetstring PX_ISUP_IAM_UUI_userInfo_S3 := '0449534B524154454C'O; + + /* @desc 'Cause' value (decimal) received in the 'Cause' parameter in the REL message, when the IW-U has received a BYE message from SIP. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.10.1 + */ + integer PX_ISUP_REL_CAU_cVal_bye := 16; + + /* @desc 'Cause' value (decimal) received in the 'Cause' parameter in the REL message, when the IW-U has received a CANCEL message from SIP. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.10.2 + */ + integer PX_ISUP_REL_CAU_cVal_cancel := 16; + + /* @desc 'Cause' value (decimal) received in the 'Cause' parameter in the REL message, when the IWU-O has autonomously released the call. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.10.3 + */ + integer PX_ISUP_REL_CAU_cVal_autonomous := 31; + + /* @desc 'Cause value' value sent in the 'Cause' parameter in the REL message, when the diagnostics field indicates 'CCBS possible'. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.10.4 + */ + integer PX_ISUP_REL_CAU_CCBSposs := 17; + + /* @desc SIP/ISUP interworking, after SUT send IAM message there exist possibility to await COT message + * true - await COT message + * false - don't wait COT message + */ + boolean PX_ISUP_COT_MSG_await := false; + + /* @desc 'address digits' value (PIXIT) received in the 'Subsequent number' parameter in the first SAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.1 + */ + charstring PX_ISUP_SAM_SQN_digits_rx1 := "1"; + + /* @desc 'address digits' value (PIXIT) received in the 'Subsequent number' parameter in the second SAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.2 + */ + charstring PX_ISUP_SAM_SQN_digits_rx2 := "2"; + + /* @desc 'address digits' value sent in the 'Subsequent number' parameter in the first SAM message, containing the middle part of the number, where the IAM contained less than the minimum digits to route the call. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.3 + */ + charstring PX_ISUP_SAM_SQN_digits_txMidLess := "0"; + + /* @desc 'address digits' value sent in the 'Subsequent number' parameter in the first SAM message, containing the final part of the number, where the IAM contained less than the minimum digits to route the call. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.4 + */ + charstring PX_ISUP_SAM_SQN_digits_txFinLess := "05"; + + /* @desc 'address digits' value sent in the 'Subsequent number' parameter in the second SAM message, completing the (subscriber) number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.5 + */ + charstring PX_ISUP_SAM_SQN_digits_txFinDef := "9"; + + /* @desc 'address digits' value sent in the 'Subsequent number' parameter in the first SAM message, containing the middle part of the complete (subscriber) number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.6 + */ + charstring PX_ISUP_SAM_SQN_digits_txMidDef := "0"; + + /* @desc Final 'address digits' value sent in the 'Subsequent number' parameter in the second SAM message, completing the (national sign.) number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.7 + */ + charstring PX_ISUP_SAM_SQN_digits_txFinNat := "9"; + + /* @desc Middle 'address digits' value sent in the 'Subsequent number' parameter in the first SAM message, not completing the (national sign.) number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.8 + */ + charstring PX_ISUP_SAM_SQN_digits_txMidNat := "0"; + + /* @desc Final 'address digits' value sent in the 'Subsequent number' parameter in the second SAM message, where the whole number is mapped to the addr-spec component of the To header field which includes the "user=phone" URI parameter. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.9 + */ + charstring PX_ISUP_SAM_SQN_digits_txFinPhone := "9"; + + /* @desc 'address digits' value sent in the 'Subsequent number' parameter in the second SAM message, completing the (international) number. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.10 + */ + charstring PX_ISUP_SAM_SQN_digits_txFinInat := "9"; + + /* @desc Middle 'address digits' value sent in the 'Subsequent number' parameter in the first SAM message, where the whole number is mapped to the addr-spec component of the To header field which includes the "user=phone" URI parameter. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.11 + */ + charstring PX_ISUP_SAM_SQN_digits_txMidPhone := "0"; + + /* @desc 'address digits' value (PIXIT (middle part of standard international address/ to be completed by next SAM)) sent in the 'Subsequent number' parameter in the SAM message. + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.11.12 + */ + charstring PX_ISUP_SAM_SQN_digits_txMidInat := "0"; + + /* @desc Default value for element chargeIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.1 + */ + Bit2 PX_ISUP_TX_BCI_v_chargeInd := '10'B; + + /* @desc Default value for element calledPartysStatusIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.2 + */ + Bit2 PX_ISUP_TX_BCI_v_cldPStatInd := '00'B; + + /* @desc Default value for element calledPartysCategoryIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.3 + */ + Bit2 PX_ISUP_TX_BCI_v_cldPCatInd := '01'B; + + /* @desc Default value for element end_to_endMethodIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.4 + */ + Bit2 PX_ISUP_TX_BCI_v_eTOeMethodInd := '00'B; + + /* @desc Default value for element interworkingIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.5 + */ + Bit1 PX_ISUP_TX_BCI_v_interwInd := '1'B; + + /* @desc Default value for element end_to_endInformationIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.6 + */ + Bit1 PX_ISUP_TX_BCI_v_eTOeInfoInd := '0'B; + + /* @desc Default value for element iSDNUserPartIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.7 + */ + Bit1 PX_ISUP_TX_BCI_v_iSDNUserPartInd := '0'B; + + /* @desc Default value for element holdingIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.8 + */ + Bit1 PX_ISUP_TX_BCI_v_holdingInd := '0'B; + + /* @desc Default value for element iSDNAccessIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.9 + */ + Bit1 PX_ISUP_TX_BCI_v_iSDNAccessInd := '0'B; + + /* @desc Default value for element echoControlDeviceIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.10 + */ + Bit1 PX_ISUP_TX_BCI_v_echoContrDevInd := '1'B; + + /* @desc Default value for element sCCPMethodIndicator inside Backward call indicators parameter (BCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.12.11 + */ + Bit2 PX_ISUP_TX_BCI_v_sCCPMethodInd := '00'B; + + /* @desc Default value for element natureOfAddressIndicator inside Called party number parameter (CDN); Variable(V) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.15.2 + */ + Bit7 PX_ISUP_TX_CDN_natOfAddressInd := '0000001'B; + + /* @desc Default value for element numberingPlanIndicator inside Called party number parameter (CDN); Variable(V) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.15.3 + */ + Bit3 PX_ISUP_TX_CDN_numbPlanInd := '001'B; + + /* @desc Default value for element iNN inside Called party number parameter (CDN); Variable(V) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.15.4 + */ + Bit1 PX_ISUP_TX_CDN_iNN := '0'B; + + /* @desc Default value for element addressSignals inside Called party number parameter (CDN); Variable(V) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.4.15.1 + */ + charstring PX_ISUP_TX_CDN_addrSignals := "2909"; + + /* @desc Default value for element callingPartysCategory inside Calling party's category parameter (CGC); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.13 + */ + Bit8 PX_ISUP_TX_CGC_cliPCategory := '00001010'B; // ordinary calling subscriber + + /* @desc Default value for element natureOfaddressindicator inside Connected number parameter (CPN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.14.1 + */ + Bit7 PX_ISUP_TX_CPN_natOfaddressind := '0000001'B; + + /* @desc Default value for element screeningIndicator inside Connected number parameter (CPN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.14.2 + */ + Bit2 PX_ISUP_TX_CPN_screenInd := '01'B; + + /* @desc Default value for element addrPresRestrInd inside Connected number parameter (CPN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.14.3 + */ + Bit2 PX_ISUP_TX_CPN_addrPresRestrInd := '00'B; + + /* @desc Default value for element numberingplanIndicator inside Connected number parameter (CPN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.14.4 + */ + Bit3 PX_ISUP_TX_CPN_numbplanInd := '001'B; + + /* @desc Default value for element addressSignals inside Connected number parameter (CPN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.14.5 + */ + charstring PX_ISUP_TX_CPN_addrSignals := "2909"; + + /* @desc Default value for element natInternatCallIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.1 + */ + Bit1 PX_ISUP_TX_FCI_natInternatCallInd := '0'B; + + /* @desc Default value for element endToEndMethodIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.2 + */ + Bit2 PX_ISUP_TX_FCI_endToEndMethodInd := '00'B; + + /* @desc Default value for element interworkingIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.3 + */ + Bit1 PX_ISUP_TX_FCI_interwInd := '1'B; + + /* @desc Default value for element endToEndInfoIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.4 + */ + Bit1 PX_ISUP_TX_FCI_eTOeInfoIndic := '0'B; + + /* @desc Default value for element iSDNUserPartIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.5 + */ + Bit1 PX_ISUP_TX_FCI_iSDNUserPartInd := '0'B; + + /* @desc Default value for element iSDNUserPartPrefIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.6 + */ + Bit2 PX_ISUP_TX_FCI_iSDNUserPartPrefInd := '01'B; + + /* @desc Default value for element iSDNAccessIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.7 + */ + Bit1 PX_ISUP_TX_FCI_iSDNAccessInd := '0'B; + + /* @desc Default value for element sCCPMethodIndicator inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.8 + */ + Bit2 PX_ISUP_TX_FCI_sCCPMethodInd := '00'B; + + /* @desc Default value for element reserved inside Forward call indicators parameter (FCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.15.9 + */ + Bit4 PX_ISUP_TX_FCI_reserved := '0000'B; + + /* @desc Default value for element satelliteIndicator inside Nature of connection indicators parameter (NCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.16.1 + */ + Bit2 PX_ISUP_TX_NCI_satelliteInd := '01'B; + + /* @desc Default value for element continuityCheckIndicator inside Nature of connection indicators parameter (NCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.16.2 + */ + Bit2 PX_ISUP_TX_NCI_contCheckInd := '00'B; + + /* @desc Default value for element echoControlDeviceIndicator inside Nature of connection indicators parameter (NCI); Fixed(F) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.16.3 + */ + Bit1 PX_ISUP_TX_NCI_echoContrDevInd := '1'B; + + /* @desc Default value for element natureOfAddressIndicator inside Original called number parameter (OCN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.17.1 + */ + Bit7 PX_ISUP_TX_OCN_natOfAddressInd := '0000001'B; + + /* @desc Default value for element addrPresRestrInd inside Original called number parameter (OCN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.17.2 + */ + Bit2 PX_ISUP_TX_OCN_addrPresRestrInd := '00'B; + + /* @desc Default value for element numberingPlanIndicator inside Original called number parameter (OCN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.17.3 + */ + Bit3 PX_ISUP_TX_OCN_numbPlanInd := '001'B; + + /* @desc Default value for element addressSignals inside Original called number parameter (OCN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.17.4 + */ + charstring PX_ISUP_TX_OCN_addrSignals := "2909"; + + /* @desc Default value for element range inside Range and status parameter (RAS); Variable(V) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.18.1 + */ + Bit8 PX_ISUP_TX_RAS_range := '00011110'B; // 30 + + /* @desc Default value for element status inside Range and status parameter (RAS); Variable(V) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.18.2 + */ + octetstring PX_ISUP_TX_RAS_status := 'FE7FFF7F'O; // cic 1-15, 17-31; + + /* @desc Default value for element natureOfAddressIndicator inside Redirecting number parameter (RDN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.19.1 + */ + Bit7 PX_ISUP_TX_RDN_natOfAddressInd := '0000001'B; + + /* @desc Default value for element addrPresRestrInd inside Redirecting number parameter (RDN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.19.2 + */ + Bit2 PX_ISUP_TX_RDN_addrPresRestrInd := '00'B; + + /* @desc Default value for element numberingPlanIndicator inside Redirecting number parameter (RDN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.19.3 + */ + Bit3 PX_ISUP_TX_RDN_numbPlanInd := '001'B; + + /* @desc Default value for element addressSignals inside Redirecting number parameter (RDN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.19.4 + */ + charstring PX_ISUP_TX_RDN_addrSignals := "123"; + + /* @desc Default value for element natureOfAddressIndicator inside Redirection number parameter (RNN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.20.1 + */ + Bit7 PX_ISUP_TX_RNN_natOfAddressInd := '0000001'B; + + /* @desc Default value for element numberingPlanIndicator inside Redirection number parameter (RNN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.20.2 + */ + Bit3 PX_ISUP_TX_RNN_numbPlanInd := '001'B; + + /* @desc Default value for element Internal Network Number indicator inside Redirection number parameter (RNN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.20.3 + */ + Bit1 PX_ISUP_TX_RNN_iNN := '0'B; + + /* @desc Default value for element addressSignals inside Redirection number parameter (RNN); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.20.4 + */ + charstring PX_ISUP_TX_RNN_addrSignals := "2909"; + + /* @desc Default value for element presRestrIndicator inside Redirection number restriction parameter (RNS); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.21 + */ + Bit2 PX_ISUP_TX_RNS_presRestrInd := '00'B; + + /* @desc Default value for element transmissionMediumRequirement inside Transmission medium requirement prime parameter (TMRP); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.22 + */ + Bit8 PX_ISUP_TX_TMR_transmMedReq := '00000000'B; + + /* @desc Default value for element hopCounter inside Hop counter parameter (HPC); Optional(O) format (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.23 + */ + Bit5 PX_ISUP_TX_HPC_hopCounter := '01000'B; + + /* @desc Default value for an unknown parameter type (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.24.1 + */ + Bit8 PX_ISUP_TX_unknown_parameter_type := '10001111'B; + + /* @desc Default value for an unknown message type (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.24.2 + */ + Bit8 PX_ISUP_TX_unknown_message_type := '01001010'B; + + /* @desc Default value for calling party subaddress information (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.25.1 + */ + octetstring PX_ISUP_TX_cgps_information := '49534B524154454C'O; + + /* @desc Default value for calling party subaddress odd even indicator (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.25.2 + */ + Bit1 PX_ISUP_TX_cgps_odd_even_indicator := '0'B; + + /* @desc Default value for calling party subaddress type of subaddress (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.25.3 + */ + Bit3 PX_ISUP_TX_cgps_type_of_subaddress := '010'B; + + /* @desc Default value for connected subaddress type of subaddress (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.1.2 + */ + Bit3 PX_ISUP_TX_connsub_type_of_subaddress := '010'B; + + /* @desc Default value for connected party subaddress odd even indicator (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.1.3 + */ + Bit1 PX_ISUP_TX_connsub_odd_even_indicator := '0'B; + + /* @desc Default value for connected subaddress information (to be sent when the TP does not specify a specific value for that field). + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A5, item 5.1.1 + */ + octetstring PX_ISUP_TX_connsub_information := '49534B524154454C'O; + + /* true if conversation check is used + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A4, item 4.1 + */ + boolean PX_IsupBicc_CheckConversation := false; + + /* true if ringing check is used + ** @remark PICS/PIXIT Reference: TISPAN DTS 06014-3, Table A4, item 4.2 + */ + boolean PX_IsupBicc_CheckRinging := false; + + } // end modulepar + } // end PIXIT items +} // end module SipIsup_ISUP_ModuleParams diff --git a/IsupAts/SipIsup_ISUP_MsgTemplates.ttcn b/IsupAts/SipIsup_ISUP_MsgTemplates.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..62a1774d75f03181b774c7a9acff1eaba1ef7373 --- /dev/null +++ b/IsupAts/SipIsup_ISUP_MsgTemplates.ttcn @@ -0,0 +1,1717 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides ISUP/BICC-related Message templates. +*/ +module SipIsup_ISUP_MsgTemplates +{ + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + import from SipIsup_ISUP_Constants all; + import from SipIsup_ISUP_ModuleParams all; + import from SipIsup_ISUP_ParamTypes all; + import from SipIsup_ISUP_MsgTypes all; + + import from SipIsup_ISUP_ParamTemplates all; + + +template ACM_MSG mw_ACM_MSG_Def := +/* RX template for Address complete message (ACM) with 'any'-values */ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BCI_PAR_v_any, /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ANM_MSG mw_ANM_MSG_Def := +/* RX template for Answer message (ANM) with 'any'-values */ +{ + msgType := '00001001'B, /* Message Type '00001001'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ANM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Answer message (ANM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template COT_MSG mw_COT_MSG_Def := +/* RX template for Continuity message (COT) with 'Any'-values */ +{ + msgType := '00000101'B, /* Message Type '00000101'B */ + continuityIndicators := mw_COI_PAR_v_any /* Continuity indicators, F, len=1 */ +} + +template IAM_MSG mw_IAM_MSG_Def := +/* RX template for Initial address message (IAM) with 'any'-values */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template REL_MSG mw_REL_MSG_Def := +/* RX template for Release message (REL) with 'any'-values */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := mw_CAUI_PAR_lv_any, /* Cause indicators, V, len=3-? */ + optionalParameters := mw_REL_OPTIONAL_PARAMS_any, /* SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template RLC_MSG mw_RLC_MSG_Def := +/* RX template for Release complete message (RLC) with 'any'-values */ +{ + msgType := '00010000'B, /* Message Type '00010000'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_RLC_OPTIONAL_PARAMS_any, /* SET: optional parameters of Release complete message (RLC) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_MSG_Def := +/* TX template for Address complete message (ACM) without optional parameters and default values for fixed Parameters */ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template ANM_MSG m_ANM_MSG_Def := +/* TX template for Answer message (ANM) without optional parameters except call history */ +{ + msgType := '00001001'B, /* Message Type '00001001'B */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := m_ANM_USED_OPTIONAL_PARAMS(omit, omit, omit), /* SET: optional parameters of Answer message (ANM) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_MSG_Def := +/* TX template for Initial address message (IAM) without optional parameters except Propagation delay counter.*/ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(m_CallingNum_allowed(c_CLI_natAddrInd_internat,PX_ISUP_IAM_CLI_digits_txInat), omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template REL_MSG m_REL_MSG_Def := +/* TX template for Release message (REL) without optional parameters */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + causeIndicators := m_CAUI_Def, /* Cause indicators, V, len=3-? */ + optionalParameters := omit, /* SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template RLC_MSG m_RLC_MSG_Def := +/* TX template for Release complete message (RLC) without optional parameters */ +{ + msgType := '00010000'B, /* Message Type '00010000'B */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Release complete message (RLC) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template COT_MSG mw_COT_CTI := +/* RX template for Continuity message (COT) with Continuity indicators = 'continuity'. */ +{ + msgType := '00000101'B, /* Message Type '00000101'B */ + continuityIndicators := mw_ContInd_cont /* Continuity indicators, F, len=1 */ +} + +template SAM_MSG mw_SAM_SQN(template SNN_PAR_lv p_SNN) := +/* TX template for Subsequent address message (SAM) with Subsequent number value parameterized and without optional parameters */ +{ + msgType := '00000010'B, /* Message Type '00000010'B */ + pSNN := '00000010'B, /* Pointer to parameter 'Subsequent number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + subsequentNumber := p_SNN, /* Subsequent number, V, len=3-? */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_CCNPI(template CCPI_PAR_tlv p_CCNPI) := +/* TX template for Address complete message (ACM) with default BCI, CCNR possible indicator parameterized and without other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, p_CCNPI, omit, omit), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_GNI(template GNI_PAR_tlv p_GNI) := +/* TX template for Address complete message (ACM) with default BCI, Generic notification indicator parameterized and without other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(omit, p_GNI, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_RDNN_CDI_RDNR_GNI(template CDI_PAR_tlv p_CDI, template GNI_PAR_tlv p_GNI, template RNN_PAR_tlv p_RDNN, template RNS_PAR_tlv p_RDNR) := +/* TX template for Address complete message (ACM) with default BCI, Call diversion information, Generic notification indicator, Redirection number and Redirection number restriction parameterized, and without other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(omit, p_GNI, p_RDNN, p_CDI, p_RDNR, omit, omit, omit), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_OBCI(template OBCI_PAR_tlv p_OBCI) := +/* TX template for Address complete message (ACM) with default BCI, Optional Backward call Indicators parameterized and without other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(p_OBCI, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_BCI(Bit2 p_cldPstatInd) := +/* TX template for Address complete message (ACM) with Called party status indicato (BCI) parameterized, and without optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_cpStatInd(p_cldPstatInd), /* Backward call indicators, F, len=2 */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_BCI_OBCI(Bit1 p_isdnUpInd, Bit1 p_isdnAccInd, template OBCI_PAR_tlv p_OBCI) := +/* TX template for Address complete message (ACM) with ISDN user part indicator and ISDN access indicator (BCI) parameterized, Optional Backward call Indicators parameterized and without other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_subsFree(p_isdnUpInd, p_isdnAccInd), /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(p_OBCI, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG m_ACM_UKNP(template UNKNOWN_PAR_tlv p_UKNP) := +/* TX template for Address complete message (ACM) with default BCI, Optional Backward call Indicators parameterized and without other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, p_UKNP, m_PCI_PAR_tlv_Fpar(m_ParameterInstructionIndicator_RelCall)), /* SET: optional parameters of Address complete message (ACM) */ +// optionalParameters := m_ACM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, p_UKNP, omit), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template CPG_MSG m_CPG_UKNP(template UNKNOWN_PAR_tlv p_UKNP) := +/* TX template for Call progress message (CPG) with default event information, Parameter compatibility information, with an unknown parameter and without other optional parameters. */ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := m_EIF_Def, /* Event information, F, len=1 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_CPG_USED_OPTIONAL_PARAMS(omit, m_PCI_PAR_tlv_Fpar(m_ParameterInstructionIndicator_RelCall), p_UKNP), /* SET: optional parameters of Call progress message (CPG) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template CPG_MSG m_CPG_EVI(Bit7 p_eventInd) := +/* TX template for Call progress message (CPG) with event information parameterized and without optional parameters. */ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := m_EventInfo(p_eventInd), /* Event information, F, len=1 */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Call progress message (CPG) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} +template CPG_MSG m_CPG_CDI(template GNI_PAR_tlv p_GNI, template RNN_PAR_tlv p_RNN, template CDI_PAR_tlv p_CDI, template RNS_PAR_tlv p_RNS) := +/* TX template for Call progress message (CPG) with event information = 'progress' and withRedirection number, call diversion information, redirection number restriction and generic notification set to "Call is diverting"*/ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := m_EventInfo(c_EVI_eventInd_progr), /* Event information, F, len=1 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_CPG_OPTIONAL_PARAMS_CDI(p_GNI, p_RNN, p_CDI, p_RNS), /* SET: optional parameters of Call progress message (CPG) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template CPG_MSG m_CPG_EVI_GNI(Bit7 p_eventInd, template GNI_PAR_tlv p_GNI) := +/* TX template for Call progress message (CPG) with event information and Generic notification indicator parameterized, and without other optional parameters. */ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := m_EventInfo(p_eventInd), /* Event information, F, len=1 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_CPG_USED_OPTIONAL_PARAMS(p_GNI, omit, omit), /* SET: optional parameters of Call progress message (CPG) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ANM_MSG m_ANM_RDNR(template RNS_PAR_tlv p_RDNR) := +/* TX template for Answer message (ANM) with Redirection number restriction parameterized, and without other optional parameters.*/ +{ + msgType := '00001001'B, /* Message Type '00001001'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ANM_USED_OPTIONAL_PARAMS(omit, omit, p_RDNR), /* SET: optional parameters of Answer message (ANM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ANM_MSG m_ANM_AT_CNSU(template ATP_PAR_tlv p_AT_CNSU) := +/* TX template for Answer message (ANM) with Access transport/Connected sub-address parameterized, and without other optional parameters.*/ +{ + msgType := '00001001'B, /* Message Type '00001001'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ANM_USED_OPTIONAL_PARAMS(omit, p_AT_CNSU, omit), /* SET: optional parameters of Answer message (ANM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ANM_MSG m_ANM_CNN(template CPN_PAR_tlv p_CNN) := +/* TX template for Answer message (ANM) with Connected number parameterized, and without other optional parameters.*/ +{ + msgType := '00001001'B, /* Message Type '00001001'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_ANM_USED_OPTIONAL_PARAMS(p_CNN, omit, omit), /* SET: optional parameters of Answer message (ANM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template CON_MSG m_CON_Def := +/* TX template for Connect message (CON) with default BCI, and no optional parameters except Call History Information.*/ +{ + msgType := '00000111'B, /* Message Type '00000111'B */ + backwardCallIndicators := m_BCI_Def, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_CON_USED_OPTIONAL_PARAMS, /* SET: optional parameters of Connect message (CON) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template REL_MSG m_REL_CAU_CCBS := +/* TX template for Release message (REL) with cause and diagnostics indicating CCBS, and without optional parameters */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + causeIndicators := m_CAU_CCBS, /* Cause indicators, V, len=3-? */ + optionalParameters := omit, /* SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template REL_MSG m_REL_CAU2(template CAUI_PAR_lv p_CAU) := +/* TX template for Release message (REL) with Cause Indicators parameterized, and without optional parameters */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + causeIndicators := p_CAU, /* Cause indicators, V, len=3-? */ + optionalParameters := omit, /* SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template UNKNOWN_MSG m_UNKNOWN_MCPI(template MCI_PAR_tlv p_MCI) := +/* TX template for an unknown message, with Message compatibility information parameterized, and without other optional parameters.*/ +{ + msgType := PX_ISUP_TX_unknown_message_type, /* Unknown Message Type */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + messageCompatibilityInformation := p_MCI, /* Message compatibility information, O, len=4-? */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template REL_MSG mw_REL_CAU1(template CAUI_PAR_lv p_CAU) := +/* RX template for Release message (REL) with Cause Indicators parameterized. */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := p_CAU, /* Cause indicators, V, len=3-? */ + optionalParameters := mw_REL_OPTIONAL_PARAMS_any, /* SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CGB_MSG m_CGB_CGBMT := +/* TX template for Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ +{ + msgType := '00011000'B, /* Message Type '00011000'B */ + circuitGroupSupervisionMessageType := m_cGroupSupMT_Def, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := m_RAS_Def /* Range and status, V, len=3-34 */ +} + +template CGB_MSG m_CGB_CGBMT_RAS(template RAS_PAR_lv p_RAS) := +/* TX template for Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator, and Range and Status parameterized.*/ +{ + msgType := '00011000'B, /* Message Type '00011000'B */ + circuitGroupSupervisionMessageType := m_cGroupSupMT_Def, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=3-34 */ +} + +template GRS_MSG m_GRS_RAS := +/* TX template for Circuit group reset message (GRS) with Range and Status values parameterized.*/ +{ + msgType := '00010111'B, /* Message Type '00010111'B */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := m_RAS_Def /* Range and status, V, len=2 */ +} + +template SUS_MSG m_SUS_SRI(template SRI_PAR_v p_suspResInd) := +/* TX template for Suspend message (SUS) with Suspend Resume indicators parameterized and without optional parameters.*/ +{ + msgType := '00001101'B, /* Message Type '00001101'B */ + suspendResumeIndicators := p_suspResInd, /* Suspend Resume indicators, F, len=1 */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Suspend message (SUS) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template RES_MSG m_RES_SRI(template SRI_PAR_v p_suspResInd) := +/* TX template for Resume message (RES) with Suspend Resume indicators parameterized and without optional parameters.*/ +{ + msgType := '00001110'B, /* Message Type '00001110'B */ + suspendResumeIndicators := p_suspResInd, /* Suspend Resume indicators, F, len=1 */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Resume message (RES) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template COT_MSG m_COT_CTI_Succ := +/* TX template for Continuity message (COT) with Continuity indicators indicating continuity.*/ +{ + msgType := '00000101'B, /* Message Type '00000101'B */ + continuityIndicators := m_Cont_Succ /* Continuity indicators, F, len=1 */ +} + +template COT_MSG m_COT_CTI_Fail := +/* TX template for Continuity message (COT) with Continuity indicators indicating continuity check failure.*/ +{ + msgType := '00000101'B, /* Message Type '00000101'B */ + continuityIndicators := m_Cont_Fail /* Continuity indicators, F, len=1 */ +} + +template APM_MSG m_APM_AI_CNT(template UAI_PAR_tlv p_AI) := +//template APM_MSG m_APM_AI_CNT(template UAI_PAR_tlv p_AI, template CNT_PAR_tlv p_CNT) := +/* TX template for Application transport message (APM) without optional parameters +MG Note: unfinished*/ +{ + msgType := '01000001'B, /* Message Type '01000001'B */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /* SET: optional parameters of Application transport message (APM) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template SAM_MSG m_SAM_SQN(template SNN_PAR_lv p_SNN) := +/* TX template for Subsequent address message (SAM) with subsequent number parameterized and without optional parameters */ +{ + msgType := '00000010'B, /* Message Type '00000010'B */ + pSNN := '00000010'B, /* Pointer to parameter 'Subsequent number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + subsequentNumber := p_SNN, /* Subsequent number, V, len=3-? */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_UUI(template UUID_PAR_tlv p_UUI) := +/* RX template for Address complete message (ACM) with default BCI, User-to-user indicators parameterized and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BCI_PAR_v_any, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_USED_OPTIONAL_PARAMS(p_UUI), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_BCI_UUI(template UUID_PAR_tlv p_UUI) := +/* RX template for Address complete message (ACM) with Interworking indicator = 'interworking encountered', User-to-user indicators parameterized and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BCI_PAR_v_any, /* Backward call indicators, F, len=2 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_USED_OPTIONAL_PARAMS(p_UUI), /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_BCI_cldPstatnoInd := +/* RX template for Address complete message (ACM) with Called party status indicator = 'no indication', and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BWCI_cldPstatnoInd1, /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + + +template ACM_MSG mw_ACM_BCI_cpCat_3alt(template Bit1 p_interwInd, template Bit1 p_isdnUpInd, template Bit1 p_isdnAccInd) := +/* RX template for Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BWCI_cpCat_3alt(p_interwInd, p_isdnUpInd, p_isdnAccInd), /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_BCI_cpCat_3alt2(Bit1 p_isdnUpInd) := +/* RX template for Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BWCI_cpCat_3alt2(p_isdnUpInd), /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_BCI_cldPstatSubsFree(template Bit1 p_interwInd, template Bit1 p_isdnUpInd, template Bit1 p_isdnAccInd) := +/* RX template for Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BWCI_cldPstatSubsFree(p_interwInd, p_isdnUpInd, p_isdnAccInd), /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(Bit1 p_isdnUpInd) := +/* RX template for Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BWCI_cldPstatSubsFree_tAccNonISDN(p_isdnUpInd), /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ACM_MSG mw_ACM_BCI_cldPstatNoInd_tAccNonISDN(Bit1 p_isdnUpInd) := +/* RX template for Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := mw_BWCI_cldPstatNoInd_tAccNonISDN(p_isdnUpInd), /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CPG_MSG mw_CPG_EVI(Bit7 p_eventInd) := +/* RX template for Call progress message (CPG) with event information parameterized, and with 'any' optional parameters. */ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := mw_EventInfo(p_eventInd), /* Event information, F, len=1 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_CPG_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CPG_MSG mw_CPG_EVI_GNI(Bit7 p_eventInd, template GNI_PAR_tlv p_GNI) := +/* RX template for Call progress message (CPG) with event information and Generic notification indicator parameterized, and with 'any' other optional parameters. */ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := mw_EventInfo(p_eventInd), /* Event information, F, len=1 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := mw_CPG_USED_OPTIONAL_PARAMS(p_GNI), /* SET: optional parameters of Call progress message (CPG) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template CON_MSG mw_CON_BCI3(template Bit1 p_interwInd, template Bit1 p_isdnUpInd, template Bit1 p_isdnAccInd) := +/* RX template for Connect message (CON) with Interworking indicator, ISDN user part indicator and ISDN access indicator parameterized, and with 'any' optional parameters.*/ +{ + msgType := '00000111'B, /* Message Type '00000111'B */ + backwardCallIndicators := mw_BWCI_cldPstatnoInd2(p_interwInd,p_isdnUpInd,p_isdnAccInd), /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_CON_OPTIONAL_PARAMS_any, /* SET: optional parameters of Connect message (CON) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CON_MSG mw_CON_BCI4 := +/* RX template for Connect message (CON) with Called party status indicator = 'no indication', Interworking indicator = 'interworking encountered', ISDN user part indicator = 'ISUP not used all the way', ISDN access indicator = 'terminating access non-ISDN', and with 'any' optional parameters.*/ +{ + msgType := '00000111'B, /* Message Type '00000111'B */ + backwardCallIndicators := mw_BWCI_cldPstatnoInd3, /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_CON_OPTIONAL_PARAMS_any, /* SET: optional parameters of Connect message (CON) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template IDR_MSG m_IDR_MRQI(template MCRI_PAR_tlv p_MRQI) := +/* TX template for Identification request message (IDR) with MCID request indicators parameterized, and with 'any' other optional parameters */ +{ + msgType := '00110110'B, /* Message Type '00110110'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_IDR_USED_OPTIONAL_PARAMS(p_MRQI), /* SET: optional parameters of Identification request message (IDR) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IRS_MSG mw_IRS_MRSI(template MCRS_PAR_tlv p_MRSI) := +/* RX template for Identification response message (IRS) with MCID response indicators parameterized and with 'any' other values */ +{ + msgType := '00110111'B, /* Message Type '00110111'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_IRS_USED_OPTIONAL_PARAMS(p_MRSI), /* SET: optional parameters of Identification response message (IRS) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template FAR_MSG m_FAR_UUI(template UUID_PAR_tlv p_UUI) := +/* RX template for Facility request message (FAR) with User-to-user indicators parameterized. */ +{ + msgType := '00011111'B, /* Message Type '00011111'B */ + facilityIndicator := '00000010'B, /* Facility indicator, F, len=1 */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_FAR_USED_OPTIONAL_PARAMS(p_UUI), /* SET: optional parameters of Facility request message (FAR) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template FRJ_MSG mw_FRJ_CAU(integer p_cauVal) := +/* RX template for Facility reject message (FRJ) with cause value parameterized, and with 'any' optional parameters */ +{ + msgType := '00100001'B, /* Message Type '00100001'B */ + facilityIndicator := ?, /* Facility indicator, F, len=1 */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := mw_CAU_cval(p_cauVal), /* Cause indicators, V, len=3-? */ + optionalParameters := mw_FRJ_OPTIONAL_PARAMS_any, /* SET: optional parameters of Facility reject message (FRJ) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template FRJ_MSG mw_FRJ_UUI(template UUID_PAR_tlv p_UUI) := +/* RX template for Facility reject message (FRJ) with User-to-user indicators parameterized.*/ +{ + msgType := '00100001'B, /* Message Type '00100001'B */ + facilityIndicator := ?, /* Facility indicator, F, len=1 */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := mw_CAUI_PAR_lv_any, /* Cause indicators, V, len=3-? */ + optionalParameters := mw_FRJ_USED_OPTIONAL_PARAMS(p_UUI), /* SET: optional parameters of Facility reject message (FRJ) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template LOP_MSG mw_LOP_LPI(template LPPI_PAR_tlv p_LPI) := +/* TX template for Loop prevention message (LOP) with Loop prevention indicators parameterized and with 'any' other optional parameters */ +{ + msgType := '01000000'B, /* Message Type '01000000'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := mw_LOP_USED_OPTIONAL_PARAMS(p_LPI), /* SET: optional parameters of Loop prevention message (LOP) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template LOP_MSG m_LOP_LPI(template LPPI_PAR_tlv p_LPI) := +/* TX template for Loop prevention message (LOP) with Loop prevention indicators parameterized and with no other optional parameters */ +{ + msgType := '01000000'B, /* Message Type '01000000'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_LOP_USED_OPTIONAL_PARAMS(p_LPI), /* SET: optional parameters of Loop prevention message (LOP) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template FAC_MSG m_FAC_comp(template ROP_PAR_tlv p_ROP) := +/* RX template for Facility message (FAC) with default remote operations and no other optional parameters.*/ +{ + msgType := '00110011'B, /* Message Type '00110011'B */ + pOptional := '00000001'B, /* Pointer to optional parameters. */ + optionalParameters := m_FAC_USED_OPTIONAL_PARAMS(p_ROP), /* SET: optional parameters of Facility message (FAC) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_CLI(template CGN_PAR_tlv p_CLI) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, with Calling party number parameterized and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(p_CLI, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_CLI_GEN(template CGN_PAR_tlv p_CLI, template GNU_PAR_tlv p_GNU) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(p_CLI, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, p_GNU, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_CLD(template Bit7 p_natAddrInd, charstring p_digits, boolean p_sendCmpl) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for the Called Party Number, and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CalledNum(p_natAddrInd, p_digits, p_sendCmpl), /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_HOC(template HPC_PAR_tlv p_HOC) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, with Hop counter parameterized and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, p_HOC), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_AT_HLC(template ATP_PAR_tlv p_AT_HLC) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, with Access transport parameterized and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, p_AT_HLC, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_TMR(Bit8 p_tmrValue) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for Transmission medium requirement, and with 'any' optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := p_tmrValue, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_NCI_FCI(template Bit2 p_eToEndMavail, template Bit1 p_eToEndInfoInd, template Bit2 p_sccpMind,template Bit1 p_natInatInd, template Bit2 p_cotChkInd) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators and and Calling party's category, with Forward call Indicators (parameterized), and with 'any' optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NatConn_noSat(p_cotChkInd), /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FwCalInd_P(p_eToEndMavail, p_eToEndInfoInd,p_sccpMind,p_natInatInd), /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_NCI_CPC_FCI2(template Bit2 p_eToEndMavail,template Bit1 p_eToEndInfoInd,template Bit2 p_sccpMind,template Bit1 p_natInatInd,template Bit1 p_eCtrlDevInd,template Bit2 p_cotChkInd) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators and Forward call Indicators (parameterized), and with 'any' optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NatConn_1Sat(p_eCtrlDevInd,p_cotChkInd), /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FwCalInd_P(p_eToEndMavail,p_eToEndInfoInd,p_sccpMind,p_natInatInd), /* Forward call indicators, F, len=2 */ + callingPartysCategory := c_CPC_cPartyCat_ordSubs, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_NCI_CPC_FCI3(template Bit2 p_eToEndMavail, template Bit1 p_eToEndInfoInd, template Bit2 p_sccpMind, template Bit1 p_natInatInd, template Bit1 p_eCtrlDevInd, template Bit2 p_cotChkInd) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators and Forward call Indicators (parameterized), and with 'any' optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NatConn_1Sat(p_eCtrlDevInd, p_cotChkInd), /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FwCalInd_P2(p_eToEndMavail,p_eToEndInfoInd,p_sccpMind,p_natInatInd), /* Forward call indicators, F, len=2 */ + callingPartysCategory := c_CPC_cPartyCat_ordSubs, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_NCI_CPC_FCI(template Bit1 p_eCtrlDevInd, template Bit2 p_cotChkInd) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators and Calling party's category (parameterized), and with 'any' optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NatConn_1Sat(p_eCtrlDevInd,p_cotChkInd), /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FwCalInd_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := c_CPC_cPartyCat_ordSubs, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, mw_USI_PAR_tlv_any ifpresent, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_USI(template USI_PAR_tlv p_USI) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, with User service information parameterized and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NCI_PAR_v_any, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, p_USI, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_USI_NCI(Bit2 p_cotChkInd, template USI_PAR_tlv p_USI) := +/* RX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators, with User service information parameterized and with 'any' other optional parameters. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := mw_NatConn_check(p_cotChkInd), /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := mw_FCI_PAR_v_any, /* Forward call indicators, F, len=2 */ + callingPartysCategory := ?, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := ?, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := mw_CDN_PAR_lv_any, /* Called party number, V, len=4-? */ + optionalParameters := mw_IAM_USED_OPTIONAL_PARAMS(mw_CGN_PAR_tlv_any ifpresent, mw_ATP_PAR_tlv_any ifpresent, p_USI, mw_GNU_PAR_tlv_any ifpresent, mw_HPC_PAR_tlv_any ifpresent), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_UUIF(template UUIF_PAR_tlv p_UUIF) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with User-to-user information parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, p_UUIF, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_UUI_UUIF(template UUID_PAR_tlv p_UUI, template UUIF_PAR_tlv p_UUIF) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, p_UUIF, omit, omit, p_UUI, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_OCN_RDGN_RDNI(template OCN_PAR_tlv p_OCN, template RDN_PAR_tlv p_RDGN, template RDI_PAR_tlv p_RDNI) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with Original called number, Redirecting number and Redirection information parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, p_RDGN, p_RDNI, p_OCN, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_AT_CLSU(template ATP_PAR_tlv p_AT_CLSU) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with Access transport parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, p_AT_CLSU, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_OFCI(template OFCI_PAR_tlv p_OFCI) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with Optional forward call indicators parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, p_OFCI, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_noCLI_noGEN := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := omit, /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLI_GEN(template CGN_PAR_tlv p_CLI, template GNU_PAR_tlv p_GEN) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(p_CLI, omit, omit, omit, omit, omit, omit, omit, omit, p_GEN, omit, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_HOC(template HPC_PAR_tlv p_HOC) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with Hop counter parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, p_HOC, omit), /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_USI(template USI_PAR_tlv p_USI) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, with User service information parameterized and with no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, p_USI, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_TMR(Bit8 p_tmrValue) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Transmission medium requirement, and with no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := p_tmrValue, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_TMR_USI(Bit8 p_tmrValue, template USI_PAR_tlv p_USI) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Transmission medium requirement, with User service information parameterized and with 'no other optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := p_tmrValue, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := f_calc_length_cdn(m_CDN_PAR_Def, 4), /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, p_USI, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := '00000000'B /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_NCI( template NCI_PAR_v p_NCI) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators, and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := p_NCI, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CDN_PAR_Def, /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD1(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (sending complete sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_STcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD2(charstring p_digits, boolean p_sendCmpl) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (international number), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_Inat(p_digits, p_sendCmpl), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD3(charstring p_digits, boolean p_sendCmpl) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (National (significant) number), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_Nat(p_digits, p_sendCmpl), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD4(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NCI_Def, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_noSTcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD1_NCI2(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (sending complete sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NatConn_Req, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_STcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD4_NCI1(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check not required) and Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NatConn_notReq, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_noSTcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD4_NCI2(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit) and Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NatConn_Req, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_noSTcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD4_NCI3(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NatConn_Exp, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_noSTcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG m_IAM_CLD4_NCI4(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check performed on previous circuit) and Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter. */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := m_NatConn_Perf, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := m_FCI_Def, /* Forward call indicators, F, len=2 */ + callingPartysCategory := PX_ISUP_TX_CGC_cliPCategory, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := PX_ISUP_TX_TMR_transmMedReq, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + calledPartyNumber := m_CalledNum_noSTcmpl(p_natAddrInd, p_digits), /* Called party number, V, len=4-? */ + optionalParameters := m_IAM_USED_OPTIONAL_PARAMS(omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit, omit), /* SET: optional parameters of Initial address message (IAM): only Propagation Delay counter used. */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template RoutingLabel m_RoutingLabel(template Bit14 p_Dpc, template Bit14 p_Opc,template Bit4 p_Sls) := +/* template for the routing label */ +{ + dpc := p_Dpc, /* destination point code */ + opc := p_Opc, /* origination point code */ + sls := p_Sls /* sls */ +} + +template CircuitIdentityCode m_CIC(template Bit12 p_Cicv) := +/* template for the CIC parameter */ +{ + cicv := p_Cicv, /* cic value */ + spare := '0000'B /* spare */ +} + +template ServiceIndicatorOctet m_SIO := +/* Default TX template for type ServiceIndicatorOctet with parametrization for non-ext/spare-fields */ +{ + userPartIdentification := '0101'B, /* User part identification, '5'H for ISUP */ + spare := '00'B, /* Spare */ + networkIndicator := PX_ISUP_NW_IND /* Network indicator */ +} + +template ACM_MSG mw_ACM_MSG_anyOpt(template BCI_PAR_v p_BCI) := +/* RX template for Address complete message (ACM) with 'any'-optional parameters */ +{ + msgType := '00000110'B, /* Message Type '00000110'B */ + backwardCallIndicators := p_BCI, /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ACM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Address complete message (ACM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ANM_MSG mw_ANM_MSG_anyOpt := +/* RX template for Answer message (ANS) with 'any'-optional parameters */ +{ + msgType := '00001001'B, /* Message Type '00001001'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_ANM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Answer message (ANS) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CPG_MSG mw_CPG_MSG_anyOpt(template EIF_PAR_v p_EIF) := +/* RX template for Call progress message (CPG) with 'any'-optional parameters */ +{ + msgType := '00101100'B, /* Message Type '00101100'B */ + eventInformation := p_EIF, /* Event information, F, len=1 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := *, //mw_CPG_OPTIONAL_PARAMS_any, /* SET: optional parameters of Call progress message (CPG) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CGQR_MSG mw_CGQR_MSG_anyOpt(template RAS_PAR_lv p_RAS, template CSI_PAR_lv p_CSI) := +/* RX template for Circuit group query response message (CGQR) with 'any'-optional parameters */ +{ + msgType := '00101011'B, /* Message Type '00101011'B */ + pRAS := '00000010'B, /* Pointer to parameter 'Range and status'. */ + pCSI := ?, /* Pointer to parameter 'Circuit state indicator'. */ + rangeAndStatus := p_RAS, /* Range and status, V, len=2 */ + circuitStateIndicator := p_CSI /* Circuit state indicator, V, len=2-33 */ +} + +template GRA_MSG mw_GRA_MSG_anyOpt(template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group reset acknowledgement message (CGRA) with 'any'-optional parameters */ +{ + msgType := '00101001'B, /* Message Type '00101001'B */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=3-34 */ +} + +template CFN_MSG mw_CFN_MSG_anyOpt(template CAUI_PAR_lv p_CAUI) := +/* RX template for Confusion message (CFN) with 'any'-optional parameters */ +{ + msgType := '00101111'B, /* Message Type '00101111'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := p_CAUI, /* Cause indicators, V, len=3-? */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template CON_MSG mw_CON_MSG_anyOpt(template BCI_PAR_v p_BCI) := +/* RX template for Connect message (CON) with 'any'-optional parameters */ +{ + msgType := '00000111'B, /* Message Type '00000111'B */ + backwardCallIndicators := p_BCI, /* Backward call indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_CON_OPTIONAL_PARAMS_any, /* SET: optional parameters of Connect message (CON) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template COT_MSG mw_COT_MSG_anyOpt(template COI_PAR_v p_COI) := +/* RX template for Continuity message (CTU) with 'any'-optional parameters */ +{ + msgType := '00000101'B, /* Message Type '00000101'B */ + continuityIndicators := p_COI /* Continuity indicators, F, len=1 */ +} + +template FRJ_MSG mw_FRJ_MSG_anyOpt(template FAI_PAR_v p_FAI, template CAUI_PAR_lv p_CAUI) := +/* RX template for Facility reject message (FRJ) with 'any'-optional parameters */ +{ + msgType := '00100001'B, /* Message Type '00100001'B */ + facilityIndicator := p_FAI, /* Facility indicator, F, len=1 */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := p_CAUI, /* Cause indicators, V, len=3-? */ + optionalParameters := mw_FRJ_OPTIONAL_PARAMS_any, /* SET: optional parameters of Facility reject message (FRJ) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template INF_MSG mw_INF_MSG_anyOpt(template IID_PAR_v p_IID) := +/* RX template for Information message (INF) with 'any'-optional parameters */ +{ + msgType := '00000100'B, /* Message Type '00000100'B */ + informationIndicators := p_IID, /* Information indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_INF_OPTIONAL_PARAMS_any, /* SET: optional parameters of Information message (INF) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template INR_MSG mw_INR_MSG_anyOpt(template IRI_PAR_v p_IRI) := +/* RX template for Information request message (INR) with 'any'-optional parameters */ +{ + msgType := '00000011'B, /* Message Type '00000011'B */ + informationRequestIndicators := p_IRI, /* Information request indicators, F, len=2 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_INR_OPTIONAL_PARAMS_any, /* SET: optional parameters of Information request message (INR) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template IAM_MSG mw_IAM_MSG_anyOpt(template NCI_PAR_v p_NCI, template FCI_PAR_v p_FCI, template CGC_PAR_v p_CGC, template TMR_PAR_v p_TMR, template CDN_PAR_lv p_CDN) := +/* RX template for Initial address message (IAM) with 'any'-optional parameters */ +{ + msgType := '00000001'B, /* Message Type '00000001'B */ + natureOfConnectionIndicators := p_NCI, /* Nature of connection indicators, F, len=1 */ + forwardCallIndicators := p_FCI, /* Forward call indicators, F, len=2 */ + callingPartysCategory := p_CGC, /* Calling party's category, F, len=1 */ + transmissionMediumRequirement := p_TMR, /* Transmission medium requirement, F, len=1 */ + pCDN := '00000010'B, /* Pointer to parameter 'Called party number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + calledPartyNumber := p_CDN, /* Called party number, V, len=4-? */ + optionalParameters := *, //mw_IAM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Initial address message (IAM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template REL_MSG mw_REL_MSG_anyOpt(template CAUI_PAR_lv p_CAUI) := +/* RX template for Release message (REL) with 'any'-optional parameters */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := ?, /* Pointer to optional parameters. */ + causeIndicators := p_CAUI, /* Cause indicators, V, len=3-? */ + optionalParameters := mw_REL_OPTIONAL_PARAMS_any, /* SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template RLC_MSG mw_RLC_MSG_anyOpt := +/* RX template for Release complete message (RLC) with 'any'-optional parameters */ +{ + msgType := '00010000'B, /* Message Type '00010000'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_RLC_OPTIONAL_PARAMS_any, /* SET: optional parameters of Release complete message (RLC) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template SAM_MSG mw_SAM_MSG_anyOpt(template SNN_PAR_lv p_SNN) := +/* RX template for Subsequent address message (SAM) with 'any'-optional parameters */ +{ + msgType := '00000010'B, /* Message Type '00000010'B */ + pSNN := '00000010'B, /* Pointer to parameter 'Subsequent number'. */ + pOptional := ?, /* Pointer to optional parameters. */ + subsequentNumber := p_SNN, /* Subsequent number, V, len=3-? */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template UUI_MSG mw_UUI_MSG_anyOpt(template UUIF_PAR_lv p_UUIF) := +/* RX template for User-to-user information message (UUI) with 'any'-optional parameters */ +{ + msgType := '00101101'B, /* Message Type '00101101'B */ + pUUIF := '00000010'B, /* Pointer to parameter 'User-to-user information'. */ + pOptional := ?, /* Pointer to optional parameters. */ + userToUserInformation := p_UUIF, /* User-to-user information, V, len=2-130 */ + optionalParameters := mw_UUI_OPTIONAL_PARAMS_any, /* SET: optional parameters of User-to-user information message (UUI) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template FTR_MSG mw_FTR_MSG_anyOpt := +/* RX template for Forward transfer message (FTR) with 'any'-optional parameters */ +{ + msgType := '00001000'B, /* Message Type '00001000'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_FTR_OPTIONAL_PARAMS_any, /* SET: optional parameters of Forward transfer message (FTR) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template SUS_MSG mw_SUS_MSG_anyOpt(template SRI_PAR_v p_SRI) := +/* RX template for Suspend message (SUS) with 'any'-optional parameters */ +{ + msgType := '00001101'B, /* Message Type '00001101'B */ + suspendResumeIndicators := p_SRI, /* Suspend Resume indicators, F, len=1 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_SUS_OPTIONAL_PARAMS_any, /* SET: optional parameters of Suspend message (SUS) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template RES_MSG mw_RES_MSG_anyOpt(template SRI_PAR_v p_SRI) := +/* RX template for Resume message (RES) with 'any'-optional parameters */ +{ + msgType := '00001110'B, /* Message Type '00001110'B */ + suspendResumeIndicators := p_SRI, /* Suspend Resume indicators, F, len=1 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_RES_OPTIONAL_PARAMS_any, /* SET: optional parameters of Resume message (RES) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template BLO_MSG mw_BLO_MSG_anyOpt := +/* RX template for Blocking message (BLO) with 'any'-optional parameters */ +{ + msgType := '00010011'B /* Message Type '00010011'B */ +} + +template BLA_MSG mw_BLA_MSG_anyOpt := +/* RX template for Blocking acknowledgement message (BLA) with 'any'-optional parameters */ +{ + msgType := '00010101'B /* Message Type '00010101'B */ +} + +template CCR_MSG mw_CCR_MSG_anyOpt := +/* RX template for Continuity check request message (CCR) with 'any'-optional parameters */ +{ + msgType := '00010001'B /* Message Type '00010001'B */ +} + +template LBA_MSG mw_LBA_MSG_anyOpt := +/* RX template for Loop back acknowledgement message (LBA) with 'any'-optional parameters */ +{ + msgType := '00100100'B /* Message Type '00100100'B */ +} + +template OVL_MSG mw_OVL_MSG_anyOpt := +/* RX template for Overload message (OVL) with 'any'-optional parameters */ +{ + msgType := '00110000'B /* Message Type '00110000'B */ +} + +template RSC_MSG mw_RSC_MSG_anyOpt := +/* RX template for Reset circuit message (RSC) with 'any'-optional parameters */ +{ + msgType := '00010010'B /* Message Type '00010010'B */ +} + +template UBL_MSG mw_UBL_MSG_anyOpt := +/* RX template for Unblocking message (UBL) with 'any'-optional parameters */ +{ + msgType := '00010100'B /* Message Type '00010100'B */ +} + +template UBA_MSG mw_UBA_MSG_anyOpt := +/* RX template for Unblocking acknowledgement message (UBA) with 'any'-optional parameters */ +{ + msgType := '00010110'B /* Message Type '00010110'B */ +} + +template UQC_MSG mw_UQC_MSG_anyOpt := +/* RX template for Unequipped CIC message (UQC) with 'any'-optional parameters */ +{ + msgType := '00101110'B /* Message Type '00101110'B */ +} + +template CGB_MSG mw_CGB_MSG_anyOpt(template CGSM_PAR_v p_CGSM, template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group blocking message (CGB) with 'any'-optional parameters */ +{ + msgType := '00011000'B, /* Message Type '00011000'B */ + circuitGroupSupervisionMessageType := p_CGSM, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=3-34 */ +} + +template CGBA_MSG mw_CGBA_MSG_anyOpt(template CGSM_PAR_v p_CGSM, template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group blocking acknowledgement message (CGBA) with 'any'-optional parameters */ +{ + msgType := '00011010'B, /* Message Type '00011010'B */ + circuitGroupSupervisionMessageType := p_CGSM, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=3-34 */ +} + +template CGU_MSG mw_CGU_MSG_anyOpt(template CGSM_PAR_v p_CGSM, template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group unblocking message (CGU) with 'any'-optional parameters */ +{ + msgType := '00011001'B, /* Message Type '00011001'B */ + circuitGroupSupervisionMessageType := p_CGSM, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=3-34 */ +} + +template CGUA_MSG mw_CGUA_MSG_anyOpt(template CGSM_PAR_v p_CGSM, template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group unblocking acknowledgement message (CGUA) with 'any'-optional parameters */ +{ + msgType := '00011011'B, /* Message Type '00011011'B */ + circuitGroupSupervisionMessageType := p_CGSM, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=3-34 */ +} + +template GRS_MSG mw_GRS_MSG_anyOpt(template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group reset message (CGR) with 'any'-optional parameters */ +{ + msgType := '00010111'B, /* Message Type '00010111'B */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=2 */ +} + +template CGQ_MSG mw_CGQ_MSG_anyOpt(template RAS_PAR_lv p_RAS) := +/* RX template for Circuit group query message (CGQ) with 'any'-optional parameters */ +{ + msgType := '00101010'B, /* Message Type '00101010'B */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=2 */ +} + +template FAA_MSG mw_FAA_MSG_anyOpt(template FAI_PAR_v p_FAI) := +/* RX template for Facility accepted message (FAA) with 'any'-optional parameters */ +{ + msgType := '00100000'B, /* Message Type '00100000'B */ + facilityIndicator := p_FAI, /* Facility indicator, F, len=1 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_FAA_OPTIONAL_PARAMS_any, /* SET: optional parameters of Facility accepted message (FAA) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template FAR_MSG mw_FAR_MSG_anyOpt(template FAI_PAR_v p_FAI) := +/* RX template for Facility request message (FRQ) with 'any'-optional parameters */ +{ + msgType := '00011111'B, /* Message Type '00011111'B */ + facilityIndicator := p_FAI, /* Facility indicator, F, len=1 */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_FAR_OPTIONAL_PARAMS_any, /* SET: optional parameters of Facility request message (FRQ) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template UPT_MSG mw_UPT_MSG_anyOpt := +/* RX template for User Part test message (UPT) with 'any'-optional parameters */ +{ + msgType := '00110100'B, /* Message Type '00110100'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_UPT_OPTIONAL_PARAMS_any, /* SET: optional parameters of User Part test message (UPT) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template UPA_MSG mw_UPA_MSG_anyOpt := +/* RX template for User Part available message (UPA) with 'any'-optional parameters */ +{ + msgType := '00110101'B, /* Message Type '00110101'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_UPA_OPTIONAL_PARAMS_any, /* SET: optional parameters of User Part available message (UPA) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template FAC_MSG mw_FAC_MSG_anyOpt := +/* RX template for Facility message (FAC) with 'any'-optional parameters */ +{ + msgType := '00110011'B, /* Message Type '00110011'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_FAC_OPTIONAL_PARAMS_any, /* SET: optional parameters of Facility message (FAC) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template NRM_MSG mw_NRM_MSG_anyOpt := +/* RX template for Network resource management message (NRM) with 'any'-optional parameters */ +{ + msgType := '00110010'B, /* Message Type '00110010'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_NRM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Network resource management message (NRM) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template IDR_MSG mw_IDR_MSG_anyOpt := +/* RX template for Identification request message (IRQ) with 'any'-optional parameters */ +{ + msgType := '00110110'B, /* Message Type '00110110'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_IDR_OPTIONAL_PARAMS_any, /* SET: optional parameters of Identification request message (IRQ) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template IRS_MSG mw_IRS_MSG_anyOpt := +/* RX template for Identification response message (IRS) with 'any'-optional parameters */ +{ + msgType := '00110111'B, /* Message Type '00110111'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_IRS_OPTIONAL_PARAMS_any, /* SET: optional parameters of Identification response message (IRS) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template SEG_MSG mw_SEG_MSG_anyOpt := +/* RX template for Segmentation message (SEG) with 'any'-optional parameters */ +{ + msgType := '00111000'B, /* Message Type '00111000'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_SEG_OPTIONAL_PARAMS_any, /* SET: optional parameters of Segmentation message (SEG) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template LOP_MSG mw_LOP_MSG_anyOpt := +/* RX template for Loop prevention message (LPR) with 'any'-optional parameters */ +{ + msgType := '01000000'B, /* Message Type '01000000'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_LOP_OPTIONAL_PARAMS_any, /* SET: optional parameters of Loop prevention message (LPR) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template APM_MSG mw_APM_MSG_anyOpt := +/* RX template for Application transport message (ATR) with 'any'-optional parameters */ +{ + msgType := '01000001'B, /* Message Type '01000001'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_APM_OPTIONAL_PARAMS_any, /* SET: optional parameters of Application transport message (ATR) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template PRI_MSG mw_PRI_MSG_anyOpt := +/* RX template for Pre-release information message (PRI) with 'any'-optional parameters */ +{ + msgType := '01000010'B, /* Message Type '01000010'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_PRI_OPTIONAL_PARAMS_any, /* SET: optional parameters of Pre-release information message (PRI) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template SDN_MSG mw_SDN_MSG_anyOpt := +/* RX template for Subsequent Directory Number message (SDN) with 'any'-optional parameters */ +{ + msgType := '01000011'B, /* Message Type '01000011'B */ + pOptional := ?, /* Pointer to optional parameters. */ + optionalParameters := mw_SDN_OPTIONAL_PARAMS_any, /* SET: optional parameters of Subsequent Directory Number message (SDN) */ + endOfOptionalParameters := '00000000'B ifpresent /* End of optional parameters, O, len=1 */ +} + +template ISUP_BICC_MSG_req m_ISUP_MSG_req(Bit12 p_cic, template ISUP_BICC_MSG p_ISUP_BICC_MSG, Bit4 p_SLS) := +/* ASP template used to send an ISUP message */ +{ + serviceIndicatorOctet := m_SIO, /* contents only used if ISUP selected */ + routingLabel := m_RoutingLabel(PX_ISUP_PC_SUT, PX_ISUP_PC_TS, p_SLS), /* contents only evaluated if ISUP selected */ + circuitIdentityCode := m_CIC(p_cic), /* contents only evaluated if ISUP selected */ + callInstanceCode := omit, /* contents only evaluated if BICC selected */ + iSUP_BICC_MSG := p_ISUP_BICC_MSG /* common part of ISUP/BICC message */ +} + +template ISUP_BICC_MSG_req m_BICC_MSG_req(CallInstanceCode p_CallInstCode, template ISUP_BICC_MSG p_ISUP_BICC_MSG) := +/* ASP template used to send a BICC message */ +{ + serviceIndicatorOctet := omit, /* contents only used if ISUP selected */ + routingLabel := omit, /* contents only evaluated if ISUP selected */ + circuitIdentityCode := omit, /* contents only evaluated if ISUP selected */ + callInstanceCode := p_CallInstCode, /* contents only evaluated if BICC selected */ + iSUP_BICC_MSG := p_ISUP_BICC_MSG /* common part of ISUP/BICC message */ +} + +template ISUP_BICC_MSG_ind mw_ISUP_MSG_ind(template Bit12 p_cic, template ISUP_BICC_MSG p_ISUP_BICC_MSG, template Bit4 p_SLS) := +/* ASP template used to receive an ISUP message */ +{ + serviceIndicatorOctet := m_SIO, /* contents only used if ISUP selected */ + routingLabel := m_RoutingLabel(PX_ISUP_PC_TS, PX_ISUP_PC_SUT,p_SLS), /* contents only evaluated if ISUP selected */ + circuitIdentityCode := m_CIC(p_cic), /* contents only evaluated if ISUP selected */ + callInstanceCode := omit, /* contents only evaluated if BICC selected */ + iSUP_BICC_MSG := p_ISUP_BICC_MSG /* common part of ISUP/BICC message */ +} + +template ISUP_BICC_MSG_ind mw_BICC_MSG_ind(template CallInstanceCode p_CallInstCode, template ISUP_BICC_MSG p_ISUP_BICC_MSG) := +/* ASP template used to receive a BICC message */ +{ + serviceIndicatorOctet := omit, /* contents only used if ISUP selected */ + routingLabel := omit, /* contents only evaluated if ISUP selected */ + circuitIdentityCode := omit, /* contents only evaluated if ISUP selected */ + callInstanceCode := p_CallInstCode, /* contents only evaluated if BICC selected */ + iSUP_BICC_MSG := p_ISUP_BICC_MSG /* common part of ISUP/BICC message */ +} + +template InitializeIsupBicc_req m_InitializeIsup_req := +/* Used to Initialize the ISUP test system. */ +{ + ts_pointCode := PX_ISUP_PC_TS, /* Signalling point code of the TS (ISUP).*/ + sut_pointCode := PX_ISUP_PC_SUT, /*Signalling point code of the SUT (ISUP).*/ + ts_address_isup_bicc := omit, /* Address (e.g. IP) of the TS (ISUP/BICC side). */ + sut_address_isup_bicc := omit /* Address (e.g. IP) of the SUT (ISUP/BICC side). */ +} + +template InitializeIsupBicc_req m_InitializeBicc_req := +/* Used to Initialize the BICC test system. */ +{ + ts_pointCode := omit, /* Signalling point code of the TS (ISUP).*/ + sut_pointCode := omit, /*Signalling point code of the SUT (ISUP).*/ + ts_address_isup_bicc := PX_TS_ADRESS_ISUP_BICC, /* Address (e.g. IP) of the TS (ISUP/BICC side). */ + sut_address_isup_bicc := PX_SUT_ADRESS_ISUP_BICC /* Address (e.g. IP) of the SUT (ISUP/BICC side). */ +} +/* Additional comments: +This ASP is used at the beginning of each test case to initiate the necessary initialization of the +ISUP/BICC part of the test system, particularly the interfaces to the SUT. +If module parameter 'PX_ISUP_Isup' indicates 'falsec', the values of parameters 'ts_pointCode' and 'sut_pointCode' shall +be ignored by the SA. +If module parameter 'PX_ISUP_Isup' indicates 'true', the values of parameters 'ts_address_isup_bicc' and +'sut_address_isup_bicc' may be ignored, if they are not necessary. +Among the initializing actions there shall be: +a) Verification that the ISUP/BICC link is operable between SUT and TS. +b) Verification that the TS is ready to send and receive SIP messages. +Note: It is a matter of TS implementation whether the TS, upon this request, sets up and initializes lower layer connections, if these are not setup. +Other initialization actions may be TS-specific. */ + +template InitializeIsupBicc_cnf mw_InitializeIsupBicc_cnf := +/* Answer whether all necessary TS initializations have been successfully performed. The result can be positive or negative. The result will be positive only if the TS is able to send and recieve messages at the SIP- and the ISUP/BICC-interface of the SUT. */ +{ + result := true /* Indicating success of the whole initialization. */ +} + + +template BearerSetup_req m_BearerSetup_req(CallInstanceCode p_cic) := +/* For BICC: request TS to setup the bearer connection between TS and SUT. */ +{ + cic := p_cic /* Call Instance Code identifying the bearer connection. */ +} + +template BearerSetup_acc mw_BearerSetup_acc(CallInstanceCode p_cic) := +/* For BICC: answer to BearerSetup_req. The answer can be positive (bearer connection setup successful) or negative (bearer connection setup failed). */ +{ + cic := p_cic, /* Call Instance Code identifying the bearer connection. */ + result := true /* The answer is positive when the bearer connection setup was successful and negative when the bearer connection setup failed. */ +} + +template BearerRelease_req m_BearerRelease_req(CallInstanceCode p_cic) := +/* For BICC: request to release the established bearer connection. */ +{ + cic := p_cic /* Call Instance Code identifying the bearer connection. */ +} + +template BearerRelease_cnf m_BearerRelease_cnf(CallInstanceCode p_cic) := +/* For BICC: confirmation that the requested bearer is released. */ +{ + cic := p_cic, /* Call Instance Code identifying the bearer connection. */ + result := true /* Indication that the bearer is successfully released. */ +} + +template BearerSetup_ind mw_Setup_ind(CallInstanceCode p_cic) := +/* Indication that the bearer has been released. */ +{ + cic := p_cic /* Call Instance Code identifying the bearer connection. */ +} + +template BearerRelease_ind mw_BearerRelease_ind(CallInstanceCode p_cic) := +/* Indication that the bearer has been released. */ +{ + cic := p_cic /* Call Instance Code identifying the bearer connection. */ +} + +template REL_MSG m_REL_MSG_noOpt(template CAUI_PAR_lv p_CAUI) := +/* TX template for Release message (REL) without optional parameters */ +{ + msgType := '00001100'B, /* Message Type '00001100'B */ + pCAUI := '00000010'B, /* Pointer to parameter 'Cause indicators'. */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + causeIndicators := p_CAUI, /* Cause indicators, V, len=3-? */ + optionalParameters := omit, /*SET: optional parameters of Release message (REL) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template RLC_MSG m_RLC_MSG_noOpt := +/* TX template for Release complete message (RLC) without optional parameters */ +{ + msgType := '00010000'B, /* Message Type '00010000'B */ + pOptional := '00000000'B, /* Pointer to optional parameters. */ + optionalParameters := omit, /*SET: optional parameters of Release complete message (RLC) */ + endOfOptionalParameters := omit /* End of optional parameters, O, len=1 */ +} + +template RSC_MSG m_RSC_MSG_noOpt := +/* TX template for Reset circuit message (RSC) without optional parameters */ +{ + msgType := '00010010'B /* Message Type '00010010'B */ +} + +template CGU_MSG m_CGU_MSG_noOpt := +/* TX template for Circuit group unblocking message (CGU) without optional parameters */ +{ + msgType := '00011001'B, /* Message Type '00011001'B */ + circuitGroupSupervisionMessageType := m_cGroupSupMT_Def, /* Circuit group supervision message type, F, len=1 */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := m_RAS_Def /* Range and status, V, len=3-34 */ +} + +template GRS_MSG m_GRS_MSG_noOpt(template RAS_PAR_lv p_RAS) := +/* TX template for Circuit group reset message (CGR) without optional parameters */ +{ + msgType := '00010111'B, /* Message Type '00010111'B */ + pRAS := '00000001'B, /* Pointer to parameter 'Range and status'. */ + rangeAndStatus := p_RAS /* Range and status, V, len=2 */ +} + + +} // end module SipIsup_ISUP_MsgTemplates + + diff --git a/IsupAts/SipIsup_ISUP_MsgTypes.ttcn b/IsupAts/SipIsup_ISUP_MsgTypes.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..5355c42d45417e7c277d113c2c04fb63a460e1a3 --- /dev/null +++ b/IsupAts/SipIsup_ISUP_MsgTypes.ttcn @@ -0,0 +1,998 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides ISUP/BICC-related Message type declarations. +*/ +module SipIsup_ISUP_MsgTypes +{ +import from LibCommon_BasicTypesAndValues all; +import from LibCommon_DataStrings all; +import from LibCommon_TextStrings all; +import from SipIsup_ISUP_ParamTypes all; + +type record ACM_MSG /* Address complete message (ACM) */ +{ + Bit8 msgType ('00000110'B), /* Message Type '00000110'B */ + BCI_PAR_v backwardCallIndicators, /* Backward call indicators, F, len=2 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + ACM_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Address complete message (ACM) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x06)"; } + +type set ACM_OPTIONAL_PARAMS /* SET: optional parameters of Address complete message (ACM) */ +{ + OBCI_PAR_tlv optionalBackwardCallIndicators optional, /* Optional backward call indicators, O, len=3 */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + CAUI_PAR_tlv causeIndicators optional, /* Cause indicators, O, len=4-? */ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + TMU_PAR_tlv transmissionMediumUsed optional, /* Transmission medium used, O, len=3 */ + ECI_PAR_tlv echoControlInformation optional, /* Echo control information, O, len=3 */ + ADI_PAR_tlv accessDeliveryInformation optional, /* Access delivery information, O, len=3 */ + RNN_PAR_tlv redirectionNumber optional, /* Redirection number, O, len=5-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + CDI_PAR_tlv callDiversionInformation optional, /* Call diversion information, O, len=3 */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + SAC_PAR_tlv serviceActivation optional, /* Service activation, O, len=3-? */ + RNS_PAR_tlv redirectionNumberRestriction optional, /* Redirection number restriction, O, len=3 */ + CTI_PAR_tlv conferenceTreatmentIndicators optional, /* Conference treatment indicators, O, len=3-? */ + UAI_PAR_tlv uIDActionIndicators optional, /* UID action indicators, O, len=3-? */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional, /* Application transport parameter2, O, len=5-? */ + CCPI_PAR_tlv cCNRPossibleIndicator optional, /* CCNR possible indicator, O, len=3 */ + HTRI_PAR_tlv hTRInformation optional, /* HTR information, O, len=4-? */ + PRBI_PAR_tlv pivotRoutingBackwardInformation optional, /* Pivot routing backward information, O, len=3-? */ + RST_PAR_tlv redirectStatus optional, /* Redirect status, O, len=3 */ + UNKNOWN_PAR_tlv unknownParameter optional /* Unknown parameter */ +} + + +type record ANM_MSG /* Answer message (ANM) */ +{ + Bit8 msgType('00001001'B), /* Message Type '00001001'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + ANM_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Answer message (ANM) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +//with { encode "present=bytes(1,0x09)"; } + +type set ANM_OPTIONAL_PARAMS /* SET: optional parameters of Answer message (ANM) */ +{ + BCI_PAR_tlv backwardCallIndicators optional, /* Backward call indicators, O, len=4 */ + OBCI_PAR_tlv optionalBackwardCallIndicators optional, /* Optional backward call indicators, O, len=3 */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + CPN_PAR_tlv connectedNumber optional, /* Connected number, O, len=4-? */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + ADI_PAR_tlv accessDeliveryInformation optional, /* Access delivery information, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + BGV_PAR_tlv backwardGVNS optional, /* Backward GVNS, O, len=3-? */ + CHI_PAR_tlv callHistoryInformation optional, /* Call history information, O, len=4 */ + GNU_PAR_tlv genericNumber1 optional, /* Generic number1, O, len=5-? */ + GNU_PAR_tlv genericNumber2 optional, /* Generic number2, O, len=5-? */ + TMU_PAR_tlv transmissionMediumUsed optional, /* Transmission medium used, O, len=3 */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + RNN_PAR_tlv redirectionNumber optional, /* Redirection number, O, len=5-? */ + SAC_PAR_tlv serviceActivation optional, /* Service activation, O, len=3-? */ + ECI_PAR_tlv echoControlInformation optional, /* Echo control information, O, len=3 */ + RNS_PAR_tlv redirectionNumberRestriction optional, /* Redirection number restriction, O, len=3 */ + DIF_PAR_tlv displayInformation optional, /* Display information, O, len=3-? */ + CTI_PAR_tlv conferenceTreatmentIndicators optional, /* Conference treatment indicators, O, len=1-? */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional, /* Application transport parameter2, O, len=5-? */ + PRBI_PAR_tlv pivotRoutingBackwardInformation optional, /* Pivot routing backward information, O, len=3-? */ + RST_PAR_tlv redirectStatus optional /* Redirect status, O, len=3 */ +} + + +type record CPG_MSG /* Call progress message (CPG) */ +{ + Bit8 msgType ('00101100'B), /* Message Type '00101100'B */ + EIF_PAR_v eventInformation, /* Event information, F, len=1 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + CPG_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Call progress message (CPG) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x2C)"; } + +type set CPG_OPTIONAL_PARAMS /* SET: optional parameters of Call progress message (CPG) */ +{ + CAUI_PAR_tlv causeIndicators optional, /* Cause indicators, O, len=4-? */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + BCI_PAR_tlv backwardCallIndicators optional, /* Backward call indicators, O, len=4 */ + OBCI_PAR_tlv optionalBackwardCallIndicators optional, /* Optional backward call indicators, O, len=3 */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + RNN_PAR_tlv redirectionNumber optional, /* Redirection number, O, len=5-? */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + TMU_PAR_tlv transmissionMediumUsed optional, /* Transmission medium used, O, len=3 */ + ADI_PAR_tlv accessDeliveryInformation optional, /* Access delivery information, O, len=3 */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + CDI_PAR_tlv callDiversionInformation optional, /* Call diversion information, O, len=3 */ + SAC_PAR_tlv serviceActivation optional, /* Service activation, O, len=3-? */ + RNS_PAR_tlv redirectionNumberRestriction optional, /* Redirection number restriction, O, len=3 */ + CTN_PAR_tlv callTransferNumber optional, /* Call transfer number, O, len=4-? */ + ECI_PAR_tlv echoControlInformation optional, /* Echo control information, O, len=3 */ + CPN_PAR_tlv connectedNumber optional, /* Connected number, O, len=4-? */ + BGV_PAR_tlv backwardGVNS optional, /* Backward GVNS, O, len=3-? */ + GNU_PAR_tlv genericNumber1 optional, /* Generic number1, O, len=5-? */ + GNU_PAR_tlv genericNumber2 optional, /* Generic number2, O, len=5-? */ + CHI_PAR_tlv callHistoryInformation optional, /* Call history information, O, len=4 */ + CTI_PAR_tlv conferenceTreatmentIndicators optional, /* Conference treatment indicators, O, len=3-? */ + UAI_PAR_tlv uIDActionIndicators optional, /* UID action indicators, O, len=3-? */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional, /* Application transport parameter2, O, len=5-? */ + CCPI_PAR_tlv cCNRPossibleIndicator optional, /* CCNR possible indicator, O, len=3 */ + PRBI_PAR_tlv pivotRoutingBackwardInformation optional, /* Pivot routing backward information, O, len=3-? */ + RST_PAR_tlv redirectStatus optional, /* Redirect status, O, len=3 */ + UNKNOWN_PAR_tlv unknownParameter optional /* Unknown parameter */ +} + +type record CPG_MSG_unknown_parameter /* Call progress message (CPG) with one unknown optional parameters */ +{ + Bit8 msgType ('00101100'B), /* Message Type '00101100'B */ + EIF_PAR_v eventInformation, /* Event information, F, len=1 */ + Bit8 pOptional ('00000001'B), /* Pointer to optional parameters. */ + UNKNOWN_PAR_tlv unknownParameter, /* Unknown parameter */ + EOP endOfOptionalParameters ('00000000'B) /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x2C)"; } + +type record CGQR_MSG /* Circuit group query response message (CGQR) */ +{ + Bit8 msgType ('00101011'B), /* Message Type '00101011'B */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + Bit8 pCSI, /* Pointer to parameter 'Circuit state indicator'. */ + RAS_PAR_lv rangeAndStatus, /* Range and status, V, len=2 */ + CSI_PAR_lv circuitStateIndicator /* Circuit state indicator, V, len=2-33 */ +} +with { encode "present=bytes(1,0x2B)"; } + +type record GRA_MSG /* Circuit group reset acknowledgement message (GRA) */ +{ + Bit8 msgType ('00101001'B), /* Message Type '00101001'B */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=3-34 */ +} +with { encode "present=bytes(1,0x29)"; } + +type record CFN_MSG /* Confusion message (CFN) */ +{ + Bit8 msgType ('00101111'B), /* Message Type '00101111'B */ + Bit8 pCAUI, /* Pointer to parameter 'Cause indicators'. */ + Bit8 pOptional, /* Pointer to optional parameters. */ + CAUI_PAR_lv causeIndicators, /* Cause indicators, V, len=3-? */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x2F)"; } + +type record CON_MSG /* Connect message (CON) */ +{ + Bit8 msgType ('00000111'B), /* Message Type '00000111'B */ + BCI_PAR_v backwardCallIndicators, /* Backward call indicators, F, len=2 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + CON_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Connect message (CON) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x07)"; } + +type set CON_OPTIONAL_PARAMS /* SET: optional parameters of Connect message (CON) */ +{ + OBCI_PAR_tlv optionalBackwardCallIndicators optional, /* Optional backward call indicators, O, len=3 */ + BGV_PAR_tlv backwardGVNS optional, /* Backward GVNS, O, len=3-? */ + CPN_PAR_tlv connectedNumber optional, /* Connected number, O, len=4-? */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + TMU_PAR_tlv transmissionMediumUsed optional, /* Transmission medium used, O, len=3 */ + ECI_PAR_tlv echoControlInformation optional, /* Echo control information, O, len=3 */ + ADI_PAR_tlv accessDeliveryInformation optional, /* Access delivery information, O, len=3 */ + CHI_PAR_tlv callHistoryInformation optional, /* Call history information, O, len=4 */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + SAC_PAR_tlv serviceActivation optional, /* Service activation, O, len=3-? */ + GNU_PAR_tlv genericNumber1 optional, /* Generic number1, O, len=5-? */ + GNU_PAR_tlv genericNumber2 optional, /* Generic number2, O, len=5-? */ + RNS_PAR_tlv redirectionNumberRestriction optional, /* Redirection number restriction, O, len=3 */ + CTI_PAR_tlv conferenceTreatmentIndicators optional, /* Conference treatment indicators, O, len=3-? */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional, /* Application transport parameter2, O, len=5-? */ + HTRI_PAR_tlv hTRInformation optional, /* HTR information, O, len=4-? */ + PRBI_PAR_tlv pivotRoutingBackwardInformation optional, /* Pivot routing backward information, O, len=3-? */ + RST_PAR_tlv redirectStatus optional /* Redirect status, O, len=3 */ +} + + +type record COT_MSG /* Continuity message (COT) */ +{ + Bit8 msgType ('00000101'B), /* Message Type '00000101'B */ + COI_PAR_v continuityIndicators /* Continuity indicators, F, len=1 */ +} +with { encode "present=bytes(1,0x05)"; } + +type record FRJ_MSG /* Facility reject message (FRJ) */ +{ + Bit8 msgType('00100001'B), /* Message Type '00100001'B */ + FAI_PAR_v facilityIndicator, /* Facility indicator, F, len=1 */ + Bit8 pCAUI, /* Pointer to parameter 'Cause indicators'. */ + Bit8 pOptional, /* Pointer to optional parameters. */ + CAUI_PAR_lv causeIndicators, /* Cause indicators, V, len=3-? */ + FRJ_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Facility reject message (FRJ) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x21)"; } + +type set FRJ_OPTIONAL_PARAMS /* SET: optional parameters of Facility reject message (FRJ) */ +{ + UUID_PAR_tlv userToUserIndicators optional /* User-to-user indicators, O, len=3 */ +} + + +type record INF_MSG /* Information message (INF) */ +{ + Bit8 msgType ('00000100'B), /* Message Type '00000100'B */ + IID_PAR_v informationIndicators, /* Information indicators, F, len=2 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + INF_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Information message (INF) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x04)"; } + +type set INF_OPTIONAL_PARAMS /* SET: optional parameters of Information message (INF) */ +{ + CGC_PAR_tlv callingPartysCategory optional, /* Calling party's category, O, len=3 */ + CGN_PAR_tlv callingPartyNumber optional, /* Calling party number, O, len=4-? */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + CRQ_PAR_tlv connectionRequest optional, /* Connection request, O, len=7-9 */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + NSF_PAR_tlv networkSpecificFacility optional /* Network specific facility, O, len=4-? */ +} + + +type record INR_MSG /* Information request message (INR) */ +{ + Bit8 msgType ('00000011'B), /* Message Type '00000011'B */ + IRI_PAR_v informationRequestIndicators, /* Information request indicators, F, len=2 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + INR_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Information request message (INR) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x03)"; } + +type set INR_OPTIONAL_PARAMS /* SET: optional parameters of Information request message (INR) */ +{ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional /* Parameter compatibility information, O, len=4-? */ +} + + +type record IAM_MSG /* Initial address message (IAM) */ +{ + Bit8 msgType ('00000001'B), /* Message Type '00000001'B */ + NCI_PAR_v natureOfConnectionIndicators, /* Nature of connection indicators, F, len=1 */ + FCI_PAR_v forwardCallIndicators, /* Forward call indicators, F, len=2 */ + CGC_PAR_v callingPartysCategory, /* Calling party's category, F, len=1 */ + TMR_PAR_v transmissionMediumRequirement, /* Transmission medium requirement, F, len=1 */ + Bit8 pCDN, /* Pointer to parameter 'Called party number'. */ + Bit8 pOptional, /* Pointer to optional parameters. */ + CDN_PAR_lv calledPartyNumber, /* Called party number, V, len=4-? */ + IAM_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Initial address message (IAM) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x01)"; } + +type set IAM_OPTIONAL_PARAMS /* SET: optional parameters of Initial address message (IAM) */ +{ + TNS_PAR_tlv transitNetworkSelection optional, /* Transit network selection, O, len=4-? */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + CGN_PAR_tlv callingPartyNumber optional, /* Calling party number, O, len=4-? */ + OFCI_PAR_tlv optionalForwardCallIndicators optional, /* Optional forward call indicators, O, len=3 */ + RDN_PAR_tlv redirectingNumber optional, /* Redirecting number, O, len=4-? */ + RDI_PAR_tlv redirectionInformation optional, /* Redirection information, O, len=3-4 */ + CUGIC_PAR_tlv closedUserGroupInterlockCode optional, /* Closed user group interlock code, O, len=6 */ + CRQ_PAR_tlv connectionRequest optional, /* Connection request, O, len=7-9 */ + OCN_PAR_tlv originalCalledNumber optional, /* Original called number, O, len=4-? */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + USI_PAR_tlv userServiceInformation optional, /* User service information, O, len=4-13 */ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + GNU_PAR_tlv genericNumber1 optional, /* Generic number1, O, len=5-? */ + GNU_PAR_tlv genericNumber2 optional, /* Generic number2, O, len=5-? */ + PDC_PAR_tlv propagationDelayCounter optional, /* Propagation delay counter, O, len=4 */ + USIP_PAR_tlv userServiceInformationPrime optional, /* User service information prime, O, len=4-13 */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + GDG_PAR_tlv genericDigits1 optional, /* Generic digits1, O, len=4-? */ + GDG_PAR_tlv genericDigits2 optional, /* Generic digits2, O, len=4-? */ + OIPC_PAR_tlv originationISCPointCode optional, /* Origination ISC point code, O, len=4 */ + UTSI_PAR_tlv userTeleserviceInformation optional, /* User teleservice information, O, len=4-5 */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + SAC_PAR_tlv serviceActivation optional, /* Service activation, O, len=3-? */ + MLPP_PAR_tlv mLPPPrecedence optional, /* MLPP precedence, O, len=8 */ + TMRP_PAR_tlv transmissionMediumRequirementPrime optional, /* Transmission medium requirement prime, O, len=3 */ + LON_PAR_tlv locationNumber optional, /* Location number, O, len=4-? */ + FGVNS_PAR_tlv forwardGVNS optional, /* Forward GVNS, O, len=5-26 */ + CCSS_PAR_tlv cCSS optional, /* CCSS, O, len=3-? */ + NMC_PAR_tlv networkManagementControls optional, /* Network management controls, O, len=3-? */ + CAM_PAR_tlv circuitAssignmentMap optional, /* Circuit assignment map, O, len=6-7 */ + CRI_PAR_tlv correlationId optional, /* Correlation id, O, len=3-? */ + CDTI_PAR_tlv callDiversionTreatmentIndicators optional, /* Call diversion treatment indicators, O, len=3-? */ + CIN_PAR_tlv calledINNumber optional, /* Called IN number, O, len=4-? */ + COTI_PAR_tlv callOfferingTreatmentIndicators optional, /* Call offering treatment indicators, O, len=3-? */ + CTI_PAR_tlv conferenceTreatmentIndicators optional, /* Conference treatment indicators, O, len=3-? */ + SCFI_PAR_tlv sCFId optional, /* SCF id, O, len=3-? */ + UCI_PAR_tlv uIDCapabilityIndicators optional, /* UID capability indicators, O, len=3-? */ + ECI_PAR_tlv echoControlInformation optional, /* Echo control information, O, len=3 */ + HPC_PAR_tlv hopCounter optional, /* Hop counter, O, len=3 */ + CCRQ_PAR_tlv collectCallRequest optional, /* Collect call request, O, len=3 */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional, /* Application transport parameter2, O, len=5-? */ + PICP_PAR_tlv pivotCapability optional, /* Pivot capability, O, len=3 */ + CDIN_PAR_tlv calledDirectoryNumber optional, /* Called directory number, O, len=5-? */ + OCI_PAR_tlv originalCalledINNumber optional, /* Original called IN number, O, len=4-? */ + CGL_PAR_tlv callingGeodeticLocation optional, /* Calling geodetic location, O, len=3-? */ + NRN_PAR_tlv networkRoutingNumber optional, /* Network routing number, O, len=4-? */ + QRC_PAR_tlv queryOnReleaseCapability optional, /* Query on release capability, O, len=3 */ + PICN_PAR_tlv pivotCounter optional, /* Pivot counter, O, len=3 */ + PRFI_PAR_tlv pivotRoutingForwardInformation optional, /* Pivot routing forward information, O, len=3-? */ + RCP_PAR_tlv redirectCapability optional, /* Redirect capability, O, len=3 */ + RCN_PAR_tlv redirectCounter optional, /* Redirect counter, O, len=3 */ + RST_PAR_tlv redirectStatus optional, /* Redirect status, O, len=3 */ + RFI_PAR_tlv redirectForwardInformation optional, /* Redirect forward information, O, len=3-? */ + NPFI_PAR_tlv numberPortabilityForwardInformation optional, /* Number portability forward information, O, len=1-? */ + ARR_PAR_tlv automaticReRouting optional /* Automatic re-routing, O, len=4-? */ +} + + +type record REL_MSG /* Release message (REL) */ +{ + Bit8 msgType ('00001100'B), /* Message Type '00001100'B */ + Bit8 pCAUI, /* Pointer to parameter 'Cause indicators'. */ + Bit8 pOptional, /* Pointer to optional parameters. */ + CAUI_PAR_lv causeIndicators, /* Cause indicators, V, len=3-? */ + REL_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Release message (REL) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x0C)"; } + +type set REL_OPTIONAL_PARAMS /* SET: optional parameters of Release message (REL) */ +{ + RDI_PAR_tlv redirectionInformation optional, /* Redirection information, O, len=3-4 */ + RNN_PAR_tlv redirectionNumber optional, /* Redirection number, O, len=5-? */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + SPC_PAR_tlv signallingPointCode optional, /* Signalling point code, O, len=4 */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + ACL_PAR_tlv automaticCongestionLevel optional, /* Automatic congestion level, O, len=3 */ + NSF_PAR_tlv networkSpecificFacility optional, /* Network specific facility, O, len=4-? */ + ADI_PAR_tlv accessDeliveryInformation optional, /* Access delivery information, O, len=3 */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + DIF_PAR_tlv displayInformation optional, /* Display information, O, len=3-? */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + HTRI_PAR_tlv hTRInformation optional, /* HTR information, O, len=4-? */ + RCN_PAR_tlv redirectCounter optional, /* Redirect counter, O, len=3 */ + RBI_PAR_tlv redirectBackwardInformation optional /* Redirect backward information, O, len=3-? */ +} + + +type record RLC_MSG /* Release complete message (RLC) */ +{ + Bit8 msgType('00010000'B), /* Message Type '00010000'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + RLC_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Release complete message (RLC) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +//with { encode "present=bytes(1,0x010)"; } + +type set RLC_OPTIONAL_PARAMS /* SET: optional parameters of Release complete message (RLC) */ +{ + CAUI_PAR_tlv causeIndicators optional /* Cause indicators, O, len=5-6 */ +} + + +type record SAM_MSG /* Subsequent address message (SAM) */ +{ + Bit8 msgType ('00000010'B), /* Message Type '00000010'B */ + Bit8 pSNN, /* Pointer to parameter 'Subsequent number'. */ + Bit8 pOptional, /* Pointer to optional parameters. */ + SNN_PAR_lv subsequentNumber, /* Subsequent number, V, len=3-? */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +}with { encode "present=bytes(1,0x02)"; } + + +type record UUI_MSG /* User-to-user information message (UUI) */ +{ + Bit8 msgType ('00101101'B), /* Message Type '00101101'B */ + Bit8 pUUIF, /* Pointer to parameter 'User-to-user information'. */ + Bit8 pOptional, /* Pointer to optional parameters. */ + UUIF_PAR_lv userToUserInformation, /* User-to-user information, V, len=2-130 */ + UUI_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of User-to-user information message (UUI) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x2D)"; } + +type set UUI_OPTIONAL_PARAMS /* SET: optional parameters of User-to-user information message (UUI) */ +{ + ATP_PAR_tlv accessTransport optional /* Access transport, O, len=3-? */ +} + + +type record FTR_MSG /* Forward transfer message (FTR) */ +{ + Bit8 msgType('00001000'B), /* Message Type '00001000'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + FTR_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Forward transfer message (FTR) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x08)"; } + +type set FTR_OPTIONAL_PARAMS /* SET: optional parameters of Forward transfer message (FTR) */ +{ + CRF_PAR_tlv callReference optional /* Call reference, O, len=7 */ +} + + +type record SUS_MSG /* Suspend message (SUS) */ +{ + Bit8 msgType ('00001101'B), /* Message Type '00001101'B */ + SRI_PAR_v suspendResumeIndicators, /* Suspend Resume indicators, F, len=1 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + SUS_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Suspend message (SUS) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x0D)"; } + +type set SUS_OPTIONAL_PARAMS /* SET: optional parameters of Suspend message (SUS) */ +{ + CRF_PAR_tlv callReference optional /* Call reference, O, len=7 */ +} + + +type record RES_MSG /* Resume message (RES) */ +{ + Bit8 msgType ('00001110'B), /* Message Type '00001110'B */ + SRI_PAR_v suspendResumeIndicators, /* Suspend Resume indicators, F, len=1 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + RES_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Resume message (RES) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x0E)"; } + +type set RES_OPTIONAL_PARAMS /* SET: optional parameters of Resume message (RES) */ +{ + CRF_PAR_tlv callReference optional /* Call reference, O, len=7 */ +} + + +type record BLO_MSG /* Blocking message (BLO) */ +{ + Bit8 msgType ('00010011'B) /* Message Type '00010011'B */ +} +//with { encode "present=bytes(1,0x13)"; } + +type record BLA_MSG /* Blocking acknowledgement message (BLA) */ +{ + Bit8 msgType ('00010101'B) /* Message Type '00010101'B */ +} +//with { encode "present=bytes(1,0x15)"; } + +type record CCR_MSG /* Continuity check request message (CCR) */ +{ + Bit8 msgType ('00010001'B) /* Message Type '00010001'B */ +} +//with { encode "present=bytes(1,0x11)"; } + + +type record LBA_MSG /* Loop back acknowledgement message (LBA) */ +{ + Bit8 msgType ('00100100'B) /* Message Type '00100100'B */ +} +//with { encode "present=bytes(1,0x24)"; } + +type record OVL_MSG /* Overload message (OVL) */ +{ + Bit8 msgType ('00110000'B) /* Message Type '00110000'B */ +} +//with { encode "present=bytes(1,0x30)"; } + +type record RSC_MSG /* Reset circuit message (RSC) */ +{ + Bit8 msgType ('00010010'B) /* Message Type '00010010'B */ +} +//with { encode "present=bytes(1,0x12)"; } + +type record UBL_MSG /* Unblocking message (UBL) */ +{ + Bit8 msgType ('00010100'B) /* Message Type '00010100'B */ +} +//with { encode "present=bytes(1,0x14)"; } + +type record UBA_MSG /* Unblocking acknowledgement message (UBA) */ +{ + Bit8 msgType ('00010110'B) /* Message Type '00010110'B */ +} +//with { encode "present=bytes(1,0x16)"; } + +type record UQC_MSG /* Unequipped CIC message (UQC) */ +{ + Bit8 msgType ('00101110'B) /* Message Type '00101110'B */ +} +//with { encode "present=bytes(1,0x2E)"; } + +type record CGB_MSG /* Circuit group blocking message (CGB) */ +{ + Bit8 msgType ('00011000'B), /* Message Type '00011000'B */ + CGSM_PAR_v circuitGroupSupervisionMessageType, /* Circuit group supervision message type, F, len=1 */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=3-34 */ +} +with { encode "present=bytes(1,0x18)"; } + +type record CGBA_MSG /* Circuit group blocking acknowledgement message (CGBA) */ +{ + Bit8 msgType ('00011010'B), /* Message Type '00011010'B */ + CGSM_PAR_v circuitGroupSupervisionMessageType, /* Circuit group supervision message type, F, len=1 */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=3-34 */ +} +with { encode "present=bytes(1,0x1A)"; } + +type record CGU_MSG /* Circuit group unblocking message (CGU) */ +{ + Bit8 msgType ('00011001'B), /* Message Type '00011001'B */ + CGSM_PAR_v circuitGroupSupervisionMessageType, /* Circuit group supervision message type, F, len=1 */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=3-34 */ +} +with { encode "present=bytes(1,0x19)"; } + +type record CGUA_MSG /* Circuit group unblocking acknowledgement message (CGUA) */ +{ + Bit8 msgType ('00011011'B), /* Message Type '00011011'B */ + CGSM_PAR_v circuitGroupSupervisionMessageType, /* Circuit group supervision message type, F, len=1 */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=3-34 */ +} +with { encode "present=bytes(1,0x1B)"; } + +type record GRS_MSG /* Circuit group reset message (GRS) */ +{ + Bit8 msgType ('00010111'B), /* Message Type '00010111'B */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=2 */ +} +with { encode "present=bytes(1,0x17)"; } + +type record CGQ_MSG /* Circuit group query message (CGQ) */ +{ + Bit8 msgType ('00101010'B), /* Message Type '00101010'B */ + Bit8 pRAS, /* Pointer to parameter 'Range and status'. */ + RAS_PAR_lv rangeAndStatus /* Range and status, V, len=2 */ +} +with { encode "present=bytes(1,0x2A)"; } + +type record FAA_MSG /* Facility accepted message (FAA) */ +{ + Bit8 msgType ('00100000'B), /* Message Type '00100000'B */ + FAI_PAR_v facilityIndicator, /* Facility indicator, F, len=1 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + FAA_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Facility accepted message (FAA) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x20)"; } + +type set FAA_OPTIONAL_PARAMS /* SET: optional parameters of Facility accepted message (FAA) */ +{ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + CRQ_PAR_tlv connectionRequest optional, /* Connection request, O, len=7-9 */ + PCI_PAR_tlv parameterCompatibilityInformation optional /* Parameter compatibility information, O, len=4-? */ +} + + +type record FAR_MSG /* Facility request message (FAR) */ +{ + Bit8 msgType ('00011111'B), /* Message Type '00011111'B */ + FAI_PAR_v facilityIndicator, /* Facility indicator, F, len=1 */ + Bit8 pOptional, /* Pointer to optional parameters. */ + FAR_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Facility request message (FAR) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x1F)"; } + +type set FAR_OPTIONAL_PARAMS /* SET: optional parameters of Facility request message (FAR) */ +{ + UUID_PAR_tlv userToUserIndicators optional, /* User-to-user indicators, O, len=3 */ + CRF_PAR_tlv callReference optional, /* Call reference, O, len=7 */ + CRQ_PAR_tlv connectionRequest optional, /* Connection request, O, len=7-9 */ + PCI_PAR_tlv parameterCompatibilityInformation optional /* Parameter compatibility information, O, len=4-? */ +} + + +type record UPT_MSG /* User Part test message (UPT) */ +{ + Bit8 msgType('00110100'B), /* Message Type '00110100'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + UPT_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of User Part test message (UPT) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x34)"; } + +type set UPT_OPTIONAL_PARAMS /* SET: optional parameters of User Part test message (UPT) */ +{ + PCI_PAR_tlv parameterCompatibilityInformation optional /* Parameter compatibility information, O, len=4-? */ +} + + +type record UPA_MSG /* User Part available message (UPA) */ +{ + Bit8 msgType('00110101'B), /* Message Type '00110101'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + UPA_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of User Part available message (UPA) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x35)"; } + +type set UPA_OPTIONAL_PARAMS /* SET: optional parameters of User Part available message (UPA) */ +{ + PCI_PAR_tlv parameterCompatibilityInformation optional /* Parameter compatibility information, O, len=4-? */ +} + + +type record FAC_MSG /* Facility message (FAC) */ +{ + Bit8 msgType('00110011'B), /* Message Type '00110011'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + FAC_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Facility message (FAC) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x33)"; } + +type set FAC_OPTIONAL_PARAMS /* SET: optional parameters of Facility message (FAC) */ +{ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + ROP_PAR_tlv remoteOperations optional, /* Remote operations, O, len=8-? */ + SAC_PAR_tlv serviceActivation optional, /* Service activation, O, len=3-? */ + CTN_PAR_tlv callTransferNumber optional, /* Call transfer number, O, len=4-? */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + RNN_PAR_tlv redirectionNumber optional, /* Redirection number, O, len=4-? */ + PRI_PAR_tlv pivotRoutingIndicators optional, /* Pivot routing indicators, O, len=3 */ + PST_PAR_tlv pivotStatus optional, /* Pivot status, O, len=3 */ + PICN_PAR_tlv pivotCounter optional, /* Pivot counter, O, len=3 */ + PRBI_PAR_tlv pivotRoutingBackwardInformation optional, /* Pivot routing backward information, O, len=3-? */ + RST_PAR_tlv redirectStatus optional /* Redirect status, O, len=3-? */ +} + + +type record NRM_MSG /* Network resource management message (NRM) */ +{ + Bit8 msgType('00110010'B), /* Message Type '00110010'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + NRM_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Network resource management message (NRM) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x32)"; } + +type set NRM_OPTIONAL_PARAMS /* SET: optional parameters of Network resource management message (NRM) */ +{ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + ECI_PAR_tlv echoControlInformation optional /* Echo control information, O, len=3 */ +} + + +type record IDR_MSG /* Identification request message (IDR) */ +{ + Bit8 msgType('00110110'B), /* Message Type '00110110'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + IDR_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Identification request message (IDR) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x36)"; } + +type set IDR_OPTIONAL_PARAMS /* SET: optional parameters of Identification request message (IDR) */ +{ + MCRI_PAR_tlv mCIDRequestIndicators optional, /* MCID request indicators, O, len=3 */ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional /* Parameter compatibility information, O, len=4-? */ +} + + +type record IRS_MSG /* Identification response message (IRS) */ +{ + Bit8 msgType('00110111'B), /* Message Type '00110111'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + IRS_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Identification response message (IRS) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x37)"; } + +type set IRS_OPTIONAL_PARAMS /* SET: optional parameters of Identification response message (IRS) */ +{ + MCRS_PAR_tlv mCIDResponseIndicators optional, /* MCID response indicators, O, len=3 */ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + CGN_PAR_tlv callingPartyNumber optional, /* Calling party number, O, len=4-? */ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + GNU_PAR_tlv genericNumber1 optional, /* Generic number1, O, len=5-? */ + GNU_PAR_tlv genericNumber2 optional /* Generic number2, O, len=5-? */ +} + + +type record SEG_MSG /* Segmentation message (SEG) */ +{ + Bit8 msgType('00111000'B), /* Message Type '00111000'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + SEG_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Segmentation message (SEG) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x38)"; } + +type set SEG_OPTIONAL_PARAMS /* SET: optional parameters of Segmentation message (SEG) */ +{ + ATP_PAR_tlv accessTransport optional, /* Access transport, O, len=3-? */ + UUIF_PAR_tlv userToUserInformation optional, /* User-to-user information, O, len=3-131 */ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + GDG_PAR_tlv genericDigits1 optional, /* Generic digits1, O, len=4-? */ + GDG_PAR_tlv genericDigits2 optional, /* Generic digits2, O, len=4-? */ + GNI_PAR_tlv genericNotificationIndicator1 optional, /* Generic notification indicator1, O, len=3 */ + GNI_PAR_tlv genericNotificationIndicator2 optional, /* Generic notification indicator2, O, len=3 */ + GNU_PAR_tlv genericNumber1 optional, /* Generic number1, O, len=5-? */ + GNU_PAR_tlv genericNumber2 optional /* Generic number2, O, len=5-? */ +} + + +type record LOP_MSG /* Loop prevention message (LOP) */ +{ + Bit8 msgType('01000000'B), /* Message Type '01000000'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + LOP_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Loop prevention message (LOP) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x40)"; } + +type set LOP_OPTIONAL_PARAMS /* SET: optional parameters of Loop prevention message (LOP) */ +{ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + CTR_PAR_tlv callTransferReference optional, /* Call transfer reference, O, len=3 */ + LPPI_PAR_tlv loopPreventionIndicators optional /* Loop prevention indicators, O, len=3 */ +} + + +type record APM_MSG /* Application transport message (APM) */ +{ + Bit8 msgType('01000001'B), /* Message Type '01000001'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + APM_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Application transport message (APM) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x41)"; } + +type set APM_OPTIONAL_PARAMS /* SET: optional parameters of Application transport message (APM) */ +{ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional /* Application transport parameter2, O, len=5-? */ +} + + +type record PRI_MSG /* Pre-release information message (PRI) */ +{ + Bit8 msgType('01000010'B), /* Message Type '01000010'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + PRI_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Pre-release information message (PRI) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x42)"; } + +type set PRI_OPTIONAL_PARAMS /* SET: optional parameters of Pre-release information message (PRI) */ +{ + MCI_PAR_tlv messageCompatibilityInformation optional, /* Message compatibility information, O, len=3-? */ + PCI_PAR_tlv parameterCompatibilityInformation optional, /* Parameter compatibility information, O, len=4-? */ + OFCI_PAR_tlv optionalForwardCallIndicators optional, /* Optional forward call indicators, O, len=3 */ + OBCI_PAR_tlv optionalBackwardCallIndicators optional, /* Optional backward call indicators, O, len=3 */ + APP_PAR_tlv applicationTransportParameter1 optional, /* Application transport parameter1, O, len=5-? */ + APP_PAR_tlv applicationTransportParameter2 optional /* Application transport parameter2, O, len=5-? */ +} + + +type record SDN_MSG /* Subsequent Directory Number message (SDN) */ +{ + Bit8 msgType('01000011'B), /* Message Type '01000011'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + SDN_OPTIONAL_PARAMS optionalParameters optional, /* SET: optional parameters of Subsequent Directory Number message (SDN) */ + EOP endOfOptionalParameters optional /* End of optional parameters, O, len=1 */ +} +with { encode "present=bytes(1,0x43)"; } + + +type set SDN_OPTIONAL_PARAMS /* SET: optional parameters of Subsequent Directory Number message (SDN) */ +{ + SNN_PAR_tlv subsequentNumber optional, /* Subsequent number, O, len=4-? */ + MCI_PAR_tlv messageCompatibilityInformation optional /* Message compatibility information, O, len=4-? */ +} + +type record UNKNOWN_MSG /* Message with unknown message type */ +{ + Bit8 msgType, /* Unknown Message Type, e.g. '01001010'B */ + Bit8 pOptional, /* Pointer to optional parameters. */ + MCI_PAR_tlv messageCompatibilityInformation, /* Message compatibility information, O, len=4-? */ + EOP endOfOptionalParameters /* End of optional parameters, O, len=1 */ +} + +type union ISUP_BICC_MSG +{ + ACM_MSG aCM_MSG, /* Address complete message (ACM) */ + ANM_MSG aNM_MSG, /* Answer message (ANM) */ + APM_MSG aPM_MSG, /* Application transport message (APM) */ + BLA_MSG bLA_MSG, /* Blocking acknowledgement message (BLA) */ + BLO_MSG bLO_MSG, /* Blocking message (BLO) */ + CCR_MSG cCR_MSG, /* Continuity check request message (CCR) */ + CFN_MSG cFN_MSG, /* Confusion message (CFN) */ + CGB_MSG cGB_MSG, /* Circuit group blocking message (CGB) */ + CGBA_MSG cGBA_MSG, /* Circuit group blocking acknowledgement message (CGBA) */ + CGQ_MSG cGQ_MSG, /* Circuit group query message (CGQ) */ + CGQR_MSG cGQR_MSG, /* Circuit group query response message (CGQR) */ + GRS_MSG gRS_MSG, /* Circuit group reset message (GRS) */ + GRA_MSG gRA_MSG, /* Circuit group reset acknowledgement message (GRA) */ + CGU_MSG cGU_MSG, /* Circuit group unblocking message (CGU) */ + CGUA_MSG cGUA_MSG, /* Circuit group unblocking acknowledgement message (CGUA) */ + CON_MSG cON_MSG, /* Connect message (CON) */ + CPG_MSG cPG_MSG, /* Call progress message (CPG) */ + COT_MSG cOT_MSG, /* Continuity message (COT) */ + FAA_MSG fAA_MSG, /* Facility accepted message (FAA) */ + FAC_MSG fAC_MSG, /* Facility message (FAC) */ + FRJ_MSG fRJ_MSG, /* Facility reject message (FRJ) */ + FAR_MSG fAR_MSG, /* Facility request message (FAR) */ + FTR_MSG fTR_MSG, /* Forward transfer message (FTR) */ + IAM_MSG iAM_MSG, /* Initial address message (IAM) */ + INF_MSG iNF_MSG, /* Information message (INF) */ + INR_MSG iNR_MSG, /* Information request message (INR) */ + IDR_MSG iDR_MSG, /* Identification request message (IDR) */ + IRS_MSG iRS_MSG, /* Identification response message (IRS) */ + LBA_MSG lBA_MSG, /* Loop back acknowledgement message (LBA) */ + LOP_MSG lOP_MSG, /* Loop prevention message (LOP) */ + NRM_MSG nRM_MSG, /* Network resource management message (NRM) */ + OVL_MSG oVL_MSG, /* Overload message (OVL) */ + PRI_MSG pRI_MSG, /* Pre-release information message (PRI) */ + REL_MSG rEL_MSG, /* Release message (REL) */ + RES_MSG rES_MSG, /* Resume message (RES) */ + RLC_MSG rLC_MSG, /* Release complete message (RLC) */ + RSC_MSG rSC_MSG, /* Reset circuit message (RSC) */ + SAM_MSG sAM_MSG, /* Subsequent address message (SAM) */ + SDN_MSG sDN_MSG, /* Subsequent Directory Number message (SDN) */ + SEG_MSG sEG_MSG, /* Segmentation message (SEG) */ + SUS_MSG sUS_MSG, /* Suspend message (SUS) */ + UBA_MSG uBA_MSG, /* Unblocking acknowledgement message (UBA) */ + UBL_MSG uBL_MSG, /* Unblocking message (UBL) */ + UPA_MSG uPA_MSG, /* User Part available message (UPA) */ + UPT_MSG uPT_MSG, /* User Part test message (UPT) */ + UQC_MSG uQC_MSG, /* Unequipped CIC message (UQC) */ + UUI_MSG uUI_MSG, /* User-to-user information message (UUI) */ + UNKNOWN_MSG uNKNOWN_MSG /* Message with undefined message type*/ +} + +type enumerated SelectIsupOrBicc {selectIsup, selectBicc}; + +type record ISUP_BICC_MSG_req /* ASP used to send an ISUP/BICC message */ +{ + ServiceIndicatorOctet serviceIndicatorOctet optional, /* contents only evaluated if ISUP selected */ + RoutingLabel routingLabel optional, /* contents only evaluated if ISUP selected */ + CircuitIdentityCode circuitIdentityCode optional, /* contents only evaluated if ISUP selected */ + CallInstanceCode callInstanceCode optional, /* contents only evaluated if BICC selected */ + ISUP_BICC_MSG iSUP_BICC_MSG optional /* common part of ISUP/BICC message */ +} with { encode "ISUPCodec" } + +/* Additional comments: +The SA takes from the ASP, depending on the value of module parameter 'PX_ISUP_Isup', either the +ordered combination of 'serviceIndicatorOctet', 'routingLabel' and 'circuitIdentityCode' (ISUP), +or 'callInstanceCode' (BICC'), puts it in front of encoded parameter 'iSUP_BICC_MSG', and sends the +so constructed message at the ISUP or BICC interface respectively.*/ + + +type record ISUP_BICC_MSG_ind /* ASP used to receive an ISUP/BICC message */ +{ + ServiceIndicatorOctet serviceIndicatorOctet optional, /* contents only evaluated if ISUP selected */ + RoutingLabel routingLabel optional, /* contents only evaluated if ISUP selected */ + CircuitIdentityCode circuitIdentityCode optional, /* contents only evaluated if ISUP selected */ + CallInstanceCode callInstanceCode optional, /* contents only evaluated if BICC selected */ + ISUP_BICC_MSG iSUP_BICC_MSG optional /* common part of ISUP/BICC message */ +} with { encode "ISUPCodec" } +/* Additional comments: +The SA takes from the received message, depending on the value of module parameter 'PX_ISUP_Isup', +either the ordered combination of 'serviceIndicatorOctet', 'routingLabel' and +'circuitIdentityCode' (ISUP), or 'callInstanceCode' (BICC'), and puts it into the associated ASP +parameters. The complementary ASP parameters 'callInstanceCode' (ISUP) and combination of +'serviceIndicatorOctet', 'routingLabel' and 'circuitIdentityCode' (BICC) are filled by the SA with '0' bits +according to the lengths of their types. +The TE does not evaluate the contents of the complementary parameters (but needs the coorect lengths +to identify the start of 'iSUP_BICC_MSG'. +The received message (body) is put by the SA into parameter 'iSUP_BICC_MSG' and is matched in the ATS with an according receive template.*/ + + +type record InitializeIsupBicc_req /* ASP used to Initialize the ISUP/BICC part of the test system. */ +{ + Bit14 ts_pointCode optional, /* Signalling point code of the TS (ISUP). */ + Bit14 sut_pointCode optional, /* Signalling point code of the SUT (ISUP). */ + octetstring ts_address_isup_bicc optional, /* Address (e.g. IP) of the TS (ISUP/BICC side). The use of this address is to enable the TS to communicate with the SUT at the ISUP/BICC side to establish and maintain the lower layer connections. */ + octetstring sut_address_isup_bicc optional /* Address (e.g. IP) of the SUT (ISUP/BICC side). The use of this address is to enable the TS to communicate with the SUT at the ISUP/BICC side to establish and maintain the lower layer connections. */ +} +/* Additional comments: +This ASP is used at the beginning of each test case to initiate the necessary initialization of the +ISUP/BICC part of the test system, particularly the interfaces to the SUT. +If module parameter 'PX_ISUP_Isup' indicates 'false', the values of parameters 'ts_pointCode' and 'sut_pointCode' shall +be ignored by the SA. +If module parameter 'PX_ISUP_Isup' indicates 'true', the values of parameters 'ts_address_isup_bicc' and +'sut_address_isup_bicc' may be ignored, if they are not necessary. +Among the initializing actions there shall be: +a) Verification that the ISUP/BICC link is operable between SUT and TS. +b) Verification that the TS is ready to send and receive SIP messages. +Note: It is a matter of TS implementation whether the TS, upon this request, sets up and initializes lower layer connections, if these are not setup. +Other initialization actions may be TS-specific. */ + + +type record InitializeIsupBicc_cnf /* Answer whether all necessary TS initializations have been successfully performed. The result can be positive or negative. The result will be positive only if the TS is able to send and recieve messages at the SIP- and the ISUP/BICC-interface of the SUT. */ +{ + boolean result /* Indicating success or non-success of the whole initialization. */ +} + +type record BearerSetup_req /* For BICC: request TS to setup the bearer connection between TS and SUT. */ +{ + CallInstanceCode cic /* Call Instance Code identifying the bearer connection. */ +} + +type record BearerSetup_acc /* For BICC: answer to BearerSetup_req. The answer can be positive (bearer connection setup successful) or negative (bearer connection setup failed). */ +{ + CallInstanceCode cic, /* Call Instance Code identifying the bearer connection. */ + boolean result /* The answer is positive when the bearer connection setup was successful and negative when the bearer connection setup failed. */ +} + +type record BearerRelease_req /* For BICC: request to release the established bearer connection. */ +{ + CallInstanceCode cic /* Call Instance Code identifying the bearer connection. */ +} + +type record BearerRelease_cnf /* For BICC: confirmation that the requested bearer is released. */ +{ + CallInstanceCode cic, /* Call Instance Code identifying the bearer connection. */ + boolean result /* Indication of whether the bearer is successfully released. */ +} + +type record BearerSetup_ind /* Indication of that the bearer has been setup. */ +{ + CallInstanceCode cic /* Call Instance Code identifying the bearer connection. */ +} + +type record BearerRelease_ind /* Indication of whether the bearer is successfully released. */ +{ + CallInstanceCode cic /* Call Instance Code identifying the bearer connection. */ +} + + + +} diff --git a/IsupAts/SipIsup_ISUP_ParamTemplates.ttcn b/IsupAts/SipIsup_ISUP_ParamTemplates.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..d59a858730c45f26cadabeb0c2acd4beffdd19aa --- /dev/null +++ b/IsupAts/SipIsup_ISUP_ParamTemplates.ttcn @@ -0,0 +1,3381 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides ISUP/BICC-parameter templates. +*/ +module SipIsup_ISUP_ParamTemplates +{ + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + import from SipIsup_ISUP_Constants all; + import from SipIsup_ISUP_ModuleParams all; + import from SipIsup_ISUP_MsgTypes all; + import from SipIsup_ISUP_ParamTypes all; + + +template BCI_PAR_v mw_BWCI_iwEnc := +/* RX template for type BCI_PAR_v (Backward call Indicators) with Interworking indicator = 'interworking encountered' and any-values otherwise*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator */ + calledPartysStatusIndicator := ?, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := ?, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator */ + interworkingIndicator := c_BCI_interwInd_Interw, /* bit I: Interworking indicator */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) */ + iSDNUserPartIndicator := ?, /* bit K: ISDN user part indicator */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := ?, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator */ +} + +template BCI_PAR_v mw_BWCI_cldPstatnoInd1 := +/* RX template for type BCI_PAR_v (Backward call Indicators) with Called party status indicator = 'no indication' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_noInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := ?, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := ?, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := ?, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := ?, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cldPstatnoInd2(template Bit1 p_interwInd,template Bit1 p_isdnUpInd,template Bit1 p_isdnAccInd) := +/* RX template for type BCI_PAR_v (Backward call Indicators) with Interworking indicator, ISDN user part indicator and ISDN access indicator parameterized and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_noInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := ?, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := p_interwInd, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := p_isdnAccInd, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cldPstatnoInd3 := +/* RX template for type BCI_PAR_v (Backward call Indicators) with Called party status indicator = 'no indication', Interworking indicator = 'interworking encountered', ISDN user part indicator = 'ISUP not used all the way' and ISDN access indicator = 'terminating access non-ISDN' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_noInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := ?, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := c_BCI_interwInd_Interw, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := c_BCI_isdnUpInd_NotUsed, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := c_BCI_isdnAccInd_notISDN, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cpCat_3alt(template Bit1 p_interwInd,template Bit1 p_isdnUpInd,template Bit1 p_isdnAccInd) := +/* RX template for type BCI_PAR_v (Backward call Indicators) with Interworking indicator, ISDN user part indicator and ISDN access indicator parameterized, Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_noInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := (c_BCI_cldPcatInd_noInd, c_BCI_cldPcatInd_ordSub, c_BCI_cldPcatInd_payPh), /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := p_interwInd, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := p_isdnAccInd, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cpCat_3alt2(Bit1 p_isdnUpInd) := +/* RX template for type BCI_PAR_v (Backward call Indicators) with ISDN user part indicator parameterized, Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_noInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := (c_BCI_cldPcatInd_noInd, c_BCI_cldPcatInd_ordSub, c_BCI_cldPcatInd_payPh), /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := c_BCI_interwInd_Interw, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := c_BCI_isdnAccInd_notISDN, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cldPstatSubsFree(template Bit1 p_interwInd,template Bit1 p_isdnUpInd,template Bit1 p_isdnAccInd) := +/* RX template for type BCI_PAR_v (Backward call Indicators) with Interworking indicator, ISDN user part indicator and ISDN access indicator parameterized, Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_subFree, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := (c_BCI_cldPcatInd_noInd, c_BCI_cldPcatInd_ordSub, c_BCI_cldPcatInd_payPh), /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := p_interwInd, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := p_isdnAccInd, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cldPstatSubsFree_tAccNonISDN(Bit1 p_isdnUpInd) := +/* RX template for type BCI_PAR_v (Backward call Indicators) with ISDN user part indicator parameterized, Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_subFree, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := (c_BCI_cldPcatInd_noInd, c_BCI_cldPcatInd_ordSub, c_BCI_cldPcatInd_payPh), /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := c_BCI_interwInd_Interw, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := c_BCI_isdnAccInd_notISDN, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v mw_BWCI_cldPstatNoInd_tAccNonISDN(Bit1 p_isdnUpInd) := +/* RX template for type BCI_PAR_v (Backward call Indicators) with ISDN user part indicator parameterized, Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN' and any-values otherwise.*/ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_noInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := (c_BCI_cldPcatInd_noInd, c_BCI_cldPcatInd_ordSub, c_BCI_cldPcatInd_payPh), /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := c_BCI_interwInd_Interw, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := c_BCI_isdnAccInd_notISDN, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template EIF_PAR_v mw_EventInfo(Bit7 p_eventInd) := +/* RX template for type EIF_PAR_v (Event information) with eventIndicator parameterized and wildcards otherwise */ +{ + eventIndicator := p_eventInd, /* bits G F E D C B A: Event indicator */ + eventPresRestrInd := ? /* bit H: Event presentation restricted indicator (national use) */ +} + +template EIF_PAR_v m_EventInfo(Bit7 p_eventInd) := +/* TX template for type EIF_PAR_v (Event information) with eventIndicator parameterized and default values otherwise */ +{ + eventIndicator := p_eventInd, /* bits G F E D C B A: Event indicator */ + eventPresRestrInd := '0'B /* bit H: Event presentation restricted indicator (national use) */ +} + +template GNI_PAR_tlv m_GenNotifInd(Bit7 p_gNotInd) := +/* TX template for type GNI_PAR_tlv (Generic notification indicator) with notificationIndicator parameterized. */ +{ + paramType := '00101100'B, /* Parameter Type '00101100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + notificationIndicator := p_gNotInd, /* Notification indicator */ + ext := '1'B /* Extension */ +} + +template BCI_PAR_v m_BCI_cpStatInd(Bit2 p_cldPstatInd) := +/* TX template for Backward call indicators parameter (BCI), with Called party status indicator parameterized and default values otherwise. */ +{ + chargeIndicator := PX_ISUP_TX_BCI_v_chargeInd, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := p_cldPstatInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := PX_ISUP_TX_BCI_v_cldPCatInd, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := PX_ISUP_TX_BCI_v_eTOeMethodInd, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := PX_ISUP_TX_BCI_v_interwInd, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := PX_ISUP_TX_BCI_v_eTOeInfoInd, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := PX_ISUP_TX_BCI_v_iSDNUserPartInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := PX_ISUP_TX_BCI_v_holdingInd, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := PX_ISUP_TX_BCI_v_iSDNAccessInd, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_BCI_v_echoContrDevInd, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := PX_ISUP_TX_BCI_v_sCCPMethodInd /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_v m_BCI_subsFree(Bit1 p_isdnUpInd, Bit1 p_isdnAccInd) := +/* TX template for Backward call indicators parameter (BCI), with ISDN user part indicator and ISDN access indicator parameterized, Called party status indicator = 'subscriber free' and default values otherwise.*/ +{ + chargeIndicator := PX_ISUP_TX_BCI_v_chargeInd, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := c_BCI_cldPstatInd_subFree, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := PX_ISUP_TX_BCI_v_cldPCatInd, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := PX_ISUP_TX_BCI_v_eTOeMethodInd, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := PX_ISUP_TX_BCI_v_interwInd, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := PX_ISUP_TX_BCI_v_eTOeInfoInd, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := p_isdnUpInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := PX_ISUP_TX_BCI_v_holdingInd, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := p_isdnAccInd, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_BCI_v_echoContrDevInd, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := PX_ISUP_TX_BCI_v_sCCPMethodInd /* bits PO: SCCP method indicator (Note 2) */ +} + +template OBCI_PAR_tlv m_OBCI_cDivMay := +/* TX template for Optional backward call indicators parameter (OBCI), with Call diversion may occur indicator = 'call diversion may occur' and default values otherwise.*/ +{ + paramType := '00101001'B, /* Parameter Type '00101001'B */ + paramLen := '00000001'B, /* Parameter Length field */ + inBandInformationIndicator := '0'B, /* bit A: In-band information indicator */ + callDivMayOccurIndicator := c_OBCI_cDivMayOcc_mayOcc, /* bit B: Call diversion may occur indicator */ + simpleSegmentationIndicator := '0'B, /* bit C: Simple segmentation indicator */ + mLPPUserIndicator := '0'B, /* bit D: MLPP user indicator */ + reserved := '0000'B /* bits H-E: reserved for national use */ +} + +template OBCI_PAR_tlv m_OBCI_iBandInd(Bit1 p_inBandInfoInd) := +/* TX template for Optional backward call indicators parameter (OBCI), with In-band information indicator parameterized and default values otherwise. */ +{ + paramType := '00101001'B, /* Parameter Type '00101001'B */ + paramLen := '00000001'B, /* Parameter Length field */ + inBandInformationIndicator := p_inBandInfoInd, /* bit A: In-band information indicator */ + callDivMayOccurIndicator := '0'B, /* bit B: Call diversion may occur indicator */ + simpleSegmentationIndicator := '0'B, /* bit C: Simple segmentation indicator */ + mLPPUserIndicator := '0'B, /* bit D: MLPP user indicator */ + reserved := '0000'B /* bits H-E: reserved for national use */ +} + +template CAUI_PAR_lv m_CAU_CCBS := +/* TX template for Cause indicators parameter (CAUI), with diagnostics = 'CCBS possible', a cause value compatible with this diagnostics, and default values otherwise */ +{ + paramLen := '00000011'B, /* Parameter Length field */ + location := '0000'B, /* location */ + spare := '0'B, /* spare */ + codingStandard := '00'B, /* codingStandard */ + ext1 := '1'B, /* Extension */ + causeValue := int2bit(PX_ISUP_REL_CAU_CCBSposs, 7), /* Cause value */ + ext2 := '1'B, /* Extension */ + diagnostics := c_CAU_cDiagn_CCBSposs /* Diagnostic(s) (if any) */ +} + +template CAUI_PAR_lv m_CAU_Causev(integer p_cauVal) := +/* Default TX template for Cause indicators parameter (CAUI); Mandatory Variable (V) format. */ +{ + paramLen := '00000010'B, /* Parameter Length field */ + location := '0000'B, /* location */ + spare := '0'B, /* spare */ + codingStandard := '00'B, /* codingStandard */ + ext1 := '1'B, /* Extension */ + causeValue := int2bit(p_cauVal, 7), /* Cause value */ + ext2 := '1'B, /* Extension */ + diagnostics := omit /* Diagnostic(s) (if any) */ +} + +template GNI_PAR_tlv mw_GenNotifInd(Bit7 p_gNotInd) := +/* RX template for type GNI_PAR_tlv (Generic notification indicator) with notificationIndicator parameterized. */ +{ + paramType := '00101100'B, /* Parameter Type '00101100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + notificationIndicator := p_gNotInd, /* Notification indicator */ + ext := '1'B /* Extension */ +} + +template RNN_PAR_tlv m_RDNN_Def := +/* TX template for type RNN_PAR_tlv (Redirection number parameter) with all default values */ +{ + paramType := '00001100'B, /* Parameter Type '00001100'B */ + paramLen := f_calc_paramLen(PX_ISUP_TX_RNN_addrSignals, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := PX_ISUP_TX_RNN_natOfAddressInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(PX_ISUP_TX_RNN_addrSignals, false), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := PX_ISUP_TX_RNN_numbPlanInd, /* Numbering plan indicator */ + iNN := PX_ISUP_TX_RNN_iNN, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(PX_ISUP_TX_RNN_addrSignals, false) /* address signals */ +} + +template CDI_PAR_tlv m_CallDivInfo_Def := +/*TX template for Call diversion information parameter (CDI); Optional(O) format, with all default values. */ +{ + paramType := '00110110'B, /* Parameter Type '00110110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + notificationSubscriptionOptions := '000'B, /* bits CBA: Notification subscription options */ + redirectingReason := '0011'B, /* bits GFED: Redirecting reason */ + spare := '0'B /* bit H: spare */ +} + +template RNS_PAR_tlv m_RedirNumRestr_Def := +/* TX template for Redirection number restriction parameter (RNS), Optional(O) format, with all default values. */ +{ + paramType := '01000000'B, /* Parameter Type '01000000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + presRestrIndicator := PX_ISUP_TX_RNS_presRestrInd, /* bits BA: Presentation restricted indicator */ + spare := '000000'B /* bits H-C: spare */ +} + +template CCPI_PAR_tlv m_CCNR_Poss_Def := +/* TX template for CCNR possible indicator parameter (CCPI); Optional(O) format, with all default values. */ +{ + paramType := '01111010'B, /* Parameter Type '01111010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + cCNRPossibleIndicator := '1'B, /* bit A: CCNR possible indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template HighLayerCompatibility mw_hlc(Bit7 p_hlcId) := +/* RX template for Q.931 High Layer Compatibility information element, with highLayerCharacteristicsIdentification parameterized and any-values otherwise.*/ +{ + iEType := '01111101'B, /* Information Element Type '01111101'B */ + iELen := ?, /* Information Element Length field */ + presentation := ?, /* High layer protocol profile */ + interpretation := ?, /* First (primary or only) high layer characteristics */ + codingStandard := ?, /* ITU-T standardized coding */ + ext1 :='1'B, /* Extension */ + highLayerCharacteristicsIdentification := p_hlcId, /* Facsimile Group 2/3 */ + ext2 := '1'B, /* Extension */ + extendedHighLayerCharacteristicsIdentification := *, /* Extended high layer characteristics identification */ + ext3 := *, /* Extension */ + extendedVideotelephonyCharacteristicsIdentification := *, /* Extended videotelephony characteristics identification */ + ext4 := * /* Extension */ +} + +template ATP_PAR_tlv mw_AT_HL_CharIdent(Bit7 p_hlcId) := +/* Generic RX template for Access Transport parameter (ATP); Optional(O) format, with Q.931 information element hlc, highLayerCharacteristicsIdentification parameterized and any-values otherwise. */ +{ + paramType := '00000011'B, /* Parameter Type '00000011'B */ + paramLen := ?, /* Parameter Length field */ + informationElements := { highLayerCompatibility := mw_hlc(p_hlcId) } /* Q.931 information element hlc */ +} + +template CDN_PAR_lv mw_CalledNum(template Bit7 p_natAddrInd, charstring p_digits, boolean p_sendCmpl) := +/* RX template for Called party number parameter (CDN); Mandatory Variable(MV) format, with Internal network number indicator = 'routing to internal network number not allowed', Numbering plan indicator = 'ISDN (Telephony) numbering plan', and Nature of Address, Address Digits and Sending Complete parameterized. */ +{ + paramLen := f_calc_paramLen(p_digits, p_sendCmpl, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, p_sendCmpl), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + iNN := c_CLD_intNtwNum_notAlwd, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(p_digits, p_sendCmpl) /* address signals */ +} + +template CGN_PAR_tlv mw_CallingNum_restr := +/* RX template for Calling party number parameter (CGN); Optional (O) format, with Address presentation restricted indicator = 'presentation restricted by the network' and any-values otherwise. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* OE */ + screeningIndicator :=?, /* Screening indicator */ + addrPresRestrInd :=c_CLI_aprInd_restrNtwk, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + nII := ?, /* Number Incomplete Indicator */ + addressSignals := * /* address signals */ +} + +template CGN_PAR_tlv mw_CallingNum_noDigits := +/* RX template for Calling party number parameter (CGN); Optional (O) format, with address digits = 'absent', Screening indicator = 'network provided', Number incomplete indicator = '0', Numbering plan indicator = '000', Address presentation restricted indicator = 'Address not available', Nature of address indicator = '0000000'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := '00000010'B, /* Parameter Length field */ + natureOfAddressIndicator := '0000000'B, /* Nature of address indicator */ + oddEven := ?, /* OE */ + screeningIndicator :=c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd :=c_CLI_aprInd_aNotAv, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := '000'B, /* Numbering plan indicator */ + nII := '0'B, /* Number incomplete indicator */ + addressSignals := omit /* address signals */ +} + +template CGN_PAR_tlv mw_CallingNum_allowed(Bit7 p_natAddrInd, charstring p_digits) := +/* RX template for Calling party number parameter (CGN); Optional (O) format, with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator :=c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd :=c_CLI_aprInd_alwd, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + nII := PX_ISUP_IAM_CLI_numIncmplInd_rxDef, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template CGN_PAR_tlv mw_CallingNum_restrP(Bit7 p_natAddrInd, charstring p_digits) := +/* RX template for Calling party number parameter (CGN); Optional (O) format, with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator :=c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd :=c_CLI_aprInd_restr, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + nII := PX_ISUP_IAM_CLI_numIncmplInd_rxDef, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template CGN_PAR_tlv mw_CallingNum_restr_anyNOA(charstring p_digits) := +/* RX template for Calling party number parameter (CGN); Optional (O) format, with Nature of address indicator = 'any', address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator :=c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd :=c_CLI_aprInd_restr, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + nII := PX_ISUP_IAM_CLI_numIncmplInd_rxDef, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template CGN_PAR_tlv mw_CallingNum_restrN(Bit7 p_natAddrInd, charstring p_digits) := +/* RX template for Calling party number parameter (CGN); Optional (O) format, with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted by the network'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator :=c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd :=c_CLI_aprInd_restrNtwk, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + nII := PX_ISUP_IAM_CLI_numIncmplInd_rxDef, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template GNU_PAR_tlv mw_GenNum_allowed_up(Bit7 p_natAddrInd, charstring p_digits) := +/* RX template for Generic number (GNU); Optional (O) format, with Nature of address indicator and address digits parameterized, Screening indicator = 'user provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'. */ +{ + paramType := '11000000'B, /* Parameter Type '11000000'B */ + paramLen := f_calc_paramLen(p_digits, false, 3), /* Parameter Length field */ + numberQualifierIndicator := ?, /* Number qualifier indicator */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator (NOTE 1) */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator := c_GEN_screenInd_userProv, /* Screening indicator (NOTE 4) */ + addrPresRestrInd := c_GEN_aprInd_alwd, /* Address presentation restricted indicator (NOTE 3) */ + numberingPlanIndicator := c_GEN_numPlanInd_isdn, /* Numbering plan indicator (NOTE 2) */ + nI := c_GEN_numIncmplInd_cmpl, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template GNU_PAR_tlv mw_GenNum_allowed_upNot(Bit7 p_natAddrInd, charstring p_digits) := +/* RX template for Generic number (GNU); Optional (O) format, with Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'. */ +{ + paramType := '11000000'B, /* Parameter Type '11000000'B */ + paramLen := f_calc_paramLen(p_digits, false, 3), /* Parameter Length field */ + numberQualifierIndicator := ?, /* Number qualifier indicator */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator (NOTE 1) */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator := c_GEN_screenInd_userNotVerif, /* Screening indicator (NOTE 4) */ + addrPresRestrInd := c_GEN_aprInd_alwd, /* Address presentation restricted indicator (NOTE 3) */ + numberingPlanIndicator := c_GEN_numPlanInd_isdn, /* Numbering plan indicator (NOTE 2) */ + nI := c_GEN_numIncmplInd_cmpl, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template GNU_PAR_tlv mw_GenNum_restr_upNot(Bit7 p_natAddrInd, charstring p_digits) := +/* RX template for Generic number (GNU); Optional (O) format, with Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted'. */ +{ + paramType := '11000000'B, /* Parameter Type '11000000'B */ + paramLen := f_calc_paramLen(p_digits, false, 3), /* Parameter Length field */ + numberQualifierIndicator := ?, /* Number qualifier indicator */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator (NOTE 1) */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator := c_GEN_screenInd_userNotVerif, /* Screening indicator (NOTE 4) */ + addrPresRestrInd := c_GEN_aprInd_restr, /* Address presentation restricted indicator (NOTE 3) */ + numberingPlanIndicator := c_GEN_numPlanInd_isdn, /* Numbering plan indicator (NOTE 2) */ + nI := c_GEN_numIncmplInd_cmpl, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template NCI_PAR_v mw_NatConn_check(Bit2 p_cotChkInd) := +/* RX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator parameterized and any-values otherwise. */ +{ + satelliteIndicator := ?, /* bits BA: Satellite indicator */ + continuityCheckIndicator := p_cotChkInd, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := ?, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template NCI_PAR_v mw_NatConn_noSat(template Bit2 p_cotChkInd) := +/* RX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator parameterized and Satellite indicator = 'NO satellite circuit in the connection', Echo control device indicator = 'Outgoing echo control device included'. */ +{ + satelliteIndicator := c_NCI_satInd_none, /* bits BA: Satellite indicator */ + continuityCheckIndicator := p_cotChkInd, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := c_NCI_eCtrlDevInd_included, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template NCI_PAR_v mw_NatConn_1Sat(template Bit1 p_eCtrlDevInd, template Bit2 p_cotChkInd) := +/* RX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator and Echo control device indicator parameterized, and Satellite indicator = 'One satellite circuit in the connection'. */ +{ + satelliteIndicator := c_NCI_satInd_one, /* bits BA: Satellite indicator */ + continuityCheckIndicator := p_cotChkInd, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := p_eCtrlDevInd, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template FCI_PAR_v mw_FwCalInd_Def := +/* RX template for Forward call Indicators (FCI); Fixed (F) format, with all default values. */ +{ + natInternatCallIndicator := ?, /* bit A: National/international call indicator (Note 1) */ + endToEndMethodIndicator := ?, /* bits CB: End-to-end method indicator (Note 2) */ + interworkingIndicator := ?, /* bit D: Interworking indicator (Note 2) */ + endToEndInfoIndicator := ?, /* bit E: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := ?, /* bit F: ISDN user part indicator (Note 2) */ + iSDNUserPartPrefIndicator := ?, /* bits HG: ISDN user part preference indicator */ + iSDNAccessIndicator := ?, /* bit I: ISDN access indicator */ + sCCPMethodIndicator := ?, /* bits KJ: SCCP method indicator (Note 2) */ + spare := '0'B, /* bit L: spare */ + reserved := ? /* bits P-M: reserved for national use */ +} + +template FCI_PAR_v mw_FwCalInd_P(template Bit2 p_eToEndMavail, template Bit1 p_eToEndInfoInd,template Bit2 p_sccpMind,template Bit1 p_natInatInd) := +/* RX template for Forward call Indicators (FCI); Fixed (F) format, with National/international call indicator, End-to-end method available, End-to-end information indicator and SCCP method indicator parameterized, and Interworking indicator = 'interworking encounterd', ISDN user part indicator = 'ISDN user part/BICC not used all the way', ISDN access indicator = 'originating access non-ISDN', ISDN user part preference indicator = 'ISDN user part/BICC not required all the way'. */ +{ + natInternatCallIndicator := p_natInatInd, /* bit A: National/international call indicator (Note 1) */ + endToEndMethodIndicator := p_eToEndMavail, /* bits CB: End-to-end method indicator (Note 2) */ + interworkingIndicator := c_FCI_interwInd_Interw, /* bit D: Interworking indicator (Note 2) */ + endToEndInfoIndicator := p_eToEndInfoInd, /* bit E: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := c_FCI_isdnUpInd_NotUsed, /* bit F: ISDN user part indicator (Note 2) */ + iSDNUserPartPrefIndicator := c_FCI_isdnUpPrefInd_notReq, /* bits HG: ISDN user part preference indicator */ + iSDNAccessIndicator := c_FCI_isdnAccInd_notISDN, /* bit I: ISDN access indicator */ + sCCPMethodIndicator := p_sccpMind, /* bits KJ: SCCP method indicator (Note 2) */ + spare := '0'B, /* bit L: spare */ + reserved := ? /* bits P-M: reserved for national use */ +} + +template FCI_PAR_v mw_FwCalInd_P2(template Bit2 p_eToEndMavail,template Bit1 p_eToEndInfoInd,template Bit2 p_sccpMind,template Bit1 p_natInatInd) := +/* RX template for Forward call Indicators (FCI); Fixed (F) format, with National/international call indicator, End-to-end method available, End-to-end information indicator and SCCP method indicator parameterized, and Interworking indicator = 'interworking encounterd', ISDN user part indicator = 'ISDN user part/BICC not used all the way', ISDN access indicator = 'originating access non-ISDN', ISDN user part preference indicator = 'ISDN user part/BICC not required all the way'. */ +{ + natInternatCallIndicator := p_natInatInd, /* bit A: National/international call indicator (Note 1) */ + endToEndMethodIndicator := p_eToEndMavail, /* bits CB: End-to-end method indicator (Note 2) */ + interworkingIndicator := c_FCI_interwInd_noInterw, /* bit D: Interworking indicator (Note 2) */ + endToEndInfoIndicator := p_eToEndInfoInd, /* bit E: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := c_FCI_isdnUpInd_used, /* bit F: ISDN user part indicator (Note 2) */ + iSDNUserPartPrefIndicator := c_FCI_isdnUpPrefInd_notReq, /* bits HG: ISDN user part preference indicator */ + iSDNAccessIndicator := c_FCI_isdnAccInd_ISDN, /* bit I: ISDN access indicator */ + sCCPMethodIndicator := p_sccpMind, /* bits KJ: SCCP method indicator (Note 2) */ + spare := '0'B, /* bit L: spare */ + reserved := ? /* bits P-M: reserved for national use */ +} + +template HPC_PAR_tlv m_HopC_Def := +/* TX template for Hop counter (HPC); Optional (O) format, with hop counter value = default. */ +{ + paramType := '00111101'B, /* Parameter Type '00111101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + hopCounter := PX_ISUP_TX_HPC_hopCounter, /* bits EDCBA: Hop counter */ + spare := '000'B /* bits HGF: spare */ +} + +template NCI_PAR_v m_NatConn_notReq := +/* TX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator = 'continuity check not required' and all other values = default. */ +{ + satelliteIndicator := PX_ISUP_TX_NCI_satelliteInd, /* bits BA: Satellite indicator */ + continuityCheckIndicator := c_NCI_cotChkInd_notReq, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_NCI_echoContrDevInd, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template NCI_PAR_v m_NatConn_Req := +/* TX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator = 'continuity check required on this circuit' and all other values = default. */ +{ + satelliteIndicator := PX_ISUP_TX_NCI_satelliteInd, /* bits BA: Satellite indicator */ + continuityCheckIndicator := c_NCI_cotChkInd_requi, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_NCI_echoContrDevInd, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template NCI_PAR_v m_NatConn_Perf := +/* TX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator = 'continuity check performed on previous circuit' and all other values = default. */ +{ + satelliteIndicator := PX_ISUP_TX_NCI_satelliteInd, /* bits BA: Satellite indicator */ + continuityCheckIndicator := c_NCI_cotChkInd_performed, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_NCI_echoContrDevInd, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template NCI_PAR_v m_NatConn_Exp := +/* TX template for Nature of connection indicators (NCI); Fixed (F) format, with Continuity check indicator = 'COT to be expected' and all other values = default. */ +{ + satelliteIndicator := PX_ISUP_TX_NCI_satelliteInd, /* bits BA: Satellite indicator */ + continuityCheckIndicator := c_NCI_cotChkInd_expected, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_NCI_echoContrDevInd, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template COI_PAR_v m_Cont_Succ := +/* TX template for Continuity indicators (COI); Fixed (F) format, with Continuity indicator = 'continuity check successful' (resp. 'continuity'). */ +{ + continuityIndicator := c_CTI_contInd_succ, /* bit A: Continuity indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template COI_PAR_v m_Cont_Fail := +/* TX template for Continuity indicators (COI); Fixed (F) format, with Continuity indicator = 'continuity check failed' (resp. 'continuity'). */ +{ + continuityIndicator := c_CTI_contInd_failed, /* bit A: Continuity indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template UAI_PAR_tlv m_AI_connected := +/* TX template for Action indicator (UAI); Optional (O) format, with throughConnInstructionIndicator = 'connected'. */ +{ + paramType := '01110100'B, /* Parameter Type '01110100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + throughConnInstructionIndicator := c_AI_actInd_conn, /* bit A: Through-connection instruction indicator */ + t9TimerInstructionIndicator := '0'B, /* bit B: T9 timer instruction indicator */ + spare := '00000'B, /* bits G-C: spare */ + ext := '1'B /* bit H: Extension indicator */ +} + +//template CNT_PAR_tlv m_ConnType_NotReq := +/* TX template for Connect Type (CNT); Optional (O) format, with connect type = 'notification required'. */ +//{ +//} + +template OFCI_PAR_tlv m_OFCI_CLIR := +/* TX template for Optional forward call indicators (OFCI); Optional (O) format, with Connected line identity request indicator = 'requested' and default values otherwise. */ +{ + paramType := '00001000'B, /* Parameter Type '00001000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + cUGCallIndicator := '00'B, /* bits BA: Closed user group call indicator */ + simpleSegIndicator := '0'B, /* bit C: Simple segmentation indicator */ + spare := '0000'B, /* bits G-D: spare */ + cLIRequestIndicator := c_OFCI_conLineIdRqInd_req /* bit H: Connected line identity request indicator */ +} + +template OFCI_PAR_tlv m_OFCI_CUG(Bit2 p_cugCallInd) := +/* TX template for Optional forward call indicators (OFCI); Optional (O) format, with Closed user group call indicator parameterized and default values otherwise. */ +{ + paramType := '00001000'B, /* Parameter Type '00001000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + cUGCallIndicator := p_cugCallInd, /* bits BA: Closed user group call indicator */ + simpleSegIndicator := '0'B, /* bit C: Simple segmentation indicator */ + spare := '0000'B, /* bits G-D: spare */ + cLIRequestIndicator := '0'B /* bit H: Connected line identity request indicator */ +} + +template RDN_PAR_tlv m_RDGN_Def := +/* TX template for Redirecting number parameter (RDN); Optional (O) format, with all default values. */ +{ + paramType := '00001011'B, /* Parameter Type '00001011'B */ + paramLen := f_calc_paramLen(PX_ISUP_TX_RDN_addrSignals, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := PX_ISUP_TX_RDN_natOfAddressInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(PX_ISUP_TX_RDN_addrSignals, false), /* O/E */ + spare1 := '00'B, /* spare */ + addrPresRestrInd := PX_ISUP_TX_RDN_addrPresRestrInd, /* Address presentation restricted indicator */ + numberingPlanIndicator := PX_ISUP_TX_RDN_numbPlanInd, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := f_char_to_BCD(PX_ISUP_TX_RDN_addrSignals, false) /* address signals */ +} + +template OCN_PAR_tlv m_OCN_Def := +/* TX template for Original called number parameter (OCN); Optional (O) format, with all default values. */ +{ + paramType := '00101000'B, /* Parameter Type '00101000'B */ + paramLen := f_calc_paramLen(PX_ISUP_TX_OCN_addrSignals, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := PX_ISUP_TX_OCN_natOfAddressInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(PX_ISUP_TX_OCN_addrSignals, false), /* O/E */ + spare1 := '00'B, /* spare */ + addrPresRestrInd := PX_ISUP_TX_OCN_addrPresRestrInd, /* Address presentation restricted indicator */ + numberingPlanIndicator := PX_ISUP_TX_OCN_numbPlanInd, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := f_char_to_BCD(PX_ISUP_TX_OCN_addrSignals, false) /* address signals */ +} + +template RDI_PAR_tlv m_RDNI_Def := +/* TX template for Redirection information parameter (RDI); Optional (O) format, with all default values. */ +{ + paramType := '00010011'B, /* Parameter Type '00010011'B */ + paramLen := '00000010'B, /* Parameter Length field */ + redirectingIndicator := '011'B, /* bits CBA: Redirecting indicator */ + spare := '0'B, /* Bit D: spare */ + originalRedirectionReason := '0011'B, /* bits H G F E: Original redirection reason */ + redirectionCounter := '001'B, /* bits K J I: Redirection counter */ + reserved := '0'B, /* bit L: reserved for national use */ + redirectingReason := '0011'B /* bits PONM: Redirecting reason */ +} + +template UUIF_PAR_tlv m_UUIF_ServDat(octetstring p_serviceData) := +/* TX template for User-to-user information parameter (UUIF); Optional (O) format, with user-to-user information value parameterized. */ +{ + paramType := '00100000'B, /* Parameter Type '00100000'B */ + paramLen := int2bit(lengthof(p_serviceData),8), /* Parameter Length field */ + userToUserInformation := p_serviceData /* User-to-user information */ +} + +template MCRI_PAR_tlv m_MCID_RQI_req := +/* TX template for MCID request indicators parameter (MCRI); Optional (O) format, with MCID request indicator value = 'MCID requested'. */ +{ + paramType := '00111011'B, /* Parameter Type '00111011'B */ + paramLen := '00000001'B, /* Parameter Length field */ + mCIDRequestIndicator := c_MRQI_mcidRqInd_req, /* bit A: MCID request indicator */ + holdingIndicator := '0'B, /* bit B: Holding indicator (national use) */ + spare := '000000'B /* bits H-C: spare */ +} + +template MCRS_PAR_tlv m_MCID_RPI_notIncl := +/* TX template for MCID response indicators parameter (MCRS); Optional (O) format, with MCID response indicator value = 'MCID not included'. */ +{ + paramType := '00111100'B, /* Parameter Type '00111100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + mCIDResponseIndicator := c_MRSI_mcidRsInd_notIncl, /* bit A: MCID response indicator */ + holdProvidedIndicator := ?, /* bit B: Hold provided indicator (national use) */ + spare := '000000'B /* bits H-C: spare */ +} + +template LPPI_PAR_tlv mw_LoopPrev_rsp_insuff := +/* RX template for Loop prevention indicators parameter (LPPI); Optional (O) format, with response indicator value = 'insufficient information'. */ +{ + paramType := '01000100'B, /* Parameter Type '01000100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := '1'B, /* bit A: Type */ + responseIndicator := c_LPI_lopResponse_insuff, /* bits C B: Response indicator (only if bit A equals to 1 (response), otherwise: spare) */ + spare := '00000'B /* bits H-D: spare */ +} + +template LPPI_PAR_tlv mw_LoopPrev_req_Def := +/* TX template for Loop prevention indicators parameter (LPPI); Optional (O) format, containing 'request'. */ +{ + paramType := '01000100'B, /* Parameter Type '01000100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := '0'B, /* bit A: Type */ + responseIndicator := '00'B, /* bits C B: Response indicator (only if bit A equals to 1 (response), otherwise: spare) */ + spare := '00000'B /* bits H-D: spare */ +} + +template SRI_PAR_v m_SuspRes(Bit1 p_suspResInd) := +/* TX template for Suspend Resume indicators parameter (SRI); Fixed(F) format, with Suspend resume indicator parameterized. */ +{ + suspendResumeIndicator := p_suspResInd, /* bit A: Suspend/resume indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template SNN_PAR_lv mw_SubsNum(charstring p_digits, boolean p_sendCmpl) := +/* RX template for Subsequent number parameter (SNN); Mandatory Variable (V) format, with addressSignals (incl. sending complete) parameterized. */ +{ + paramLen := f_calc_paramLen(p_digits, p_sendCmpl, 1), /* Parameter Length field */ + spare := '0000000'B, /* spare */ + oddEven := f_calc_oddeven(p_digits, p_sendCmpl), /* O/E */ + addressSignals := f_char_to_BCD(p_digits, p_sendCmpl) /* address signals */ +} + +template InstructionIndicator m_InstructionIndicator_RelCall := +/* Default TX template for type InstructionIndicator with Message compatibility information parameters indicating 'release call' */ +{ + transitAtIntermExchIndicator := '1'B, /* bit A: Transit at intermediate exchange indicator */ + releaseCallIndicator := '1'B, /* bit B: Release call indicator */ + sendNotificationIndicator := '0'B, /* bit C: Send notification indicator */ + discardMessageIndicator := '1'B, /* bit D: Discard message indicator */ + passOnNotPossibleIndicator := '0'B, /* bit E: Pass on not possible indicator */ + broadNarrowBandInterwIndicator := '10'B, /* bits G F: Broadband/narrowband interworking indicator */ + ext := '1'B /* extension bit */ +} + +template MCI_PAR_tlv m_MsgCompat_RelCall := +/* TX template for Message compatibility information parameter (MCI); Optional(O) format, with Instruction Indicators indicating 'release call'. */ +{ + paramType := '00111000'B, /* Parameter Type '00111000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + instructionIndicators := {m_InstructionIndicator_RelCall} +} + +template USI_PAR_tlv m_USI_Std(template USIContents p_uSIContents) := +/* Default TX template with parametrization for User service information parameter (USI); Optional(O) format. */ +{ + paramType := '00011101'B, /* Parameter Type '00011101'B */ + paramLen := '00000101'B, /* Parameter Length field */ + uSIContents := p_uSIContents +} + +template USIContents m_USIContents_Std(Bit5 p_InfoTrfCap, Bit5 p_UserInfoL1) := +/* Default TX template for type USIContents with Information transfer capability and User information Layer 1 protocol parameterized, and with default values otherwise (extension octets are omitted).*/ +{ + bCAP_octet3 := m_BCAP_octet3_Std(p_InfoTrfCap), + bCAP_octet4 := m_BCAP_octet4_Std, + bCAP_octet5 := m_BCAP_octet5_Std(p_UserInfoL1), + bCAP_octet6 := m_BCAP_octet6_Std, + bCAP_octet7 := m_BCAP_octet7_Std +} + +template USIContents m_USIContents_InfoTrfCap(Bit5 p_InfoTrfCap) := +/* TX template for type USIContents with Information transfer capability parameterized, and with default values otherwise (octets 5, 6 and 7 and extension octets are omitted).*/ +{ + bCAP_octet3 := m_BCAP_octet3_Std(p_InfoTrfCap), + bCAP_octet4 := m_BCAP_octet4_Std, + bCAP_octet5 := omit, + bCAP_octet6 := omit, + bCAP_octet7 := omit +} + +template BCAP_octet3 m_BCAP_octet3_Std(Bit5 p_InfoTrfCap) := +/* Default TX template for type BCAP_octet3 with Information transfer capability parameterized and default values otherwise.*/ +{ + informationTransferCapability := p_InfoTrfCap, /* Information transfer capability */ + codingStandard := '00'B, /* Coding standard = CCITT standardized coding */ + ext := '1'B /* Extension */ +} + +template BCAP_octet4 m_BCAP_octet4_Std := +/* Default TX template for type BCAP_octet4 with default values.*/ +{ + informationTransferRate := '10000'B, /* Information transfer rate = 64 kbit/s */ + transferMode := '00'B, /* Transfer mode = circuit mode*/ + ext := '1'B, /* Extension */ + rateMultiplier := omit /* Rate multiplier */ +} + +template BCAP_octet5 m_BCAP_octet5_Std(Bit5 p_UserInfoL1) := +/* Default TX template for type BCAP_octet5 with User information Layer 1 protocol parameterized and default values otherwise.*/ +{ + userInformationLayer1Protocol := p_UserInfoL1, /* User information Layer 1 protocol */ + layerIdentification := '01'B, /* Layer identification = Recommendation G.711 A-law */ + ext := '1'B, /* Extension */ + bCAP_octet5a := omit, + bCAP_octet5b1 := omit, + bCAP_octet5b2 := omit, + bCAP_octet5c := omit, + bCAP_octet5d := omit +} + +template BCAP_octet6 m_BCAP_octet6_Std := +/* Default TX template for type BCAP_octet6 with Module parameters for non-ext/spare-fields */ +{ + userInformationLayer2Protocol := '00010'B, /* User information Layer 2 protocol = Recommendation Q.921 */ + layerIdentification := '10'B, /* Layer identification = Layer 2 */ + ext := '1'B /* Extension */ +} + +template BCAP_octet7 m_BCAP_octet7_Std := +/* Default TX template for type BCAP_octet7 with Module parameters for non-ext/spare-fields */ +{ + userInformationLayer3Protocol := '00010'B, /* User information Layer 3 protocol = Recommendation Q.931 */ + layerIdentification := '11'B, /* Layer identification = Layer 3*/ + ext := '1'B /* Extension */ +} + +template CGSM_PAR_v m_cGroupSupMT_Def := +/* TX template for Circuit Group Supervision Message Type parameter (CGSM); Optional(O) format, with Circuit Group Supervision Message Type Indicator value = 'hardware failure oriented'. */ +{ + cgSupervMTypeIndicator := c_CGBMT_cgSupMtypeInd_hwOrtd, /* bits BA: Circuit group supervision message type indicator */ + spare := '000000'B /* bits H-C: spare */ +} + +template COI_PAR_v mw_ContInd_cont := +/* TX template for Continuity indicators (COI); Fixed (F) format, with Continuity indicator value = 'continuity (check successful)'. */ +{ + continuityIndicator := c_CTI_contInd_succ, /* bit A: Continuity indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template UNKNOWN_PAR_tlv m_UnknownPar := +/* TX template for unknown parameter (UNKNOWN); Optional (O) format, with Unknown parameter type given by Module Parameter, and arbitrary parameter contents. */ +{ + paramType := PX_ISUP_TX_unknown_parameter_type, /* Unknown Parameter Type e.g. '10001111'B */ + paramLen := '00000010'B, /* Parameter Length field */ + contents := '3A95'O /* Parameter contents */ +} + +template UUID_PAR_tlv m_UUI_req_S1(Bit2 p_serv1) := +/* TX template for User-to-user indicators parameter (UUID); Optional (O) format, with Service 1 requested. */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := '0'B, /* bit A: req/resp type */ + service1 := p_serv1, /* bits C B: Service 1 */ + service2 := '00'B, /* bits E D: Service 2 no information */ + service3 := '00'B, /* bits G F: Service 3 no information */ + networkDiscardIndicator := '0'B /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template UUID_PAR_tlv m_UUI_req_S2(Bit2 p_serv2) := +/* TX template for User-to-user indicators parameter (UUID); Optional (O) format, with Service 2 requested. */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := '0'B, /* bit A: req/resp type */ + service1 := '00'B, /* bits C B: Service 1 no information */ + service2 := p_serv2, /* bits E D: Service 2*/ + service3 := '00'B, /* bits G F: Service 3 no information */ + networkDiscardIndicator := '0'B /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template UUID_PAR_tlv m_UUI_req_S3(Bit2 p_serv3) := +/* TX template for User-to-user indicators parameter (UUID); Optional (O) format, with Service 2 requested. */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := '0'B, /* bit A: req/resp type */ + service1 := '00'B, /* bits C B: Service 1 no information */ + service2 := '00'B, /* bits E D: Service 2 no information*/ + service3 := p_serv3, /* bits G F: Service 3 */ + networkDiscardIndicator := '0'B /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template CAUI_PAR_lv mw_CAU_Diag2a(integer p_cauVal) := +/* TX template for Cause indicators parameter (CAUI); Mandatory Variable (V) format, with cause value parameterized and diagnostics = '2A'O. */ +{ + paramLen := '00000011'B, /* Parameter Length field */ + location := ?, /* location */ + spare := '0'B, /* spare */ + codingStandard := ?, /* codingStandard */ + ext1 := ?, /* Extension */ + causeValue := int2bit(p_cauVal, 7), /* Cause value */ + ext2 := ?, /* Extension */ + diagnostics := '2A'O /* Diagnostic(s) */ +} + +template CAUI_PAR_lv mw_CAU_cval(integer p_cauVal) := +/* TX template for Cause indicators parameter (CAUI); Mandatory Variable (V) format, with cause value parameterized. */ +{ + paramLen := ?, /* Parameter Length field */ + location := ?, /* location */ + spare := '0'B, /* spare */ + codingStandard := ?, /* codingStandard */ + ext1 := ?, /* Extension */ + causeValue := int2bit(p_cauVal, 7), /* Cause value */ + ext2 := ?, /* Extension */ + diagnostics := * /* Diagnostic(s), if any */ +} + +template CAUI_PAR_lv mw_CAU_Beyond(integer p_cauVal) := +/* TX template for Cause indicators parameter (CAUI); Mandatory Variable (V) format, with cause value parameterizedand location = 'network beyond an interworking point'. */ +{ + paramLen := ?, /* Parameter Length field */ + location := c_CAU_cLocation_ntwBeyond, /* location */ + spare := '0'B, /* spare */ + codingStandard := ?, /* codingStandard */ + ext1 := ?, /* Extension */ + causeValue := int2bit(p_cauVal, 7), /* Cause value */ + ext2 := ?, /* Extension */ + diagnostics := * /* Diagnostic(s), if any */ +} + +template UUID_PAR_tlv mw_UUI_resp_S2Not := +/* RX template for User-to-user indicators parameter (UUID); Optional (O) format, with Service 2 = 'not provided'. */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := ?, /* bit A: Type */ + service1 := ?, /* bits C B: Service 1 */ + service2 := c_UUI_service_rsp_notProv, /* bits E D: Service 2 */ + service3 := ?, /* bits G F: Service 3 */ + networkDiscardIndicator := ? /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template UUID_PAR_tlv mw_UUI_resp_S1Not := +/* RX template for User-to-user indicators parameter (UUID); Optional (O) format, with Service 1 = 'not provided' and networkDiscardIndicator = 'UUI discarded by the network'. */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := ?, /* bit A: Type */ + service1 := c_UUI_service_rsp_notProv, /* bits C B: Service 1 */ + service2 := ?, /* bits E D: Service 2 */ + service3 := ?, /* bits G F: Service 3 */ + networkDiscardIndicator := c_UUI_netwDiscInd_discarded /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template UUID_PAR_tlv mw_UUI_resp_S3Not := +/* RX template for User-to-user indicators parameter (UUID); Optional (O) format, with Service 3 = 'not provided'. */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := ?, /* bit A: Type */ + service1 := ?, /* bits C B: Service 1 */ + service2 := ?, /* bits E D: Service 2 */ + service3 := c_UUI_service_rsp_notProv, /* bits G F: Service 3 */ + networkDiscardIndicator := ? /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template USI_PAR_tlv mw_USI_Std(template USIContents p_uSIContents) := +/* Default RX template with parametrization for User service information parameter (USI); Optional(O) format. */ +{ + paramType := '00011101'B, /* Parameter Type '00011101'B */ + paramLen := ?, /* Parameter Length field */ + uSIContents := p_uSIContents +} + +template USIContents mw_USIContents_Std(template Bit5 p_InfoTrfCap, Bit5 p_UserInfoL1) := +/* Default RX template for type USIContents with Information transfer capability and User information Layer 1 protocol parameterized, and with 'any' template values for other structured types, and wildcards for simple types.*/ +{ + bCAP_octet3 := mw_BCAP_octet3_Std(p_InfoTrfCap), + bCAP_octet4 := mw_BCAP_octet4_any, + bCAP_octet5 := mw_BCAP_octet5_Std(p_UserInfoL1), + bCAP_octet6 := mw_BCAP_octet6_any ifpresent, + bCAP_octet7 := mw_BCAP_octet7_any ifpresent +} + +template USIContents mw_USIContents_InfoTrfCap(template Bit5 p_InfoTrfCap) := +/* RX template for type USIContents with Information transfer capability parameterized, and with 'any' template values for other structured types, and wildcards for simple types.*/ +{ + bCAP_octet3 := mw_BCAP_octet3_Std(p_InfoTrfCap), + bCAP_octet4 := mw_BCAP_octet4_any, + bCAP_octet5 := mw_BCAP_octet5_any ifpresent, + bCAP_octet6 := mw_BCAP_octet6_any ifpresent, + bCAP_octet7 := mw_BCAP_octet7_any ifpresent +} + +template BCAP_octet3 mw_BCAP_octet3_Std(template Bit5 p_InfoTrfCap) := +/* Default RX template for type BCAP_octet3 with wildcards for simple types */ +{ + informationTransferCapability := p_InfoTrfCap, /* Information transfer capability */ + codingStandard := ?, /* Coding standard */ + ext := ? /* Extension */ +} + +template BCAP_octet5 mw_BCAP_octet5_Std(Bit5 p_UserInfoL1) := +/* Default RX template for type BCAP_octet5 with 'any' template values for structured types, and wildcards for simple types */ +{ + userInformationLayer1Protocol := p_UserInfoL1, /* User information Layer 1 protocol */ + layerIdentification := ?, /* Layer identification */ + ext := ?, /* Extension */ + bCAP_octet5a := mw_BCAP_octet5a_any ifpresent, + bCAP_octet5b1 := mw_BCAP_octet5b1_any ifpresent, + bCAP_octet5b2 := mw_BCAP_octet5b2_any ifpresent, + bCAP_octet5c := mw_BCAP_octet5c_any ifpresent, + bCAP_octet5d := mw_BCAP_octet5d_any ifpresent +} + +template ATP_PAR_tlv m_AT_CLSU := +/* TX template for Access Transport parameter (ATP); Optional(O) format, with Q.931 information element Calling sub-address (default value). */ +{ + paramType := '00000011'B, /* Parameter Type '00000011'B */ + paramLen := f_calc_length_atp_cgps({ callingPartySubaddress := m_cgps },3), /* Parameter Length field */ + informationElements := { callingPartySubaddress := m_cgps } +/* Q.931 information element Calling sub-address */ +} + +template ConnectedSubaddress m_connsub := +/* TX template for Q.931 information element Connected sub-address (default value). */ +{ + iEType := '01001101'B, /* Information Element Type '01001101'B */ + iELen := int2bit((lengthof(PX_ISUP_TX_connsub_information) + 1), 8), /* Information Element Length field */ + spare := '000'B, /* Spare */ + oddEven := PX_ISUP_TX_connsub_odd_even_indicator, /* OE */ + typeOfSubaddress := PX_ISUP_TX_connsub_type_of_subaddress, /* Type of Subaddress */ + ext := '1'B, /* Extension */ + subaddressInformation := PX_ISUP_TX_connsub_information /* Subaddress Information */ +} + +template ATP_PAR_tlv m_AT_ConnSub_Def(octetstring p_subInfo) := +/* TX template for Access Transport parameter (ATP); Optional(O) format, with Q.931 information element Connected sub-address (default value). */ +{ + paramType := '00000011'B, /* Parameter Type '00000011'B */ + paramLen := f_calc_length_atp_cods({ connectedSubaddress := m_connsub },3), /* Parameter Length field */ + informationElements := { connectedSubaddress := m_connsub } +/* Q.931 information element Connected sub-address */ +} + +template CDN_PAR_lv m_CalledNum_STcmpl(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Called party number parameter (CDN); Optional (O) format, with Nature of address indicator and address digits parameterized, sending complete sent, and default values otherwise. */ +{ + paramLen := f_calc_paramLen(p_digits, true, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, true), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := PX_ISUP_TX_CDN_numbPlanInd, /* Numbering plan indicator */ + iNN := PX_ISUP_TX_CDN_iNN, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(p_digits, true) /* address signals */ +} + +template CDN_PAR_lv m_CalledNum_Inat(charstring p_digits, boolean p_sendCmpl) := +/* TX template for Called party number parameter (CDN); Optional (O) format, with address digits and sending complete parameterized, Nature of address = 'International number' and default values otherwise. */ +{ + paramLen := f_calc_paramLen(p_digits, p_sendCmpl, 2), /* Parameter Length field */ + natureOfAddressIndicator := c_CLD_natAddrInd_internat, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, p_sendCmpl), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := PX_ISUP_TX_CDN_numbPlanInd, /* Numbering plan indicator */ + iNN := PX_ISUP_TX_CDN_iNN, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(p_digits, p_sendCmpl) /* address signals */ +} + +template CDN_PAR_lv m_CalledNum_Nat(charstring p_digits, boolean p_sendCmpl) := +/* TX template for Called party number parameter (CDN); Optional (O) format, with address digits and sending complete parameterized, Nature of address = 'National (sign.) number' and default values otherwise. */ +{ + paramLen := f_calc_paramLen(p_digits, p_sendCmpl, 2), /* Parameter Length field */ + natureOfAddressIndicator := c_CLD_natAddrInd_natSig, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, p_sendCmpl), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := PX_ISUP_TX_CDN_numbPlanInd, /* Numbering plan indicator */ + iNN := PX_ISUP_TX_CDN_iNN, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(p_digits, p_sendCmpl) /* address signals */ +} + +template CDN_PAR_lv m_CalledNum_noSTcmpl(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Called party number parameter (CDN); Optional (O) format, with Nature of address indicator and address digits parameterized, sending complete not sent, and default values otherwise. */ +{ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := PX_ISUP_TX_CDN_numbPlanInd, /* Numbering plan indicator */ + iNN := PX_ISUP_TX_CDN_iNN, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template SNN_PAR_lv m_SubsNum_STcmpl(charstring p_digits) := +/* TX template for Subsequent number parameter (SNN); Mandatory Variable (V) format, with address digits parameterized, sending complete sent, and default values otherwise. */ +{ + paramLen := f_calc_paramLen(p_digits, true, 1), /* Parameter Length field */ + spare := '0000000'B, /* spare */ + oddEven := f_calc_oddeven(p_digits, true), /* O/E */ + addressSignals := f_char_to_BCD(p_digits, true) /* address signals */ +} + +template SNN_PAR_lv m_SubsNum_notSTcmpl(charstring p_digits) := +/* TX template for Subsequent number parameter (SNN); Mandatory Variable (V) format, with address digits parameterized, sending complete not sent, and default values otherwise. */ +{ +paramLen := f_calc_paramLen(p_digits, false, 1), /* Parameter Length field */ + spare := '0000000'B, /* spare */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template CGN_PAR_tlv m_CallingNum_allowed(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Calling party number parameter (CGN); Optional (O) format, with Nature of address and address digits parameterized, and Screening indicator = 'network provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator:= c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd := c_CLI_aprInd_alwd, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + nII := c_CLI_numIncmplInd_cmpl, /* Number Incomplete Indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template CGN_PAR_tlv m_CallingNum_restr(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Calling party number parameter (CGN); Optional (O) format, with Nature of address and address digits parameterized, and Screening indicator = 'network provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted'. */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := f_calc_paramLen(p_digits, false, 2), /* Parameter Length field */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator:= c_CLI_screenInd_ntwProv, /* Screening indicator */ + addrPresRestrInd := c_CLI_aprInd_restr, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := c_CLD_numPlanInd_isdn, /* Numbering plan indicator */ + nII := c_CLI_numIncmplInd_cmpl, /* Number Incomplete Indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template CallingPartySubaddress m_cgps := +/* TX template for Q.931 Calling party subaddress information element, with all default values */ +{ + iEType := '01101101'B, /* Information Element Type '01101101'B */ + iELen := int2bit((lengthof (PX_ISUP_TX_cgps_information) + 1), 8 ), /* Information Element Length field */ + spare := '000'B, /* Spare */ + oddEven := PX_ISUP_TX_cgps_odd_even_indicator, /* OE */ + typeOfSubaddress := PX_ISUP_TX_cgps_type_of_subaddress, /* Type of Subaddress */ + ext := '1'B, /* Extension */ + subaddressInformation := PX_ISUP_TX_cgps_information /* Subaddress Information */ +} + +template GNU_PAR_tlv m_GenericNum_allowed(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Generic number parameter (GNU); Optional (O) format, with Nature of address and address digits parameterized, and Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed', Number qualifier indicator = 'additional calling party number', and default values otherwise. */ +{ + paramType := '11000000'B, /* Parameter Type '11000000'B */ + paramLen := f_calc_paramLen(p_digits, false, 3), /* Parameter Length field */ + numberQualifierIndicator := c_GEN_numQualInd_cliNum, /* Number qualifier indicator */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator (NOTE 1) */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator := '01'B, /* Screening indicator (NOTE 4) */ + addrPresRestrInd := c_GEN_aprInd_alwd, /* Address presentation restricted indicator (NOTE 3) */ + numberingPlanIndicator := c_GEN_numPlanInd_isdn, /* Numbering plan indicator (NOTE 2) */ + nI := c_GEN_numIncmplInd_cmpl, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template GNU_PAR_tlv m_GenericNum_restr(Bit7 p_natAddrInd, charstring p_digits) := +/* TX template for Generic number parameter (GNU); Optional (O) format, with Nature of address and address digits parameterized, and Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted', Number qualifier indicator = 'additional calling party number', and default values otherwise. */ +{ + paramType := '11000000'B, /* Parameter Type '11000000'B */ + paramLen := f_calc_paramLen(p_digits, false, 3), /* Parameter Length field */ + numberQualifierIndicator := c_GEN_numQualInd_cliNum, /* Number qualifier indicator */ + natureOfAddressIndicator := p_natAddrInd, /* Nature of address indicator (NOTE 1) */ + oddEven := f_calc_oddeven(p_digits, false), /* O/E */ + screeningIndicator := '01'B, /* Screening indicator (NOTE 4) */ + addrPresRestrInd := c_GEN_aprInd_restr, /* Address presentation restricted indicator (NOTE 3) */ + numberingPlanIndicator := c_GEN_numPlanInd_isdn, /* Numbering plan indicator (NOTE 2) */ + nI := c_GEN_numIncmplInd_cmpl, /* Number incomplete indicator */ + addressSignals := f_char_to_BCD(p_digits, false) /* address signals */ +} + +template HPC_PAR_tlv mw_HopC_Def := +/* TX template for Hop counter parameter (HPC); Optional (O) format, with default values. */ +{ + paramType := '00111101'B, /* Parameter Type '00111101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + hopCounter := ? , /* bits EDCBA: Hop counter */ + spare := '000'B /* bits HGF: spare */ +} + +template CPN_PAR_tlv m_ConnNum_Def := +/* TX template for Connected number parameter (CPN); Optional(O) format, with default values. */ +{ + paramType := '00100001'B, /* Parameter Type '00100001'B */ + paramLen := f_calc_paramLen(PX_ISUP_TX_CPN_addrSignals, false, 2),/* Parameter Length field */ + natureOfaddressindicator := PX_ISUP_TX_CPN_natOfaddressind, /* Nature of address indicator */ + oddEven := f_calc_oddeven(PX_ISUP_TX_CPN_addrSignals, false), /* O/E */ + screeningIndicator := PX_ISUP_TX_CPN_screenInd, /* Screening indicator */ + addrPresRestrInd := PX_ISUP_TX_CPN_addrPresRestrInd, /* Address presentation restricted indicator (NOTE) */ + numberingplanIndicator := PX_ISUP_TX_CPN_numbplanInd, /* Numberingplan indicator */ + spare := '0'B, /* spare */ + addressSignals := f_char_to_BCD(PX_ISUP_TX_CPN_addrSignals, false) /* address signals */ +} + +template ROP_PAR_tlv m_Facility_comp := +/* TX template for Remote operations parameter (ROP); Optional(O) format. */ +{ + paramType := '00110010'B, /* Parameter Type '00100001'B */ + paramLen := int2bit((lengthof (PX_ISUP_FAC_comp_txDef)+1), 8), /* Parameter Length field */ + protocolProfile := '10001'B, /* Remote operations*/ + spare := '00'B, /* Spare */ + ext := '1'B, /* Extension */ + components := PX_ISUP_FAC_comp_txDef /* Remote operations components */ +} + + +/* New Default Parameter RX Templates */ + +template SNN_PAR_lv mw_SNN_PAR_lv_any := +/* Default RX template for type Subsequent number with wildcards for simple types */ +{ + paramLen := ?, /* Parameter Length field */ + spare := '0000000'B, /* spare */ + oddEven := ?, /* O/E */ + addressSignals := ? /* address signals */ +} + + +/* New Default Parameter TX Templates */ + +template BCI_PAR_v m_BCI_Def := +/* Default TX template for Backward call indicators parameter (BCI) in ACM message; Fixed(F) format. */ +{ + chargeIndicator := PX_ISUP_TX_BCI_v_chargeInd, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := PX_ISUP_TX_BCI_v_cldPStatInd, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := PX_ISUP_TX_BCI_v_cldPCatInd, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := PX_ISUP_TX_BCI_v_eTOeMethodInd, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := PX_ISUP_TX_BCI_v_interwInd, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := PX_ISUP_TX_BCI_v_eTOeInfoInd, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := PX_ISUP_TX_BCI_v_iSDNUserPartInd, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := PX_ISUP_TX_BCI_v_holdingInd, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := PX_ISUP_TX_BCI_v_iSDNAccessInd, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_BCI_v_echoContrDevInd, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := PX_ISUP_TX_BCI_v_sCCPMethodInd /* bits PO: SCCP method indicator (Note 2) */ +} + +template CDN_PAR_lv m_CDN_PAR_Def := +/* Default TX template for Called party number parameter (CDN); Variable(V) format. */ +{ + paramLen := f_calc_paramLen(PX_ISUP_TX_CDN_addrSignals, true, 2),/* Parameter Length field */ + natureOfAddressIndicator := PX_ISUP_TX_CDN_natOfAddressInd, /* Nature of address indicator */ + oddEven := f_calc_oddeven(PX_ISUP_TX_CDN_addrSignals, true), /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := PX_ISUP_TX_CDN_numbPlanInd, /* Numbering plan indicator */ + iNN := PX_ISUP_TX_CDN_iNN, /* Internal Network Number indicator */ + addressSignals := f_char_to_BCD(PX_ISUP_TX_CDN_addrSignals, true) /* address signals */ +} + +template CAUI_PAR_lv m_CAUI_Def := +/* Default TX template for Cause indicators parameter (CAUI); Variable(V) format. */ +{ + paramLen := '00000010'B, /* Parameter Length field */ + location := '0000'B, /* location */ + spare := '0'B, /* spare */ + codingStandard := '00'B, /* codingStandard */ + ext1 := '1'B, /* Extension */ + causeValue := '0010000'B, /* Cause value */ + ext2 := '1'B, /* Extension */ + diagnostics := omit /* Diagnostic(s)*/ +} + +template EIF_PAR_v m_EIF_Def := +/* Default TX template for Event information parameter (EIF); Fixed(F) format. */ +{ + eventIndicator := '0000001'B, /* bits G F E D C B A: Event indicator */ + eventPresRestrInd := '0'B /* bit H: Event presentation restricted indicator (national use) */ +} + +template FCI_PAR_v m_FCI_Def := +/* Default TX template for Forward call indicators parameter (FCI); Fixed(F) format. */ +{ + natInternatCallIndicator := PX_ISUP_TX_FCI_natInternatCallInd, /* bit A: National/international call indicator (Note 1) */ + endToEndMethodIndicator := PX_ISUP_TX_FCI_endToEndMethodInd, /* bits CB: End-to-end method indicator (Note 2) */ + interworkingIndicator := PX_ISUP_TX_FCI_interwInd, /* bit D: Interworking indicator (Note 2) */ + endToEndInfoIndicator := PX_ISUP_TX_FCI_eTOeInfoIndic, /* bit E: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := PX_ISUP_TX_FCI_iSDNUserPartInd, /* bit F: ISDN user part indicator (Note 2) */ + iSDNUserPartPrefIndicator := PX_ISUP_TX_FCI_iSDNUserPartPrefInd, /* bits HG: ISDN user part preference indicator */ + iSDNAccessIndicator := PX_ISUP_TX_FCI_iSDNAccessInd, /* bit I: ISDN access indicator */ + sCCPMethodIndicator := PX_ISUP_TX_FCI_sCCPMethodInd, /* bits KJ: SCCP method indicator (Note 2) */ + spare := '0'B, /* bit L: spare */ + reserved := PX_ISUP_TX_FCI_reserved /* bits P-M: reserved for national use */ +} + +template NCI_PAR_v m_NCI_Def := +/* Default TX template for Nature of connection indicators parameter (NCI); Fixed(F) format. */ +{ + satelliteIndicator := PX_ISUP_TX_NCI_satelliteInd, /* bits BA: Satellite indicator */ + continuityCheckIndicator := PX_ISUP_TX_NCI_contCheckInd, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := PX_ISUP_TX_NCI_echoContrDevInd, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template RAS_PAR_lv m_RAS_Def := +/* Default TX template for Range and status parameter (RAS); Variable(V) format. */ +{ + paramLen := int2bit((lengthof(PX_ISUP_TX_RAS_status) + 1), 8), /* Parameter Length field */ + range := PX_ISUP_TX_RAS_range, /* Range */ + status := PX_ISUP_TX_RAS_status /* Status */ +} + +template IAM_OPTIONAL_PARAMS m_IAM_USED_OPTIONAL_PARAMS(template CGN_PAR_tlv p_CGN, template OFCI_PAR_tlv p_OFCI, template RDN_PAR_tlv p_RDN, template RDI_PAR_tlv p_RDIN, template OCN_PAR_tlv p_OCN, template UUIF_PAR_tlv p_UUIF, template ATP_PAR_tlv p_ATP, template USI_PAR_tlv p_USI, template UUID_PAR_tlv p_UUID, template GNU_PAR_tlv p_GNU, template HPC_PAR_tlv p_HPC, template CUGIC_PAR_tlv p_CUGIC) := +/* TX template for SET: optional parameters of Initial address message (IAM) with all used optional parameters parameterized*/ +{ + transitNetworkSelection := omit, /* Transit network selection, O, len=4-? */ + callReference := omit, /* Call reference, O, len=7 */ + callingPartyNumber := p_CGN, /* Calling party number, O, len=4-? */ + optionalForwardCallIndicators := p_OFCI, /* Optional forward call indicators, O, len=3 */ + redirectingNumber := p_RDN, /* Redirecting number, O, len=4-? */ + redirectionInformation := p_RDIN, /* Redirection information, O, len=3-4 */ + closedUserGroupInterlockCode := p_CUGIC, /* Closed user group interlock code, O, len=6 */ + connectionRequest := omit, /* Connection request, O, len=7-9 */ + originalCalledNumber := p_OCN, /* Original called number, O, len=4-? */ + userToUserInformation := p_UUIF, /* User-to-user information, O, len=3-131 */ + accessTransport := p_ATP, /* Access transport, O, len=3-? */ + userServiceInformation := p_USI, /* User service information, O, len=4-13 */ + userToUserIndicators := p_UUID, /* User-to-user indicators, O, len=3 */ + genericNumber1 := p_GNU, /* Generic number1, O, len=5-? */ + genericNumber2 := omit, /* Generic number2, O, len=5-? */ + propagationDelayCounter := omit , /* Propagation delay counter, O, len=4 */ + userServiceInformationPrime := omit, /* User service information prime, O, len=4-13 */ + networkSpecificFacility := omit, /* Network specific facility, O, len=4-? */ + genericDigits1 := omit, /* Generic digits1, O, len=4-? */ + genericDigits2 := omit, /* Generic digits2, O, len=4-? */ + originationISCPointCode := omit, /* Origination ISC point code, O, len=4 */ + userTeleserviceInformation := omit, /* User teleservice information, O, len=4-5 */ + remoteOperations := omit, /* Remote operations, O, len=8-? */ + parameterCompatibilityInformation := omit, /* Parameter compatibility information, O, len=4-? */ + genericNotificationIndicator1 := omit, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + mLPPPrecedence := omit, /* MLPP precedence, O, len=8 */ + transmissionMediumRequirementPrime := omit, /* Transmission medium requirement prime, O, len=3 */ + locationNumber := omit, /* Location number, O, len=4-? */ + forwardGVNS := omit, /* Forward GVNS, O, len=5-26 */ + cCSS := omit, /* CCSS, O, len=3-? */ + networkManagementControls := omit, /* Network management controls, O, len=3-? */ + circuitAssignmentMap := omit, /* Circuit assignment map, O, len=6-7 */ + correlationId := omit, /* Correlation id, O, len=3-? */ + callDiversionTreatmentIndicators := omit, /* Call diversion treatment indicators, O, len=3-? */ + calledINNumber := omit, /* Called IN number, O, len=4-? */ + callOfferingTreatmentIndicators := omit, /* Call offering treatment indicators, O, len=3-? */ + conferenceTreatmentIndicators := omit, /* Conference treatment indicators, O, len=3-? */ + sCFId := omit, /* SCF id, O, len=3-? */ + uIDCapabilityIndicators := omit, /* UID capability indicators, O, len=3-? */ + echoControlInformation := omit, /* Echo control information, O, len=3 */ + hopCounter := p_HPC, /* Hop counter, O, len=3 */ + collectCallRequest := omit, /* Collect call request, O, len=3 */ + applicationTransportParameter1 := omit, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := omit, /* Application transport parameter2, O, len=5-? */ + pivotCapability := omit, /* Pivot capability, O, len=3 */ + calledDirectoryNumber := omit, /* Called directory number, O, len=5-? */ + originalCalledINNumber := omit, /* Original called IN number, O, len=4-? */ + callingGeodeticLocation := omit, /* Calling geodetic location, O, len=3-? */ + networkRoutingNumber := omit, /* Network routing number, O, len=4-? */ + queryOnReleaseCapability := omit, /* Query on release capability, O, len=3 */ + pivotCounter := omit, /* Pivot counter, O, len=3 */ + pivotRoutingForwardInformation := omit, /* Pivot routing forward information, O, len=3-? */ + redirectCapability := omit, /* Redirect capability, O, len=3 */ + redirectCounter := omit, /* Redirect counter, O, len=3 */ + redirectStatus := omit, /* Redirect status, O, len=3 */ + redirectForwardInformation := omit, /* Redirect forward information, O, len=3-? */ + numberPortabilityForwardInformation := omit, /* Number portability forward information, O, len=1-? */ + automaticReRouting := omit /* Automatic re-routing, O, len=4-? */ +} + +template ANM_OPTIONAL_PARAMS m_ANM_USED_OPTIONAL_PARAMS(template CPN_PAR_tlv p_CPN, template ATP_PAR_tlv p_ATP, template RNS_PAR_tlv p_RNS) := +/* TX template for SET: optional parameters of Answer message (ANM) with optional parameters Connected number, Access transport and Redirection number restriction parameterized.*/ +{ + backwardCallIndicators := omit, /* Backward call indicators, O, len=4 */ + optionalBackwardCallIndicators := omit, /* Optional backward call indicators, O, len=3 */ + callReference := omit, /* Call reference, O, len=7 */ + userToUserIndicators := omit, /* User-to-user indicators, O, len=3 */ + userToUserInformation := omit, /* User-to-user information, O, len=3-131 */ + connectedNumber := p_CPN, /* Connected number, O, len=4-? */ + accessTransport := p_ATP, /* Access transport, O, len=3-? */ + accessDeliveryInformation := omit, /* Access delivery information, O, len=3 */ + genericNotificationIndicator1 := omit, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + parameterCompatibilityInformation := omit, /* Parameter compatibility information, O, len=4-? */ + backwardGVNS := omit, /* Backward GVNS, O, len=3-? */ + callHistoryInformation := omit, /* Call history information, O, len=4 */ + genericNumber1 := omit, /* Generic number1, O, len=5-? */ + genericNumber2 := omit, /* Generic number2, O, len=5-? */ + transmissionMediumUsed := omit, /* Transmission medium used, O, len=3 */ + networkSpecificFacility := omit, /* Network specific facility, O, len=4-? */ + remoteOperations := omit, /* Remote operations, O, len=8-? */ + redirectionNumber := omit, /* Redirection number, O, len=5-? */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + echoControlInformation := omit, /* Echo control information, O, len=3 */ + redirectionNumberRestriction := p_RNS, /* Redirection number restriction, O, len=3 */ + displayInformation := omit, /* Display information, O, len=3-? */ + conferenceTreatmentIndicators := omit, /* Conference treatment indicators, O, len=1-? */ + applicationTransportParameter1 := omit, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := omit, /* Application transport parameter2, O, len=5-? */ + pivotRoutingBackwardInformation := omit, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := omit /* Redirect status, O, len=3 */ +} + + +template ACM_OPTIONAL_PARAMS m_ACM_USED_OPTIONAL_PARAMS(template OBCI_PAR_tlv p_OBCI, template GNI_PAR_tlv p_GNI, template RNN_PAR_tlv p_RNN, template CDI_PAR_tlv p_CDI, template RNS_PAR_tlv p_RNS, template CCPI_PAR_tlv p_CCPI, template UNKNOWN_PAR_tlv p_UNKNOWN, template PCI_PAR_tlv p_PCI) := +/* TX template for SET: optional parameters of Address complete message (ACM) with optional parameters Optional backward call indicators, Generic notification indicator, Redirection number, Call diversion information, Redirection number restriction and CCNR possible indicator parameterized.*/ +{ + optionalBackwardCallIndicators := p_OBCI, /* Optional backward call indicators, O, len=3 */ + callReference := omit, /* Call reference, O, len=7 */ + causeIndicators := omit, /* Cause indicators, O, len=4-? */ + userToUserIndicators := omit, /* User-to-user indicators, O, len=3 */ + userToUserInformation := omit, /* User-to-user information, O, len=3-131 */ + accessTransport := omit, /* Access transport, O, len=3-? */ + genericNotificationIndicator1 := p_GNI, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + transmissionMediumUsed := omit, /* Transmission medium used, O, len=3 */ + echoControlInformation := omit, /* Echo control information, O, len=3 */ + accessDeliveryInformation := omit, /* Access delivery information, O, len=3 */ + redirectionNumber := p_RNN, /* Redirection number, O, len=5-? */ + parameterCompatibilityInformation := p_PCI,/* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := p_CDI, /* Call diversion information, O, len=3 */ + networkSpecificFacility := omit, /* Network specific facility, O, len=4-? */ + remoteOperations := omit, /* Remote operations, O, len=8-? */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := p_RNS, /* Redirection number restriction, O, len=3 */ + conferenceTreatmentIndicators := omit, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := omit, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := omit, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := omit, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := p_CCPI, /* CCNR possible indicator, O, len=3 */ + hTRInformation := omit, /* HTR information, O, len=4-? */ + pivotRoutingBackwardInformation := omit, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := omit, /* O, len=3 */ + unknownParameter := p_UNKNOWN +} + +template CON_OPTIONAL_PARAMS m_CON_USED_OPTIONAL_PARAMS := +/* TX template for SET: optional parameters of Connect message (CON) with optional parameter Call history information only. */ +{ + optionalBackwardCallIndicators := omit, /* Optional backward call indicators, O, len=3 */ + backwardGVNS := omit, /* Backward GVNS, O, len=3-? */ + connectedNumber := omit, /* Connected number, O, len=4-? */ + callReference := omit, /* Call reference, O, len=7 */ + userToUserIndicators := omit, /* User-to-user indicators, O, len=3 */ + userToUserInformation := omit, /* User-to-user information, O, len=3-131 */ + accessTransport := omit, /* Access transport, O, len=3-? */ + networkSpecificFacility := omit, /* Network specific facility, O, len=4-? */ + genericNotificationIndicator1 := omit, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + remoteOperations := omit, /* Remote operations, O, len=8-? */ + transmissionMediumUsed := omit, /* Transmission medium used, O, len=3 */ + echoControlInformation := omit, /* Echo control information, O, len=3 */ + accessDeliveryInformation := omit, /* Access delivery information, O, len=3 */ + callHistoryInformation := omit, /* Call history information, O, len=4 */ + parameterCompatibilityInformation := omit, /* Parameter compatibility information, O, len=4-? */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + genericNumber1 := omit, /* Generic number1, O, len=5-? */ + genericNumber2 := omit, /* Generic number2, O, len=5-? */ + redirectionNumberRestriction := omit, /* Redirection number restriction, O, len=3 */ + conferenceTreatmentIndicators := omit, /* Conference treatment indicators, O, len=3-? */ + applicationTransportParameter1 := omit, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := omit, /* Application transport parameter2, O, len=5-? */ + hTRInformation := omit, /* HTR information, O, len=4-? */ + pivotRoutingBackwardInformation := omit, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := omit /* Redirect status, O, len=3 */ +} + +template CPG_OPTIONAL_PARAMS m_CPG_OPTIONAL_PARAMS_CDI(template GNI_PAR_tlv p_GNI, template RNN_PAR_tlv p_RNN, template CDI_PAR_tlv p_CDI, template RNS_PAR_tlv p_RNS) := +/* TX template for SET: optional parameters of Call progress message (CPG) with optional parameters required for call diversion parameterized.*/ +{ + causeIndicators := omit, /* Cause indicators, O, len=4-? */ + callReference := omit, /* Call reference, O, len=7 */ + backwardCallIndicators := omit, /* Backward call indicators, O, len=4 */ + optionalBackwardCallIndicators := omit, /* Optional backward call indicators, O, len=3 */ + accessTransport := omit, /* Access transport, O, len=3-? */ + userToUserIndicators := omit, /* User-to-user indicators, O, len=3 */ + redirectionNumber := p_RNN, /* Redirection number, O, len=5-? */ + userToUserInformation := omit, /* User-to-user information, O, len=3-131 */ + genericNotificationIndicator1 := p_GNI, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + networkSpecificFacility := omit, /* Network specific facility, O, len=4-? */ + remoteOperations := omit, /* Remote operations, O, len=8-? */ + transmissionMediumUsed := omit, /* Transmission medium used, O, len=3 */ + accessDeliveryInformation := omit, /* Access delivery information, O, len=3 */ + parameterCompatibilityInformation := omit, /* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := p_CDI, /* Call diversion information, O, len=3 */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := p_RNS, /* Redirection number restriction, O, len=3 */ + callTransferNumber := omit, /* Call transfer number, O, len=4-? */ + echoControlInformation := omit, /* Echo control information, O, len=3 */ + connectedNumber := omit, /* Connected number, O, len=4-? */ + backwardGVNS := omit, /* Backward GVNS, O, len=3-? */ + genericNumber1 := omit, /* Generic number1, O, len=5-? */ + genericNumber2 := omit, /* Generic number2, O, len=5-? */ + callHistoryInformation := omit, /* Call history information, O, len=4 */ + conferenceTreatmentIndicators := omit, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := omit, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := omit, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := omit, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := omit, /* CCNR possible indicator, O, len=3 */ + pivotRoutingBackwardInformation := omit, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := omit, /*O, len=3 */ + unknownParameter := omit /* Unknown parameters */ +} + +template CPG_OPTIONAL_PARAMS m_CPG_USED_OPTIONAL_PARAMS(template GNI_PAR_tlv p_GNI, template PCI_PAR_tlv p_PCI, template UNKNOWN_PAR_tlv p_UNKNOWN) := +/* TX template for SET: optional parameters of Call progress message (CPG) with optional parameters Generic notification indicator, Parameter compatibility information and Unknown parameter parameterized.*/ +{ + causeIndicators := omit, /* Cause indicators, O, len=4-? */ + callReference := omit, /* Call reference, O, len=7 */ + backwardCallIndicators := omit, /* Backward call indicators, O, len=4 */ + optionalBackwardCallIndicators := omit, /* Optional backward call indicators, O, len=3 */ + accessTransport := omit, /* Access transport, O, len=3-? */ + userToUserIndicators := omit, /* User-to-user indicators, O, len=3 */ + redirectionNumber := omit, /* Redirection number, O, len=5-? */ + userToUserInformation := omit, /* User-to-user information, O, len=3-131 */ + genericNotificationIndicator1 := p_GNI, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + networkSpecificFacility := omit, /* Network specific facility, O, len=4-? */ + remoteOperations := omit, /* Remote operations, O, len=8-? */ + transmissionMediumUsed := omit, /* Transmission medium used, O, len=3 */ + accessDeliveryInformation := omit, /* Access delivery information, O, len=3 */ + parameterCompatibilityInformation := p_PCI, /* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := omit, /* Call diversion information, O, len=3 */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := omit, /* Redirection number restriction, O, len=3 */ + callTransferNumber := omit, /* Call transfer number, O, len=4-? */ + echoControlInformation := omit, /* Echo control information, O, len=3 */ + connectedNumber := omit, /* Connected number, O, len=4-? */ + backwardGVNS := omit, /* Backward GVNS, O, len=3-? */ + genericNumber1 := omit, /* Generic number1, O, len=5-? */ + genericNumber2 := omit, /* Generic number2, O, len=5-? */ + callHistoryInformation := omit, /* Call history information, O, len=4 */ + conferenceTreatmentIndicators := omit, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := omit, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := omit, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := omit, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := omit, /* CCNR possible indicator, O, len=3 */ + pivotRoutingBackwardInformation := omit, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := omit, /*O, len=3 */ + unknownParameter := p_UNKNOWN /* Unknown parameters */ +} + +template IAM_OPTIONAL_PARAMS mw_IAM_USED_OPTIONAL_PARAMS(template CGN_PAR_tlv p_CGN, template ATP_PAR_tlv p_ATP, template USI_PAR_tlv p_USI, template GNU_PAR_tlv p_GNU, template HPC_PAR_tlv p_HPC) := +/* RX template for SET: optional parameters of Initial address message (IAM) with Calling party number, Access transport, User service information, Generic number and Hop counter parameterized and 'any' other optional parameters.*/ +{ + transitNetworkSelection := mw_TNS_PAR_tlv_any ifpresent, /* Transit network selection, O, len=4-? */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + callingPartyNumber := p_CGN, /* Calling party number, O, len=4-? */ + optionalForwardCallIndicators := mw_OFCI_PAR_tlv_any ifpresent, /* Optional forward call indicators, O, len=3 */ + redirectingNumber := mw_RDN_PAR_tlv_any ifpresent, /* Redirecting number, O, len=4-? */ + redirectionInformation := mw_RDI_PAR_tlv_any ifpresent, /* Redirection information, O, len=3-4 */ + closedUserGroupInterlockCode := mw_CUGIC_PAR_tlv_any ifpresent, /* Closed user group interlock code, O, len=6 */ + connectionRequest := mw_CRQ_PAR_tlv_any ifpresent, /* Connection request, O, len=7-9 */ + originalCalledNumber := mw_OCN_PAR_tlv_any ifpresent, /* Original called number, O, len=4-? */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + accessTransport := p_ATP, /* Access transport, O, len=3-? */ + userServiceInformation := p_USI, /* User service information, O, len=4-13 */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + genericNumber1 := p_GNU, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number2, O, len=5-? */ + propagationDelayCounter := mw_PDC_PAR_tlv_any ifpresent, /* Propagation delay counter, O, len=4 */ + userServiceInformationPrime := mw_USIP_PAR_tlv_any ifpresent, /* User service information prime, O, len=4-13 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + genericDigits1 := mw_GDG_PAR_tlv_any ifpresent, /* Generic digits1, O, len=4-? */ + genericDigits2 := mw_GDG_PAR_tlv_any ifpresent, /* Generic digits2, O, len=4-? */ + originationISCPointCode := mw_OIPC_PAR_tlv_any ifpresent, /* Origination ISC point code, O, len=4 */ + userTeleserviceInformation := mw_UTSI_PAR_tlv_any ifpresent, /* User teleservice information, O, len=4-5 */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + mLPPPrecedence := mw_MLPP_PAR_tlv_any ifpresent, /* MLPP precedence, O, len=8 */ + transmissionMediumRequirementPrime := mw_TMRP_PAR_tlv_any ifpresent, /* Transmission medium requirement prime, O, len=3 */ + locationNumber := mw_LON_PAR_tlv_any ifpresent, /* Location number, O, len=4-? */ + forwardGVNS := mw_FGVNS_PAR_tlv_any ifpresent, /* Forward GVNS, O, len=5-26 */ + cCSS := mw_CCSS_PAR_tlv_any ifpresent, /* CCSS, O, len=3-? */ + networkManagementControls := mw_NMC_PAR_tlv_any ifpresent, /* Network management controls, O, len=3-? */ + circuitAssignmentMap := mw_CAM_PAR_tlv_any ifpresent, /* Circuit assignment map, O, len=6-7 */ + correlationId := mw_CRI_PAR_tlv_any ifpresent, /* Correlation id, O, len=3-? */ + callDiversionTreatmentIndicators := mw_CDTI_PAR_tlv_any ifpresent, /* Call diversion treatment indicators, O, len=3-? */ + calledINNumber := mw_CIN_PAR_tlv_any ifpresent, /* Called IN number, O, len=4-? */ + callOfferingTreatmentIndicators := mw_COTI_PAR_tlv_any ifpresent, /* Call offering treatment indicators, O, len=3-? */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + sCFId := mw_SCFI_PAR_tlv_any ifpresent, /* SCF id, O, len=3-? */ + uIDCapabilityIndicators := mw_UCI_PAR_tlv_any ifpresent, /* UID capability indicators, O, len=3-? */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + hopCounter := p_HPC, /* Hop counter, O, len=3 */ + collectCallRequest := mw_CCRQ_PAR_tlv_any ifpresent, /* Collect call request, O, len=3 */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + pivotCapability := mw_PICP_PAR_tlv_any ifpresent, /* Pivot capability, O, len=3 */ + calledDirectoryNumber := mw_CDIN_PAR_tlv_any ifpresent, /* Called directory number, O, len=5-? */ + originalCalledINNumber := mw_OCI_PAR_tlv_any ifpresent, /* Original called IN number, O, len=4-? */ + callingGeodeticLocation := mw_CGL_PAR_tlv_any ifpresent, /* Calling geodetic location, O, len=3-? */ + networkRoutingNumber := mw_NRN_PAR_tlv_any ifpresent, /* Network routing number, O, len=4-? */ + queryOnReleaseCapability := mw_QRC_PAR_tlv_any ifpresent, /* Query on release capability, O, len=3 */ + pivotCounter := mw_PICN_PAR_tlv_any ifpresent, /* Pivot counter, O, len=3 */ + pivotRoutingForwardInformation := mw_PRFI_PAR_tlv_any ifpresent, /* Pivot routing forward information, O, len=3-? */ + redirectCapability := mw_RCP_PAR_tlv_any ifpresent, /* Redirect capability, O, len=3 */ + redirectCounter := mw_RCN_PAR_tlv_any ifpresent, /* Redirect counter, O, len=3 */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent, /* Redirect status, O, len=3 */ + redirectForwardInformation := mw_RFI_PAR_tlv_any ifpresent, /* Redirect forward information, O, len=3-? */ + numberPortabilityForwardInformation := mw_NPFI_PAR_tlv_any ifpresent, /* Number portability forward information, O, len=1-? */ + automaticReRouting := mw_ARR_PAR_tlv_any ifpresent /* Automatic re-routing, O, len=4-? */ +} + +template ACM_OPTIONAL_PARAMS mw_ACM_USED_OPTIONAL_PARAMS(template UUID_PAR_tlv p_UUID) := +/* TX template for SET: optional parameters of Address complete message (ACM) with optional parameters Optional backward call indicators, Generic notification indicator, Redirection number, Call diversion information, Redirection number restriction and CCNR possible indicator parameterized.*/ +{ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + causeIndicators := mw_CAUI_PAR_tlv_any ifpresent, /* Cause indicators, O, len=4-? */ + userToUserIndicators := p_UUID, /* User-to-user indicators, O, len=3 */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + transmissionMediumUsed := mw_TMU_PAR_tlv_any ifpresent, /* Transmission medium used, O, len=3 */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=5-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := mw_CDI_PAR_tlv_any ifpresent, /* Call diversion information, O, len=3 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := mw_RNS_PAR_tlv_any ifpresent, /* Redirection number restriction, O, len=3 */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := mw_UAI_PAR_tlv_any ifpresent, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := mw_CCPI_PAR_tlv_any ifpresent, /* CCNR possible indicator, O, len=3 */ + hTRInformation := mw_HTRI_PAR_tlv_any ifpresent, /* HTR information, O, len=4-? */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent, /* Redirect status, O, len=3 */ + unknownParameter :=omit +} + +template CPG_OPTIONAL_PARAMS mw_CPG_USED_OPTIONAL_PARAMS(template GNI_PAR_tlv p_GNI) := +/* RX template for SET: optional parameters of Call progress message (CPG) with optional parameters Generic notification indicator parameterized.*/ + +{ + causeIndicators := mw_CAUI_PAR_tlv_any ifpresent, /* Cause indicators, O, len=4-? */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + backwardCallIndicators := mw_BCI_PAR_tlv_any ifpresent, /* Backward call indicators, O, len=4 */ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=5-? */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + genericNotificationIndicator1 := p_GNI, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + transmissionMediumUsed := mw_TMU_PAR_tlv_any ifpresent, /* Transmission medium used, O, len=3 */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := mw_CDI_PAR_tlv_any ifpresent, /* Call diversion information, O, len=3 */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := mw_RNS_PAR_tlv_any ifpresent, /* Redirection number restriction, O, len=3 */ + callTransferNumber := mw_CTN_PAR_tlv_any ifpresent, /* Call transfer number, O, len=4-? */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + connectedNumber := mw_CPN_PAR_tlv_any ifpresent, /* Connected number, O, len=4-? */ + backwardGVNS := mw_BGV_PAR_tlv_any ifpresent, /* Backward GVNS, O, len=3-? */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number2, O, len=5-? */ + callHistoryInformation := mw_CHI_PAR_tlv_any ifpresent, /* Call history information, O, len=4 */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := mw_UAI_PAR_tlv_any ifpresent, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := mw_CCPI_PAR_tlv_any ifpresent, /* CCNR possible indicator, O, len=3 */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent, /* Redirect status, O, len=3 */ + unknownParameter := omit /* Unknown parameters */ +} + +template IDR_OPTIONAL_PARAMS m_IDR_USED_OPTIONAL_PARAMS(template MCRI_PAR_tlv p_MRQI) := +/* TX template for SET: optional parameters of Identification request message (IDR) with MCID request indicators parameterized and no other optional parameters */ +{ + mCIDRequestIndicators := p_MRQI, /* MCID request indicators, O, len=3 */ + messageCompatibilityInformation := omit, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := omit /* Parameter compatibility information, O, len=4-? */ +} + +template IRS_OPTIONAL_PARAMS mw_IRS_USED_OPTIONAL_PARAMS(template MCRS_PAR_tlv p_MCRS) := +/* RX template for SET: optional parameters of Identification response message (IRS) with MCID response indicators parameterized, and with 'any' other optional parameters */ +{ + mCIDResponseIndicators := p_MCRS, /* MCID response indicators, O, len=3 */ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callingPartyNumber := mw_CGN_PAR_tlv_any ifpresent, /* Calling party number, O, len=4-? */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent /* Generic number2, O, len=5-? */ +} + +template FAR_OPTIONAL_PARAMS m_FAR_USED_OPTIONAL_PARAMS(template UUID_PAR_tlv p_UUI) := +/* TX template for SET: optional parameters of Facility request message (FAR) with User-to-user indicators parameterized and no other optional parameters */ +{ + userToUserIndicators := p_UUI, /* User-to-user indicators, O, len=3 */ + callReference := omit, /* Call reference, O, len=7 */ + connectionRequest := omit, /* Connection request, O, len=7-9 */ + parameterCompatibilityInformation := omit /* Parameter compatibility information, O, len=4-? */ +} + +template FRJ_OPTIONAL_PARAMS mw_FRJ_USED_OPTIONAL_PARAMS(template UUID_PAR_tlv p_UUI) := +/* RX template for SET: optional parameters of Facility reject message (FRJ) with 'User-to-user indicators parameterized */ +{ + userToUserIndicators := p_UUI /* User-to-user indicators, O, len=3 */ +} + +template LOP_OPTIONAL_PARAMS mw_LOP_USED_OPTIONAL_PARAMS(template LPPI_PAR_tlv p_LPI) := +/* RX template for SET: optional parameters of Loop prevention message (LOP) with Loop prevention indicators parameterized and with 'any' other optional parameters */ +{ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callTransferReference := mw_CTR_PAR_tlv_any ifpresent, /* Call transfer reference, O, len=3 */ + loopPreventionIndicators := p_LPI /* Loop prevention indicators, O, len=3 */ +} + +template LOP_OPTIONAL_PARAMS m_LOP_USED_OPTIONAL_PARAMS(template LPPI_PAR_tlv p_LPI) := +/* TX template for SET: optional parameters of Loop prevention message (LOP) with Loop prevention indicators parameterized and with no other optional parameters */ +{ + messageCompatibilityInformation := omit, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := omit, /* Parameter compatibility information, O, len=4-? */ + callTransferReference := omit, /* Call transfer reference, O, len=3 */ + loopPreventionIndicators := p_LPI /* Loop prevention indicators, O, len=3 */ +} + +template FAC_OPTIONAL_PARAMS m_FAC_USED_OPTIONAL_PARAMS(template ROP_PAR_tlv p_ROP):= +/* TX template for SET: optional parameters of Facility message (FAC) with remote operations parameterized and no other optional parameters.*/ +{ + messageCompatibilityInformation := omit, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := omit, /* Parameter compatibility information, O, len=4-? */ + remoteOperations := p_ROP, /* Remote operations, O, len=8-? */ + serviceActivation := omit, /* Service activation, O, len=3-? */ + callTransferNumber := omit, /* Call transfer number, O, len=4-? */ + accessTransport := omit, /* Access transport, O, len=3-? */ + genericNotificationIndicator1 := omit, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := omit, /* Generic notification indicator2, O, len=3 */ + redirectionNumber := omit, /* Redirection number, O, len=4-? */ + pivotRoutingIndicators := omit, /* Pivot routing indicators, O, len=3 */ + pivotStatus := omit, /* Pivot status, O, len=3 */ + pivotCounter := omit, /* Pivot counter, O, len=3 */ + pivotRoutingBackwardInformation := omit, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := omit /* Redirect status, O, len=3-? */ +} + +template ACM_OPTIONAL_PARAMS mw_ACM_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Address complete message (ACM) with 'any'-optional parameters */ +{ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + causeIndicators := mw_CAUI_PAR_tlv_any ifpresent, /* Cause indicators, O, len=4-? */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + transmissionMediumUsed := mw_TMU_PAR_tlv_any ifpresent, /* Transmission medium used, O, len=3 */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=5-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := mw_CDI_PAR_tlv_any ifpresent, /* Call diversion information, O, len=3 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := mw_RNS_PAR_tlv_any ifpresent, /* Redirection number restriction, O, len=3 */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := mw_UAI_PAR_tlv_any ifpresent, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := mw_CCPI_PAR_tlv_any ifpresent, /* CCNR possible indicator, O, len=3 */ + hTRInformation := mw_HTRI_PAR_tlv_any ifpresent, /* HTR information, O, len=4-? */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent, /* Redirect status, O, len=3 */ + unknownParameter :=omit +} ifpresent; + +template ANM_OPTIONAL_PARAMS mw_ANM_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Answer message (ANM) with 'any'-optional parameters */ +{ + backwardCallIndicators := mw_BCI_PAR_tlv_any ifpresent, /* Backward call indicators, O, len=4 */ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + connectedNumber := mw_CPN_PAR_tlv_any ifpresent, /* Connected number, O, len=4-? */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + backwardGVNS := mw_BGV_PAR_tlv_any ifpresent, /* Backward GVNS, O, len=3-? */ + callHistoryInformation := mw_CHI_PAR_tlv_any ifpresent, /* Call history information, O, len=4 */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number2, O, len=5-? */ + transmissionMediumUsed := mw_TMU_PAR_tlv_any ifpresent, /* Transmission medium used, O, len=3 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=5-? */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + redirectionNumberRestriction := mw_RNS_PAR_tlv_any ifpresent, /* Redirection number restriction, O, len=3 */ + displayInformation := mw_DIF_PAR_tlv_any ifpresent, /* Display information, O, len=3-? */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=1-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent /* Redirect status, O, len=3 */ +} ifpresent; + +template CPG_OPTIONAL_PARAMS mw_CPG_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Call progress message (CPG) with 'any'-optional parameters */ +{ + causeIndicators := mw_CAUI_PAR_tlv_any ifpresent, /* Cause indicators, O, len=4-? */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + backwardCallIndicators := mw_BCI_PAR_tlv_any ifpresent, /* Backward call indicators, O, len=4 */ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=5-? */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + transmissionMediumUsed := mw_TMU_PAR_tlv_any ifpresent, /* Transmission medium used, O, len=3 */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callDiversionInformation := mw_CDI_PAR_tlv_any ifpresent, /* Call diversion information, O, len=3 */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + redirectionNumberRestriction := mw_RNS_PAR_tlv_any ifpresent, /* Redirection number restriction, O, len=3 */ + callTransferNumber := mw_CTN_PAR_tlv_any ifpresent, /* Call transfer number, O, len=4-? */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + connectedNumber := mw_CPN_PAR_tlv_any ifpresent, /* Connected number, O, len=4-? */ + backwardGVNS := mw_BGV_PAR_tlv_any ifpresent, /* Backward GVNS, O, len=3-? */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number2, O, len=5-? */ + callHistoryInformation := mw_CHI_PAR_tlv_any ifpresent, /* Call history information, O, len=4 */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + uIDActionIndicators := mw_UAI_PAR_tlv_any ifpresent, /* UID action indicators, O, len=3-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + cCNRPossibleIndicator := mw_CCPI_PAR_tlv_any ifpresent, /* CCNR possible indicator, O, len=3 */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent, /* Redirect status, O, len=3 */ + unknownParameter := omit /* Unknown Parameter */ +} ifpresent; + +template CON_OPTIONAL_PARAMS mw_CON_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Connect message (CON) with 'any'-optional parameters */ +{ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + backwardGVNS := mw_BGV_PAR_tlv_any ifpresent, /* Backward GVNS, O, len=3-? */ + connectedNumber := mw_CPN_PAR_tlv_any ifpresent, /* Connected number, O, len=4-? */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + transmissionMediumUsed := mw_TMU_PAR_tlv_any ifpresent, /* Transmission medium used, O, len=3 */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + callHistoryInformation := mw_CHI_PAR_tlv_any ifpresent, /* Call history information, O, len=4 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number2, O, len=5-? */ + redirectionNumberRestriction := mw_RNS_PAR_tlv_any ifpresent, /* Redirection number restriction, O, len=3 */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + hTRInformation := mw_HTRI_PAR_tlv_any ifpresent, /* HTR information, O, len=4-? */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent /* Redirect status, O, len=3 */ +} ifpresent; + +template FRJ_OPTIONAL_PARAMS mw_FRJ_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Facility reject message (FRJ) with 'any'-optional parameters */ +{ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent /* User-to-user indicators, O, len=3 */ +} ifpresent; + +template INF_OPTIONAL_PARAMS mw_INF_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Information message (INF) with 'any'-optional parameters */ +{ + callingPartysCategory := mw_CGC_PAR_tlv_any ifpresent, /* Calling party's category, O, len=3 */ + callingPartyNumber := mw_CGN_PAR_tlv_any ifpresent, /* Calling party number, O, len=4-? */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + connectionRequest := mw_CRQ_PAR_tlv_any ifpresent, /* Connection request, O, len=7-9 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent /* Network specific facility, O, len=4-? */ +} ifpresent; + +template INR_OPTIONAL_PARAMS mw_INR_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Information request message (INR) with 'any'-optional parameters */ +{ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent /* Parameter compatibility information, O, len=4-? */ +} ifpresent; + +template IAM_OPTIONAL_PARAMS mw_IAM_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Initial address message (IAM) with 'any'-optional parameters */ +{ + transitNetworkSelection := mw_TNS_PAR_tlv_any ifpresent, /* Transit network selection, O, len=4-? */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + callingPartyNumber := mw_CGN_PAR_tlv_any ifpresent, /* Calling party number, O, len=4-? */ + optionalForwardCallIndicators := mw_OFCI_PAR_tlv_any ifpresent, /* Optional forward call indicators, O, len=3 */ + redirectingNumber := mw_RDN_PAR_tlv_any ifpresent, /* Redirecting number, O, len=4-? */ + redirectionInformation := mw_RDI_PAR_tlv_any ifpresent, /* Redirection information, O, len=3-4 */ + closedUserGroupInterlockCode := mw_CUGIC_PAR_tlv_any ifpresent, /* Closed user group interlock code, O, len=6 */ + connectionRequest := mw_CRQ_PAR_tlv_any ifpresent, /* Connection request, O, len=7-9 */ + originalCalledNumber := mw_OCN_PAR_tlv_any ifpresent, /* Original called number, O, len=4-? */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + userServiceInformation := mw_USI_PAR_tlv_any ifpresent, /* User service information, O, len=4-13 */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number2, O, len=5-? */ + propagationDelayCounter := mw_PDC_PAR_tlv_any ifpresent, /* Propagation delay counter, O, len=4 */ + userServiceInformationPrime := mw_USIP_PAR_tlv_any ifpresent, /* User service information prime, O, len=4-13 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + genericDigits1 := mw_GDG_PAR_tlv_any ifpresent, /* Generic digits1, O, len=4-? */ + genericDigits2 := mw_GDG_PAR_tlv_any ifpresent, /* Generic digits2, O, len=4-? */ + originationISCPointCode := mw_OIPC_PAR_tlv_any ifpresent, /* Origination ISC point code, O, len=4 */ + userTeleserviceInformation := mw_UTSI_PAR_tlv_any ifpresent, /* User teleservice information, O, len=4-5 */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + mLPPPrecedence := mw_MLPP_PAR_tlv_any ifpresent, /* MLPP precedence, O, len=8 */ + transmissionMediumRequirementPrime := mw_TMRP_PAR_tlv_any ifpresent, /* Transmission medium requirement prime, O, len=3 */ + locationNumber := mw_LON_PAR_tlv_any ifpresent, /* Location number, O, len=4-? */ + forwardGVNS := mw_FGVNS_PAR_tlv_any ifpresent, /* Forward GVNS, O, len=5-26 */ + cCSS := mw_CCSS_PAR_tlv_any ifpresent, /* CCSS, O, len=3-? */ + networkManagementControls := mw_NMC_PAR_tlv_any ifpresent, /* Network management controls, O, len=3-? */ + circuitAssignmentMap := mw_CAM_PAR_tlv_any ifpresent, /* Circuit assignment map, O, len=6-7 */ + correlationId := mw_CRI_PAR_tlv_any ifpresent, /* Correlation id, O, len=3-? */ + callDiversionTreatmentIndicators := mw_CDTI_PAR_tlv_any ifpresent, /* Call diversion treatment indicators, O, len=3-? */ + calledINNumber := mw_CIN_PAR_tlv_any ifpresent, /* Called IN number, O, len=4-? */ + callOfferingTreatmentIndicators := mw_COTI_PAR_tlv_any ifpresent, /* Call offering treatment indicators, O, len=3-? */ + conferenceTreatmentIndicators := mw_CTI_PAR_tlv_any ifpresent, /* Conference treatment indicators, O, len=3-? */ + sCFId := mw_SCFI_PAR_tlv_any ifpresent, /* SCF id, O, len=3-? */ + uIDCapabilityIndicators := mw_UCI_PAR_tlv_any ifpresent, /* UID capability indicators, O, len=3-? */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent, /* Echo control information, O, len=3 */ + hopCounter := mw_HPC_PAR_tlv_any ifpresent, /* Hop counter, O, len=3 */ + collectCallRequest := mw_CCRQ_PAR_tlv_any ifpresent, /* Collect call request, O, len=3 */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter2, O, len=5-? */ + pivotCapability := mw_PICP_PAR_tlv_any ifpresent, /* Pivot capability, O, len=3 */ + calledDirectoryNumber := mw_CDIN_PAR_tlv_any ifpresent, /* Called directory number, O, len=5-? */ + originalCalledINNumber := mw_OCI_PAR_tlv_any ifpresent, /* Original called IN number, O, len=4-? */ + callingGeodeticLocation := mw_CGL_PAR_tlv_any ifpresent, /* Calling geodetic location, O, len=3-? */ + networkRoutingNumber := mw_NRN_PAR_tlv_any ifpresent, /* Network routing number, O, len=4-? */ + queryOnReleaseCapability := mw_QRC_PAR_tlv_any ifpresent, /* Query on release capability, O, len=3 */ + pivotCounter := mw_PICN_PAR_tlv_any ifpresent, /* Pivot counter, O, len=3 */ + pivotRoutingForwardInformation := mw_PRFI_PAR_tlv_any ifpresent, /* Pivot routing forward information, O, len=3-? */ + redirectCapability := mw_RCP_PAR_tlv_any ifpresent, /* Redirect capability, O, len=3 */ + redirectCounter := mw_RCN_PAR_tlv_any ifpresent, /* Redirect counter, O, len=3 */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent, /* Redirect status, O, len=3 */ + redirectForwardInformation := mw_RFI_PAR_tlv_any ifpresent, /* Redirect forward information, O, len=3-? */ + numberPortabilityForwardInformation := mw_NPFI_PAR_tlv_any ifpresent, /* Number portability forward information, O, len=1-? */ + automaticReRouting := mw_ARR_PAR_tlv_any ifpresent /* Automatic re-routing, O, len=4-? */ +} + +template REL_OPTIONAL_PARAMS mw_REL_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Release message (REL) with 'any'-optional parameters */ +{ + redirectionInformation := mw_RDI_PAR_tlv_any ifpresent, /* Redirection information, O, len=3-4 */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=5-? */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + signallingPointCode := mw_SPC_PAR_tlv_any ifpresent, /* Signalling point code, O, len=4 */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + automaticCongestionLevel := mw_ACL_PAR_tlv_any ifpresent, /* Automatic congestion level, O, len=3 */ + networkSpecificFacility := mw_NSF_PAR_tlv_any ifpresent, /* Network specific facility, O, len=4-? */ + accessDeliveryInformation := mw_ADI_PAR_tlv_any ifpresent, /* Access delivery information, O, len=3 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + displayInformation := mw_DIF_PAR_tlv_any ifpresent, /* Display information, O, len=3-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + hTRInformation := mw_HTRI_PAR_tlv_any ifpresent, /* HTR information, O, len=4-? */ + redirectCounter := mw_RCN_PAR_tlv_any ifpresent, /* Redirect counter, O, len=3 */ + redirectBackwardInformation := mw_RBI_PAR_tlv_any ifpresent /* Redirect backward information, O, len=3-? */ +} ifpresent; + +template RLC_OPTIONAL_PARAMS mw_RLC_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Release complete message (RLC) with 'any'-optional parameters */ +{ + causeIndicators := mw_CAUI_PAR_tlv_any ifpresent /* Cause indicators, O, len=5-6 */ +} ifpresent; + +template UUI_OPTIONAL_PARAMS mw_UUI_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of User-to-user information message (UUI) with 'any'-optional parameters */ +{ + accessTransport := mw_ATP_PAR_tlv_any ifpresent /* Access transport, O, len=3-? */ +} ifpresent; + +template FTR_OPTIONAL_PARAMS mw_FTR_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Forward transfer message (FTR) with 'any'-optional parameters */ +{ + callReference := mw_CRF_PAR_tlv_any ifpresent /* Call reference, O, len=7 */ +} ifpresent; + +template SUS_OPTIONAL_PARAMS mw_SUS_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Suspend message (SUS) with 'any'-optional parameters */ +{ + callReference := mw_CRF_PAR_tlv_any ifpresent /* Call reference, O, len=7 */ +} ifpresent; + +template RES_OPTIONAL_PARAMS mw_RES_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Resume message (RES) with 'any'-optional parameters */ +{ + callReference := mw_CRF_PAR_tlv_any ifpresent /* Call reference, O, len=7 */ +} ifpresent; + +template FAA_OPTIONAL_PARAMS mw_FAA_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Facility accepted message (FAA) with 'any'-optional parameters */ +{ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + connectionRequest := mw_CRQ_PAR_tlv_any ifpresent, /* Connection request, O, len=7-9 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent /* Parameter compatibility information, O, len=4-? */ +} ifpresent; + +template FAR_OPTIONAL_PARAMS mw_FAR_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Facility request message (FAR) with 'any'-optional parameters */ +{ + userToUserIndicators := mw_UUID_PAR_tlv_any ifpresent, /* User-to-user indicators, O, len=3 */ + callReference := mw_CRF_PAR_tlv_any ifpresent, /* Call reference, O, len=7 */ + connectionRequest := mw_CRQ_PAR_tlv_any ifpresent, /* Connection request, O, len=7-9 */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent /* Parameter compatibility information, O, len=4-? */ +} ifpresent; + +template UPT_OPTIONAL_PARAMS mw_UPT_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of User Part test message (UPT) with 'any'-optional parameters */ +{ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent /* Parameter compatibility information, O, len=4-? */ +} ifpresent; + +template UPA_OPTIONAL_PARAMS mw_UPA_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of User Part available message (UPA) with 'any'-optional parameters */ +{ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent /* Parameter compatibility information, O, len=4-? */ +} ifpresent; + +template FAC_OPTIONAL_PARAMS mw_FAC_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Facility message (FAC) with 'any'-optional parameters */ +{ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + remoteOperations := mw_ROP_PAR_tlv_any ifpresent, /* Remote operations, O, len=8-? */ + serviceActivation := mw_SAC_PAR_tlv_any ifpresent, /* Service activation, O, len=3-? */ + callTransferNumber := mw_CTN_PAR_tlv_any ifpresent, /* Call transfer number, O, len=4-? */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + redirectionNumber := mw_RNN_PAR_tlv_any ifpresent, /* Redirection number, O, len=4-? */ + pivotRoutingIndicators := mw_PRI_PAR_tlv_any ifpresent, /* Pivot routing indicators, O, len=3 */ + pivotStatus := mw_PST_PAR_tlv_any ifpresent, /* Pivot status, O, len=3 */ + pivotCounter := mw_PICN_PAR_tlv_any ifpresent, /* Pivot counter, O, len=3 */ + pivotRoutingBackwardInformation := mw_PRBI_PAR_tlv_any ifpresent, /* Pivot routing backward information, O, len=3-? */ + redirectStatus := mw_RST_PAR_tlv_any ifpresent /* Redirect status, O, len=3-? */ +} ifpresent; + +template NRM_OPTIONAL_PARAMS mw_NRM_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Network resource management message (NRM) with 'any'-optional parameters */ +{ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + echoControlInformation := mw_ECI_PAR_tlv_any ifpresent /* Echo control information, O, len=3 */ +} ifpresent; + +template IDR_OPTIONAL_PARAMS mw_IDR_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Identification request message (IDR) with 'any'-optional parameters */ +{ + mCIDRequestIndicators := mw_MCRI_PAR_tlv_any ifpresent, /* MCID request indicators, O, len=3 */ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent /* Parameter compatibility information, O, len=4-? */ +} ifpresent; + +template IRS_OPTIONAL_PARAMS mw_IRS_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Identification response message (IRS) with 'any'-optional parameters */ +{ + mCIDResponseIndicators := mw_MCRS_PAR_tlv_any ifpresent, /* MCID response indicators, O, len=3 */ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callingPartyNumber := mw_CGN_PAR_tlv_any ifpresent, /* Calling party number, O, len=4-? */ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent /* Generic number2, O, len=5-? */ +} ifpresent; + +template SEG_OPTIONAL_PARAMS mw_SEG_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Segmentation message (SEG) with 'any'-optional parameters */ +{ + accessTransport := mw_ATP_PAR_tlv_any ifpresent, /* Access transport, O, len=3-? */ + userToUserInformation := mw_UUIF_PAR_tlv_any ifpresent, /* User-to-user information, O, len=3-131 */ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + genericDigits1 := mw_GDG_PAR_tlv_any ifpresent, /* Generic digits1, O, len=4-? */ + genericDigits2 := mw_GDG_PAR_tlv_any ifpresent, /* Generic digits2, O, len=4-? */ + genericNotificationIndicator1 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator1, O, len=3 */ + genericNotificationIndicator2 := mw_GNI_PAR_tlv_any ifpresent, /* Generic notification indicator2, O, len=3 */ + genericNumber1 := mw_GNU_PAR_tlv_any ifpresent, /* Generic number1, O, len=5-? */ + genericNumber2 := mw_GNU_PAR_tlv_any ifpresent /* Generic number2, O, len=5-? */ +} ifpresent; + +template LOP_OPTIONAL_PARAMS mw_LOP_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Loop prevention message (LOP) with 'any'-optional parameters */ +{ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + callTransferReference := mw_CTR_PAR_tlv_any ifpresent, /* Call transfer reference, O, len=3 */ + loopPreventionIndicators := mw_LPPI_PAR_tlv_any ifpresent /* Loop prevention indicators, O, len=3 */ +} ifpresent; + +template APM_OPTIONAL_PARAMS mw_APM_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Application transport message (APM) with 'any'-optional parameters */ +{ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent /* Application transport parameter2, O, len=5-? */ +} ifpresent; + +template PRI_OPTIONAL_PARAMS mw_PRI_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Pre-release information message (PRI) with 'any'-optional parameters */ +{ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent, /* Message compatibility information, O, len=3-? */ + parameterCompatibilityInformation := mw_PCI_PAR_tlv_any ifpresent, /* Parameter compatibility information, O, len=4-? */ + optionalForwardCallIndicators := mw_OFCI_PAR_tlv_any ifpresent, /* Optional forward call indicators, O, len=3 */ + optionalBackwardCallIndicators := mw_OBCI_PAR_tlv_any ifpresent, /* Optional backward call indicators, O, len=3 */ + applicationTransportParameter1 := mw_APP_PAR_tlv_any ifpresent, /* Application transport parameter1, O, len=5-? */ + applicationTransportParameter2 := mw_APP_PAR_tlv_any ifpresent /* Application transport parameter2, O, len=5-? */ +} ifpresent; + +template SDN_OPTIONAL_PARAMS mw_SDN_OPTIONAL_PARAMS_any := +/* RX template for SET: optional parameters of Subsequent Directory Number message (SDN) with 'any'-optional parameters */ +{ + subsequentNumber := mw_SNN_PAR_tlv_any ifpresent, /* Subsequent number, O, len=4-? */ + messageCompatibilityInformation := mw_MCI_PAR_tlv_any ifpresent /* Message compatibility information, O, len=4-? */ +} ifpresent; + +template ADI_PAR_tlv mw_ADI_PAR_tlv_any := +/* Default RX template for type ADI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101110'B, /* Parameter Type '00101110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + accessDeliveryIndicator := ?, /* bit A: Access delivery indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template ATP_PAR_tlv mw_ATP_PAR_tlv_any := +/* Default RX template for type ATP_PAR_tlv with wildcards for simple types */ +{ + paramType := '00000011'B, /* Parameter Type '00000011'B */ + paramLen := ?, /* Parameter Length field */ + informationElements := { anyInformationElements := ? } /* Any Q.931 information elements */ +} + +template ACL_PAR_tlv mw_ACL_PAR_tlv_any := +/* Default RX template for type ACL_PAR_tlv with wildcards for simple types */ +{ + paramType := '00100111'B, /* Parameter Type '00100111'B */ + paramLen := '00000001'B, /* Parameter Length field */ + automaticCongestionLevel := ? /* Automatic congestion level */ +} + +template BCI_PAR_v mw_BCI_PAR_v_any := +/* Default RX template for type BCI_PAR_v with wildcards for simple types */ +{ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := ?, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := ?, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := ?, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := ?, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := ?, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template BCI_PAR_tlv mw_BCI_PAR_tlv_any := +/* Default RX template for type BCI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00010001'B, /* Parameter Type '00010001'B */ + paramLen := '00000010'B, /* Parameter Length field */ + chargeIndicator := ?, /* bits BA : Charge indicator (Note 1) */ + calledPartysStatusIndicator := ?, /* bits DC : Called party's status indicator */ + calledPartysCategoryIndicator := ?, /* bits FE : Called party's category indicator */ + end_to_endMethodIndicator := ?, /* bits HG : End-to-end method indicator (Note 2) */ + interworkingIndicator := ?, /* bit I: Interworking indicator (Note 2) */ + end_to_endInformationIndicator := ?, /* bit J: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := ?, /* bit K: ISDN user part indicator (Note 2) */ + holdingIndicator := ?, /* bit L: Holding indicator (national use) */ + iSDNAccessIndicator := ?, /* bit M: ISDN access indicator */ + echoControlDeviceIndicator := ?, /* bit N: Echo control device indicator */ + sCCPMethodIndicator := ? /* bits PO: SCCP method indicator (Note 2) */ +} + +template CDI_PAR_tlv mw_CDI_PAR_tlv_any := +/* Default RX template for type CDI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110110'B, /* Parameter Type '00110110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + notificationSubscriptionOptions := ?, /* bits CBA: Notification subscription options */ + redirectingReason := ?, /* bits GFED: Redirecting reason */ + spare := '0'B /* bit H: spare */ +} + +template CHI_PAR_tlv mw_CHI_PAR_tlv_any := +/* Default RX template for type CHI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101101'B, /* Parameter Type '00101101'B */ + paramLen := '00000010'B, /* Parameter Length field */ + propagationDelayValue := ? /* Propagation delay value */ +} + +template CRF_PAR_tlv mw_CRF_PAR_tlv_any := +/* Default RX template for type CRF_PAR_tlv with wildcards for simple types */ +{ + paramType := '00000001'B, /* Parameter Type '00000001'B */ + paramLen := '00000101'B, /* Parameter Length field */ + callIdentity := ?, /* Call identity */ + signallingPointCode := ?, /* Signalling point code */ + spare := '00'B /* spare */ +} + +template CDN_PAR_lv mw_CDN_PAR_lv_any := +/* Default RX template for type CDN_PAR_lv with wildcards for simple types */ +{ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* OE */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + iNN := ?, /* Internal Network Number indicator */ + addressSignals := ? /* address signals */ +} + +template CGN_PAR_tlv mw_CGN_PAR_tlv_any := +/* Default RX template for type CGN_PAR_tlv with wildcards for simple types */ +{ + paramType := '00001010'B, /* Parameter Type '00001010'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* OE */ + screeningIndicator :=?, /* Screening indicator */ + addrPresRestrInd :=?, /* Address presentation restricted indicator (NOTE) */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + nII := ?, /* Number Incomplete Indicator */ + addressSignals := * /* address signals */ +} + +template CGC_PAR_tlv mw_CGC_PAR_tlv_any := +/* Default RX template for type CGC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00001001'B, /* Parameter Type '00110101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + callingPartysCategory := ? /* Calling party's category */ +} + +template CAUI_PAR_lv mw_CAUI_PAR_lv_any := +/* Default RX template for type CAUI_PAR_lv with wildcards for simple types */ +{ + paramLen := ?, /* Parameter Length field */ + location := ?, /* location */ + spare := '0'B, /* spare */ + codingStandard := ?, /* codingStandard */ + ext1 := ?, /* Extension */ + causeValue := ?, /* Cause value */ + ext2 := ?, /* Extension */ + diagnostics := * /* Diagnostic(s) (if any) */ +} + +template CAUI_PAR_tlv mw_CAUI_PAR_tlv_any := +/* Default RX template for type CAUI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00010010'B, /* Parameter Type '00010010'B */ + paramLen := ?, /* Parameter Length field */ + location := ?, /* location */ + spare := '0'B, /* spare */ + codingStandard := ?, /* codingStandard */ + ext1 := ?, /* Extension */ + causeValue := ?, /* Cause value */ + ext2 := ?, /* Extension */ + diagnostics := * /* Diagnostic(s) (if any) */ +} + +template CGSM_PAR_v mw_CGSM_PAR_v_any := +/* Default RX template for type CGSM_PAR_v with wildcards for simple types */ +{ + cgSupervMTypeIndicator := ?, /* bits BA: Circuit group supervision message type indicator */ + spare := '000000'B /* bits H-C: spare */ +} + +template CSI_PAR_lv mw_CSI_PAR_lv_any := +/* Default RX template for type CSI_PAR_lv with wildcards for simple types */ +{ + paramLen := ?, /* Parameter Length field */ + //circuitIndicators := superset({mw_CircuitIndicator_any}) + circuitIndicators := {*, mw_CircuitIndicator_any} +} + +template CircuitIndicator mw_CircuitIndicator_any := +/* Default RX template for type CircuitIndicator with wildcards for simple types */ +{ + maintenanceBlockingState := ?, /* bits BA: Maintenance blocking state */ + callProcessingState := ?, /* bits DC: Call processing state */ + hardwareBlockingState := ?, /* bits F E: Hardware blocking state (Note) */ + spare := '00'B /* bits H-G: spare */ +} + +template CUGIC_PAR_tlv mw_CUGIC_PAR_tlv_any := +/* Default RX template for type CUGIC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00011010'B, /* Parameter Type '00011010'B */ + paramLen := '00000100'B, /* Parameter Length field */ + networkIdentity := ?, /* a) Network Identity (NI) (octets 1 and 2) */ + binaryCode := ? /* Binary code */ +} + +template CPN_PAR_tlv mw_CPN_PAR_tlv_any := +/* Default RX template for type CPN_PAR_tlv with wildcards for simple types */ +{ + paramType := '00100001'B, /* Parameter Type '00100001'B */ + paramLen := ?, /* Parameter Length field */ + natureOfaddressindicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + screeningIndicator := ?, /* Screening indicator */ + addrPresRestrInd := ?, /* Address presentation restricted indicator (NOTE) */ + numberingplanIndicator := ?, /* Numberingplan indicator */ + spare := '0'B, /* spare */ + addressSignals := * /* address signals */ +} + +template CRQ_PAR_tlv mw_CRQ_PAR_tlv_any := +/* Default RX template for type CRQ_PAR_tlv with wildcards for simple types */ +{ + paramType := '00001101'B, /* Parameter Type '00001101'B */ + paramLen := ?, /* Parameter Length field */ + localReference := ?, /* Local reference */ + signallingPointCode := ?, /* Signalling point code */ + spare := '00'B, /* spare */ + protocolClass := *, /* Protocol class */ + credit := * /* Credit */ +} + +template COI_PAR_v mw_COI_PAR_v_any := +/* Default RX template for type COI_PAR_v with wildcards for simple types */ +{ + continuityIndicator := ?, /* bit A: Continuity indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template ECI_PAR_tlv mw_ECI_PAR_tlv_any := +/* Default RX template for type ECI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110111'B, /* Parameter Type '00110111'B */ + paramLen := '00000001'B, /* Parameter Length field */ + outgECDeviceInfoInd := ?, /* bits BA: Outgoing echo control device information indicator */ + incECDeviceInfoInd := ?, /* bits DC: Incoming echo control device information indicator */ + outgECDeviceReqInd := ?, /* bits FE : Outgoing echo control device request indicator */ + IncECDeviceReqInd := ? /* bits HG: Incoming echo control device request indicator */ +} + +template EIF_PAR_v mw_EIF_PAR_v_any := +/* Default RX template for type EIF_PAR_v with wildcards for simple types */ +{ + eventIndicator := ?, /* bits G F E D C B A: Event indicator */ + eventPresRestrInd := ? /* bit H: Event presentation restricted indicator (national use) */ +} + +template FCI_PAR_v mw_FCI_PAR_v_any := +/* Default RX template for type FCI_PAR_v with wildcards for simple types */ +{ + natInternatCallIndicator := ?, /* bit A: National/international call indicator (Note 1) */ + endToEndMethodIndicator := ?, /* bits CB: End-to-end method indicator (Note 2) */ + interworkingIndicator := ?, /* bit D: Interworking indicator (Note 2) */ + endToEndInfoIndicator := ?, /* bit E: End-to-end information indicator (national use) (Note 2) */ + iSDNUserPartIndicator := ?, /* bit F: ISDN user part indicator (Note 2) */ + iSDNUserPartPrefIndicator := ?, /* bits HG: ISDN user part preference indicator */ + iSDNAccessIndicator := ?, /* bit I: ISDN access indicator */ + sCCPMethodIndicator := ?, /* bits KJ: SCCP method indicator (Note 2) */ + spare := '0'B, /* bit L: spare */ + reserved := ? /* bits P-M: reserved for national use */ +} + +template GDG_PAR_tlv mw_GDG_PAR_tlv_any := +/* Default RX template for type GDG_PAR_tlv with wildcards for simple types */ +{ + paramType := '11000001'B, /* Parameter Type '11000001'B */ + paramLen := ?, /* Parameter Length field */ + typeOfDigits := ?, /* Encoding scheme Type of digits */ + encodingScheme := ?, /* Encoding scheme Type of digits */ + digits := ? /* Digits */ +} + +template GNI_PAR_tlv mw_GNI_PAR_tlv_any := +/* Default RX template for type GNI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101100'B, /* Parameter Type '00101100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + notificationIndicator := ?, /* Notification indicator */ + ext := ? /* Extension */ +} + +template GNU_PAR_tlv mw_GNU_PAR_tlv_any := +/* Default RX template for type GNU_PAR_tlv with wildcards for simple types */ +{ + paramType := '11000000'B, /* Parameter Type '11000000'B */ + paramLen := ?, /* Parameter Length field */ + numberQualifierIndicator := ?, /* Number qualifier indicator */ + natureOfAddressIndicator := ?, /* Nature of address indicator (NOTE 1) */ + oddEven := ?, /* O/E */ + screeningIndicator := ?, /* Screening indicator (NOTE 4) */ + addrPresRestrInd := ?, /* Address presentation restricted indicator (NOTE 3) */ + numberingPlanIndicator := ?, /* Numbering plan indicator (NOTE 2) */ + nI := ?, /* Number incomplete indicator */ + addressSignals := * /* address signals */ +} + +template IID_PAR_v mw_IID_PAR_v_any := +/* Default RX template for type IID_PAR_v with wildcards for simple types */ +{ + cliAddrResponseIndicator := ?, /* bits BA: Calling party address response indicator */ + holdProvidedIndicator := ?, /* bit C: Hold provided indicator */ + spare1 := '00'B, /* bits ED: spare */ + cliCatRespIndicator := ?, /* bit F: Calling party's category response indicator */ + chargeInfoRespIndicator := ?, /* bit G: Charge information response indicator */ + solicitedInfoIndicator := ?, /* bit H: Solicited information indicator */ + spare2 := '0000'B, /* bits L-I: spare */ + reserved := ? /* bits P-M: reserved */ +} + +template IRI_PAR_v mw_IRI_PAR_v_any := +/* Default RX template for type IRI_PAR_v with wildcards for simple types */ +{ + cliAddrRequestIndicator := ?, /* bit A: Calling party address request indicator */ + holdingIndicator := ?, /* bit B: Holding indicator */ + spare1 := '0'B, /* bit C: spare */ + cliCatRequestIndicator := ?, /* bit D: Calling party's category request indicator */ + chargeInfoRequestIndicator := ?, /* bit E: Charge information request indicator */ + spare2 := '00'B, /* bits GF: spare */ + maliciousCidReqIndicator := ?, /* bit H: Malicious call identification request indicator (reserved, used in ISUP'88 Blue Book) */ + spare3 := '0000'B, /* bits L-I: spare */ + reserved := ? /* bits P-M: reserved */ +} + +template LON_PAR_tlv mw_LON_PAR_tlv_any := +/* Default RX template for type LON_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111111'B, /* Parameter Type '00111111'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + screeningIndicator := ?, /* Screening indicator */ + addrPresRestrInd := ?, /* Address presentation restricted indicator (NOTE ) */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + iNN := ?, /* Internal Network Number indicator */ + addressSignals := * /* address signals */ +} + +template MCRI_PAR_tlv mw_MCRI_PAR_tlv_any := +/* Default RX template for type MCRI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111011'B, /* Parameter Type '00111011'B */ + paramLen := '00000001'B, /* Parameter Length field */ + mCIDRequestIndicator := ?, /* bit A: MCID request indicator */ + holdingIndicator := ?, /* bit B: Holding indicator (national use) */ + spare := '000000'B /* bits H-C: spare */ +} + +template MCRS_PAR_tlv mw_MCRS_PAR_tlv_any := +/* Default RX template for type MCRS_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111100'B, /* Parameter Type '00111100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + mCIDResponseIndicator := ?, /* bit A: MCID response indicator */ + holdProvidedIndicator := ?, /* bit B: Hold provided indicator (national use) */ + spare := '000000'B /* bits H-C: spare */ +} + +template MCI_PAR_tlv mw_MCI_PAR_tlv_any := +/* Default RX template for type MCI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111000'B, /* Parameter Type '00111000'B */ + paramLen := ?, /* Parameter Length field */ + instructionIndicators := ? //superset({mw_InstructionIndicator_any}) +} + +template InstructionIndicator mw_InstructionIndicator_any := +/* Default RX template for type InstructionIndicator with wildcards for simple types */ +{ + transitAtIntermExchIndicator := ?, /* bit A: Transit at intermediate exchange indicator */ + releaseCallIndicator := ?, /* bit B: Release call indicator */ + sendNotificationIndicator := ?, /* bit C: Send notification indicator */ + discardMessageIndicator := ?, /* bit D: Discard message indicator */ + passOnNotPossibleIndicator := ?, /* bit E: Pass on not possible indicator */ + broadNarrowBandInterwIndicator := ?, /* bits G F: Broadband/narrowband interworking indicator */ + ext := ? /* extension bit */ +} + +template MLPP_PAR_tlv mw_MLPP_PAR_tlv_any := +/* Default RX template for type MLPP_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111010'B, /* Parameter Type '00111010'B */ + paramLen := '00000110'B, /* Parameter Length field */ + precedenceLevel := ?, /* Precedence level */ + spare1 := '0'B, /* spare */ + lFB := ?, /* LFB (look ahead for busy) */ + spare2 := '0'B, /* spare */ + networkIdentity := ?, /* Network Identity (NI) octet 2 and 3 */ + mLppServiceDomain := ? /* MLPP service domain */ +} + +template NCI_PAR_v mw_NCI_PAR_v_any := +/* Default RX template for type NCI_PAR_v with wildcards for simple types */ +{ + satelliteIndicator := ?, /* bits BA: Satellite indicator */ + continuityCheckIndicator := ?, /* bits DC: Continuity check indicator */ + echoControlDeviceIndicator := ?, /* bit E: Echo control device indicator */ + spare := '000'B /* bits H-F: spare */ +} + +template NSF_PAR_tlv mw_NSF_PAR_tlv_any := +/* Default RX template for type NSF_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101111'B, /* Parameter Type '00101111'B */ + paramLen := ?, /* Parameter Length field */ + networkSpecific := ? /* Network identification */ +} + +template OBCI_PAR_tlv mw_OBCI_PAR_tlv_any := +/* Default RX template for type OBCI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101001'B, /* Parameter Type '00101001'B */ + paramLen := '00000001'B, /* Parameter Length field */ + inBandInformationIndicator := ?, /* bit A: In-band information indicator */ + callDivMayOccurIndicator := ?, /* bit B: Call diversion may occur indicator */ + simpleSegmentationIndicator := ?, /* bit C: Simple segmentation indicator */ + mLPPUserIndicator := ?, /* bit D: MLPP user indicator */ + reserved := ? /* bits H-E: reserved for national use */ +} + +template OFCI_PAR_tlv mw_OFCI_PAR_tlv_any := +/* Default RX template for type OFCI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00001000'B, /* Parameter Type '00001000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + cUGCallIndicator := ?, /* bits BA: Closed user group call indicator */ + simpleSegIndicator := ?, /* bit C: Simple segmentation indicator */ + spare := '0000'B, /* bits G-D: spare */ + cLIRequestIndicator := ? /* bit H: Connected line identity request indicator */ +} + +template OCN_PAR_tlv mw_OCN_PAR_tlv_any := +/* Default RX template for type OCN_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101000'B, /* Parameter Type '00101000'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare1 := '00'B, /* spare */ + addrPresRestrInd := ?, /* Address presentation restricted indicator */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := * /* address signals */ +} + +template OIPC_PAR_tlv mw_OIPC_PAR_tlv_any := +/* Default RX template for type OIPC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101011'B, /* Parameter Type '00101011'B */ + paramLen := '00000010'B, /* Parameter Length field */ + signallingPointCode := ?, /* Signalling point code */ + spare := '00'B /* spare */ +} + +template PCI_PAR_tlv mw_PCI_PAR_tlv_any := +/* Default RX template for type PCI_PAR_tlv with 'any' template values for structured types, and wildcards for simple types */ +{ + paramType := '00111001'B, /* Parameter Type '00111001'B */ + paramLen := ?, /* Parameter Length field */ + parameterInstructionIndicators := {mw_ParameterInstructionIndicator_any} +} + +template ParameterInstructionIndicator mw_ParameterInstructionIndicator_any := +/* Default RX template for type ParameterInstructionIndicator with wildcards for simple types */ +{ + upgradedParameter := ?, /* upgraded parameter name */ + transitAtIntermExchIndicator := ?, /* bit A: Transit at intermediate exchange indicator */ + releaseCallIndicator := ?, /* bit B: Release call indicator */ + sendNotificationIndicator := ?, /* bit C: Send notification indicator */ + discardMessageIndicator := ?, /* bit D: Discard message indicator */ + discardParameterIndicator := ?, /* bit E: Discard parameter indicator */ + passOnNotPossibleIndicator := ?, /* bits G F: Pass on not possible indicator */ + ext := ?, /* c: Extension indicator (ext.) */ + broadNarrowBandInterwIndicator := *, /* bits J I: Broadband/narrowband interworking indicator */ + spare := *, /* bits O-K: spare */ + moreInstructionIndicators := * /* to be defined when required */ +} + +template PDC_PAR_tlv mw_PDC_PAR_tlv_any := +/* Default RX template for type PDC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110001'B, /* Parameter Type '00110001'B */ + paramLen := '00000010'B, /* Parameter Length field */ + propagationDelayValue := ? /* Propagation delay value */ +} + +template RAS_PAR_lv mw_RAS_PAR_lv_any := +/* Default RX template for type RAS_PAR_lv with wildcards for simple types */ +{ + paramLen := ?, /* Parameter Length field */ + range := ?, /* Range */ + status := ? /* Status */ +} + +template RDN_PAR_tlv mw_RDN_PAR_tlv_any := +/* Default RX template for type RDN_PAR_tlv with wildcards for simple types */ +{ + paramType := '00001011'B, /* Parameter Type '00001011'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare1 := '00'B, /* spare */ + addrPresRestrInd := ?, /* Address presentation restricted indicator */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := * /* address signals */ +} + +template RDI_PAR_tlv mw_RDI_PAR_tlv_any := +/* Default RX template for type RDI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00010011'B, /* Parameter Type '00010011'B */ + paramLen := '00000010'B, /* Parameter Length field */ + redirectingIndicator := ?, /* bits CBA: Redirecting indicator */ + spare := '0'B, /* Bit D: spare */ + originalRedirectionReason := ?, /* bits H G F E: Original redirection reason */ + redirectionCounter := ?, /* bits K J I: Redirection counter */ + reserved := ?, /* bit L: reserved for national use */ + redirectingReason := ? /* bits PONM: Redirecting reason */ +} + +template RNN_PAR_tlv mw_RNN_PAR_tlv_any := +/* Default RX template for type RNN_PAR_tlv with wildcards for simple types */ +{ + paramType := '00001100'B, /* Parameter Type '00001100'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + iNN := ?, /* Internal Network Number indicator */ + addressSignals := * /* address signals */ +} + +template RNS_PAR_tlv mw_RNS_PAR_tlv_any := +/* Default RX template for type RNS_PAR_tlv with wildcards for simple types */ +{ + paramType := '01000000'B, /* Parameter Type '01000000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + presRestrIndicator := ?, /* bits BA: Presentation restricted indicator */ + spare := '000000'B /* bits H-C: spare */ +} + +template ROP_PAR_tlv mw_ROP_PAR_tlv_any := +/* Default RX template for type ROP_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110010'B, /* Parameter Type '00110010'B */ + paramLen := ?, /* Parameter Length field */ + protocolProfile := ?, /* Protocol profile */ + spare := '00'B, /* spare */ + ext := ?, /* Extension */ + components := ? /* ASN.1 components */ +} + +template SAC_PAR_tlv mw_SAC_PAR_tlv_any := +/* Default RX template for type SAC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110011'B, /* Parameter Type '00110011'B */ + paramLen := ?, /* Parameter Length field */ + featureCodes := ? /* Feature codes */ +} + +template SPC_PAR_tlv mw_SPC_PAR_tlv_any := +/* Default RX template for type SPC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00011110'B, /* Parameter Type '00011110'B */ + paramLen := '00000010'B, /* Parameter Length field */ + signallingPointCode := ?, /* Signalling point code */ + spare := '00'B /* spare */ +} + +template SNN_PAR_tlv mw_SNN_PAR_tlv_any := +/* Default RX template for type SNN_PAR_tlv with wildcards for simple types */ +{ + paramType := '00000101'B, /* Parameter Type '00000101'B */ + paramLen := ?, /* Parameter Length field */ + spare := '0000000'B, /* spare */ + oddEven := ?, /* O/E */ + addressSignals := ? /* address signals */ +} + +template SRI_PAR_v mw_SRI_PAR_v_any := +/* Default RX template for type SRI_PAR_v with wildcards for simple types */ +{ + suspendResumeIndicator := ?, /* bit A: Suspend/resume indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template TNS_PAR_tlv mw_TNS_PAR_tlv_any := +/* Default RX template for type TNS_PAR_tlv with wildcards for simple types */ +{ + paramType := '00100011'B, /* Parameter Type '00100011'B */ + paramLen := ?, /* Parameter Length field */ + networkIdentificationPlan := ?, /* Network identification plan */ + typeOfNetworkIdentification := ?, /* Type of network identification */ + oddEven := ?, /* O/E */ + networkIdentification := ? /* Network identification */ +} + +template TMRP_PAR_tlv mw_TMRP_PAR_tlv_any := +/* Default RX template for type TMRP_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111110'B, /* Parameter Type '00111110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + transmissionMediumRequirement := ? /* Transmission medium requirement */ +} + +template TMU_PAR_tlv mw_TMU_PAR_tlv_any := +/* Default RX template for type TMU_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110101'B, /* Parameter Type '00110101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + transmissionMediumUsed := ? /* Transmission medium used */ +} + +template USI_PAR_tlv mw_USI_PAR_tlv_any := +/* Default RX template for type USI_PAR_tlv with 'any' template values for structured types, and wildcards for simple types */ +{ + paramType := '00011101'B, /* Parameter Type '00011101'B */ + paramLen := ?, /* Parameter Length field */ + uSIContents := mw_USIContents_any +} + +template USIContents mw_USIContents_any := +/* Default RX template for type USIContents with 'any' template values for structured types, and wildcards for simple types */ +{ + bCAP_octet3 := mw_BCAP_octet3_any, + bCAP_octet4 := mw_BCAP_octet4_any, + bCAP_octet5 := mw_BCAP_octet5_any ifpresent, + bCAP_octet6 := mw_BCAP_octet6_any ifpresent, + bCAP_octet7 := mw_BCAP_octet7_any ifpresent +} + +template BCAP_octet3 mw_BCAP_octet3_any := +/* Default RX template for type BCAP_octet3 with wildcards for simple types */ +{ + informationTransferCapability := ?, /* Information transfer capability */ + codingStandard := ?, /* Coding standard */ + ext := ? /* Extension */ +} + +template BCAP_octet4 mw_BCAP_octet4_any := +/* Default RX template for type BCAP_octet4 with wildcards for simple types */ +{ + informationTransferRate := ?, /* Information transfer rate */ + transferMode := ?, /* Transfer mode */ + ext := ?, /* Extension */ + rateMultiplier := * /* Rate multiplier */ +} + +template BCAP_octet5 mw_BCAP_octet5_any := +/* Default RX template for type BCAP_octet5 with 'any' template values for structured types, and wildcards for simple types */ +{ + userInformationLayer1Protocol := ?, /* User information Layer 1 protocol */ + layerIdentification := ?, /* Layer identification */ + ext := ?, /* Extension */ + bCAP_octet5a := mw_BCAP_octet5a_any ifpresent, + bCAP_octet5b1 := mw_BCAP_octet5b1_any ifpresent, + bCAP_octet5b2 := mw_BCAP_octet5b2_any ifpresent, + bCAP_octet5c := mw_BCAP_octet5c_any ifpresent, + bCAP_octet5d := mw_BCAP_octet5d_any ifpresent +} + +template BCAP_octet5a mw_BCAP_octet5a_any := +/* Default RX template for type BCAP_octet5a with wildcards for simple types */ +{ + userRate := ?, /* User rate */ + negot := ?, /* Negotiation */ + synch_asynch := ?, /* Synchronous/asynchronous */ + ext := ? /* Extension */ +} + +template BCAP_octet5b1 mw_BCAP_octet5b1_any := +/* Default RX template for type BCAP_octet5b1 with wildcards for simple types */ +{ + spare := '0'B, /* Spare */ + flowControlOnRx := ?, /* Flow control on reception (Rx) */ + flowControlOnTx := ?, /* Flow control on transmission (Tx) */ + nICOnRx := ?, /* Network independent Clock (NIC) on reception (Rx) */ + nICOnTx := ?, /* Network independent Clock (NIC) on transmission (Tx) */ + intermediateRate := ?, /* Intermediate rate */ + ext := ? /* Extension */ +} + +template BCAP_octet5b2 mw_BCAP_octet5b2_any := +/* Default RX template for type BCAP_octet5b2 with wildcards for simple types */ +{ + spare := '0'B, /* Spare */ + inbandOutbandNegotiation := ?, /* In-band/out-band negotiation */ + assignorAssignee := ?, /* Assignor/assignee */ + lLINegotiation := ?, /* Logical link identifier negotiation */ + mode := ?, /* Mode of operation */ + multiFrameSupport := ?, /* Multiple frame establishment support in data link */ + hdrNoHdr := ?, /* rate addaption header/no header */ + ext := ? /* Extension */ +} + +template BCAP_octet5c mw_BCAP_octet5c_any := +/* Default RX template for type BCAP_octet5c with wildcards for simple types */ +{ + parity := ?, /* Parity information */ + numberOfDataBits := ?, /* Number of data bits excluding parity bit if present*/ + numberOfStopBits := ?, /* Number of stop bits */ + ext := ? /* Extension */ +} + +template BCAP_octet5d mw_BCAP_octet5d_any := +/* Default RX template for type BCAP_octet5d with wildcards for simple types */ +{ + modemType := ?, /* Modem type */ + duplexMode := ?, /* Duplex mode*/ + ext := ? /* Extension */ +} + +template BCAP_octet6 mw_BCAP_octet6_any := +/* Default RX template for type BCAP_octet6 with wildcards for simple types */ +{ + userInformationLayer2Protocol := ?, /* User information Layer 2 protocol */ + layerIdentification := ?, /* Layer identification */ + ext := ? /* Extension */ +} + +template BCAP_octet7 mw_BCAP_octet7_any := +/* Default RX template for type BCAP_octet7 with wildcards for simple types */ +{ + userInformationLayer3Protocol := ?, /* User information Layer 3 protocol */ + layerIdentification := ?, /* Layer identification */ + ext := ? /* Extension */ +} + +template USIP_PAR_tlv mw_USIP_PAR_tlv_any := +/* Default RX template for type USIP_PAR_tlv with 'any' template values for structured types, and wildcards for simple types */ +{ + paramType := '00110000'B, /* Parameter Type '00110000'B */ + paramLen := ?, /* Parameter Length field */ + uSIContents := mw_USIContents_any +} + +template UTSI_PAR_tlv mw_UTSI_PAR_tlv_any := +/* Default RX template for type UTSI_PAR_tlv with wildcards for simple types */ +{ + paramType := '00110100'B, /* Parameter Type '00110100'B */ + paramLen := '00000011'B, /* Parameter Length field */ + presentation := ?, /* Presentation */ + interpretation := ?, /* Interpretation */ + codingStandard := ?, /* Coding standard */ + ext1 := ?, /* Extension */ + highLayerCharacteristicsIdentification := ?, /* High layer characteristics identification */ + ext2 := ?, /* Extension */ + extendedLayerCharacteristicsIdentification := ?, /* Extended layer characteristics identification */ + ext3 := ? /* Extension */ +} + +template UUID_PAR_tlv mw_UUID_PAR_tlv_any := +/* Default RX template for type UUID_PAR_tlv with wildcards for simple types */ +{ + paramType := '00101010'B, /* Parameter Type '00101010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := ?, /* bit A: Type */ + service1 := ?, /* bits C B: Service 1 */ + service2 := ?, /* bits E D: Service 2 */ + service3 := ?, /* bits G F: Service 3 */ + networkDiscardIndicator := ? /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} + +template UUIF_PAR_lv mw_UUIF_PAR_lv_any := +/* Default RX template for type UUIF_PAR_lv with wildcards for simple types */ +{ + paramLen := ?, /* Parameter Length field */ + userToUserInformation := ? /* User-to-user information */ +} + +template UUIF_PAR_tlv mw_UUIF_PAR_tlv_any := +/* Default RX template for type UUIF_PAR_tlv with wildcards for simple types */ +{ + paramType := '00100000'B, /* Parameter Type '00100000'B */ + paramLen := ?, /* Parameter Length field */ + userToUserInformation := ? /* User-to-user information */ +} + +template BGV_PAR_tlv mw_BGV_PAR_tlv_any := +/* Default RX template for type BGV_PAR_tlv with wildcards for simple types */ +{ + paramType := '01001101'B, /* Parameter Type '01001101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + terminatingAccessIndicator := ?, /* bits B A: Terminating access indicator */ + spare := '00000'B, /* bits G-C: spare */ + ext := ? /* bit H: Extension indicator: as for 3.25 a). */ +} + +template CCSS_PAR_tlv mw_CCSS_PAR_tlv_any := +/* Default RX template for type CCSS_PAR_tlv with wildcards for simple types */ +{ + paramType := '01001011'B, /* Parameter Type '01001011'B */ + paramLen := '00000001'B, /* Parameter Length field */ + cCSSCallIndicator := ?, /* bit A: CCSS call indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template CTN_PAR_tlv mw_CTN_PAR_tlv_any := +/* Default RX template for type CTN_PAR_tlv with wildcards for simple types */ +{ + paramType := '01000101'B, /* Parameter Type '01000101'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + screeningIndicator := ?, /* Screening indicator */ + addrPresRestrInd := ?, /* Address presentation restricted indicator */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + spare := '0'B, /* spare */ + addressSignals := ? /* address signals */ +} + +template CTR_PAR_tlv mw_CTR_PAR_tlv_any := +/* Default RX template for type CTR_PAR_tlv with wildcards for simple types */ +{ + paramType := '01000011'B, /* Parameter Type '01000011'B */ + paramLen := '00000001'B, /* Parameter Length field */ + callTransferIdentity := ? /* Call transfer identity */ +} + +template FGVNS_PAR_tlv mw_FGVNS_PAR_tlv_any := +/* Default RX template for type FGVNS_PAR_tlv with wildcards for simple types */ +{ + paramType := '01001100'B, /* Parameter Type '01001100'B */ + paramLen := ?, /* Parameter Length field */ + fGVNSContents := ? +} + +template LPPI_PAR_tlv mw_LPPI_PAR_tlv_any := +/* Default RX template for type LPPI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01000100'B, /* Parameter Type '01000100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + request_response := ?, /* bit A: Type */ + responseIndicator := ?, /* bits C B: Response indicator (only if bit A equals to 1 (response), otherwise: spare) */ + spare := '00000'B /* bits H-D: spare */ +} + +template NMC_PAR_tlv mw_NMC_PAR_tlv_any := +/* Default RX template for type NMC_PAR_tlv with wildcards for simple types */ +{ + paramType := '01011011'B, /* Parameter Type '01011011'B */ + paramLen := '00000001'B, /* Parameter Length field */ + temporaryAlternativeRouting := ?, /* bit A: Temporary Alternative Routing (TAR) indicator */ + spare := '000000'B, /* bits G-B: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template CAM_PAR_tlv mw_CAM_PAR_tlv_any := +/* Default RX template for type CAM_PAR_tlv with wildcards for simple types */ +{ + paramType := '00100101'B, /* Parameter Type '00100101'B */ + paramLen := '00000101'B, /* Parameter Length field */ + mapType := ?, /* Map type */ + spare := '00'B, /* spare */ + mappingBits := ? /* mapping bits */ +} + +template CRI_PAR_tlv mw_CRI_PAR_tlv_any := +/* Default RX template for type CRI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01100101'B, /* Parameter Type '01100101'B */ + paramLen := ?, /* Parameter Length field */ + correlationId := ? /* Correlation id */ +} + +template SCFI_PAR_tlv mw_SCFI_PAR_tlv_any := +/* Default RX template for type SCFI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01100110'B, /* Parameter Type '01100110'B */ + paramLen := ?, /* Parameter Length field */ + sCFId := ? /* SCF id */ +} + +template CDTI_PAR_tlv mw_CDTI_PAR_tlv_any := +/* Default RX template for type CDTI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01101110'B, /* Parameter Type '01101110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + callToBeDivertedIndicator := ?, /* bits BA: Call to be diverted indicator */ + spare := '00000'B, /* bits G-C: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template CIN_PAR_tlv mw_CIN_PAR_tlv_any := +/* Default RX template for type CIN_PAR_tlv with wildcards for simple types */ +{ + paramType := '01101111'B, /* Parameter Type '01101111'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare1 := '00'B, /* spare */ + addrPresRestrInd := ?, /* Address presentation restricted indicator */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := ? /* address signals */ +} + +template COTI_PAR_tlv mw_COTI_PAR_tlv_any := +/* Default RX template for type COTI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01110000'B, /* Parameter Type '01110000'B */ + paramLen := '00000001'B, /* Parameter Length field */ + callToBeOfferedIndicator := ?, /* bits BA: Call to be offered indicator */ + spare := '000000'B, /* bits G-C: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template CTI_PAR_tlv mw_CTI_PAR_tlv_any := +/* Default RX template for type CTI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01110010'B, /* Parameter Type '01110010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + conferenceAcceptanceIndicator := ?, /* bits BA: Conference acceptance indicator (Note) */ + spare := '00000'B, /* bits G-C: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template DIF_PAR_tlv mw_DIF_PAR_tlv_any := +/* Default RX template for type DIF_PAR_tlv with wildcards for simple types */ +{ + paramType := '01110011'B, /* Parameter Type '01110011'B */ + paramLen := ?, /* Parameter Length field */ + displayInformation := ? /* Display information */ +} + +template UAI_PAR_tlv mw_UAI_PAR_tlv_any := +/* Default RX template for type UAI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01110100'B, /* Parameter Type '01110100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + throughConnInstructionIndicator := ?, /* bit A: Through-connection instruction indicator */ + t9TimerInstructionIndicator := ?, /* bit B: T9 timer instruction indicator */ + spare := '00000'B, /* bits G-C: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template UCI_PAR_tlv mw_UCI_PAR_tlv_any := +/* Default RX template for type UCI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01110101'B, /* Parameter Type '01110101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + througConnectionIndicator := ?, /* bit A: Through-connection indicator */ + t9TimerIndicator := ?, /* bit B: T9 timer indicator */ + spare := '00000'B, /* bits G-C: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template HPC_PAR_tlv mw_HPC_PAR_tlv_any := +/* Default RX template for type HPC_PAR_tlv with wildcards for simple types */ +{ + paramType := '00111101'B, /* Parameter Type '00111101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + hopCounter := ?, /* bits EDCBA: Hop counter */ + spare := '000'B /* bits HGF: spare */ +} + +template CCRQ_PAR_tlv mw_CCRQ_PAR_tlv_any := +/* Default RX template for type CCRQ_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111001'B, /* Parameter Type '01111001'B */ + paramLen := '00000001'B, /* Parameter Length field */ + collectCallRequestIndicator := ?, /* bit A: Collect call request indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template APP_PAR_tlv mw_APP_PAR_tlv_any := +/* Default RX template for type APP_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111000'B, /* Parameter Type '01111000'B */ + paramLen := ?, /* Parameter Length field */ + applicationContextIdentifier_lsb := ?, /* Application context identifier, least significant bits */ + ext1 := ?, /* Extension */ + applicationContextIdentifier_msb := ?, /* Application context identifier, most significant bits; optional */ + ext1a := ?, /* Extension */ + releaseCallIndicator := ?, /* bit 1: Release call indicator (RCI) */ + sendNotificationIndicator := ?, /* bit 2: Send notification indicator (SNI) */ + spare := '00000'B, /* spare */ + ext2 := ?, /* Extension */ + aPMSegmentationIndicator := ?, /* d: APM segmentation indicator */ + sequenceIndicator := ?, /* E: Sequence indicator (SI) */ + ext3 := ?, /* Extension */ + segmentationLocalReference := ?, /* f: Segmentation local reference (SLR) */ + ext3a := ?, /* Extension */ + aPMUserInformation := ? /* APM User Information */ +} + +template CCPI_PAR_tlv mw_CCPI_PAR_tlv_any := +/* Default RX template for type CCPI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111010'B, /* Parameter Type '01111010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + cCNRPossibleIndicator := ?, /* bit A: CCNR possible indicator */ + spare := '0000000'B /* bits H-B: spare */ +} + +template PICP_PAR_tlv mw_PICP_PAR_tlv_any := +/* Default RX template for type PICP_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111011'B, /* Parameter Type '01111011'B */ + paramLen := '00000001'B, /* Parameter Length field */ + pivotPossibleIndicator := ?, /* bits CBA: Pivot possible indicator */ + spare := '000'B, /* bits FED: spare */ + interwToRedirectionIndicator := ?, /* bit G: Interworking to redirection indicator (national use) */ + ext := ? /* bit H: Extension indicator */ +} + +template PRI_PAR_tlv mw_PRI_PAR_tlv_any := +/* Default RX template for type PRI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111100'B, /* Parameter Type '01111100'B */ + paramLen := '00000001'B, /* Parameter Length field */ + pivotRoutingIndicators := ?, /* bits G F E D C B A: Pivot routing indicators */ + ext := ? /* bit H: Extension indicator */ +} + +template CDIN_PAR_tlv mw_CDIN_PAR_tlv_any := +/* Default RX template for type CDIN_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111101'B, /* Parameter Type '01111101'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare := '0000'B, /* spare */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + iNN := ?, /* Internal Network Number indicator */ + addressSignals := ? /* address signals */ +} + +template OCI_PAR_tlv mw_OCI_PAR_tlv_any := +/* Default RX template for type OCI_PAR_tlv with wildcards for simple types */ +{ + paramType := '01111111'B, /* Parameter Type '01111111'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare1 := '00'B, /* spare */ + addrPresRestrInd := ?, /* Address presentation restricted indicator */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := ? /* address signals */ +} + +template CGL_PAR_tlv mw_CGL_PAR_tlv_any := +/* Default RX template for type CGL_PAR_tlv with wildcards for simple types */ +{ + paramType := '10000001'B, /* Parameter Type '10000001'B */ + paramLen := ?, /* Parameter Length field */ + screeningIndicator := ?, /* b) Screening indicator */ + locationPresRestrIndicator := ?, /* a) Location presentation restricted indicator */ + spare := '0000'B, /* spare */ + typeOfShape := ?, /* Type of shape */ + ext := ?, /* Extension */ + shapeDescription := ? /* Shape description */ +} + +template HTRI_PAR_tlv mw_HTRI_PAR_tlv_any := +/* Default RX template for type HTRI_PAR_tlv with wildcards for simple types */ +{ + paramType := '10000010'B, /* Parameter Type '10000010'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + oddEven := ?, /* O/E */ + spare1 := '0000'B, /* spare */ + numberingPlanIndicator := ?, /* Numbering plan indicator */ + spare2 := '0'B, /* spare */ + addressSignals := ? /* address signals */ +} + +template NRN_PAR_tlv mw_NRN_PAR_tlv_any := +/* Default RX template for type NRN_PAR_tlv with wildcards for simple types */ +{ + paramType := '10000100'B, /* Parameter Type '10000100'B */ + paramLen := ?, /* Parameter Length field */ + natureOfAddressIndicator := ?, /* Nature of address indicator */ + numberingPlanIdentifier := ?, /* Numbering Plan Identifier */ + oddEven := ?, /* O/E */ + addressSignals := ? /* address signals */ +} + +template QRC_PAR_tlv mw_QRC_PAR_tlv_any := +/* Default RX template for type QRC_PAR_tlv with wildcards for simple types */ +{ + paramType := '10000101'B, /* Parameter Type '10000101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + qoRCapabilityIndicator := ?, /* bit A: QoR capability indicator */ + spare := '000000'B, /* bits G-B: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template PST_PAR_tlv mw_PST_PAR_tlv_any := +/* Default RX template for type PST_PAR_tlv with wildcards for simple types */ +{ + paramType := '10000110'B, /* Parameter Type '10000110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + pivotStatusIndicator := ?, /* bits BA: Pivot status indicator */ + spare := '00000'B, /* bits GFEDC: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template PICN_PAR_tlv mw_PICN_PAR_tlv_any := +/* Default RX template for type PICN_PAR_tlv with wildcards for simple types */ +{ + paramType := '10000111'B, /* Parameter Type '10000111'B */ + paramLen := '00000001'B, /* Parameter Length field */ + pivotCounter := ?, /* bits EDCBA: Pivot counter */ + spare := '000'B /* bits HGF: spare */ +} + +template PRFI_PAR_tlv mw_PRFI_PAR_tlv_any := +/* Default RX template for type PRFI_PAR_tlv with wildcards for simple types */ +{ + paramType := '10001000'B, /* Parameter Type '10001000'B */ + paramLen := ?, /* Parameter Length field */ + informationTypes_Forward := ? /* information types */ +} + +template PRBI_PAR_tlv mw_PRBI_PAR_tlv_any := +/* Default RX template for type PRBI_PAR_tlv with wildcards for simple types */ +{ + paramType := '10001001'B, /* Parameter Type '10001001'B */ + paramLen := ?, /* Parameter Length field */ + informationTypes_Backward := ? /* information types */ +} + +template RCP_PAR_tlv mw_RCP_PAR_tlv_any := +/* Default RX template for type RCP_PAR_tlv with wildcards for simple types */ +{ + paramType := '01001110'B, /* Parameter Type '01001110'B */ + paramLen := '00000001'B, /* Parameter Length field */ + redirectPossibleIndicator := ?, /* bits CBA: Redirect possible indicator */ + spare := '0000'B, /* bits GFED: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template RCN_PAR_tlv mw_RCN_PAR_tlv_any := +/* Default RX template for type RCN_PAR_tlv with wildcards for simple types */ +{ + paramType := '01110111'B, /* Parameter Type '01110111'B */ + paramLen := '00000001'B, /* Parameter Length field */ + redirectCounter := ?, /* bits EDCBA: Redirect counter */ + spare := '000'B /* bits HGF: spare */ +} + +template RST_PAR_tlv mw_RST_PAR_tlv_any := +/* Default RX template for type RST_PAR_tlv with wildcards for simple types */ +{ + paramType := '10001010'B, /* Parameter Type '10001010'B */ + paramLen := '00000001'B, /* Parameter Length field */ + redirectStatusIndicator := ?, /* bits BA: Redirect status indicator */ + spare := '00000'B, /* bits GFEDC: spare */ + ext := ? /* bit H: Extension indicator */ +} + +template RFI_PAR_tlv mw_RFI_PAR_tlv_any := +/* Default RX template for type RFI_PAR_tlv with wildcards for simple types */ +{ + paramType := '10001011'B, /* Parameter Type '10001011'B */ + paramLen := ?, /* Parameter Length field */ + informationTypes_Forward := ? /* information types */ +} + +template RBI_PAR_tlv mw_RBI_PAR_tlv_any := +/* Default RX template for type RBI_PAR_tlv with wildcards for simple types */ +{ + paramType := '10001100'B, /* Parameter Type '10001100'B */ + paramLen := ?, /* Parameter Length field */ + informationTypes_Backward := ? /* information types */ +} + +template NPFI_PAR_tlv mw_NPFI_PAR_tlv_any := +/* Default RX template for type NPFI_PAR_tlv with wildcards for simple types */ +{ + paramType := '10001101'B, /* Parameter Type '10001101'B */ + paramLen := '00000001'B, /* Parameter Length field */ + numberPortabilityStatusIndicator := ?, /* a) bits DCBA: Number portability status indicator */ + spare := '000'B, /* b) bits GFE: spare */ + ext := ? /* c) bit H: Extension indicator */ +} + +template ARR_PAR_tlv mw_ARR_PAR_tlv_any := +/* Default RX template for type ARR_PAR_tlv with 'any' template values for structured types, and wildcards for simple types */ +{ + paramType := '10010110'B, /* Parameter Type '10010110'B */ + paramLen := '00000010'B, /* Parameter Length field */ + reRoutingCounter := ?, /* Re-routing counter */ + reRoutingInhibitIndicator := ?, /* Re-routing inhibit indicator */ + ext1 := ?, /* Extension */ + aRR_Octet1a := mw_ARR_Octet1a_any ifpresent /* Octet 1a */ +} +template ParameterInstructionIndicator m_ParameterInstructionIndicator_RelCall := +{ + upgradedParameter := PX_ISUP_TX_unknown_parameter_type, /* upgraded parameter name */ + transitAtIntermExchIndicator := '1'B, /* bit A: Transit at intermediate exchange indicator */ + releaseCallIndicator := '1'B, /* bit B: Release call indicator */ + sendNotificationIndicator := '0'B, /* bit C: Send notification indicator */ + discardMessageIndicator := '1'B, /* bit D: Discard message indicator */ + discardParameterIndicator := '1'B, /* bit E: Discard parameter indicator */ + passOnNotPossibleIndicator := '00'B, /* bits G F: Pass on not possible indicator */ + ext := '1'B, /* c: Extension indicator (ext.) */ + broadNarrowBandInterwIndicator := '10'B, /* bits J I: Broadband/narrowband interworking indicator */ + spare := *, /* bits O-K: spare */ + moreInstructionIndicators := * /* to be defined when required */ +} + +template PCI_PAR_tlv m_PCI_PAR_tlv_Fpar(template ParameterInstructionIndicator p_paramInstructInds) := +/* Default TX template with parametrization for Parameter compatibility information parameter (PCI); Optional(O) format. */ +{ + paramType := '00111001'B, /* Parameter Type '00111001'B */ + paramLen := int2bit((lengthof(valueof(p_paramInstructInds.moreInstructionIndicators))+ 3), 8), /* Parameter Length field */ + parameterInstructionIndicators := {p_paramInstructInds} +} + +template ARR_Octet1a mw_ARR_Octet1a_any := +/* Default RX template for type ARR_Octet1a with wildcards for simple types */ +{ + reRoutingReason := ?, /* Re-routing reason */ + ext1a := ? /* Extension */ +} + +}// End Module SipIsup_ISUP_ParamTemplates + diff --git a/IsupAts/SipIsup_ISUP_ParamTypes.ttcn b/IsupAts/SipIsup_ISUP_ParamTypes.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..d68dc2cbcacc1c3d76dd043f0689ddf01f1c1274 --- /dev/null +++ b/IsupAts/SipIsup_ISUP_ParamTypes.ttcn @@ -0,0 +1,1626 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides ISUP/BICC-parameter type declarations. +*/ +module SipIsup_ISUP_ParamTypes{ + +import from LibCommon_BasicTypesAndValues all; +import from LibCommon_DataStrings all; +import from LibCommon_TextStrings all; + +type octetstring Oct1to2 length(1..2) with {encode "1 to 2 bytes"}; +type octetstring Oct0to4 length(0..4) with {encode "0 to 4 bytes"}; +type octetstring Oct0to8 length(0..8) with {encode "0 to 8 bytes"}; +type octetstring Oct0to9 length(0..9) with {encode "0 to 9 bytes"}; + + + +type record ServiceIndicatorOctet +{ + Bit4 userPartIdentification, /* User part identification, '5'H for ISUP */ + Bit2 spare, /* Spare */ + Bit2 networkIndicator /* Network indicator */ +} + +type record RoutingLabel +{ + Bit14 dpc, /* destination point code */ + Bit14 opc, /* origination point code */ + Bit4 sls /* Signalling link selection */ +} + +type record CircuitIdentityCode +{ + Bit12 cicv, /* cic code value */ + Bit4 spare /* Spare field */ +} + +type octetstring CallInstanceCode length(4); + +type record ADI_PAR_tlv /* Access delivery information parameter (ADI); Optional(O) format. */ +{ + Bit8 paramType ('00101110'B), /* Parameter Type '00101110'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 accessDeliveryIndicator, /* bit A: Access delivery indicator */ + Bit7 spare /* bits H-B: spare */ +} +with { encode "present=bytes(1,0x2E)"; } + +type record ATP_PAR_tlv /* Access transport parameter (ATP); Optional(O) format. */ +{ + Bit8 paramType ('00000011'B), /* Parameter Type '00000011'B */ + Bit8 paramLen, /* Parameter Length field */ + InformationElements informationElements /* Q.931 information elements */ +} +with { encode "present=bytes(1,0x03)"; + encode (paramLen) "tag=""ATP_paramLen"";"; + encode (informationElements) "length=valueOf(getTag(""ATP_paramLen"")).toInt();"; } + +/* start auxiliary types for access transport parameter (ATP) */ +type record HighLayerCompatibility /* Q.931 High Layer Compatibility information element */ +{ + Bit8 iEType ('01111101'B), /* Information Element Type '01111101'B */ + Bit8 iELen, /* Information Element Length field */ + Bit2 presentation, /* Presentation */ + Bit3 interpretation, /* Interpretation */ + Bit2 codingStandard, /* Coding standard */ + Bit1 ext1, /* Extension */ + Bit7 highLayerCharacteristicsIdentification, /* High layer characteristics identification */ + Bit1 ext2, /* Extension */ + Bit7 extendedHighLayerCharacteristicsIdentification optional, /* Extended high layer characteristics identification */ + Bit1 ext3 optional, /* Extension */ + Bit7 extendedVideotelephonyCharacteristicsIdentification optional, /* Extended videotelephony characteristics identification */ + Bit1 ext4 optional /* Extension */ + } +with { encode "present=bytes(1,0x7D)" } + + type record CallingPartySubaddress /* Q.931 Calling party subaddress information element */ +{ + Bit8 iEType ('01101101'B), /* Information Element Type '01101101'B */ + Bit8 iELen, /* Information Element Length field */ + Bit3 spare, /* Spare */ + Bit1 oddEven, /* OE */ + Bit3 typeOfSubaddress, /* Type of Subaddress */ + Bit1 ext, /* Extension */ + octetstring subaddressInformation /* Subaddress Information */ +} +with { encode "present=bytes(1,0x6D)"; + encode (iELen) "tag=""CGPS_iELen"";"; + encode (subaddressInformation) "length=valueOf(getTag(""CGPS_iELen"")).toInt()-1;"; } + +type record ConnectedSubaddress /* Q.931 Connected subaddress information element */ +{ + Bit8 iEType ('01001101'B), /* Information Element Type '01001101'B */ + Bit8 iELen, /* Information Element Length field */ + Bit3 spare, /* Spare */ + Bit1 oddEven, /* OE */ + Bit3 typeOfSubaddress, /* Type of Subaddress */ + Bit1 ext, /* Extension */ + octetstring subaddressInformation /* Subaddress Information */ +} +with { encode "present=bytes(1,0x4D)"; + encode (iELen) "tag=""CODS_iELen"";"; + encode (subaddressInformation) "length=valueOf(getTag(""CODS_iELen"")).toInt()-1;"; } + +type union InformationElements +{ + octetstring anyInformationElements, /* Used for receive templates */ + HighLayerCompatibility highLayerCompatibility, /* Q.931 High Layer Compatibility for send template */ + CallingPartySubaddress callingPartySubaddress, /* Q.931 Calling Party Subaddress for send template */ + ConnectedSubaddress connectedSubaddress /* Q.931 Connected Subaddress for send template */ +} +/* end auxiliary types for access transport parameter (ATP) */ + +type record ACL_PAR_tlv /* Automatic congestion level parameter (ACL); Optional(O) format. */ +{ + Bit8 paramType ('00100111'B), /* Parameter Type '00100111'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit8 automaticCongestionLevel /* Automatic congestion level */ +} +with { encode "present=bytes(1,0x27)" } + +type record BCI_PAR_v /* Backward call indicators parameter (BCI); Fixed(F) format. */ +{ + Bit2 chargeIndicator, /* bits BA : Charge indicator (Note 1) */ + Bit2 calledPartysStatusIndicator, /* bits DC : Called party's status indicator */ + Bit2 calledPartysCategoryIndicator, /* bits FE : Called party's category indicator */ + Bit2 end_to_endMethodIndicator, /* bits HG : End-to-end method indicator (Note 2) */ + Bit1 interworkingIndicator, /* bit I: Interworking indicator (Note 2) */ + Bit1 end_to_endInformationIndicator, /* bit J: End-to-end information indicator (national use) (Note 2) */ + Bit1 iSDNUserPartIndicator, /* bit K: ISDN user part indicator (Note 2) */ + Bit1 holdingIndicator, /* bit L: Holding indicator (national use) */ + Bit1 iSDNAccessIndicator, /* bit M: ISDN access indicator */ + Bit1 echoControlDeviceIndicator, /* bit N: Echo control device indicator */ + Bit2 sCCPMethodIndicator /* bits PO: SCCP method indicator (Note 2) */ +} + +type record BCI_PAR_tlv /* Backward call indicators parameter (BCI); Optional(O) format. */ +{ + Bit8 paramType ('00010001'B), /* Parameter Type '00010001'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit2 chargeIndicator, /* bits BA : Charge indicator (Note 1) */ + Bit2 calledPartysStatusIndicator, /* bits DC : Called party's status indicator */ + Bit2 calledPartysCategoryIndicator, /* bits FE : Called party's category indicator */ + Bit2 end_to_endMethodIndicator, /* bits HG : End-to-end method indicator (Note 2) */ + Bit1 interworkingIndicator, /* bit I: Interworking indicator (Note 2) */ + Bit1 end_to_endInformationIndicator, /* bit J: End-to-end information indicator (national use) (Note 2) */ + Bit1 iSDNUserPartIndicator, /* bit K: ISDN user part indicator (Note 2) */ + Bit1 holdingIndicator, /* bit L: Holding indicator (national use) */ + Bit1 iSDNAccessIndicator, /* bit M: ISDN access indicator */ + Bit1 echoControlDeviceIndicator, /* bit N: Echo control device indicator */ + Bit2 sCCPMethodIndicator /* bits PO: SCCP method indicator (Note 2) */ +} +with { encode "present=bytes(1,0x11)"; } + +type record CDI_PAR_tlv /* Call diversion information parameter (CDI); Optional(O) format. */ +{ + Bit8 paramType ('00110110'B), /* Parameter Type '00110110'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit3 notificationSubscriptionOptions, /* bits CBA: Notification subscription options */ + Bit4 redirectingReason, /* bits GFED: Redirecting reason */ + Bit1 spare /* bit H: spare */ +} +with { encode "present=bytes(1,0x36)"; } + +type record CHI_PAR_tlv /* Call history parameter (CHI); Optional(O) format. */ +{ + Bit8 paramType ('00101101'B), /* Parameter Type '00101101'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit16 propagationDelayValue /* Propagation delay value */ +} +with { encode "present=bytes(1,0x2D)"; } + +type record CRF_PAR_tlv /* Call reference parameter (CRF); Optional(O) format. */ +{ + Bit8 paramType ('00000001'B), /* Parameter Type '00000001'B */ + Bit8 paramLen ('00000101'B), /* Parameter Length field */ + Bit24 callIdentity, /* Call identity */ + Bit14 signallingPointCode, /* Signalling point code */ + Bit2 spare /* spare */ +} +with { encode "present=bytes(1,0x01)"; } + +type record CDN_PAR_lv /* Called party number parameter (CDN); Variable(V) format. */ +{ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* OE */ + Bit4 spare, /* spare */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 iNN, /* Internal Network Number indicator */ + octetstring addressSignals /* address signals */ +} +with { encode (paramLen) "tag=""CDN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""CDN_paramLen"")).toInt()-2;"; } + +type record CGN_PAR_tlv /* Calling party number parameter (CGN); Optional(O) format. */ +{ + Bit8 paramType ('00001010'B), /* Parameter Type '00001010'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* OE */ + Bit2 screeningIndicator, /* Screening indicator */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator (NOTE) */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 nII, /* NumberIncompleteIndicator */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0x0A)"; + encode (paramLen) "tag=""CGN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""CGN_paramLen"")).toInt()-2;"; } + +type Bit8 CGC_PAR_v; /* Calling party's category parameter (CGC); Fixed(F) format. */ + +type record CGC_PAR_tlv /* Calling party's category parameter (CGC); Optional(O) format. */ +{ + Bit8 paramType ('00001001'B), /* Parameter Type '00110101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit8 callingPartysCategory /* Calling party's category */ +} +with { encode "present=bytes(1,0x09)"; } + +type record CAUI_PAR_lv /* Cause indicators parameter (CAUI); Variable(V) format. */ +{ + Bit8 paramLen, /* Parameter Length field */ + Bit4 location, /* location */ + Bit1 spare, /* spare */ + Bit2 codingStandard, /* codingStandard */ + Bit1 ext1, /* Extension */ + Bit7 causeValue, /* Cause value */ + Bit1 ext2, /* Extension */ + octetstring diagnostics optional /* Diagnostic(s) (if any) */ +} +with { encode (paramLen) "tag=""CAUI_paramLen"";"; + encode (diagnostics) "length=valueOf(getTag(""CAUI_paramLen"")).toInt()-2;"; } + +type record CAUI_PAR_tlv /* Cause indicators parameter (CAUI); Optional(O) format. */ +{ + Bit8 paramType ('00010010'B), /* Parameter Type '00010010'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit4 location, /* location */ + Bit1 spare, /* spare */ + Bit2 codingStandard, /* codingStandard */ + Bit1 ext1, /* Extension */ + Bit7 causeValue, /* Cause value */ + Bit1 ext2, /* Extension */ + octetstring diagnostics optional /* Diagnostic(s) (if any) */ +} +with { encode "present=bytes(1,0x12)"; + encode (paramLen) "tag=""CAUI_paramLen"";"; + encode (diagnostics) "length=valueOf(getTag(""CAUI_paramLen"")).toInt()-2;"; } + + +type record CGSM_PAR_v /* Circuit group supervision message type parameter (CGSM); Fixed(F) format. */ +{ + Bit2 cgSupervMTypeIndicator, /* bits BA: Circuit group supervision message type indicator */ + Bit6 spare /* bits H-C: spare */ +} +with { encode "present=bytes(1,0x15)"; } + +type record CSI_PAR_lv /* Circuit state indicator parameter (CSI); Variable(V) format. */ +{ + Bit8 paramLen, /* Parameter Length field */ + CircuitIndicators circuitIndicators +} +with { encode (paramLen) "tag=""CSI_paramLen"";"; + encode (circuitIndicators) "length=valueOf(getTag(""CSI_paramLen"")).toInt();"; } + +/* start auxiliary types for circuit state indicator parameter (CSI) */ +type record CircuitIndicator +{ + Bit2 maintenanceBlockingState, /* bits BA: Maintenance blocking state */ + Bit2 callProcessingState, /* bits DC: Call processing state */ + Bit2 hardwareBlockingState, /* bits F E: Hardware blocking state (Note) */ + Bit2 spare /* bits H-G: spare */ +} + +type set of CircuitIndicator CircuitIndicators; +/* end auxiliary types for circuit state indicator parameter (CSI) */ + +type record CUGIC_PAR_tlv /* Closed user group interlock code parameter (CUGIC); Optional(O) format. */ +{ + Bit8 paramType ('00011010'B), /* Parameter Type '00011010'B */ + Bit8 paramLen ('00000100'B), /* Parameter Length field */ + Oct2 networkIdentity, /* a) Network Identity (NI) (octets 1 and 2) */ + Bit16 binaryCode /* Binary code */ +} +with { encode "present=bytes(1,0x1A)"; } + +type record CPN_PAR_tlv /* Connected number parameter (CPN); Optional(O) format. */ +{ + Bit8 paramType ('00100001'B), /* Parameter Type '00100001'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfaddressindicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 screeningIndicator, /* Screening indicator */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator (NOTE) */ + Bit3 numberingplanIndicator, /* Numberingplan indicator */ + Bit1 spare, /* spare */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0x21)"; + encode (paramLen) "tag=""CPN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""CPN_paramLen"")).toInt()-2;"; } + +type record CRQ_PAR_tlv /* Connection request parameter (CRQ); Optional(O) format. */ +{ + Bit8 paramType ('00001101'B), /* Parameter Type '00001101'B */ + Bit8 paramLen, /* Parameter Length field */ + Oct3 localReference, /* Local reference */ + Bit14 signallingPointCode, /* Signalling point code */ + Bit2 spare, /* spare */ + Bit8 protocolClass optional, /* Protocol class */ + Bit8 credit optional /* Credit */ +} +with { encode "present=bytes(1,0x0D)"; } + +type record COI_PAR_v /* Continuity indicators parameter (COI); Fixed(F) format. */ +{ + Bit1 continuityIndicator, /* bit A: Continuity indicator */ + Bit7 spare /* bits H-B: spare */ +} + +type record ECI_PAR_tlv /* Echo control information parameter (ECI); Optional(O) format. */ +{ + Bit8 paramType ('00110111'B), /* Parameter Type '00110111'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 outgECDeviceInfoInd, /* bits BA: Outgoing echo control device information indicator */ + Bit2 incECDeviceInfoInd, /* bits DC: Incoming echo control device information indicator */ + Bit2 outgECDeviceReqInd, /* bits FE : Outgoing echo control device request indicator */ + Bit2 IncECDeviceReqInd /* bits HG: Incoming echo control device request indicator */ +} +with { encode "present=bytes(1,0x37)"; } + +type Bit8 EOP ('00000000'B) with { encode "present=bytes(1,0x00)"; }; + +type record EIF_PAR_v /* Event information parameter (EIF); Fixed(F) format. */ +{ + Bit7 eventIndicator, /* bits G F E D C B A: Event indicator */ + Bit1 eventPresRestrInd /* bit H: Event presentation restricted indicator (national use) */ +} + +type Bit8 FAI_PAR_v; /* Facility indicator parameter (FAI); Fixed(F) format. */ + +type record FAI_PAR_tlv /* Facility indicator parameter (FAI); Optional(O) format. */ +{ + Bit8 paramType ('00011000'B), /* Parameter Type '00011000'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit8 facilityIndicators /* Facility indicators */ +} +with { encode "present=bytes(1,0x18)"; } + +type record FCI_PAR_v /* Forward call indicators parameter (FCI); Fixed(F) format. */ +{ + Bit1 natInternatCallIndicator, /* bit A: National/international call indicator (Note 1) */ + Bit2 endToEndMethodIndicator, /* bits CB: End-to-end method indicator (Note 2) */ + Bit1 interworkingIndicator, /* bit D: Interworking indicator (Note 2) */ + Bit1 endToEndInfoIndicator, /* bit E: End-to-end information indicator (national use) (Note 2) */ + Bit1 iSDNUserPartIndicator, /* bit F: ISDN user part indicator (Note 2) */ + Bit2 iSDNUserPartPrefIndicator, /* bits HG: ISDN user part preference indicator */ + Bit1 iSDNAccessIndicator, /* bit I: ISDN access indicator */ + Bit2 sCCPMethodIndicator, /* bits KJ: SCCP method indicator (Note 2) */ + Bit1 spare, /* bit L: spare */ + Bit4 reserved /* bits P-M: reserved for national use */ +} + +type record GDG_PAR_tlv /* Generic digits parameter (GDG); Optional(O) format. */ +{ + Bit8 paramType ('11000001'B), /* Parameter Type '11000001'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit5 typeOfDigits, /* Encoding scheme Type of digits */ + Bit3 encodingScheme, /* Encoding scheme Type of digits */ + Oct1to15 digits /* Digits */ +} +with { encode "present=bytes(1,0xC1)"; + encode (paramLen) "tag=""CDG_paramLen"";"; + encode (digits) "length=valueOf(getTag(""CDG_paramLen"")).toInt()-1;"; } + +type record GNI_PAR_tlv /* Generic notification indicator parameter (GNI); Optional(O) format. */ +{ + Bit8 paramType ('00101100'B), /* Parameter Type '00101100'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit7 notificationIndicator, /* Notification indicator */ + Bit1 ext /* Extension */ +} +with { encode "present=bytes(1,0x2C)"; } + +type record GNU_PAR_tlv /* Generic number parameter (GNU); Optional(O) format. */ +{ + Bit8 paramType ('11000000'B), /* Parameter Type '11000000'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit8 numberQualifierIndicator, /* Number qualifier indicator */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator (NOTE�1/21) */ + Bit1 oddEven, /* O/E */ + Bit2 screeningIndicator, /* Screening indicator (NOTE�1/24) */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator (NOTE�1/23) */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator (NOTE�1/22) */ + Bit1 nI, /* Number incomplete indicator */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0xC0)"; + encode (paramLen) "tag=""GNU_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""GNU_paramLen"")).toInt()-3;"; } + + +type record IID_PAR_v /* Information indicators parameter (IID); Fixed(F) format. */ +{ + Bit2 cliAddrResponseIndicator, /* bits BA: Calling party address response indicator */ + Bit1 holdProvidedIndicator, /* bit C: Hold provided indicator */ + Bit2 spare1, /* bits ED: spare */ + Bit1 cliCatRespIndicator, /* bit F: Calling party's category response indicator */ + Bit1 chargeInfoRespIndicator, /* bit G: Charge information response indicator */ + Bit1 solicitedInfoIndicator, /* bit H: Solicited information indicator */ + Bit4 spare2, /* bits L-I: spare */ + Bit4 reserved /* bits P-M: reserved */ +} + +type record IRI_PAR_v /* Information request indicators parameter (IRI); Fixed(F) format. */ +{ + Bit1 cliAddrRequestIndicator, /* bit A: Calling party address request indicator */ + Bit1 holdingIndicator, /* bit B: Holding indicator */ + Bit1 spare1, /* bit C: spare */ + Bit1 cliCatRequestIndicator, /* bit D: Calling party's category request indicator */ + Bit1 chargeInfoRequestIndicator, /* bit E: Charge information request indicator */ + Bit2 spare2, /* bits GF: spare */ + Bit1 maliciousCidReqIndicator, /* bit H: Malicious call identification request indicator (reserved, used in ISUP'88 Blue Book) */ + Bit4 spare3, /* bits L-I: spare */ + Bit4 reserved /* bits P-M: reserved */ +} + +type record LON_PAR_tlv /* Location number parameter (LON); Optional(O) format. */ +{ + Bit8 paramType ('00111111'B), /* Parameter Type '00111111'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 screeningIndicator, /* Screening indicator */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator (NOTE ) */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 iNN, /* Internal Network Number indicator */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0x3F)"; + encode (paramLen) "tag=""LON_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""LON_paramLen"")).toInt()-2;"; } + +type record MCRI_PAR_tlv /* MCID request indicators parameter (MCRI); Optional(O) format. */ +{ + Bit8 paramType ('00111011'B), /* Parameter Type '00111011'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 mCIDRequestIndicator, /* bit A: MCID request indicator */ + Bit1 holdingIndicator, /* bit B: Holding indicator (national use) */ + Bit6 spare /* bits H-C: spare */ +} +with { encode "present=bytes(1,0x3B)"; } + +type record MCRS_PAR_tlv /* MCID response indicators parameter (MCRS); Optional(O) format. */ +{ + Bit8 paramType ('00111100'B), /* Parameter Type '00111100'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 mCIDResponseIndicator, /* bit A: MCID response indicator */ + Bit1 holdProvidedIndicator, /* bit B: Hold provided indicator (national use) */ + Bit6 spare /* bits H-C: spare */ +} +with { encode "present=bytes(1,0x3C)"; } + +type record MCI_PAR_tlv /* Message compatibility information parameter (MCI); Optional(O) format. */ +{ + Bit8 paramType ('00111000'B), /* Parameter Type '00111000'B */ + Bit8 paramLen, /* Parameter Length field */ + InstructionIndicators instructionIndicators +} +with { encode "present=bytes(1,0x38)"; + encode (paramLen) "tag=""MCI_paramLen"";"; + encode (instructionIndicators) "length=valueOf(getTag(""MCI_paramLen"")).toInt();"; } + +/* Start auxiliary types for message compatibility information parameter (MCI) */ +type record InstructionIndicator +{ + Bit1 transitAtIntermExchIndicator, /* bit A: Transit at intermediate exchange indicator */ + Bit1 releaseCallIndicator, /* bit B: Release call indicator */ + Bit1 sendNotificationIndicator, /* bit C: Send notification indicator */ + Bit1 discardMessageIndicator, /* bit D: Discard message indicator */ + Bit1 passOnNotPossibleIndicator, /* bit E: Pass on not possible indicator */ + Bit2 broadNarrowBandInterwIndicator, /* bits G F: Broadband/narrowband interworking indicator */ + Bit1 ext /* extension bit */ +} + +type set of InstructionIndicator InstructionIndicators; +/* End auxiliary types for message compatibility information parameter (MCI) */ + +type record MLPP_PAR_tlv /* MLPP precedence parameter (MLPP); Optional(O) format. */ +{ + Bit8 paramType ('00111010'B), /* Parameter Type '00111010'B */ + Bit8 paramLen ('00000110'B), /* Parameter Length field */ + Bit4 precedenceLevel, /* Precedence level */ + Bit1 spare1, /* spare */ + Bit2 lFB, /* LFB (look ahead for busy) */ + Bit1 spare2, /* spare */ + Oct2 networkIdentity, /* Network Identity (NI) octet 2 and 3 */ + Oct3 mLppServiceDomain /* MLPP service domain */ +} +with { encode "present=bytes(1,0x3A)"; } + +type record NCI_PAR_v /* Nature of connection indicators parameter (NCI); Fixed(F) format. */ +{ + Bit2 satelliteIndicator, /* bits BA: Satellite indicator */ + Bit2 continuityCheckIndicator, /* bits DC: Continuity check indicator */ + Bit1 echoControlDeviceIndicator, /* bit E: Echo control device indicator */ + Bit3 spare /* bits H-F: spare */ +} + +type record NSF_PAR_tlv /* Network specific facility parameter (NSF); Optional(O) format. */ +{ + Bit8 paramType ('00101111'B), /* Parameter Type '00101111'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring networkSpecific /* Network identification */ +} +with { encode "present=bytes(1,0x2F)"; + encode (paramLen) "tag=""NSF_paramLen"";"; + encode (networkSpecific) "length=valueOf(getTag(""NSF_paramLen"")).toInt();"; } + +type record OBCI_PAR_tlv /* Optional backward call indicators parameter (OBCI); Optional(O) format. */ +{ + Bit8 paramType ('00101001'B), /* Parameter Type '00101001'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 inBandInformationIndicator, /* bit A: In-band information indicator */ + Bit1 callDivMayOccurIndicator, /* bit B: Call diversion may occur indicator */ + Bit1 simpleSegmentationIndicator, /* bit C: Simple segmentation indicator */ + Bit1 mLPPUserIndicator, /* bit D: MLPP user indicator */ + Bit4 reserved /* bits H-E: reserved for national use */ +} +with { encode "present=bytes(1,0x29)"; } + +type record OFCI_PAR_tlv /* Optional forward call indicators parameter (OFCI); Optional(O) format. */ +{ + Bit8 paramType ('00001000'B), /* Parameter Type '00001000'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 cUGCallIndicator, /* bits BA: Closed user group call indicator */ + Bit1 simpleSegIndicator, /* bit C: Simple segmentation indicator */ + Bit4 spare, /* bits G-D: spare */ + Bit1 cLIRequestIndicator /* bit H: Connected line identity request indicator */ +} +with { encode "present=bytes(1,0x08)"; } + +type record OCN_PAR_tlv /* Original called number parameter (OCN); Optional(O) format. */ +{ + Bit8 paramType ('00101000'B), /* Parameter Type '00101000'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 spare1, /* spare */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 spare2, /* spare */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0x28)"; + encode (paramLen) "tag=""OCN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""OCN_paramLen"")).toInt()-2;"; } + +type record OIPC_PAR_tlv /* Origination ISC point code parameter (OIPC); Optional(O) format. */ +{ + Bit8 paramType ('00101011'B), /* Parameter Type '00101011'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit14 signallingPointCode, /* Signalling point code */ + Bit2 spare /* spare */ +} +with { encode "present=bytes(1,0x2B)"; } + +type record PCI_PAR_tlv /* Parameter compatibility information parameter (PCI); Optional(O) format. */ +{ + Bit8 paramType ('00111001'B), /* Parameter Type '00111001'B */ + Bit8 paramLen, /* Parameter Length field */ + ParameterInstructionIndicators parameterInstructionIndicators +} +with { encode "present=bytes(1,0x39)"; + encode (paramLen) "tag=""PCI_paramLen"";"; + encode (parameterInstructionIndicators) "length=valueOf(getTag(""PCI_paramLen"")).toInt();"; } + +/* Start auxiliary types for parameter compatibility information parameter (PCI) */ +type record ParameterInstructionIndicator +{ + Bit8 upgradedParameter, /* upgraded parameter name */ + Bit1 transitAtIntermExchIndicator, /* bit A: Transit at intermediate exchange indicator */ + Bit1 releaseCallIndicator, /* bit B: Release call indicator */ + Bit1 sendNotificationIndicator, /* bit C: Send notification indicator */ + Bit1 discardMessageIndicator, /* bit D: Discard message indicator */ + Bit1 discardParameterIndicator, /* bit E: Discard parameter indicator */ + Bit2 passOnNotPossibleIndicator, /* bits G F: Pass on not possible indicator */ + Bit1 ext, /* c: Extension indicator (ext.) */ + Bit2 broadNarrowBandInterwIndicator optional, /* bits J I: Broadband/narrowband interworking indicator */ + Bit6 spare optional, /* bits O-K: spare */ + octetstring moreInstructionIndicators optional /* to be defined when required */ +} +type set of ParameterInstructionIndicator ParameterInstructionIndicators; +/* End auxiliary types for parameter compatibility information parameter (PCI) */ + +type record PDC_PAR_tlv /* Propagation delay counter parameter (PDC); Optional(O) format. */ +{ + Bit8 paramType ('00110001'B), /* Parameter Type '00110001'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit16 propagationDelayValue /* Propagation delay value */ +} +with { encode "present=bytes(1,0x31)"; } + +type record RAS_PAR_lv /* Range and status parameter (RAS); Variable(V) format. */ +{ + Bit8 paramLen , /* Parameter Length field */ + Bit8 range, /* Range */ + octetstring status /* Status */ +} +with { encode (paramLen) "tag=""RAS_paramLen"";"; + encode (status) "length=valueOf(getTag(""RAS_paramLen"")).toInt()-1;"; } + +type record RDN_PAR_tlv /* Redirecting number parameter (RDN); Optional(O) format. */ +{ + Bit8 paramType ('00001011'B), /* Parameter Type '00001011'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 spare1, /* spare */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 spare2, /* spare */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0x0B)"; + encode (paramLen) "tag=""RDN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""RDN_paramLen"")).toInt()-2;"; } + +type record RDI_PAR_tlv /* Redirection information parameter (RDI); Optional(O) format. */ +{ + Bit8 paramType ('00010011'B), /* Parameter Type '00010011'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit3 redirectingIndicator, /* bits CBA: Redirecting indicator */ + Bit1 spare, /* Bit D: spare */ + Bit4 originalRedirectionReason, /* bits H G F E: Original redirection reason */ + Bit3 redirectionCounter, /* bits K J I: Redirection counter */ + Bit1 reserved, /* bit L: reserved for national use */ + Bit4 redirectingReason /* bits PONM: Redirecting reason */ +} +with { encode "present=bytes(1,0x13)"; } + +type record RNN_PAR_tlv /* Redirection number parameter (RNN); Optional(O) format. */ +{ + Bit8 paramType ('00001100'B), /* Parameter Type '00001100'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit4 spare, /* spare */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 iNN, /* Internal Network Number indicator */ + octetstring addressSignals optional /* address signals */ +} +with { encode "present=bytes(1,0x0C)"; + encode (paramLen) "tag=""RNN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""RNN_paramLen"")).toInt()-2;"; } + +type record RNS_PAR_tlv /* Redirection number restriction parameter (RNS); Optional(O) format. */ +{ + Bit8 paramType ('01000000'B), /* Parameter Type '01000000'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 presRestrIndicator, /* bits BA: Presentation restricted indicator */ + Bit6 spare /* bits H-C: spare */ +} +with { encode "present=bytes(1,0x40)"; } + +type record ROP_PAR_tlv /* Remote operations parameter (ROP); Optional(O) format. */ +{ + Bit8 paramType ('00110010'B), /* Parameter Type '00110010'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit5 protocolProfile, /* Protocol profile */ + Bit2 spare, /* spare */ + Bit1 ext, /* Extension */ + octetstring components /* ASN.1 components */ +} +with { encode "present=bytes(1,0x32)"; + encode (paramLen) "tag=""ROP_paramLen"";"; + encode (components) "length=valueOf(getTag(""ROP_paramLen"")).toInt()-1;"; } + +type record SAC_PAR_tlv /* Service activation parameter (SAC); Optional(O) format. */ +{ + Bit8 paramType ('00110011'B), /* Parameter Type '00110011'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring featureCodes /* Feature codes */ +} +with { encode "present=bytes(1,0x33)"; + encode (paramLen) "tag=""SAC_paramLen"";"; + encode (featureCodes) "length=valueOf(getTag(""SAC_paramLen"")).toInt();"; } + +type record SPC_PAR_tlv /* Signalling point code parameter (SPC); Optional(O) format. */ +{ + Bit8 paramType ('00011110'B), /* Parameter Type '00011110'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit14 signallingPointCode, /* Signalling point code */ + Bit2 spare /* spare */ +} +with { encode "present=bytes(1,0x1E)"; } + +type record SNN_PAR_lv /* Subsequent number parameter (SNN); Variable(V) format. */ +{ + Bit8 paramLen, /* Parameter Length field */ + Bit7 spare, /* spare */ + Bit1 oddEven, /* O/E */ + octetstring addressSignals /* address signals */ +} +with { encode (paramLen) "tag=""SNN_lv_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""SNN_lv_paramLen"")).toInt()-1;"; } + +type record SNN_PAR_tlv /* Subsequent number parameter (SNN); Optional(O) format. */ +{ + Bit8 paramType ('00000101'B), /* Parameter Type '00000101'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 spare, /* spare */ + Bit1 oddEven, /* O/E */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x05)"; + encode (paramLen) "tag=""SNN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""SNN_paramLen"")).toInt()-1;"; } + +type record SRI_PAR_v /* Suspend Resume indicators parameter (SRI); Fixed(F) format. */ +{ + Bit1 suspendResumeIndicator, /* bit A: Suspend/resume indicator */ + Bit7 spare /* bits H-B: spare */ +} + +type record TNS_PAR_tlv /* Transit network selection parameter (TNS); Optional(O) format. */ +{ + Bit8 paramType ('00100011'B), /* Parameter Type '00100011'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit4 networkIdentificationPlan, /* Network identification plan */ + Bit3 typeOfNetworkIdentification, /* Type of network identification */ + Bit1 oddEven, /* O/E */ + octetstring networkIdentification /* Network identification */ +} +with { encode "present=bytes(1,0x23)"; + encode (paramLen) "tag=""TNS_paramLen"";"; + encode (networkIdentification) "length=valueOf(getTag(""TNS_paramLen"")).toInt()-1;"; } + +type Bit8 TMR_PAR_v; /* ransmission medium requirement parameter (TMR); Fixed(F) format. */ + +type record TMRP_PAR_tlv /* Transmission medium requirement prime parameter (TMRP); Optional(O) format. */ +{ + Bit8 paramType ('00111110'B), /* Parameter Type '00111110'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit8 transmissionMediumRequirement /* Transmission medium requirement */ +} +with { encode "present=bytes(1,0x3E)"; } + +type record TMU_PAR_tlv /* Transmission medium used parameter (TMU); Optional(O) format. */ +{ + Bit8 paramType ('00110101'B), /* Parameter Type '00110101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit8 transmissionMediumUsed /* Transmission medium used */ +} +with { encode "present=bytes(1,0x35)"; } + +type record USI_PAR_tlv /* User service information parameter (USI); Optional(O) format. */ +{ + Bit8 paramType ('00011101'B), /* Parameter Type '00011101'B */ + Bit8 paramLen, /* Parameter Length field */ + USIContents uSIContents +} +with { encode "present=bytes(1,0x1D)"; + encode (paramLen) "tag=""USI_paramLen"";"; + encode (uSIContents) "length=valueOf(getTag(""USI_paramLen"")).toInt();"; } + +/* Start auxiliary types for user service information parameter (USI) */ +type record USIContents +{ + BCAP_octet3 bCAP_octet3, + BCAP_octet4 bCAP_octet4, + BCAP_octet5 bCAP_octet5 optional, + BCAP_octet6 bCAP_octet6 optional, + BCAP_octet7 bCAP_octet7 optional +} + +type record BCAP_octet3 +{ + Bit5 informationTransferCapability, /* Information transfer capability */ + Bit2 codingStandard, /* Coding standard */ + Bit1 ext /* Extension */ +} + +type record BCAP_octet4 +{ + Bit5 informationTransferRate, /* Information transfer rate */ + Bit2 transferMode, /* Transfer mode */ + Bit1 ext, /* Extension */ + Bit8 rateMultiplier optional /* Rate multiplier */ +} + +type record BCAP_octet5 +{ + Bit5 userInformationLayer1Protocol, /* User information Layer 1 protocol */ + Bit2 layerIdentification ('01'B), /* Layer identification */ + Bit1 ext, /* Extension */ + BCAP_octet5a bCAP_octet5a optional, + BCAP_octet5b1 bCAP_octet5b1 optional, + BCAP_octet5b2 bCAP_octet5b2 optional, + BCAP_octet5c bCAP_octet5c optional, + BCAP_octet5d bCAP_octet5d optional +} + +type record BCAP_octet5a +{ + Bit5 userRate, /* User rate */ + Bit1 negot, /* Negotiation */ + Bit1 synch_asynch, /* Synchronous/asynchronous */ + Bit1 ext /* Extension */ +} + +type record BCAP_octet5b1 +{ + Bit1 spare, /* Spare */ + Bit1 flowControlOnRx, /* Flow control on reception (Rx) */ + Bit1 flowControlOnTx, /* Flow control on transmission (Tx) */ + Bit1 nICOnRx, /* Network independent Clock (NIC) on reception (Rx) */ + Bit1 nICOnTx, /* Network independent Clock (NIC) on transmission (Tx) */ + Bit2 intermediateRate, /* Intermediate rate */ + Bit1 ext /* Extension */ +} + +type record BCAP_octet5b2 +{ + Bit1 spare, /* Spare */ + Bit1 inbandOutbandNegotiation, /* In-band/out-band negotiation */ + Bit1 assignorAssignee, /* Assignor/assignee */ + Bit1 lLINegotiation, /* Logical link identifier negotiation */ + Bit1 mode, /* Mode of operation */ + Bit1 multiFrameSupport, /* Multiple frame establishment support in data link */ + Bit1 hdrNoHdr, /* rate addaption header/no header */ + Bit1 ext /* Extension */ +} + +type record BCAP_octet5c +{ + Bit3 parity, /* Parity information */ + Bit2 numberOfDataBits, /* Number of data bits excluding parity bit if present*/ + Bit2 numberOfStopBits, /* Number of stop bits */ + Bit1 ext /* Extension */ +} + +type record BCAP_octet5d +{ + Bit6 modemType, /* Modem type */ + Bit1 duplexMode, /* Duplex mode*/ + Bit1 ext /* Extension */ +} + +type record BCAP_octet6 +{ + Bit5 userInformationLayer2Protocol, /* User information Layer 2 protocol */ + Bit2 layerIdentification ('10'B), /* Layer identification */ + Bit1 ext ('1'B) /* Extension */ +} + +type record BCAP_octet7 +{ + Bit5 userInformationLayer3Protocol, /* User information Layer 3 protocol */ + Bit2 layerIdentification ('11'B), /* Layer identification */ + Bit1 ext ('1'B) /* Extension */ +} +/* End auxiliary types for user service information parameter (USI) */ + + +type record USIP_PAR_tlv /* User service information prime parameter (USIP); Optional(O) format. */ +{ + Bit8 paramType ('00110000'B), /* Parameter Type '00110000'B */ + Bit8 paramLen, /* Parameter Length field */ + USIContents uSIContents +} +with { encode "present=bytes(1,0x30)"; + encode (paramLen) "tag=""USIP_paramLen"";"; + encode (uSIContents) "length=valueOf(getTag(""USIP_paramLen"")).toInt();"; } + + +type record UTSI_PAR_tlv /* User teleservice information parameter (UTSI); Optional(O) format. */ +{ + Bit8 paramType ('00110100'B), /* Parameter Type '00110100'B */ + Bit8 paramLen ('00000011'B), /* Parameter Length field */ + Bit2 presentation, /* Presentation */ + Bit3 interpretation, /* Interpretation */ + Bit2 codingStandard, /* Coding standard */ + Bit1 ext1, /* Extension */ + Bit7 highLayerCharacteristicsIdentification, /* High layer characteristics identification */ + Bit1 ext2, /* Extension */ + Bit7 extendedLayerCharacteristicsIdentification, /* Extended layer characteristics identification */ + Bit1 ext3 /* Extension */ +} +with { encode "present=bytes(1,0x34)"; } + +type record UUID_PAR_tlv /* User-to-user indicators parameter (UUID); Optional(O) format. */ +{ + Bit8 paramType ('00101010'B), /* Parameter Type '00101010'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 request_response, /* bit A: Type */ + Bit2 service1, /* bits C B: Service 1 */ + Bit2 service2, /* bits E D: Service 2 */ + Bit2 service3, /* bits G F: Service 3 */ + Bit1 networkDiscardIndicator /* bit H: Network discard indicator (only applicable if bit A equals 1 (response), otherwise: spare) */ +} +with { encode "present=bytes(1,0x2A)"; } + +type record UUIF_PAR_lv /* User-to-user information parameter (UUIF); Variable(V) format. */ +{ + Bit8 paramLen, /* Parameter Length field */ + octetstring userToUserInformation /* User-to-user information */ +} +with { encode (paramLen) "tag=""UUIF_lv_paramLen"";"; + encode (userToUserInformation) "length=valueOf(getTag(""UUIF_lv_paramLen"")).toInt();"; } + +type record UUIF_PAR_tlv /* User-to-user information parameter (UUIF); Optional(O) format. */ +{ + Bit8 paramType ('00100000'B), /* Parameter Type '00100000'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring userToUserInformation /* User-to-user information */ +} +with { encode "present=bytes(1,0x20)"; + encode (paramLen) "tag=""UUIF_paramLen"";"; + encode (userToUserInformation) "length=valueOf(getTag(""UUIF_paramLen"")).toInt();"; } + +type record BGV_PAR_tlv /* Backward GVNS parameter (BGV); Optional(O) format. */ +{ + Bit8 paramType ('01001101'B), /* Parameter Type '01001101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 terminatingAccessIndicator, /* bits B A: Terminating access indicator */ + Bit5 spare, /* bits G-C: spare */ + Bit1 ext /* bit H: Extension indicator: as for 3.25 a). */ +} +with { encode "present=bytes(1,0x4D)"; } + +type record CCSS_PAR_tlv /* CCSS parameter (CCSS); Optional(O) format. */ +{ + Bit8 paramType ('01001011'B), /* Parameter Type '01001011'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 cCSSCallIndicator, /* bit A: CCSS call indicator */ + Bit7 spare /* bits H-B: spare */ +} +with { encode "present=bytes(1,0x4B)"; } + +type record CTN_PAR_tlv /* Call transfer number parameter (CTN); Optional(O) format. */ +{ + Bit8 paramType ('01000101'B), /* Parameter Type '01000101'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 screeningIndicator, /* Screening indicator */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 spare, /* spare */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x45)"; + encode (paramLen) "tag=""CTN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""CTN_paramLen"")).toInt()-2;"; } + +type record CTR_PAR_tlv /* Call transfer reference parameter (CTR); Optional(O) format. */ +{ + Bit8 paramType ('01000011'B), /* Parameter Type '01000011'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit8 callTransferIdentity /* Call transfer identity */ +} +with { encode "present=bytes(1,0x43)"; } + +type record FGVNS_PAR_tlv /* Forward GVNS parameter (FGVNS); Optional(O) format. */ +{ + Bit8 paramType ('01001100'B), /* Parameter Type '01001100'B */ + Bit8 paramLen, /* Parameter Length field */ + FGVNSContents fGVNSContents +} +with { encode "present=bytes(1,0x4C)"; + encode (paramLen) "tag=""FGVNS_paramLen"";"; + encode (fGVNSContents) "length=valueOf(getTag(""FGVNS_paramLen"")).toInt();"; } + +/* Start auxiliary types for forward GVNS parameter (FGVNS) */ +type record FGVNSContents +{ + OriginatingParticipatingServiceProvider originatingParticipatingServiceProvider, /* Originating participating service provider (OPSP) (Structured Type) */ + GVNSUserGroup gVNSUserGroup, /* GVNS user group (GUG) (Structured Type) */ + TerminatingNetworkRoutingNumber terminatingNetworkRoutingNumber /* Terminating network routing number (TNRN) (Structured Type) */ +} + +type record OriginatingParticipatingServiceProvider +{ + Bit4 oPSPLengthIndicator, /* OPSP length indicator */ + Bit3 spare, /* spare */ + Bit1 oddEven, /* O/E */ + Oct0to4 digits /* digits */ +} +with { encode (oPSPLengthIndicator) "tag=""OPSP_paramLen"";"; + encode (digits) "length=valueOf(getTag(""OPSP_paramLen"")).toInt();"; } + +type record GVNSUserGroup +{ + Bit4 gUGLengthIndicator, /* GUG length indicator */ + Bit3 spare, /* spare */ + Bit1 oddEven, /* O/E */ + Oct0to8 digits /* digits */ +} +with { encode (gUGLengthIndicator) "tag=""GUG_paramLen"";"; + encode (digits) "length=valueOf(getTag(""GUG_paramLen"")).toInt();"; } + +type record TerminatingNetworkRoutingNumber +{ + Bit4 tNRNLengthIndicator, /* TNRN length indicator */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 oddEven, /* O/E */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 spare, /* spare */ + Oct0to9 digits /* digits */ +} +with { encode (tNRNLengthIndicator) "tag=""TNRN_paramLen"";"; + encode (digits) "length=valueOf(getTag(""TNRN_paramLen"")).toInt();"; } +/* End auxiliary types for forward GVNS parameter (FGVNS) */ + +type record LPPI_PAR_tlv /* Loop prevention indicators parameter (LPPI); Optional(O) format. */ +{ + Bit8 paramType ('01000100'B), /* Parameter Type '01000100'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 request_response, /* bit A: Type */ + Bit2 responseIndicator, /* bits C B: Response indicator (only if bit A equals to 1 (response), otherwise: spare) */ + Bit5 spare /* bits H-D: spare */ +} +with { encode "present=bytes(1,0x44)"; } + +type record NMC_PAR_tlv /* Network management controls parameter (NMC); Optional(O) format. */ +{ + Bit8 paramType ('01011011'B), /* Parameter Type '01011011'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 temporaryAlternativeRouting, /* bit A: Temporary Alternative Routing (TAR) indicator */ + Bit6 spare, /* bits G-B: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x5B)"; } + +type record CAM_PAR_tlv /* Circuit assignment map parameter (CAM); Optional(O) format. */ +{ + Bit8 paramType ('00100101'B), /* Parameter Type '00100101'B */ + Bit8 paramLen ('00000101'B), /* Parameter Length field */ + Bit6 mapType, /* Map type */ + Bit2 spare, /* spare */ + Bit32 mappingBits /* mapping bits */ +} +with { encode "present=bytes(1,0x25)"; } + +type record CRI_PAR_tlv /* Correlation id parameter (CRI); Optional(O) format. */ +{ + Bit8 paramType ('01100101'B), /* Parameter Type '01100101'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring correlationId /* Correlation id */ +} +with { encode "present=bytes(1,0x65)"; + encode (paramLen) "tag=""CRI_paramLen"";"; + encode (correlationId) "length=valueOf(getTag(""CRI_paramLen"")).toInt();"; } + +type record SCFI_PAR_tlv /* SCF id parameter (SCFI); Optional(O) format. */ +{ + Bit8 paramType ('01100110'B), /* Parameter Type '01100110'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring sCFId /* SCF id */ +} +with { encode "present=bytes(1,0x66)"; + encode (paramLen) "tag=""SCFI_paramLen"";"; + encode (sCFId) "length=valueOf(getTag(""SCFI_paramLen"")).toInt();"; } + +type record CDTI_PAR_tlv /* Call diversion treatment indicators parameter (CDTI); Optional(O) format. */ +{ + Bit8 paramType ('01101110'B), /* Parameter Type '01101110'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 callToBeDivertedIndicator, /* bits BA: Call to be diverted indicator */ + Bit5 spare, /* bits G-C: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x6E)"; } + +type record CIN_PAR_tlv /* Called IN number parameter (CIN); Optional(O) format. */ +{ + Bit8 paramType ('01101111'B), /* Parameter Type '01101111'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 spare1, /* spare */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 spare2, /* spare */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x6F)"; + encode (paramLen) "tag=""CIN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""CIN_paramLen"")).toInt()-2;"; } + +type record COTI_PAR_tlv /* Call offering treatment indicators parameter (COTI); Optional(O) format. */ +{ + Bit8 paramType ('01110000'B), /* Parameter Type '01110000'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 callToBeOfferedIndicator, /* bits BA: Call to be offered indicator */ + Bit6 spare, /* bits G-C: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x70)"; } + +type record CTI_PAR_tlv /* Conference treatment indicators parameter (CTI); Optional(O) format. */ +{ + Bit8 paramType ('01110010'B), /* Parameter Type '01110010'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 conferenceAcceptanceIndicator, /* bits BA: Conference acceptance indicator (Note) */ + Bit5 spare, /* bits G-C: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x72)"; } + +type record DIF_PAR_tlv /* Display information parameter (DIF); Optional(O) format. */ +{ + Bit8 paramType ('01110011'B), /* Parameter Type '01110011'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring displayInformation /* Display information */ +} +with { encode "present=bytes(1,0x73)"; + encode (paramLen) "tag=""DIF_paramLen"";"; + encode (displayInformation) "length=valueOf(getTag(""DIF_paramLen"")).toInt();"; } + +type record UAI_PAR_tlv /* UID action indicators parameter (UAI); Optional(O) format. */ +{ + Bit8 paramType ('01110100'B), /* Parameter Type '01110100'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 throughConnInstructionIndicator, /* bit A: Through-connection instruction indicator */ + Bit1 t9TimerInstructionIndicator, /* bit B: T9 timer instruction indicator */ + Bit5 spare, /* bits G-C: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x74)"; } + +type record UCI_PAR_tlv /* UID capability indicators parameter (UCI); Optional(O) format. */ +{ + Bit8 paramType ('01110101'B), /* Parameter Type '01110101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 througConnectionIndicator, /* bit A: Through-connection indicator */ + Bit1 t9TimerIndicator, /* bit B: T9 timer indicator */ + Bit5 spare, /* bits G-C: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x75)"; } + +type record HPC_PAR_tlv /* Hop counter parameter (HPC); Optional(O) format. */ +{ + Bit8 paramType ('00111101'B), /* Parameter Type '00111101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit5 hopCounter, /* bits EDCBA: Hop counter */ + Bit3 spare /* bits HGF: spare */ +} +with { encode "present=bytes(1,0x7D)"; } + +type record CCRQ_PAR_tlv /* Collect call request parameter (CCRQ); Optional(O) format. */ +{ + Bit8 paramType ('01111001'B), /* Parameter Type '01111001'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 collectCallRequestIndicator, /* bit A: Collect call request indicator */ + Bit7 spare /* bits H-B: spare */ +} +with { encode "present=bytes(1,0x79)"; } + +type record APP_PAR_tlv /* Application transport parameter parameter (APP); Optional(O) format. */ +{ + Bit8 paramType ('01111000'B), /* Parameter Type '01111000'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 applicationContextIdentifier_lsb, /* Application context identifier, least significant bits */ + Bit1 ext1, /* Extension */ + Bit7 applicationContextIdentifier_msb, /* Application context identifier, most significant bits; optional */ + Bit1 ext1a, /* Extension */ + Bit1 releaseCallIndicator, /* bit 1: Release call indicator (RCI) */ + Bit1 sendNotificationIndicator, /* bit 2: Send notification indicator (SNI) */ + Bit5 spare, /* spare */ + Bit1 ext2, /* Extension */ + Bit6 aPMSegmentationIndicator, /* d: APM segmentation indicator */ + Bit1 sequenceIndicator, /* E: Sequence indicator (SI) */ + Bit1 ext3, /* Extension */ + Bit7 segmentationLocalReference, /* f: Segmentation local reference (SLR) */ + Bit1 ext3a, /* Extension */ + APMUserInformation aPMUserInformation /* APM User Information */ +} +with { encode "present=bytes(1,0x78)"; + encode (paramLen) "tag=""APP_paramLen"";"; + encode (aPMUserInformation) "length=valueOf(getTag(""APP_paramLen"")).toInt()-5;"; } + + /* Start auxiliary types for application transport parameter parameter (APP) */ +type record Address +{ + Bit8 addressLen, /* Address Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit4 spare, /* spare */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 iNN, /* Internal Network Number indicator */ + octetstring addressSignals /* address signals */ +} +with { encode (addressLen) "tag=""AdrLen"";"; + encode (addressSignals) "length=valueOf(getTag(""AdrLen"")).toInt()-2;"; } + +type octetstring APMUserInformation_g1; /* used APM'98'-user application */ + +type record APMUserInformation_g2 /* used APM'2000'-user application */ +{ + Address originatingAddress, + Address destinationAddress, + octetstring encapsulatedApplicationInformation +} + +type union APMUserInformation +{ + APMUserInformation_g1 aPMUserInformation_g1, + APMUserInformation_g2 aPMUserInformation_g2 +} +/* End auxiliary types for application transport parameter parameter (APP) */ + +type record CCPI_PAR_tlv /* CCNR possible indicator parameter (CCPI); Optional(O) format. */ +{ + Bit8 paramType ('01111010'B), /* Parameter Type '01111010'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 cCNRPossibleIndicator, /* bit A: CCNR possible indicator */ + Bit7 spare /* bits H-B: spare */ +} +with { encode "present=bytes(1,0x7A)"; } + +type record PICP_PAR_tlv /* Pivot capability parameter (PICP); Optional(O) format. */ +{ + Bit8 paramType ('01111011'B), /* Parameter Type '01111011'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit3 pivotPossibleIndicator, /* bits CBA: Pivot possible indicator */ + Bit3 spare, /* bits FED: spare */ + Bit1 interwToRedirectionIndicator, /* bit G: Interworking to redirection indicator (national use) */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x7B)"; } + +type record PRI_PAR_tlv /* Pivot routing indicators parameter (PRI); Optional(O) format. */ +{ + Bit8 paramType ('01111100'B), /* Parameter Type '01111100'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit7 pivotRoutingIndicators, /* bits G F E D C B A: Pivot routing indicators */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x7C)"; } + +type record CDIN_PAR_tlv /* Called directory number parameter (CDIN); Optional(O) format. */ +{ + Bit8 paramType ('01111101'B), /* Parameter Type '01111101'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit4 spare, /* spare */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 iNN, /* Internal Network Number indicator */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x7D)"; + encode (paramLen) "tag=""CDIN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""CDIN_paramLen"")).toInt()-2;"; } + +type record OCI_PAR_tlv /* Original called IN number parameter (OCI); Optional(O) format. */ +{ + Bit8 paramType ('01111111'B), /* Parameter Type '01111111'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit2 spare1, /* spare */ + Bit2 addrPresRestrInd, /* Address presentation restricted indicator */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 spare2, /* spare */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x7F)"; + encode (paramLen) "tag=""OCI_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""OCI_paramLen"")).toInt()-2;"; } + +type record CGL_PAR_tlv /* Calling geodetic location parameter (CGL); Optional(O) format. */ +{ + Bit8 paramType ('10000001'B), /* Parameter Type '10000001'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit2 screeningIndicator, /* b) Screening indicator */ + Bit2 locationPresRestrIndicator, /* a) Location presentation restricted indicator */ + Bit4 spare, /* spare */ + Bit7 typeOfShape, /* Type of shape */ + Bit1 ext, /* Extension */ + ShapeDescription shapeDescription /* Shape description */ +} +with { encode "present=bytes(1,0x81)"; + encode (paramLen) "tag=""CGL_paramLen"";"; + encode (shapeDescription) "length=valueOf(getTag(""CGL_paramLen"")).toInt()-2;"; } + +/* Start auxiliary types for calling geodetic location parameter (CGL) */ +type record EllipsoidPointShapeDescription +{ + Oct3 degreesOfLatitude, /* Degrees of latitude */ + Oct3 degreesOfLongitude /* Degrees of longitude */ +} + +type record EllipsoidPointWithUncertaintyShapeDescription +{ + Oct3 degreesOfLatitude, /* Degrees of latitude */ + Oct3 degreesOfLongitude, /* Degrees of longitude */ + Bit7 uncertaintyCode, /* Uncertainty code */ + Bit1 spare1, /* spare */ + Bit7 confidence, /* Confidence */ + Bit1 spare2 /* spare */ +} + +type record PointWithAltitudeAndUncertaintyShapeDescription +{ + Oct3 degreesOfLatitude, /* Degrees of latitude */ + Oct3 degreesOfLongitude, /* Degrees of longitude */ + Bit7 uncertaintyCode1, /* Uncertainty code */ + Bit1 spare1, /* spare */ + Oct2 altitude, /* Altitude */ + Bit7 uncertaintyCode2, /* uncertainty code */ + Bit1 spare, /* spare */ + Bit7 confidence, /* Confidence */ + Bit1 spare2 /* spare */ +} + +type record EllipseOnTheEllipsoidShapeDescription +{ + Oct3 degreesOfLatitude, /* Degrees of latitude */ + Oct3 degreesOfLongitude, /* Degrees of longitude */ + Bit7 majorRadius, /* Major radius */ + Bit1 spare1, /* spare */ + Bit7 minorRadius, /* Minor radius */ + Bit1 spare2, /* spare */ + Bit8 orientation, /* Orientation */ + Bit7 confidence, /* Confidence */ + Bit1 spare3 /* spare */ +} + +type record EllipsoidCircleSectorShapeDescription +{ + Oct3 degreesOfLatitude, /* Degrees of latitude */ + Oct3 degreesOfLongitude, /* Degrees of longitude */ + Bit7 radius, /* Radius */ + Bit1 spare1, /* spare */ + Bit8 offset, /* Offset */ + Bit8 includedAngle, /* Included angle */ + Bit7 confidence, /* Confidence */ + Bit1 spare2 /* spare */ +} + +type record PolygonShapeDescription +{ + Bit4 numberOfPoints, /* Number of points */ + Bit4 spare, /* spare */ + octetstring contents /* contents */ +} +with { encode (numberOfPoints) "tag=""numOfPoints"";"; + encode (contents) "length=valueOf(getTag(""numOfPoints"")).toInt()*6;"; } + +type union ShapeDescription +{ + EllipsoidPointShapeDescription ellipsoidPointShapeDescription, + EllipsoidPointWithUncertaintyShapeDescription ellipsoidPointWithUncertaintyShapeDescription, + PointWithAltitudeAndUncertaintyShapeDescription pointWithAltitudeAndUncertaintyShapeDescription, + EllipseOnTheEllipsoidShapeDescription ellipseOnTheEllipsoidShapeDescription, + EllipsoidCircleSectorShapeDescription ellipsoidCircleSectorShapeDescription, + PolygonShapeDescription polygonShapeDescription +} +/* End auxiliary types for calling geodetic location parameter (CGL) */ + +type record HTRI_PAR_tlv /* HTR information parameter (HTRI); Optional(O) format. */ +{ + Bit8 paramType ('10000010'B), /* Parameter Type '10000010'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit7 natureOfAddressIndicator, /* Nature of address indicator */ + Bit1 oddEven, /* O/E */ + Bit4 spare1, /* spare */ + Bit3 numberingPlanIndicator, /* Numbering plan indicator */ + Bit1 spare2, /* spare */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x82)"; + encode (paramLen) "tag=""HTRI_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""HTRI_paramLen"")).toInt()-2;"; } + +type record NRN_PAR_tlv /* Network routing number parameter (NRN); Optional(O) format. */ +{ + Bit8 paramType ('10000100'B), /* Parameter Type '10000100'B */ + Bit8 paramLen, /* Parameter Length field */ + Bit4 natureOfAddressIndicator, /* Nature of address indicator */ + Bit3 numberingPlanIdentifier, /* Numbering Plan Identifier */ + Bit1 oddEven, /* O/E */ + octetstring addressSignals /* address signals */ +} +with { encode "present=bytes(1,0x84)"; + encode (paramLen) "tag=""NRN_paramLen"";"; + encode (addressSignals) "length=valueOf(getTag(""NRN_paramLen"")).toInt()-1;"; } + +type record QRC_PAR_tlv /* Query on release capability parameter (QRC); Optional(O) format. */ +{ + Bit8 paramType ('10000101'B), /* Parameter Type '10000101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit1 qoRCapabilityIndicator, /* bit A: QoR capability indicator */ + Bit6 spare, /* bits G-B: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x85)"; } + +type record PST_PAR_tlv /* Pivot status parameter (PST); Optional(O) format. */ +{ + Bit8 paramType ('10000110'B), /* Parameter Type '10000110'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 pivotStatusIndicator, /* bits BA: Pivot status indicator */ + Bit5 spare, /* bits GFEDC: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x86)"; } + +type record PICN_PAR_tlv /* Pivot counter parameter (PICN); Optional(O) format. */ +{ + Bit8 paramType ('10000111'B), /* Parameter Type '10000111'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit5 pivotCounter, /* bits EDCBA: Pivot counter */ + Bit3 spare /* bits HGF: spare */ +} +with { encode "present=bytes(1,0x87)"; } + +type record PRFI_PAR_tlv /* Pivot routing forward information parameter (PRFI); Optional(O) format. */ +{ + Bit8 paramType ('10001000'B), /* Parameter Type '10001000'B */ + Bit8 paramLen, /* Parameter Length field */ + InformationTypes_Forward informationTypes_Forward /* information types */ +} +with { encode "present=bytes(1,0x88)"; + encode (paramLen) "tag=""PRFI_paramLen"";"; + encode (informationTypes_Forward) "length=valueOf(getTag(""PRFI_paramLen"")).toInt();"; } + +/* Start auxiliary types for + - pivot routing forward information parameter (PRFI) + - pivot routing backward information parameter (PRBI) + - redirect forward information parameter (RFI) + - redirect backward information parameter (RBI) */ +type record RIEP_IT /* Return to invoking exchange possible information type */ +{ + Bit8 informationTypeTag ('00000001'B), /* information type tag '00000001'B */ + Bit8 informationTypeLength ('00000000'B) /* information type length */ +} +with { encode "present=bytes(1,0x01)"; } + +type record RIECI_IT /* Return to invoking exchange call identifier information type */ +{ + Bit8 informationTypeTag ('00000010'B), /* information type tag '00000010'B */ + Bit8 informationTypeLength('00000101'B), /* information type length */ + Bit24 callIdentity, /* Call identity */ + Bit14 signallingPointCode, /* Signalling point code */ + Bit2 spare /* spare */ +} +with { encode "present=bytes(1,0x02)"; } + +type record PerformingReason +{ + Bit7 performingReason, /* Performing Pivot/Redirect Reason */ + Bit1 ext, /* Extension indicator */ + Bit4 possibleIndicator, /* Pivot/Redirect possible indicator at performing exchange */ + Bit4 spare /* spare */ +} + +type set of PerformingReason PerformingReasons; + +type record PPRI_IT /* Performing pivot/redirect indicator information type */ +{ + Bit8 informationTypeTag ('00000011'B), /* information type tag '00000011'B */ + Bit8 informationTypeLength, /* information type length */ + PerformingReasons performingReasons /* Performing Pivot/Redirect Reasons */ +} +with { encode "present=bytes(1,0x03)"; + encode (informationTypeLength) "tag=""PPRI_informationTypeLength"";"; + encode (performingReasons) "length=valueOf(getTag(""PPRI_informationTypeLength"")).toInt();"; } + +type record IPRRF_IT /* Invoking pivot/redirect reason forward information type */ +{ + Bit8 informationTypeTag ('00000100'B), /* information type tag '00000100'B */ + Bit8 informationTypeLength ('00000001'B), /* information type length */ + Bit7 invokingReason, /* Invoking pivot/redirect reason */ + Bit1 ext /* Extension indicator */ +} +with { encode "present=bytes(1,0x04)"; } + +type record IPRRB_IT /* Invoking pivot/redirect reason backward information type */ +{ + Bit8 informationTypeTag ('00000011'B), /* information type tag '00000011'B */ + Bit8 informationTypeLength ('00000001'B), /* information type length */ + Bit7 invokingReason, /* Invoking pivot/redirect reason */ + Bit1 ext /* Extension indicator */ +} +with { encode "present=bytes(1,0x03)"; } + +type record RIED_IT /* Return to invoking exchange duration */ +{ + Bit8 informationTypeTag ('00000001'B), /* information type tag '00000001'B */ + Bit8 informationTypeLength, /* information type length */ + Oct1to2 returnToInvokingExchangeDuration /* Return to invoking exchange duration in seconds */ +} +with { encode "present=bytes(1,0x01)"; + encode (informationTypeLength) "tag=""RIED_informationTypeLength"";"; + encode (returnToInvokingExchangeDuration) "length=valueOf(getTag(""RIED_informationTypeLength"")).toInt();"; } + +type union InformationType_Forward /* Information type for Pivot/Redirect routing forward information parameters */ +{ + RIEP_IT rIEP_IT, + RIECI_IT rIECI_IT, + PPRI_IT pPRI_IT, + IPRRF_IT iPRRF_IT +} + +type union InformationType_Backward /* Information type for Pivot/Redirect routing backward information parameters */ +{ + RIED_IT rIED_IT, + RIECI_IT rIECI_IT, + IPRRB_IT iPRRB_IT +} + +type set of InformationType_Forward InformationTypes_Forward; + +type set of InformationType_Backward InformationTypes_Backward; +/* End auxiliary types for + - pivot routing forward information parameter (PRFI) + - pivot routing backward information parameter (PRBI) + - redirect forward information parameter (RFI) + - redirect backward information parameter (RBI) */ + +type record PRBI_PAR_tlv /* Pivot routing backward information parameter (PRBI); Optional(O) format. */ +{ + Bit8 paramType ('10001001'B), /* Parameter Type '10001001'B */ + Bit8 paramLen, /* Parameter Length field */ + InformationTypes_Backward informationTypes_Backward /* information types */ +} +with { encode "present=bytes(1,0x89)"; + encode (paramLen) "tag=""PRBI_paramLen"";"; + encode (informationTypes_Backward) "length=valueOf(getTag(""PRBI_paramLen"")).toInt();"; } + +type record RCP_PAR_tlv /* Redirect capability parameter (RCP); Optional(O) format. */ +{ + Bit8 paramType ('01001110'B), /* Parameter Type '01001110'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit3 redirectPossibleIndicator, /* bits CBA: Redirect possible indicator */ + Bit4 spare, /* bits GFED: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x4E)"; } + +type record RCN_PAR_tlv /* Redirect counter parameter (RCN); Optional(O) format. */ +{ + Bit8 paramType ('01110111'B), /* Parameter Type '01110111'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit5 redirectCounter, /* bits EDCBA: Redirect counter */ + Bit3 spare /* bits HGF: spare */ +} +with { encode "present=bytes(1,0x77)"; } + +type record RST_PAR_tlv /* Redirect status parameter (RST); Optional(O) format. */ +{ + Bit8 paramType ('10001010'B), /* Parameter Type '10001010'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit2 redirectStatusIndicator, /* bits BA: Redirect status indicator */ + Bit5 spare, /* bits GFEDC: spare */ + Bit1 ext /* bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x8A)"; } + +type record RFI_PAR_tlv /* Redirect forward information parameter (RFI); Optional(O) format. */ +{ + Bit8 paramType ('10001011'B), /* Parameter Type '10001011'B */ + Bit8 paramLen, /* Parameter Length field */ + InformationTypes_Forward informationTypes_Forward /* information types */ +} +with { encode "present=bytes(1,0x8B)"; + encode (paramLen) "tag=""RFI_paramLen"";"; + encode (informationTypes_Forward) "length=valueOf(getTag(""RFI_paramLen"")).toInt();"; } + + +type record RBI_PAR_tlv /* Redirect backward information parameter (RBI); Optional(O) format. */ +{ + Bit8 paramType ('10001100'B), /* Parameter Type '10001100'B */ + Bit8 paramLen, /* Parameter Length field */ + InformationTypes_Backward informationTypes_Backward /* information types */ +} +with { encode "present=bytes(1,0x8C)"; + encode (paramLen) "tag=""RBI_paramLen"";"; + encode (informationTypes_Backward) "length=valueOf(getTag(""RBI_paramLen"")).toInt();"; } + + +type record NPFI_PAR_tlv /* Number portability forward information parameter (NPFI); Optional(O) format. */ +{ + Bit8 paramType ('10001101'B), /* Parameter Type '10001101'B */ + Bit8 paramLen ('00000001'B), /* Parameter Length field */ + Bit4 numberPortabilityStatusIndicator, /* a) bits DCBA: Number portability status indicator */ + Bit3 spare, /* b) bits GFE: spare */ + Bit1 ext /* c) bit H: Extension indicator */ +} +with { encode "present=bytes(1,0x8D)"; } + +type record ARR_PAR_tlv /* Automatic re-routing parameter (ARR); Optional(O) format. */ +{ + Bit8 paramType ('10010110'B), /* Parameter Type '10010110'B */ + Bit8 paramLen ('00000010'B), /* Parameter Length field */ + Bit6 reRoutingCounter, /* Re-routing counter */ + Bit1 reRoutingInhibitIndicator, /* Re-routing inhibit indicator */ + Bit1 ext1, /* Extension */ + ARR_Octet1a aRR_Octet1a optional /* Octet 1a */ +} +with { encode "present=bytes(1,0x96)"; } + +/* Start auxiliary types for automatic re-routing parameter (ARR) */ +type record ARR_Octet1a +{ + Bit7 reRoutingReason, /* Re-routing reason */ + Bit1 ext1a /* Extension */ +} +/* End auxiliary types for automatic re-routing parameter (ARR) */ + +type record UNKNOWN_PAR_tlv /* Parameter with unknown type. */ +{ + Bit8 paramType, /* Unknown Parameter Type e.g. '10001111'B */ + Bit8 paramLen, /* Parameter Length field */ + octetstring contents /* Parameter Contents */ +} + +} diff --git a/IsupAts/SipIsup_ISUP_Steps.ttcn b/IsupAts/SipIsup_ISUP_Steps.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..8c3c0d8f7ab0e6bc5e5933d8c9ccd699db90a747 --- /dev/null +++ b/IsupAts/SipIsup_ISUP_Steps.ttcn @@ -0,0 +1,1796 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides test steps (including altsteps) used at the ISUP/BICC side. +*/ +module SipIsup_ISUP_Steps +{ + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_AbstractData all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + //AtsIsup + import from SipIsup_TestSystem all; + import from SipIsup_ISUP_Constants all; + import from SipIsup_ISUP_ModuleParams all; + import from SipIsup_ISUP_MsgTemplates all; + import from SipIsup_ISUP_MsgTypes all; + import from SipIsup_ISUP_ParamTemplates all; + import from SipIsup_ISUP_ParamTypes all; + +group behaviour +{ + +group SipIsup_ISUP_Defaults +{ + altstep a_IsupBicc_Def_Generic() runs on IsupBiccComponent + { + // COT with Continuity Indicator parameter indicating successful continuity check is ignored + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cOT_MSG := mw_COT_CTI}, v_SLS)) + { + repeat; + } + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { cOT_MSG := mw_COT_CTI})) + { + repeat; + } + + /* For unexpected message 'Address complete' + store CIC values, release connection and stop, + if cic = active cic, + for expected ACM do nothing and return */ + [PX_ISUP_Isup] IsupBiccP.receive( + mw_ISUP_MSG_ind(?, { aCM_MSG := mw_ACM_MSG_anyOpt(mw_BCI_PAR_v_any)}, v_SLS) + )-> value v_ACM_r + { + v_CircuitIdentityCodeDef := v_ACM_r.circuitIdentityCode.cicv; + if((v_CircuitIdentityCodeDef == v_CircuitIdentityCode1) and (v_ACM_expected1 == false)) + { + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode1, { rEL_MSG := m_REL_MSG_Def}, v_SLS)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else if((v_CircuitIdentityCodeDef == v_CircuitIdentityCode2) and (v_ACM_expected2 == false)) + { + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode2, { rEL_MSG := m_REL_MSG_Def}, v_SLS2)); + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode1, { rEL_MSG := m_REL_MSG_Def}, v_SLS)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else if((v_CircuitIdentityCodeDef == v_CircuitIdentityCode1) and (v_ACM_expected1 == true)) + { + v_ACM_expected1 := false; + repeat; + } + else if((v_CircuitIdentityCodeDef == v_CircuitIdentityCode2) and (v_ACM_expected2 == true)) + { + v_ACM_expected2 := false; + repeat; + } + else {repeat;} + } + + [not PX_ISUP_Isup] IsupBiccP.receive( + mw_BICC_MSG_ind(?, { aCM_MSG := mw_ACM_MSG_anyOpt(mw_BCI_PAR_v_any)}) + )-> value v_ACM_r + { + v_CallInstanceCodeDef := v_ACM_r.callInstanceCode; + if((v_CallInstanceCodeDef == v_CallInstanceCode1) and (v_ACM_expected1 == false)) + { + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode1, { rEL_MSG := m_REL_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else if((v_CallInstanceCodeDef == v_CallInstanceCode2) and (v_ACM_expected2 == false)) + { + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode2, { rEL_MSG := m_REL_MSG_Def})); + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode1, { rEL_MSG := m_REL_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else if((v_CallInstanceCodeDef == v_CallInstanceCode1) and (v_ACM_expected1 == true)) + { + v_ACM_expected1 := false; + repeat; + } + else if((v_CallInstanceCodeDef == v_CallInstanceCode2) and (v_ACM_expected2 == true)) + { + v_ACM_expected2 := false; + repeat; + } + else {repeat;} + } + + /* For unexpected ISUP message 'Initial address' + store CIC and SLS values, release connection and stop */ + [PX_ISUP_Isup] IsupBiccP.receive( + mw_ISUP_MSG_ind(?, { iAM_MSG := mw_IAM_MSG_anyOpt(mw_NCI_PAR_v_any, mw_FCI_PAR_v_any, ?, ?, mw_CDN_PAR_lv_any)}, ?) + )-> value v_IAM_r + { + v_CircuitIdentityCodeDef := v_IAM_r.circuitIdentityCode.cicv; + v_SLS := v_IAM_r.routingLabel.sls; + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCodeDef, { rEL_MSG := m_REL_MSG_Def}, v_SLS)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + + [not PX_ISUP_Isup] IsupBiccP.receive( + mw_BICC_MSG_ind(?, { iAM_MSG := mw_IAM_MSG_anyOpt(mw_NCI_PAR_v_any, mw_FCI_PAR_v_any, ?, ?, mw_CDN_PAR_lv_any)}) + )-> value v_IAM_r + { + v_CallInstanceCodeDef := v_IAM_r.callInstanceCode; + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCodeDef, { rEL_MSG := m_REL_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + + /* For unexpected messages + store CIC values, release connection and stop, + if cic = active cic */ + [PX_ISUP_Isup] IsupBiccP.receive( + mw_ISUP_MSG_ind(?, ?, ?) + )-> value v_ANY_r + { + v_CircuitIdentityCodeDef := v_ANY_r.circuitIdentityCode.cicv; + if(v_CircuitIdentityCodeDef == v_CircuitIdentityCode1) + { + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode1, { rLC_MSG := m_RLC_MSG_Def}, v_SLS)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else if(v_CircuitIdentityCodeDef == v_CircuitIdentityCode2) + { + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode2, { rLC_MSG := m_RLC_MSG_Def}, v_SLS2)); + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode1, { rLC_MSG := m_RLC_MSG_Def}, v_SLS)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else + {repeat;} + } + + [not PX_ISUP_Isup] IsupBiccP.receive( + mw_BICC_MSG_ind(?, ?) + )-> value v_ANY_r + { + v_CallInstanceCodeDef := v_ANY_r.callInstanceCode; + if(v_CallInstanceCodeDef == v_CallInstanceCode1) + { + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else if(v_CallInstanceCodeDef == v_CallInstanceCode2) + { + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode2, { rLC_MSG := m_RLC_MSG_Def})); + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + else + {repeat;} + } + + [PX_ISUP_Isup] any timer.timeout + { + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode1, { rEL_MSG := m_REL_MSG_Def}, v_SLS)); + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode2, { rEL_MSG := m_REL_MSG_Def}, v_SLS2)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + + [not PX_ISUP_Isup] any timer.timeout + { + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_Def})); + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode2, { rLC_MSG := m_RLC_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + [] IsupBiccP.receive (mw_BearerRelease_ind(v_CallInstanceCode1)) + { + v_ISUP_BearerState1 := 0; + } + [] IsupBiccP.receive (mw_BearerRelease_ind(v_CallInstanceCode2)) + { + v_ISUP_BearerState2 := 0; + } + [] IsupBiccP.receive (m_BearerRelease_cnf(v_CallInstanceCode1)) + { + v_ISUP_BearerState1 := 0; + } + [] IsupBiccP.receive (m_BearerRelease_cnf(v_CallInstanceCode2)) + { + v_ISUP_BearerState2 := 0; + } + [] IsupBiccP.receive( mw_BearerSetup_acc(v_CallInstanceCode1)) + { + v_ISUP_BearerState1 := 3; + } + [] IsupBiccP.receive( mw_BearerSetup_acc(v_CallInstanceCode2)) + { + v_ISUP_BearerState2 := 3; + } + + [PX_ISUP_Isup] syncPort.receive + { + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode1, { rLC_MSG := m_RLC_MSG_Def}, v_SLS)); + IsupBiccP.send(m_ISUP_MSG_req(v_CircuitIdentityCode2, { rLC_MSG := m_RLC_MSG_Def}, v_SLS)); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + + [not PX_ISUP_Isup] syncPort.receive + { + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_Def})); + IsupBiccP.send(m_BICC_MSG_req(v_CallInstanceCode2, { rLC_MSG := m_RLC_MSG_Def})); + setverdict(fail); + syncPort.send(m_syncClientStop); + stop; + } + };// end default a_IsupBicc_Def_Generic + + +}; // end group SipIsup_ISUP_Defaults + +group SipIsup_ISUP_Receive_Msgs +{ + function f_awaiting_ACM(template ACM_MSG p_ACM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { aCM_MSG := p_ACM}, v_SLS)) + { + v_ACM_expected1 := false; + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { aCM_MSG := p_ACM})) + { + v_ACM_expected1 := false; + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_ACM2(template ACM_MSG p_ACM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { aCM_MSG := p_ACM}, v_SLS2)) + { + v_ACM_expected2 := false; + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode2, { aCM_MSG := p_ACM})) + { + v_ACM_expected2 := false; + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_ANM(template ANM_MSG p_ANM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { aNM_MSG := p_ANM}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { aNM_MSG := p_ANM})) + { + setverdict(pass); + TAck.stop; + }; + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cPG_MSG := mw_CPG_MSG_anyOpt(mw_EIF_PAR_v_any)}, v_SLS)) + {repeat;}; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { cPG_MSG := mw_CPG_MSG_anyOpt(mw_EIF_PAR_v_any)})) + {repeat;}; + } + } + + function f_awaiting_ANM2(template ANM_MSG p_ANM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { aNM_MSG := p_ANM}, v_SLS2)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode2, { aNM_MSG := p_ANM})) + { + setverdict(pass); + TAck.stop; + }; + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { cPG_MSG := mw_CPG_MSG_anyOpt(mw_EIF_PAR_v_any)}, v_SLS)) + {repeat;}; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode2, { cPG_MSG := mw_CPG_MSG_anyOpt(mw_EIF_PAR_v_any)})) + {repeat;}; + } + } + + function f_awaiting_CGBA(template CGBA_MSG p_CGBA) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cGBA_MSG := p_CGBA}, v_SLS)) + { + setverdict(pass); + TWait.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { cGBA_MSG := p_CGBA})) + { + setverdict(pass); + TWait.stop; + }; + } + } + + function f_awaiting_CGBA2(template CGBA_MSG p_CGBA) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { cGBA_MSG := p_CGBA}, v_SLS2)) + { + setverdict(pass); + TWait.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode2, { cGBA_MSG := p_CGBA})) + { + setverdict(pass); + TWait.stop; + }; + } + } + + function f_awaiting_CON(template CON_MSG p_CON) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cON_MSG := p_CON}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { cON_MSG := p_CON})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_COT(template COT_MSG p_COT) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cOT_MSG := p_COT}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { cOT_MSG := p_COT})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_COT2(template COT_MSG p_COT) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { cOT_MSG := p_COT}, v_SLS2)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode2, { cOT_MSG := p_COT})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_CPG(template CPG_MSG p_CPG) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cPG_MSG := p_CPG}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { cPG_MSG := p_CPG})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_FRJ(template FRJ_MSG p_FRJ) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { fRJ_MSG := p_FRJ}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { fRJ_MSG := p_FRJ})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_GRA(template GRA_MSG p_GRA) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { gRA_MSG := p_GRA}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { gRA_MSG := p_GRA})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_GRA2(template GRA_MSG p_GRA) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { gRA_MSG := p_GRA}, v_SLS2)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode2, { gRA_MSG := p_GRA})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_IAM(template IAM_MSG p_IAM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(?, { iAM_MSG := p_IAM}, ?))-> value v_IAM_r + { + v_CircuitIdentityCode1 := v_IAM_r.circuitIdentityCode.cicv; + v_SLS := v_IAM_r.routingLabel.sls; + setverdict(pass); + TWait.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(?, { iAM_MSG := p_IAM}))-> value v_IAM_r + { + v_CallInstanceCode1 := v_IAM_r.callInstanceCode; + setverdict(pass); + TWait.stop; + }; + } + } + + function f_awaiting_IAM2(template IAM_MSG p_IAM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(?, { iAM_MSG := p_IAM}, ?))-> value v_IAM_r + { + v_CircuitIdentityCode2 := v_IAM_r.circuitIdentityCode.cicv; + v_SLS2 := v_IAM_r.routingLabel.sls; + setverdict(pass); + TWait.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(?, { iAM_MSG := p_IAM}))-> value v_IAM_r + { + v_CallInstanceCode2 := v_IAM_r.callInstanceCode; + setverdict(pass); + TWait.stop; + }; + } + } + + function f_awaiting_IRS(template IRS_MSG p_IRS) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { iRS_MSG := p_IRS}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { iRS_MSG := p_IRS})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_LOP(template LOP_MSG p_LOP) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { lOP_MSG := p_LOP}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { lOP_MSG := p_LOP})) + { + setverdict(pass); + TAck.stop; + }; + } + } + + function f_awaiting_REL(template REL_MSG p_REL) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { rEL_MSG := p_REL}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { rEL_MSG := p_REL})) + { + setverdict(pass); + TAck.stop; + v_ISUP_BearerState1 := 2; + }; + } + } + + function f_awaiting_RLC(template RLC_MSG p_RLC) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { rLC_MSG := p_RLC}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { rLC_MSG := p_RLC})) + { + setverdict(pass); + TAck.stop; + v_ISUP_BearerState1 := 0; + }; + } + } + + function f_awaiting_SAM(template SAM_MSG p_SAM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TAck.start; + alt + { + [PX_ISUP_Isup] IsupBiccP.receive + (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { sAM_MSG := p_SAM}, v_SLS)) + { + setverdict(pass); + TAck.stop; + }; + [not PX_ISUP_Isup] IsupBiccP.receive + (mw_BICC_MSG_ind(v_CallInstanceCode1, { sAM_MSG := p_SAM})) + { + setverdict(pass); + TAck.stop; + }; + } + } +} // end group SipIsup_ISUP_Receive_Msgs + +group SipIsup_ISUP_Transmit_Msgs +{ + function f_send_ACM(template ACM_MSG p_ACM, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_ACM.start; + alt + { + [] TDelay_ACM.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { aCM_MSG := p_ACM}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { aCM_MSG := p_ACM})); + } + } + + function f_send_ACM2(template ACM_MSG p_ACM, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_ACM.start; + alt + { + [] TDelay_ACM.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { aCM_MSG := p_ACM}, v_SLS2)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { aCM_MSG := p_ACM})); + } + } + + function f_send_ANM(template ANM_MSG p_ANM, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_ANM.start; + alt + { + [] TDelay_ANM.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { aNM_MSG := p_ANM}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { aNM_MSG := p_ANM})); + } + } + + function f_send_ANM2(template ANM_MSG p_ANM, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_ANM.start; + alt + { + [] TDelay_ANM.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { aNM_MSG := p_ANM}, v_SLS2)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { aNM_MSG := p_ANM})); + } + } + + function f_send_APM(template APM_MSG p_APM, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_APM.start; + alt + { + [] TDelay_APM.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { aPM_MSG := p_APM}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { aPM_MSG := p_APM})); + } + } + + function f_send_CGB(template CGB_MSG p_CGB, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_CGB.start; + alt + { + [] TDelay_CGB.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cGB_MSG := p_CGB}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cGB_MSG := p_CGB})); + v_ISUP_BearerState1 := 0; + } + } + + function f_send_CGB2(template CGB_MSG p_CGB, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_CGB.start; + alt + { + [] TDelay_CGB.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { cGB_MSG := p_CGB}, v_SLS2)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { cGB_MSG := p_CGB})); + v_ISUP_BearerState2 := 0; + } + } + + function f_send_CON(template CON_MSG p_CON, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_CON.start; + alt + { + [] TDelay_CON.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cON_MSG := p_CON}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cON_MSG := p_CON})); + } + } + + function f_send_COT(template COT_MSG p_COT, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_COT.start; + alt + { + [] TDelay_COT.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cOT_MSG := p_COT}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cOT_MSG := p_COT})); + } + } + + function f_send_CPG(template CPG_MSG p_CPG, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_CPG.start; + alt + { + [] TDelay_CPG.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cPG_MSG := p_CPG}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cPG_MSG := p_CPG})); + } + } + + function f_send_CPG_invalid(template CPG_MSG p_CPG, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_CPG.start; + alt + { + [] TDelay_CPG.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cPG_MSG := p_CPG}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cPG_MSG := p_CPG})); + } + } + + function f_send_FAC(template FAC_MSG p_FAC, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_FAC.start; + alt + { + [] TDelay_FAC.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { fAC_MSG := p_FAC}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { fAC_MSG := p_FAC})); + } + } + + function f_send_FAR(template FAR_MSG p_FAR, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_FAR.start; + alt + { + [] TDelay_FAR.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { fAR_MSG := p_FAR}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { fAR_MSG := p_FAR})); + } + } + + function f_send_GRS(template GRS_MSG p_GRS, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_GRS.start; + alt + { + [] TDelay_GRS.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { gRS_MSG := p_GRS}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { gRS_MSG := p_GRS})); + v_ISUP_BearerState1 := 0; + } + } + + function f_send_GRS2(template GRS_MSG p_GRS, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_GRS.start; + alt + { + [] TDelay_GRS.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { gRS_MSG := p_GRS}, v_SLS2)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { gRS_MSG := p_GRS})); + v_ISUP_BearerState2 := 0; + } + } + + function f_send_IAM(template IAM_MSG p_IAM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { iAM_MSG := p_IAM}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { iAM_MSG := p_IAM})); + v_ISUP_BearerState1 := 1; + } + v_ACM_expected1 := true; + } + + function f_send_IAM2(template IAM_MSG p_IAM) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { iAM_MSG := p_IAM}, v_SLS2)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { iAM_MSG := p_IAM})); + v_ISUP_BearerState2 := 1; + } + v_ACM_expected2 := true; + } + + function f_send_IDR(template IDR_MSG p_IDR, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_IDR.start; + alt + { + [] TDelay_IDR.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { iDR_MSG := p_IDR}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { iDR_MSG := p_IDR})); + } + } + + function f_send_LOP(template LOP_MSG p_LOP, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_LOP.start; + alt + { + [] TDelay_LOP.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { lOP_MSG := p_LOP}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { lOP_MSG := p_LOP})); + } + } + + function f_send_REL(template REL_MSG p_REL, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_REL.start; + alt + { + [] TDelay_REL.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rEL_MSG := p_REL}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rEL_MSG := p_REL})); + v_ISUP_BearerState1 := 2; + } + } + + function f_send_RES(template RES_MSG p_RES, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_RES.start; + alt + { + [] TDelay_RES.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rES_MSG := p_RES}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rES_MSG := p_RES})); + } + } + + function f_send_RLC(template RLC_MSG p_RLC, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_RLC.start; + alt + { + [] TDelay_RLC.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rLC_MSG := p_RLC}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := p_RLC})); + v_ISUP_BearerState1 := 0; + } + } + + function f_send_RSC(template RSC_MSG p_RSC, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_RSC.start; + alt + { + [] TDelay_RSC.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rSC_MSG := p_RSC}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rSC_MSG := p_RSC})); + v_ISUP_BearerState1 := 0; + } + } + + function f_send_SAM(template SAM_MSG p_SAM, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_SAM.start; + alt + { + [] TDelay_SAM.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { sAM_MSG := p_SAM}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { sAM_MSG := p_SAM})); + } + } + + function f_send_SUS(template SUS_MSG p_SUS, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_SUS.start; + alt + { + [] TDelay_SUS.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { sUS_MSG := p_SUS}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { sUS_MSG := p_SUS})); + } + } + + function f_send_UNKNOWN(template UNKNOWN_MSG p_UNKNOWN, boolean p_delay) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (p_delay == true) + { + TDelay_UNKNOWN.start; + alt + { + [] TDelay_UNKNOWN.timeout{}; + } + } + if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { uNKNOWN_MSG := p_UNKNOWN}, v_SLS)); + } + else + { + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { uNKNOWN_MSG := p_UNKNOWN})); + } + } + +} // end group SipIsup_ISUP_Transmit_Msgs + + +group SipIsup_ISUP_Checks +{ + function f_IsupBicc_CheckRingingTone() runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + var boolean v_Result; + var charstring v_question := "confirm if ringing at IsupBicc port"; + + if (PX_IsupBicc_CheckRinging) { + opPort_IsupBicc.call(s_IsupBicc_ringing:{v_question, -}) + {[] opPort_IsupBicc.getreply(s_IsupBicc_ringing:{-, true}) {} + [] opPort_IsupBicc.getreply(s_IsupBicc_ringing:{-, false}) + {all timer.stop; + setverdict(fail); + stop;} + } + } + f_selfOrClientSyncAndVerdict(c_Ringing, f_getVerdict()); + return + } + + function f_IsupBicc_CheckConversation() runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + var boolean v_Result; + var charstring v_question := "confirm if conversation at IsupBicc port"; + + if (PX_IsupBicc_CheckConversation) { + opPort_IsupBicc.call(s_IsupBicc_conversation:{v_question, -}) + {[] opPort_IsupBicc.getreply(s_IsupBicc_conversation:{-, true}) {} + [] opPort_IsupBicc.getreply(s_IsupBicc_conversation:{-, false}) + {all timer.stop; + setverdict(fail); + stop;} + } + } + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + return + } + +}// end group SipIsup_ISUP_Checks + +group SipIsup_ISUP_BearerRelated +{ + function f_IsupBicc_Bearer1ReleaseIndication() runs on IsupBiccComponent + { + if (PX_ISUP_Isup == false) + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + + alt + { + [] IsupBiccP.receive (mw_BearerRelease_ind(v_CallInstanceCode1)) + { + v_ISUP_BearerState1 := 0; + TWait.stop; + }; + } + } + } + + + function f_IsupBicc_Bearer1ReleaseRequest() runs on IsupBiccComponent + { + if (PX_ISUP_Isup == false) + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + IsupBiccP.send(m_BearerRelease_req(v_CallInstanceCode1)); + + v_ISUP_BearerState1 := 2; + TAck.start; + + alt + { + [] IsupBiccP.receive (m_BearerRelease_cnf(v_CallInstanceCode1)) + { + TAck.stop; + v_ISUP_BearerState1 := 0; + }; + } + } + } + + + function f_IsupBicc_Bearer1SetupIndication() runs on IsupBiccComponent + { + if (PX_ISUP_Isup == false) + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + + alt + { + [] IsupBiccP.receive (mw_Setup_ind(v_CallInstanceCode1)) + {TWait.stop; + v_ISUP_BearerState1 := 3; + }; + } + } + } + + + function f_IsupBicc_Bearer1SetupRequest() runs on IsupBiccComponent + { + if (PX_ISUP_Isup == false) + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + IsupBiccP.send ( m_BearerSetup_req(v_CallInstanceCode1)); + + v_ISUP_BearerState1 := 1; + TAck.start; + + alt + { + [] IsupBiccP.receive ( mw_BearerSetup_acc(v_CallInstanceCode1)) + {TAck.stop; + v_ISUP_BearerState1 := 3; + }; + } + } + } + + + function f_IsupBicc_Bearer2SetupIndication() runs on IsupBiccComponent + { + if (PX_ISUP_Isup == false) + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start; + + alt + { + [] IsupBiccP.receive (mw_Setup_ind(v_CallInstanceCode2)) + {TWait.stop; + v_ISUP_BearerState2 := 3; + }; + } + } + } + + + function f_IsupBicc_Bearer2SetupRequest() runs on IsupBiccComponent + { + if (PX_ISUP_Isup == false) + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + IsupBiccP.send ( m_BearerSetup_req(v_CallInstanceCode2)); + + v_ISUP_BearerState2 := 1; + TAck.start; + + alt + { + [] IsupBiccP.receive ( mw_BearerSetup_acc(v_CallInstanceCode2)) + {TAck.stop; + v_ISUP_BearerState2 := 3; + }; + } + } + } + +}// end group SipIsup_ISUP_BearerRelated + +group SipIsup_ISUP_Preambles +{ + // Preamble performing only initialization + function f_IsupBicc_Pre0() runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + v_ISUP_BearerState1 := 0;//initialize bearer state associated with cic1 + v_ISUP_BearerState2 := 0;//initialize bearer state associated with cic2 + v_ISUP_inTestBody := false; + + // Initialize cic values for transmission side + v_CircuitIdentityCode1 := PX_ISUP_TX_CIC_cicv1; + v_CircuitIdentityCode2 := PX_ISUP_TX_CIC_cicv2; + v_CallInstanceCode1 := PX_ISUP_TX_CIC_caicv1; + v_CallInstanceCode2 := PX_ISUP_TX_CIC_caicv2; + v_SLS := PX_ISUP_SLS; + v_SLS2 := int2bit((bit2int(PX_ISUP_SLS) + 1), 4); + +/* if (PX_ISUP_Isup == true) + { + IsupBiccP.send (m_InitializeIsup_req); + } + else + { + IsupBiccP.send (m_InitializeBicc_req); + } + + TAck.start; + + alt + { + [] IsupBiccP.receive(mw_InitializeIsupBicc_cnf){TAck.stop}; + } +*/ + } //end function f_IsupBiccPre0 + +} // end group SipIsup_ISUP_Preambles + + +group SipIsup_ISUP_Postambles +{ + // Postamble checking signalling- and bearer states + function f_IsupBicc_Post_CheckStates() runs on IsupBiccComponent + { + if (v_ISUP_BearerState1 != 0) + { + setverdict(inconc); + log ("Bearer connection state of cic1 is not 0 at the test case end."); + } + if (v_ISUP_BearerState2 != 0) + { + setverdict(inconc); + log ("Bearer connection state of cic2 is not 0 at the test case end."); + } + + }// end f_IsupBicc_Post_CheckStates + + + + // MG Note 1: Bearer Release Ind not yet covered + // Postamble expecting REL for cic1 and sending RLC + function f_IsupBicc_Post_expREL1(boolean p_Bearer1_established) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start;// Wait for REL message + + alt + { // expect REL Msg + [PX_ISUP_Isup] IsupBiccP.receive + ( mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)}, v_SLS)) + { TWait.stop; + // send RLC Msg + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rLC_MSG := m_RLC_MSG_noOpt}, v_SLS)); + } + [not PX_ISUP_Isup] IsupBiccP.receive + ( mw_BICC_MSG_ind(v_CallInstanceCode1, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)})) + { TWait.stop; + // send RLC Msg + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_noOpt})); + v_ISUP_BearerState1 := 0; //initialize state associated with cic1 + f_IsupBicc_Post_CheckStates(); // check signalling states and bearer connection states. + } + } + + } //end function f_IsupBicc_Post_expREL1 + + + // Postamble expecting REL for cic1 and cic2 and sending RLC for both + function f_IsupBicc_Post_expREL2() runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + TWait.start;// Wait for REL message + + alt + { + [PX_ISUP_Isup] IsupBiccP.receive // receive REL Msg on cic1 first + ( mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)}, v_SLS)) + { // send RLC Msg on cic1 + IsupBiccP.send (m_ISUP_MSG_req( v_CircuitIdentityCode1, { rLC_MSG := m_RLC_MSG_noOpt}, v_SLS)); + + alt + { + [] IsupBiccP.receive // receive REL Msg on cic2 + ( mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)}, v_SLS2)) + { TWait.stop; + // send RLC Msg + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { rLC_MSG := m_RLC_MSG_noOpt}, v_SLS2)); + } + } + } + + [PX_ISUP_Isup] IsupBiccP.receive // receive REL Msg on cic2 first + ( mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)}, v_SLS2)) + { // send RLC Msg on cic2 + IsupBiccP.send (m_ISUP_MSG_req( v_CircuitIdentityCode2, { rLC_MSG := m_RLC_MSG_noOpt}, v_SLS2)); + + alt + { + [] IsupBiccP.receive // receive REL Msg on cic1 + ( mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)}, v_SLS)) + { TWait.stop; + // send RLC Msg + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rLC_MSG := m_RLC_MSG_noOpt}, v_SLS)); + } + } + } + + [not PX_ISUP_Isup] IsupBiccP.receive // receive REL Msg on cic1 first + ( mw_BICC_MSG_ind(v_CallInstanceCode1, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)})) + { // send RLC Msg on cic1 + IsupBiccP.send (m_BICC_MSG_req( v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_noOpt})); + v_ISUP_BearerState1 := 0;//initialize state associated with cic1 + + alt + { + [] IsupBiccP.receive // receive REL Msg on cic2 + ( mw_BICC_MSG_ind(v_CallInstanceCode2, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)})) + { TWait.stop; + // send RLC Msg + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { rLC_MSG := m_RLC_MSG_noOpt})); + v_ISUP_BearerState2 := 0;//initialize state associated with cic2 + f_IsupBicc_Post_CheckStates(); // check signalling states and bearer connection states. + } + } + } + + [not PX_ISUP_Isup] IsupBiccP.receive // receive REL Msg on cic2 first + ( mw_BICC_MSG_ind(v_CallInstanceCode2, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)})) + { // send RLC Msg on cic1 + IsupBiccP.send (m_BICC_MSG_req( v_CallInstanceCode2, { rLC_MSG := m_RLC_MSG_noOpt})); + v_ISUP_BearerState2 := 0; //initialize state associated with cic1 + + alt + { + [] IsupBiccP.receive // receive REL Msg on cic1 + ( mw_BICC_MSG_ind(v_CallInstanceCode1, { rEL_MSG := mw_REL_MSG_anyOpt(mw_CAUI_PAR_lv_any)})) + { TWait.stop; + // send RLC Msg + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rLC_MSG := m_RLC_MSG_noOpt})); + v_ISUP_BearerState1 := 0;//initialize state associated with cic1 + f_IsupBicc_Post_CheckStates(); // check signalling states and bearer connection states. + } + } + } + } + + } //end function f_IsupBicc_Post_expREL2 + + + // MG Note 1: Bearer Release not yet covered + // Postamble sending REL and expecting RLC for cic1 + function f_IsupBicc_Post_sendREL1(boolean p_Bearer1_established) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (PX_ISUP_Isup == true) + { // send REL Msg + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rEL_MSG := m_REL_MSG_noOpt(m_CAUI_Def)}, v_SLS)); + TAck.start; // Wait for REL message + + alt { // expect RLC Msg + [] IsupBiccP.receive(mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { rLC_MSG := mw_RLC_MSG_anyOpt}, v_SLS)) + {TAck.stop;} + } + } + else + { // send REL Msg + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { rEL_MSG := m_REL_MSG_noOpt(m_CAUI_Def)})); + v_ISUP_BearerState1 := 2; //initialize state associated with cic1 + TAck.start; // Wait for REL message + + alt { // expect RLC Msg + [] IsupBiccP.receive(mw_BICC_MSG_ind(v_CallInstanceCode1,{ rLC_MSG := mw_RLC_MSG_anyOpt})) + {TAck.stop;} + } + v_ISUP_BearerState1 := 0;//initialize state associated with cic1 + f_IsupBicc_Post_CheckStates();// check signalling states and bearer connection states. + } + } //end function f_IsupBicc_Post_sendREL1 + + + + // Postamble sending CGU and expecting CGUA for cic1 + function f_IsupBicc_Post_CGU1() runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (PX_ISUP_Isup == true) + { // send CGU Msg + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cGU_MSG := m_CGU_MSG_noOpt}, v_SLS)); + TWait.start; // Wait for CGUA message + + alt { // expect CGUA Msg + [] IsupBiccP.receive + ( mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cGUA_MSG := mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)}, v_SLS)) + {TWait.stop;} + } + } + else + { // send CGU Msg + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cGU_MSG := m_CGU_MSG_noOpt})); + TWait.start; // Wait for CGUA message + + alt { // expect CGUA Msg + [] IsupBiccP.receive + ( mw_BICC_MSG_ind(v_CallInstanceCode1, { cGUA_MSG := mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)})) + {TWait.stop;} + } + f_IsupBicc_Post_CheckStates();// check signalling states and bearer connection states. + } + } //end function f_IsupBicc_Post_CGU1 + + // Postamble sending CGU and expecting CGUA for cic1 and cic2 + function f_IsupBicc_Post_CGU2() runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + if (PX_ISUP_Isup == true) + { // send CGU Msg on cic1 + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { cGU_MSG := + m_CGU_MSG_noOpt}, v_SLS)); + + // send CGU Msg on cic2 + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { cGU_MSG := + m_CGU_MSG_noOpt}, v_SLS2)); + + TWait.start;// Wait for CGUA messages + + alt { + // expect CGUA Msg on cic1 first + [] IsupBiccP.receive (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)}, v_SLS)) + { + alt { // expect CGUA Msg on cic2 + [] IsupBiccP.receive (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)}, v_SLS2)) + {TWait.stop;} + } + } + // expect CGUA Msg on cic2 first + [] IsupBiccP.receive (mw_ISUP_MSG_ind(v_CircuitIdentityCode2, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)}, v_SLS2)) + { + alt { // expect CGUA Msg on cic1 + [] IsupBiccP.receive (mw_ISUP_MSG_ind(v_CircuitIdentityCode1, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)}, v_SLS)) + {TWait.stop;} + } + } + } + } + + else + { // send CGU Msg on cic1 + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode1, { cGU_MSG := + m_CGU_MSG_noOpt})); + + // send CGU Msg on cic2 + IsupBiccP.send (m_BICC_MSG_req(v_CallInstanceCode2, { cGU_MSG := + m_CGU_MSG_noOpt})); + + TWait.start;// Wait for CGUA messages + + alt { + // expect CGUA Msg on cic1 first + [] IsupBiccP.receive (mw_BICC_MSG_ind(v_CallInstanceCode1, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)})) + { + alt { // expect CGUA Msg on cic2 + [] IsupBiccP.receive (mw_BICC_MSG_ind(v_CallInstanceCode2, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)})) + {TWait.stop;} + } + } + // expect CGUA Msg on cic2 first + [] IsupBiccP.receive (mw_BICC_MSG_ind(v_CallInstanceCode2, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)})) + { + alt { // expect CGUA Msg on cic1 + [] IsupBiccP.receive (mw_BICC_MSG_ind(v_CallInstanceCode1, { cGUA_MSG := + mw_CGUA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)})) + {TWait.stop;} + } + } + } + f_IsupBicc_Post_CheckStates();// check signalling states and bearer connection states. + } + + + } //end function f_IsupBicc_Post_UGB1 + +} // end group SipIsup_ISUP_Postambles + +group SipIsup_ISUP_GeneralSteps +{ + // Wait for timeout + function f_IsupBicc_Wait(float timeoutValue) runs on IsupBiccComponent + { + v_Default := activate (a_IsupBicc_Def_Generic()); + + ProtocolTimer.start(timeoutValue); + alt + { + [] ProtocolTimer.timeout{}; + } + } + +}// end group SipIsup_ISUP_GeneralSteps + +}// end group behaviour +}//end module SipIsup_ISUP_Steps diff --git a/IsupAts/SipIsup_ISUP_TCFunctions.ttcn b/IsupAts/SipIsup_ISUP_TCFunctions.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..d4e3588fcfc4656a6e2097965266beb7e7ca344c --- /dev/null +++ b/IsupAts/SipIsup_ISUP_TCFunctions.ttcn @@ -0,0 +1,22059 @@ + +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides the ISUP/BICC-side test case functions. + * Some TC functions are parameterized according to the VA-Tables (variants) + * defined in the test prose. +*/ +module SipIsup_ISUP_TCFunctions { + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_AbstractData all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + import from LibCommon_TextStrings all; + + //AtsIsup + import from SipIsup_TestSystem all; + + import from SipIsup_ISUP_ParamTypes all; + import from SipIsup_ISUP_MsgTypes all; + import from SipIsup_ISUP_Constants all; + import from SipIsup_ISUP_ModuleParams all; + import from SipIsup_ISUP_ParamTemplates all; + import from SipIsup_ISUP_MsgTemplates all; + import from SipIsup_ISUP_Steps all; + //SIPAts + import from SipIsup_SIP_TypesAndConf all; + + function f_Reset_Circuits() runs on IsupBiccComponent + { + + // Perform preamble + f_IsupBicc_Pre0(); + + /*Send default RSC message*/ + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { rSC_MSG := m_RSC_MSG_noOpt}, v_SLS)); + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode2, { rSC_MSG := m_RSC_MSG_noOpt}, v_SLS)); + + }//End f_Reset_Circuits + + function f_Reset_Groups() runs on IsupBiccComponent + { + + // Perform preamble + f_IsupBicc_Pre0(); + + /*Send default RSC message*/ + IsupBiccP.send (m_ISUP_MSG_req(v_CircuitIdentityCode1, { gRS_MSG := m_GRS_RAS}, v_SLS)); + + }//End f_Reset_Groups + +group BasicCall{ +group TP1_InterworkingFromSIPtoISUP{ +group TP101_Sending_IAM{ + +/* -----------------------------------TEST CASE TC101001------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1, a) + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with A-law (PCMA), but not �-law (PCMU) within a 183 +Session Progress message. sends a IAM message upon receipt of the SDP answer with media +description. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_001 + + +/* -----------------------------------TEST CASE TC101002------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,i,b) + +Isup selection Criteria: PICS 1/4 AND NOT PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with A-law (PCMA), but not �-law (PCMU) within a 183 +Session Progress message. sends a IAM message whereby the Continuity indicator of the Nature +of Connection Indicators parameter shall be set to "COT to be expected" + +ISUP Parameter values: +IAM: Continuity Indicator: COT to be expected COT; Continuity Indicator: continuity +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), with User Information Layer 1 Protocol Indicator = 'A-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI_NCI(c_NCI_cotChkInd_expected, mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_002 + + +/* -----------------------------------TEST CASE TC101003------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,i,b) + +Isup selection Criteria: PICS 1/5 AND NOT PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with A-law (PCMA), but not �-law (PCMU) within a 183 +Session Progress message. sends a IAM message whereby the Continuity check indicator in the +Nature of Connection Indicators parameter is set to "continuity check required on this +circuit". + +ISUP Parameter values: +IAM: Continuity Indicator: continuity check required on this circuit COT; Continuity Indicator: continuity check successful +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check required on this circuit'), with User Information Layer 1 Protocol Indicator = 'A-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI_NCI(c_NCI_cotChkInd_requi, mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_003 + + +/* -----------------------------------TEST CASE TC101004------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,i,b) + +Isup selection Criteria: NOT PICS 1/6 AND NOT PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with A-law (PCMA), but not �-law (PCMU) within a 183 +Session Progress message. sending of the IAM shall be deferred until all preconditions have +been met. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'A-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_004 + + +/* -----------------------------------TEST CASE TC101005------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,ii,a) + +Isup selection Criteria: PICS 1/6 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with both A-law (PCMA) and �-law (PCMU) included and �-law +(PCMU) shall take precedence over A-law (PCMA) within a 183 Session Progress message. sends a +IAM message upon receipt of the SDP answer with media description. + +ISUP Parameter values: IAM +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_005 + + +/* -----------------------------------TEST CASE TC101006------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,ii,b) + +Isup selection Criteria: PICS 1/4 AND PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with both A-law (PCMA) and �-law (PCMU) included and �-law +(PCMU) shall take precedence over A-law (PCMA) within a 183 Session Progress message. sends a +IAM message whereby the Continuity indicator of the Nature of Connection Indicators parameter +shall be set to "COT to be expected" + +ISUP Parameter values: IAM Continuity Indicator: COT to be +expected; COT Continuity Indicator: continuity; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI_NCI(c_NCI_cotChkInd_expected, mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_006 + + +/* -----------------------------------TEST CASE TC101007------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,ii,b) + +Isup selection Criteria: PICS 1/5 AND PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with both A-law (PCMA) and �-law (PCMU) included and �-law +(PCMU) shall take precedence over A-law (PCMA) within a 183 Session Progress message. sends a +IAM message whereby the Continuity check indicator in the Nature of Connection Indicators +parameter is set to "continuity check required on this circuit". + +ISUP Parameter values: IAM +Continuity Indicator: continuity check required on this circuit; COT Continuity Indicator: +continuity check successful; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check required on this circuit'), with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI_NCI(c_NCI_cotChkInd_requi, mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_007 + + +/* -----------------------------------TEST CASE TC101008------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.1 ( 1,ii,b) + +Isup selection Criteria: PICS 1/6 AND NOT PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, without an SDP +offer and reliable provisional responses are supported the SUT shall immediately send an SDP +offer including a media description with both A-law (PCMA) and �-law (PCMU) included and �-law +(PCMU) shall take precedence over A-law (PCMA) within a 183 Session Progress message. sending +of the IAM shall be deferred until all preconditions have been met. + +ISUP Parameter values: IAM +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_008() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_101_008 + + +/* -----------------------------------TEST CASE TC101009------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: PICS 1/6 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer. the SUT shall delete �-law (PCMU), if present, from the media description that it will +send back in the SDP answer the SUT shall immediately send out the IAM. + +ISUP Parameter values: +IAM USI: A-law or absent; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'A-Law' (ifpresent) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)) ifpresent)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_009 + + +/* -----------------------------------TEST CASE TC101010------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,2ai) + +Isup selection Criteria: PICS 1/4 AND NOT PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer. the SUT shall delete �-law (PCMU), if present, from the media description that it will +send back in the SDP answer the IAM shall be sent out immediately on the BICC side with the +coding of the Nature of Connection Indicators parameter: "COT to be expected". SIP Parameter +values: IAM Continuity Indicator: COT to be expected, USI: A-law or absent; COT; Continuity +Indicator: continuity; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_010() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), with User Information Layer 1 Protocol Indicator = 'A-Law' (ifpresent) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI_NCI(c_NCI_cotChkInd_expected, mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)) ifpresent)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_010 + + +/* -----------------------------------TEST CASE TC101011------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,2aii) + +Isup selection Criteria: PICS 1/5 AND NOT PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer. the SUT shall delete �-law (PCMU), if present, from the media description that it will +send back in the SDP answer the IAM shall be sent out immediately on the ISUP side with the +the Continuity check indicator "continuity check required on this circuit". SIP Parameter +values: IAM Continuity Indicator: continuity check required on this circuit, USI: A-law or +absent; COT Continuity Indicator: continuity check successful; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check required on this circuit'), with User Information Layer 1 Protocol Indicator = 'A-Law' (ifpresent) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI_NCI(c_NCI_cotChkInd_requi, mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)) ifpresent)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_011 + + +/* -----------------------------------TEST CASE TC101012------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,2b) + +Isup selection Criteria: NOT PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer. the SUT shall delete �-law (PCMU), if present, from the media description that it will +send back in the SDP answer the shall be deferred until all preconditions have been met. SIP +Parameter values: IAM USI: A-law or absent; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_012() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'A-Law' (ifpresent) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_ALaw)) ifpresent)); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_012 + + +/* -----------------------------------TEST CASE TC101013------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: PICS 1/6 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer the SUT shall delete A-law (PCMA) if both A-law (PCMA) and �-law (PCMU) were present in +the offer of the media description, that it will send it back in the SDP answer the SUT shall +immediately send out the IAM. + +ISUP Parameter values: IAM USI: �-law; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_013 + + +/* -----------------------------------TEST CASE TC101014------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,2ai) + +Isup selection Criteria: PICS 1/4 AND PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer the SUT shall delete A-law (PCMA) if both A-law (PCMA) and �-law (PCMU) were present in +the offer of the media description, that it will send it back in the SDP answer the IAM shall +be sent out immediately on the BICC side with the coding of the Nature of Connection +Indicators parameter: "COT to be expected". + +ISUP Parameter values: IAM USI: �-law; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default COT message*/ + f_awaiting_COT(mw_COT_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_014 + + +/* -----------------------------------TEST CASE TC101015------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,2aii) + +Isup selection Criteria: PICS 1/5 AND PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer the SUT shall delete A-law (PCMA) if both A-law (PCMA) and �-law (PCMU) ) were present +in the offer of the media description, that it will send it back in the SDP answer the IAM +shall be sent out immediately on the ISUP side with the the Continuity check indicator +"continuity check required on this circuit". + +ISUP Parameter values: IAM USI: �-law; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default COT message*/ + f_awaiting_COT(mw_COT_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_015 + + +/* -----------------------------------TEST CASE TC101016------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,2b) + +Isup selection Criteria: PICS 1/6 AND PICS 4/1 + +Ensure that if the SUT upon receipt of the first INVITE with sufficient digits, with an SDP +offer the SUT shall delete A-law (PCMA) if both A-law (PCMA) and �-law (PCMU) were present in +the offer of the media description, that it will send it back in the SDP answer the IAM shall +be deferred until all preconditions have been met. + +ISUP Parameter values: IAM USI: �-law; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_016() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User Information Layer 1 Protocol Indicator = 'mu-Law' and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(?, c_USI_userInfoL1_muLaw)))); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_016 + + +/* -----------------------------------TEST CASE TC101017------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.1 +Q.1912.5 � 6.1.3.2 +Q.1912.5 � 6.1.3.3 +Q.1912.5 � 6.1.3.4 + +Isup selection Criteria: NOT PICS 1/9 + +Ensure that the SUT on receipt of an INVITE message sends an IAM message, where the Calling +party's category is set to " Ordinary calling subscriber", the Nature of Connection Indicators +(NCI) encoded as followed: Satellite indicator set to: "One satellite circuit in the +connection "Continuity check indicator set to: NCI_CONT_CHECK Echo control device indicator +set to: NCI_ECHO_CTRL_IND the appropriate values of the FCI parameter are determined based on +analysis of various parameters (from signalling, internal states or configuration) at the +I-IWU. + +ISUP Parameter values: +Nature of Connection Indicators (NCI): + Satellite indicator set to: "One satellite circuit in the connection" + Continuity check indicator set to: NCI_CONT_CHECK (PIXIT) + Echo control device indicator set to: NCI_ECHO_CTRL_IND (PIXIT) +Forward Call Indicators (FCI): + Interworking indicator: FCI_INTERW_I (PIXIT) + ISDN user part indicator: FCI_USER_PART _I (PIXIT) + ISDN access indicator: FCI_ACESS_IND (PIXIT) + ISDN user part preference indicator: FCI_ISDN_USER_PART_I (PIXIT) + National/international call indicator set to FCI_NI_CALL_IND (PIXIT) + End-to-end method available set to FCI_EE_METHOD (PIXIT) + End-to-End information indicator set to FCI_EE_INFO_IND (PIXIT) + SCCP method indicator set to FCI_SCCP_IND (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_017() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, and with 'any' optional parameters.*/ + f_awaiting_IAM(mw_IAM_NCI_CPC_FCI(?, ?)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_017 + + +/* -----------------------------------TEST CASE TC101018------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.1 +Q.1912.5 � 6.1.3.2 +Q.1912.5 � 6.1.3.3 +Q.1912.5 � 6.1.3.4 + +Isup selection Criteria: PICS 1/9 + +Ensure that the SUT on receipt of an INVITE message sends an IAM message, where the Calling +party's category is set to " Ordinary calling subscriber", the Nature of Connection Indicators +(NCI) encoded as followed: Satellite indicator set to: "One satellite circuit in the +connection "Continuity check indicator set to: NCI_CONT_CHECK Echo control device indicator +set to: NCI_ECHO_CTRL_IND the Forward call indicator is encoded as followed Interworking +indicator: Interworking encounterd ISUP/BICC Indicator: ISDN User part/BICC not used all the +way ISUP/BICC Preference indicator: ISDN user part/BICC not required all the way ISDN access +indicator: Originating acces non-ISDN. + +ISUP Parameter values: +Nature of Connection Indicators (NCI): + Satellite indicator set to: "One satellite circuit in the connection" + Continuity check indicator set to: NCI_CONT_CHECK (PIXIT) + Echo control device indicator set to: NCI_ECHO_CTRL_IND (PIXIT) +Forward Call Indicators (FCI): + Interworking indicator: interworking encounterd + ISDN user part indicator: ISDN user part/BICC not used all the way + ISDN access indicator: originating access non-ISDN + ISDN user part preference indicator: ISDN user part/BICC not required all the + way + National/international call indicator set to FCI_NI_CALL_IND (PIXIT) + End-to-end method available set to FCI_EE_METHOD (PIXIT) + End-to-End information indicator set to FCI_EE_INFO_IND (PIXIT) + SCCP method indicator set to FCI_SCCP_IND (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_018() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, and with 'any' optional parameters.*/ + f_awaiting_IAM(mw_IAM_NCI_CPC_FCI2(?, ?, ?, ?, ?, ?)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_018 + + +/* -----------------------------------TEST CASE TC101019------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.1 +Q.1912.5 � 6.1.3.2 +Q.1912.5 � 6.1.3.3 +Q.1912.5 � 6.1.3.4 + +Ensure that the SUT on receipt of an INVITE message sends an IAM message, where the Calling +party's category is set to " Ordinary calling subscriber", the Nature of Connection Indicators +(NCI) encoded as followed: Satellite indicator set to: No satellite circuit in the connection" +Continuity check indicator set to: NCI_CONT_CHECK Echo control device indicator set to: +"Outgoing echo control device included" the Forward call indicator is encoded as followed +Interworking indicator: Interworking encounterd ISUP/BICC Indicator: ISDN User part/BICC not +used all the way ISUP/BICC Preference indicator: ISDN user part/BICC not required all the way +ISDN access indicator: Originating acces non-ISDN + +ISUP Parameter values: +Nature of Connection Indicators (NCI): + Satellite indicator set to: "NO satellite circuit in the connection" + Continuity check indicator set to: NCI_CONT_CHECK (PIXIT) + Echo control device indicator set to: "Outgoing echo control device included" +Forward Call Indicators (FCI): + Interworking indicator: interworking encounterd + ISDN user part indicator: ISDN user part/BICC not used all the way + ISDN access indicator: originating access non-ISDN + ISDN user part preference indicator: ISDN user part/BICC not required all the + way + National/international call indicator set to FCI_NI_CALL_IND (PIXIT) + End-to-end method available set to FCI_EE_METHOD (PIXIT) + End-to-End information indicator set to FCI_EE_INFO_IND (PIXIT) + SCCP method indicator set to FCI_SCCP_IND (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_019() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, and with 'any' optional parameters.*/ + f_awaiting_IAM(mw_IAM_NCI_FCI(?, ?, ?, ?, ?)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_019 + + +/* -----------------------------------TEST CASE TC101020------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.5 + +Ensure that the SUT in the Idle state on receipt of an INVITE message containing the media +description defined with the "a =" "b =" and "m=" lines set to a_b_m_LINE_VALUE sends an IAM +message, with the Transmission Medium Requirement (TMR) parameter set to TMR_VALUE. SIP +Parameter values: IAM: TMR: ISUP_TMR +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_020(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 1 - array used to parameterize the ISUP test case variant*/ + /* parameter is: Transmission medium requirement value*/ + var Bit8 v_TMR[9]; + // dummy value for index 0 (unused) + v_TMR[0] := '00000000'B; + // 3.1KHz audio + v_TMR[1] := c_TMR_tmrValue_31Audio; + // 3.1KHz audio + v_TMR[2] := c_TMR_tmrValue_31Audio; + // 3.1KHz audio + v_TMR[3] := c_TMR_tmrValue_31Audio; + // 3.1KHz audio + v_TMR[4] := c_TMR_tmrValue_31Audio; + // 64 kbit/s preferred + v_TMR[5] := c_TMR_tmrValue_64Kbs_pref; + // 64 kbit/s unrestricted + v_TMR[6] := c_TMR_tmrValue_64Kbs; + // 3.1KHz audio + v_TMR[7] := c_TMR_tmrValue_31Audio; + // 3.1KHz audio + v_TMR[8] := c_TMR_tmrValue_31Audio; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for Transmission medium requirement (parameterized), and with 'any' optional parameters.*/ + f_awaiting_IAM(mw_IAM_TMR(v_TMR[VA])); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_020 + + +/* -----------------------------------TEST CASE TC101021------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.5 + +Ensure that the SUT in the Idle state on receipt of an INVITE message, with the media +description defined with the "a = " "b =" and "m=" lines set to a_b_m_LINE_VALUE sends an IAM +message, with the user information parameter set to USI_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_021(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 2 - pair of arrays used to parameterize the ISUP test case variant*/ + /* parameters are: Information transfer capability and User information L1 info*/ + var Bit5 v_InfoTrfCap[9]; var Bit5 v_UserInfoL1[9]; + // dummy value for index 0 (unused) + v_InfoTrfCap[0] := '00000'B; v_UserInfoL1[0] := '00000'B; + // 3.1KHz audio / G.711 �-law + v_InfoTrfCap[1] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[1] := c_USI_userInfoL1_muLaw; + // 3.1KHz audio / G.711 �-law + v_InfoTrfCap[2] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[2] := c_USI_userInfoL1_muLaw; + // 3.1KHz audio / G.711 A-law + v_InfoTrfCap[3] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[3] := c_USI_userInfoL1_ALaw; + // 3.1KHz audio / G.711 A-law + v_InfoTrfCap[4] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[4] := c_USI_userInfoL1_ALaw; + // Unrestricted digital inf. w/tones/ann / omit + v_InfoTrfCap[5] := c_USI_infoTrfCap_tones; v_UserInfoL1[5] := '11111'B; + // Unrestricted digital information / omit + v_InfoTrfCap[6] := c_USI_infoTrfCap_unrestr; v_UserInfoL1[6] := '11111'B; + // 3.1KHz audio / omit + v_InfoTrfCap[7] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[7] := '11111'B; + // 3.1KHz audio / omit + v_InfoTrfCap[8] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[8] := '11111'B; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with User service information (Information Trf Cap and User Information Layer 1 Protocol Indicator) parameterized and with 'any' other optional parameters.*/ + if (v_UserInfoL1[VA] == '11111'B)// User information L1 info not required + { + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_InfoTrfCap(v_InfoTrfCap[VA])))); + } + else + { + f_awaiting_IAM(mw_IAM_USI(mw_USI_Std(mw_USIContents_Std(v_InfoTrfCap[VA], v_UserInfoL1[VA])))); + } + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_021 + + +/* -----------------------------------TEST CASE TC101022------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.5 + +Ensure that the SUT in the Idle state on receipt of an INVITE message, with the media +description defined with the "a = " "b =" and "m=" lines to lines set to a_b_m_LINE_VALUE +sends an IAM message with the Access transport parameter containing the HLC information element + +ISUP Parameter values: IAM: Access transport parameter HLC: HLC_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_022(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 3 - array used to parameterize the test case variant*/ + /* parameter is: High layer characteristics identification*/ + var Bit7 v_HighLayCharId[7]; + // dummy value for index 0 (unused) + v_HighLayCharId[0] := '0000000'B; + // Telephony + v_HighLayCharId[1] := c_USI_hlc_telephony; + // Telephony + v_HighLayCharId[2] := c_USI_hlc_telephony; + // Telephony + v_HighLayCharId[3] := c_USI_hlc_telephony; + // Telephony + v_HighLayCharId[4] := c_USI_hlc_telephony; + // Facsimile Group 2/3 + v_HighLayCharId[5] := c_USI_hlc_fax2_3; + // Facsimile Group 2/3 + v_HighLayCharId[6] := c_USI_hlc_fax2_3; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Access transport containing Q.931 information element HLC, high Layer CharacteristicsIdentification parameterized, and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_AT_HLC(mw_AT_HL_CharIdent(v_HighLayCharId[VA]))); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_022 + + +/* -----------------------------------TEST CASE TC101023------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.3.9 + +Isup selection Criteria: PICS 4/5 + +Ensure that the SUT for Profiles A and B the I-IWU shall derive the Hop Counter parameter +value from the Max-Forwards header field value by applying a factor. The Hop Counter for a +given message should never increase and should decrease by at least 1 with each successive +visit to an IWU, regardless of intervening interworking, and similarly for Max-Forwards in the +SIP domain. + +ISUP Parameter values: IAM: Hop Counter parameter value +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_023() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with default Hop counter value and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_HOC(mw_HopC_Def)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_023 + + +/* -----------------------------------TEST CASE TC101024------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: NOT PICS 1/7 + +Ensure that the SUT on receipt of an INVITE message with a Called party number contained in +the userinfo component of the Request-URI Nature of address indicator: +Analyse the information contained in received URI with user=phone, and if it is in the format: ++CC NDC SN where CC is the country code of the network in which the next hop terminates, then +set Nature of Address indicator to "National (significant) number" , remove "+CC" and use the +remaining digits to fill the Address signals". Internal Network Number Indicator: routing to +internal network number not allowed Numbering plan Indicator: 001 ISDN (Telephony) numbering +plan Address Signals: NDC SN + +ISUP Parameter values: IAM: Called party number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_024() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for the Called Party Number (national number), and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLD(c_CLD_natAddrInd_natSig, PX_ISUP_IAM_CLD_digits_rxNat, false)); + + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_024 + + +/* -----------------------------------TEST CASE TC101025------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: PICS 1/7 + +Ensure that the SUT on receipt of an INVITE message with a Called party number contained in +the userinfo component of the Request-URI Nature of address indicator: +Analyse the information contained in received URI with user=phone, and if it is in the format: ++CC NDC SN where CC is not the country code of the network in which the next hop terminates, +then set Nature of Address indicator to "International number", remove "+" and use the +remaining digits to fill the Address signals. Internal Network Number Indicator: routing to +internal network number not allowed Numbering plan Indicator: 001 ISDN (Telephony) numbering +plan Address Signals CC NDC SN + +ISUP Parameter values: IAM: Called party number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_025() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, except for the Called Party Number (international number), and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLD(c_CLD_natAddrInd_internat, PX_ISUP_IAM_CLD_digits_rxInat, false)); + + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_025 + + +/* -----------------------------------TEST CASE TC101026------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Ensure that the SUT on receipt of an INVITE message with a Called party number contained in +the userinfo component of the Request-URI Internal Network Number Indicator: routing to +internal network number not allowed Numbering plan Indicator: 001 ISDN (Telephony) numbering +plan Address Signals + +ISUP Parameter values: IAM: Called party number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_026() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLD(?, PX_ISUP_IAM_CLD_digits_rxDef, false)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_026 + + +/* -----------------------------------TEST CASE TC101027------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: PICS 1/7 + +Ensure that the SUT on receipt of an INVITE message with a SDP offer for �-Law and a-Law, then +independent from the received order of preference the G.711 a-law codec shall be returned in +the SDP answer as preferred codec. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_027() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_027 + + +/* -----------------------------------TEST CASE TC101028------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: PICS 1/7 + +Ensure that the SUT on receipt of an INVITE message with a SDP offer for a-Law and no �-Law, +then independent the normal offer answer procedures apply the G.711 a-law codec shall be +returned in the SDP answer. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_028() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_028 + + +/* -----------------------------------TEST CASE TC101029------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Isup selection Criteria: PICS 1/7 + +Ensure that the SUT on receipt of an INVITE message with a SDP offer without a-law codec the +u-law codec shall be rejected +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_029() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_101_029 + + +/* -----------------------------------TEST CASE TC101030------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Ensure that the SUT on receipt of an INVITE message with a SDP offer with more than one media +streams and based on operator policy then the call is refused with a 415 Unsupported media +type response +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_030() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_030 + + +/* -----------------------------------TEST CASE TC101031------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Initial address message (IAM)/ + +ISUP reference: Q.1912.5 � 6.1.2 (i,1) + +Ensure that the SUT on receipt of an INVITE message with a SDP offer with more than one media +streams and based on operator policy then if the SDP offer contains one or more audio type +media streams and one or more non-audio type media stream, only the audio streams shall be +considered; the other streams shall be rejected if the SDP offer contains several audio type +media streams, the IWU shall only consider one, and reject the other streams +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_101_031() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_101_031 + +function f_IsupBicc_TC_101_032() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, and with 'any' optional parameters.*/ + f_awaiting_IAM(mw_IAM_NCI_CPC_FCI3(?, ?, ?, ?, ?, ?)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_101_032 + + +}//end group TP101_Sending_IAM + + +group TP102_Sending_SAM{ + +/* -----------------------------------TEST CASE TC102001------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Subsequent address message (SAM)/ + +ISUP reference: Q.1912.5 � 6.2 a) + +Isup selection Criteria: PICS 3/8 + +Ensure that the SUT receives an INVITE with the same Call-ID and From tag as a previous INVITE +which was associated with a BICC/ISUP call/bearer control instance currently existing on the +BICC/ISUP side whereby the number of digits in the Request-URI is greater than the number of +digits already accumulated for the call, sends a SAM and pass it to outgoing BICC/ISUP +procedures. The SAM shall contain in its Subsequent Number parameter only the additional +digits received in this Request-URI compared with the digits already accumulated for the call. + +ISUP Parameter values: SAM; subsequent number (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_102_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Receive Subsequent address message (SAM) with 'middle' Subsequent number digits, no sending complete, and without optional parameters*/ + f_awaiting_SAM(mw_SAM_SQN(mw_SubsNum(PX_ISUP_SAM_SQN_digits_rx1, false))); + + /*Receive Subsequent address message (SAM) with 'final' Subsequent number digits, sending complete, and without optional parameters*/ + f_awaiting_SAM(mw_SAM_SQN(mw_SubsNum(PX_ISUP_SAM_SQN_digits_rx2, true))); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_102_001 + + +/* -----------------------------------TEST CASE TC102002------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Subsequent address message (SAM)/ + +ISUP reference: Q.1912.5 � 6.2 b) + +Isup selection Criteria: PICS 3/8 + +Ensure that the SUT receives an INVITE with the same Call-ID and From tag as a previous INVITE +which was associated with a BICC/ISUP call/bearer control instance currently existing on the +BICC/ISUP side whereby the number of digits in the Request-URI is fewer than the number of +digits already accumulated for the call, then the SUT shall immediately send a 484 Address +Incomplete response for this INVITE. In this case no SAM is sent to BICC/ISUP procedures. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_102_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_102_002 + +}//end group TP102_Sending_SAM + + +group TP103_Sending_COT{ + +/* -----------------------------------TEST CASE TC103001------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Subsequent address message (SAM)/ + +ISUP reference: Q.1912.5 � 6.3 + +Isup selection Criteria: PICS 1/4 AND PICS 4/1 + +Ensure that the when the SUT determines that all the preconditions on the incoming SIP side +have been met and any continuity procedures on the outgoing BICC side have been successfully +completed, the SUT shall send the COT message where the Continuity Indicator in the COT +message shall be set to "Continuity". + +ISUP Parameter values: COT continuity indicator: Continuity; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_103_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_103_001 + + +/* -----------------------------------TEST CASE TC103002------------------------------------ +TC reference: Basic call/SIP-ISUP/Sending of the Subsequent address message (SAM)/ + +ISUP reference: Q.1912.5 � 6.3 + +Isup selection Criteria: PICS 1/5 AND PICS 4/1 + +Ensure that the when the SUT determines that all the preconditions on the incoming SIP side +have been met and any continuity procedures on the outgoing ISUP side have been successfully +completed, the I-IWU shall send the COT message where the Continuity Indicator in the COT +message shall be set to "Continuity check successful". + +ISUP Parameter values: COT continuity indicator: Continuity check successful; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_103_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Continuity message (COT) with Continuity indicators = 'continuity'.*/ + f_awaiting_COT(mw_COT_CTI); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_103_002 + +}//end group TP103_Sending_COT + + +group TP104_Receiving_ACM{ + +/* -----------------------------------TEST CASE TC104001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Address complete message (ACM)/ + +ISUP reference: Q.1912.5 � 6.5 2) + +Ensure that the SUT on receipt of an ACM message where the Called party status indicator is +set to "no indication", in the case of Profile A or Profile B, the ACM is not interworked. + +ISUP Parameter values: ACM Called party satus: no indication; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_104_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_104_001 + + +/* -----------------------------------TEST CASE TC104002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Address complete message (ACM)/ + +ISUP reference: Q.1912.5 � 6.5 1) + +Ensure that the SUT on receipt of an ACM message where the Called party status indicator is +set to " subscriber free" where the ISUP indicator parameter set to ISUP_ID, the ISDN access +indicator set to ISDN_ACCES_ID and the OBCI in-band information set to OBCI_INBAND then : in +case of Profile A or Profile B, the 180 Ringing SIP response is sent. Ensure that the in-band +information can be transmitted to the calling user. + +ISUP Parameter values: ACM FCI: ISUP_ID, ISDN_ACCESS_ID, OBCI: OBCI_INBAND; +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_104_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 4 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: ISDN user part indicator and ISDN access indicator and in-band indicator of OBCI*/ + var Bit1 v_IsdnUpInd[6]; var Bit1 v_BCI_isdnAccInd[6]; var Bit1 v_OBCI_INBAND[9]; + // dummy value for index 0 (unused) + v_IsdnUpInd[0] := '0'B; v_BCI_isdnAccInd[0] := '0'B; v_OBCI_INBAND[0] := '0'B; + // ISUP_ID: ISUP not used all the way / ISDN_ACCES_ID: non ISDN / OBCI_INBAND: no + v_IsdnUpInd[1] := '0'B; v_BCI_isdnAccInd[1] := '0'B; v_OBCI_INBAND[1] := '0'B; + // ISUP_ID: ISUP not used all the way / ISDN_ACCES_ID: non ISDN / OBCI_INBAND: yes + v_IsdnUpInd[2] := '0'B; v_BCI_isdnAccInd[2] := '0'B; v_OBCI_INBAND[2] := '1'B; + // ISUP_ID: ISUP used all the way / ISDN_ACCES_ID: non ISDN / OBCI_INBAND: no + v_IsdnUpInd[3] := '1'B; v_BCI_isdnAccInd[3] := '0'B; v_OBCI_INBAND[3] := '0'B; + // ISUP_ID: ISUP used all the way / ISDN_ACCES_ID: non ISDN / OBCI_INBAND: yes + v_IsdnUpInd[4] := '1'B; v_BCI_isdnAccInd[4] := '0'B; v_OBCI_INBAND[4] := '1'B; + // ISUP_ID: ISUP used all the way / ISDN access indicator: ISDN / OBCI_INBAND: yes + v_IsdnUpInd[5] := '1'B; v_BCI_isdnAccInd[5] := '1'B; v_OBCI_INBAND[5] := '1'B; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with ISDN user part indicator and ISDN access indicator (BCI) parameterized, Optional Backward call Indicators parameterized and without other optional parameters.*/ + f_send_ACM(m_ACM_BCI_OBCI(v_IsdnUpInd[VA], v_BCI_isdnAccInd[VA], m_OBCI_iBandInd(v_OBCI_INBAND[VA])), true); + + // Check Ringing Tone + f_IsupBicc_CheckRingingTone(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_104_002 + +}//end group TP104_Receiving_ACM + + +group TP105_Receiving_CPG{ + +/* -----------------------------------TEST CASE TC105001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Call progress message (CPG)/ + +ISUP reference: Q.1912.5 � 6.6 + +Ensure that the SUT, having received the ACM message called party status indicator "no +indication", on receipt of a CPG message where the event information parameter event indicator +is set to "Alerting" the 180 Ringing SIP response is sent. + +ISUP Parameter values: +ACM: Called party status "no indication", CPG; event information parameter event indicator: +Alerting +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_105_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'ALERTING' and without optional parameters.*/ + f_send_CPG(m_CPG_EVI(c_EVI_eventInd_alert), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_105_001 + + +/* -----------------------------------TEST CASE TC105002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Call progress message (CPG)/ + +ISUP reference: Q.1912.5 � 6.6 + +Ensure that the SUT, having received the ACM message called party status indicator "no +indication", on receipt of a CPG message where the event information parameter event indicator +is set to "Progress" the CPG is not interworked. + +ISUP Parameter values: +ACM: Called party status "no indication" CPG; event information parameter event indicator: +Progress +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_105_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS' and without optional parameters.*/ + f_send_CPG(m_CPG_EVI(c_EVI_eventInd_progr), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_105_002 + + +/* -----------------------------------TEST CASE TC105003------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Call progress message (CPG)/ + +ISUP reference: Q.1912.5 � 6.6 + +Ensure that the SUT, having received the ACM message called party status indicator "no +indication", on receipt of a CPG message where the event information parameter event indicator +is set to "in-band information or an appropriate pattern is now available" the CPG is not +interworked. + +ISUP Parameter values: ACM: Called party status "no indication" +CPG; event information parameter event indicator: in-band-information or an appropriate pattern is now available +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_105_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + /*Send Call progress message (CPG) with event information = 'in-band information or an appropriate pattern is now available' and without optional parameters.*/ + f_send_CPG(m_CPG_EVI(c_EVI_eventInd_inBand), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_105_003 + +}//end group TP105_Receiving_CPG + + +group TP106_Receiving_ANM{ + +/* -----------------------------------TEST CASE TC106001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the answer message (ANM)/ + +ISUP reference: Q.1912.5 � 6.7 + +Ensure that the SUT, having received the ACM message, on receipt of an ANM message sends a 200 +OK INVITE to the UAC. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_106_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_106_001 + + +/* -----------------------------------TEST CASE TC106002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the answer message (ANM)/ + +ISUP reference: Q.1912.5 � 6.7 + +Ensure that the SUT, having received the ACM message, on receipt of an ANM message sends a 200 +OK INVITE to the UAC. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_106_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_106_002 + + +/* -----------------------------------TEST CASE TC106003------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the answer message (ANM)/ + +ISUP reference: Q.1912.5 � 6.7 + +SDP offer was not received in the initial INVITE. Ensure that the SUT, having received the ACM +message, on receipt of an ANM message sends a 200 OK INVITE to the UAC. The 200 OK INVITE +shall include an SDP offer consistent with the TMR/USI used on the BICC/ISUP side +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_106_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_106_003 + +}//end group TP106_Receiving_ANM + + +group TP107_Receiving_CON{ + +/* -----------------------------------TEST CASE TC107001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Connect message (CON)/ + +ISUP reference: Q.1912.5 � 6.4, 6.7 + +SDP offer was received in the initial INVITE. Ensure that the SUT, on receipt of an CON +message sends a 200 OK INVITE to the UAC. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_107_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default CON message*/ + f_send_CON(m_CON_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_107_001 + + +/* -----------------------------------TEST CASE TC107002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Connect message (CON)/ + +ISUP reference: Q.1912.5 � 6.4, 6.7 + +Ensure that the SUT, on receipt of an CON message sends a 200 OK INVITE to the UAC. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_107_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default CON message*/ + f_send_CON(m_CON_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_107_002 + + +/* -----------------------------------TEST CASE TC107003------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Connect message (CON)/ + +ISUP reference: Q.1912.5 � 6.4, 6.7 + +SDP offer was not received in the initial INVITE. Ensure that the SUT, on receipt of an CON +message sends a 200 OK INVITE to the UAC. The 200 OK INVITE shall include an SDP offer +consistent with the TMR/USI used on the BICC/ISUP side +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_107_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default CON message*/ + f_send_CON(m_CON_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Setup Indication - handled in default + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_107_003 + +}//end group TP107_Receiving_CON + + +group TP108_Receiving_REL{ + +/* -----------------------------------TEST CASE TC108001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, on receipt of an ISUP REL, the SUT immediately requests the disconnection of the +internal bearer path. When the ISUP circuit is available for re-selection, an ISUP RLC is +returned to the ISUP side. the SUT shall send the appropriate SIP status defined as +SIP_FAILURE_VA. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_001(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 5 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[39]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 1 (unallocated (unassigned) number) + v_CauseVal[1] := 1; + // Cause Value No. 2 (no route to network) + v_CauseVal[2] := 2; + // Cause Value No. 3 (no route to destination) + v_CauseVal[3] := 3; + // Cause Value No. 4 (Send special information tone) + v_CauseVal[4] := 4; + // Cause Value No. 5 (Misdialed trunk prefix) + v_CauseVal[5] := 5; + // Cause Value No. 8 (Preemption) + v_CauseVal[6] := 8; + // Cause Value No. 9 (Preemption-circuit reserved for reuse) + v_CauseVal[7] := 9; + // Cause Value No. 17 (user busy) + v_CauseVal[8] := 17; + // Cause Value No. 18 (no user responding) + v_CauseVal[9] := 18; + // Cause Value No. 19 (no answer from the user) + v_CauseVal[10] := 19; + // Cause Value No. 20 (subscriber absent) + v_CauseVal[11] := 20; + // Cause Value No. 21 (all rejected) + v_CauseVal[12] := 21; + // Cause Value No. 22 (number changed) + v_CauseVal[13] := 22; + // Cause Value No. 25 (Exchange routing error) + v_CauseVal[14] := 25; + // Cause Value No. 27 (destination out of order) + v_CauseVal[15] := 27; + // Cause Value No. 28 (invalid number format (address incomplete) + v_CauseVal[16] := 28; + // Cause Value No. 29 (facility rejected) + v_CauseVal[17] := 29; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[18] := 31; + // Cause Value in the Class 010 (No circuit/channel available, Cause Value No. 34) + v_CauseVal[19] := 34; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 38-47) (47 is class default) + v_CauseVal[20] := 47; + // Cause Value No. 50 (requested facility not subscribed) + v_CauseVal[21] := 50; + // Cause Value No. 55 (incoming calls barred within CUG) + v_CauseVal[22] := 55; + // Cause Value No. 57 (bearer capability not authorized) + v_CauseVal[23] := 57; + // Cause Value No. 58 (bearer capability not presently) + v_CauseVal[24] := 58; + // Cause Value No. 63 (service option not available, unspecified) (Class default) + v_CauseVal[25] := 63; + // Cause Value in the Class 100 (service or option not implemented Cause Value No. 65 - 79) (79 is class default) + v_CauseVal[26] := 79; + // Cause Value No. 87 (user not member of CUG) + v_CauseVal[27] := 87; + // Cause Value No. 88 (incompatible destination) + v_CauseVal[28] := 88; + // Cause Value No. 90 (Non-existent CUG) + v_CauseVal[29] := 90; + // Cause Value No. 91 (invalid transit network selection) + v_CauseVal[30] := 91; + // Cause Value No. 95 (invalid message) (Class default) + v_CauseVal[31] := 95; + // Cause Value No. 97 (Message type non-existent or not implemented) + v_CauseVal[32] := 97; + // Cause Value No. 99 (information element/parameter non-existent or not implemented) + v_CauseVal[33] := 99; + // Cause Value No. 102 (recovery on timer expiry) + v_CauseVal[34] := 102; + // Cause Value No. 103 (Parameter non-existent or not implemented, pass on) + v_CauseVal[35] := 103; + // Cause Value No. 110 (Message with unrecognized Parameter, discarded) + v_CauseVal[36] := 110; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[37] := 111; + // Cause Value No. 127 (interworking unspecified) (Class default) + v_CauseVal[38] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_001 + + +/* -----------------------------------TEST CASE TC108002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message where the CPS indicator is set to "no indication", on +receipt of an ISUP REL, the SUT immediately requests the disconnection of the internal bearer +path. When the ISUP circuit is available for re-selection, an ISUP RLC is returned to the ISUP +side. the SUT shall send the appropriate SIP status defined as SIP_FAILURE_VA. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 6 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[12]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 17 (user busy) + v_CauseVal[1] := 17; + // Cause Value No. 18 (No user responding) + v_CauseVal[2] := 18; + // Cause Value No. 21 (all rejected) + v_CauseVal[3] := 21; + // Cause Value No. 22 (number changed) + v_CauseVal[4] := 22; + // Cause Value No. 27 (destination out of order) + v_CauseVal[5] := 27; + // Cause Value No. 28 (invalid number format (address incomplete) + v_CauseVal[6] := 28; + // Cause Value No. 31 (normal unspecified)(Class default) + v_CauseVal[7] := 31; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 38-47) (47 is class default) + v_CauseVal[8] := 47; + // Cause Value No. 63 (service option not available, unspecified) (Class default) + v_CauseVal[9] := 63; + // Cause Value No. 88 (incompatible destination) + v_CauseVal[10] := 88; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[11] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_002 + + +/* -----------------------------------TEST CASE TC108003------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message where the CPS indicator is set to "subscriber free", +having sent a 180 Ringing message on receipt of an ISUP REL, the SUT immediately requests the +disconnection of the internal bearer path. When the ISUP circuit is available for +re-selection, an ISUP RLC is returned to the ISUP side. the SUT shall send the appropriate SIP +status defined as SIP_FAILURE_VA. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_003(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 7 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 21 (all rejected) + v_CauseVal[1] := 21; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[2] := 31; + // Cause Value No. 38 (Network out of order) + v_CauseVal[3] := 38; + // Cause Value No. 41 (Temporary failure ) + v_CauseVal[4] := 41; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[5] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_003 + + +/* -----------------------------------TEST CASE TC108004------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message where the CPS indicator is set to "no indication", +having received a CPG message where the event information parameter event indicator is set to +"Alerting", a 180 Ringing message is sent, on receipt of an ISUP REL, the SUT immediately +requests the disconnection of the internal bearer path. When the ISUP circuit is available for +re-selection, an ISUP RLC is returned to the ISUP side. the SUT shall send the appropriate SIP +status defined as SIP_FAILURE_VA. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_004(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 7 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 21 (all rejected) + v_CauseVal[1] := 21; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[2] := 31; + // Cause Value No. 38 (Network out of order) + v_CauseVal[3] := 38; + // Cause Value No. 41 (Temporary failure ) + v_CauseVal[4] := 41; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[5] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default CPG message*/ + f_send_CPG(m_CPG_EVI(c_EVI_eventInd_alert), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_004 + + +/* -----------------------------------TEST CASE TC108005------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message, having received a ANM", a 200 OK message is sent, on +receipt of an ISUP REL, where the cause value defined as CV_ISUP, the SUT immediately requests +the disconnection of the internal bearer path. When the ISUP circuit is available for +re-selection, an ISUP RLC is returned to the ISUP side. the SUT shall send a BYE message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_005(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 8 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 16 + v_CauseVal[1] := 16; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[2] := 31; + // Cause Value No. 38 (Network out of order) + v_CauseVal[3] := 38; + // Cause Value No. 41 (Temporary failure ) + v_CauseVal[4] := 41; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[5] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_005 + + +/* -----------------------------------TEST CASE TC108006------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a CON message , a 200 OK message is sent, on receipt of an ISUP REL, +where the cause value defined as CV_ISUP, the SUT immediately requests the disconnection of +the internal bearer path. When the ISUP circuit is available for re-selection, an ISUP RLC is +returned to the ISUP side. the SUT shall send a BYE message. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_006(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 8 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 16 + v_CauseVal[1] := 16; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[2] := 31; + // Cause Value No. 38 (Network out of order) + v_CauseVal[3] := 38; + // Cause Value No. 41 (Temporary failure ) + v_CauseVal[4] := 41; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[5] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default CON message*/ + f_send_CON(m_CON_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_006 + + +/* -----------------------------------TEST CASE TC108007------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, on receipt of an ISUP REL, where the cause value defined as CV_ISUP, the SUT +immediately requests the disconnection of the internal bearer path. When the ISUP circuit is +available for re-selection, an ISUP RLC is returned to the ISUP side. the SUT shall send the +appropriate SIP status defined as SIP_FAILURE_VA The ISUP Cause Value field in the ISUP REL +message is mapped to the Reason header field. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_007(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 9 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[39]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 1 (unallocated (unassigned) number) + v_CauseVal[1] := 1; + // Cause Value No. 2 (no route to network) + v_CauseVal[2] := 2; + // Cause Value No. 3 (no route to destination) + v_CauseVal[3] := 3; + // Cause Value No. 4 (Send special information tone) + v_CauseVal[4] := 4; + // Cause Value No. 5 (Misdialed trunk prefix) + v_CauseVal[5] := 5; + // Cause Value No. 8 (Preemption) + v_CauseVal[6] := 8; + // Cause Value No. 9 (Preemption-circuit reserved for reuse) + v_CauseVal[7] := 9; + // Cause Value No. 17 (user busy) + v_CauseVal[8] := 17; + // Cause Value No. 18 (no user responding) + v_CauseVal[9] := 18; + // Cause Value No. 19 (no answer from the user) + v_CauseVal[10] := 19; + // Cause Value No. 20 (subscriber absent) + v_CauseVal[11] := 20; + // Cause Value No. 21 (all rejected) + v_CauseVal[12] := 21; + // Cause Value No. 22 (number changed) + v_CauseVal[13] := 22; + // Cause Value No. 25 (Exchange routing error) + v_CauseVal[14] := 25; + // Cause Value No. 27 (destination out of order) + v_CauseVal[15] := 27; + // Cause Value No. 28 (invalid number format (address incomplete) + v_CauseVal[16] := 28; + // Cause Value No. 29 (facility rejected) + v_CauseVal[17] := 29; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[18] := 31; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 34) + v_CauseVal[19] := 34; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 38-47) (47 is class default) + v_CauseVal[20] := 47; + // Cause Value No. 50 (requested facility not subscribed) + v_CauseVal[21] := 50; + // Cause Value No. 55 (incoming calls barred within CUG) + v_CauseVal[22] := 55; + // Cause Value No. 57 (bearer capability not authorized) + v_CauseVal[23] := 57; + // Cause Value No. 58 (bearer capability not presently) + v_CauseVal[24] := 58; + // Cause Value No. 63 (service option not available, unspecified) (Class default) + v_CauseVal[25] := 63; + // Cause Value in the Class 100 (service or option not implemented Cause Value No. 65 - 79) (79 is class default) + v_CauseVal[26] := 79; + // Cause Value No. 87 (user not member of CUG) + v_CauseVal[27] := 87; + // Cause Value No. 88 (incompatible destination) + v_CauseVal[28] := 88; + // Cause Value No. 90 (Non-existent CUG) + v_CauseVal[29] := 90; + // Cause Value No. 91 (invalid transit network selection) + v_CauseVal[30] := 91; + // Cause Value No. 95 (invalid message) (Class default) + v_CauseVal[31] := 95; + // Cause Value No. 97 (Message type non-existent or not implemented) + v_CauseVal[32] := 97; + // Cause Value No. 99 (information element/parameter non-existent or not implemented) + v_CauseVal[33] := 99; + // Cause Value No. 102 (recovery on timer expiry) + v_CauseVal[34] := 102; + // Cause Value No. 103 (Parameter non-existent or not implemented, pass on) + v_CauseVal[35] := 103; + // Cause Value No. 110 (Message with unrecognized Parameter, discarded) + v_CauseVal[36] := 110; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[37] := 111; + // Cause Value No. 127 (interworking unspecified) (Class default) + v_CauseVal[38] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_007 + + +/* -----------------------------------TEST CASE TC108008------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message where the CPS indicator is set to "no indication", on +receipt of an ISUP REL, where the cause value defined as CV_ISUP, the SUT immediately requests +the disconnection of the internal bearer path. When the ISUP circuit is available for +re-selection, an ISUP RLC is returned to the ISUP side. the SUT shall send the appropriate SIP +status defined as SIP_FAILURE_VA The ISUP Cause Value field in the ISUP REL message is mapped +to the Reason header field. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_008(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 10 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[12]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 17 (user busy) + v_CauseVal[1] := 17; + // Cause Value No. 18 (No user responding) + v_CauseVal[2] := 18; + // Cause Value No. 21 (all rejected) + v_CauseVal[3] := 21; + // Cause Value No. 22 (number changed) + v_CauseVal[4] := 22; + // Cause Value No. 27 (destination out of order) + v_CauseVal[5] := 27; + // Cause Value No. 28 (invalid number format (address incomplete) + v_CauseVal[6] := 28; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[7] := 310; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 38-47) (47 is class default) + v_CauseVal[8] := 47; + // Cause Value No. 63 (service option not available, unspecified) (Class default) + v_CauseVal[9] := 63; + // Cause Value No. 88 (incompatible destination) + v_CauseVal[10] := 88; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[11] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_008 + + +/* -----------------------------------TEST CASE TC108009------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message where the CPS indicator is set to "subscriber free", +having sent a 180 Ringing message on receipt of an ISUP REL, where the cause value defined as +CV_ISUP, the SUT immediately requests the disconnection of the internal bearer path. When the +ISUP circuit is available for re-selection, an ISUP RLC is returned to the ISUP side. the SUT +shall send the appropriate SIP status defined as SIP_FAILURE_VA The ISUP Cause Value field in +the ISUP REL message is mapped to the Reason header field. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_009(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 11 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[12]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 17 (user busy) + v_CauseVal[1] := 17; + // Cause Value No. 18 (No user responding) + v_CauseVal[2] := 18; + // Cause Value No. 21 (all rejected) + v_CauseVal[3] := 21; + // Cause Value No. 22 (number changed) + v_CauseVal[4] := 22; + // Cause Value No. 27 (destination out of order) + v_CauseVal[5] := 27; + // Cause Value No. 28 (invalid number format (address incomplete) + v_CauseVal[6] := 28; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[7] := 31; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 38-47) (47 is class default) + v_CauseVal[8] := 47; + // Cause Value No. 63 (service option not available, unspecified) (Class default) + v_CauseVal[9] := 63; + // Cause Value No. 88 (incompatible destination) + v_CauseVal[10] := 88; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[11] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'subscriber free', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_subFree), true); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_009 + + +/* -----------------------------------TEST CASE TC108010------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message where the CPS indicator is set to "no indication", +having received a CPG message where the event information parameter event indicator is set to +"Alerting", a 180 Ringing message is sent, on receipt of an where the cause value defined as +CV_ISUP the SUT immediately requests the disconnection of the internal bearer path. When the +ISUP circuit is available for re-selection, an ISUP RLC is returned to the ISUP side. the SUT +shall send the appropriate SIP status defined as SIP_FAILURE_VA The ISUP Cause Value field in +the ISUP REL message is mapped to the Reason header field. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_010(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 11 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[12]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 17 (user busy) + v_CauseVal[1] := 17; + // Cause Value No. 18 (No user responding) + v_CauseVal[2] := 18; + // Cause Value No. 21 (all rejected) + v_CauseVal[3] := 21; + // Cause Value No. 22 (number changed) + v_CauseVal[4] := 22; + // Cause Value No. 27 (destination out of order) + v_CauseVal[5] := 27; + // Cause Value No. 28 (invalid number format (address incomplete) + v_CauseVal[6] := 28; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[7] := 31; + // Cause Value in the Class 010 (resource unavailable, Cause Value No. 38-47) (47 is class default) + v_CauseVal[8] := 47; + // Cause Value No. 63 (service option not available, unspecified) (Class default) + v_CauseVal[9] := 63; + // Cause Value No. 88 (incompatible destination) + v_CauseVal[10] := 88; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[11] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'no indication', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_noInd), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'ALERTING' and without optional parameters.*/ + f_send_CPG(m_CPG_EVI(c_EVI_eventInd_alert), true); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_010 + + +/* -----------------------------------TEST CASE TC108011------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, having received a ACM message, having received an ANM", a 200 OK message is sent, on +receipt of an ISUP REL where the cause value defined as CV_ISUP, the SUT immediately requests +the disconnection of the internal bearer path. When the ISUP circuit is available for +re-selection, an ISUP RLC is returned to the ISUP side. the SUT shall send BYE message The +ISUP Cause Value field in the ISUP REL message is mapped to the Reason header field in the BYE. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_011(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 12 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 16 + v_CauseVal[1] := 16; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[2] := 31; + // Cause Value No. 38 (Network out of order) + v_CauseVal[3] := 38; + // Cause Value No. 41 (Temporary failure ) + v_CauseVal[4] := 41; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[5] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_011 + + +/* -----------------------------------TEST CASE TC108012------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out a IAM +message, having received a CON message , a 200 OK message is sent, on receipt of an where the +cause value defined as CV_ISUP, the SUT immediately requests the disconnection of the internal +bearer path. When the ISUP circuit is available for re-selection, an ISUP RLC is returned to +the ISUP side. the SUT shall send BYE message The ISUP Cause Value field in the ISUP REL +message is mapped to the Reason header field. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_012(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 12 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Cause Value No. 16 + v_CauseVal[1] := 16; + // Cause Value No. 31 (normal unspecified) (Class default) + v_CauseVal[2] := 31; + // Cause Value No. 38 (Network out of order) + v_CauseVal[3] := 38; + // Cause Value No. 41 (Temporary failure ) + v_CauseVal[4] := 41; + // Cause Value No. 111 (protocol error, unspecified) (Class default) + v_CauseVal[5] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default CON message*/ + f_send_CON(m_CON_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_012 + + +/* -----------------------------------TEST CASE TC108013------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the Release message (REL)/ + +ISUP reference: Q.1912.5 � 6.11.2 + +Ensure that the SUT in the Idle state on receipt of a INVITE message, sending out an IAM +message, on receipt of an ISUP REL with cause value 23 the SUT shall, the SUT immediately +requests the redirection to the new destination according the ISUP/BICC procedures. + +ISUP Parameter values: REL; cause value: 23 +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Release message (REL) with Cause Indicators value 23, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(23)), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + /*Await default IAM message*/ + f_awaiting_IAM2(mw_IAM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and cic2 and sending RLC for both + f_IsupBicc_Post_expREL2(); + +}//End f_IsupBicc_TC_108_013 + +}//end group TP108_Receiving_REL + + +group TP1081_AutonomousRelease{ + +/* -----------------------------------TEST CASE TC108101------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Isup selection Criteria: PICS 4/8 + +Ensure that when a an automatic repeat attempt initiated by the SUT is not successful (because +the call is not routable), the SUT shall send a 480 Temporarily Unavailable response to the +SIP side. No actions on the ISUP (BICC) side are required. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_101() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_101 + + +/* -----------------------------------TEST CASE TC108102------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that when the SUT receives unrecognized backward ISUP or BICC signalling information +and determines that the call needs to be released based on the coding, the SUT shall send a +500 Server Internal Error response on the SIP side. + +ISUP Parameter values: Unknown message: Message compatibility "Relase call" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_102() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send an unknown message, with Message compatibility information indicating 'Release call', and without other optional parameters.*/ + f_send_UNKNOWN(m_UNKNOWN_MCPI(m_MsgCompat_RelCall), true); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_102 + + +/* -----------------------------------TEST CASE TC108103------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that if the I-IWU receives unrecognized backward ISUP or BICC signalling information +and determines that the call needs to be released based on the coding, the SUT shall send a +500 Server Internal Error response on the SIP side. The reason header field containing the +(Q.850) Cause Value of the REL message sent by the I-IWU shall be contained in the SIP Message +(BYE or final response) sent by the SIP side of the I-IWU. + +ISUP Parameter values: Unknown message: Message compatibility "Relase call" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_103() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send an unknown message, with Message compatibility information indicating 'Release call', and without other optional parameters.*/ + f_send_UNKNOWN(m_UNKNOWN_MCPI(m_MsgCompat_RelCall), true); + + /*Await REL message with cause value*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(PX_CAUSE_UNKNOWN_MSG))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_103 + + +/* -----------------------------------TEST CASE TC108104------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Isup selection Criteria: PICS 3/4 + +Ensure that the SUT on receipt of insufficient digits received in an INVITE messages, sends an +484 Address Incomplete message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_104() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_104 + + +/* -----------------------------------TEST CASE TC108105------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the SUT on receipt of subsequent INVITE message, is sending a 484 Address +Incomplete message to consider any offer-answer exchange initiated by the INVITE. A new INVITE +shall initiate a new offer-answer exchange. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_105() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_105 + + +/* -----------------------------------TEST CASE TC108106------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the SUT in congestion on receipt of INVITE message sends an 480 Temporarily +Unavailable message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_106() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_106 + + +/* -----------------------------------TEST CASE TC108107------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the release procedure of the BICC/ISUP are a result of a release after answer +sends a BYE message to the UAC, sends a REL to the BICC/ISUP side +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_107() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Receive Release message (REL) with any Cause Indicators.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAUI_PAR_lv_any)); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_107 + + +/* -----------------------------------TEST CASE TC108108------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the call is released due to the BICC/ISUP compatibility procedure sends 500 Server +Internal Error + +ISUP Parameter values: Unknown parameter: Parameter compatibility "Relase call" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_108() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send ACM message , with an unknown parameter and without other optional parameters.*/ + f_send_ACM(m_ACM_UKNP(valueof(m_UnknownPar)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_108 + + +/* -----------------------------------TEST CASE TC108109------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the call is released due to expiry of T7 within the BICC/ISUP procedures sends 484 +Address Incomplete. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_109() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + var float v_timeout := PX_Timeout_T7; + var float v_timeout_min := (v_timeout)*0.95; + + //Expect a reaction after timeout of protocol timer T7 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_109 + + +/* -----------------------------------TEST CASE TC108110------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the call is released due expiry of T9 within the BICC/ISUP procedures sends 480 +Temporarily Unavailable. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_110() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + var float v_timeout := PX_Timeout_T9; + var float v_timeout_min := (v_timeout)*0.95; + + //Expect a reaction after timeout of protocol timer T9 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_110 + + +/* -----------------------------------TEST CASE TC108111------------------------------------ +TC reference: Basic call/SIP-ISUP/Autonomous release at I-IWU/ + +ISUP reference: Q.1912.5 � 6.11.3 + +Ensure that the call is released due release before answer sends 480 Temporarily Unavailable. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_108_111() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + // Expect AutonomousReleaseAtI_IWU + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_108_111 + +}//end group TP108_Receiving_REL + + +group TP109_Receiving_BYE_CANCEL_REL{ + +/* -----------------------------------TEST CASE TC109001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the BYE, CANCEL message / sending of a REL message/ + +ISUP reference: Q.1912.5 � 6.11.1 + +Ensure that the SUT on receipt of SIP BYE , the SUT shall send an ISUP REL with the cause +value # 16 to the ISUP side. + +ISUP Parameter values: REL: Cause value #16, Location "Network beyond an interworking point" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_109_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Receive Release message (REL) with Cause Indicators indicating location = 'network beyond an interworking point' and cause value = 16.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Beyond(16))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + // Expect Bearer1 Release Indication - handled in default + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_109_001 + + +/* -----------------------------------TEST CASE TC109002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the BYE, CANCEL message / sending of a REL message/ + +ISUP reference: Q.1912.5 � 6.11.1 + +Ensure that the SUT on receipt of SIP CANCEL, the I-IWU shall send an ISUP REL with the cause +value # 31 to the ISUP side. + +ISUP Parameter values: REL: Cause value #31, Location "Network beyond an interworking point" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_109_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Receive Release message (REL) with Cause Indicatorsindicating location = 'network beyond an interworking point' and cause value = 31.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Beyond(31))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_109_002 + + +/* -----------------------------------TEST CASE TC109003------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the BYE, CANCEL message / sending of a REL message/ + +ISUP reference: Q.1912.5 � 6.11.1 + +Ensure that the SUT on receipt of SIP BYE , the SUT shall send an ISUP REL to the ISUP side. +Ensure that the Reason header field with Q.850 Cause Value is included in the BYE message is +mapped to the ISUP Cause Value field in the ISUP REL message. + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_109_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Receive Release message (REL) with Cause Indicatorsindicating location = 'network beyond an interworking point' and cause value the IW-U sends when it has received a BYE message from SIP.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Beyond(PX_ISUP_REL_CAU_cVal_bye))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + // Expect Bearer1 Release Indication - handled in default + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_109_003 + + +/* -----------------------------------TEST CASE TC109004------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the BYE, CANCEL message / sending of a REL message/ + +ISUP reference: Q.1912.5 � 6.11.1 + +Ensure that the SUT on receipt of SIP CANCEL, the I-IWU shall send an ISUP REL to the ISUP side. +Ensure that the Reason header field with Q.850 Cause Value is included in the CANCEL +message is mapped to the ISUP Cause Value field in the ISUP REL message. + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_109_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Receive Release message (REL) with Cause Indicatorsindicating location = 'network beyond an interworking point' and cause value the IW-U sends when it has received a CANCEL message from SIP.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Beyond(PX_ISUP_REL_CAU_cVal_cancel))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_109_004 + +}//end group TP109_Receiving_BYE_CANCEL_REL + + +group TP110_Receiving_RSC_GRS_CGB{ + +/* -----------------------------------TEST CASE TC110001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT, when at least one backward ISUP/BICC message relating to the call has +already been received on receipt of a RSC message sends a BYE message if the SUT has already +received an ACK for the 200 OK INVITE message which had it sent. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_110_001 + + +/* -----------------------------------TEST CASE TC110002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT, when at least one backward ISUP/BICC message relating to the call has +already been received on receipt of a GRS message sends a BYE message if the SUT has already +received an ACK for the 200 OK INVITE message which had it sent. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_110_002 + + +/* -----------------------------------TEST CASE TC110003------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 + +Ensure that the SUT, when at least one backward ISUP message relating to the call has already +been received on receipt of a CGB message, with the Circuit Group Supervision Message Type +Indicator coded as "hardware failure oriented", sends a BYE message if the SUT has already +received an ACK for the 200 OK INVITE message which had it sent. + +ISUP Parameter values: Circuit Group Supervision Message Type Indicator "hardware failure oriented" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def,mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_110_003 + + +/* -----------------------------------TEST CASE TC110004------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT, when at least one backward ISUP/BICC message relating to the call has +already been received on receipt of a RSC message sends 200 OK INVITE if the SUT has not yet +received an ACK for the 200 OK INVITE. The SUT shall wait until it receives the ACK for the +200 OK INVITE before sending the BYE. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_110_004 + + +/* -----------------------------------TEST CASE TC110005------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT, when at least one backward ISUP/BICC message relating to the call has +already been received on receipt of a GRS message sends 200 OK INVITE if the SUT has not yet +received an ACK for the 200 OK INVITE. The SUT shall wait until it receives the ACK for the +200 OK INVITE before sending the BYE. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_110_005 + + +/* -----------------------------------TEST CASE TC110006------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 + +Ensure that the SUT, when at least one backward ISUP message relating to the call has already +been received on receipt of a RSC message, with the Circuit Group Supervision Message Type +Indicator coded as "hardware failure oriented", sends 200 OK INVITE if the SUT has not yet +received an ACK for the 200 OK INVITE. The SUT shall wait until it receives the ACK for the +200 OK INVITE before sending the BYE. + +ISUP Parameter values: Circuit Group Supervision Message Type Indicator "hardware failure oriented" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_110_006 + + +/* -----------------------------------TEST CASE TC110007------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT, when at least one backward ISUP/BICC message relating to the call has +already been received on receipt of a RSC message sends a 500 Server Internal Error on the SIP +side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_110_007 + + +/* -----------------------------------TEST CASE TC110008------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT, when at least one backward ISUP/BICC message relating to the call has +already been received on receipt of a GRS message sends a 500 Server Internal Error on the SIP +side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_008() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_110_008 + + +/* -----------------------------------TEST CASE TC110009------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 + +Ensure that the SUT, when at least one backward ISUP message relating to the call has already +been received on receipt of a CGB message, with the Circuit Group Supervision Message Type +Indicator coded as "hardware failure oriented", sends a 500 Server Internal Error on the SIP +side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_110_009 + + +/* -----------------------------------TEST CASE TC110010------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT after receiving more than one INVITE sending an IAM message for each call +association on receipt of a GRS message were the Range and Status Parameter value is bigger +than "1" the SUT shall send a BYE requests for each call association. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_010() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default IAM message*/ + f_awaiting_IAM2(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM2(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM2(m_ANM_MSG_Def, true); + + // Expect Bearer2 Setup Indication - handled in default + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Circuit group reset message (GRS) with Range and Status values parameterized.*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + // f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_110_010 + + +/* -----------------------------------TEST CASE TC110011------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 6.11.4 and 5 + +Ensure that the SUT after receiving more than one INVITE sending an IAM message for each call +association on receipt of a CGB message, with the Circuit Group Supervision Message Type +Indicator coded as "hardware failure oriented" were the Range and Status Parameter value is +bigger than "1" the SUT shall send a BYE requests for each call association. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_110_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default IAM message*/ + f_awaiting_IAM2(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM2(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM2(m_ANM_MSG_Def, true); + + // Expect Bearer2 Setup Indication - handled in default + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator, and Range and Status parameterized.*/ + f_send_CGB2(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA2(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 and cic2 + f_IsupBicc_Post_CGU2(); + +}//End f_IsupBicc_TC_110_011 + +}//end group TP110_Receiving_RSC_GRS_CGB + + +group TP111_Receiving_SUS{ + +/* -----------------------------------TEST CASE TC111001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the SUSPEND Message (SUS)/ +ISUP reference: +Q.1912.5 � 6.9 + +Ensure that the SUT, on receipt of a SUSPEND message with the suspend indicator set to +"network initiated" does not send any message. + +ISUP Parameter values: SUS; Suspend indicator: network initiated +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_111_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Suspend message (SUS) with Suspend Resume indicators = 'network initiated' and without optional parameters.*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_ntw)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_111_001 + + +/* -----------------------------------TEST CASE TC111002------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the SUSPEND Message (SUS)/ +ISUP reference: +Q.1912.5 � 6.9 + +Isup selection Criteria: PICS 4/19 + +Ensure that the SUT, on receipt of a SUSPEND message with the suspend indicator set to +"network initiated" T6 is started. +After T6 is expiered, the call is released + +ISUP Parameter values: SUS; Suspend indicator: network initiated; REL: Cause value 102 +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_111_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Suspend message (SUS) with Suspend Resume indicators = 'network initiated' and without optional parameters.*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_ntw)), true); + + var float v_timeout := PX_Timeout_T6; + var float v_timeout_min := (v_timeout)*0.95; + + //Expect a reaction after timeout of protocol timer T6 - 5% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Release message (REL) with Cause value 102.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(102))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_111_002 + +}//end group TP111_Receiving_SUS + + +group TP112_Receiving_RES{ + +/* -----------------------------------TEST CASE TC112001------------------------------------ +TC reference: Basic call/SIP-ISUP/Receipt of the RESUME Message (RES)/ +ISUP reference: + +Ensure that the SUT, on receipt of a RESUME message containing the suspend/resume indicator +set to "network initiated" does not send any message. + +ISUP Parameter values: RES; Suspend indicator: network initiated +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_112_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send default SUS message*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_ntw)), true); + + /*Send Resume message (RES) with Suspend Resume indicators = 'network initiated' and without optional parameters.*/ + f_send_RES(m_RES_SRI(m_SuspRes(c_SRI_suspResInd_ntw)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_112_001 + +}//end group TP112_Receiving_RES +}//end group TP1_InterworkingFromSIPtoISUP + + +group TP3_InterworkingFromISUPtoSIP{ +group TP301_Sending_INVITE{ + +/* -----------------------------------TEST CASE TC301001------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 1 a) + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, Sends the INVITE message. + +ISUP Parameter values: IAM: Called party number: with sendig complete indication +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_001 + + +/* -----------------------------------TEST CASE TC301002------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 1 b) + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan sends the INVITE message. + +ISUP Parameter values: IAM: Called party number: complete number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_002 + + +/* -----------------------------------TEST CASE TC301003------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 1 c) + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party sends the INVITE message. + +ISUP Parameter values: IAM: Called party number: complete number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by analysis of the digits, sending complete sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_003 + + +/* -----------------------------------TEST CASE TC301004------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 1 d) + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message sends the INVITE message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_004 + + +/* -----------------------------------TEST CASE TC301005------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 A) + +Isup selection Criteria: PICS 1/5 + +Ensure that the SUT in Idle state, on receipt of an IAM message with the complete called party +number containing the Continuity Check indicator in the Nature of Connection Indicators +parameter is set to indicate "continuity check not required" sends a INVITE message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check not required) and Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_005 + + +/* -----------------------------------TEST CASE TC301006------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 A) + +Isup selection Criteria: PICS 1/5 + +Ensure that the SUT in Idle state, on receipt of an IAM message with the complete called party +number containing the Continuity Check indicator in the Nature of Connection Indicators +parameter which is set to "continuity check required on this circuit" Sends the INVITE after +the receipt of the Continuity message with the Continuity Indicators parameter "continuity +check successful". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit) and Called party number (default number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_006 + + +/* -----------------------------------TEST CASE TC301007------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 A) + +Isup selection Criteria: PICS 1/5 + +Ensure that the SUT in Idle state, on receipt of an IAM message with the complete called party +number containing the Continuity Check indicator in the Nature of Connection Indicators +parameter which is set to "continuity check performed on previous circuit" Sends the INVITE +after the receipt of the Continuity message with the Continuity Indicators parameter +"continuity check successful". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check performed on previous circuit) and default Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI4(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_007 + + +/* -----------------------------------TEST CASE TC301008------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 A) + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to "continuity +check required on this circuit". INVITE shall not be sent if the Continuity message is +received with the Continuity Indicators parameter set to "continuity check failed". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_008() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + /*Send Continuity message (COT) with Continuity indicators indicating continuity check failure.*/ + f_send_COT(m_COT_CTI_Fail, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_008 + + +/* -----------------------------------TEST CASE TC301009------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 A) + +Isup selection Criteria: PICS 1/5 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to "continuity +check required on this circuit". INVITE shall not be sent if the ISUP timer T8 expires. The +SUT Sends a REL message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.95; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_009 + + +/* -----------------------------------TEST CASE TC301012------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message where the Continuity Check +indicator in the Nature of Connection Indicators parameter in the IAM is set to indicate +"continuity check not required" sends an INVITE message with precondition using the SDP offer +in the INVITE. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_012() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check not required'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_notReq)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_012 + + +/* -----------------------------------TEST CASE TC301013------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message where the Continuity Check +indicator in the Nature of Connection Indicators parameter in the IAM is set to indicate +"continuity check required on this circuit" sends an INVITE message with precondition using +the SDP offer in the INVITE. The SDP offer or answer carrying the confirmation of a +precondition being met is sent when the Continuity message with the Continuity Indicators +parameter set to "continuity check successful" was received and the requested preconditions +are met in the SIP network. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_013 + + +/* -----------------------------------TEST CASE TC301014------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message where the Continuity Check +indicator in the Nature of Connection Indicators parameter in the IAM is set to indicate +"continuity check performed on previous circuit" sends an INVITE message with precondition +using the SDP offer in the INVITE. The SDP offer or answer carrying the confirmation of a +precondition being met is sent when the Continuity message with the Continuity Indicators +parameter set to "continuity check successful" was received and the requested preconditions +are met in the SIP network. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check performed on a previous circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Perf)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_014 + + +/* -----------------------------------TEST CASE TC301015------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check performed on +previous circuit" and sends an INVITE message with precondition using the SDP offer in the +INVITE. The call has been cleared before an early dialogue has been established. Ensure that +the SUT sends CANCEL if on the SIP side the internal resource reservation was unsuccessful. +REL with Cause Value 47 (resource unavailable, unspecified) shall be sent on the ISUP side of +the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check performed on a previous circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Perf)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_015 + + +/* -----------------------------------TEST CASE TC301016------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check performed on +previous circuit" and sends an INVITE message with precondition using the SDP offer in the +INVITE. The call has been cleared after an early dialogue with the message defined as +SIP_MESSAGE_VA has been established. Ensure that the SUT sends CANCEL if on the SIP side the +internal resource reservation was unsuccessful. REL with Cause Value 47 (resource unavailable, +unspecified) shall be sent on the ISUP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_016() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check performed on a previous circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Perf)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_016 + + +/* -----------------------------------TEST CASE TC301018------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 The SUT in Idle state, receives an IAM message +containing the Continuity Check indicator in the Nature of Connection Indicators parameter +which is set to "continuity check performed on previous circuit" and sends an INVITE message +with precondition using the SDP offer in the INVITE. The call has been cleared after a 200 OK +response message has been received. Ensure that the SUT sends BYE if on the SIP side the +internal resource reservation was unsuccessful. REL with Cause Value 47 (resource unavailable, +unspecified) shall be sent on the ISUP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_018() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check performed on a previous circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Perf)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_018 + + +/* -----------------------------------TEST CASE TC301019------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 The SUT in Idle state, receives an IAM message +containing the Continuity Check indicator in the Nature of Connection Indicators parameter +which is set to "continuity check required on this circuit" and sends an INVITE message with +precondition using the SDP offer in the INVITE. The call has been cleared before an early +dialogue has been established. Ensure that the SUT sends CANCEL if on the SIP side the +internal resource reservation was unsuccessful. REL with Cause Value 47 (resource unavailable, +unspecified) shall be sent on the ISUP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_019() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_019 + + +/* -----------------------------------TEST CASE TC301020------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check required on +this circuit" and sends an INVITE message with precondition using the SDP offer in the INVITE. +The call has been cleared after an early dialogue with the message defined as SIP_MESSAGE_VA +has been established. Ensure that the SUT sends CANCEL if on the SIP side the internal +resource reservation was unsuccessful. REL with Cause Value 47 (resource unavailable, +unspecified) shall be sent on the ISUP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_020() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_020 + + +/* -----------------------------------TEST CASE TC301027------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check required on +this circuit" and sends an INVITE message with precondition using the SDP offer in the INVITE. +The Continuity message is received with the Continuity Indicators parameter set to "continuity +check failed". The call has been cleared before an early dialogue has been established. Ensure +that the SUT sends CANCEL on the SIP side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_027() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity check failure.*/ + f_send_COT(m_COT_CTI_Fail, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_027 + + +/* -----------------------------------TEST CASE TC301028------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check required on +this circuit" and sends an INVITE message with precondition using the SDP offer in the INVITE. +The Continuity message is received with the Continuity Indicators parameter set to "continuity +check failed". The call has been cleared after an early dialogue with the message defined as +SIP_MESSAGE_VA has been established. Ensure that the SUT sends CANCEL on the SIP side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_028() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity check failure.*/ + f_send_COT(m_COT_CTI_Fail, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_028 + + +/* -----------------------------------TEST CASE TC301031------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check required on +this circuit" and sends an INVITE message with precondition using the SDP offer in the INVITE. +The ISUP Timer T8 expires. The call has been cleared before an early dialogue has been +established. Ensure that the SUT sends CANCEL on the SIP side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_031() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_031 + + +/* -----------------------------------TEST CASE TC301032------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 B) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, receives an IAM message containing the Continuity Check indicator in +the Nature of Connection Indicators parameter which is set to "continuity check required on +this circuit" and sends an INVITE message with precondition using the SDP offer in the INVITE. +The ISUP Timer T8 expires. The call has been cleared after an early dialogue with the message +defined as SIP_MESSAGE_VA has been established. Ensure that the SUT sends CANCEL on the SIP +side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_032() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Req)); + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_032 + + +/* -----------------------------------TEST CASE TC301037------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 C) + +Isup selection Criteria: PICS 1/4 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE is delayed until all the following conditions are +satisfied: Continuity message, with the Continuity Indicators parameter set to "continuity" +shall be received Bearer Set-up indication - for the forward bearer set-up case where the +incoming Connect Type is "notification not required" was received. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_037() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_037 + + +/* -----------------------------------TEST CASE TC301038------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 C) + +Isup selection Criteria: PICS 1/4 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE is delayed until all the following conditions are +satisfied: Continuity message, with the Continuity Indicators parameter set to "continuity" +shall be received APM with Action indicator set to "Connected" - for the forward bearer set-up +cases (with, or without bearer control tunnelling) where the incoming Connect Type is +"notification required", and for the fast set-up (backward) case. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_038() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Application transport message (APM) without optional parameters +MG Note: unfinished*/ + //f_send_APM(m_APM_AI_CNT(m_AI_connected, m_ConnType_NotReq), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_038 + + +/* -----------------------------------TEST CASE TC301039------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 C) + +Isup selection Criteria: PICS 1/4 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE delays until all the following conditions are satisfied: +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received Bearer Set-up Connect indication - for the backward bearer set-up case was received. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_039() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_039 + + +/* -----------------------------------TEST CASE TC301040------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 C) 2.4 + +Isup selection Criteria: PICS 1/4 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE delays until all the following conditions are satisfied: +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received BNC set-up success indication for cases using bearer control tunnelling was received. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_040() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_040 + + +/* -----------------------------------TEST CASE TC301041------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 C) + +Isup selection Criteria: PICS 1/4 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" Sends not the INVITE if the Continuity message was not received, i.e., the BICC +timer T8 expires. Send REL with Cause Value 41 (temporary failure) shall be sent on the BICC +side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_041() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Release message (REL) with Cause value 41.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(41))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_041 + + +/* -----------------------------------TEST CASE TC301042------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 D) + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" sends an INVITE message with precondition using the SDP offer in the INVITE. The +precondition signalling is concluded upon sending the (within an SDP offer-answer exchange) +confirmation of a precondition being met. The SDP offer or answer carrying the confirmation of +a precondition being met is sent when all of the following conditions are satisfied when +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received Bearer Set-up indication - for the forward bearer set-up case where the incoming +Connect Type is "notification not required" was received. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_042() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_042 + + +/* -----------------------------------TEST CASE TC301043------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 D) 2.2 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" sends an INVITE message with precondition using the SDP offer in the INVITE. The +precondition signalling is concluded upon sending the (within an SDP offer-answer exchange) +confirmation of a precondition being met. The SDP offer or answer carrying the confirmation of +a precondition being met is sent when all of the following conditions are satisfied when +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received APM with Action indicator set to "Connected" - for the forward bearer set-up cases +(with, or without bearer control tunnelling) where the incoming Connect Type is "notification +required", and for the fast set-up (backward) case. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_043() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Application transport message (APM) without optional parameters +MG Note: unfinished*/ + //f_send_APM(m_APM_AI_CNT(m_AI_connected, m_ConnType_NotReq), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_043 + + +/* -----------------------------------TEST CASE TC301044------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 D) 2.3 + +Isup selection Criteria: PICS 1/4 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" sends an INVITE message with precondition using the SDP offer in the INVITE. The +precondition signalling is concluded upon sending the (within an SDP offer-answer exchange) +confirmation of a precondition being met. The SDP offer or answer carrying the confirmation of +a precondition being met is sent when all of the following conditions are satisfied when +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received Bearer Set-up Connect indication - for the backward bearer set-up case was received. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_044() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_044 + + +/* -----------------------------------TEST CASE TC301045------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 D) 2.4 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" sends an INVITE message with precondition using the SDP offer in the INVITE. The +precondition signalling is concluded upon sending the (within an SDP offer-answer exchange) +confirmation of a precondition being met. The SDP offer or answer carrying the confirmation of +a precondition being met is sent when all of the following conditions are satisfied when +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received BNC set-up success indication for cases using bearer control tunnelling was received. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_045() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_045 + + +/* -----------------------------------TEST CASE TC301046------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 D) + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +The SUT in Idle state, on receipt of an IAM message containing the Continuity Check indicator +in the Nature of Connection Indicators parameter which is set to "COT to be expected", sends +an INVITE message with precondition using the SDP offer in the INVITE. Ensure that the SUT +sends CANCEL if the ISUP timer T8 expires if the call has been cleared before an early +dialogue has been established. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_046() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_046 + + +/* -----------------------------------TEST CASE TC301048------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 D) + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +The SUT in Idle state, on receipt of an IAM message containing the Continuity Check indicator +in the Nature of Connection Indicators parameter which is set to "COT to be expected", sends +an INVITE message with precondition using the SDP offer in the INVITE. Ensure that the SUT +sends CANCEL if the ISUP timer T8 expires if the call has been cleared after an early dialogue +with the message defined as SIP_MESSAGE_VA has been established. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_048() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_048 + + +/* -----------------------------------TEST CASE TC301049------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing Continuity Check +indicator in the Nature of Connection Indicators parameter which is set to "COT to be +expected". Ensure that the SUT sends CANCEL if on the SIP side the internal resource +reservation was unsuccessful and if the call has been cleared before an early dialogue with +the message has been established. A REL with Cause Value 47 (resource unavailable, +unspecified) shall be sent on the ISUP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_049() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_049 + + +/* -----------------------------------TEST CASE TC301051------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ +ISUP reference: +Q.1912.5 � 7.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing Continuity Check +indicator in the Nature of Connection Indicators parameter which is set to "COT to be +expected". Ensure that the SUT sends CANCEL if on the SIP side the internal resource +reservation was unsuccessful and if the call has been cleared after an early dialogue with the +message defined as SIP_MESSAGE_VA has been established. A REL with Cause Value 47 (resource +unavailable, unspecified) shall be sent on the ISUP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_051() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('COT to be expected'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_NCI(m_NatConn_Exp)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + /*Receive Release message (REL) with Cause value 47.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(47))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_051 + + +/* -----------------------------------TEST CASE TC301053------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.1 + +Ensure that the SUT in the Idle state on receipt of a IAM message, with the Transmission +Medium Requirement (TMR) parameter set to TMR_VALUE. sends an INVITE message containing the +media description defined with the "a =" "b =" and "m=" lines set to a_b_m_LINE_VALUE. + +ISUP Parameter values: IAM: TMR : ISUP_TMR +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_053(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 14 - array used to parameterize the test case variant*/ + /* parameter is: Transmission medium requirement value*/ + var Bit8 v_TMR[10]; + // dummy value for index 0 (unused) + v_TMR[0] := '00000000'B; + // speech + v_TMR[1] := c_TMR_tmrValue_speech; + // speech + v_TMR[2] := c_TMR_tmrValue_speech; + // speech + v_TMR[3] := c_TMR_tmrValue_speech; + // speech + v_TMR[4] := c_TMR_tmrValue_speech; + // 3.1 KHz audio + v_TMR[5] := c_TMR_tmrValue_31Audio; + // 3.1 KHz audio + v_TMR[6] := c_TMR_tmrValue_31Audio; + // 3.1 KHz audio + v_TMR[7] := c_TMR_tmrValue_31Audio; + // 64 kbit/s unrestricted + v_TMR[8] := c_TMR_tmrValue_64Kbs; + // 64 kbit/s unrestricted + v_TMR[9] := c_TMR_tmrValue_64Kbs; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Transmission medium requirement (parameterized), and with no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_TMR(v_TMR[VA])); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_053 + + +/* -----------------------------------TEST CASE TC301054------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.1 + +Ensure that the SUT in the Idle state on receipt of an IAM message, with the user information +parameter set to USI_VALUE sends an INVITE message, with the media description defined with +the "a = " "b =" and "m=" lines set to a_b_m_LINE_VALUE. + +ISUP Parameter values: IAM: TMR : ISUP_USI +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_054(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 15a - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Information transfer capability and User information L1 info*/ + var Bit5 v_InfoTrfCap[14]; var Bit5 v_UserInfoL1[14]; + // dummy value for index 0 (unused) +v_InfoTrfCap[0] := '00000'B; v_UserInfoL1[0] := '00000'B; + // Speech / G.711 �-law +v_InfoTrfCap[1] := c_USI_infoTrfCap_speech; v_UserInfoL1[1] := c_USI_userInfoL1_muLaw; + // Speech / G.711 �-law +v_InfoTrfCap[2] := c_USI_infoTrfCap_speech; v_UserInfoL1[2] := c_USI_userInfoL1_muLaw; + // Speech / G.711 A-law +v_InfoTrfCap[3] := c_USI_infoTrfCap_speech; v_UserInfoL1[3] := c_USI_userInfoL1_ALaw; + // Speech / G.711 A-law +v_InfoTrfCap[4] := c_USI_infoTrfCap_speech; v_UserInfoL1[4] := c_USI_userInfoL1_ALaw; + // USI Absent / omit +v_InfoTrfCap[5] := '11111'B; v_UserInfoL1[5] := '11111'B; + // 3.1 KHz audio / G.711 �-law +v_InfoTrfCap[6] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[6] := c_USI_userInfoL1_muLaw; + // 3.1 KHz audio / G.711 A-law +v_InfoTrfCap[7] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[7] := c_USI_userInfoL1_ALaw; + // 3.1 KHz audio / G.711 �-law +v_InfoTrfCap[8] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[8] := c_USI_userInfoL1_muLaw; + // 3.1 KHz audio / G.711 A-law +v_InfoTrfCap[9] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[9] := c_USI_userInfoL1_ALaw; + // 3.1 KHz audio / G.711 �-law +v_InfoTrfCap[10] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[10] := c_USI_userInfoL1_muLaw; + // 3.1 KHz audio / G.711 A-law +v_InfoTrfCap[11] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[11] := c_USI_userInfoL1_ALaw; + // Unrestricted digital inf. W/tone/ann. / N/A +v_InfoTrfCap[12] := c_USI_infoTrfCap_tones; v_UserInfoL1[12] := '11111'B; + // / Unrestricted digital information / N/A +v_InfoTrfCap[13] := c_USI_infoTrfCap_unrestr; v_UserInfoL1[13] := '11111'B; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User service information parameterized and with no other optional parameters except Propagation delay counter.*/ + if (v_InfoTrfCap[VA] == '11111'B) + { + f_send_IAM(m_IAM_USI(omit));// no USI sent at all + } + else + { if (v_UserInfoL1[VA] == '11111'B)// no UserInfo L1 sent + { + f_send_IAM(m_IAM_USI(m_USI_Std(m_USIContents_InfoTrfCap(v_InfoTrfCap[VA])))); + } + else + { + f_send_IAM(m_IAM_USI(m_USI_Std(m_USIContents_Std(v_InfoTrfCap[VA], v_UserInfoL1[VA])))); + } + } + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_054 + + +/* -----------------------------------TEST CASE TC301055------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.1 + +Ensure that the SUT in the Idle state on receipt of a IAM message, with the user information +parameter set to USI_VALUE and Transmission Medium Requirement (TMR) parameter set to +TMR_VALUE. sends an INVITE message with the media description defined with the "a = " "b =" +and "m=" lines set to a_b_m_LINE_VALUE. Ensure that the SUT is capable of encoding the SDP for +the AMR codec, which is specified in RFC 3267: "RTP payload format and file storage format for +the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) audio codec". + +ISUP Parameter values: IAM: TMR : ISUP_USI +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_055(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 15 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Transmission medium requirement value, Information transfer capability and User information L1 info*/ + var Bit8 v_TMR[14]; var Bit5 v_InfoTrfCap[14]; var Bit5 v_UserInfoL1[14]; + // dummy value for index 0 (unused) + v_TMR[0] := '00000000'B; v_InfoTrfCap[0] := '00000'B; v_UserInfoL1[0] := '00000'B; + // speech / Speech / G.711 �-law + v_TMR[1] := c_TMR_tmrValue_speech; v_InfoTrfCap[1] := c_USI_infoTrfCap_speech; v_UserInfoL1[1] := c_USI_userInfoL1_muLaw; + // speech / Speech / G.711 �-law + v_TMR[2] := c_TMR_tmrValue_speech; v_InfoTrfCap[2] := c_USI_infoTrfCap_speech; v_UserInfoL1[2] := c_USI_userInfoL1_muLaw; + // speech / Speech / G.711 A-law + v_TMR[3] := c_TMR_tmrValue_speech; v_InfoTrfCap[3] := c_USI_infoTrfCap_speech; v_UserInfoL1[3] := c_USI_userInfoL1_ALaw; + // speech / Speech / G.711 A-law + v_TMR[4] := c_TMR_tmrValue_speech; v_InfoTrfCap[4] := c_USI_infoTrfCap_speech; v_UserInfoL1[4] := c_USI_userInfoL1_ALaw; + // 3.1 KHz audio / USI Absent / omit + v_TMR[5] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[5] := '11111'B; v_UserInfoL1[5] := '11111'B; + // 3.1 KHz audio / 3.1 KHz audio / G.711 �-law + v_TMR[6] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[6] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[6] := c_USI_userInfoL1_muLaw; + // 3.1 KHz audio / 3.1 KHz audio / G.711 A-law + v_TMR[7] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[7] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[7] := c_USI_userInfoL1_ALaw; + // 3.1 KHz audio / 3.1 KHz audio / G.711 �-law + v_TMR[8] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[8] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[8] := c_USI_userInfoL1_muLaw; + // 3.1 KHz audio / 3.1 KHz audio / G.711 A-law + v_TMR[9] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[9] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[9] := c_USI_userInfoL1_ALaw; + // 3.1 KHz audio / 3.1 KHz audio / G.711 �-law + v_TMR[10] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[10] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[10] := c_USI_userInfoL1_muLaw; + // 3.1 KHz audio / 3.1 KHz audio / G.711 A-law + v_TMR[11] := c_TMR_tmrValue_31Audio; v_InfoTrfCap[11] := c_USI_infoTrfCap_31Audio; v_UserInfoL1[11] := c_USI_userInfoL1_ALaw; + // 64 kbit/s unrestricted / Unrestricted digital inf. W/tone/ann. / N/A + v_TMR[12] := c_TMR_tmrValue_64Kbs; v_InfoTrfCap[12] := c_USI_infoTrfCap_tones; v_UserInfoL1[12] := '11111'B; + // 64 kbit/s unrestricted / Unrestricted digital information / N/A + v_TMR[13] := c_TMR_tmrValue_64Kbs; v_InfoTrfCap[13] := c_USI_infoTrfCap_unrestr; v_UserInfoL1[13] := '11111'B; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Transmission medium requirement (parameterized), with User service information parameterized and with 'no other optional parameters except Propagation delay counter.*/ + if (v_InfoTrfCap[VA] == '11111'B) + { + f_send_IAM(m_IAM_TMR_USI(v_TMR[VA], omit));// no USI sent at all + } + else + { if (v_UserInfoL1[VA] == '11111'B)// no UserInfo L1 sent + { + f_send_IAM(m_IAM_TMR_USI(v_TMR[VA], m_USI_Std(m_USIContents_InfoTrfCap(v_InfoTrfCap[VA])))); + } + else + { + f_send_IAM(m_IAM_TMR_USI(v_TMR[VA], m_USI_Std(m_USIContents_Std(v_InfoTrfCap[VA], v_UserInfoL1[VA])))); + } + } + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_301_055 + + +/* -----------------------------------TEST CASE TC301056------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter of the IAM to the addr-spec component of the To header field in the +INVITE message. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_056() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_056 + + +/* -----------------------------------TEST CASE TC301057------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter of the IAM to the addr-spec component of the To header field which +shall include the "user=phone" URI parameter if the To header field contains a sip: URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_057() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (address converted by the IWU such that the To header field contains a sip: URI, sending complete sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_SipUri, PX_ISUP_IAM_CLD_digits_SipUri)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_057 + + +/* -----------------------------------TEST CASE TC301058------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter of the IAM and the and the followed SAM to the addr-spec component of +the To header field. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_058() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(c_CLD_natAddrInd_natSig, PX_ISUP_IAM_CLD_digits_Leading_nat)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_058 + + +/* -----------------------------------TEST CASE TC301059------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Ensure that the SUT is mapping in the Called Party Number parameter contained in the Called +Party address information of the IAM and followed SAM to the addr-spec component of the To +header field which shall include the "user=phone" URI parameter if the To header field +contains a sip: URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_059() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of an address, converted by the IWU such that the To header field contains a sip: URI, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_SipUri, PX_ISUP_IAM_CLD_digits_Leading_sipUri)); + + /*Send Subsequent address message (SAM) with subsequent number = 'middle digits mapped to 'phone'' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidPhone)), true); + + /*Send Subsequent address message (SAM) with subsequent number = 'final digits mapped to 'phone'' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinPhone)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_059 + + +/* -----------------------------------TEST CASE TC301060------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.4 + +Isup selection Criteria: PICS 4/5 + +Ensure that the SUT shall derive the Max-Forwards header field value from the Hop Counter +parameter value by applying a factor. The Max-Forwards header field value for a given message +should never increase and should decrease by at least 1 with each successive visit to an IWU, +regardless of intervening interworking, and similarly for Max-Hop Counter inn the BICC/ISUP +domain. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_060() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with default Hop counter value and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_HOC(m_HopC_Def)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_060 + + +/* -----------------------------------TEST CASE TC301061------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Isup selection Criteria: PICS 1/8 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter, Nature of address = "Internationl number" of the IAM to the addr-spec +component of the To header field in the INVITE message. The format of the To header field is +"+CC+NDC+SN" the forward address information is derived from the userinfo component of the +INVITE Request-URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_061() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (default international number with sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD2(PX_ISUP_IAM_CLD_digits_txDef_inat, true)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_061 + + +/* -----------------------------------TEST CASE TC301062------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Isup selection Criteria: NOT PICS 1/8 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter, Nature of address = "Nationl (significant) number" of the IAM to the +addr-spec component of the To header field in the INVITE message. The format of the To header +field is "+CC+NDC+SN" the forward address information is derived from the userinfo component +of the INVITE Request-URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_062() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (National (significant) number, sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD3(PX_ISUP_IAM_CLD_digits_txDef_nat, true)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_062 + + +/* -----------------------------------TEST CASE TC301063------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Isup selection Criteria: PICS 1/8 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter, Nature of address = "Internationl number" of the IAM and the and the +followed SAM to the addr-spec component of the To header field. The format of the To header +field is "+CC+NDC+SN" the forward address information is derived from the userinfo component +of the INVITE Request-URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_063() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of international number, no sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD2(PX_ISUP_IAM_CLD_digits_Leading_inat, false)); + + /*Send Subsequent address message (SAM) with subsequent number = 'international middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidInat)), true); + + /*Send Subsequent address message (SAM) with subsequent number = 'international final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinInat)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_063 + + +/* -----------------------------------TEST CASE TC301064------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the INVITE message/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Isup selection Criteria: NOT PICS 1/8 + +Ensure that the SUT is mapping the Called Party address information contained in the Called +Party Number parameter, Nature of address = "Nationl (significant) number" of the IAM and the +followed SAM to the addr-spec component of the To header field. The format of the To header +field is "+CC+NDC+SN" the forward address information is derived from the userinfo component +of the INVITE Request-URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_301_064() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of National (significant) number, no sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD3(PX_ISUP_IAM_CLD_digits_Leading_nat, false)); + + /*Send Subsequent address message (SAM) with subsequent number = 'national middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidNat)), true); + + /*Send Subsequent address message (SAM) with subsequent number = 'national final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinNat)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_301_064 + +}//end group TP301_Sending_INVITE + + +group TP302_Receiving_SAM{ + +/* -----------------------------------TEST CASE TC302001------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ + +ISUP reference: Q.1912.5 � 7.2 + +Ensure if the SUT is supporting en bloc addressing towards the SIP network, subsequent SAMs +received after the SUT has sent the INVITE are ignored. + +ISUP Parameter values: SAM; subsequent number (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_001 + + +/* -----------------------------------TEST CASE TC302002------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to indicate +"continuity check not required" sends a INVITE message +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + +// /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators ('continuity check not required'), and with 'no optional parameters except Propagation delay counter.*/ +// f_send_IAM(m_IAM_NCI(m_NatConn_notReq)); + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check not required) and Called party number (sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_002 + + +/* -----------------------------------TEST CASE TC302003------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to "continuity +check required on this circuit" Sends the INVITE after the receipt of the Continuity message +with the Continuity Indicators parameter "continuity check successful". +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_003 + + +/* -----------------------------------TEST CASE TC302004------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to "continuity +check performed on previous circuit" Sends the INVITE after the receipt of the Continuity +message with the Continuity Indicators parameter "continuity check successful". +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: a) The +Request-URI and the To header field of the new INVITE shall contain all digits received so far +for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check performed on previous circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI4(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_004 + + +/* -----------------------------------TEST CASE TC302005------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to "continuity +check required on this circuit" sending of INVITE is delayed. INVITE message shall not be sent +after the Continuity message was received with the Continuity Indicators parameter set to +"continuity check failed". +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_005 + + +/* -----------------------------------TEST CASE TC302007------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set to "continuity +check required on this circuit" sending of INVITE is delayed. INVITE shall not be sent after +the ISUP timer T8 expires. +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(c_CLD_natAddrInd_natSig, PX_ISUP_IAM_CLD_digits_Leading_nat)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.95; + + //Expect a reaction after timeout of protocol timer T8 - 5% + f_IsupBicc_Wait(v_timeout_min); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_302_007 + + +/* -----------------------------------TEST CASE TC302009------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set "continuity +check required on this circuit" Sends an INVITE message after the reception of the Continuity +message with the Continuity Indicators parameter set to "continuity check successful" and +after the requested preconditions are met in the SIP network. +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_009 + + +/* -----------------------------------TEST CASE TC302010------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/5 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the Continuity +Check indicator in the Nature of Connection Indicators parameter which is set or "continuity +check performed on previous circuit", Sends an INVITE message after the reception of the +Continuity message with the Continuity Indicators parameter set to "continuity check +successful" and after the requested preconditions are met in the SIP network. +On receipt of a SAM from the ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_010() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check performed on previous circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI4(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_010 + + +/* -----------------------------------TEST CASE TC302011------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND NOT PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE is delayed until all the following conditions are +satisfied: Continuity message, with the Continuity Indicators parameter set to "continuity" +shall be received Bearer Set-up indication - for the forward bearer set-up case where the +incoming Connect Type is "notification not required" was received. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check performed on previous circuit) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI4(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_011 + + +/* -----------------------------------TEST CASE TC302012------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE is delayed until all the following conditions are +satisfied: Continuity message, with the Continuity Indicators parameter set to "continuity" +shall be received APM with Action indicator set to "Connected" - for the forward bearer set-up +cases (with, or without bearer control tunnelling) where the incoming Connect Type is +"notification required", and for the fast set-up (backward) case. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_012() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_012 + + +/* -----------------------------------TEST CASE TC302013------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE delays until all the following conditions are satisfied: +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received Bearer Set-up Connect indication - for the backward bearer set-up case was received. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_013 + + +/* -----------------------------------TEST CASE TC302014------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" The sending of the INVITE delays until all the following conditions are satisfied: +Continuity message, with the Continuity Indicators parameter set to "continuity" shall be +received BNC set-up success indication for cases using bearer control tunnelling was received. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_Leading_subs)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_014 + + +/* -----------------------------------TEST CASE TC302015------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" Sends the INVITE message. The events Continuity message, with the Continuity +Indicators parameter set to "continuity" was received Bearer Set-up indication - for the +forward bearer set-up case where the incoming Connect Type is "notification not required" was +received. are indicating the successful completion of bearer set-up. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_015 + + +/* -----------------------------------TEST CASE TC302016------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" Sends the INVITE message. The events Continuity message, with the Continuity +Indicators parameter set to "continuity" was received APM with Action indicator set to +"Connected" - for the forward bearer set-up cases (with, or without bearer control tunnelling) +where the incoming Connect Type is "notification required", and for the fast set-up (backward) +case. are indicating the successful completion of bearer set-up. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_016() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_016 + + +/* -----------------------------------TEST CASE TC302017------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message indicating "COT to be +expected" Sends the INVITE message. The events Continuity message, with the Continuity +Indicators parameter set to "continuity" was received Bearer Set-up Connect indication - for +the backward bearer set-up case was received. are indicating the successful completion of +bearer set-up. +On receipt of a SAM from the BICC the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_017() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_017 + + +/* -----------------------------------TEST CASE TC302018------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 AND PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing indicating "COT to +be expected" Sends the INVITE message. The events Continuity message, with the Continuity +Indicators parameter set to "continuity" was received BNC set-up success indication for cases +using bearer control tunnelling was received are indicating the successful completion of +bearer set-up. +On receipt of a SAM from the BICC/ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: +a) The Request-URI and the To header field of the new INVITE shall contain all digits received +so far for this call. +b) A new INVITE with the same Call-ID and From header (including tag) as the previous INVITE +is sent. +c) The new INVITE shall contain a new SDP offer. The O-IWU may re-use any resources that have +already been reserved for this call. This re-use of existing reserved resources shall be +reflected within the precondition attributes for the SDP parameters in question. +d) All other contents of the new INVITE are interworked from the parameters of the original IAM. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_018() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (COT to be expected) and Called party number (leading part of subscriber number, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI3(c_CLD_natAddrInd_subscr, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_018 + + +/* -----------------------------------TEST CASE TC302019------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 1/4 + +The SUT in Idle state, on receipt of an IAM message sends a INVITE message On receipt of a SAM +from the BICC/ISUP the SUT shall: +1) Stop timer TOIW3 (if it is running). +2) TOIW2 shall be restarted and the SUT shall invoke the following procedures: Ensure that if +timer TOIW2 has expired, subsequent SAMs received after the SUT has sent the INVITE are +ignored. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_019() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + var float v_timeout := PX_Timeout_TOIW2; + var float v_timeout_max := (v_timeout)*1.1; + + //Let protocol timer TOIW2 + 10% expire + f_IsupBicc_Wait(v_timeout_max); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_019 + + +/* -----------------------------------TEST CASE TC302020------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Subsequent address message (SAM)/ +ISUP reference: +Q.1912.5 � 7.2.1 + +Isup selection Criteria: PICS 3/8 + +The SUT in Idle state, on receipt of an IAM message On receipt of a SAM from the BICC/ISUP the +SUT shall: +send an INVITE message if the minimum number of digits for routing the call has been received +in the IAM and the SAM TOIW1 amd TIOW2 shall be started and the SUT shall invoke +the following procedures: +Ensure that if timer TOIW2 has expired, subsequent SAMs received after the SUT has sent the +INVITE are ignored. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_302_020() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of National (significant) number, no sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD3(PX_ISUP_IAM_CLD_digits_Leading_nat, false)); + + /*Send Subsequent address message (SAM) with subsequent number = 'national middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidNat)), true); + + /*Send Subsequent address message (SAM) with subsequent number = 'national final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinNat)), true); + + var float v_timeout := PX_Timeout_TOIW2; + var float v_timeout_max := (v_timeout)*1.1; + + //Let protocol timer TOIW2 + 10% expire + f_IsupBicc_Wait(v_timeout_max); + + /*Send Subsequent address message (SAM) with subsequent number = 'final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinLess)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_302_020 + +}//end group TP302_Receiving_SAM + + +group TP303_Sending_ACM{ + +/* -----------------------------------TEST CASE TC303001------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) a), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, Sends the INVITE message to called user, +Sends the ACM message with the CPS indicator set to "no indication (00)", the Called party's category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP not used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_001 + + +/* -----------------------------------TEST CASE TC303002------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) a), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, Sends the INVITE message to called user +Sends the ACM message with the CPS indicator set to " no indication (00)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " INT_IND_VAL", the ISUP indicator set to +"ISUP_IND_ID", the ISDN access indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_002 + + +/* -----------------------------------TEST CASE TC303003------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) b), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan sends the INVITE message to the called user +Sends the ACM message with the CPS indicator set to "no indication (00)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " interworking encountered (1)", the ISUP indicator +set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP not used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_003 + + +/* -----------------------------------TEST CASE TC303004------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) b), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan Sends the INVITE message to called user Sends +the ACM message with the CPS indicator set to " no indication (00)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " INT_IND_VAL", the ISUP indicator set to +"ISUP_IND_ID", the ISDN access indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_004 + + +/* -----------------------------------TEST CASE TC303005------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) c), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party sends the INVITE message to the called user Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM:; Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP not used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_005 + + +/* -----------------------------------TEST CASE TC303006------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) c), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party Sends the INVITE message to called user Sends the ACM message with the CPS +indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_006 + + +/* -----------------------------------TEST CASE TC303007------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) d), 7.3.1, 7.4 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message sends the INVITE message to the called user +Sends the ACM message with the CPS indicator set to "no indication (00)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " interworking encountered (1)", the ISUP indicator +set to "ISUP not used all the way", the ISDN access indicator set to "terminating access +non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP not used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 'sync1' + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_007 + + +/* -----------------------------------TEST CASE TC303008------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) d), 7.3.1, 7.4 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message Sends the INVITE message to called user Sends +the ACM message with the CPS indicator set to "no indication (00)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " INT_IND_VAL", the ISUP indicator set to +"ISUP_IND_ID", the ISDN access indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_008() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 'sync1' + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_008 + + +/* -----------------------------------TEST CASE TC303010------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Ensure that the SUT if overlap addressing is to be used toward the SIP network, on receipt of +an IAM message containing the minimum number of digits required for routing the call has been +received (start timer TOIW2 and invoke the appropriate outgoing SIP signalling procedure) +Sends an INVITE message to the called user and after the expiration of TOIW2 Sends the ACM +message with the CPS indicator set to " no indication (00)", the Called party's category +indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the +interworking indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the +ISDN access indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_010() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of International (significant) number, no sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD2(PX_ISUP_IAM_CLD_digits_Leading_inat, false)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + var float v_timeout := PX_Timeout_TOIW2; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW2 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_010 + + +/* -----------------------------------TEST CASE TC303011------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) a), 7.3.1 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication receipt of a 180 Ringing message Sends the +ACM message with the CPS indicator set to " subscriber free (01), the Called party's category +indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the +interworking indicator set to " interworking encountered (1)", the ISUP indicator set to "ISUP +not used all the way", the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: " subscriber free (01) Called party's category indicator: no +indication(00) or ordinary subscriber (01) or payphone (10) interworking indicator: +interworking encountered (1) ISUP indicator: ISUP not used all the way ISDN access indicator: +"terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_011 + + +/* -----------------------------------TEST CASE TC303012------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) a), 7.3.1 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, on receipt of a 180 Ringing message Sends +the ACM message with the CPS indicator set to " subscriber free (01)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " INT_IND_VAL", the ISUP indicator set to +"ISUP_IND_ID", the ISDN access indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) Called party's category indicator: no indication(00) +or ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_012() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_012 + + +/* -----------------------------------TEST CASE TC303013------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) b), 7.3.1 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan on receipt of a 180 Ringing message Sends the +ACM message with the CPS indicator set to " subscriber free (01)", the Called party's category +indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the +interworking indicator set to " interworking encountered (1)", the ISUP indicator set to "ISUP +not used all the way", the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) Called party's category indicator: no indication(00) +or ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered +(1) ISUP indicator: ISUP not used all the way ISDN access indicator: "terminating access +non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_013 + + +/* -----------------------------------TEST CASE TC303014------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) b), 7.3.1 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan on receipt of a 180 Ringing message Sends the +ACM message with the CPS indicator set to " subscriber free (01)", the Called party's category +indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the +interworking indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the +ISDN access indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) Called party's category indicator: no indication(00) +or ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_014 + + +/* -----------------------------------TEST CASE TC303015------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) c), 7.3.1 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party on receipt of a 180 Ringing message Sends the ACM message with the CPS +indicator set to " subscriber free (01)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) Called party's category indicator: no indication(00) +or ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered +(1) ISUP indicator: ISUP not used all the way ISDN access indicator: "terminating access +non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_015 + + +/* -----------------------------------TEST CASE TC303016------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) c), 7.3.1 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party on receipt of a 180 Ringing message Sends the ACM message with the CPS +indicator set to " subscriber free (01)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) Called party's category indicator: no indication(00) +or ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_016() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_016 + + +/* -----------------------------------TEST CASE TC303017------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) d), 7.3.1, 7.4 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message Sends the ACM message with the CPS indicator +set to "no indication (00)", the Called party's category indicator set to "no indication(00)" +or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", the ISDN +access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP not used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_017() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP not used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatNoInd_tAccNonISDN(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_017 + + +/* -----------------------------------TEST CASE TC303018------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) d), 7.3.1, 7.4 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message Sends the ACM message with the CPS indicator +set to " no indication (00)", the Called party's category indicator set to "no indication(00)" +or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set to +"ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_018() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_018 + + +/* -----------------------------------TEST CASE TC303019------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1 a), 7.3.2 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication receipt of a 183 Session Progress Sends the +INVITE message to called user No BICC/ISUP message is sent backward. + +ISUP Parameter values: IAM: Called party number: complete number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_019() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_019 + + +/* -----------------------------------TEST CASE TC303020------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1 b), 7.3.2 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan on receipt of a 183 Session Progress No +BICC/ISUP message is sent backward. + +ISUP Parameter values: IAM: Called party number: complete number +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_020() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_020 + + +/* -----------------------------------TEST CASE TC303021------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1 c), 7.3.2 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party on receipt of a 183 Session Progress No BICC/ISUP message is sent backward. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_021() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_021 + + +/* -----------------------------------TEST CASE TC303022------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.2 + +Isup selection Criteria: NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message on receipt of a 183 Session Progress No +BICC/ISUP message is sent backward. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_022() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_022 + + +/* -----------------------------------TEST CASE TC303023------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number, the sending complete indication, and the continuity check is performed (ISUP) or +COT is expected (BICC) Sends the INVITE message to called user the SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_023() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_023 + + +/* -----------------------------------TEST CASE TC303024------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number, the sending complete indication and the continuity check is performed (ISUP) or +COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_024() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_024 + + +/* -----------------------------------TEST CASE TC303025------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan and the continuity check is performed (ISUP) or +COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_025() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_025 + + +/* -----------------------------------TEST CASE TC303026------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan and the continuity check is performed (ISUP) or +COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_026() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_026 + + +/* -----------------------------------TEST CASE TC303027------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party and the continuity check is performed (ISUP) or COT is expected (BICC), Sends +the INVITE message to called user The SUT shall withhold sending ACM until a successful +continuity indication has been received. Sends the ACM message with the CPS indicator set to" +no indication (00)", the Called party's category indicator set to "no indication(00)" or +"ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", the ISDN +access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_027() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_027 + + +/* -----------------------------------TEST CASE TC303028------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party and the continuity check is performed (ISUP) or COT is expected (BICC), Sends +the INVITE message to called user The SUT shall withhold sending ACM until a successful +continuity indication has been received. Sends the ACM message with the CPS indicator set to" +no indication (00)", the Called party's category indicator set to "no indication(00)" or +"ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set to +"ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_028() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_028 + + +/* -----------------------------------TEST CASE TC303029------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message and the continuity check is performed (ISUP) +or COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold +sending ACM until a successful continuity indication has been received. Sends the ACM message +with the CPS indicator set to " no indication (00)", the Called party's category indicator set +to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all +the way", the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_029() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_029 + + +/* -----------------------------------TEST CASE TC303030------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message and the continuity check is performed (ISUP) +or COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold +sending ACM until a successful continuity indication has been received. Sends the ACM message +with the CPS indicator set to " no indication (00)", the Called party's category indicator set +to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access +indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_030() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_030 + + +/* -----------------------------------TEST CASE TC303032------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT if overlap addressing is to be used toward the SIP network, on receipt of +an IAM message containing the minimum number of digits required for routing the call has been +received (start timer TOIW2 and invoke the appropriate outgoing SIP signalling procedure) and +the continuity check is performed (ISUP) or COT is expected (BICC), The SUT shall withhold +sending ACM until a successful continuity indication has been received. Sends the ACM message +with the CPS indicator set to " no indication (00)", the Called party's category indicator set +to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access +indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: INT_IND_VAL (PIXIT) ISUP +indicator: ISUP_IND_ID (PIXIT) ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_032() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (minimum number of digits required for routing, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_min, PX_ISUP_IAM_CLD_digits_min)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + var float v_timeout := PX_Timeout_TOIW2; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW2 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_032 + + +/* -----------------------------------TEST CASE TC303033------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete, the continuity check is performed (ISUP) or COT is +expected (BICC) indication receipt of a 180 Ringing message, Sends the ACM message with the +CPS indicator set to " subscriber free (01), the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: " subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_033() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + v_ACM_expected1 := false; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_033 + + +/* -----------------------------------TEST CASE TC303034------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1; 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, the continuity check is performed (ISUP) or +COT is expected (BICC) indication receipt of a 180 Ringing message, Sends the ACM message with +the CPS indicator set to " subscriber free (01)", the Called party's category indicator set to +"no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access +indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_034() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + v_ACM_expected1 := false; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_034 + + +/* -----------------------------------TEST CASE TC303035------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1; 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan, the continuity check is performed (ISUP) or COT +is expected (BICC) indication receipt of a 180 Ringing message Sends the ACM message with the +CPS indicator set to " subscriber free (01)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_035() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + v_ACM_expected1 := false; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_035 + + +/* -----------------------------------TEST CASE TC303036------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan, the continuity check is performed (ISUP) or COT +is expected (BICC) indication receipt of a 180 Ringing message Sends the ACM message with the +CPS indicator set to " subscriber free (01)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_036() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + v_ACM_expected1 := false; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_036 + + +/* -----------------------------------TEST CASE TC303037------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party , the continuity check is performed (ISUP) or COT is expected (BICC) +indication receipt of a 180 Ringing message Sends the ACM message with the CPS indicator set +to " subscriber free (01)", the Called party's category indicator set to "no indication(00)" +or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", the ISDN +access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_037() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + v_ACM_expected1 := false; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_037 + + +/* -----------------------------------TEST CASE TC303038------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party , the continuity check is performed (ISUP) or COT is expected (BICC) +indication receipt of a 180 Ringing message Sends the ACM message with the CPS indicator set +to " subscriber free (01)", the Called party's category indicator set to "no indication(00)" +or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set to +"ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_038() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + v_ACM_expected1 := false; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_038 + + +/* -----------------------------------TEST CASE TC303039------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number, the sending complete indication, and the continuity check is performed (ISUP) or +COT is expected (BICC) Sends the INVITE message to called user the SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) Called party's category indicator: no indication(00) or +ordinary subscriber (01) or payphone (10) interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_039() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1_NCI2(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_039 + + +/* -----------------------------------TEST CASE TC303040------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number, the sending complete indication and the continuity check is performed (ISUP) or +COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_040() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1_NCI2(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_040 + + +/* -----------------------------------TEST CASE TC303041------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan and the continuity check is performed (ISUP) or +COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_041() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_041 + + +/* -----------------------------------TEST CASE TC303042------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan and the continuity check is performed (ISUP) or +COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold sending +ACM until a successful continuity indication has been received. Sends the ACM message with the +CPS indicator set to " no indication (00)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_042() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_042 + + +/* -----------------------------------TEST CASE TC303043------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party and the continuity check is performed (ISUP) or COT is expected (BICC), Sends +the INVITE message to called user The SUT shall withhold sending ACM until a successful +continuity indication has been received. Sends the ACM message with the CPS indicator set to" +no indication (00)", the Called party's category indicator set to "no indication(00)" or +"ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", the ISDN +access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_043() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_043 + + +/* -----------------------------------TEST CASE TC303044------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party and the continuity check is performed (ISUP) or COT is expected (BICC), Sends +the INVITE message to called user The SUT shall withhold sending ACM until a successful +continuity indication has been received. Sends the ACM message with the CPS indicator set to" +no indication (00)", the Called party's category indicator set to "no indication(00)" or +"ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to" +INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set to +"ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_044() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_044 + + +/* -----------------------------------TEST CASE TC303045------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message and the continuity check is performed (ISUP) +or COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold +sending ACM until a successful continuity indication has been received. Sends the ACM message +with the CPS indicator set to " no indication (00)", the Called party's category indicator set +to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all +the way", the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_045() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_045 + + +/* -----------------------------------TEST CASE TC303046------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by the expiration timer TOIW1 +after the receipt of the latest address message and the continuity check is performed (ISUP) +or COT is expected (BICC), Sends the INVITE message to called user The SUT shall withhold +sending ACM until a successful continuity indication has been received. Sends the ACM message +with the CPS indicator set to " no indication (00)", the Called party's category indicator set +to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access +indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_046() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completeness is determined by timeout, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_timeout, PX_ISUP_IAM_CLD_digits_timeout)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_046 + + +/* -----------------------------------TEST CASE TC303047------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 3/8 AND PICS 4/2 + +Ensure that the SUT if overlap addressing is to be used toward the SIP network, on receipt of +an IAM message containing the minimum number of digits required for routing the call has been +received (start timer TOIW2 and invoke the appropriate outgoing SIP signalling procedure) and +the continuity check is performed (ISUP) or COT is expected (BICC), The SUT shall withhold +sending ACM until a successful continuity indication has been received. Sends the ACM message +with the CPS indicator set to " no indication (00)", the Called party's category indicator set +to "no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access +indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_047() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (minimum number of digits required for routing, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_min, PX_ISUP_IAM_CLD_digits_min)); + + /*Send Subsequent address message (SAM) with subsequent number = 'default middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidDef)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity.*/ + f_send_COT(m_COT_CTI_Succ, true); + + var float v_timeout := PX_Timeout_TOIW2; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW2 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_047 + + +/* -----------------------------------TEST CASE TC303048------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete, the continuity check is performed (ISUP) or COT is +expected (BICC) indication receipt of a 180 Ringing message, Sends the ACM message with the +CPS indicator set to " subscriber free (01), the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: " subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_048() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1_NCI2(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_048 + + +/* -----------------------------------TEST CASE TC303049------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1; 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, the continuity check is performed (ISUP) or +COT is expected (BICC) indication receipt of a 180 Ringing message, Sends the ACM message with +the CPS indicator set to " subscriber free (01)", the Called party's category indicator set to +"no indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking +indicator set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access +indicator set to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_049() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1_NCI2(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_049 + + +/* -----------------------------------TEST CASE TC303050------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1; 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan, the continuity check is performed (ISUP) or COT +is expected (BICC) indication receipt of a 180 Ringing message Sends the ACM message with the +CPS indicator set to " subscriber free (01)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", +the ISDN access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_050() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_used)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_050 + + +/* -----------------------------------TEST CASE TC303051------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1, 7.4 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the maximum number +of digits used in the national numbering plan, the continuity check is performed (ISUP) or COT +is expected (BICC) indication receipt of a 180 Ringing message Sends the ACM message with the +CPS indicator set to " subscriber free (01)", the Called party's category indicator set to "no +indication(00)" or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator +set to " INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set +to "ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_051() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (maximum number of digits according to the national numbering plan, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_max, PX_ISUP_IAM_CLD_digits_max)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_051 + + +/* -----------------------------------TEST CASE TC303052------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party , the continuity check is performed (ISUP) or COT is expected (BICC) +indication receipt of a 180 Ringing message Sends the ACM message with the CPS indicator set +to " subscriber free (01)", the Called party's category indicator set to "no indication(00)" +or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to " +interworking encountered (1)", the ISUP indicator set to "ISUP not used all the way", the ISDN +access indicator set to "terminating access non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: interworking encountered (1) +ISUP indicator: ISUP used all the way +ISDN access indicator: "terminating access non-ISDN" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_052() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', Interworking indicator = 'interworking encountered', ISDN access indicator = 'terminating access non-ISDN', with ISDN user part indicator (BCI) = 'ISUP used all the way', and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree_tAccNonISDN(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_052 + + +/* -----------------------------------TEST CASE TC303053------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Isup selection Criteria: PICS 4/2 AND NOT PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number where the end of address signalling is determined by analysis of the called party +number to indicate that a sufficient number of digits has been received to route the call to +the called party , the continuity check is performed (ISUP) or COT is expected (BICC) +indication receipt of a 180 Ringing message Sends the ACM message with the CPS indicator set +to " subscriber free (01)", the Called party's category indicator set to "no indication(00)" +or "ordinary subscriber (01)" or "payphone (10)", the interworking indicator set to " +INT_IND_VAL", the ISUP indicator set to "ISUP_IND_ID", the ISDN access indicator set to +"ISDN_ACC_IND_VAL". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: subscriber free (01) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_053() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (completenes determined by analysis, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4_NCI2(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default COT message*/ + f_send_COT(m_COT_CTI_Succ, true); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_053 + + +/* -----------------------------------TEST CASE TC303054------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Address complete message (ACM)/ +ISUP reference: +Q.1912.5 � 7.1 1) a), 7.3.1 + +Isup selection Criteria: PICS 4/14 + +Ensure that the SUT in Idle state, on receipt of an IAM message containing the complete called +party number and the sending complete indication, Sends the INVITE message to called user +Sends the ACM message with the CPS indicator set to "no indication (00)", the Called party's +category indicator set to "no indication(00)" or "ordinary subscriber (01)" or "payphone +(10)", the interworking indicator set to " interworking encountered (1)", the ISUP indicator +set to "ISUP not used all the way", the ISDN access indicator set to "terminating access +non-ISDN". + +ISUP Parameter values: +IAM: Called party number: complete number +ACM: CPS indicator: no indication (00) +Called party's category indicator: no indication(00) or ordinary subscriber (01) or payphone (10) +interworking indicator: INT_IND_VAL (PIXIT) +ISUP indicator: ISUP_IND_ID (PIXIT) +ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_303_054() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + v_ACM_expected1 := false; + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt2(c_BCI_isdnUpInd_NotUsed)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_054 + +function f_IsupBicc_TC_303_055() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (less than minimum number digits to route the call, sending complete not sent), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Subsequent address message (SAM) with subsequent number = 'default final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinDef)), true); + + var float v_timeout := PX_Timeout_TOIW2; + var float v_timeout_max := (v_timeout)*1.1; + + //Let protocol timer TOIW2 + 10% expire + f_IsupBicc_Wait(v_timeout_max); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?,?,?)); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Receive Call progress message (CPG) with event information = 'ALERTING', and with 'any' optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI(c_EVI_eventInd_alert)); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_055 + +function f_IsupBicc_TC_303_056() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (leading part of National (significant) number, no sending complete), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD3(PX_ISUP_IAM_CLD_digits_Leading_nat, false)); + + /*Send Subsequent address message (SAM) with subsequent number = 'national middle digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_notSTcmpl(PX_ISUP_SAM_SQN_digits_txMidNat)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Subsequent address message (SAM) with subsequent number = 'national final digits' and without optional parameters*/ + f_send_SAM(m_SAM_SQN(m_SubsNum_STcmpl(PX_ISUP_SAM_SQN_digits_txFinNat)), true); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?,?,?)); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Receive Call progress message (CPG) with event information = 'ALERTING', and with 'any' optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI(c_EVI_eventInd_alert)); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_056 + +function f_IsupBicc_TC_303_057() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Receive Address complete message (ACM) with Called party status indicator = 'subscriber free', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN access indicator, ISDN user part indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cldPstatSubsFree(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_303_057 + +}//end group TP303_Sending_ACM + + +group TP304_Sending_CPG{ + +/* -----------------------------------TEST CASE TC304001------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Call progress message (CPG)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Ensure that the SUT, having sent a ACM message with called party status "no indication" on +receipt of a 180 Ringing message Sends the CPG message with the with the event indicator set +to "Alerting". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_304_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'ALERTING', and with 'any' optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI(c_EVI_eventInd_alert)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_304_001 + + +/* -----------------------------------TEST CASE TC304002------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Call progress message (CPG)/ +ISUP reference: +Q.1912.5 � 7.1, 7.3.1 + +Ensure that the SUT, having sent a ACM message with called party status "no indication" on +receipt of a 183 Session progress message No BICC/ISUP message is sent backward. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_304_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + var float v_timeout := PX_Timeout_TOIW1; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW1 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_cpCat_3alt(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_304_002 + +}//end group TP304_Sending_CPG + + +group TP305_Sending_ANM{ + +/* -----------------------------------TEST CASE TC305001------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the answer message (ANM)/ +ISUP reference: +Q.1912.5 � 7.5 + +Ensure that the SUT having sent the ACM message, on receipt of a 200 OK INVITE for this call, +it shall stop timer TOIW2 (if running). Send ANM as determined by BICC/ISUP procedures. Stop +any existing awaiting answer indication (e.g. ringing tone). +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_305_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Receive Address complete message (ACM) with Called party status indicator = 'no indication', Called party's category indicator = '(no indication or ordinary subscriber or payphone)', with Interworking indicator, ISDN user part indicator and ISDN access indicator (BCI) parameterized, and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_305_001 + +}//end group TP305_Sending_ANM + + +group TP306_Sending_CON{ + +/* -----------------------------------TEST CASE TC306001------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Connect message (CON)/ +ISUP reference: +Q.1912.5 � 7.5, 7.5.1 + +Ensure that the SUT, having not sent the ACM message, on receipt of a 200 OK INVITE for this +call, it shall stop timer TOIW2 (if running). Send CON as determined by BICC/ISUP procedures. +Stop any existing awaiting answer indication (e.g. ringing tone) BCI encoded as followed: + Interworking indicator: interworking encountered + ISUP indicator: ISUP not used all the way + ISDN access indicator: terminating access non-ISDN + CPS indicator: no indication + +ISUP Parameter values: CON; Interworking indicator: interworking encountered + ISUP indicator: ISUP not used all the way + ISDN access indicator: terminating access non-ISDN + CPS indicator: no indication +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_306_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (address automatically answering SIP), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_auto, PX_ISUP_IAM_CLD_digits_auto)); + + /*Receive Connect message (CON) with Called party status indicator = 'no indication', Interworking indicator = 'interworking encountered', ISDN user part indicator = 'ISUP not used all the way', ISDN access indicator = 'terminating access non-ISDN', and with 'any' optional parameters.*/ + f_awaiting_CON(mw_CON_BCI4); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_306_001 + + +/* -----------------------------------TEST CASE TC306002------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Connect message (CON)/ +ISUP reference: +Q.1912.5 � 7.5, 7.5.1 + +Ensure that the SUT, having not sent the ACM message, on receipt of a 200 OK INVITE for this +call, it shall stop timer TOIW2 (if running). Send CON as determined by BICC/ISUP procedures. +Stop any existing awaiting answer indication (e.g. ringing tone) BCI encoded as followed: + interworking indicator: INT_IND_VAL (PIXIT) + ISUP indicator: ISUP_IND_ID (PIXIT) + ISDN access indicator: ISDN_ACC_IND_VAL (PIXIT) + CPS indicator: no indication + +ISUP Parameter values: +CON: interworking indicator: INT_IND_VAL (PIXIT) ISUP indicator: ISUP_IND_ID (PIXIT) ISDN +access indicator: ISDN_ACC_IND_VAL (PIXIT), CPS indicator: no indication +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_306_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Called party number (address automatically answering SIP), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_auto, PX_ISUP_IAM_CLD_digits_auto)); + + /*Receive Connect message (CON) with Interworking indicator, ISDN user part indicator and ISDN access indicator parameterized, and with 'any' optional parameters.*/ + f_awaiting_CON(mw_CON_BCI3(?, ?, ?)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_306_002 + +}//end group TP306_Sending_CON + + +group TP307_Receiving_REL{ + +/* -----------------------------------TEST CASE TC307001------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1, 1) + +Ensure that the SUT after receiving the IAM but before an INVITE has been sent. On receipt of +a REL message no action is required on the SIP side other than to terminate local procedures +if any are in progress. + +ISUP Parameter values: +REL: cause value: CV_ISUP (PIXIT) location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Send Release message (REL) with default Cause Indicators, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(16)), false); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_001 + + +/* -----------------------------------TEST CASE TC307002------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 2) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message before a 200 OK (any) response message has been +received which establishes a confirmed dialogue The SUT shall hold the REL message until a SIP +200 OK INVITE response has been received. The SUT shall send a BYE request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Release message (REL) with Cause Indicators value 16, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(16)), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_002 + + +/* -----------------------------------TEST CASE TC307003------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 2) 3) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message before a 200 OK SIP response message has been +received The SUT shall hold the REL message. A CANCEL is sent when any SIP response was been +received. +On subsequently receiving 200 OK INVITE messages , the SUT shall send an ACK for the 200 OK +INVITE and subsequently send a BYE request after the ACK has been sent. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Release message (REL) with Cause Indicators value 16, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(16)), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_003 + + +/* -----------------------------------TEST CASE TC307004------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 2) 3) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message before an early dialogue with the message defined +as SIP_MESSAGE_VA has been established The SUT shall hold the REL message until a +SIP_MESSAGE_VA response has been received. The SUT shall send a CANCEL or BYE request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Release message (REL) with Cause Indicators value 16, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(16)), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_004 + + +/* -----------------------------------TEST CASE TC307005------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 4) + +Isup selection Criteria: NOT PICS 4/15 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message after a 200 OK response message has been received +The SUT shall hold the REL message until an ACK has been sent. The SUT shall send a BYE +request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + /*Send Release message (REL) with Cause Indicators value 16, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(16)), false); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_005 + + +/* -----------------------------------TEST CASE TC307006------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 3) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message after an early dialogue with the SIP message +defined with the SIP_MESSAGE_VA has been established The SUT shall send a CANCEL or BYE +request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Release message (REL) with Cause Indicators value 16, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(16)), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_006 + + +/* -----------------------------------TEST CASE TC307007------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 2) 4) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message on receipt REL message before a 200 OK response (any) message has been received +received which establishes a confirmed dialogue The SUT shall hold the REL message until a SIP +200 OK INVITE response has been received. The SUT shall send a BYE request. The cause Value +Indicator parameter defined as CV_ISUP shall be mapped to the Reason header field defined as +CV_SIP + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_007(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 18 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[7]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Normal call clearing # 16 + v_CauseVal[1] := 16; + // Normal, unspecified # 31 + v_CauseVal[2] := 31; + // Temporary failure # 41 + v_CauseVal[3] := 41; + // Invalid message, unspecified # 95 + v_CauseVal[4] := 95; + // Recovery on timer expiry # 102 + v_CauseVal[5] := 102; + // Protocol error, unspecified # 111 + v_CauseVal[6] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_007 + + +/* -----------------------------------TEST CASE TC307008------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 2) 3 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message before a 200 OK response message has been received +The SUT shall hold the REL message.A CANCEL is sent when any SIP response was been received. +On subsequently receiving 200 OK INVITE messages , the SUT shall send an ACK for the 200 OK +INVITE and subsequently send a BYE request after the ACK has been sent. The cause Value +Indicator parameter defined as CV_ISUP shall be mapped to the Reason header field defined as +CV_SIP + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_008(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 18 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[7]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Normal call clearing # 16 + v_CauseVal[1] := 16; + // Normal, unspecified # 31 + v_CauseVal[2] := 31; + // Temporary failure # 41 + v_CauseVal[3] := 41; + // Invalid message, unspecified # 95 + v_CauseVal[4] := 95; + // Recovery on timer expiry # 102 + v_CauseVal[5] := 102; + // Protocol error, unspecified # 111 + v_CauseVal[6] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_008 + + +/* -----------------------------------TEST CASE TC307009------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 3) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message before an early dialogue with the message defined +as SIP_MESSAGE has been established The SUT shall hold the REL message until a SIP_MESSAGE_VA +response has been received. The SUT shall send a CANCEL request or a BYE request. The cause +Value Indicator parameter defined as CV_ISUP shall be mapped to the Reason header field +defined as CV_SIP. + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_009(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 18 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[7]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Normal call clearing # 16 + v_CauseVal[1] := 16; + // Normal, unspecified # 31 + v_CauseVal[2] := 31; + // Temporary failure # 41 + v_CauseVal[3] := 41; + // Invalid message, unspecified # 95 + v_CauseVal[4] := 95; + // Recovery on timer expiry # 102 + v_CauseVal[5] := 102; + // Protocol error, unspecified # 111 + v_CauseVal[6] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_009 + + +/* -----------------------------------TEST CASE TC307010------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 3) + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message after a 200 OK response message has been received +The SUT shall send a BYE request after the ACK has been sent. The cause Value Indicator +parameter defined as CV_ISUP shall be mapped to the Reason header field defined as CV_SIP. + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_010(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 18 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[7]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Normal call clearing # 16 + v_CauseVal[1] := 16; + // Normal, unspecified # 31 + v_CauseVal[2] := 31; + // Temporary failure # 41 + v_CauseVal[3] := 41; + // Invalid message, unspecified # 95 + v_CauseVal[4] := 95; + // Recovery on timer expiry # 102 + v_CauseVal[5] := 102; + // Protocol error, unspecified # 111 + v_CauseVal[6] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), false); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_010 + + +/* -----------------------------------TEST CASE TC307011------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of the Release message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.1 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending an +INVITE message. On receipt of a REL message after an early dialogue with the SIP message +defined with the SIP_MESSAGE_VA has been established The SUT shall send a CANCEL or BYE +request. The cause Value Indicator parameter defined as CV_ISUP shall be mapped to the Reason +header field defined as CV_SIP. + +ISUP Parameter values: REL: cause value: CV_ISUP (PIXIT) +location: LOC_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_307_011(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 18 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[7]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // Normal call clearing # 16 + v_CauseVal[1] := 16; + // Normal, unspecified # 31 + v_CauseVal[2] := 31; + // Temporary failure # 41 + v_CauseVal[3] := 41; + // Invalid message, unspecified # 95 + v_CauseVal[4] := 95; + // Recovery on timer expiry # 102 + v_CauseVal[5] := 102; + // Protocol error, unspecified # 111 + v_CauseVal[6] := 111; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Release message (REL) with Cause Indicators parameterized, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(v_CauseVal[VA])), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_307_011 + +}//end group TP307_Receiving_REL + + +group TP308_Sending_REL{ + +/* -----------------------------------TEST CASE TC308001------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.2 + +Ensure that the SUT after receiving the IAM sends out an INVITE message and on receipt of a +BYE message where a Reason header field with Q.850 Cause Value is not included sends a REL +message with the Cause value Value No. 16 ("normal clearing"). + +ISUP Parameter values: REL; Cause value "Normal call clearing" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Receive Release message (REL) with Cause value 16.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(16))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_001 + + +/* -----------------------------------TEST CASE TC308004------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.2 + +Ensure that the SUT after receiving the IAM sends out a INVITE message and on receipt of a BYE +message where a Reason header field with Q.850 Cause Value is included sends a REL message. +The Cause Value is in the Reason header filed mapped to the ISUP Cause Value field in the ISUP +REL. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Receive Release message (REL) with cause value the IW-U sends when it has received a BYE message from SIP.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(PX_ISUP_REL_CAU_cVal_bye))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_004 + + +/* -----------------------------------TEST CASE TC308007------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message. On receipt of a +Failure message (4xx, 5xx, 6xx) where a Reason header field with Q.850 Cause Value is not +included defined as SIP_Failure_VA sends a REL message with the Cause value set to CV_ ISUP. + +ISUP Parameter values: REL; cause value: CV_ISUP +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_007(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 21 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[26]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // 127 Interworking + v_CauseVal[1] := 127; + // 127 Interworking + v_CauseVal[2] := 127; + // 127 Interworking + v_CauseVal[3] := 127; + // 1 Unallocated number + v_CauseVal[4] := 1; + // 127 Interworking + v_CauseVal[5] := 127; + // 127 Interworking + v_CauseVal[6] := 127; + // 127 Interworking + v_CauseVal[7] := 127; + // 22 Number changed (without diagnostic) + v_CauseVal[8] := 22; + // 127 Interworking + v_CauseVal[9] := 127; + // 20 Subscriber absent + v_CauseVal[10] := 20; + // 127 Interworking + v_CauseVal[11] := 127; + // 127 Interworking + v_CauseVal[12] := 127; + // 127 Interworking + v_CauseVal[13] := 127; + // 127 Interworking + v_CauseVal[14] := 127; + // 17 User busy + v_CauseVal[15] := 17; + // 127 Interworking + v_CauseVal[16] := 127; + // 127 Interworking + v_CauseVal[17] := 127; + // 127 Interworking + v_CauseVal[18] := 127; + // 127 Interworking + v_CauseVal[19] := 127; + // 127 Interworking + v_CauseVal[20] := 127; + // 127 Interworking + v_CauseVal[21] := 127; + // 17 User busy + v_CauseVal[22] := 17; + // 21 Call rejected + v_CauseVal[23] := 21; + // 1 Unallocated number + v_CauseVal[24] := 1; + // 127 Interworking + v_CauseVal[25] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + /*Receive Release message (REL) with Cause value parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(v_CauseVal[VA]))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_007 + + +/* -----------------------------------TEST CASE TC308008------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT if the SIP Failure response is interworked to ISUP after receiving an IAM +message sends out an INVITE message. On receipt of a Failure message (4xx, 5xx, 6xx) where a +Reason header field with Q.850 Cause Value is not included defined as SIP_Failure_VA sends a +REL message with the Cause value set to CV_ ISUP. + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_008(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 22 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[14]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // 127 Interworking + v_CauseVal[1] := 127; + // 127 Interworking + v_CauseVal[2] := 127; + // 127 Interworking + v_CauseVal[3] := 127; + // 127 Interworking + v_CauseVal[4] := 127; + // 127 Interworking + v_CauseVal[5] := 127; + // 127 Interworking + v_CauseVal[6] := 127; + // 127 Interworking + v_CauseVal[7] := 127; + // 127 Interworking + v_CauseVal[8] := 127; + // 28 Invalid Number format + v_CauseVal[9] := 28; + // 127 Interworking + v_CauseVal[10] := 127; + // 127 Interworking + v_CauseVal[11] := 127; + // 127 Interworking + v_CauseVal[12] := 127; + // 127 Interworking + v_CauseVal[13] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + /*Receive Release message (REL) with Cause value parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(v_CauseVal[VA]))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_008 + + +/* -----------------------------------TEST CASE TC308009------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message. On receipt of a +Failure message (4xx, 5xx, 6xx) where a Reason header field with Q.850 Cause Value is not +included defined as SIP_Failure_VA no action is taken on the ISUP. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_308_009 + + +/* -----------------------------------TEST CASE TC308010------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message, on receipt of a +Failure message 487 Request terminated where a Reason header field with Q.850 Cause Value is +not included no action is taken on the ISUP if a CANCEL request was previously sent before +answer to an INVITE. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_010() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_010 + +/* -----------------------------------TEST CASE TC308011------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message. On receipt of a +Failure message 491 Request Pending where a Reason header field with Q.850 Cause Value is not +included no action is taken on the ISUP. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_308_011 + + +/* -----------------------------------TEST CASE TC308013------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message, a SIP message defined +as SIP MESSAGE_VA has been received, on receipt of a Failure message (4xx, 5xx, 6xx) defined +as SIP_Failure_VA where a Reason header field with Q.850 Cause Value is not included sends a +REL message with the Cause value set to CV_ ISUP. + +ISUP Parameter values: REL; cause value: CV_ISUP +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_013(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 25 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[26]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // 127 Interworking + v_CauseVal[1] := 127; + // 127 Interworking + v_CauseVal[2] := 127; + // 127 Interworking + v_CauseVal[3] := 127; + // 1 Unallocated number + v_CauseVal[4] := 1; + // 127 Interworking + v_CauseVal[5] := 127; + // 127 Interworking + v_CauseVal[6] := 127; + // 127 Interworking + v_CauseVal[7] := 127; + // 22 Number changed (without diagnostic) + v_CauseVal[8] := 22; + // 127 Interworking + v_CauseVal[9] := 127; + // 20 Subscriber absent + v_CauseVal[10] := 20; + // 127 Interworking + v_CauseVal[11] := 127; + // 127 Interworking + v_CauseVal[12] := 127; + // 127 Interworking + v_CauseVal[13] := 127; + // 127 Interworking + v_CauseVal[14] := 127; + // 17 User busy + v_CauseVal[15] := 17; + // 127 Interworking + v_CauseVal[16] := 127; + // 127 Interworking + v_CauseVal[17] := 127; + // 127 Interworking + v_CauseVal[18] := 127; + // 127 Interworking + v_CauseVal[19] := 127; + // 127 Interworking + v_CauseVal[20] := 127; + // 127 Interworking + v_CauseVal[21] := 127; + // 17 User busy + v_CauseVal[22] := 17; + // 21 Call rejected + v_CauseVal[23] := 21; + // 1 Unallocated number + v_CauseVal[24] := 1; + // 127 Interworking + v_CauseVal[25] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Release message (REL) with Cause value parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(v_CauseVal[VA]))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_013 + + +/* -----------------------------------TEST CASE TC308014------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message a 180 ringing message +has been received on receipt of a Failure message (4xx, 5xx, 6xx) defined as SIP_Failure_VA +where a Reason header field with Q.850 Cause Value is not included sends a REL message with +the Cause value CV_ ISUP. + +ISUP Parameter values: REL; cause value: CV_ISUP +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_014(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 26 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[5]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // 127 Interworking + v_CauseVal[1] := 127; + // 17 User busy + v_CauseVal[2] := 17; + // 17 User busy + v_CauseVal[3] := 17; + // 21 Call rejected + v_CauseVal[4] := 21; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Release message (REL) with Cause value parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(v_CauseVal[VA]))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_014 + + +/* -----------------------------------TEST CASE TC308017------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message, a SIP message defined +as SIP_MESSAGE_VA has been received on receipt of a Failure message (4xx, 5xx, 6xx) defined as +SIP_Failure_VA where a Reason header field with Q.850 Cause Value is included sends a REL +message. The Cause Value in the header field set to CV_SIP is mapped to the ISUP Cause Value +field in the ISUP REL message with the Cause value set to CV_ ISUP. + +ISUP Parameter values: CV_ ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_017(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 25 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[26]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // 127 Interworking + v_CauseVal[1] := 127; + // 127 Interworking + v_CauseVal[2] := 127; + // 127 Interworking + v_CauseVal[3] := 127; + // 1 Unallocated number + v_CauseVal[4] := 1; + // 127 Interworking + v_CauseVal[5] := 127; + // 127 Interworking + v_CauseVal[6] := 127; + // 127 Interworking + v_CauseVal[7] := 127; + // 22 Number changed (without diagnostic) + v_CauseVal[8] := 22; + // 127 Interworking + v_CauseVal[9] := 127; + // 20 Subscriber absent + v_CauseVal[10] := 20; + // 127 Interworking + v_CauseVal[11] := 127; + // 127 Interworking + v_CauseVal[12] := 127; + // 127 Interworking + v_CauseVal[13] := 127; + // 127 Interworking + v_CauseVal[14] := 127; + // 17 User busy + v_CauseVal[15] := 17; + // 127 Interworking + v_CauseVal[16] := 127; + // 127 Interworking + v_CauseVal[17] := 127; + // 127 Interworking + v_CauseVal[18] := 127; + // 127 Interworking + v_CauseVal[19] := 127; + // 127 Interworking + v_CauseVal[20] := 127; + // 127 Interworking + v_CauseVal[21] := 127; + // 17 User busy + v_CauseVal[22] := 17; + // 21 Call rejected + v_CauseVal[23] := 21; + // 1 Unallocated number + v_CauseVal[24] := 1; + // 127 Interworking + v_CauseVal[25] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Release message (REL) with Cause value parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(v_CauseVal[VA]))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_017 + + +/* -----------------------------------TEST CASE TC308018------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message. On receipt of a +response message (3xx) defined as SIP_Response_VA, the SUT sends a REL message with the Cause +value CV_ ISUP. + +ISUP Parameter values: REL; cause value: CV_ISUP +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_018(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 28 - array used to parameterize the test case variant*/ + /* parameter is: Cause value*/ + var integer v_CauseVal[6]; + // dummy value for index 0 (unused) + v_CauseVal[0] := 0; + // 127 Interworking + v_CauseVal[1] := 127; + // 127 Interworking + v_CauseVal[2] := 127; + // 127 Interworking + v_CauseVal[3] := 127; + // 127 Interworking + v_CauseVal[4] := 127; + // 127 Interworking + v_CauseVal[5] := 127; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + /*Receive Release message (REL) with Cause value parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(v_CauseVal[VA]))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_018 + + +/* -----------------------------------TEST CASE TC308019------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6 + +Ensure that the SUT after receiving the IAM sends out an INVITE message. On receipt of a +response message (3xx) defined as SIP_Response_VA, the SUT sends an INVITE using the value of +the Contact header field in the received SIP_Response_VA in the Request URI. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_019() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_019 + + +/* -----------------------------------TEST CASE TC308020------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.3 + +Ensure that the SUT after receiving the IAM the BICC/ISUP procedures results in autonomous REL +message from the SUT then a BYE shall be sent on the SIP side. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_020() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Expect AutonomousReleaseAtO_IWU + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_020 + + +/* -----------------------------------TEST CASE TC308021------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.3 + +Ensure that the SUT after receiving the IAM the BICC/ISUP procedures results in autonomous REL +message from the SUT then a BYE shall be sent on the SIP side. The Reason header field +containing the (Q.850) Cause Value of the REL message has to be on sent by the SIP side + +ISUP Parameter values: REL; cause value: CV_ISUP (PIXIT) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_021() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Expect AutonomousReleaseAtO_IWU + + /*Receive Release message (REL) with Cause Indicators parameterized.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(PX_ISUP_REL_CAU_cVal_autonomous))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_021 + + +/* -----------------------------------TEST CASE TC308022------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6.1 + +Ensure that the SUT a On receipt of a 484 Address Incomplete response for the current INVITE +(i.e. there are no other pending INVITE transactions for this call), if the SUT is configured +to propagate overlap signalling into the SIP network, the SUT shall not send a REL message +immediately and shall instead start timer TOIW3. The REL message shall only be sent if TOIW3 +expires. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_022() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_TOIW3; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer TOIW3 - 10% + f_IsupBicc_Wait(v_timeout_min); + + /*Receive Release message (REL) with any Cause Indicators.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAUI_PAR_lv_any)); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_022 + + +/* -----------------------------------TEST CASE TC308023------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.6.1 + +Ensure that the SUT a On receipt of a 484 Address Incomplete response for the current INVITE +(i.e. there are no other pending INVITE transactions for this call), if the O-IWU is not +configured to propagate overlap signalling into the SIP network then the timer shall not be +started and the REL shall be sent immediately to the BICC/ISUP network. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_023() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + /*Receive Release message (REL) with any Cause Indicators.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAUI_PAR_lv_any)); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_308_023 + + +/* -----------------------------------TEST CASE TC308024------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.3 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT a on receipt of a COT "failed" and preconditons used, the SUT sends a +CANCEL or BYE to the SIP network. + +ISUP Parameter values: +IAM: Nature of connection indicators "continuity check required on this circuit" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_024() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Continuity message (COT) with Continuity indicators indicating continuity check failure.*/ + f_send_COT(m_COT_CTI_Fail, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_308_024 + + +/* -----------------------------------TEST CASE TC308025------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.3 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT when the ISUP/BICC timer T8 is expiered and preconditons used, the SUT +sends a CANCEL or BYE to the SIP network. + +ISUP Parameter values: +IAM: Nature of connection indicators "continuity check required on this circuit" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_025() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + var float v_timeout := PX_Timeout_T8; + var float v_timeout_min := (v_timeout)*0.9; + + //Expect a reaction after timeout of protocol timer T8 - 10% + f_IsupBicc_Wait(v_timeout_min); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_308_025 + + +/* -----------------------------------TEST CASE TC308026------------------------------------ +TC reference: Basic call/ISUP-SIP/Sending of the Release Message (REL)/ +ISUP reference: +Q.1912.5 � 7.7.3 + +Isup selection Criteria: PICS 4/2 + +Ensure that the SUT when the internal resource reservation is unsuccessful and preconditons +used, the SUT sends a CANCEL or BYE to the SIP network. + +ISUP Parameter values: +IAM: Nature of connection indicators "continuity check required on this circuit" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_308_026() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, except for Nature of connection indicators (continuity check required on this circuit'), and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(c_CLI_natAddrInd_natSig, PX_ISUP_IAM_CLI_digits_txNat), omit)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Expect Internal Resource Reservation to be Unsuccessful + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_308_026 + +}//end group TP308_Sending_REL + + +group TP309_Receiving_RSC_GRS_CGB{ + +/* -----------------------------------TEST CASE TC309001------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 1), 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM but before an INVITE has been sent on receipt of a +RSC message, no action is required on the SIP side other than to terminate local procedures if +any are in progress. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, false); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_001 + + +/* -----------------------------------TEST CASE TC309002------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt RSC message before a SIP MESSAGE_VA response message has been +received The SUT shall hold the RSC message until a SIP response has been received. The SUT +shall send a CANCEL request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_002 + + +/* -----------------------------------TEST CASE TC309003------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt RSC message before a 200 OK response message has been received On +subsequently receiving 200 OK INVITE messages , the SUT shall send an ACK for the 200 OK +INVITE and subsequently send a BYE request after the ACK has been sent. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_003 + + +/* -----------------------------------TEST CASE TC309005------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message with the complete called party number, sending a INVITE message on receipt RSC +message after a 200 OK response message has been received The SUT shall send a BYE request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_005 + + +/* -----------------------------------TEST CASE TC309006------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt RSC message after an early dialogue with the SIP message defined +with the SIP_MESSAGE_VA has been established The SUT shall send a CANCEL or BYE request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default RSC message*/ + f_send_RSC(m_RSC_MSG_noOpt, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_006 + + +/* -----------------------------------TEST CASE TC309007------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 1) , 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM but before an INVITE has been sent on receipt of +GRS message, no action is required on the SIP side other than to terminate local procedures if +any are in progress. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, false); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_007 + + +/* -----------------------------------TEST CASE TC309008------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt GRS message before SIP MESSAGE_VA response message has been received +The SUT shall hold the GRS message until a SIP response has been received. The SUT shall send +a CANCEL request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_008() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_008 + + +/* -----------------------------------TEST CASE TC309009------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1 3), 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt GRS message before a 200 OK response message has been received The +SUT shall hold the GRS message until a response has been received. A CANCEL is sent. On +subsequently receiving 200 OK INVITE messages , the SUT shall send an ACK for the 200 OK +INVITE and subsequently send a BYE request after the ACK has been sent. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_009 + + +/* -----------------------------------TEST CASE TC309011------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message with the complete called party number, sending a INVITE message on receipt GRS +message after a 200 OK response message has been received The SUT shall send a BYE request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_011 + + +/* -----------------------------------TEST CASE TC309012------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt GRS message after an early dialogue with the SIP message defined +with the SIP_MESSAGE_VA has been established The SUT shall send a CANCEL request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_012() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send default GRS message*/ + f_send_GRS(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_012 + + +/* -----------------------------------TEST CASE TC309013------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving more than one IAM's sending an INVITE message for each +call association on receipt of a GRS message were the Range Parameter value is bigger than "1" +the SUT shall send a BYE requests for each call association. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM2(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM2(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM2(mw_ANM_MSG_Def); + + // Bearer2 Setup Request + f_IsupBicc_Bearer2SetupRequest(); + + /*Send Circuit group reset message (GRS) with Range and Status values parameterized.*/ + f_send_GRS2(m_GRS_RAS, true); + + /*Await default GRA message*/ + f_awaiting_GRA2(mw_GRA_MSG_anyOpt(mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_309_013 + + +/* -----------------------------------TEST CASE TC309014------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 1) , 7.7.4 + +Ensure that the SUT after receiving the IAM but before an INVITE has been sent on receipt of +CGB message Circuit Group Supervision Message Type Indicator coded as "hardware failure +oriented", no action is required on the SIP side other than to terminate local procedures if +any are in progress. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD4(PX_ISUP_TX_CLD_natAddr_analysis, PX_ISUP_IAM_CLD_digits_analysis)); + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, false); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_309_014 + + +/* -----------------------------------TEST CASE TC309015------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt CGB message Circuit Group Supervision Message Type Indicator coded: +as "hardware failure oriented" before a SIP MESSAGE_VA response message has been received The +SUT shall hold the CGB message until a SIP 200 OK response has been received. The SUT shall +send a CANCEL request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_309_015 + + +/* -----------------------------------TEST CASE TC309016------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1 3), 7.7.4 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt CGB message Circuit Group Supervision Message Type Indicator coded: +as "hardware failure oriented" before a 200 OK response message has been received On +subsequently receiving 200 OK INVITE messages , the SUT shall send an ACK for the 200 OK +INVITE and subsequently send a BYE request after the ACK has been sent. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_016() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_309_016 + + +/* -----------------------------------TEST CASE TC309017------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message with the complete called party number, sending a INVITE message on receipt CGB +message Circuit Group Supervision Message Type Indicator coded as "hardware failure oriented" +after a 200 OK response message has been received The SUT shall send a BYE request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_017() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_309_017 + + +/* -----------------------------------TEST CASE TC309018------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4 + +Ensure that the SUT after receiving the IAM with the complete called party number, sending a +INVITE message on receipt CGB message Circuit Group Supervision Message Type Indicator coded: +as "hardware failure oriented" after an early dialogue with the SIP message defined with the +SIP_MESSAGE_VA has been established The SUT shall send a CANCEL request. +Depending on local policy, a Reason header field containing the (Q.850) Cause Value # 31 may +be added to the SIP message to be sent by the SIP side of the O-IWU. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_018() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator and Range and Status.*/ + f_send_CGB(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 + f_IsupBicc_Post_CGU1(); + +}//End f_IsupBicc_TC_309_018 + + +/* -----------------------------------TEST CASE TC309019------------------------------------ +TC reference: Basic call/ISUP-SIP/Receipt of Reset circuit message (RSC), Circuit group reset message (GRS) or Circuit group blocking message (CGB) with the indication hardware failure oriented/ +ISUP reference: +Q.1912.5 � 7.7.1, 7.7.4, 7.7.5 + +Ensure that the SUT after receiving more than one IAM's sending an INVITE message for each +call association on receipt of a CGB message Circuit Group Supervision Message Type Indicator +coded as "hardware failure oriented" were the Range and Status Parameter value is bigger than +"1" the SUT shall send a BYE requests for each call association. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_309_019() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Initial address message (IAM) with default (F) and (V) parameters, and with 'no optional parameters except Propagation delay counter.*/ + f_send_IAM2(m_IAM_CLD1(PX_ISUP_TX_CLD_natAddr_txDef, PX_ISUP_IAM_CLD_digits_txDef)); + + /*Await default ACM message*/ + f_awaiting_ACM2(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM2(mw_ANM_MSG_Def); + + // Bearer2 Setup Request + f_IsupBicc_Bearer2SetupRequest(); + + /*Send Circuit group blocking message (CGB) with default Circuit Group Supervision Message Type Indicator, and Range and Status parameterized.*/ + f_send_CGB2(m_CGB_CGBMT, true); + + /*Await default CGBA message*/ + f_awaiting_CGBA2(mw_CGBA_MSG_anyOpt(m_cGroupSupMT_Def, mw_RAS_PAR_lv_any)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending CGU and expecting CGUA for cic1 and cic2 + f_IsupBicc_Post_CGU2(); + +}//End f_IsupBicc_TC_309_019 + +}//end group TP309_Receiving_RSC_GRS_CGB +}//end group TP3_InterworkingFromISUPtoSIP +}//end group BasicCall + + +group SupplementaryServices{ +group TP5_InterworkingFromSIPtoISUP{ +group TP501_CLI{ + +/* -----------------------------------TEST CASE TC501001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/9 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field has not been received sends +an IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_001(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 36 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLI address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLD_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLD_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'.) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_001 + + +/* -----------------------------------TEST CASE TC501002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field was received and the +priv-value component is set to "none" sends an IAM message with the Calling party number +parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 37 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLI address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLD_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLD_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'.) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_002 + + +/* -----------------------------------TEST CASE TC501003------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field was received and the +priv-value component is set to "header" sends an IAM message with the Calling party number +parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator = 'any', address digits default, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr_anyNOA(PX_ISUP_IAM_CLI_digits_rxDef))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_003 + + +/* -----------------------------------TEST CASE TC501004------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field was received and the +priv-value component is set to "user" sends an IAM message with the Calling party number +parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator = 'any', address digits default, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr_anyNOA(PX_ISUP_IAM_CLI_digits_rxDef))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_004 + + +/* -----------------------------------TEST CASE TC501005------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field was received and the +priv-value component is set to "id" sends an IAM message with the Calling party number +parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator = 'any', address digits default, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr_anyNOA(PX_ISUP_IAM_CLI_digits_rxDef))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_005 + + +/* -----------------------------------TEST CASE TC501006------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/3 AND PICS 6/9 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has been received and the a Privacy header field has not been received sends an +IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_006(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 38 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_allowed_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_006 + + +/* -----------------------------------TEST CASE TC501007------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "none" sends an IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_007(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 39 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_allowed_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_007 + + +/* -----------------------------------TEST CASE TC501008------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "header" sends an IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_008(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 40 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrP(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_restr_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_008 + + +/* -----------------------------------TEST CASE TC501009------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "user" sends an IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_009(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 41 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrP(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_restr_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_009 + + +/* -----------------------------------TEST CASE TC501010------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "id" sends an IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_010(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 42 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrP(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_restr_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_010 + + +/* -----------------------------------TEST CASE TC501011------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has not been received and the a Privacy header field has not been received sends an +IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_011(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 43 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLI address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLD_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLD_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'.) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_011 + + +/* -----------------------------------TEST CASE TC501012------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has not been received and the a Privacy header field was received and the priv-value +component is set to "none" sends an IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_012(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 44 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLI address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLD_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLD_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'.) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_012 + + +/* -----------------------------------TEST CASE TC501013------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has not been received and the a Privacy header field was received and the priv-value +component is set to "header" sends an IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator = 'any', address digits default, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr_anyNOA(PX_ISUP_IAM_CLI_digits_rxDef))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_013 + + +/* -----------------------------------TEST CASE TC501014------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has not been received and the a Privacy header field was received and the priv-value +component is set to "user" sends an IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator = 'any', address digits default, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr_anyNOA(PX_ISUP_IAM_CLI_digits_rxDef))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_014 + + +/* -----------------------------------TEST CASE TC501015------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has not been received and the a Privacy header field was received and the priv-value +component is set to "id" sends an IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator = 'any', address digits default, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr_anyNOA(PX_ISUP_IAM_CLI_digits_rxDef))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_015 + + +/* -----------------------------------TEST CASE TC501016------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has been received and the a Privacy header field has not been received sends an IAM +message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_016(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 46 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_allowed_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_016 + + +/* -----------------------------------TEST CASE TC501017------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "none" sends an IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_017(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 47 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_allowed_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_017 + + +/* -----------------------------------TEST CASE TC501018------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "header" sends an IAM message with the Calling party number parameter +coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_018(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 48 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrP(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_restr_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_018 + + +/* -----------------------------------TEST CASE TC501019------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "user" sends an IAM message with the Calling party number parameter coded: + Address signals = numberderived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_019(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 49 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrP(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_restr_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_019 + + +/* -----------------------------------TEST CASE TC501020------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/3 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has been +received the SIP From header field containing a URI with an identity in the format "+" CC+ +NDC+ SN has been received and the a Privacy header field was received and the priv-value +component is set to "id" sends an IAM message with the Calling party number parameter coded: + Address signals = number derived from SIP P-Asserted-Identity + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_020(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 50 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user-provided/not verified', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrP(v_natAddrInd[VA], v_digits[VA]), mw_GenNum_restr_upNot(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_020 + + +/* -----------------------------------TEST CASE TC501021------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 6/1 AND PICS 6/11 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field has not been received sends +an IAM message with the Calling party number parameter coded: + Address signals = absent + Screening indicator = network provided + Nature of address indicator = 0000000 + Number Incomplete Indicator = 0 + Numbering plan indicator = 000 + Address Presentation Restricted Indicator = Address not available +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_021() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (address digits = 'absent', Screening indicator = 'network provided', Number incomplete indicator = '0', Numbering plan indicator = '000', Address presentation restricted indicator = 'Address not available', Nature of address indicator = '0000000') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_noDigits)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_021 + + +/* -----------------------------------TEST CASE TC501022------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 1/9 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a SIP URI with an identity 1 in the format "+" CC+ NDC+ SN has +been received without user = phone the SIP P-Asserted-Identity containing a Tel URI with an +identity 2 in the format "+" CC+ NDC+ SN has been received a Privacy header field has not been +received sends an IAM message with the Calling party number parameter coded: + Address signals = identity 2 + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_022(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 51a - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLI address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLD_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLD_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (with Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed'.) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_022 + + +/* -----------------------------------TEST CASE TC501023------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 1/9 AND PICS 6/1 AND PICS 6/12 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has not been received and the a Privacy header field has not been received sends +an IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted by the network + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_023(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 51a - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLI address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLD_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLD_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted by the network') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restrN(v_natAddrInd[VA], v_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_023 + + +/* -----------------------------------TEST CASE TC501024------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Calling Line Identification (CLI)/ +ISUP reference: +Q.1912.5 � 6.1.3.6 + +Isup selection Criteria: PICS 1/9 AND PICS 6/1 AND PICS 6/3 AND PICS 6/12 + +Ensure that the SUT in the Idle state, on receipt of a INVITE message where the SIP +P-Asserted-Identity containing a URI with an identity in the format "+" CC+ NDC+ SN has not +been received the SIP From header field containing a URI with an identity in the format "+" +CC+ NDC+ SN has been received and the a Privacy header field has not been received sends an +IAM message with the Calling party number parameter coded: + Address signals = default number + Screening indicator = network provided + Number Incomplete Indicator = PIXIT + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation restricted by the network + NoAS: NoA_VALUE +with the Generic number parameter coded: + Address signals = number provided by the user + Screening indicator = user provided, not verified + Number Incomplete Indicator = complete + Numbering plan indicator = ISDN numbering plan + Address Presentation Restricted Indicator = Presentation allowed + NoAS: NoA_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_501_024(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 51 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_rxNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_rxNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_rxInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_rxInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Nature of address indicator and address digits parameterized, Screening indicator = 'network provided', Number incomplete indicator = default, Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted by the network') and Generic number (Nature of address indicator and address digits parameterized, Screening indicator = 'user provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation allowed') and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI_GEN(mw_CallingNum_restrN(v_natAddrInd[VA], PX_ISUP_IAM_CLI_digits_rxInat), mw_GenNum_allowed_up(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_501_024 + +}//end group TP501_CLI + + +group TP502_HOLD{ + +/* -----------------------------------TEST CASE TC502001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Hold (HOLD)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Ensure that a party can put the other party on hold at any time after the call is answerd and +before call clearing has begun. Ensure that a party can retrieve the call previously put on +hold. The calling party should be able to put the other party on hold The calling party should +be able to retrieve the other party The called party should be able to put the other party on +hold The called party should be able to retrieve the other party. + +ISUP Parameter values: +CPG: Generic notification: remote hold Event indicator PROGRESS (put on hold) +Generic notification: remote retrieval event indicator PROGRESS (retrieve the call) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_502_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_502_001 + + +/* -----------------------------------TEST CASE TC502002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Hold (HOLD)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Ensure that a party can put the other party on hold in the alerting state. Ensure that the +party can retrieve the call previously put on hold. The calling party should be able to put +the other party on hold The calling party should be able to retrieve the other party. + +ISUP Parameter values: +CPG: Generic notification: remote hold Event indicator PROGRESS (put on hold) +Generic notification: remote retrieval event indicator PROGRESS (retrieve the call) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_502_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_502_002 + + +/* -----------------------------------TEST CASE TC502003------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Hold (HOLD)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Ensure that a party can put the other party on hold after the calling user has provided all of +the information necessary for processing the call. Ensure that the party can retrieve the call +previously put on hold. The calling party should be able to put the other party on hold The +calling party should be able to retrieve the other party. + +ISUP Parameter values: ACM: called party status: no indication +CPG: Generic notification: remote hold Event indicator PROGRESS (put on hold) +Generic notification: remote retrieval event indicator PROGRESS (retrieve the call) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_502_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_502_003 + +function f_IsupBicc_TC_502_004() runs on IsupBiccComponent +{ + + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + //if PIXIT is set on true - await COT message + if(PX_ISUP_COT_MSG_await){f_awaiting_COT(mw_COT_MSG_Def);} + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_502_004 + +function f_IsupBicc_TC_502_005() runs on IsupBiccComponent +{ + + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + //if PIXIT is set on true - await COT message + if(PX_ISUP_COT_MSG_await){f_awaiting_COT(mw_COT_MSG_Def);} + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_502_005 + +function f_IsupBicc_TC_502_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + //if PIXIT is set on true - await COT message + if(PX_ISUP_COT_MSG_await){f_awaiting_COT(mw_COT_MSG_Def);} + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_502_006 + +function f_IsupBicc_TC_502_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval'.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(false); + +}//End f_IsupBicc_TC_502_007 + +}//end group TP502_HOLD + + +group TP503_TP{ + +/* -----------------------------------TEST CASE TC503001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Terminal Portability (TP)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Isup selection Criteria: PICS 5/6 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a SUS +message (ISDN subscriber intitiated) was received. Ensure that the SUT retrieved the media +stream if an RES message (ISDN subscriber intitiated) was received. + +ISUP Parameter values: SUS: Suspend/Resume indicator ISDN subscriber initiated +RES: Suspend/Resume indicator ISDN subscriber initiated +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_503_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Suspend message (SUS) with Suspend Resume indicators 'ISDN subscriber initiated' and without optional parameters.*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_user)), true); + + /*Send Resume message (RES) with Suspend Resume indicators = 'ISDN subscriber initiated' and without optional parameters.*/ + f_send_RES(m_RES_SRI(m_SuspRes(c_SRI_suspResInd_user)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble expecting REL for cic1 and sending RLC + f_IsupBicc_Post_expREL1(true); + +}//End f_IsupBicc_TC_503_001 + + +/* -----------------------------------TEST CASE TC503002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Terminal Portability (TP)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Isup selection Criteria: PICS 4/19 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a SUS +message (ISDN subscriber intitiated) was received. Ensure that the connection is cleard after +T2 was expiered in the PSTN. + +ISUP Parameter values: SUS: Suspend/Resume indicator ISDN subscriber initiated +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_503_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Suspend message (SUS) with Suspend Resume indicators 'ISDN subscriber initiated' and without optional parameters.*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_user)), true); + + var float v_timeout := PX_Timeout_T2; + var float v_timeout_min := (v_timeout)*0.95; + + //Let protocol timer T2 - 5% expire + f_IsupBicc_Wait(v_timeout_min); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_503_002 + +}//end group TP503_TP + + +group TP504_CONF{ + +/* -----------------------------------TEST CASE TC504001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service. If the media stream is either in state "sendonly" or "inactive" +then: INVITE with the attribute line a_LINE_VA, or omitted attribute line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_504_001(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 54 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator parameterized, and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(v_gNotInd[VA])), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_504_001 + + +/* -----------------------------------TEST CASE TC504002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value "reattached" was received due to the +CONF supplementary service in the ALERTING state. If the media stream is either in state +"sendonly" or "inactive" then: INVITE with the attribute line "a=sendrecv", or omitted +attribute line, or "a= recvonly" for the offered media stream, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_504_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 54 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator parameterized, and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(v_gNotInd[VA])), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_504_002 + + +/* -----------------------------------TEST CASE TC504003------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service. If the media stream is either in state "sendonly" or "inactive" +then: INVITE with the attribute line a_LINE_VA, or omitted attribute line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_504_003(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 55 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_isolated; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_reattached; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator parameterized, and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(v_gNotInd[VA])), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_504_003 + + +/* -----------------------------------TEST CASE TC504004------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service in the ALERTING state. If the media stream is either in state +"sendonly" or "inactive" then: INVITE with the attribute line "a=sendrecv", or omitted +attribute line, or "a= recvonly" for the offered media stream. else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_504_004(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 55 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_isolated; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_reattached; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator parameterized, and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(v_gNotInd[VA])), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_504_004 + + +/* -----------------------------------TEST CASE TC504005------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Conference Calling (CONF)/ +NGN reference: +Q.1912.5 ANNEX B.14 +1.7/Q.734 + +Ensure that the SUT on receipt of a CPG message due to the CONF supplementary service, the +Generic notification indicator with the value. No mapping, no disrupting the SIP procedure. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = isolated +CPG: Generic notification = reattached +CPG: Generic notification = Conference disconnected +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_504_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'isolated', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_isolated)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'reattached', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_reattached)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_504_005 + +}//end group TP504_CONF + + +group TP505_3PTY{ + +/* -----------------------------------TEST CASE TC505001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Three-Party (3PTY)/ +NGN reference: +7.4.15/ES 283 027 + +Isup selection Criteria: PICS 5/5 AND PICS 5/189 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +3PTY supplementary service. If the media stream is either in state "sendonly" or "inactive" +then: INVITE with the attribute line a_LINE_VA, or omitted attribute line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = remote hold +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_505_001(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 56 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator parameterized, and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(v_gNotInd[VA])), true); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_505_001 + + +/* -----------------------------------TEST CASE TC505002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Three-Party (3PTY)/ +NGN reference: +7.4.15/ES 283 027 + +Isup selection Criteria: PICS 5/5 AND PICS 5/189 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +3PTY supplementary service in the ALERTING state. If the media stream is either in state +"sendonly" or "inactive" then: INVITE with the attribute line a_LINE_VA, or omitted attribute +line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = remote hold +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_505_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 56 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator parameterized, and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(v_gNotInd[VA])), true); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_505_002 + + +/* -----------------------------------TEST CASE TC505003------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Three-Party (3PTY)/ +NGN reference: +7.4.15/ES 283 027 +2.7/Q.734 + +Isup selection Criteria: NOT PICS 5/18 + +Ensure that the SUT on receipt of a CPG message due to the 3PTY supplementary service, the +Generic notification indicator with the value. No mapping, no disrupting the SIP procedure. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = Conference disconnected +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_505_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + //f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_505_003 + +}//end group TP505_3PTY + + +group TP506_COL{ + +/* -----------------------------------TEST CASE TC506001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Connected Line Identification (COL)/ +ISUP reference: +Q.1912.5 ANNEX B2 + +Ensure that the SUT, if a connected number is received in an ANM, does not disrupt the SIP +signaling procedure. The connected number is not mapped into any SIP message. + +ISUP Parameter values: ANM: Connected number Parameter +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_506_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Answer message (ANM) with default Connected number, and without other optional parameters.*/ + f_send_ANM(m_ANM_CNN(m_ConnNum_Def), true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_506_001 + +}//end group TP506_COL + + +group TP507_MCID{ + +/* -----------------------------------TEST CASE TC507001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Malicious call identification (MCID)/ +ISUP reference: +Q.1912.5 ANNEX B4 + +Ensure that the SUT if an IDR is received returns an IRS message. The MCID response indicator +is set to "MCID not included". The SIP signaling procedure is not disrupted. + +ISUP Parameter values: IDR: MCID requseted +IRS: MCID not included +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_507_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Identification request message (IDR) with MCID request indicators = 'MCID requested', and with 'any' other optional parameters*/ + f_send_IDR(m_IDR_MRQI(m_MCID_RQI_req), true); + + /*Receive Identification response message (IRS) with MCID response indicators = 'MCID not included' and with 'any' other values*/ + f_awaiting_IRS(mw_IRS_MRSI(m_MCID_RPI_notIncl)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_507_001 + + +/* -----------------------------------TEST CASE TC507002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Malicious call identification (MCID)/ +ISUP reference: +Q.1912.5 ANNEX B4 + +Ensure that the SUT if an IDR is received, no IDR is sent. The SIP signaling procedure is not +disrupted. + +ISUP Parameter values: IDR: MCID requseted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_507_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Identification request message (IDR) with MCID request indicators = 'MCID requested', and with 'any' other optional parameters*/ + f_send_IDR(m_IDR_MRQI(m_MCID_RQI_req), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + var float v_timeout := PX_Timeout_T39; + var float v_timeout_max := (v_timeout)*1.1; + + //Let protocol timer T39 + 10% expire + f_IsupBicc_Wait(v_timeout_max); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_507_002 + +}//end group TP507_MCID + + +group TP508_SUB{ + +/* -----------------------------------TEST CASE TC508001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Subaddressing (SUB)/ +ISUP reference: +Q.1912.5 ANNEX B5 + +Ensure that the SUT if a Sub address is received in an ATP parameter, the SIP signaling +procedure is not disrupted. + +ISUP Parameter values: ANM: ATP with a Connected sub-address +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_508_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Answer message (ANM) with Access transport/Connected sub-address, and without other optional parameters.*/ + f_send_ANM(m_ANM_AT_CNSU(m_AT_ConnSub_Def(PX_ISUP_ANM_AT_connSub_val)), true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_508_001 + +}//end group TP508_SUB + + +group TP509_CDIV{ + +/* -----------------------------------TEST CASE TC509001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Diversion (CDIV)/ +ISUP reference: +Q.1912.5 ANNEX B6 + +Ensure that the SUT if an ACM is received with called party status indicator "no indication" +and call diversion may occur indicator in the optional backward call indicator is set to "call +diversion may occur", the SIP signaling procedure is not disrupted (CDa, CFNR). + +ISUP Parameter values: ACM optional backward call indicator +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_509_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with default BCI, Optional Backward call Indicators indicating 'Call diversion may occur' and without other optional parameters.*/ + f_send_ACM(m_ACM_OBCI(m_OBCI_cDivMay), true); + + /*Send Call progress message (CPG) with event information = 'in-band information or an appropriate pattern is now available' and without optional parameters.*/ + f_send_CPG(m_CPG_EVI(c_EVI_eventInd_inBand), true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_509_001 + + +/* -----------------------------------TEST CASE TC509002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Diversion (CDIV)/ +ISUP reference: +Q.1912.5 ANNEX B.6 + +Ensure that the SUT if a ACM is received called party status indicator "no indication" and +containing a Redirection number, call diversion information, redirection number restriction +and generic notification set to "Call is diverting", the SIP signaling procedure is not +disrupted (CFU, CFB, Cdi). + +ISUP Parameter values: ACM: Redirection number, Call diversion information, Redirection number restriction, Generic notification +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_509_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with default BCI, Call diversion information, Generic notification indicator = 'call is diverting', default Redirection number and Redirection number restriction, and without other optional parameters.*/ + f_send_ACM(m_ACM_RDNN_CDI_RDNR_GNI(m_CallDivInfo_Def, m_GenNotifInd(c_GNI_gNotInd_diverting), m_RDNN_Def, m_RedirNumRestr_Def), true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_509_002 + + +/* -----------------------------------TEST CASE TC509003------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Diversion (CDIV)/ +ISUP reference: +Q.1912.5 ANNEX B.6 + +Ensure that the SUT if a CPG is received containing a Redirection number, call diversion +information, redirection number restriction and generic notification set to "Call is +diverting", the SIP signaling procedure is not disrupted (Cda, CFNR, subsequent redirection). + +ISUP Parameter values: ACM: Called party status "Subscriber free" +CPG: Redirection number, Call diversion information, Generic notification +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_509_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with Called party status indicator (BCI) = 'subscriber free', and without optional parameters.*/ + f_send_ACM(m_ACM_BCI(c_BCI_cldPstatInd_subFree), true); + + /*Send Call progress message (CPG) with event information = 'progress' and with default Redirection number, call diversion information = 'call is diverting', redirection number restriction and generic notification set to "Call is diverting"*/ + f_send_CPG(m_CPG_CDI(m_GenNotifInd(c_GNI_gNotInd_diverting), m_RDNN_Def, m_CallDivInfo_Def, m_RedirNumRestr_Def), true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_509_003 + + +/* -----------------------------------TEST CASE TC509004------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Diversion (CDIV)/ +ISUP reference: +Q.1912.5 ANNEX B.6 + +Ensure that the SUT if an ANM is received with redirection number restriction parameter, the +SIP signaling procedure is not disrupted. + +ISUP Parameter values: ANM: Redirection number restriction +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_509_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Answer message (ANM) with default Redirection number restriction, and without other optional parameters.*/ + f_send_ANM(m_ANM_RDNR(m_RedirNumRestr_Def), true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_509_004 + +}//end group TP509_CDIV + + +group TP510_CW{ + +/* -----------------------------------TEST CASE TC510001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Waiting (CW)/ +ISUP reference: +Q.1912.5 ANNEX B.9 + +Ensure that the SUT if an ACM with Generic notification parameter = "Call is a waiting call", +the SIP signaling procedure is not disrupted. + +ISUP Parameter values: ACM: Generic notification parameter = "Call is a waiting call" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_510_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with default BCI, Generic notification indicator = 'call is a waiting call' and without other optional parameters.*/ + f_send_ACM(m_ACM_GNI(m_GenNotifInd(c_GNI_gNotInd_waitCall)), true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_510_001 + + +/* -----------------------------------TEST CASE TC510002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Call Waiting (CW)/ +ISUP reference: +Q.1912.5 ANNEX B.9 + +Ensure that the SUT if a CPG with Generic notification parameter = "Call is a waiting call", +the SIP signaling procedure is not disrupted. + +ISUP Parameter values: ACM: Called party status "Subscriber free" +CPG: Generic notification parameter = "Call is a waiting call" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_510_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send Call progress message (CPG) with event information = 'progress' and withRedirection number, call diversion information, redirection number restriction and generic notification set to 'call is a waiting call'.*/ + f_send_CPG(m_CPG_CDI(m_GenNotifInd(c_GNI_gNotInd_waitCall), omit, omit, omit), true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_510_002 + +}//end group TP510_CW + + +group TP511_UUS{ + +/* -----------------------------------TEST CASE TC511001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.7.2/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if a FAR is received with an user-to-user service 3 request (not +essential) after call setup, sent a FRJ to reject the request. The SIP signaling procedure is +not disrupted. + +ISUP Parameter values: FRJ: User-to-user indicator = "Service 3 not provided" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_511_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Receive Facility request message (FAR) with User-to-user indicators indicating 'request Service 3, not essential'.*/ + f_send_FAR(m_FAR_UUI(m_UUI_req_S3(c_UUI_service_req_notEss)), true); + + /*Receive Facility reject message (FRJ) with User-to-user indicators indicating response 'S3 not provided'.*/ + f_awaiting_FRJ(mw_FRJ_UUI(mw_UUI_resp_S3Not)); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_511_001 + + +/* -----------------------------------TEST CASE TC511002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.5.2.5.2.1/Q.737 + +Isup selection Criteria: NO PICS 11/2 + +Ensure that the SUT if a FAR is received with an user-to-user service 3 request (not +essential) after call setup, the SIP signaling procedure is not disrupted. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_511_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Receive Facility request message (FAR) with User-to-user indicators indicating 'request Service 3, not essential'.*/ + f_send_FAR(m_FAR_UUI(m_UUI_req_S3(c_UUI_service_req_notEss)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_511_002 + +}//end group TP511_UUS + + +group TP512_ECT{ + +/* -----------------------------------TEST CASE TC512001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Explicit Call transfer (ECT)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Isup selection Criteria: PICS 12/1 + +Ensure that the SUT if a LOP(request) is received returns a LOP (response) with the indication +"insufficient information" continue without disrupting the SIP signaling procedure. Ensure +that the SUT if a FAC is received continue without disrupting the SIP signaling procedure. + +ISUP Parameter values: LOP: Response "insufficient information" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_512_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Send Loop prevention message (LOP) with Loop prevention indicators = 'request' and with no other optional parameters*/ + f_send_LOP(m_LOP_LPI(mw_LoopPrev_req_Def), true); + + /*Send Loop prevention message (LOP) with Loop prevention indicators = 'insufficient information' and with 'any' other optional parameters*/ + f_awaiting_LOP(mw_LOP_LPI(mw_LoopPrev_rsp_insuff)); + + /*Receive Facility message (FAC) with default remote operations and no other optional parameters.*/ + f_send_FAC(m_FAC_comp(m_Facility_comp), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_512_001 + + +/* -----------------------------------TEST CASE TC512002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Explicit Call transfer (ECT)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Isup selection Criteria: NO PICS 12/1 + +Ensure that the SUT if a LOP(request) is received continue without disrupting the SIP +signaling procedure. Ensure that the SUT if a FAC is received continue without disrupting the +SIP signaling procedure. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_512_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Send Loop prevention message (LOP) with Loop prevention indicators = 'request' and with no other optional parameters*/ + f_send_LOP(m_LOP_LPI(mw_LoopPrev_req_Def), true); + + /*Receive Facility message (FAC) with default remote operations and no other optional parameters.*/ + f_send_FAC(m_FAC_comp(m_Facility_comp), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_512_002 + +}//end group TP512_ECT + + +group TP513_CCBS{ + +/* -----------------------------------TEST CASE TC513001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Completion of Call to Busy Subscriber (CCBS)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Ensure that the SUT if a REL is received contained a Diagnostic field and the CCBS indicator +is coded as CCBS possible continue without disrupting the SIP signaling procedure. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_513_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Release message (REL) with cause and diagnostics indicating CCBS, and without optional parameters*/ + f_send_REL(m_REL_CAU_CCBS, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_513_001 + +}//end group TP513_CCBS + + +group TP514_CCNR{ + +/* -----------------------------------TEST CASE TC514001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Completion of Calls on No reply (CCNR)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Ensure that the SUT if a ACM is received and a CCNR Possonle Indicator is included continue +without disrupting the SIP signaling procedure. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_514_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Address complete message (ACM) with default BCI, CCNR possible indicator = 'CCNR possible' and without other optional parameters.*/ + f_send_ACM(m_ACM_CCNPI(m_CCNR_Poss_Def), true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + // Expect Bearer1 Release Indication - handled in default + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_514_001 + +}//end group TP514_CCNR + + +group TP515_ACR{ + +/* -----------------------------------TEST CASE TC515001------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Anonymous Call Rejection (ACR)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Isup selection Criteria: PICS 1/9 + +Ensure that the SUT, if a destination user has subscribed the ACR supplementary service the +call attempt is rejected with a REL cause value 24 "call rejected due to ACR supplementary +service". + +ISUP Parameter values: REL: Cause value: 24 "call rejected due to ACR supplementary service" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_515_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Await default IAM message*/ + f_awaiting_IAM(mw_IAM_MSG_Def); + + /*Send Release message (REL) with Cause Indicators value 24, and without optional parameters*/ + f_send_REL(m_REL_CAU2(m_CAU_Causev(24)), true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_515_001 + + +/* -----------------------------------TEST CASE TC515002------------------------------------ +TC reference: Supplementary Services/SIP-ISUP/Anonymous Call Rejection (ACR)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Isup selection Criteria: PICS 1/9 AND PICS 6/12 + +Ensure that the SUT if a destination user has subscribed the ACR supplementary service the +call attempt is successful. + +ISUP Parameter values: +IAM: Calling party number Address presentation restriction is set to "Presentation restricted by the network" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_515_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Receive Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Address presentation restricted indicator = 'presentation restricted by the network' and any-values otherwise) and with 'any' other optional parameters.*/ + f_awaiting_IAM(mw_IAM_CLI(mw_CallingNum_restr)); + + /*Send default ACM message*/ + f_send_ACM(m_ACM_MSG_Def, true); + + /*Send default ANM message*/ + f_send_ANM(m_ANM_MSG_Def, true); + + // Expect Bearer1 Setup Indication - handled in default + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Expect Bearer1 Release Indication - handled in default + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_515_002 + +}//end group TP515_ACR +}//end group TP5_InterworkingFromSIPtoISUP + + +group TP6_InterworkingFromISUPtoSIP{ +group TP601_CLI{ + +/* -----------------------------------TEST CASE TC601001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.2 + +Ensure that when the SUT has received an IAM message whereby Calling Party Number parameter +and the Generic Number are not applicable Sends an INVITE message without the +"P-Asserted-Identity header field", a "From header field" set to unavailable@hostportion and +without a "Privacy Header field". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number omitted and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_noCLI_noGEN); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_001 + + +/* -----------------------------------TEST CASE TC601002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message whereby Calling Party Number parameter is +not applicable and the Generic Number is applicable whereby the address presentation +restriction parameter is set to "presentation allowed" and the Nature of Address Indicator is +set to NoAS_VALUE Sends an INVITE message without the "P-Asserted-Identity header field", a +"From header field" and without ano "Privacy Header field". + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: NoAS_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 57 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with no Calling party number and with Generic number (Address presentation restricted indicator = 'presentation restricted') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(omit, m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_002 + + +/* -----------------------------------TEST CASE TC601003------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message whereby Calling Party Number parameter is +not applicable and the Generic Number is applicable whereby the address presentation +restriction parameter is set to "presentation allowed" and the Nature of Address Indicator is +set to NoAS_VALUE Sends an INVITE message without the "P-Asserted-Identity header field", a +"From header field" and without a "Privacy Header field". + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: NoAS_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_003(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 58 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with no Calling party number and with Generic number (Address presentation restricted indicator = 'presentation restricted') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(omit, m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_003 + + +/* -----------------------------------TEST CASE TC601004------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +allowed and the Generic Number is not applicable Sends an INVITE message with the +"P-Asserted-Identity header field" where the "addr-spec" is set to PAIh_Addr_SPEC_ID, a "From +header field" where the "addr-spec" is set to FHf_Addr_SPEC_ID without "Privacy Header field" +or "id" is not included. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_004(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 59 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLD/CLG address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Screening indicator = 'network provided', Address presentation restricted indicator = 'presentation allowed') and no Generic number, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), omit)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_004 + + +/* -----------------------------------TEST CASE TC601005------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +allowed and the Generic Number is not applicable Sends an INVITE message with the +"P-Asserted-Identity header field" where the "addr-spec" is set to PAIh_Addr_SPEC_ID, a "From +header field" where the "addr-spec" is set to FHf_Addr_SPEC_ID without "Privacy Header field" +or "id" is not supported. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_005(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 60 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLD/CLG address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Screening indicator = 'network provided', Address presentation restricted indicator = 'presentation allowed') and no Generic number, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), omit)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_005 + + +/* -----------------------------------TEST CASE TC601006------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +restricted and the Generic Number is not applicable Sends an INVITE message with the +"P-Asserted-Identity header field" where the "addr-spec" is set to PAIh_Addr_SPEC_ID, a "From +header field" where the "addr-spec" is set to FHf_Addr_SPEC_ID and with "Privacy Header field". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_006(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 61 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLD/CLG address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Screening indicator = 'network provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted'), and no Generic number, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_restr(v_natAddrInd[VA], v_digits[VA]), omit)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_006 + + +/* -----------------------------------TEST CASE TC601007------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +restricted and the Generic Number is not applicable Sends an INVITE message with the +"P-Asserted-Identity header field" where the "addr-spec" is set to PAIh_Addr_SPEC_ID, a "From +header field" where the "addr-spec" is set to FHf_Addr_SPEC_ID and with "Privacy Header field". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_007(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 62 - pair of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator and CLD/CLG address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Screening indicator = 'network provided', Number incomplete indicator = 'complete', Numbering plan indicator = 'ISDN numbering plan', Address presentation restricted indicator = 'presentation restricted'), and no Generic number, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_restr(v_natAddrInd[VA], v_digits[VA]), omit)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_007 + + +/* -----------------------------------TEST CASE TC601008------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +allowed and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and without "Privacy Header +field" or "id" is not included. + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: CP_NoAS_VALUE +APRI: presentation allowed +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_008(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 62_2 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_008 + + +/* -----------------------------------TEST CASE TC601009------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +allowed and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and without "Privacy Header +field" or "id" is not included. + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: CP_NoAS_VALUE +APRI: presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_009(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 63 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_009 + + +/* -----------------------------------TEST CASE TC601010------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +restricted and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and with "Privacy Header field". + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: NoAS_VALUE +APRI: presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_010(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 64 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Address presentation restricted indicator = 'presentation restricted') and Generic number (Address presentation restricted indicator = 'presentation restricted') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_restr(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_restr(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_010 + + +/* -----------------------------------TEST CASE TC601011------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +restricted and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field", where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and with "Privacy Header field". + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: NoAS_VALUE +APRI: presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_011(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 65 - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number (Address presentation restricted indicator = 'presentation restricted') and Generic number (Address presentation restricted indicator = 'presentation restricted') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_restr(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_restr(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_011 + + +/* -----------------------------------TEST CASE TC601012------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +allowed and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and without "Privacy Header +field" or "id" is not included. + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: CP_NoAS_VALUE +APRI: presentation allowed +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_012(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 65a - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_012 + +/* -----------------------------------TEST CASE TC601013------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +restricted and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and without "Privacy Header +field" or "id" is not included. + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: CP_NoAS_VALUE +APRI: presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_013(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 65a - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_restr(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_013 + +/* -----------------------------------TEST CASE TC601014------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +allowed and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and without "Privacy Header +field" or "id" is not included. + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: CP_NoAS_VALUE +APRI: presentation allowed +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_014(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 65a - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_allowed(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_014 + +/* -----------------------------------TEST CASE TC601015------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Calling Line Identification (CLI)/ + +ISUP reference: Q.1912.5 � 7.1.3 + +Ensure that when the SUT has received an IAM message, the Calling Party Number is applicable +whereby the Nature of Address Indicator is set to NoAS_VALUE the APRI is set to presentation +restricted and the Generic Number is applicable Sends an INVITE message with the +"P-Asserted-Identity header field" , where the "addr-spec" is set to PAIh_Addr_SPEC_ID "From +header field" where the "addr-spec" is set to FH_Addr_SPEC_ID and without "Privacy Header +field" or "id" is not included. + +ISUP Parameter values: Generic Number: "additional calling party number" +Nature of Address Indicator: CP_NoAS_VALUE +APRI: presentation restricted +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_601_015(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 65a - triple of arrays used to parameterize the test case variant*/ + /* parameters are: Nature of address indicator, CLD/CLG address digits and GEN address digits*/ + var Bit7 v_natAddrInd[3]; var charstring v_digits[3]; var charstring v_GEN_digits[3]; + // dummy value for index 0 (unused) + v_natAddrInd[0] := '0000000'B; v_digits[0] := ""; v_GEN_digits[0] := ""; + // NoAS_VALUE: national (significant) number / Digits format: NDC+SN / Generic Number digits format: NDC+SN + v_natAddrInd[1] := c_CLI_natAddrInd_natSig; v_digits[1] := PX_ISUP_IAM_CLI_digits_txNat; v_GEN_digits[1] := PX_ISUP_IAM_GEN_digits_txNat; + // NoAS_VALUE: international number / Digits format: CC+NDC+SN / Generic Number digits format: Digits format: CC+NDC+SN + v_natAddrInd[2] := c_CLI_natAddrInd_internat; v_digits[2] := PX_ISUP_IAM_CLI_digits_txInat; v_GEN_digits[2] := PX_ISUP_IAM_GEN_digits_txInat; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Calling party number and Generic number parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_CLI_GEN(m_CallingNum_restr(v_natAddrInd[VA], v_digits[VA]), m_GenericNum_allowed(v_natAddrInd[VA], v_GEN_digits[VA]))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_601_015 + +}//end group TP601_CLI + + +group TP602_HOLD{ + +/* -----------------------------------TEST CASE TC602001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Call Hold (HOLD)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Isup selection Criteria: PICS 5/5 + +Ensure that a party can put the other party on hold at any time after the call is answerd and +before call clearing has begun. Ensure that a party can retrieve the call previously put on +hold. The calling party should be able to put the other party on hold The calling party should +be able to retrieve the other party The called party should be able to put the other party on +hold The called party should be able to retrieve the other party. + +ISUP Parameter values: +CPG: Generic notification: remote hold Event indicator PROGRESS (put on hold) +Generic notification: remote retrieval event indicator PROGRESS (retrieve the call) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_602_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_602_001 + + +/* -----------------------------------TEST CASE TC602002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Call Hold (HOLD)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Isup selection Criteria: PICS 5/5 AND PICS 8/1 + +Ensure that a party can put the other party on hold in the alerting state. Ensure that the +party can retrieve the call previously put on hold. The calling party should be able to put +the other party on hold The calling party should be able to retrieve the other party. + +ISUP Parameter values: +CPG: Generic notification: remote hold Event indicator PROGRESS (put on hold) +Generic notification: remote retrieval event indicator PROGRESS (retrieve the call) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_602_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_602_002 + + +/* -----------------------------------TEST CASE TC602003------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Call Hold (HOLD)/ +ISUP reference: +Q.1912.5 ANNEX B.10 + +Isup selection Criteria: PICS 5/5 AND PICS 8/2 + +Ensure that a party can put the other party on hold after the calling user has provided all of +the information necessary for processing the call. Ensure that the party can retrieve the call +previously put on hold. The calling party should be able to put the other party on hold The +calling party should be able to retrieve the other party. + +ISUP Parameter values: ACM: called party status: no indication +CPG: Generic notification: remote hold Event indicator PROGRESS (put on hold) +Generic notification: remote retrieval event indicator PROGRESS (retrieve the call) +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_602_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_602_003 + +function f_IsupBicc_TC_602_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_602_004 + +function f_IsupBicc_TC_602_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_602_005 + +function f_IsupBicc_TC_602_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remHold))); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Receive Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and with 'any' other optional parameters.*/ + f_awaiting_CPG(mw_CPG_EVI_GNI(c_EVI_eventInd_progr, mw_GenNotifInd(c_GNI_gNotInd_remRetriv))); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote retrieval', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remRetriv)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_602_006 + +}//end group TP602_HOLD + + +group TP603_TP{ + +/* -----------------------------------TEST CASE TC603001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Terminal Portability (TP)/ +ISUP reference: +Q.1912.5 ANNEX B.13 + +Isup selection Criteria: PICS 5/6 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a SUS +message (ISDN subscriber intitiated) was received. Ensure that the SUT retrieved the media +stream if an RES message (ISDN subscriber intitiated) was received. + +ISUP Parameter values: SUS: Suspend/Resume indicator ISDN subscriber initiated +RES: Suspend/Resume indicator ISDN subscriber initiated +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_603_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Suspend message (SUS) with Suspend Resume indicators 'ISDN subscriber initiated' and without optional parameters.*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_user)), true); + + /*Send Resume message (RES) with Suspend Resume indicators = 'ISDN subscriber initiated' and without optional parameters.*/ + f_send_RES(m_RES_SRI(m_SuspRes(c_SRI_suspResInd_user)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + + //TestBody end + v_ISUP_inTestBody := false; + + // Postamble sending REL and expecting RLC for cic1 + f_IsupBicc_Post_sendREL1(false); + +}//End f_IsupBicc_TC_603_001 + + +/* -----------------------------------TEST CASE TC603002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Terminal Portability (TP)/ +ISUP reference: +Q.1912.5 ANNEX B.13 + +Isup selection Criteria: PICS 5/6 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a SUS +message (ISDN subscriber intitiated) was received. Ensure that the connection is cleard after +T2 was expiered in the PSTN. + +ISUP Parameter values: SUS: Suspend/Resume indicator ISDN subscriber initiated +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_603_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Suspend message (SUS) with Suspend Resume indicators 'ISDN subscriber initiated' and without optional parameters.*/ + f_send_SUS(m_SUS_SRI(m_SuspRes(c_SRI_suspResInd_user)), true); + + var float v_timeout := PX_Timeout_T2; + var float v_timeout_min := (v_timeout)*0.95; + + //Let protocol timer T2 + 10% expire + f_IsupBicc_Wait(v_timeout_min); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Await default REL message*/ + f_awaiting_REL(mw_REL_MSG_Def); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_603_002 + +}//end group TP603_TP + + +group TP604_CONF{ + +/* -----------------------------------TEST CASE TC604001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service. If the media stream is either in state "sendonly" or "inactive" +then: INVITE with the attribute line a_LINE_VA, or omitted attribute line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_604_001(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 67 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_604_001 + + +/* -----------------------------------TEST CASE TC604002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service in the ALERTING state. If the media stream is either in state +"sendonly" or "inactive" then: INVITE with the attribute line a_LINE_VA, or omitted attribute +line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_604_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 67 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_604_002 + + +/* -----------------------------------TEST CASE TC604003------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service. If the media stream is either in state "sendonly" or "inactive" +then: INVITE with the attribute line a_LINE_VA, or omitted attribute line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_604_003(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 68 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_isolated; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_reattached; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'isolated', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_isolated)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'reattached', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_reattached)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_604_003 + + +/* -----------------------------------TEST CASE TC604004------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Conference Calling (CONF)/ +NGN reference: +7.4.14/ES 283 027 + +Isup selection Criteria: PICS 5/10 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service in the ALERTING state. If the media stream is either in state +"sendonly" or "inactive" then: INVITE with the attribute line a_LINE_VA, or omitted attribute +line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_604_004(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 68 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_isolated; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_reattached; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'isolated', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_isolated)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'reattached', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_reattached)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_604_004 + + +/* -----------------------------------TEST CASE TC604005------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Conference Calling (CONF)/ +ISUP reference: +Q.1912.5 ANNEX B.14 +1.7/Q.734 + +Isup selection Criteria: NOT PICS 5/10 + +Ensure that the SUT on receipt of a CPG message due to the CONF supplementary service, the +Generic notification indicator with the value. No mapping, no disrupting the SIP procedure. + +ISUP Parameter values: +CPG: Generic notification = Conference established +CPG: Generic notification = isolated +CPG: Generic notification = reattached +CPG: Generic notification = Conference disconnected +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_604_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'isolated', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_isolated)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'reattached', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_reattached)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_604_005 + +}//end group TP604_CONF + + +group TP605_3PTY{ + +/* -----------------------------------TEST CASE TC605001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Three-Party (3PTY)/ +NGN reference: +7.4.15/ES 283 027 + +Isup selection Criteria: PICS 5/5 AND PICS 5/189 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service. If the media stream is either in state "sendonly" or "inactive" +then: INVITE with the attribute line a_LINE_VA, or omitted attribute line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = remote hold +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_605_001(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 69 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_605_001 + + +/* -----------------------------------TEST CASE TC605002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Three-Party (3PTY)/ +NGN reference: +7.4.15/ES 283 027 + +Isup selection Criteria: PICS 5/5 AND PICS 5/189 + +Ensure that the SUT stop the temporarily sending one or more unicast media streams if a CPG +message Generic notification indicator with the value GEN_NOT_VALUE was received due to the +CONF supplementary service in the ALERTING state. If the media stream is either in state +"sendonly" or "inactive" then: INVITE with the attribute line a_LINE_VA, or omitted attribute +line, else: no mapping. + +ISUP Parameter values: +CPG: Generic notification = remote hold +CPG: Generic notification = GEN_NOT_VALUE +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_605_002(integer VA) runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + /* From DTS 06014-1 Table 69 - array used to parameterize the test case variant*/ + /* parameter is: Generic Notification indicator*/ + var Bit7 v_gNotInd[3]; + // dummy value for index 0 (unused) + v_gNotInd[0] := '0000000'B; + // Conference established + v_gNotInd[1] := c_GNI_gNotInd_confEst; + // Conference disconnected + v_gNotInd[2] := c_GNI_gNotInd_confDisc; + + + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_605_002 + + +/* -----------------------------------TEST CASE TC605003------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Three-Party (3PTY)/ +ISUP reference: +Q.1912.5 ANNEX B.15 +2.7/Q.734 + +Isup selection Criteria: NOT PICS 5/18 + +Ensure that the SUT on receipt of a CPG message due to the 3PTY supplementary service, the +Generic notification indicator with the value. No mapping, no disrupting the SIP procedure. + +ISUP Parameter values: +CPG: Generic notification = remote hold +CPG: Generic notification = Conference established +CPG: Generic notification = Conference disconnected +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_605_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'remote hold', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_remHold)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference established', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confEst)), true); + + /*Send Call progress message (CPG) with event information = 'PROGRESS', Generic notification indicator = 'conference disconnected', and without other optional parameters.*/ + f_send_CPG(m_CPG_EVI_GNI(c_EVI_eventInd_progr, m_GenNotifInd(c_GNI_gNotInd_confDisc)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_605_003 + +}//end group TP605_3PTY + + +group TP606_COL{ + +/* -----------------------------------TEST CASE TC606001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Connected Line Identification (COL)/ +ISUP reference: +Q.1912.5 ANNEX B.2 + +Ensure that the SUT if the IAM is received with an optional forward call indicator, connected +line requested, continue without disrupting the SIP or ISUP signaling procedure. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_606_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Optional forward call indicators (Connected line identity request indicator = 'requested') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_OFCI(m_OFCI_CLIR)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_606_001 + +}//end group TP606_COL + + +group TP607_SUB{ + +/* -----------------------------------TEST CASE TC607001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Subaddressing (SUB)/ +ISUP reference: +Q.1912.5 ANNEX B.5 + +Ensure that the SUT if the IAM is received with an ATP containing a calling sub-address, +continue without disrupting the SIP or ISUP signaling procedure. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_607_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Access transport containing 'Calling sub-address' and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_AT_CLSU(m_AT_CLSU)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_607_001 + +}//end group TP607_SUB + + +group TP608_CUG{ + +/* -----------------------------------TEST CASE TC608001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Closed User Group (CUG)/ +ISUP reference: +Q.1912.5 ANNEX B.16 + +Ensure that the SUT if an IAM is received with Optional forward call indicator, CUG call +indicator coded as "CUG call with outgoing access" and CUG interlock code or CUG call +indicator coded as "Non CUG call" or Optional forward call indicator is absent, the SIP +signaling procedure is not disrupted. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_608_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Optional forward call indicators ('closed user group call, outgoing access allowed') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_OFCI(m_OFCI_CUG(c_OFCI_cugCallInd_outAllwd))); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_608_001 + + +/* -----------------------------------TEST CASE TC608002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Closed User Group (CUG)/ +ISUP reference: +Q.1912.5 ANNEX B.16 + +Ensure that the SUT if an IAM is received with Optional forward call indicator, CUG call +indicator coded as "CUG call without outgoing access" and CUG interlock code, a REL is sent. +No INVITE is sent into the SIP network. + +ISUP Parameter values: REL: Cause #29 +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_608_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with Optional forward call indicators ('closed user group call, outgoing access not allowed') and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_OFCI(m_OFCI_CUG(c_OFCI_cugCallInd_outNotAllwd))); + + /*Receive Release message (REL) Cause value 29.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_cval(29))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_608_002 + +}//end group TP608_CUG + + +group TP609_CDIV{ + +/* -----------------------------------TEST CASE TC609001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Call Diversion (CDIV)/ +ISUP reference: +Q.1912.5 ANNEX B6, ANNEX B.7 + +Ensure that the SUT if the IAM is received with Redirecting number, original called number and +redirection information, continue without disrupting the SIP or ISUP signaling procedure. + +ISUP Parameter values: +IAM: Redirecting number, Original called number, Redirection information +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_609_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with default Original called number, Redirecting number and Redirection information and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_OCN_RDGN_RDNI(m_OCN_Def, m_RDGN_Def, m_RDNI_Def)); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_609_001 + +}//end group TP609_CDIV + + +group TP610_UUS{ + +/* -----------------------------------TEST CASE TC610001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.1.7/Q.737 + +Ensure that the SUT if the IAM is received with User-to-user information as an implicit +service 1 request returns a User-to-user indicator in the ACM "UUI discarded by the network" +and continue without disrupting the SIP or ISUP signaling procedure. + +ISUP Parameter values: ACM: User-to-indicator "UUI discarded by the network", Service 1 response "No indication". BCI: "Interworking encountered". +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user information parameterized and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUIF(m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S1))); + + /*Receive Address complete message (ACM) with Interworking indicator = 'interworking encountered', User-to-user indicators indicating 'service 1 not provided' and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_BCI_UUI(mw_UUI_resp_S1Not)); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_001 + + +/* -----------------------------------TEST CASE TC610002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.1.7/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 1 request "Not essential" +returns a User-to-user indicator in the ACM "Service 1 not provided" and continue without +disrupting the SIP or ISUP signaling procedure. + +ISUP Parameter values: ACM: User-to-indicator "UUI discarded by the network", Service 1 response "Not indicationprovided" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 1, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S1(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S1))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators indicating 'service 1 not provided' and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_UUI(mw_UUI_resp_S1Not)); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_002 + + +/* -----------------------------------TEST CASE TC610003------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.1.7/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 1 request "essential" +returns a REL with cause #29 or #69 and an diagnostics containing the user-to-user indicator +parameter name. + +ISUP Parameter values: REL: cause #29 or cause 69, diagnostics value 0x2a +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_003() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 1, essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S1(c_UUI_service_req_ess), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S1))); + + /*Receive Release message (REL) with Cause value 29 and diagnostics 0x29.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Diag2a(29))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_003 + + +/* -----------------------------------TEST CASE TC610004------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.2.7/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 2 request "Not essential" +returns a User-to-user indicator in the ACM "Service 21 not provided" and continue without +disrupting the SIP or ISUP signaling procedure. + +ISUP Parameter values: ACM: User-to-indicator Service 2 response "Not provided" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_004() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 2, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S2(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S2))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators indicating 'service 2 not provided' and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_UUI(mw_UUI_resp_S2Not)); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_004 + + +/* -----------------------------------TEST CASE TC610005------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.2.7/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 2 request "essential" +returns a REL with cause #29 or #69 and an diagnostics containing the user-to-user indicator +parameter name. + +ISUP Parameter values: REL: cause #29 or cause 69, diagnostics value 0x2a +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_005() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 2, essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S2(c_UUI_service_req_ess), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S2))); + + /*Receive Release message (REL) with Cause value 29 and diagnostics 0x29.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Diag2a(29))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_005 + + +/* -----------------------------------TEST CASE TC610006------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.7.1/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 3 request "Not essential" +returns a User-to-user indicator in the ACM "Service 13 not provided" and continue without +disrupting the SIP or ISUP signaling procedure. + +ISUP Parameter values: ACM: User-to-indicator "UUI discarded by the network", Service 3 response "Not provided" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_006() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 3, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S3(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S3))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators indicating 'service 3 not provided' and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_UUI(mw_UUI_resp_S3Not)); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_006 + + +/* -----------------------------------TEST CASE TC610007------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.7.1/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 3 request "essential" +returns a REL with cause #29 or #69 and an diagnostics containing the user-to-user indicator +parameter name. + +ISUP Parameter values: REL: cause #29 or cause 69, diagnostics value 0x2a +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_007() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 3, essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S3(c_UUI_service_req_ess), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S3))); + + /*Receive Release message (REL) with Cause value 29 and diagnostics 0x29.*/ + f_awaiting_REL(mw_REL_CAU1(mw_CAU_Diag2a(29))); + + /*Send default RLC message*/ + f_send_RLC(m_RLC_MSG_Def, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_007 + + +/* -----------------------------------TEST CASE TC610008------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.7.2/Q.737 + +Isup selection Criteria: PICS 11/1 AND PICS 11/2 + +Ensure that the SUT if the FAR is received with an explicit service 3 request "Not essential" +returns a FRJ with cause #29 or #69. + +ISUP Parameter values: FRJ: User-to-user indicator = "Service 3 not provided" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_008() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Receive Facility request message (FAR) with User-to-user indicators indicating 'request Service 3, not essential'.*/ + f_send_FAR(m_FAR_UUI(m_UUI_req_S3(c_UUI_service_req_notEss)), true); + + /*Receive Facility reject message (FRJ) with cause value 29, and with 'any' optional parameters*/ + f_awaiting_FRJ(mw_FRJ_CAU(29)); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_008 + + +/* -----------------------------------TEST CASE TC610009------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.1.5.2.5.2.2/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 1 request "Not essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_009() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 1, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S1(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S1))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_009 + + +/* -----------------------------------TEST CASE TC610010------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.1.5.2.5.2.2/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 1 request "essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_010() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 1, essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S1(c_UUI_service_req_ess), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S1))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_010 + + +/* -----------------------------------TEST CASE TC610011------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.2.5.2.5.2.1/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 2 request "Not essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_011() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 2, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S2(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S2))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_011 + + +/* -----------------------------------TEST CASE TC610012------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.2.5.2.5.2.1/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 2 request "essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_012() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 2, essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S2(c_UUI_service_req_ess), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S2))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_012 + + +/* -----------------------------------TEST CASE TC610013------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.5.2.5.2.1/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 3 request "Not essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_013() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 3, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S3(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S3))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_013 + + +/* -----------------------------------TEST CASE TC610014------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.5.2.5.2.1/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the IAM is received with an explicit service 3 request "essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_014() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 3, essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S3(c_UUI_service_req_ess), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S3))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_014 + + +/* -----------------------------------TEST CASE TC610015------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/User to User Signalling (UUS)/ +ISUP reference: +Q.1912.5 ANNEX B.21 +1.3.5.2.5.2.1/Q.737 + +Isup selection Criteria: NOT PICS 11/2 + +Ensure that the SUT if the FAR is received with an explicit service 3 request "Not essential" +continue without disrupting the SIP or ISUP signaling procedure. No response to this request. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_610_015() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send Initial address message (IAM) with default (F) and (V) parameters, with User-to-user indicators indicating 'request Service 3, not essential' and User-to-user information parameterized, and with no other optional parameters except Propagation delay counter.*/ + f_send_IAM(m_IAM_UUI_UUIF(m_UUI_req_S3(c_UUI_service_req_notEss), m_UUIF_ServDat(PX_ISUP_IAM_UUI_userInfo_S3))); + + /*Receive Address complete message (ACM) with default BCI, User-to-user indicators omitted and any other optional parameters.*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Receive Facility request message (FAR) with User-to-user indicators indicating 'request Service 3, not essential'.*/ + f_send_FAR(m_FAR_UUI(m_UUI_req_S3(c_UUI_service_req_notEss)), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_610_015 + +}//end group TP610_UUS + + +group TP611_ECT{ + +/* -----------------------------------TEST CASE TC611001------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Explicit Call transfer (ECT)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Isup selection Criteria: PICS 12/1 + +Ensure that the SUT if a LOP(request) is received returns a LOP (response) with the indication +"insufficient information" continue without disrupting the SIP signaling procedure. Ensure +that the SUT if a FAC is received continue without disrupting the SIP signaling procedure. + +ISUP Parameter values: LOP: Response "insufficient information" +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_611_001() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Send Loop prevention message (LOP) with Loop prevention indicators = 'request' and with no other optional parameters*/ + f_send_LOP(m_LOP_LPI(mw_LoopPrev_req_Def), true); + + /*Send Loop prevention message (LOP) with Loop prevention indicators = 'insufficient information' and with 'any' other optional parameters*/ + f_awaiting_LOP(mw_LOP_LPI(mw_LoopPrev_rsp_insuff)); + + /*Receive Facility message (FAC) with default remote operations and no other optional parameters.*/ + f_send_FAC(m_FAC_comp(m_Facility_comp), true); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_611_001 + + +/* -----------------------------------TEST CASE TC611002------------------------------------ +TC reference: Supplementary Services/ISUP-SIP/Explicit Call transfer (ECT)/ +ISUP reference: +Q.1912.5 ANNEX B.8 + +Isup selection Criteria: NO PICS 12/1 + +Ensure that the SUT if a LOP(request) is received continue without disrupting the SIP +signaling procedure. Ensure that the SUT if a FAC is received continue without disrupting the +SIP signaling procedure. +-------------------------------------------------------------------------------------------*/ + + +function f_IsupBicc_TC_611_002() runs on IsupBiccComponent +{ + var FncRetCode v_ret := e_error; + v_Default := activate (a_IsupBicc_Def_Generic()); + + // Perform preamble + f_IsupBicc_Pre0(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// Perform synchronisation after preamble + + //TestBody start + v_ISUP_inTestBody := true; + + /*Send default IAM message*/ + f_send_IAM(m_IAM_MSG_Def); + + /*Await default ACM message*/ + f_awaiting_ACM(mw_ACM_MSG_Def); + + /*Await default ANM message*/ + f_awaiting_ANM(mw_ANM_MSG_Def); + + // Bearer1 Setup Request + f_IsupBicc_Bearer1SetupRequest(); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + /*Send Loop prevention message (LOP) with Loop prevention indicators = 'request' and with no other optional parameters*/ + f_send_LOP(m_LOP_LPI(mw_LoopPrev_req_Def), true); + + /*Receive Facility message (FAC) with default remote operations and no other optional parameters.*/ + f_send_FAC(m_FAC_comp(m_Facility_comp), true); + + // Check Conversation + f_IsupBicc_CheckConversation(); + + // Bearer1 Release Request + f_IsupBicc_Bearer1ReleaseRequest(); + + /*Send default REL message*/ + f_send_REL(m_REL_MSG_Def, true); + + /*Await default RLC message*/ + f_awaiting_RLC(mw_RLC_MSG_Def); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());//Synchronisation point 'test body done' + + v_ISUP_inTestBody := false; + + // Postamble checking signalling- and bearer states + f_IsupBicc_Post_CheckStates(); + +}//End f_IsupBicc_TC_611_002 + +}//end group TP611_ECT +}//end group TP6_InterworkingFromISUPtoSIP +}//end group SupplementaryServices + + + + +} // end module SipIsup_ISUP_TCFunctions diff --git a/SipAts/SipIsup_SIP_Steps.ttcn b/SipAts/SipIsup_SIP_Steps.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..9ad8e1ff1267c65deffb3c9d652ee59aa1537cb8 --- /dev/null +++ b/SipAts/SipIsup_SIP_Steps.ttcn @@ -0,0 +1,8779 @@ +/* + * @author STF 297 (STF270, STF246, STF196, STF166) + * @version $Id$ + * @desc This module is a copy of SIP_TypesAndConf published in ETSI TS 102027-2 with the following updates: + * + * renamed imports: SipIsup_SIP_* instead of SIP_* + * new functions in SipIsupFunctions, e.g.: setHeadersForPRACK, setHeadersForUPDATE + * + * extended functions setHeadersOnReceiptOfInvite, setHeadersOnReceiptOfResponse + * due to new Header field RAck and messageBody + * + * TODO: use of "WorkaroundAddress" (defined in module SipIsup_SIP_TypesAndConf) + * to be replaced by "address" (after a bug fix by Teleogic!) + */ + +module SipIsup_SIP_Steps +{ + +import from SipIsup_SIP_TypesAndConf { + const + AT, + BRANCH_COOKIE, + BRANCH_ID, + DEFAULT_SIP_PORT, + EXPIRES_ID, + GT, + LT, + MADDR_ID, + METHOD_ID, + RECEIVED_ID, + SHORT_REGISTRATION, + SIP_SCHEME, + SLASH, + SP, + StatusLine486, + TAG_ID, + TTL_ID, + USER_ID; + modulepar + PC_ADDR_RECORD_REGISTRAR, + PC_FORK, + PC_MULTICAST_REGISTRAR, + PC_PRECONFIGURED_REGISTRAR, + PC_PROXY, + PC_REDIRECTION, + PC_REDIRECTS, + PC_REGISTRATION, + PC_SHOULD, + PC_STATELESS, + PC_THIRD_PARTY, + PC_UA, + PX_ETS_IPADDR, + PX_ETS_IPADDR2, + PX_ETS_IPADDR3, + PX_ETS_LOCAL_USER, + PX_ETS_PORT, + PX_ETS_PORT2, + PX_ETS_PORT3, + PX_IUT_HOME_DOMAIN, + PX_IUT_IPADDR, + PX_IUT_IPADDR2, + PX_IUT_IPADDR3, + PX_IUT_PORT, + PX_IUT_PORT2, + PX_IUT_PORT3, + PX_PROXY_IPADDR, + PX_PROXY_PORT, + PX_PR_MTC_REGISTRATION, + PX_PR_PTC_REGISTRATION, + PX_REGISTRATION_AUTHENTICATION_ENABLED, + PX_RFC2617_PASSWD, + PX_RFC2617_QOP, + PX_RFC2617_URI, + PX_RFC2617_USERNAME, + PX_SDPBODY2, + PX_SIP_CheckConversation, + PX_SIP_CheckRinging, + PX_SIP_REGISTRAR_DOMAIN, + PX_SIP_REGISTRAR_PORT, + PX_SIP_SDPBODY3, + PX_T1, + PX_T4, + PX_TACK, + PX_TGUARD, + PX_TNOACT, + PX_TRANSPORT, + PX_TRESP, + PX_TSYNC, + PX_TWAIT, + PX_UDP; + signature s_SIP_conversation, s_SIP_ringing; + type SipComponent, SipInterfaces; + type + AmpersandParam_List, + CSeq, + CallId, + CommaParam_List, + Contact, + ContactAddress, + ContactAddress_List, + Credentials, + FieldName, + From, + GenericParam, + HostPort, + RecordRoute, + Request, + Response, + Route, + SemicolonParam_List, + SipUrl, + TimeValue, + To, + UserInfo, + Via, + ViaBody, + ViaBody_List +} +import from SipIsup_SIP_Templates { + template + ACK_Request_r_1, + ACK_Request_s_1, + ACK_Request_s_2, + BYE_Request_cause_noroute_s_1, + BYE_Request_cause_s_1, + BYE_Request_noroute_s_1, + BYE_Request_r_1, + BYE_Request_s_1, + CANCEL_Request_r_1, + CANCEL_Request_s_1, + CANCEL_Request_s_cause_1, + CM_Check_Done, + CM_Init_OK, + CM_Stop, + ContactAddress_r_1, + Contact_ETS_s, + Contact_PTC2_s, + Contact_PTC_s, + Contact_RD_Multi_s, + From_s1, + From_s2, + INVITE_Request_r_1, + INVITE_Request_r_10, + INVITE_Request_r_3, + INVITE_Request_r_To, + INVITE_Request_s_1, + INVITE_Request_s_2, + INVITE_Request_s_6, + Inc_H261, + Inc_PCMA, + Inc_PCMA_PCMU, + Inc_PCMU, + Inc_PCMU_PCMA, + Inc_RejectH261, + PRACK_Request_r_1, + PRACK_Request_s_1, + REGISTER_Request_r_1, + REGISTER_Request_r_2, + REGISTER_Request_s_1, + REGISTER_Request_s_2, + REGISTER_Request_s_3, + Raw_REGISTER_Request_s_1, + Response_100_r_1, + Response_100_s_1, + Response_180_r_1, + Response_180_r_3a, + Response_180_r_3u, + Response_183_r_1, + Response_183_r_2_sdp, + Response_1XX_r_1, + Response_200_Invite_WithRoute_s_1, + Response_200_Invite_s_1, + Response_200_PTCInvite_noroute_s_1, + Response_200_PTCInvite_s_1, + Response_200_PTC_s_1, + Response_200_r_1, + Response_200_r_2, + Response_200_r_4, + Response_200_s_1, + Response_200_withRoute_s_1, + Response_2XX_PTCInvite_noroute_s_1, + Response_2XX_PTCInvite_s_1, + Response_400_s_1, + Response_401_r_1, + Response_481_r_1, + Response_486_s_1, + Response_487_r_1, + Response_487_s_1, + Response_487_s_2, + Response_4XX_r_1, + Response_500_r_0, + Response_Any_r_1, + Response_Any_r_2, + Response_Final_r, + Response_INVITE_200_r_1, + Response_INVITE_200_r_SDP, + Response_NonOK_Final_r_1, + Response_NonOK_Final_r_2, + Response_REGISTER_200_r_1, + Response_REGISTER_200_r_2, + Response_Register_200_s_2, + Response_XXX_noroute_s_1, + Response_XXX_with_route_s_1, + Response_xxx_s_1, + Route_l_1, + SipUrl_ofCallee_s, + SipUrl_ofLocalUser_s, + SipUrl_ofPTC, + SipUrl_ofRDPTC, + To_s1, + To_s2, + To_s3, + To_s4, + To_s5, + UPDATE_Request_r_1, + UPDATE_Request_s_1, + ViaBody_ETS_IPADDR, + ViaBody_IUT_IPADDR, + ViaBody_PTC, + ViaBody_PTC2, + mw_INFO_Request_1 +} + +import from LibCommon_Sync { + const c_Ringing; + function f_selfOrClientSyncAndVerdict; + template m_syncClientStop, m_syncServerStop +} +import from LibCommon_VerdictControl { + function f_getVerdict, f_setVerdictPostamble; + type FncRetCode +} + + +//Type to adress the IUT to send it message +//type Address address; +type record address +{ + //HostPort + charstring host optional, // hostname, IPv4 or IPv6 + integer portField optional // represented as an integer +}with { encode "SIPCodec" } + +group Functions +{ + // ***************************************************************************** + // * + // * Functions which are strictly behaviour are placed in the + // * BehaviourFunctions group. For example, a function which groups test cases + // * is a behaviour function. + // * + // ***************************************************************************** + group TestCaseSelectionExpressions + { + // external function to manage test case selection of the test operator + external function isSelected(in charstring tc_name) return boolean; + + function runRGRTV001() return boolean + { + return(isSelected("SIP_RG_RT_V_001")) + } + + function runRGRTV002() return boolean + { + return(isSelected("SIP_RG_RT_V_002")) + } + + function runRGRTV003() return boolean + { + return(isSelected("SIP_RG_RT_V_003") and PC_PRECONFIGURED_REGISTRAR) + } + function runRGRTV004() return boolean + { + return(isSelected("SIP_RG_RT_V_004") and PC_ADDR_RECORD_REGISTRAR) + } + function runRGRTV005() return boolean + { + return(isSelected("SIP_RG_RT_V_005") and PC_MULTICAST_REGISTRAR) + } + function runRGRTV006() return boolean + { + return(isSelected("SIP_RG_RT_V_006")) + } + function runRGRTV007() return boolean + { + return(isSelected("SIP_RG_RT_V_007")) + } + function runRGRTV008() return boolean + { + return(isSelected("SIP_RG_RT_V_008")) + } + function runRGRTV009() return boolean + { + return(isSelected("SIP_RG_RT_V_009")) + } + + function runRGRTV010() return boolean + { + return(isSelected("SIP_RG_RT_V_010")) + } + + function runRGRTV011() return boolean + { + return(isSelected("SIP_RG_RT_V_011")) + } + + function runRGRTV012() return boolean + { + return(isSelected("SIP_RG_RT_V_012") and PC_SHOULD) + } + + function runRGRTV013() return boolean + { + return(isSelected("SIP_RG_RT_V_013") and PC_SHOULD) + } + + function runRGRRV001() return boolean + { + return(isSelected("SIP_RG_RR_V_001")) + } + function runRGRRV002() return boolean + { + return(isSelected("SIP_RG_RR_V_002")) + } + function runRGRRV003() return boolean + { + return(isSelected("SIP_RG_RR_V_003")) + } + function runRGRRV004() return boolean + { + return(isSelected("SIP_RG_RR_V_004") and PC_THIRD_PARTY) + } + function runRGRRV005() return boolean + { + return(isSelected("SIP_RG_RR_V_005")) + } + function runRGRRV006() return boolean + { + return(isSelected("SIP_RG_RR_V_006")) + } + function runRGRRV007() return boolean + { + return(isSelected("SIP_RG_RR_V_007")) + } + function runRGRRV008() return boolean + { + return(isSelected("SIP_RG_RR_V_008")) + } + function runRGRRV009() return boolean + { + return(isSelected("SIP_RG_RR_V_009")) + } + function runRGRRV010() return boolean + { + return(isSelected("SIP_RG_RR_V_010")) + } + function runRGRRV011() return boolean + { + return(isSelected("SIP_RG_RR_V_011")) + } + function runRGRRV012() return boolean + { + return(isSelected("SIP_RG_RR_V_012")) + } + function runRGRRV013() return boolean + { + return(isSelected("SIP_RG_RR_V_013")) + } + function runRGRRV014() return boolean + { + return(isSelected("SIP_RG_RR_V_014")) + } + function runRGRRV015() return boolean + { + return(isSelected("SIP_RG_RR_V_015")) + } + function runRGRRV016() return boolean + { + return(isSelected("SIP_RG_RR_V_016")) + } + function runRGRRV017() return boolean + { + return(isSelected("SIP_RG_RR_V_017")) + } + function runRGRRV018() return boolean + { + return(isSelected("SIP_RG_RR_V_018") and PC_SHOULD) + } + function runRGRRV019() return boolean + { + return(isSelected("SIP_RG_RR_V_019") and PC_SHOULD) + } + + function runRGRRI001() return boolean + { + return(isSelected("SIP_RG_RR_I_001")) + } + function runRGRRI002() return boolean + { + return(isSelected("SIP_RG_RR_I_002")) + } + function runRGRRI003() return boolean + { + return(isSelected("SIP_RG_RR_I_003")) + } + function runRGRRI004() return boolean + { + return(isSelected("SIP_RG_RR_I_004")) + } + + function runRGRRO001() return boolean + { + return(isSelected("SIP_RG_RR_O_001")) + } + function runRGRRO002() return boolean + { + return(isSelected("SIP_RG_RR_O_002")) + } + function runRGRRO003() return boolean + { + return(isSelected("SIP_RG_RR_O_003")) + } + + function runCCOECEV001() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_001")) + } + function runCCOECEV002() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_002")and PC_SHOULD) + } + function runCCOECEV003() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_003")) + } + function runCCOECEV004() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_004")) + } + function runCCOECEV005() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_005")) + } + function runCCOECEV006() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_006") and PC_SHOULD) + } + function runCCOECEV007() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_007")) + } + function runCCOECEV008() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_008") and PC_SHOULD) + } + function runCCOECEV009() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_009")) + } + function runCCOECEV010() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_010")) + } + function runCCOECEV011() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_011")) + } + function runCCOECEV012() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_012")) + } + function runCCOECEV013() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_013")) + } + function runCCOECEV014() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_014")) + } + function runCCOECEV015() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_015")and PC_SHOULD) + } + function runCCOECEV016() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_016")) + } + function runCCOECEV017() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_017")) + } + function runCCOECEV018() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_018")) + } + function runCCOECEV019() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_019")) + } + function runCCOECEV020() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_020")) + } + function runCCOECEV021() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_021")) + } + function runCCOECEV022() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_022")) + } + function runCCOECEV023() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_023")) + } + function runCCOECEV024() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_024")) + } + function runCCOECEV025() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_025")) + } + function runCCOECEV026() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_026")) + } + function runCCOECEV027() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_027")) + } + function runCCOECEV028() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_028")) + } + function runCCOECEV029() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_029")) + } + function runCCOECEV030() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_030")) + } + function runCCOECEV031() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_031")) + } + function runCCOECEV032() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_032")) + } + function runCCOECEV033() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_033")) + } + + function runCCOECEV034() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_034")) + } + + function runCCOECEV035() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_035")) + } + function runCCOECEV036() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_036")) + } + function runCCOECEV037() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_037")) + } + function runCCOECEV038() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_038")) + } + function runCCOECEV039() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_039")) + } + function runCCOECEV040() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_040")) + } + function runCCOECEV041() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_041")) + } + function runCCOECEV042() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_042")) + } + function runCCOECEV043() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_043") and PC_REDIRECTION) + } + function runCCOECEV044() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_044")) + } + function runCCOECEV045() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_045") and PC_SHOULD) + } + function runCCOECEV046() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_046")) + } + function runCCOECEV047() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_047")) + } + function runCCOECEV048() return boolean + { + return(isSelected("SIP_CC_OE_CE_V_048")) + } + + function runCCOECETI001() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_001") and PX_UDP) + } + function runCCOECETI002() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_002")and PC_SHOULD and(not PX_UDP)) + } + function runCCOECETI003() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_003") and PX_UDP) + } + function runCCOECETI004() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_004") and PX_UDP) + } + function runCCOECETI005() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_005")) + } + function runCCOECETI006() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_006")and PC_SHOULD) + } + function runCCOECETI007() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_007")and PC_SHOULD) + } + function runCCOECETI008() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_008")and PC_SHOULD and PX_UDP) + } + function runCCOECETI009() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_009")and PC_SHOULD and(not PX_UDP)) + } + function runCCOECETI010() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_010")and PC_SHOULD and PX_UDP) + } + function runCCOECETI011() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_011")) + } + function runCCOECETI012() return boolean + { + return(isSelected("SIP_CC_OE_CE_TI_012")) + } + + function runCCOECRV001() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_001")) + } + function runCCOECRV002() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_002")) + } + function runCCOECRV003() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_003")) + } + function runCCOECRV004() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_004")) + } + function runCCOECRV005() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_005")) + } + function runCCOECRV006() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_006")) + } + function runCCOECRV007() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_007")) + } + function runCCOECRV008() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_008")) + } + function runCCOECRV009() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_009")) + } + function runCCOECRV010() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_010")) + } + function runCCOECRV011() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_011")) + } + function runCCOECRV012() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_012")) + } + function runCCOECRV013() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_013")) + } + function runCCOECRV014() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_014")) + } + function runCCOECRV015() return boolean + { + return(isSelected("SIP_CC_OE_CR_V_015")) + } + function runCCOECRI001() return boolean + { + return(isSelected("SIP_CC_OE_CR_I_001")) + } + + function runCCOECRTI001() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_001") and PX_UDP) + } + function runCCOECRTI002() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_002") and PX_UDP) + } + function runCCOECRTI003() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_003") and PX_UDP) + } + function runCCOECRTI004() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_004") and PX_UDP) + } + function runCCOECRTI005() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_005")) + } + function runCCOECRTI006() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_006")) + } + function runCCOECRTI007() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_007")) + } + function runCCOECRTI008() return boolean + { + return(isSelected("SIP_CC_OE_CR_TI_008")) + } + + function runCCOESMV001() return boolean + { + return(isSelected("SIP_CC_OE_SM_V_001")) + } + function runCCOESMV002() return boolean + { + return(isSelected("SIP_CC_OE_SM_V_002")) + } + + function runCCTECEV001() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_001")) + } + function runCCTECEV002() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_002") and PC_SHOULD) + } + function runCCTECEV003() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_003") and PC_SHOULD) + } + function runCCTECEV004() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_004")) + } + function runCCTECEV005() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_005") and PC_SHOULD) + } + function runCCTECEV006() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_006")) + } + function runCCTECEV007() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_007")) + } + function runCCTECEV008() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_008")) + } + function runCCTECEV009() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_009")) + } + function runCCTECEV010() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_010")and PC_SHOULD) + } + function runCCTECEV011() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_011")) + } + function runCCTECEV012() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_012")) + } + function runCCTECEV013() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_013") and PC_SHOULD) + } + function runCCTECEV014() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_014")) + } + function runCCTECEV015() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_015")) + } + function runCCTECEV016() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_016")) + } + function runCCTECEV017() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_017")) + } + function runCCTECEV018() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_018")) + } + function runCCTECEV019() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_019")) + } + function runCCTECEV020() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_020")) + } + function runCCTECEV021() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_021") and PC_SHOULD) + } + function runCCTECEV022() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_022")) + } + function runCCTECEV023() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_023")) + } + function runCCTECEV024() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_024")) + } + function runCCTECEV025() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_025") and PC_SHOULD) + } + function runCCTECEV026() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_026") and PC_SHOULD) + } + function runCCTECEV027() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_027") and PC_SHOULD) + } + function runCCTECEV028() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_028") and PC_SHOULD) + } + function runCCTECEV029() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_029") and PC_SHOULD) + } + function runCCTECEV030() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_030") and PC_SHOULD) + } + function runCCTECEV031() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_031")) + } + function runCCTECEV032() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_032")) + } + function runCCTECEV033() return boolean + { + return(isSelected("SIP_CC_TE_CE_V_033")) + } + + + function runCCTECEI001() return boolean + { + return(isSelected("SIP_CC_TE_CE_I_001")) + } + function runCCTECEI002() return boolean + { + return(isSelected("SIP_CC_TE_CE_I_002")) + } + + function runCCTECETI001() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_001") and PX_UDP) + } + function runCCTECETI002() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_002") and(not PX_UDP)) + } + function runCCTECETI003() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_003") and PX_UDP) + } + function runCCTECETI004() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_004") and PX_UDP) + } + function runCCTECETI005() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_005")) + } + function runCCTECETI006() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_006") and PX_UDP) + } + function runCCTECETI007() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_007") and PX_UDP) + } + function runCCTECETI008() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_008") and(not PX_UDP)) + } + function runCCTECETI009() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_009")) + } + function runCCTECETI010() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_010")) + } + function runCCTECETI011() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_011")) + } + function runCCTECETI012() return boolean + { + return(isSelected("SIP_CC_TE_CE_TI_012") and PC_SHOULD) + } + + + + function runCCTECRV001() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_001")) + } + function runCCTECRV002() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_002")) + } + function runCCTECRV003() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_003")) + } + function runCCTECRV004() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_004")) + } + function runCCTECRV005() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_005")) + } + function runCCTECRV006() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_006")) + } + function runCCTECRV007() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_007") and PC_SHOULD) + } + function runCCTECRV008() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_008") and PC_SHOULD) + } + function runCCTECRV009() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_009") and PC_SHOULD) + } + function runCCTECRV010() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_010")) + } + function runCCTECRV011() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_011")) + } + function runCCTECRV012() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_012")) + } + function runCCTECRV013() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_013")) + } + function runCCTECRV014() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_014")) + } + function runCCTECRV015() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_015") and PC_SHOULD) + } + function runCCTECRV016() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_016") and PC_SHOULD) + } + function runCCTECRV017() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_017") and PC_SHOULD) + } + function runCCTECRV018() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_018") and PC_SHOULD) + } + function runCCTECRV019() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_019") and PC_SHOULD) + } + function runCCTECRV020() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_020")) + } + function runCCTECRV021() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_021")) + } + function runCCTECRV022() return boolean + { + return(isSelected("SIP_CC_TE_CR_V_022")) + } + + function runCCTECRI001() return boolean + { + return(isSelected("SIP_CC_TE_CR_I_001")) + } + function runCCTECRI002() return boolean + { + return(isSelected("SIP_CC_TE_CR_I_002")) + } + function runCCTECRI003() return boolean + { + return(isSelected("SIP_CC_TE_CR_I_003")) + } + function runCCTECRI004() return boolean + { + return(isSelected("SIP_CC_TE_CR_I_004") and PC_SHOULD) + } + function runCCTECRI005() return boolean + { + return(isSelected("SIP_CC_TE_CR_I_005") and PC_SHOULD) + } + + function runCCTECRTI001() return boolean + { + return(isSelected("SIP_CC_TE_CR_TI_001")) + } + + function runCCTESMV001() return boolean + { + return(isSelected("SIP_CC_TE_SM_V_001")) + } + + function runCCTESMV002() return boolean + { + return(isSelected("SIP_CC_TE_SM_V_002")) + } + + function runCCTESMV003() return boolean + { + return(isSelected("SIP_CC_TE_SM_V_003") and PC_SHOULD) + } + + function runCCTESMI001() return boolean + { + return(isSelected("SIP_CC_TE_SM_I_001")) + } + + function runCCPRMPRQV001() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_001") and PC_SHOULD) + } + function runCCPRMPRQV002() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_002")) + } + function runCCPRMPRQV003() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_003")) + } + function runCCPRMPRQV004() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_004")) + } + function runCCPRMPRQV005() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_005")) + } + function runCCPRMPRQV006() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_006")) + } + function runCCPRMPRQV007() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_007")) + } + function runCCPRMPRQV008() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_008") and PC_SHOULD) + } + function runCCPRMPRQV009() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_009")) + } + function runCCPRMPRQV010() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_010") and PC_SHOULD) + } + function runCCPRMPRQV011() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_011")) + } + function runCCPRMPRQV012() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_012")) + } + function runCCPRMPRQV013() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_013")) + } + function runCCPRMPRQV014() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_014") and PC_SHOULD) + } + function runCCPRMPRQV015() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_015")) + } + function runCCPRMPRQV016() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_016")) + } + function runCCPRMPRQV017() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_017")) + } + function runCCPRMPRQV018() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_018")) + } + function runCCPRMPRQV019() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_019")) + } + function runCCPRMPRQV020() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_020")) + } + function runCCPRMPRQV021() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_021")) + } + function runCCPRMPRQV022() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_022")) + } + function runCCPRMPRQV023() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_023")) + } + function runCCPRMPRQV024() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_024")) + } + function runCCPRMPRQV025() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_025")) + } + function runCCPRMPRQV026() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_026") and PC_SHOULD) + } + function runCCPRMPRQV027() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_027")) + } + function runCCPRMPRQV028() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_028")) + } + function runCCPRMPRQV029() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_029")) + } + function runCCPRMPRQV030() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_030")) + } + function runCCPRMPRQV031() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_031") and PC_SHOULD) + } + function runCCPRMPRQV032() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_032")) + } + function runCCPRMPRQV033() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_033")) + } + function runCCPRMPRQV034() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_034")) + } + function runCCPRMPRQV035() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_035")) + } + function runCCPRMPRQV036() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_036")) + } + function runCCPRMPRQV037() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_037")) + } + function runCCPRMPRQV038() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_038") and PC_SHOULD) + } + function runCCPRMPRQV039() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_039")) + } + function runCCPRMPRQV040() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_040") and PC_SHOULD) + } + function runCCPRMPRQV041() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_041")) + } + function runCCPRMPRQV042() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_042")) + } + function runCCPRMPRQV043() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_043")) + } + function runCCPRMPRQV044() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_044") and PC_SHOULD) + } + function runCCPRMPRQV045() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_045")) + } + function runCCPRMPRQV046() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_046")) + } + function runCCPRMPRQV047() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_047") and PC_SHOULD) + } + function runCCPRMPRQV048() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_048")) + } + function runCCPRMPRQV049() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_049") and PC_SHOULD) + } + function runCCPRMPRQV050() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_050")) + } + function runCCPRMPRQV051() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_051")) + } + function runCCPRMPRQV052() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_052")) + } + function runCCPRMPRQV053() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_053")) + } + function runCCPRMPRQV054() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_054")) + } + function runCCPRMPRQV055() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_055")) + } + function runCCPRMPRQV056() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_056") and PC_SHOULD) + } + function runCCPRMPRQV057() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_057")) + } + function runCCPRMPRQV058() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_058") and PC_SHOULD) + } + function runCCPRMPRQV059() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_059")) + } + function runCCPRMPRQV060() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_060")) + } + function runCCPRMPRQV061() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_061")) + } + function runCCPRMPRQV062() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_062") and PC_SHOULD) + } + function runCCPRMPRQV063() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_063")) + } + function runCCPRMPRQV064() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_064")) + } + function runCCPRMPRQV065() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_065")) + } + function runCCPRMPRQV066() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_066")) + } + function runCCPRMPRQV067() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_V_067") and PC_FORK) + } + function runCCPRMPRQI001() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_I_001")) + } + function runCCPRMPRQI002() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_I_002")) + } + function runCCPRMPRQI003() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_I_003")) + } + function runCCPRMPRQI004() return boolean + { + return(isSelected("SIP_CC_PR_MP_RQ_I_004")) + } + + function runCCPRMPRSV001() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_001")) + } + function runCCPRMPRSV002() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_002")) + } + function runCCPRMPRSV003() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_003")) + } + function runCCPRMPRSV004() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_004")) + } + function runCCPRMPRSV005() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_005")) + } + function runCCPRMPRSV006() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_006") and PC_STATELESS) + } + function runCCPRMPRSV007() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_007")) + } + function runCCPRMPRSV008() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_008")) + } + function runCCPRMPRSV009() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_009")) + } + function runCCPRMPRSV010() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_010")) + } + function runCCPRMPRSV011() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_011")) + } + function runCCPRMPRSV012() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_012") and(not PC_STATELESS)) + } + function runCCPRMPRSV013() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_013") and(not PC_STATELESS)) + } + function runCCPRMPRSV014() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_014") and(not PC_STATELESS)) + } + function runCCPRMPRSV015() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_015") and(not PC_STATELESS)) + } + function runCCPRMPRSV016() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_016") and(not PC_STATELESS)and PC_SHOULD) + } + function runCCPRMPRSV017() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_017") and(not PC_STATELESS)) + } + function runCCPRMPRSV018() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_018") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV019() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_019") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV020() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_020") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV021() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_021") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV022() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_022") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV023() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_023") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV024() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_024") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV025() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_025") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV026() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_026") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV027() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_027") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV028() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_028") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV029() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_029") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV030() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_030") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV031() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_031") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV032() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_032") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV033() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_033") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV034() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_034") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV035() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_035") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV036() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_036") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV037() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_037") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV038() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_038") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV039() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_039") and(not PC_STATELESS) and PC_FORK and PC_SHOULD) + } + function runCCPRMPRSV040() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_040") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV041() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_041") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV042() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_042") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV043() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_043") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV044() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_044") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV045() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_045") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV046() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_046") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV047() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_047") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV048() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_048") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV049() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_049") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV050() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_050") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV051() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_051") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV052() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_052") and(not PC_STATELESS) and PC_FORK) + } + function runCCPRMPRSV053() return boolean + { + return(isSelected("SIP_CC_PR_MP_RS_V_053") and(not PC_STATELESS) and PC_FORK) + } + + + + function runCCPRTRCLV001() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_001") and(not PC_STATELESS)) + } + function runCCPRTRCLV002() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_002") and(not PC_STATELESS)) + } + function runCCPRTRCLV003() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_003") and(not PC_STATELESS)) + } + function runCCPRTRCLV004() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_004") and(not PC_STATELESS)) + } + function runCCPRTRCLV005() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_005") and(not PC_STATELESS)) + } + function runCCPRTRCLV006() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_006") and(not PC_STATELESS)) + } + function runCCPRTRCLV007() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_007") and(not PC_STATELESS)) + } + function runCCPRTRCLV008() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_008") and(not PC_STATELESS)) + } + function runCCPRTRCLV009() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_009") and(not PC_STATELESS)) + } + function runCCPRTRCLV010() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_010")) + } + function runCCPRTRCLV011() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_V_011")) + } + + function runCCPRTRCLTI001() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_001") and PX_UDP) + } + function runCCPRTRCLTI002() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_002") and(not PX_UDP) and PC_SHOULD) + } + function runCCPRTRCLTI003() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_003") and PX_UDP) + } + function runCCPRTRCLTI004() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_004") and PX_UDP) + } +// FFI - Oct 2004 : and PC_SHOULD added + function runCCPRTRCLTI005() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_005") and PC_SHOULD) + } +// FFI - Oct 2004 : SIP__CC_PR_TR_CL_TI_006 removed +// function runCCPRTRCLTI006() return boolean +// { +// return(isSelected("SIP_CC_PR_TR_CL_TI_006") and PC_SHOULD) +// } + function runCCPRTRCLTI007() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_007") and PC_SHOULD) + } + function runCCPRTRCLTI008() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_008") and PC_SHOULD and PX_UDP) + } + function runCCPRTRCLTI009() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_009") and(not PX_UDP) and PC_SHOULD) + } + function runCCPRTRCLTI010() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_010") and PX_UDP and PC_SHOULD) + } + function runCCPRTRCLTI011() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_011")) + } + function runCCPRTRCLTI012() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_012") and PX_UDP) + } + function runCCPRTRCLTI013() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_013") and PX_UDP) + } + function runCCPRTRCLTI014() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_014") and PX_UDP) + } + function runCCPRTRCLTI015() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_015") and PX_UDP and PC_SHOULD) + } + function runCCPRTRCLTI016() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_016")) + } + function runCCPRTRCLTI017() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_017")) + } + function runCCPRTRCLTI018() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_018")) + } + function runCCPRTRCLTI019() return boolean + { + return(isSelected("SIP_CC_PR_TR_CL_TI_019") and PC_SHOULD) + } + + function runCCPRTRSEV001() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_001") and(not PC_STATELESS)) + } + function runCCPRTRSEV002() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_002") and(not PC_STATELESS)) + } + function runCCPRTRSEV003() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_003") and(not PC_STATELESS)) + } + function runCCPRTRSEV004() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_004") and(not PC_STATELESS)) + } + function runCCPRTRSEV005() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_005") and(not PC_STATELESS)) + } + function runCCPRTRSEV006() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_006") and(not PC_STATELESS)) + } + function runCCPRTRSEV007() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_007") and(not PC_STATELESS)) + } + function runCCPRTRSEV008() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_008") and(not PC_STATELESS)) + } + function runCCPRTRSEV009() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_009") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV010() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_010") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV011() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_011") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV012() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_012") and(not PC_STATELESS)) + } + function runCCPRTRSEV013() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_013") and(not PC_STATELESS)) + } + function runCCPRTRSEV014() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_014") and(not PC_STATELESS)) + } + function runCCPRTRSEV015() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_015") and(not PC_STATELESS)) + } + function runCCPRTRSEV016() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_016") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV017() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_017") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV018() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_018") and(not PC_STATELESS)) + } + function runCCPRTRSEV019() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_019") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV020() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_020") and(not PC_STATELESS)) + } + function runCCPRTRSEV021() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_021") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV022() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_022") and(not PC_STATELESS)) + } + function runCCPRTRSEV023() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_023") and(not PC_STATELESS) and PC_SHOULD) + } + function runCCPRTRSEV024() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_024") and(not PC_STATELESS) and PX_UDP) + } + function runCCPRTRSEV025() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_025") and(not PC_STATELESS) and PX_UDP) + } + function runCCPRTRSEV026() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_026") and(not PC_STATELESS) and PX_UDP) + } + function runCCPRTRSEV027() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_027")) + } + function runCCPRTRSEV028() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_028")) + } + function runCCPRTRSEV029() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_029") and PC_SHOULD) + } + function runCCPRTRSEV030() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_030")) + } + function runCCPRTRSEV031() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_V_031")) + } + + function runCCPRTRSETI001() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_001") and PX_UDP) + } + function runCCPRTRSETI002() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_002") and(not PX_UDP)) + } + function runCCPRTRSETI003() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_003") and PX_UDP) + } + function runCCPRTRSETI004() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_004") and PX_UDP) + } + function runCCPRTRSETI005() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_005")) + } + function runCCPRTRSETI006() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_006") and PX_UDP) + } + function runCCPRTRSETI007() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_007") and PX_UDP) + } + function runCCPRTRSETI008() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_008") and(not PX_UDP)) + } + function runCCPRTRSETI009() return boolean + { + return(isSelected("SIP_CC_PR_TR_SE_TI_009") and PX_UDP) + } + + + function runCCRDCEV001() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_001")) + } + function runCCRDCEV002() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_002")) + } + function runCCRDCEV003() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_003")) + } + function runCCRDCEV004() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_004")) + } + function runCCRDCEV005() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_005")) + } + function runCCRDCEV006() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_006")) + } + function runCCRDCEV007() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_007")) + } + function runCCRDCEV008() return boolean + { + return(isSelected("SIP_CC_RD_CE_V_008")) + } + + function runCCRDCRV001() return boolean + { + return(isSelected("SIP_CC_RD_CR_V_001") and PC_SHOULD) + } + function runCCRDCRV002() return boolean + { + return(isSelected("SIP_CC_RD_CR_V_002")) + } + + + function runMGRTV001() return boolean + { + return(isSelected("SIP_MG_RT_V_001")) + } + function runMGRTV002() return boolean + { + return(isSelected("SIP_MG_RT_V_002")) + } + function runMGRTV003() return boolean + { + return(isSelected("SIP_MG_RT_V_003")) + } + function runMGRTV004() return boolean + { + return(isSelected("SIP_MG_RT_V_004")) + } + function runMGRTV005() return boolean + { + return(isSelected("SIP_MG_RT_V_005")) + } + function runMGRTV006() return boolean + { + return(isSelected("SIP_MG_RT_V_006")) + } + function runMGRTV007() return boolean + { + return(isSelected("SIP_MG_RT_V_007")) + } + function runMGRTV008() return boolean + { + return(isSelected("SIP_MG_RT_V_008")) + } + + function runMGRTI001() return boolean + { + return(isSelected("SIP_MG_RT_I_001")) + } + function runMGRTI002() return boolean + { + return(isSelected("SIP_MG_RT_I_002")) + } + function runMGRTI003() return boolean + { + return(isSelected("SIP_MG_RT_I_003")) + } + function runMGRTI004() return boolean + { + return(isSelected("SIP_MG_RT_I_004")) + } + function runMGRTI005() return boolean + { + return(isSelected("SIP_MG_RT_I_005")) + } + + function runMGRRV001() return boolean + { + return(isSelected("SIP_MG_RR_V_001")) + } + function runMGRRV002() return boolean + { + return(isSelected("SIP_MG_RR_V_002")) + } + function runMGRRV003() return boolean + { + return(isSelected("SIP_MG_RR_V_003")) + } + function runMGRRV004() return boolean + { + return(isSelected("SIP_MG_RR_V_004")) + } + function runMGRRV005() return boolean + { + return(isSelected("SIP_MG_RR_V_005")) + } + function runMGRRV006() return boolean + { + return(isSelected("SIP_MG_RR_V_006")) + } + function runMGRRV007() return boolean + { + return(isSelected("SIP_MG_RR_V_007")) + } + function runMGRRV008() return boolean + { + return(isSelected("SIP_MG_RR_V_008")) + } + function runMGRRV009() return boolean + { + return(isSelected("SIP_MG_RR_V_009")) + } + function runMGRRV010() return boolean + { + return(isSelected("SIP_MG_RR_V_010")) + } + function runMGRRV011() return boolean + { + return(isSelected("SIP_MG_RR_V_011")) + } + function runMGRRV012() return boolean + { + return(isSelected("SIP_MG_RR_V_012")) + } + function runMGRRV013() return boolean + { + return(isSelected("SIP_MG_RR_V_013")) + } + + function runMGRRI001() return boolean + { + return(isSelected("SIP_MG_RR_I_001")) + } + function runMGRRI002() return boolean + { + return(isSelected("SIP_MG_RR_I_002")) + } + function runMGRRI003() return boolean + { + return(isSelected("SIP_MG_RR_I_003")) + } + function runMGRRI004() return boolean + { + return(isSelected("SIP_MG_RR_I_004")) + } + function runMGRRI005() return boolean + { + return(isSelected("SIP_MG_RR_I_005")) + } + function runMGRRI006() return boolean + { + return(isSelected("SIP_MG_RR_I_006") and PC_SHOULD) + } + + function runMGOEV001() return boolean + { + return(isSelected("SIP_MG_OE_V_001")) + } + function runMGOEV002() return boolean + { + return(isSelected("SIP_MG_OE_V_002")) + } + function runMGOEV003() return boolean + { + return(isSelected("SIP_MG_OE_V_003")) + } + function runMGOEV004() return boolean + { + return(isSelected("SIP_MG_OE_V_004")) + } + function runMGOEV005() return boolean + { + return(isSelected("SIP_MG_OE_V_005")) + } + function runMGOEV006() return boolean + { + return(isSelected("SIP_MG_OE_V_006")) + } + function runMGOEV007() return boolean + { + return(isSelected("SIP_MG_OE_V_007")) + } + function runMGOEV008() return boolean + { + return(isSelected("SIP_MG_OE_V_008")) + } + function runMGOEV009() return boolean + { + return(isSelected("SIP_MG_OE_V_009")) + } + function runMGOEV010() return boolean + { + return(isSelected("SIP_MG_OE_V_010")) + } + function runMGOEV011() return boolean + { + return(isSelected("SIP_MG_OE_V_011")) + } + function runMGOEV012() return boolean + { + return(isSelected("SIP_MG_OE_V_012")) + } + function runMGOEV013() return boolean + { + return(isSelected("SIP_MG_OE_V_013")) + } + function runMGOEV014() return boolean + { + return(isSelected("SIP_MG_OE_V_014")) + } + function runMGOEV015() return boolean + { + return(isSelected("SIP_MG_OE_V_015")) + } + + function runMGOEI001() return boolean + { + return(isSelected("SIP_MG_OE_I_001")) + } + function runMGOEI002() return boolean + { + return(isSelected("SIP_MG_OE_I_002")) + } + function runMGOEI003() return boolean + { + return(isSelected("SIP_MG_OE_I_003")) + } + function runMGOEI004() return boolean + { + return(isSelected("SIP_MG_OE_I_004")) + } + function runMGOEI005() return boolean + { + return(isSelected("SIP_MG_OE_I_005")) + } + function runMGOEI006() return boolean + { + return(isSelected("SIP_MG_OE_I_006")) + } + function runMGOEI007() return boolean + { + return(isSelected("SIP_MG_OE_I_007")) + } + function runMGOEI008() return boolean + { + return(isSelected("SIP_MG_OE_I_008")) + } + function runMGOEI009() return boolean + { + return(isSelected("SIP_MG_OE_I_009") and PC_SHOULD) + } + function runMGOEI010() return boolean + { + return(isSelected("SIP_MG_OE_I_010") and PC_SHOULD) + } + + function runMGTEV001() return boolean + { + return(isSelected("SIP_MG_TE_V_001")) + } + function runMGTEV002() return boolean + { + return(isSelected("SIP_MG_TE_V_002")) + } + function runMGTEV003() return boolean + { + return(isSelected("SIP_MG_TE_V_003")) + } + function runMGTEV004() return boolean + { + return(isSelected("SIP_MG_TE_V_004")) + } + function runMGTEV005() return boolean + { + return(isSelected("SIP_MG_TE_V_005")) + } + function runMGTEV006() return boolean + { + return(isSelected("SIP_MG_TE_V_006")) + } + function runMGTEV007() return boolean + { + return(isSelected("SIP_MG_TE_V_007")) + } + function runMGTEV008() return boolean + { + return(isSelected("SIP_MG_TE_V_008")) + } + function runMGTEV009() return boolean + { + return(isSelected("SIP_MG_TE_V_009")) + } + function runMGTEV010() return boolean + { + return(isSelected("SIP_MG_TE_V_010")) + } + function runMGTEV011() return boolean + { + return(isSelected("SIP_MG_TE_V_011")) + } + function runMGTEV012() return boolean + { + return(isSelected("SIP_MG_TE_V_012")) + } + function runMGTEV013() return boolean + { + return(isSelected("SIP_MG_TE_V_013")) + } + function runMGTEV014() return boolean + { + return(isSelected("SIP_MG_TE_V_014")) + } + function runMGTEV015() return boolean + { + return(isSelected("SIP_MG_TE_V_015")) + } + + function runMGTEI001() return boolean + { + return(isSelected("SIP_MG_TE_I_001")) + } + function runMGTEI002() return boolean + { + return(isSelected("SIP_MG_TE_I_002")) + } + function runMGTEI003() return boolean + { + return(isSelected("SIP_MG_TE_I_003")) + } + function runMGTEI004() return boolean + { + return(isSelected("SIP_MG_TE_I_004")) + } + function runMGTEI005() return boolean + { + return(isSelected("SIP_MG_TE_I_005") and PC_SHOULD) + } + function runMGTEI006() return boolean + { + return(isSelected("SIP_MG_TE_I_006") and PC_SHOULD) + } + function runMGTEI007() return boolean + { + return(isSelected("SIP_MG_TE_I_007") and PC_SHOULD) + } + function runMGTEI008() return boolean + { + return(isSelected("SIP_MG_TE_I_008") and PC_SHOULD) + } + + function runMGPRV001() return boolean + { + return(isSelected("SIP_MG_PR_V_001")) + } + function runMGPRV002() return boolean + { + return(isSelected("SIP_MG_PR_V_002")) + } + function runMGPRV003() return boolean + { + return(isSelected("SIP_MG_PR_V_003")) + } + function runMGPRV004() return boolean + { + return(isSelected("SIP_MG_PR_V_004")) + } + function runMGPRV005() return boolean + { + return(isSelected("SIP_MG_PR_V_005")) + } + function runMGPRV006() return boolean + { + return(isSelected("SIP_MG_PR_V_006")) + } + function runMGPRV007() return boolean + { + return(isSelected("SIP_MG_PR_V_007")) + } + function runMGPRV008() return boolean + { + return(isSelected("SIP_MG_PR_V_008")) + } + function runMGPRV009() return boolean + { + return(isSelected("SIP_MG_PR_V_009")) + } + function runMGPRV010() return boolean + { + return(isSelected("SIP_MG_PR_V_010")) + } + function runMGPRV011() return boolean + { + return(isSelected("SIP_MG_PR_V_011")) + } + function runMGPRV012() return boolean + { + return(isSelected("SIP_MG_PR_V_012")) + } + function runMGPRV013() return boolean + { + return(isSelected("SIP_MG_PR_V_013")) + } + function runMGPRV014() return boolean + { + return(isSelected("SIP_MG_PR_V_014")) + } + function runMGPRV015() return boolean + { + return(isSelected("SIP_MG_PR_V_015")) + } + function runMGPRV016() return boolean + { + return(isSelected("SIP_MG_PR_V_016")) + } + + function runMGPRI001() return boolean + { + return(isSelected("SIP_MG_PR_I_001")) + } + function runMGPRI002() return boolean + { + return(isSelected("SIP_MG_PR_I_002")) + } + function runMGPRI003() return boolean + { + return(isSelected("SIP_MG_PR_I_003")) + } + function runMGPRI004() return boolean + { + return(isSelected("SIP_MG_PR_I_004")) + } + function runMGPRI005() return boolean + { + return(isSelected("SIP_MG_PR_I_005") and PC_SHOULD) + } + function runMGPRI006() return boolean + { + return(isSelected("SIP_MG_PR_I_006")) + } + function runMGPRI007() return boolean + { + return(isSelected("SIP_MG_PR_I_007") and PC_SHOULD) + } + function runMGPRI008() return boolean + { + return(isSelected("SIP_MG_PR_I_008") and PC_SHOULD) + } + function runMGPRI009() return boolean + { + return(isSelected("SIP_MG_PR_I_009") and PC_SHOULD) + } + function runMGPRI010() return boolean + { + return(isSelected("SIP_MG_PR_I_010") and PC_SHOULD) + } + + function runMGRDV001() return boolean + { + return(isSelected("SIP_MG_RD_V_001")) + } + function runMGRDV002() return boolean + { + return(isSelected("SIP_MG_RD_V_002")) + } + function runMGRDV003() return boolean + { + return(isSelected("SIP_MG_RD_V_003")) + } + function runMGRDV004() return boolean + { + return(isSelected("SIP_MG_RD_V_004")) + } + function runMGRDV005() return boolean + { + return(isSelected("SIP_MG_RD_V_005")) + } + function runMGRDV006() return boolean + { + return(isSelected("SIP_MG_RD_V_006")) + } + function runMGRDV007() return boolean + { + return(isSelected("SIP_MG_RD_V_007")) + } + function runMGRDV008() return boolean + { + return(isSelected("SIP_MG_RD_V_008")) + } + function runMGRDV009() return boolean + { + return(isSelected("SIP_MG_RD_V_009")) + } + function runMGRDV010() return boolean + { + return(isSelected("SIP_MG_RD_V_010")) + } + function runMGRDV011() return boolean + { + return(isSelected("SIP_MG_RD_V_011")) + } + function runMGRDV012() return boolean + { + return(isSelected("SIP_MG_RD_V_012")) + } + function runMGRDV013() return boolean + { + return(isSelected("SIP_MG_RD_V_013")) + } + function runMGRDV014() return boolean + { + return(isSelected("SIP_MG_RD_V_014")) + } + + function runMGRDI001() return boolean + { + return(isSelected("SIP_MG_RD_I_001")) + } + function runMGRDI002() return boolean + { + return(isSelected("SIP_MG_RD_I_002")) + } + function runMGRDI003() return boolean + { + return(isSelected("SIP_MG_RD_I_003")) + } + function runMGRDI004() return boolean + { + return(isSelected("SIP_MG_RD_I_004")) + } + function runMGRDI005() return boolean + { + return(isSelected("SIP_MG_RD_I_005") and PC_SHOULD) + } + function runMGRDI006() return boolean + { + return(isSelected("SIP_MG_RD_I_006")) + } + function runMGRDI007() return boolean + { + return(isSelected("SIP_MG_RD_I_007") and PC_SHOULD) + } + function runMGRDI008() return boolean + { + return(isSelected("SIP_MG_RD_I_008") and PC_SHOULD) + } + + } // end Group TestCaseSelectionExpressions + group TestGroupSelectionExpressions + { + function runRGRT() return boolean + { + return(PC_REGISTRATION and PC_UA) + } + function runRGRR() return boolean + { + return(PC_PROXY or PC_REDIRECTS) + } + function runCCOE() return boolean + { + return(PC_UA) + } + function runCCTE() return boolean + { + return(PC_UA) + } + function runCCPR() return boolean + { + return(PC_PROXY) + } + function runCCRD() return boolean + { + return(PC_REDIRECTS) + } + function runMGRT() return boolean + { + return(PC_REGISTRATION and PC_UA) + } + function runMGRR() return boolean + { + return(PC_PROXY or PC_REDIRECTS) + } + function runMGOE() return boolean + { + return(PC_UA) + } + function runMGTE() return boolean + { + return(PC_UA) + } + function runMGPR() return boolean + { + return(PC_PROXY) + } + function runMGRD() return boolean + { + return(PC_REDIRECTS) + } + }//end Group TestGroupSelectionExpressions + // + group FieldOperations + { + function addTagInTo(inout To loc_To) runs on SipComponent + { + + addParameterTagIfNotPresent(TAG_ID, getRndTag(), loc_To); // according to correction from TT input + // addParameterIfNotPresent(TAG_ID, getRndTag(), loc_To.toParams); + } + + // Build the request URI according to 12.2.1.1 of [1] to be done + function buildRequestURI(inout HostPort loc_reqHostPort, in To loc_To) runs on SipComponent + { + } + +// function getViaReplyAddr(inout ViaBody_List loc_ViaBody_List, inout WorkaroundAddress source_address) + function getViaReplyAddr(inout ViaBody_List loc_ViaBody_List, inout address source_address) + runs on SipComponent + { + var ViaBody v_ViaBody; + var HostPort locAddr; + + // The address to send message shall be updated after getting information + // in the Via header fied and according to 18.2.2 + v_ViaBody := loc_ViaBody_List[0]; + + // received parameter has to be addded to the via hader field + // Be careful it could be an Host name and not an IP Address + // To be reviewed or managed at the implementation level(gethost) + + + if (not equivalentHostAddr(valueof (v_ViaBody.sentBy.host), + valueof (source_address.host))) { + addParameterIfNotPresent( + RECEIVED_ID, + valueof (source_address.host), + v_ViaBody); + } + if (ispresent(v_ViaBody.sentBy.portField)) + { + source_address.portField := valueof(v_ViaBody.sentBy.portField); + } + else + { + source_address.portField := DEFAULT_SIP_PORT; + } + } + + function getContactAddr(in ContactAddress contact) runs on SipComponent return HostPort + { + var HostPort locAddr; + var SipUrl v_SipUrl; + + if (ischosen(contact.addressField.nameAddr)) + { + v_SipUrl := contact.addressField.nameAddr.addrSpec; + } + else + { + v_SipUrl := contact.addressField.addrSpecUnion; + } + + locAddr.host := v_SipUrl.hostPort.host; + + if (ispresent(v_SipUrl.hostPort.portField)) + { + locAddr.portField := v_SipUrl.hostPort.portField; + } + else + { + locAddr.portField := DEFAULT_SIP_PORT; + } + + return(locAddr); + } // end getContact + + function updateContactAddress_List(inout Contact par_Contact, in charstring time_expire_value) runs on SipComponent + { + var integer i; + var integer j; + var integer nb_contacts; + var integer nb_params; + + nb_contacts := sizeof(par_Contact.contactBody.contactAddresses); + + for (j:=0; j < nb_contacts; j:= j +1) + { + var SemicolonParam_List tmp_params; + if (ispresent(par_Contact.contactBody.contactAddresses[j].contactParams)) + { + tmp_params := par_Contact.contactBody.contactAddresses[j].contactParams; + nb_params := sizeof(tmp_params); + } + else + {nb_params := 0}; + + for (i:=0; i <= nb_params; i:= i+1) + { + //No parameter_name has been found, a new one is added + if (i==nb_params) + { + tmp_params[i] := {id:=EXPIRES_ID, paramValue:=time_expire_value}; + } + else + { + // Already present : it is updated + if (tmp_params[i].id == EXPIRES_ID) + { + tmp_params[i].paramValue := time_expire_value; + i := nb_params + 1; + } + } + } + } + } + + // Function to calculate credentials for request that has an empty + // entity body such as a REGISTER message. + function calculatecCredentials(in charstring loc_method, in CommaParam_List loc_challenge) return Credentials + { + var Credentials result; + + var charstring nonce := ""; + + // Use a fixed client nonce. + var charstring cnonce := "01234567890abcdef01234567890abcdef"; + + // RFC 2617 3.2.2 username: + // The name of user in the specified realm. + var charstring username := PX_RFC2617_USERNAME; + + var charstring realm; + + // RFC 2617 3.2.2.2 passwd: + // A known shared secret, the password of user of the specified + // username. + var charstring passwd := PX_RFC2617_PASSWD; + + var charstring algorithm; + + // Use a fixed nonce count. + const charstring nonceCount := "00000001"; + + var charstring qop := PX_RFC2617_QOP; + + var charstring uri := PX_RFC2617_URI; + + // MD5 hash of empty entity body. + const charstring hEntity := "d41d8cd98f00b204e9800998ecf8427e"; + + var charstring response; + var charstring opaque; + + + // extract nonce, realm, algorithm, and opaque from challenge + + nonce := stripQuotationMarks (extractParamValueFromChallenge(loc_challenge, "nonce")); + realm := stripQuotationMarks (extractParamValueFromChallenge(loc_challenge, "realm")); + algorithm := extractParamValueFromChallenge(loc_challenge, "algorithm"); + opaque := extractParamValueFromChallenge(loc_challenge, "opaque"); + + // calculate a digest response for the Authorize header + response := calculateDigestResponse( + nonce, + cnonce, + username, + realm, + passwd, + algorithm, + nonceCount, + loc_method, + qop, + uri, + hEntity); + + // Construct credentials for an Authorization field of a request. + result := + { + digestResponse := + { + { id := "username", paramValue := """" & username & """" }, + { id := "realm", paramValue := """" & realm & """" }, + { id := "nonce", paramValue := """" & nonce & """" }, + { id := "uri", paramValue := """" & uri & """" }, + { id := "response", paramValue := """" & response & """" }, + { id := "algorithm", paramValue := algorithm }, // algorithm is not enclosed to " characters + { id := "cnonce", paramValue := """" & cnonce & """" }, + { id := "opaque", paramValue := opaque }, // already enclosed to " characters + { id := "qop", paramValue := qop }, + { id := "nc", paramValue := nonceCount } + } + }; + + return result; + } + + function setHeadersOnReceiptOfRegister(in Request loc_REGISTER_Request) runs on SipComponent + { + // Catch data from received REGISTER request to prepare informations to answer + if (ispresent(loc_REGISTER_Request.msgHeader.contact)) + { + var Contact tmp_contact := loc_REGISTER_Request.msgHeader.contact; + if (ischosen(tmp_contact.contactBody.contactAddresses)) + { + v_reqHostPort := getContactAddr(tmp_contact.contactBody.contactAddresses[0]); + } + } + + v_CallId := loc_REGISTER_Request.msgHeader.callId; + v_CSeq := loc_REGISTER_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_REGISTER_Request.msgHeader.cSeq; + v_From := loc_REGISTER_Request.msgHeader.fromField; + v_To := loc_REGISTER_Request.msgHeader.toField; + v_Via := loc_REGISTER_Request.msgHeader.via; + v_Contact := loc_REGISTER_Request.msgHeader.contact; + + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + //Add a Tag in the TO field if not present + addTagInTo(v_To); + } + function setDefHeadersOnReceiptOfRegister(in Request loc_REGISTER_Request) runs on SipComponent + { + v_def_CallId := loc_REGISTER_Request.msgHeader.callId; + v_def_CSeq := loc_REGISTER_Request.msgHeader.cSeq; + v_def_From := loc_REGISTER_Request.msgHeader.fromField; + v_def_To := loc_REGISTER_Request.msgHeader.toField; + v_def_Via := loc_REGISTER_Request.msgHeader.via; + if (ispresent(loc_REGISTER_Request.msgHeader.contact)) + { + v_def_Contact := loc_REGISTER_Request.msgHeader.contact ; + } + + // update sent_label according to received via header field + getViaReplyAddr(v_def_Via.viaBody, sent_label); + //Add a Tag in the TO field + addTagInTo(v_def_To); + } + + // Function to set sent headers for BYE + function setHeadersForBYE(inout CSeq loc_CSeq_s) runs on SipComponent + { + // New Cseq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "BYE"; + + //Computation of the Request URI + buildRequestURI(v_reqHostPort, v_To); + + //New BRANCH_ID + v_Branch:=BRANCH_COOKIE & getRndTag(); + v_Via := + { + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + } + + // Function to set sent headers for BYE out of any dialog + function setHeadersForBYEOutOfDialog(inout CSeq loc_CSeq_s) runs on SipComponent + { + v_CallId := { fieldName:= CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_IUT_IPADDR }; + + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "BYE"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s1); + caller_To := v_To; + + v_From := valueof(From_s1(getRndTag())); + caller_From := v_From; + + + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + v_RequestUri := valueof(SipUrl_ofCallee_s); + v_reqHostPort :=v_RequestUri.hostPort; + } + + // Function to set sent headers for CANCEL out of any dialog + function setHeadersForCANCELPTCOutOfDialog(inout CSeq loc_CSeq_s) runs on SipComponent + { + + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR }; + + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "CANCEL"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s2); + caller_To := v_To; + + // According to 8.1.1.3 shall not contain IP or FQDN + v_From := valueof(From_s2(getRndTag())); + caller_From := v_From; + + v_Contact := valueof(Contact_ETS_s); + + // VIAs + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + v_RequestUri := valueof(SipUrl_ofPTC); + v_reqHostPort :=v_RequestUri.hostPort; + } //en setHeadersForCANCELPTCOutOfDialog + + // Function to set sent headers for CANCEL out of any dialog + function setHeadersForCANCELOutOfDialog(inout CSeq loc_CSeq_s) runs on SipComponent + { + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_IUT_IPADDR }; + + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "CANCEL"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s1); + v_Cancel_To := v_To; + caller_To := v_To; + + v_From := valueof(From_s1(getRndTag())); + caller_From := v_From; + + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + v_RequestUri := valueof(SipUrl_ofCallee_s); + v_reqHostPort :=v_RequestUri.hostPort; + }//end setHeadersForCANCELOutOfDialog + + // Function to set sent headers to Registrar + function setHeadersForRegister(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + var UserInfo tmp_userInfo:= + { userOrTelephoneSubscriber := PX_ETS_LOCAL_USER, + password := omit + }; + v_RequestUri:= + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort := f_set_REGISTRAR_hostPort(PX_SIP_REGISTRAR_DOMAIN,PX_SIP_REGISTRAR_PORT), +// hostPort := {host:=PX_IUT_HOME_DOMAIN, portField:=PX_IUT_PORT}, + urlParameters := omit, + headers := omit + }; + + v_reqHostPort := v_RequestUri.hostPort; + + v_CallId:= {fieldName := CALL_ID_E, + callid := getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR}; + v_CallIdReg := v_CallId; + + // Update CSeq + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "REGISTER" ; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s3); //identical to From_s1 + + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From := + {fieldName := FROM_E, + addressField := { + nameAddr := { + displayName := "ETSI Tester", // optional charstring + addrSpec := SipUrl_ofLocalUser_s // SipUrl + }}, + fromParams := tmp_params + }; + + v_Contact := + { + fieldName := CONTACT_E, + contactBody:= + { + contactAddresses := + { + { + addressField := + {nameAddr:={displayName:="ETSI Tester", + addrSpec := { // SipUrl + scheme := SIP_SCHEME, // contains "sip" + userInfo := tmp_userInfo, // optional + hostPort := {host:=PX_ETS_IPADDR, portField:=PX_ETS_PORT}, + urlParameters := omit + }}}, + contactParams := omit} + } + } + }; + + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + }// end function setHeadersForRegister + + function setHeadersForRespOutOfDialog(inout CSeq loc_CSeq_s) runs on SipComponent + { + + var charstring branch_val; + + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_IUT_IPADDR }; + + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "INVITE"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s4(getRndTag())); + caller_To := v_To; + + // According to 8.1.1.3 shall not contain IP or FQDN + v_From := valueof(From_s2(getRndTag())); + caller_From := v_From; + + v_Contact := valueof(Contact_ETS_s); + + // VIAs + branch_val := BRANCH_COOKIE & getRndTag(); + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := + { + valueof(ViaBody_IUT_IPADDR(branch_val)), + valueof(ViaBody_PTC(v_Branch)) + } + }; + + }// end function setHeadersForRespOutOfDialog + + function setHeadersIUTInvite(inout CSeq loc_CSeq_s) runs on SipComponent + { + // 183 indicating an announcement may be received on release of the call on the ISUP side + // non nice but economic;) + v_ignore183:=true; + + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR }; // Iskratel -PX_IUT_IPADDR }; + + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "INVITE"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s1); + v_Cancel_To := v_To; + caller_To := v_To; + + v_From := valueof(From_s1(getRndTag())); + caller_From := v_From; + + v_Contact := valueof(Contact_ETS_s); + + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + v_RequestUri := valueof(SipUrl_ofCallee_s); + v_reqHostPort :=v_RequestUri.hostPort; + + }// end function setHeadersIUTInvite + + function setHeadersOnReceiptOfResponse(inout CSeq loc_CSeq_s, Response loc_Response) runs on SipComponent + { + var integer i,j,nbroute; + + v_CSeq := loc_CSeq_s; + v_To :=loc_Response.msgHeader.toField; + v_From :=loc_Response.msgHeader.fromField; + caller_To := v_To; + caller_From := v_From; + + if (ispresent(loc_Response.msgHeader.contact)) + { + var Contact tmp_Contact := loc_Response.msgHeader.contact; + if (ischosen(tmp_Contact.contactBody.contactAddresses)) + { + v_reqHostPort := getContactAddr(tmp_Contact.contactBody.contactAddresses[0]); + } + } + else + { + if (ischosen(v_To.addressField.nameAddr)) + { + v_reqHostPort := v_To.addressField.nameAddr.addrSpec.hostPort; + } + else + { + v_reqHostPort := v_To.addressField.addrSpecUnion.hostPort; + } + } + + callee_To:={fieldName := TO_E, + addressField := caller_From.addressField, + toParams := caller_From.fromParams}; + + callee_From:= {fieldName := FROM_E, + addressField := caller_To.addressField, + fromParams := caller_To.toParams}; + // VIA + v_Via:= loc_Response.msgHeader.via; + + // Route Management + if (ispresent(loc_Response.msgHeader.recordRoute)) + { + v_RecordRoute := loc_Response.msgHeader.recordRoute; + nbroute := sizeof(v_RecordRoute.routeBody); + // copy and reverse the order of the routes in route header + for (i:=0; i<=(nbroute - 1); i:=i+1) + { + j:= nbroute - 1 - i; + v_Route.routeBody[j]:=v_RecordRoute.routeBody[i]; + } + v_Route.fieldName := ROUTE_E; + v_BOO_RecordRoute := true; + v_BOO_Route := true; + } + else + { + v_BOO_RecordRoute := false; + v_BOO_Route := false; + }; + + + // extentions due to new fields in PRACK and UPDATE messages + + // STF301 next operation made comment, as it causes run-time error +// if (ispresent(loc_Response.msgHeader.recordRoute)) +// {v_RAck := +// { +// fieldName := RACK_E, +// responseNum := valueof(loc_Response.msgHeader.rSeq.responseNum), +// seqNumber := valueof(loc_Response.msgHeader.cSeq.seqNumber), +// method := valueof(loc_Response.msgHeader.cSeq.method) +// }; +// }; + //messageBody answer + if (ispresent(loc_Response.messageBody)) + {v_Body :=loc_Response.messageBody;} + else {v_Body := "dummy"}; // PS to avoid omitted (-) string which causes matching error + }// end function setHeadersOnReceiptOfResponse + + function setHeadersPtcInvite(inout CSeq loc_CSeq_s) runs on SipComponent + { + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR }; + + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "INVITE"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s2); + v_Cancel_To := v_To; + caller_To := v_To; + + // According to 8.1.1.3 shall not contain IP or FQDN + v_From := valueof(From_s2(getRndTag())); + caller_From := v_From; + + v_Contact := valueof(Contact_ETS_s); + + // VIAs + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + v_RequestUri := valueof(SipUrl_ofPTC); + v_reqHostPort :=v_RequestUri.hostPort; + + }// end function setHeadersPtcInvite + + function setHeadersRDPtcInvite(inout CSeq loc_CSeq_s) runs on SipComponent + { + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR }; + + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "INVITE"; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s5); + v_Cancel_To := v_To; + caller_To := v_To; + + // According to 8.1.1.3 shall not contain IP or FQDN + v_From := valueof(From_s2(getRndTag())); + caller_From := v_From; + + v_Contact := valueof(Contact_ETS_s); + + // VIAs + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + v_RequestUri := valueof(SipUrl_ofRDPTC); + v_reqHostPort :=v_RequestUri.hostPort; + + }// end function setHeadersRDPtcInvite + + + function setHeadersRDPtcForRegister(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + v_RequestUri:= + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort := {host:=PX_IUT_HOME_DOMAIN, portField:=PX_IUT_PORT}, + urlParameters := omit, + headers := omit + }; + + v_reqHostPort := v_RequestUri.hostPort; + + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR2 }; + + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "REGISTER" ; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s5); + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From := {fieldName := FROM_E, + addressField :=v_To.addressField, + fromParams := tmp_params + }; + + v_Contact := valueof(Contact_PTC_s); + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_PTC(v_Branch))} + }; + }// end function setHeadersRDPtcForRegister + + // This function reads all necessary headers from the received INVITE message and + // generate the tag for the answer + function setHeadersOnReceiptOfInvite(Request loc_INVITE_Request) + runs on SipComponent + { + var integer i,j,nbroute; + + v_CallId := loc_INVITE_Request.msgHeader.callId; + v_CSeq := loc_INVITE_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_INVITE_Request.msgHeader.cSeq; + caller_From := loc_INVITE_Request.msgHeader.fromField; + caller_To := loc_INVITE_Request.msgHeader.toField; + v_RequestUri := loc_INVITE_Request.requestLine.requestUri; + + v_Cancel_To := loc_INVITE_Request.msgHeader.toField; + addTagInTo(caller_To); + v_To := caller_To; + + v_From := caller_From; + + v_Via := loc_INVITE_Request.msgHeader.via; + + if (ispresent(loc_INVITE_Request.msgHeader.contact)) { + var Contact tmp_contact := loc_INVITE_Request.msgHeader.contact; + v_reqHostPort := getContactAddr(tmp_contact.contactBody.contactAddresses[0]); + } + + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + + // Catch route + v_BOO_RecordRoute:=false; + +// if (ispresent(loc_INVITE_Request.msgHeader.recordRoute)) +// { +// v_BOO_RecordRoute:=true; +// v_RecordRoute := loc_INVITE_Request.msgHeader.recordRoute; +// }; + + // Route Management (Route header should be set e.g. in BYE) + if (ispresent(loc_INVITE_Request.msgHeader.recordRoute)) + { + v_RecordRoute := loc_INVITE_Request.msgHeader.recordRoute; + nbroute := sizeof(v_RecordRoute.routeBody); + // copy and reverse the order of the routes in route header + for (i:=0; i<=(nbroute - 1); i:=i+1) + { + j:= nbroute - 1 - i; + v_Route.routeBody[j]:=v_RecordRoute.routeBody[i]; + } + v_Route.fieldName := ROUTE_E; + v_BOO_RecordRoute := true; + v_BOO_Route := true; + } + else + { + v_BOO_RecordRoute := false; + v_BOO_Route := false; + }; + + + + // update callee information and pick up tag if the call need to be canceled + callee_To := {fieldName := TO_E, + addressField := caller_From.addressField, + toParams := caller_From.fromParams}; + + callee_From := {fieldName := FROM_E, + addressField := caller_To.addressField, + fromParams := caller_To.toParams}; + + // new in SipIsup + if (ispresent(loc_INVITE_Request.msgHeader.privacy)) + { + v_Privacy := loc_INVITE_Request.msgHeader.privacy; + v_valid_Privacy := true; + } else {v_valid_Privacy := false;}; + + // new in SipIsup + if (ispresent(loc_INVITE_Request.messageBody)) + { + v_Body := loc_INVITE_Request.messageBody; + }; + + } // end setHeadersOnReceiptOfInvite + + function setHeadersOnReceiptOfBye(Request loc_BYE_Request) + runs on SipComponent + { + v_CSeq := loc_BYE_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_BYE_Request.msgHeader.cSeq; + v_From := loc_BYE_Request.msgHeader.fromField; + v_To := loc_BYE_Request.msgHeader.toField; + v_CallId := loc_BYE_Request.msgHeader.callId; + + v_Via := loc_BYE_Request.msgHeader.via; + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + + // Catch route + v_BOO_RecordRoute:=false; + + if (ispresent(loc_BYE_Request.msgHeader.recordRoute)) + { + v_BOO_RecordRoute:=true; + v_RecordRoute := loc_BYE_Request.msgHeader.recordRoute; + } + } // end setHeadersOnReceiptOfBye + + function setHeadersOnReceiptOfCancel(Request loc_CANCEL_Request) + runs on SipComponent + { + v_CSeq := loc_CANCEL_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_CANCEL_Request.msgHeader.cSeq; + v_From := loc_CANCEL_Request.msgHeader.fromField; + v_To := loc_CANCEL_Request.msgHeader.toField; + v_Via := loc_CANCEL_Request.msgHeader.via; + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + + // Catch route + v_BOO_RecordRoute:=false; + + if (ispresent(loc_CANCEL_Request.msgHeader.recordRoute)) + { + v_BOO_RecordRoute:=true; + v_RecordRoute := loc_CANCEL_Request.msgHeader.recordRoute; + } + } // end setHeadersOnReceiptOfBye + + function setHeadersOnReceiptOfInfo(Request loc_INFO_Request) + runs on SipComponent + { + v_CSeq := loc_INFO_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_INFO_Request.msgHeader.cSeq; + v_From := loc_INFO_Request.msgHeader.fromField; + v_To := loc_INFO_Request.msgHeader.toField; + v_Via := loc_INFO_Request.msgHeader.via; + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + + // Catch route + v_BOO_RecordRoute:=false; + + if (ispresent(loc_INFO_Request.msgHeader.recordRoute)) + { + v_BOO_RecordRoute:=true; + v_RecordRoute := loc_INFO_Request.msgHeader.recordRoute; + } + } // end setHeadersOnReceiptOfInfo + + function setHeadersPtcForRegister(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + v_RequestUri:= + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort := f_set_REGISTRAR_hostPort(PX_SIP_REGISTRAR_DOMAIN,PX_SIP_REGISTRAR_PORT), +// hostPort := {host:=PX_IUT_HOME_DOMAIN, portField:=PX_IUT_PORT}, + urlParameters := omit, + headers := omit + }; + + v_reqHostPort := v_RequestUri.hostPort; + + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR2 }; + + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "REGISTER" ; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s2); + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From := {fieldName := FROM_E, + addressField :=v_To.addressField, + fromParams := tmp_params + }; + + v_Contact := valueof(Contact_PTC_s); + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_PTC(v_Branch))} + }; + }// end function setHeadersPtcForRegister + + function setHeadersPtc2ForRegister(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + v_RequestUri:= + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort := f_set_REGISTRAR_hostPort(PX_SIP_REGISTRAR_DOMAIN,PX_SIP_REGISTRAR_PORT), +// hostPort := {host:=PX_IUT_HOME_DOMAIN, portField:=PX_IUT_PORT}, + urlParameters := omit, + headers := omit + }; + + v_reqHostPort := v_RequestUri.hostPort; + + v_CallId := { fieldName:=CALL_ID_E, callid:=getRndCallId(loc_CSeq_s) & AT & PX_ETS_IPADDR3 }; + + loc_CSeq_s.fieldName := CSEQ_E; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "REGISTER" ; + v_CSeq := loc_CSeq_s; + + v_To := valueof(To_s2); + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From := {fieldName := FROM_E, + addressField :=v_To.addressField, + fromParams := tmp_params + }; + + v_Contact := valueof(Contact_PTC2_s); + v_Branch := BRANCH_COOKIE & getRndTag(); + v_Via:={ + fieldName := VIA_E, + viaBody := {valueof(ViaBody_PTC2(v_Branch))} + }; + }// end function setHeadersPtc2ForRegister + + function buildRaw_SipURL(in SipUrl sipUrl) runs on SipComponent return charstring + { + var charstring v_sipUrl; + var integer nbelement,i; + + // AddrSpec addrSpec (SipUrl) + // charstring scheme + v_sipUrl:= sipUrl.scheme & ":"; + // UserInfo userInfo optional + if (ispresent(sipUrl.userInfo)) + { + var UserInfo tmp_userinfo := sipUrl.userInfo; + v_sipUrl:= v_sipUrl & tmp_userinfo.userOrTelephoneSubscriber; + if (ispresent(tmp_userinfo.password)) + { + v_sipUrl:= v_sipUrl & ":" & tmp_userinfo.password; + } + v_sipUrl:= v_sipUrl & AT; + } + // HostPort hostPort, + v_sipUrl:= v_sipUrl & sipUrl.hostPort.host; + if (ispresent(sipUrl.hostPort.portField)) + { + v_sipUrl:= v_sipUrl & ":" & int2str(sipUrl.hostPort.portField); + } + + // SemicolonParam_List urlParameters optional, + if (ispresent(sipUrl.urlParameters)) + { + var SemicolonParam_List tmp_urlParameters := sipUrl.urlParameters; + v_sipUrl:= v_sipUrl & SP; + nbelement := sizeof(tmp_urlParameters); + for (i:=0; i<=(nbelement-1); i:=i+1) + { + v_sipUrl:= v_sipUrl & ";" & tmp_urlParameters[i].id; + if (ispresent(tmp_urlParameters[i].paramValue)) + { + v_sipUrl:= v_sipUrl & "=" & tmp_urlParameters[i].paramValue; + } + }//end for + } + // AmpersandParam_List headers optional + if (ispresent(sipUrl.headers)) + { + var AmpersandParam_List tmp_headers := sipUrl.headers; + nbelement := sizeof(tmp_headers); + for (i:=0; i<=(nbelement-1); i:=i+1) + { + if (i==0) + { + v_sipUrl:= v_sipUrl & "?" & tmp_headers[0].id; + } + else + { + v_sipUrl:= v_sipUrl & "&" & tmp_headers[i].id; + }; + + if (ispresent(tmp_headers[i].paramValue)) + { + var charstring tmp_paramValue := tmp_headers[i].paramValue; + v_sipUrl:= v_sipUrl & "=" & tmp_paramValue; + } + }//end for + } + + return(v_sipUrl); + } //end function buildRaw_SipURL + + function buildRaw_SemicolonParam_List(in SemicolonParam_List genericParam_List) + runs on SipComponent return charstring + { + var charstring v_genericParam_List; + var integer nbelement,i; + var GenericParam v_GenericParam; + + v_genericParam_List := ""; + nbelement := sizeof(genericParam_List); + + for (i:=0; i<=(nbelement-1); i:=i+1) + { + v_genericParam_List:=v_genericParam_List & ";" & genericParam_List[i].id; + v_GenericParam := genericParam_List[i]; + if (ispresent(v_GenericParam.paramValue)) + { + var charstring tmp_paramValue := v_GenericParam.paramValue; + v_genericParam_List:= v_genericParam_List & "=" & v_GenericParam.paramValue; + } + } + + return(v_genericParam_List); + + } //end function buildRaw_SemicolonParam_List + + + function buildRaw_CommaParam_List(in CommaParam_List loc_CommaParam_List) + runs on SipComponent return charstring + { + var charstring result; + var integer nbelement,i; + var GenericParam v_GenericParam; + + result := ""; + nbelement := sizeof(loc_CommaParam_List); + + for (i:=0; i0)) + { + v_resuChar:= "Route:" & SP; + for (i:=0; i0) {v_resuChar := v_resuChar & ", "} + v_sipUrl := buildRaw_SipURL(routeHeader.routeBody[i].nameAddr.addrSpec); + if (ispresent(routeHeader.routeBody[i].nameAddr.displayName)) + { + v_resuChar := v_resuChar & routeHeader.routeBody[i].nameAddr.displayName + & LT & v_sipUrl & GT; + } + else + { + v_resuChar := v_resuChar & LT & v_sipUrl & GT; + }; + //get toParams + if (ispresent(routeHeader.routeBody[i].rrParam)) + { + v_resuChar:= v_resuChar & buildRaw_SemicolonParam_List(routeHeader.routeBody[i].rrParam); + } + } //end For + } + else + { + v_resuChar := ""; + } + return(v_resuChar) + }//end buildRaw_Route + + function buildRaw_RecordRoute(in RecordRoute recordRouteHeader) + runs on SipComponent return charstring + { + var charstring v_resuChar:= ""; + var charstring v_sipUrl:= ""; + var integer nbelement,i; + + if (v_BOO_RecordRoute) + { + nbelement:= sizeof(recordRouteHeader.routeBody); + v_resuChar:= "Record-Route:" & SP; + for (i:=0; i<=(nbelement-1); i:=i+1) + { + if (i>0) {v_resuChar := v_resuChar & ", "} + v_sipUrl := buildRaw_SipURL(recordRouteHeader.routeBody[i].nameAddr.addrSpec); + if (ispresent(recordRouteHeader.routeBody[i].nameAddr.displayName)) + { + v_resuChar := v_resuChar & recordRouteHeader.routeBody[i].nameAddr.displayName & + LT & v_sipUrl & GT; + } + else + { + v_resuChar := v_resuChar & LT & v_sipUrl & GT; + }; + //get toParams + if (ispresent(recordRouteHeader.routeBody[i].rrParam)) + { + v_resuChar:= v_resuChar & buildRaw_SemicolonParam_List(recordRouteHeader.routeBody[i].rrParam); + } + } //end For + } + else + { + v_resuChar := ""; + } + return(v_resuChar) + }//end buildRaw_RecordRoute + + function buildRaw_EscapedDelimiters_SipURL(in SipUrl sipUrl) + runs on SipComponent return charstring + { + var charstring v_sipUrl:= ""; + var integer nbelement,i; + + // AddrSpec addrSpec (SipUrl) + // charstring scheme + v_sipUrl:= sipUrl.scheme & "%3A"; + // UserInfo userInfo optional + if (ispresent(sipUrl.userInfo)) + { + var UserInfo tmp_userinfo := sipUrl.userInfo; + v_sipUrl:= v_sipUrl & tmp_userinfo.userOrTelephoneSubscriber; + if (ispresent(tmp_userinfo.password)) + { + v_sipUrl:= v_sipUrl & "%3A" & tmp_userinfo.password; + } + v_sipUrl:= v_sipUrl & "%40"; + } + // HostPort hostPort, + v_sipUrl:= v_sipUrl & sipUrl.hostPort.host; + if (ispresent(sipUrl.hostPort.portField)) + { + v_sipUrl:= v_sipUrl & "%3A" & int2str(sipUrl.hostPort.portField); + } + + // SemicolonParam_List urlParameters optional, + if (ispresent(sipUrl.urlParameters)) + { + var SemicolonParam_List tmp_urlParameters := sipUrl.urlParameters; + v_sipUrl:= v_sipUrl & SP; + nbelement := sizeof(tmp_urlParameters); + for (i:=0; i<=(nbelement-1); i:=i+1) + { + v_sipUrl:= v_sipUrl & "%3B" & tmp_urlParameters[i].id; + if (ispresent(tmp_urlParameters[i].paramValue)) + { + v_sipUrl:= v_sipUrl & + "%3D" & tmp_urlParameters[i].paramValue; + } + }//end for + } + // AmpersandParam_List headers optional + if (ispresent(sipUrl.headers)) + { + var AmpersandParam_List tmp_headers := sipUrl.headers; + nbelement := sizeof(tmp_headers); + for (i:=0; i<=(nbelement-1); i:=i+1) + { + if (i==0) + { + v_sipUrl:= v_sipUrl & "%3F" & tmp_headers[0].id; + } + else + { + v_sipUrl:= v_sipUrl & "%26" & tmp_headers[i].id; + }; + + if (ispresent(tmp_headers[i].paramValue)) + { + var charstring tmp_paramValue := tmp_headers[i].paramValue; + v_sipUrl:= v_sipUrl & "%3D" & tmp_paramValue; + } + }//end for + }; + + return(v_sipUrl); + } //end function buildRaw_EscapedDelimiters_SipURL + + function buildRaw_EscapedDelimiters_ContactHeader(in Contact contactHeader) + runs on SipComponent return charstring + { + var charstring v_resuChar:= ""; + var charstring v_sipUrl:= ""; + var integer nbelement, i; + + //wildcard case + if (ischosen(contactHeader.contactBody.wildcard)) + { + v_resuChar := "Contact:" & SP & contactHeader.contactBody.wildcard; + return(v_resuChar); + }; + + //contactAddress case + nbelement:= sizeof(contactHeader.contactBody.contactAddresses); + for (i:=0; i<=(nbelement-1); i:=i+1) + { + v_resuChar:= v_resuChar & "Contact:" & SP; + + // AddrSpec addrSpec (SipUrl) + if (ischosen(contactHeader.contactBody.contactAddresses[i].addressField.nameAddr)) + { + v_sipUrl := buildRaw_EscapedDelimiters_SipURL(contactHeader.contactBody.contactAddresses[i].addressField.nameAddr.addrSpec); + // charstring displayName optional, + if (ispresent(contactHeader.contactBody.contactAddresses[i].addressField.nameAddr.displayName)) + { + v_resuChar := v_resuChar & contactHeader.contactBody.contactAddresses[i].addressField.nameAddr.displayName & + LT & v_sipUrl & GT; + } + else + { + v_resuChar := v_resuChar & SP & + LT & v_sipUrl & GT; + }; + } + else + { + v_sipUrl := buildRaw_EscapedDelimiters_SipURL(contactHeader.contactBody.contactAddresses[i].addressField.addrSpecUnion); + v_resuChar := v_resuChar & v_sipUrl; + }; + + + + // SemicolonParam_List contactParams optional + if (ispresent(contactHeader.contactBody.contactAddresses[i].contactParams)) + { + v_resuChar:= v_resuChar & + buildRaw_SemicolonParam_List(contactHeader.contactBody.contactAddresses[i].contactParams); + } + }//end for + + return(v_resuChar); + + }//end buildRaw_EscapedDelimiters_ContactHeader + + function buildRaw_EscapedDelimiters_FromHeader(in From fromHeader) + runs on SipComponent return charstring + { + var charstring v_resuChar:= ""; + var charstring v_sipUrl:= ""; + + v_resuChar:="From:" & SP; + + // Field addressField(NameAddr) + + // AddrSpec addrSpec (SipUrl) + if (ischosen(fromHeader.addressField.nameAddr)) + { + v_sipUrl := buildRaw_EscapedDelimiters_SipURL(fromHeader.addressField.nameAddr.addrSpec); + // charstring displayName optional, + if (ispresent(fromHeader.addressField.nameAddr.displayName)) + { + v_resuChar := v_resuChar & fromHeader.addressField.nameAddr.displayName & SP & LT & v_sipUrl & GT; + } + else + { + v_resuChar := v_resuChar & SP & LT & v_sipUrl & GT; + }; + } + else + { + v_sipUrl := buildRaw_EscapedDelimiters_SipURL(fromHeader.addressField.addrSpecUnion); + v_resuChar := v_resuChar & v_sipUrl; + }; + + // SemicolonParam_List fromParams optional + if (ispresent(fromHeader.fromParams)) + { + v_resuChar:= v_resuChar & buildRaw_SemicolonParam_List(fromHeader.fromParams); + }; + + return(v_resuChar); + + } //end function buildRaw_EscapedDelimiters_FromHeader + + } // end group FieldOperations + + group CheckOperations + { + function checkExpiresContactAddresses + (in ContactAddress_List loc_ContactAddress_List,in template charstring loc_expires_value ) + runs on SipComponent + return boolean // true if all ContactAddresses contains expires parameter with loc_expires_value + { + var integer numberOfElements:= sizeof(loc_ContactAddress_List); + var integer numberOfParams, i:=0, j:=0; + var boolean faulty:=false, result:= false; + var SemicolonParam_List v_GenericParamList; + + while((i 2) + { + result := substr (loc_value, 1, lengthof (loc_value) - 2); + } + else + { + result :="" + } + return result; + } + + + //external function for generate a date from the actual date and time plus the parameter + // in seconds eg getSdate(30) will return a charstring containing the date and time of 30 + // seconds later + external function getDate(integer par_sec) return charstring; + // Return the current GMT date in format rfc1123-Date ex :Sat, 13 Nov 2010 23:30:02 GMT + external function getCurrentGMTDate() return charstring; + external function getCurrentTimeValue() return TimeValue; + external function getIpAddr(charstring host_name) return charstring; + // Return random charstring + external function rndStr() return charstring; + // Return the equivalent string in lower case + external function putInLowercase(charstring par_string) return charstring; + // External function to generate a digest response. + // References: + // * RFC 2617 HTTP Authentication: Basic and Digest Access + // Authentication, and + // * RFC 1321 The MD5 Message-Digest Algorithm + // See RFC 2617, chapter 5 Sample implementation, for example usage, as + // the signature of calculateDigestResponse is according to the example + // given in the RFC. + // + external function calculateDigestResponse( + charstring nonce, + charstring cnonce, + charstring user, + charstring realm, + charstring passwd, + charstring alg, + charstring nonceCount, + charstring method, + charstring qop, + charstring URI, + charstring HEntity) return charstring; + + } +} //end Group Functions + +group Behaviour +{ + // timers are local in each function, test step, or test case + group TestConfiguration + { + function initPort(SipComponent locComp, SipInterfaces loc_system) runs on SipComponent + { + if (PX_UDP) + { + initUDPport(locComp,loc_system); + } + else + { +/// To be done for TCP + }; + + } + function initUDPport(SipComponent locComp, + SipInterfaces loc_system) runs on SipComponent + { + map(locComp:SIPP, loc_system:UDP1); + sent_label := {host:=PX_IUT_IPADDR , portField:=PX_IUT_PORT}; + ets_label := {host:=PX_ETS_IPADDR, portField:=PX_ETS_PORT}; + } + + function initMTCPort() runs on SipComponent + { + if (PX_UDP) + { + initUDPMTCport(); + } + else + { +/// To be done for TCP + } + + } + function initUDPMTCport() runs on SipComponent + { + sent_label := {host:=PX_IUT_IPADDR, portField:=PX_IUT_PORT}; + ets_label := {host:=PX_ETS_IPADDR, portField:=PX_ETS_PORT}; + } + + function initPTCPort() runs on SipComponent + { + if (PX_UDP) + { + initUDPPTCport(); + } + else + { +/// To be done for TCP + } + + } + + function initPTC2Port() runs on SipComponent + { + if (PX_UDP) + { + initUDPPTC2port(); + } + else + { +/// To be done for TCP + } + } + + function initUDPPTCport() runs on SipComponent + { + sent_label := {host:=PX_IUT_IPADDR2, portField:=PX_IUT_PORT2}; + ets_label := {host:=PX_ETS_IPADDR2, portField:=PX_ETS_PORT2}; + + } //end initUDPPTCport + + function initUDPPTC2port() runs on SipComponent + { + sent_label := {host:=PX_IUT_IPADDR3, portField:=PX_IUT_PORT3}; + ets_label := {host:=PX_ETS_IPADDR3, portField:=PX_ETS_PORT3}; + } //end initUDPPTCport + + function initProxyPort() runs on SipComponent + { + if (PX_UDP) + { + initUDPProxyPort(); + } + else + { +/// To be done for TCP + } + + } + function initUDPProxyPort() runs on SipComponent + { + sent_label := {host:=PX_IUT_IPADDR, portField:=PX_IUT_PORT}; + ets_label := {host:=PX_PROXY_IPADDR, portField:=PX_PROXY_PORT}; + + } //end initUDPProxyPort + + //One MTC, one PTC : ptc + function initConfig1(SipComponent locComp1, SipComponent locComp2, + SipInterfaces loc_SipInterfaces ) runs on SipComponent + { + if (PX_UDP) + { + map(locComp1:SIPP, loc_SipInterfaces:UDP1); + map(locComp2:SIPP, loc_SipInterfaces:UDP2); + } + else + { +/// To be done for TCP + } + + // MTC and PTC communicate via cpA + connect(locComp1:cpA, locComp2:cpA); + + } + // One MTC two PTCs:ptc1, ptc2 + function initConfig2(SipComponent locComp1, SipComponent locComp2, + SipComponent locComp3, SipInterfaces loc_SipInterfaces ) runs on SipComponent + { + if (PX_UDP) + { + map(locComp1:SIPP, loc_SipInterfaces:UDP1); + map(locComp2:SIPP, loc_SipInterfaces:UDP2); + map(locComp3:SIPP, loc_SipInterfaces:UDP3); + } + else + { +/// To be done for TCP + } + + // MTC and PTC communicate via cpA(ptc1) and cpB(ptc2) + connect(locComp1:cpA, locComp2:cpA); + connect(locComp1:cpB, locComp3:cpB); + + } + }//end TestConfiguration + + group SynchronisationMtcPtcs + { + function synchroniseInitPtc() runs on SipComponent + { + TSync.start(PX_TSYNC); + cpA.send(CM_Init_OK); + alt + { + [] cpA.receive(CM_Init_OK) {TSync.stop} + [] TSync.timeout {setverdict(inconc); stop} + } + + } + function synchroniseInitPtc2() runs on SipComponent + { + TSync.start(PX_TSYNC); + cpB.send(CM_Init_OK); + alt + { + [] cpB.receive(CM_Init_OK) {TSync.stop} + [] TSync.timeout {setverdict(inconc); stop} + } + + } + function synchroniseTwoInitPtc() runs on SipComponent + { + TSync.start(PX_TSYNC); + cpA.send(CM_Init_OK); + cpB.send(CM_Init_OK); + + alt + { + [] cpA.receive(CM_Init_OK) + { + alt + { + [] cpB.receive(CM_Init_OK) {TSync.stop} + [] TSync.timeout {setverdict(inconc); stop} + } + } + [] cpB.receive(CM_Init_OK) + { + alt + { + [] cpA.receive(CM_Init_OK) {TSync.stop} + [] TSync.timeout {setverdict(inconc); stop} + } + } + [] TSync.timeout {setverdict(inconc); stop} + } + + } + + function synchroniseCheck() runs on SipComponent + { + TSync.start(PX_TSYNC); + alt{ + [] cpA.receive(CM_Check_Done) {TSync.stop} + [] TSync.timeout {setverdict(fail)} + } + } + function synchronisePtc2Check() runs on SipComponent + { + TSync.start(PX_TSYNC); + alt{ + [] cpB.receive(CM_Check_Done) {TSync.stop} + [] TSync.timeout {setverdict(fail)} + } + } + function synchroniseCheckDone() runs on SipComponent + { + cpA.send(CM_Check_Done); + } + }// end group SynchronisationMtcPtcs + + group Preambles + { + function initPTC(inout CSeq loc_CSeq_s) runs on SipComponent + { + initPTCPort(); + TGuard.start(PX_TGUARD); + ptcRegistration(loc_CSeq_s); + synchroniseInitPtc(); + } //end initPTC + + function initPTC1(inout CSeq loc_CSeq_s) runs on SipComponent + { + initPTCPort(); + TGuard.start(PX_TGUARD); + ptc1Registration(loc_CSeq_s); + synchroniseInitPtc(); + } //end initPTC1 + + function initPTC2(inout CSeq loc_CSeq_s) runs on SipComponent + { + initPTC2Port(); + TGuard.start(PX_TGUARD); + ptc2Registration(loc_CSeq_s); + synchroniseInitPtc2(); + } //end initPTC2 + + function initRDPTC(inout CSeq loc_CSeq_s) runs on SipComponent + { + initPTCPort(); + TGuard.start(PX_TGUARD); + ptcRDRegistration(loc_CSeq_s); + synchroniseInitPtc(); + } //end initPTC + + function initMTC(inout CSeq loc_CSeq_s) runs on SipComponent + { + initMTCphase1(loc_CSeq_s); + initMTCphase2() + } //end initMTC + + function initMTCphase1(inout CSeq loc_CSeq_s) runs on SipComponent + { + initMTCPort(); + TGuard.start(PX_TGUARD); + mtcRegistration(loc_CSeq_s); + } //end initMTC + + function initMTCphase2() runs on SipComponent + { + synchroniseInitPtc(); + } //end initMTC + + function initMTC2(inout CSeq loc_CSeq_s) runs on SipComponent + { + initMTCPort(); + TGuard.start(PX_TGUARD); + mtcRegistration(loc_CSeq_s); + synchroniseTwoInitPtc(); + + } //end initMTC + + function mtcRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + if (PX_PR_MTC_REGISTRATION) + { + setHeadersForRegister(loc_CSeq_s); +// tmp_params := +// { +// {id:=EXPIRES_ID, paramValue:=SHORT_REGISTRATION}, +// {id :="transport", paramValue:=PX_TRANSPORT } +// }; +// v_Contact.contactBody.contactAddresses[0].contactParams := tmp_params; + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_1(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via)); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + }; + } + + function ptcRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + if (PX_PR_PTC_REGISTRATION) + { + setHeadersPtcForRegister(loc_CSeq_s); + tmp_params := + { + {id:=EXPIRES_ID, paramValue:=SHORT_REGISTRATION}, + {id :="transport", paramValue:=PX_TRANSPORT } + }; + v_Contact.contactBody.contactAddresses[0].contactParams := tmp_params; + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_1(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via)); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + }; + } + function ptc1Registration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + setHeadersPtcForRegister(loc_CSeq_s); + // add priority + tmp_params := + { + {id:=EXPIRES_ID, paramValue:=SHORT_REGISTRATION}, + {id:="q", paramValue:="0.5"}, + {id:="transport", paramValue:=PX_TRANSPORT } + }; + v_Contact.contactBody.contactAddresses[0].contactParams := tmp_params; + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_1(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via)); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + } + + function ptc2Registration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + setHeadersPtc2ForRegister(loc_CSeq_s); + // add priority + tmp_params := + { + {id:=EXPIRES_ID, paramValue:=SHORT_REGISTRATION}, + {id:="q", paramValue:="0.5"}, + {id:="transport", paramValue:=PX_TRANSPORT } + }; + v_Contact.contactBody.contactAddresses[0].contactParams := tmp_params; + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_1(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via)); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + } + + function ptcRDRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + if (PX_PR_PTC_REGISTRATION) + { + tmp_params := + { + {id:=EXPIRES_ID, paramValue:=SHORT_REGISTRATION}, + {id :="transport", paramValue:=PX_TRANSPORT } + }; + v_Contact.contactBody.contactAddresses[0].contactParams := tmp_params; + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_1(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via)); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + }; + } + + function ptcRDMultiRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + if (PX_PR_PTC_REGISTRATION) + { + setHeadersRDPtcForRegister(loc_CSeq_s); + v_Contact := valueof(Contact_RD_Multi_s); + tmp_params := + { + {id:=EXPIRES_ID, paramValue:=SHORT_REGISTRATION}, + {id :="transport", paramValue:=PX_TRANSPORT } + }; + v_Contact.contactBody.contactAddresses[0].contactParams := tmp_params; + v_Contact.contactBody.contactAddresses[1].contactParams := tmp_params; + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, valueof(REGISTER_Request_s_1(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via))); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + }; + } + + function iUTRegistration() runs on SipComponent + { + var Request v_REGISTER_Request; + + action("Please REGISTER to your Home registrar"); + TWait.start(PX_TWAIT); + alt + { + // REGISTER message can be either received on multicast or unicast address + [] SIPP.receive(REGISTER_Request_r_2) -> value v_REGISTER_Request sender sent_label + { + TWait.stop; + + setHeadersOnReceiptOfRegister(v_REGISTER_Request); + + // Update contact list to set expiration of each contact to SHORT_REGISTRATION delay + updateContactAddress_List(v_Contact, SHORT_REGISTRATION); + // Get current Date in format rfc1123-Date + v_date := getCurrentGMTDate(); + // Send an Answer to the UA with a Date field + // and the updated contact list + SIPP.send(Response_Register_200_s_2(v_CallId, v_CSeq, v_From, v_To, v_Via, + v_Contact, v_date )) to sent_label + } + // Invalid Register + [] SIPP.receive(REGISTER_Request_r_1)-> value v_REGISTER_Request sender sent_label + { + all timer.stop; + setverdict(fail); + // Catch and prepare informations to answer + v_CallId := v_REGISTER_Request.msgHeader.callId; + v_CSeq := v_REGISTER_Request.msgHeader.cSeq; + v_From := v_REGISTER_Request.msgHeader.fromField; + v_To := v_REGISTER_Request.msgHeader.toField; + v_Via := v_REGISTER_Request.msgHeader.via; + // Send a 400 Bad Request answer and stop the test case + SIPP.send(Response_400_s_1(v_CallId, v_CSeq, v_From, v_To, + v_Via)) to sent_label; + + syncPort.send(m_syncClientStop); + stop + } + // Other messages are ignored + [] SIPP.receive + { + repeat; + } + // IUT is may be already registered + [] TWait.timeout {} + } + } // end UA Register + + function pRCallEstablished(inout CSeq loc_CSeq_s) runs on SipComponent + { + setHeadersPtcInvite(loc_CSeq_s); + SIPP.send(INVITE_Request_s_2(v_RequestUri, v_CallId, + loc_CSeq_s, v_From, v_To, v_Via)) to sent_label; + + awaitingPRInvite200OK(Response_INVITE_200_r_1(v_CallId, loc_CSeq_s),loc_CSeq_s); + sendACK(loc_CSeq_s); + } + + function uACallingState() runs on SipComponent + { + var Request v_INVITE_Request; + + // The UA may register itself before + iUTRegistration(); + + action("Please send INVITE"); + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (INVITE_Request_r_1) -> value v_INVITE_Request sender sent_label + { + TWait.stop; + setverdict(pass); + setHeadersOnReceiptOfInvite(v_INVITE_Request); + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + stop; + } + [] TWait.timeout + { + setverdict(inconc); + stop; + } + } + } //end CallingState + + function uACProceedingState() runs on SipComponent + { + uACallingState(); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; + } // end uACProceedingState + + function uACCompletedState(inout CSeq loc_CSeq_s) runs on SipComponent + { + uACallingState(); + //to reach completed state a 300-699 message is sent to the IUT + SIPP.send(Response_486_s_1(v_CallId, v_CSeq, //to reject the call + v_From, v_To, v_Via)) to sent_label; // sends UserBusy + + awaitingAckRequest(loc_CSeq_s); + + } // end uACCompletedState + + function uASProceedingState(inout CSeq loc_CSeq_s) runs on SipComponent + { + // The UA may register itself before + iUTRegistration(); + setHeadersIUTInvite(loc_CSeq_s); + SIPP.send(INVITE_Request_s_2(v_RequestUri, v_CallId, loc_CSeq_s, v_From, v_To, v_Via)) to sent_label; + } // end uASProceedingState + + function uASCompletedState(out Response loc_response, inout CSeq loc_CSeq_s) runs on SipComponent + { + // The UA may register itself before + iUTRegistration(); + setHeadersIUTInvite(loc_CSeq_s); + // Require header set to an Option not supported + SIPP.send(INVITE_Request_s_6(v_RequestUri, v_CallId, loc_CSeq_s, + v_From, v_To, v_Via)) to sent_label; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(Response_NonOK_Final_r_1(v_CallId,loc_CSeq_s)) -> value loc_response + sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, loc_response); + setverdict(pass); + } + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + repeat; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); + stop + } + [] TResp.timeout + { + setverdict(inconc); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); + stop + } + } + } // end uASCompletedState + + function uASConfirmedState(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + + uASCompletedState(v_Response, loc_CSeq_s); + sendACK(loc_CSeq_s); + + } // end uASConfirmedState + + function uACCallTerminated(inout CSeq loc_CSeq_s) runs on SipComponent + { + uACallingState(); + send200OKInvite(); + } // end uACCallTerminated + + function uACCallEstablished(inout CSeq loc_CSeq_s) runs on SipComponent + { + uACallingState(); + send200OKInvite(); + awaiting200OKAckRequest(loc_CSeq_s); + + } // end uACCallEstablished + + function uASSuccessState(inout CSeq loc_CSeq_s) runs on SipComponent + { + iUTRegistration(); // SIP preamble + + setHeadersIUTInvite(loc_CSeq_s); + SIPP.send(INVITE_Request_s_2(v_RequestUri, v_CallId, loc_CSeq_s, + v_From, v_To, v_Via)) to sent_label; + action("Please OFF HOOK"); + awaitingWithOpt1XX(Response_200_r_4(v_CallId,loc_CSeq_s), loc_CSeq_s); + + } // end uASSuccessState + + function uASEstablishedState(inout CSeq loc_CSeq_s) runs on SipComponent + { + uASSuccessState(loc_CSeq_s); // SIP preamble + send200OKACK(loc_CSeq_s); + + } // end uAEstablishedState + + } // end group Preambles + + group Postambles + { + function cancelCall(CallId currentCallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, Via loc_via) + runs on SipComponent + { + // This function is called to bring back the IUT in idle condition + // in case of errors or unexpected behaviour. + + // Sending of a CANCEL request with the same Cseq + v_ignore4xx := true; + loc_CSeq.method := "CANCEL"; + SIPP.send(CANCEL_Request_s_1(currentCallId, loc_CSeq, loc_From, loc_To, loc_reqHostPort, loc_via )) to sent_label; + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive (Response_1XX_r_1(currentCallId, loc_CSeq)) + { + repeat; + } + [] SIPP.receive (Response_200_r_1(currentCallId, loc_CSeq)) + { + TResp.stop; + } +// [] SIPP.receive +// { +// all timer.stop; +// stop +// } + [] TResp.timeout {stop} + } + } + + function cancelPRMtcCall() + runs on SipComponent + { + // This function is called to bring back the IUT in idle condition + // Sending of a CANCEL request with the same Cseq + + v_CSeq.method := "CANCEL"; + SIPP.send(CANCEL_Request_s_1(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via )) to sent_label; + } + + function rejectInvite(inout CSeq loc_CSeq_s) runs on SipComponent + { + SIPP.send(Response_486_s_1(v_CallId, v_CSeq, //to reject the call as a postamble + callee_From, callee_To, v_Via)) to sent_label; // sends UserBusy + awaitingAckRequest(loc_CSeq_s); + } + + function terminateUASCall(in Response loc_response, inout CSeq loc_CSeq_s) runs on SipComponent + { + // For 3XX-6XX Answer a ACK only has to be sent(call is rejected) + if (loc_response.statusLine.statusCode > 299) + { + sendACK(loc_CSeq_s); + return; + }; + + // For 2XX Answer a ACK and a BYE have to be sent + if (loc_response.statusLine.statusCode > 199) + { + send200OKACK(loc_CSeq_s); + terminateCall(v_CallId, loc_CSeq_s, caller_From, caller_To, v_reqHostPort, v_Route); + return; + }; + + // For 1XX a CANCEL has to be sent + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); + } + + function terminatePRMtcCall(in Response loc_response, inout CSeq loc_CSeq_s) runs on SipComponent + { + // For 3XX-6XX Answer a ACK only has to be sent(call is rejected) + if (loc_response.statusLine.statusCode > 299) + { + sendACK(loc_CSeq_s); + return; + }; + + // For 2XX Answer a ACK and a BYE have to be sent + if (loc_response.statusLine.statusCode > 199) + { + send200OKACK(loc_CSeq_s); + // Sending of a BYE request to release the call and expect a final response + sendBYE(v_CallId, loc_CSeq_s, caller_From, caller_To,v_reqHostPort,v_Route ); + return; + }; + + // For 1XX a CANCEL has to be sent + // Sending of a CANCEL request with the same Cseq + cancelPRMtcCall(); + } + + + function terminateCall(CallId currentCallId, inout CSeq loc_CSeq_s, From loc_From, + To loc_To, HostPort loc_reqHostPort, template Route loc_Route ) runs on SipComponent + { + // Sending of a BYE request to release the call and expect a final response + sendBYE(currentCallId, loc_CSeq_s, loc_From, loc_To,loc_reqHostPort,loc_Route ); + + if (PC_UA) + { + action("Please HANG UP"); + } + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive (Response_1XX_r_1(currentCallId, loc_CSeq_s)) + { + repeat; + } + [] SIPP.receive (Response_Final_r(currentCallId, loc_CSeq_s)) + { + TResp.stop; + } + [] TResp.timeout + { + stop + } + } + } // end function terminateCall + + // postamble function to remove registration + function removeRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + + setHeadersForRegister(loc_CSeq_s); + + v_Contact := + { + fieldName := CONTACT_E, + contactBody := {wildcard := "*" } + }; + + //new BranchId + tmp_params := v_Via.viaBody[0].viaParams; + tmp_params[0] := {id:=BRANCH_ID, paramValue:=BRANCH_COOKIE & getRndTag()}; + v_Via.viaBody[0].viaParams := tmp_params; + // New Tag for FROM + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From.fromParams := tmp_params; + + SIPP.send(REGISTER_Request_s_2(v_RequestUri, v_CallIdReg, loc_CSeq_s, v_Contact, + v_From, v_To, v_Via, "0" )) to sent_label; + + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_2(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via, "0")); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + } // end removeRegistration + + // postamble function to remove registration at PTC + function removePtcRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + + setHeadersPtcForRegister(loc_CSeq_s); + v_Contact := + { + fieldName := CONTACT_E, + contactBody := {wildcard := "*" } + }; + + SIPP.send(REGISTER_Request_s_2(v_RequestUri, v_CallIdReg, loc_CSeq_s, v_Contact, + v_From, v_To, v_Via, "0" )) to sent_label; + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + // Re-send request with Authorization header after + // receiving 401 Unauthorized response. + awaitingUnauthorizedResponse(loc_CSeq_s, REGISTER_Request_s_2(v_RequestUri, v_CallId, + loc_CSeq_s, v_Contact, v_From, v_To, v_Via, "0")); + } + else + { + awaitingOkResponse(loc_CSeq_s); + } + } // end removePtcRegistration + + function wait_end_ptc(SipComponent locComp) runs on SipComponent + { + // wait the end of PTC + alt + { + // Ignore other messages + [] SIPP.receive + { + repeat; + } + [] locComp.done {TGuard.stop} + [] TGuard.timeout + { + setverdict(inconc);stop + } + } + } // end wait_end_ptc + + function wait_end_Two_ptc(SipComponent locComp1, SipComponent locComp2 ) runs on SipComponent + { + var boolean end1, end2; + + end1 := false; + end2 := false; + + // wait the end of PTC + alt + { + // Ignore other messages + [] SIPP.receive + { + repeat; + } + [] locComp1.done + { + if (end1 and end2) + { + TGuard.stop; + stop; + }; + end1:=true; + repeat; + } + [] locComp2.done + { + if (end1 and end2) + { + TGuard.stop; + stop; + }; + end2:=true; + repeat; + } + [] TGuard.timeout + { + setverdict(inconc);stop + } + } + } // end wait_end_ptc + + } // end group Postambles + group CommonSubTrees + { + function askForOEBYE(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_BYE_Request; + + action("Please HANG UP"); + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive(BYE_Request_r_1(v_CallId)) -> value v_BYE_Request + { + TWait.stop; + setverdict(pass); + setHeadersOnReceiptOfBye(v_BYE_Request); + } + [] SIPP.receive + { + all timer.stop; + terminateCall(v_CallId, loc_CSeq_s, callee_From, callee_To, v_reqHostPort, v_Route); + setverdict(fail); + stop; + } + [] TWait.timeout + { + terminateCall(v_CallId, loc_CSeq_s, callee_From, callee_To, v_reqHostPort, v_Route); + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop; + } + } + } + + function havingSentARegister(out Request loc_REGISTER_Request) runs on SipComponent + { + + action("Please REGISTER"); + TWait.start(PX_TWAIT); + + // Wait For a REGISTER request(either on multicast or unicast address) including + // a Contact header field + alt + { + [] SIPP.receive (REGISTER_Request_r_2) -> value loc_REGISTER_Request sender sent_label + { + TWait.stop; + } + [] TWait.timeout {setverdict(inconc); stop} + } + + // Catch and prepare informations to answer + setHeadersOnReceiptOfRegister(loc_REGISTER_Request); + } + + // Function waiting for a 200 OK response of CANCEL request + function awaitingCANCELOkResponse(inout CSeq loc_CSeq_s) runs on SipComponent + { + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_200_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + setverdict(pass) + } + // Ignore answer to the INVITE + [] SIPP.receive + { + repeat; + } + [] TAck.timeout {setverdict(fail); stop} + } + } //end awaitingCANCELOkResponse + + + // Function waiting for a 200 OK response + function awaitingOkResponse(inout CSeq loc_CSeq_s) runs on SipComponent + { + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_200_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + setverdict(pass) + } + [] TAck.timeout {setverdict(fail); stop} + } + } //end awaitingOkResponse + + // Function waiting for a 200 OK response to a REGISTER request + function awaitingRegisterOkResponse(template Request loc_Request, in CallId loc_CallId, inout CSeq loc_CSeq_s, out Response loc_response) runs on SipComponent + { + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + var CommaParam_List v_challenge; + var Credentials v_Credentials; + var Response v_Response; + var Request v_Request := valueof(loc_Request); + + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_401_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + { + TAck.stop; + // resent the REGISTER message with Authorization header include + + // Extract challenge and calculate credentials for a response. + v_challenge := v_Response.msgHeader.wwwAuthenticate.challenge.digestCln; + v_Credentials := calculatecCredentials("REGISTER", v_challenge); + + // Increment CSeq sequence number of and add the credentials + // to the original saved REGEISTER message. + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + v_Request.msgHeader.cSeq.seqNumber := loc_CSeq_s.seqNumber; + v_Request.msgHeader.authorization.fieldName := AUTHORIZATION_E; + v_Request.msgHeader.authorization.body := v_Credentials; + + // Re-send the saved REGISTER with Authorization header + // included. + SIPP.send (v_Request) to sent_label; + } + [] SIPP.receive (Response_200_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + log ("Authorization was not requested as expected"); + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop + } + [] TAck.timeout {setverdict(inconc); + syncPort.send(m_syncClientStop); + stop} + } + + } + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_REGISTER_200_r_1(loc_CallId, loc_CSeq_s)) -> value loc_response + { + TAck.stop; + setverdict(pass) + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + syncPort.send(m_syncClientStop); + stop + } + [] TAck.timeout {setverdict(fail); + syncPort.send(m_syncClientStop); + stop} + } + } //end awaitingRegisterOkResponse + + function awaitingRegisterOkResponseRaw(in CallId loc_CallId, inout CSeq loc_CSeq_s) runs on SipComponent + { + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + var CommaParam_List v_challenge; + var Credentials v_Credentials; + var Response v_Response; + + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_401_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + { + TAck.stop; + // resent the REGISTER message with Authorization header include + + // Extract challenge and calculate credentials for a response. + v_challenge := v_Response.msgHeader.wwwAuthenticate.challenge.digestCln; + v_Credentials := calculatecCredentials("REGISTER", v_challenge); + + // Increment CSeq sequence number of and add the credentials + // to the original saved REGEISTER message. + loc_CSeq_s.method := "REGISTER"; + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + v_CSeq := loc_CSeq_s; + vRaw_CSeq:=buildRaw_CSeqHeader(v_CSeq); + + vRaw_Authorization := "Authorization: Digest " & buildRaw_CommaParam_List(v_Credentials.digestResponse); + + // Re-send the saved REGISTER with Authorization header + // included. + SIPP.send (Raw_REGISTER_Request_s_1(vRaw_RequestUri, vRaw_CallId, + vRaw_CSeq, vRaw_Contact, vRaw_From, vRaw_To, vRaw_Via, vRaw_Authorization)) to sent_label; + } + [] SIPP.receive (Response_200_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + log ("Authorization was not requested as expected"); + setverdict(inconc); + stop + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop + } + [] TAck.timeout {setverdict(inconc); + syncPort.send(m_syncClientStop); + stop} + } + + } + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_REGISTER_200_r_1(loc_CallId, loc_CSeq_s)) + { + TAck.stop; + setverdict(pass) + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + syncPort.send(m_syncClientStop); + stop + } + [] TAck.timeout {setverdict(fail); + syncPort.send(m_syncClientStop); + stop} + } + } //end awaitingOkResponse + + function awaitingResponse(in template Response loc_Response) runs on SipComponent + { + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (loc_Response) + { + TAck.stop; + setverdict(pass) + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + syncPort.send(m_syncClientStop); + stop + } + [] TAck.timeout {setverdict(fail); + syncPort.send(m_syncClientStop); + stop} + } + } //end awaitingResponse + + function contactRegistration(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + + setHeadersForRegister(loc_CSeq_s); + SIPP.send(REGISTER_Request_s_1(v_RequestUri, v_CallIdReg, loc_CSeq_s, v_Contact, v_From, v_To, v_Via)) + to sent_label; + awaitingRegisterOkResponse(REGISTER_Request_s_1(v_RequestUri, v_CallIdReg, loc_CSeq_s, v_Contact, v_From, v_To, v_Via), v_CallId, loc_CSeq_s, v_Response); + } + + function establishACall(inout CSeq loc_CSeq_s) runs on SipComponent + { + setHeadersPtcInvite(loc_CSeq_s); + + SIPP.send(INVITE_Request_s_1(v_RequestUri, v_CallId, loc_CSeq_s, + v_From, v_To, v_Via, v_Contact)) to sent_label; + + awaitingPRInvite200OK(Response_INVITE_200_r_1(v_CallId, loc_CSeq_s),loc_CSeq_s); + send200OKACK(loc_CSeq_s); + } + + function awaitingInviteRequest() runs on SipComponent + { + var Request v_INVITE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (INVITE_Request_r_1) -> value v_INVITE_Request sender sent_label + { + TWait.stop; + v_ignore_invite := true; + v_first_recv:= true; // communication has started + setHeadersOnReceiptOfInvite(v_INVITE_Request); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop + } + [] TWait.timeout + { + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingInviteRequest + + function awaitingFirstAnyFinalResp(out Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + var boolean v_1XX_received := false; + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + v_1XX_received := true; + repeat; + } + [] SIPP.receive(Response_Final_r(v_CallId, loc_CSeq_s)) -> value loc_Response + sender sent_label + { + TResp.stop; + setverdict(pass); + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + if (v_1XX_received) + { cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via)}; + syncPort.send(m_syncClientStop); + stop + } + [] TResp.timeout + { + setverdict(inconc); + if (v_1XX_received) + { cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via)}; + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingFirstAnyFinalResp + + function awaitingFirstAnyResp(out Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + var boolean v_100_received := false; + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(Response_100_r_1(v_CallId, loc_CSeq_s)) + { + v_100_received := true; + repeat + } + [] SIPP.receive(Response_Any_r_2(v_CallId, loc_CSeq_s)) -> value loc_Response + sender sent_label + { + TResp.stop; + setverdict(pass); + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + if (v_100_received) + { cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via)}; + syncPort.send(m_syncClientStop); + stop + } + [] TResp.timeout + { + setverdict(inconc); + if (v_100_received) + { cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via)}; + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingFirstAnyResp + + function awaitingAckRequest(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_ACK_Request; + TAck.start(PX_TACK); + + alt + { + [] SIPP.receive(ACK_Request_r_1(v_CallId)) -> value v_ACK_Request + { + TAck.stop; + } + // INVITE may be repeated and shall be ignored + []SIPP.receive(INVITE_Request_r_1) + { + repeat; + } + // Ignore othe message + [] SIPP.receive + { + repeat; + } + [] TAck.timeout + { + setverdict(inconc); + syncPort.send(m_syncClientStop); + stop; + } + } + } //end awaitingAckRequest + + function awaiting200OKAckRequest(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_ACK_Request; + TAck.start(PX_TACK); + + alt + { + [] SIPP.receive(ACK_Request_r_1(v_CallId)) -> value v_ACK_Request + { + TAck.stop; + setverdict(pass); + } + // INVITE may be repeated and shall be ignored + []SIPP.receive(INVITE_Request_r_1) + { + repeat; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + rejectInvite(loc_CSeq_s); + syncPort.send(m_syncClientStop); + stop; + } + [] TAck.timeout + { + setverdict(inconc); + rejectInvite(loc_CSeq_s); + syncPort.send(m_syncClientStop); + stop; + } + } + } //end awaiting200OKAckRequest + + function awaitingAdditionalResponse(in template Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response) -> value v_Response + sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + setverdict(pass); + } + // Ignore previous Response + [] SIPP.receive + { + repeat; + } + [] TResp.timeout + { + setverdict(inconc); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingAdditionalResponse + + function awaitingNoAckRequest(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_ACK_Request; + TAck.start(PX_TACK); + + alt + { + [] SIPP.receive(ACK_Request_r_1(v_CallId)) -> value v_ACK_Request + { + TAck.stop; + setverdict(fail); + rejectInvite(loc_CSeq_s); + syncPort.send(m_syncClientStop); + stop; + } + // INVITE may be repeated and shall be ignored + []SIPP.receive(INVITE_Request_r_1) + { + repeat; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + rejectInvite(loc_CSeq_s); + syncPort.send(m_syncClientStop); + stop; + } + [] TAck.timeout + { + setverdict(pass); + } + } + } //end awaitingNoAckRequest + + function awaitingWithOpt1XX(in template Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response) -> value v_Response + sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + setverdict(pass); + } + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + repeat; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); + syncPort.send(m_syncClientStop); + stop + } + [] TResp.timeout + { + setverdict(inconc); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingWithOpt1XX + + function awaitingPRPtcCheck(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + var boolean v_1XX_received := false; + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + v_1XX_received := true; + repeat; + } + [] SIPP.receive(Response_Final_r(v_CallId, loc_CSeq_s))-> value v_Response + sender sent_label + { + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + terminatePRMtcCall(v_Response, loc_CSeq_s); + TResp.start(PX_TRESP); + alt + { + [] cpA.receive(CM_Check_Done) + { + setverdict(pass); + TResp.stop; + } + [] TResp.timeout + { + cpA.send(CM_Stop); + } + } + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + if (v_1XX_received) + { cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via)}; + } + } + } //end awaitingPRPtcCheck + + function awaitingPRTwoPtcCheck(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + var boolean check1, check2; + check1:=false; + check2:=false; + + TResp.start(PX_TRESP); + alt + { + [] cpA.receive(CM_Check_Done) + { + setverdict(pass); + if (check1 and check2) + { + TResp.stop; + stop; + }; + check1 := true; + repeat; + } + [] cpB.receive(CM_Check_Done) + { + setverdict(pass); + if (check1 and check2) + { + TResp.stop; + stop; + }; + check2 := true; + repeat; + } + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + repeat; + } + [] SIPP.receive(Response_Final_r(v_CallId, loc_CSeq_s))-> value v_Response + sender sent_label + { + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + terminatePRMtcCall(v_Response, loc_CSeq_s); + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + cpB.send(CM_Stop); + cancelPRMtcCall(); + } + } + + } //end awaitingPRTwoPtcCheck + + function awaitingPRCANCELPtcCheck(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + TResp.start(PX_TRESP); + alt + { + [] cpA.receive(CM_Check_Done) + { + setverdict(pass); + TResp.stop; + } + // Ignore received message + [] SIPP.receive + { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + } + } + + } //end awaitingPRCANCELPtcCheck + + function awaitingPRResponse(in template Response loc_Response) runs on SipComponent + { + var Response v_Response; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response)-> value v_Response sender sent_label + { + TResp.stop; + setverdict(pass); + } + // Ignore other Response(may be INVITE repeated response) + [] SIPP.receive(Response_Any_r_1)-> value v_Response + sender sent_label + { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + } + } + } + + function awaitingPRInviteFinal(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(Response_NonOK_Final_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + sender sent_label + { + TResp.stop; + setverdict(pass); + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + sendACK(loc_CSeq_s); + } + [] SIPP.receive(Response_200_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + send200OKACK(loc_CSeq_s); + setverdict(fail); + cpA.send(CM_Stop); + terminatePRMtcCall(v_Response, loc_CSeq_s); + } + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + cancelPRMtcCall(); + } + } + } + + function awaitingPRInviteNon200OK(in template Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response) -> value v_Response + sender sent_label + { + TResp.stop; + setverdict(pass); + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + sendACK(loc_CSeq_s); + synchroniseCheckDone(); + } + [] SIPP.receive(Response_200_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + send200OKACK(loc_CSeq_s); + setverdict(fail); + cpA.send(CM_Stop); + terminatePRMtcCall(v_Response, loc_CSeq_s); + } + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + repeat; + } + // Invalid Response + [] SIPP.receive(Response_Any_r_1)-> value v_Response + sender sent_label + { + all timer.stop; + setverdict(fail); + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + cpA.send(CM_Stop); + terminatePRMtcCall(v_Response, loc_CSeq_s); + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + cancelPRMtcCall(); + } + } + } + + function awaitingPRInvite200OK(in template Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Response v_Response; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response) -> value v_Response + { + TResp.stop; + setverdict(pass); + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + } + [] SIPP.receive(Response_1XX_r_1(v_CallId, loc_CSeq_s)) + { + repeat; + } + // Invalid Response + [] SIPP.receive(Response_Any_r_1)-> value v_Response + sender sent_label + { + all timer.stop; + setverdict(fail); + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + cpA.send(CM_Stop); + terminatePRMtcCall(v_Response, loc_CSeq_s); + stop; + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + cancelPRMtcCall(); + stop; + } + } + } //end awaitingPRInvite200OK + + function awaitingRespPtcCheck(inout CSeq loc_CSeq_s) runs on SipComponent + { + TResp.start(PX_TRESP); + alt + { + [] cpA.receive(CM_Check_Done) + { + setverdict(pass); + TResp.stop; + } + // Ignore received message + [] SIPP.receive + { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + } + } + + } //end awaitingRespPtcCheck + + // Function waiting for a 401 Unauthorized response + function awaitingUnauthorizedResponse(inout CSeq loc_CSeq_s, + template Request loc_Request) runs on SipComponent + { + var CommaParam_List v_challenge; + var Credentials v_Credentials; + var Response v_Response; + var Request v_Request := valueof(loc_Request); + + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_401_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + { + TAck.stop; + // resent the REGISTER message with Authorization header include + + // Extract challenge and calculate credentials for a response. + v_challenge := v_Response.msgHeader.wwwAuthenticate.challenge.digestCln; + v_Credentials := calculatecCredentials("REGISTER", v_challenge); + + // Increment CSeq sequence number of and add the credentials + // to the original saved REGEISTER message. + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + v_Request.msgHeader.cSeq.seqNumber := loc_CSeq_s.seqNumber; + v_Request.msgHeader.authorization.fieldName := AUTHORIZATION_E; + v_Request.msgHeader.authorization.body := v_Credentials; + + // Re-send the saved REGISTER with Authorization header + // included. + SIPP.send (loc_Request) to sent_label; + + awaitingOkResponse(loc_CSeq_s); + } + [] SIPP.receive (Response_200_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + log ("Authorization was not requested as expected"); + setverdict(inconc) + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + stop + } + [] TAck.timeout {setverdict(inconc); stop} + } + } // end of awaitingUnauthorizedResponse + + function checkNoFurtherMessages() runs on SipComponent + { + // Check that IUT doesn't send any further message + TNoAct.start(PX_TNOACT); + + alt + { + [] TNoAct.timeout {setverdict(pass)} + } + } + + function checkNoMessage(float time_value) runs on SipComponent + { + // Check that IUT doesn't send any further message + TDelay.start(time_value); + + alt + { + [] TDelay.timeout {setverdict(pass)} + } + } + + function checkCompletedState(in template Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + // Testable only with UDP + { + if (PX_TRANSPORT == "UDP") + { + // Wait for repetition of final response in TH=60*T1 + repeatRespInTime(loc_Response, loc_CSeq_s, 60.0*PX_T1); + } + else + { + setverdict(pass); + } + } + + function checkProceedingState() runs on SipComponent + { // CK: it is not clear how to check Proceeding State! + // FA : with SMTP for futur SIP version, not testable yet + setverdict(pass); + } + + function checkInitialState() runs on SipComponent + { // CK: it is not clear how to check Initial State + // FA : with SMTP for futur SIP version, not testable yet + setverdict(pass); + } + + function checkServerConfirmedState() runs on SipComponent + { // Confirmed state can be check when an unreliable transport is used by checking that + // the IUT does not repeat its last Response + // otherwise it is untestable + + if (PX_TRANSPORT == "UDP") + { + TNoAct.start(PX_TNOACT); + alt + { + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + } + [] TNoAct.timeout + { + setverdict(pass); + } + } + } + else + { + setverdict(pass); + } + } + + function checkUACTerminatedState(inout CSeq loc_CSeq_s) runs on SipComponent + { + // Terminated state can be sheck when a call has been established by sending a BYE + // and receiveing a 481 answer if supported(that is a should requirement) + // otherwise it is untestable + + if (PC_SHOULD) + { + sendBYE(v_CallId, loc_CSeq_s, callee_From, callee_To,v_reqHostPort,v_Route ); + + TAck.start(PX_TACK); + + if (PC_UA) + { + action("Please HANG UP"); + } + + alt + { + [] SIPP.receive(Response_481_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + setverdict(pass); + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + } + [] TAck.timeout + { + setverdict(fail); + } + } + } + else + { + setverdict(pass); + } + } + + function checkServerTerminatedState(inout CSeq loc_CSeq_s) runs on SipComponent + { // Terminated state can be check by sending an ACK + // and receiving a 481 answer if supported(that is a should requirement) + // otherwise it is untestable + + if (PC_SHOULD) + { + sendACK(loc_CSeq_s); + + TAck.start(PX_TACK); + + alt + { + [] SIPP.receive(Response_481_r_1(v_CallId, loc_CSeq_s)) + { + TAck.stop; + setverdict(pass); + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + } + [] TAck.timeout + { + setverdict(fail); + } + } + } + else + { + setverdict(pass); + } + } + + function checkNumberOfBinding(in CallId loc_CallId, inout CSeq loc_CSeq_s, integer nb_of_binding) runs on SipComponent + { + var Response v_Response; + var SemicolonParam_List tmp_params; + + // incremented CSeq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + //new BranchId + tmp_params := v_Via.viaBody[0].viaParams; + tmp_params[0].id:=BRANCH_ID; + tmp_params[0].paramValue:=BRANCH_COOKIE & getRndTag(); + v_Via.viaBody[0].viaParams := tmp_params; + + // New Tag for FROM + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From.fromParams := tmp_params; + + // REGISTER without contact + SIPP.send(REGISTER_Request_s_3(v_RequestUri, loc_CallId, loc_CSeq_s, v_From, v_To, v_Via)) + to sent_label; + + awaitingRegisterOkResponse(REGISTER_Request_s_3(v_RequestUri, loc_CallId, loc_CSeq_s, v_From, v_To, v_Via), loc_CallId, loc_CSeq_s, v_Response); + + if (ispresent(v_Response.msgHeader.contact)) + { + var Contact tmp_contact := v_Response.msgHeader.contact; + if (sizeof(tmp_contact.contactBody.contactAddresses)==nb_of_binding) + { + setverdict(pass) + } + else + { + setverdict(fail) + } + } else + { + setverdict(fail) + } + + } + + function checkRemoveBinding(in CallId loc_CallId, inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + var Request v_Request; + // incremented CSeq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + //new BranchId + tmp_params := v_Via.viaBody[0].viaParams; + tmp_params[0].id:=BRANCH_ID; + tmp_params[0].paramValue:=BRANCH_COOKIE & getRndTag(); + v_Via.viaBody[0].viaParams := tmp_params; + // New Tag for FROM + tmp_params := {{id:=TAG_ID, paramValue:=getRndTag()}} + v_From.fromParams := tmp_params; + + // REGISTER without contact + v_Request := valueof(REGISTER_Request_s_3(v_RequestUri, loc_CallId, loc_CSeq_s, v_From, v_To, v_Via)); + SIPP.send(v_Request) to sent_label; + + if (PX_REGISTRATION_AUTHENTICATION_ENABLED) + { + var CommaParam_List v_challenge; + var Credentials v_Credentials; + var Response v_Response; + + TAck.start(PX_TACK); + alt + { + [] SIPP.receive (Response_401_r_1(v_CallId, loc_CSeq_s)) -> value v_Response + { + TAck.stop; + // resent the REGISTER message with Authorization header include + + // Extract challenge and calculate credentials for a response. + v_challenge := v_Response.msgHeader.wwwAuthenticate.challenge.digestCln; + v_Credentials := calculatecCredentials("REGISTER", v_challenge); + + // Increment CSeq sequence number of and add the credentials + // to the original saved REGEISTER message. + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + v_Request.msgHeader.cSeq.seqNumber := loc_CSeq_s.seqNumber; + v_Request.msgHeader.authorization.fieldName := AUTHORIZATION_E; + v_Request.msgHeader.authorization.body := v_Credentials; + + // Re-send the saved REGISTER with Authorization header + // included. + SIPP.send (v_Request) to sent_label; + } + [] SIPP.receive (Response_200_r_2(v_CallId, loc_CSeq_s)) + { + TAck.stop; + log ("Authorization was not requested as expected"); + setverdict(inconc); + stop + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + stop + } + [] TAck.timeout {setverdict(inconc); stop} + } + + } + + // An empty list contact is expected in 200 OK + awaitingResponse(Response_REGISTER_200_r_2(loc_CallId, loc_CSeq_s)); + } + + function repeatOEBYE(inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_BYE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive(BYE_Request_r_1(v_CallId)) -> value v_BYE_Request + { + TWait.stop; + setverdict(pass); + setHeadersOnReceiptOfBye(v_BYE_Request); + } + [] SIPP.receive + { + all timer.stop; + terminateCall(v_CallId, loc_CSeq_s, callee_From, callee_To, v_reqHostPort, v_Route); + setverdict(fail); + stop; + } + [] TWait.timeout + { + terminateCall(v_CallId, loc_CSeq_s, callee_From, callee_To, v_reqHostPort, v_Route); + setverdict(inconc); + stop; + } + } + } + + function repeatINVITE(in CallId loc_CallId, inout CSeq loc_CSeq_s, in float time_value) runs on SipComponent + { + var Request v_INVITE_Request; + + TRept.start(time_value); + alt + { + []SIPP.receive(INVITE_Request_r_10(v_CallId, v_CSeq)) -> value v_INVITE_Request sender sent_label + { + TRept.stop; + setverdict(pass); + setHeadersOnReceiptOfInvite(v_INVITE_Request); + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + //to reject the call as a postamble: sends UserBusy + rejectInvite(loc_CSeq_s); + stop; + } + [] TRept.timeout + { + setverdict(fail); + //to reject the call as a postamble: sends UserBusy + rejectInvite(loc_CSeq_s); + stop; + } + } + + } + function repeatLastResponse(inout Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response) + { + TResp.stop; + setverdict(pass); + } + // New last Response + [] SIPP.receive(Response_Any_r_2(v_CallId, loc_CSeq_s)) -> value loc_Response + sender sent_label + { + setHeadersOnReceiptOfResponse(loc_CSeq_s, loc_Response); + repeat; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + terminateUASCall(loc_Response, loc_CSeq_s); + stop + } + [] TResp.timeout + { + setverdict(inconc); + terminateUASCall(loc_Response, loc_CSeq_s); + stop + } + } + + } + function repeatPRLastResponse(inout Response loc_Response, inout CSeq loc_CSeq_s) runs on SipComponent + { + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response) + { + TResp.stop; + setverdict(pass); + } + // New last Response + [] SIPP.receive(Response_Any_r_2(v_CallId, loc_CSeq_s)) -> value loc_Response + sender sent_label + { + setHeadersOnReceiptOfResponse(loc_CSeq_s, loc_Response); + repeat; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + terminatePRMtcCall(loc_Response, loc_CSeq_s); + stop + } + [] TResp.timeout + { + setverdict(inconc); + terminatePRMtcCall(loc_Response, loc_CSeq_s); + stop + } + } + + } + function repeatRespInTime(in template Response loc_Response, inout CSeq loc_CSeq_s, in float delay) runs on SipComponent + { + var Response v_Response; + TResp.start(delay); + alt + { + [] SIPP.receive(loc_Response) -> value v_Response + { + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + TResp.stop; + setverdict(pass); + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + sendACK(loc_CSeq_s); + stop + } + [] TResp.timeout + { + setverdict(fail); + sendACK(loc_CSeq_s); + stop + } + } + } + + function repeatINVITE200OK(inout CSeq loc_CSeq_s, in float delay) runs on SipComponent + { + TResp.start(delay); + alt + { + [] SIPP.receive(Response_200_r_4(v_CallId,loc_CSeq_s)) + { + TResp.stop; + setverdict(pass); + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + send200OKACK(loc_CSeq_s); + terminateCall(v_CallId, loc_CSeq_s, caller_From, caller_To, v_reqHostPort, v_Route); + stop + } + [] TResp.timeout + { + setverdict(fail); + send200OKACK(loc_CSeq_s); + terminateCall(v_CallId, loc_CSeq_s, caller_From, caller_To, v_reqHostPort, v_Route); + stop + } + } + + } + + function notRepeatBYE( in float time_value) runs on SipComponent + { + var Request v_BYE_Request; + + TWait.start(time_value); + + alt + { + []SIPP.receive(BYE_Request_r_1(v_CallId)) -> value v_BYE_Request + { + TWait.stop; + setverdict(fail); + setHeadersOnReceiptOfBye(v_BYE_Request); + send200OK(); + stop; + } + [] SIPP.receive + { + //IGNORE OTHER MESSAGES + repeat; + } + [] TWait.timeout + { + setverdict(pass); + } + } + + } + + function notRepeatINVITE(in CallId loc_CallId, inout CSeq loc_CSeq_s, in float time_value) runs on SipComponent + { + var Request v_INVITE_Request; + + TRept.start(time_value); + alt + { + []SIPP.receive(INVITE_Request_r_10(v_CallId, v_CSeq)) -> value v_INVITE_Request sender sent_label + { + TRept.stop; + setverdict(fail); + setHeadersOnReceiptOfInvite(v_INVITE_Request); + //to reject the call as a postamble: sends UserBusy + rejectInvite(loc_CSeq_s); + stop; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + //to reject the call as a postamble: sends UserBusy + rejectInvite(loc_CSeq_s); + stop; + } + [] TRept.timeout + { + setverdict(pass); + } + } + } + function notRepeatPRRespInTime(in Response loc_Response, inout CSeq loc_CSeq_s, in float delay) runs on SipComponent + { + TResp.start(delay); + alt + { + [] SIPP.receive(loc_Response) + { + TResp.stop; + setverdict(fail); + terminatePRMtcCall(loc_Response, loc_CSeq_s); + stop + } + // Ignored + [] SIPP.receive + { + repeat + } + [] TResp.timeout + { + setverdict(pass); + } + } + } + + function notRepeatRespInTime(in Response loc_Response, inout CSeq loc_CSeq_s, in float delay) runs on SipComponent + { + TResp.start(delay); + alt + { + [] SIPP.receive(loc_Response) + { + TResp.stop; + setverdict(fail); + terminateUASCall(loc_Response, loc_CSeq_s); + stop + } + // Ignored + [] SIPP.receive + { + repeat + } + [] TResp.timeout + { + setverdict(pass); + } + } + } + + function notRepeatINVITE200OK(inout CSeq loc_CSeq_s, in float delay) runs on SipComponent + { + TResp.start(delay); + alt + { + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + send200OKACK(loc_CSeq_s); + terminateCall(v_CallId, loc_CSeq_s, caller_From, caller_To, v_reqHostPort, v_Route); + stop + } + [] TResp.timeout + { + setverdict(pass); + } + } + + } + + + function send200OKInvite() runs on SipComponent + { + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_Invite_WithRoute_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_RecordRoute)) to sent_label; + } + else + { + SIPP.send(Response_200_Invite_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + }; + } + + function send200OK() runs on SipComponent + { + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_withRoute_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via, v_RecordRoute)) to sent_label; + } + else + { + SIPP.send(Response_200_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; + }; + } + + + + function sendACK(inout CSeq loc_CSeq_s) runs on SipComponent + { + // Same Cseq number + loc_CSeq_s.method := "ACK"; + + //Computation of the Request URI + buildRequestURI(v_reqHostPort, v_To); + + // No update of VIA branch after NON 200 OK response according to 8.1.1.7 [1] + // A Route has to be put only if a Route was present in the INVITE + + if (v_BOO_Route) + { + SIPP.send(ACK_Request_s_2(v_reqHostPort, v_CallId, loc_CSeq_s,v_From, v_To, v_Via, v_Route)) to sent_label; + } + else + { + SIPP.send(ACK_Request_s_1(v_reqHostPort, v_CallId, loc_CSeq_s,v_From, v_To, v_Via)) to sent_label; + } + } + + function send200OKACK(inout CSeq loc_CSeq_s) runs on SipComponent + { + var SemicolonParam_List tmp_params; + // Same Cseq number + loc_CSeq_s.method := "ACK"; + + //Computation of the Request URI + buildRequestURI(v_reqHostPort, v_To); + + //Update of Via Branch + v_Branch := BRANCH_COOKIE & getRndTag(); + tmp_params := v_Via.viaBody[0].viaParams; + tmp_params[0].paramValue := v_Branch; + v_Via.viaBody[0].viaParams := tmp_params; + if (v_BOO_Route) + { + SIPP.send(ACK_Request_s_2(v_reqHostPort, v_CallId, loc_CSeq_s,v_From, v_To, v_Via, v_Route)) to sent_label; + } + else + { + SIPP.send(ACK_Request_s_1(v_reqHostPort, v_CallId, loc_CSeq_s,v_From, v_To, v_Via)) to sent_label; + } + } + + function sendBYE(CallId currentCallId, inout CSeq loc_CSeq_s, From loc_From, + To loc_To, HostPort loc_reqHostPort, template Route loc_Route ) runs on SipComponent + { + + // New Cseq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "BYE"; + + //Computation of the Request URI + buildRequestURI(loc_reqHostPort, loc_To); + + //New BRANCH_ID + v_Branch:=BRANCH_COOKIE & getRndTag(); + v_Via := + { + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + if (v_BOO_Route) + { + SIPP.send(BYE_Request_s_1(currentCallId, loc_CSeq_s, loc_From, loc_To, loc_reqHostPort, loc_Route, v_Branch )) to sent_label; + } + else + { + SIPP.send(BYE_Request_noroute_s_1(currentCallId, loc_CSeq_s, loc_From, loc_To, loc_reqHostPort, v_Branch )) to sent_label; + } + + }; + + function waitForTimeout( in float time_value) runs on SipComponent + { + + TWait.start(time_value); + alt + { + //Ignore all received message + [] SIPP.receive + { + repeat; + } + [] TWait.timeout + { + setverdict(pass); + } + } + } + + } //end group CommonSubTrees + group PtcSubTrees + { + function acceptPTCACall(inout CSeq loc_CSeq_s) runs on SipComponent + { + awaitingInviteRequest(); + // accept the call + sendPTC200OKInvite(); + + TResp.start(PX_TRESP); + + alt + { + [] SIPP.receive (ACK_Request_r_1(v_CallId)) + { + TResp.stop; + } + // INVITE may be repeated and shall be ignored + []SIPP.receive (INVITE_Request_r_1) + { + repeat; + } + [] SIPP.receive + { + all timer.stop; + removePtcRegistration(loc_CSeq_s); + setverdict(inconc); + stop + } + [] TResp.timeout + { + setverdict(inconc); + removePtcRegistration(loc_CSeq_s); + stop + } + } + } + + function acceptPTCReleaseCall() runs on SipComponent + { + var Request v_BYE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (BYE_Request_r_1(v_CallId)) -> value v_BYE_Request sender sent_label + { + TWait.stop; + setHeadersOnReceiptOfBye(v_BYE_Request); + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_PTC_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, v_RecordRoute )) to sent_label; + } + else + { + SIPP.send(Response_200_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via)) to sent_label; + }; + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + terminatePTCCall(v_CallId, v_CSeq, callee_From, callee_To, v_reqHostPort, v_Route); + stop + } + [] TWait.timeout + { + terminatePTCCall(v_CallId, v_CSeq, callee_From, callee_To, v_reqHostPort, v_Route); + setverdict(inconc);stop + } + } + } //end acceptPTCReleaseCall + + function repeatPTCBYE() runs on SipComponent + { + var Request v_BYE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive(BYE_Request_r_1(v_CallId)) -> value v_BYE_Request + { + TWait.stop; + setverdict(pass); + setHeadersOnReceiptOfBye(v_BYE_Request); + } + [] SIPP.receive + { + all timer.stop; + send200OK(); + setverdict(fail); + stop; + } + [] TWait.timeout + { + all timer.stop; + send200OK(); + setverdict(fail); + stop; + } + } + } + + function sendPTCAnsw(in integer loc_status, in charstring loc_reasonPhrase) runs on SipComponent + { + if (v_BOO_RecordRoute) + { + SIPP.send(Response_XXX_with_route_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, v_RecordRoute, loc_status, loc_reasonPhrase)) to sent_label; + } + else + { + SIPP.send(Response_XXX_noroute_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, loc_status, loc_reasonPhrase)) to sent_label; + }; + + } + + function terminatePTCCall(CallId currentCallId, inout CSeq loc_CSeq_s, From loc_From, + To loc_To, HostPort loc_reqHostPort, template Route loc_Route ) runs on SipComponent + { + + // Sending of a BYE request to release the call and expect a final response + sendBYE(currentCallId, loc_CSeq_s, loc_From, loc_To,loc_reqHostPort,loc_Route ); + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive (Response_Final_r(currentCallId, loc_CSeq_s)) + { + TResp.stop; + removePtcRegistration(loc_CSeq_s); + stop; + } + [] SIPP.receive + { + // Ignore all other messages + repeat; + } + [] TResp.timeout + { + removePtcRegistration(loc_CSeq_s); + stop + } + } + } // end function terminatePTCCall + + function sendPTC200OKInvite() runs on SipComponent + { + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_PTCInvite_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_RecordRoute )) to sent_label; + } + else + { + SIPP.send(Response_200_PTCInvite_noroute_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via)) to sent_label; + }; + + } + + function sendPTC2XXOKInvite(in integer loc_status, in charstring loc_reasonPhrase) runs on SipComponent + { + if (v_BOO_RecordRoute) + { + SIPP.send(Response_2XX_PTCInvite_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, v_RecordRoute, loc_status, loc_reasonPhrase )) to sent_label; + } + else + { + SIPP.send(Response_2XX_PTCInvite_noroute_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, loc_status, loc_reasonPhrase)) to sent_label; + }; + + } + function tryingPTCBYE() runs on SipComponent + { + var Request v_INVITE_Request; + var Request v_BYE_Request; + + alt + { + [] SIPP.receive(INVITE_Request_r_1) -> value v_INVITE_Request sender sent_label + { + setHeadersOnReceiptOfInvite(v_INVITE_Request); + //Accept the Call + sendPTC200OKInvite(); + setverdict(pass); + repeat; + } + [] SIPP.receive (ACK_Request_r_1(v_CallId)) + { + repeat; + } + []SIPP.receive(BYE_Request_r_1(v_CallId)) -> value v_BYE_Request sender sent_label + { + setHeadersOnReceiptOfBye(v_BYE_Request); + } + [] cpA.receive(CM_Stop) + { + all timer.stop; + stop; + } + // Ignore other messages + [] SIPP.receive + { + repeat; + } + [] TGuard.timeout + { + setverdict(fail); + stop; + } + } + } + + }//end PtcSubTrees + + group DefaultsTestStep + { + altstep defaultRGRT() runs on SipComponent + { + var Request v_defRGRT_REGISTER_Request; + + [] any timer.timeout {setverdict(fail); stop} + // Invalid Register + [] SIPP.receive(REGISTER_Request_r_1)-> value v_defRGRT_REGISTER_Request sender sent_label + { + all timer.stop; + setverdict(fail); + // Catch and prepare informations to answer + v_def_CallId := v_defRGRT_REGISTER_Request.msgHeader.callId; + v_def_CSeq := v_defRGRT_REGISTER_Request.msgHeader.cSeq; + v_def_From := v_defRGRT_REGISTER_Request.msgHeader.fromField; + v_def_To := v_defRGRT_REGISTER_Request.msgHeader.toField; + v_def_Via := v_defRGRT_REGISTER_Request.msgHeader.via; + // Send a 400 Bad Request answer and stop the test case + SIPP.send(Response_400_s_1(v_def_CallId, v_def_CSeq, v_def_From, v_def_To, + v_def_Via)) to sent_label; + + stop + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + + altstep defaultRGRR() runs on SipComponent + { + [] any timer.timeout {setverdict(fail); stop} + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + altstep defaultCCOE() runs on SipComponent + { + var Request v_defCCOE_REGISTER_Request; + [] any timer.timeout {setverdict(fail); stop} + // REGISTER message can be either received on multicast or unicast address + [] SIPP.receive(REGISTER_Request_r_2) -> value v_defCCOE_REGISTER_Request sender sent_label + { + setDefHeadersOnReceiptOfRegister(v_defCCOE_REGISTER_Request); + // Update contact list to set expiration of each contact to SHORT_REGISTRATION delay + updateContactAddress_List(v_def_Contact, SHORT_REGISTRATION); + // Get current Date in format rfc1123-Date + v_date := getCurrentGMTDate(); + //Send an Answer to the UA with a Date field + // and the updated contact list + SIPP.send(Response_Register_200_s_2(v_def_CallId, v_def_CSeq, v_def_From, v_def_To, v_def_Via, + v_def_Contact, v_date )) to sent_label + } + // Invalid Register(that cannot be answered) + [] SIPP.receive(REGISTER_Request_r_1)-> value v_defCCOE_REGISTER_Request sender sent_label + { + all timer.stop; + setverdict(fail); + // Catch and prepare informations to answer + v_def_CallId := v_defCCOE_REGISTER_Request.msgHeader.callId; + v_def_CSeq := v_defCCOE_REGISTER_Request.msgHeader.cSeq; + v_def_From := v_defCCOE_REGISTER_Request.msgHeader.fromField; + v_def_To := v_defCCOE_REGISTER_Request.msgHeader.toField; + v_def_Via := v_defCCOE_REGISTER_Request.msgHeader.via; + // Send a 400 Bad Request answer and stop the test case + SIPP.send(Response_400_s_1(v_def_CallId, v_def_CSeq, v_def_From, v_def_To, + v_def_Via)) to sent_label; + + stop + } + + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + altstep defaultCCTE() runs on SipComponent + { + var Request v_defCCTE_REGISTER_Request; + + [] any timer.timeout {setverdict(fail); stop} + [] SIPP.receive (REGISTER_Request_r_2) -> value v_defCCTE_REGISTER_Request sender sent_label + { + setDefHeadersOnReceiptOfRegister(v_defCCTE_REGISTER_Request); + // Update contact list to set expiration of each contact to SHORT_REGISTRATION delay + updateContactAddress_List(v_def_Contact, SHORT_REGISTRATION); + // Get current Date in format rfc1123-Date + v_date := getCurrentGMTDate(); + //Send an Answer to the UA with a Date field + // and the updated contact list + + SIPP.send(Response_Register_200_s_2(v_def_CallId, v_def_CSeq, v_def_From, v_def_To, v_def_Via, + v_def_Contact, v_date )) to sent_label + } + // Invalid Register(that cannot be answered) + [] SIPP.receive(REGISTER_Request_r_1)-> value v_defCCTE_REGISTER_Request sender sent_label + { + all timer.stop; + setverdict(fail); + // Catch and prepare informations to answer + v_def_CallId := v_defCCTE_REGISTER_Request.msgHeader.callId; + v_def_CSeq := v_defCCTE_REGISTER_Request.msgHeader.cSeq; + v_def_From := v_defCCTE_REGISTER_Request.msgHeader.fromField; + v_def_To := v_defCCTE_REGISTER_Request.msgHeader.toField; + v_def_Via := v_defCCTE_REGISTER_Request.msgHeader.via; + // Send a 400 Bad Request answer and stop the test case + SIPP.send(Response_400_s_1(v_def_CallId, v_def_CSeq, v_def_From, v_def_To, + v_def_Via)) to sent_label; + + stop + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + altstep defaultCCPR() runs on SipComponent + { + [] any timer.timeout + { + cpA.send(CM_Stop); + setverdict(fail); stop + } + [] SIPP.receive + { + cpA.send(CM_Stop); + all timer.stop; + setverdict(fail); + stop + } + } + + altstep defaultCCPR2() runs on SipComponent + { + [] any timer.timeout + { + cpA.send(CM_Stop); + cpB.send(CM_Stop); + setverdict(fail); stop + } + [] SIPP.receive + { + cpA.send(CM_Stop); + cpB.send(CM_Stop); + all timer.stop; + setverdict(fail); + stop + } + } + + altstep defaultCCRD() runs on SipComponent + { + [] any timer.timeout + { + setverdict(fail); + cpA.send(CM_Stop); + cpA.send(CM_Stop); + stop + } + [] SIPP.receive + { + cpA.send(CM_Stop); + all timer.stop; + setverdict(fail); + stop + } + } + + altstep defaultCCPRPTC() runs on SipComponent + { + [] any timer.timeout {setverdict(fail); stop} + [] cpA.receive(CM_Stop) + { + all timer.stop; + setverdict(fail); + stop; + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + altstep defaultCCPRPTC2() runs on SipComponent + { + [] any timer.timeout {setverdict(fail); stop} + [] cpB.receive(CM_Stop) + { + all timer.stop; + setverdict(fail); + stop; + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + + altstep defaultCCRDPTC() runs on SipComponent + { + [] any timer.timeout {setverdict(fail); stop} + [] cpA.receive(CM_Stop) + { + all timer.stop; + setverdict(fail); + stop; + } + [] SIPP.receive + { + all timer.stop; + setverdict(fail); + stop + } + } + } // end group defaults + +} + +group SipIsupFunctions { + +group FieldOperations + { + // Function to set sent headers for PRACK + function setHeadersForPRACK(inout CSeq loc_CSeq_s) runs on SipComponent + { + // New Cseq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "PRACK"; + v_CSeq := loc_CSeq_s; // set expectation for response + + + //Computation of the Request URI + buildRequestURI(v_reqHostPort, v_To); + + //New BRANCH_ID + v_Branch:=BRANCH_COOKIE & getRndTag(); + v_Via := + { + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + } + + // Function to set sent headers for UPDATE + function setHeadersForUPDATE(inout CSeq loc_CSeq_s) runs on SipComponent + { + // New Cseq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "UPDATE"; + v_CSeq := loc_CSeq_s; // set expectation for response + + + //Computation of the Request URI + buildRequestURI(v_reqHostPort, v_To); + + //New BRANCH_ID + v_Branch:=BRANCH_COOKIE & getRndTag(); + v_Via := + { + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + } + + /* + * @desc set headers for a "200 OK" confirmation of a PRACK message + * + */ + function f_setHeadersOnReceiptOfPRACK(Request loc_PRACK_Request) + runs on SipComponent + { + v_CSeq := loc_PRACK_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_PRACK_Request.msgHeader.cSeq; + v_From := loc_PRACK_Request.msgHeader.fromField; + v_To := loc_PRACK_Request.msgHeader.toField; + v_Via := loc_PRACK_Request.msgHeader.via; + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + + // Catch route + v_BOO_RecordRoute:=false; + + if (ispresent(loc_PRACK_Request.msgHeader.recordRoute)) + { + v_BOO_RecordRoute:=true; + v_RecordRoute := loc_PRACK_Request.msgHeader.recordRoute; + } + } // end f_setHeadersOnReceiptOfPRACK + + /* + * @desc set headers for a "200 OK" confirmation of a UPDATE message + * + */ + function f_setHeadersOnReceiptOfUPDATE(Request loc_UPDATE_Request) + runs on SipComponent + { + v_CSeq := loc_UPDATE_Request.msgHeader.cSeq; + v_IUT_CSeq := loc_UPDATE_Request.msgHeader.cSeq; + v_From := loc_UPDATE_Request.msgHeader.fromField; + v_To := loc_UPDATE_Request.msgHeader.toField; + v_Via := loc_UPDATE_Request.msgHeader.via; + // update sent_label according to received via header field + getViaReplyAddr(v_Via.viaBody, sent_label); + // Catch route + v_BOO_RecordRoute:=false; + + if (ispresent(loc_UPDATE_Request.msgHeader.recordRoute)) + { + v_BOO_RecordRoute:=true; + v_RecordRoute := loc_UPDATE_Request.msgHeader.recordRoute; + } + } // end f_setHeadersOnReceiptOfUPDATE + + // STF348 function that returns Host and port for registrar + function f_set_REGISTRAR_hostPort(charstring loc_REGISTRAR_DOMAIN, integer loc_REGISTRAR_PORT) + runs on SipComponent return HostPort + { + if (loc_REGISTRAR_PORT<0) + { + return{host:=loc_REGISTRAR_DOMAIN, portField:=omit}; + } else + { + return{host:=loc_REGISTRAR_DOMAIN, portField:=loc_REGISTRAR_PORT}; + } + } // end f_set_REGISTRAR_hostPort + + } // end group field operations + + + + group SipIsup_SIP_GeneralSteps + { + // Wait for timeout + function f_Sip_Wait(float timeoutValue) runs on SipComponent + { + var default v_def := activate (a_Sip_catchSyncStop()); + TResp.start(timeoutValue); + alt + { + [] TResp.timeout{}; + } + } + + }// end group SipIsup_ISUP_GeneralSteps + + /* + * @desc This default handles receiving of the sync server + * STOP message and calls the RT HUT postamble. + */ + altstep a_Sip_catchSyncStop() + runs on SipComponent { + + [] syncPort.receive(m_syncServerStop){ + tc_sync.stop ; + log("**** a_Sip_catchSyncStop: Test component received STOP signal from MTC - going to IDLE state **** "); + //TODO implement postamble + log("**** a_Sip_catchSyncStop: TEST COMPONENT NOW STOPPING ITSELF! **** ") ; + setverdict(inconc); + stop ; + } + } + + group new_Behaviour + { + /* + * @desc Await CANCEl + * set headers and send Ack message + */ + function f_awaitingCANCEL(in template Request loc_Request, inout CSeq loc_CSeq_s, in boolean doAck, out Request v_Cancel) runs on SipComponent + { + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Request)-> value v_Cancel sender sent_label + { + TResp.stop; + if (doAck) {setHeadersOnReceiptOfCancel(v_Cancel); send200OK();}; + } + // Ignore other Request + [] SIPP.receive { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + } // end f_awaitingCANCEL_sendReply + + /* + * @desc Await CANCEl + * set headers and send Ack message + */ + function f_awaitingCANCEL_sendReply(in template Request loc_Request, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_Cancel; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Request)-> value v_Cancel sender sent_label + { + TResp.stop; + var CSeq v_CSeq_local := v_CSeq; + setHeadersOnReceiptOfCancel(v_Cancel); + //Answer to the CANCEL + send200OK(); + + //STF348 + SIPP.send(Response_487_s_1 (v_CallId, v_CSeq_local, caller_From, caller_To, v_Via)) to sent_label; + awaitingAckRequest(loc_CSeq_s); + setverdict(pass); + } + // Ignore other Request + [] SIPP.receive { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + } // end f_awaitingCANCEL_sendReply + + /* + * @desc Await CANCEl + * set headers and send Ack message + * this is a combination of acceptPTCReleaseCall and f_awaitingCANCEL_sendReply + */ + function f_awaitingCANCELorBYE_sendReply + (in template Request loc_CANCEL, in template Request loc_BYE, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_Cancel, v_BYE_Request; + + TResp.start(PX_TRESP); + alt + { + []SIPP.receive (loc_BYE) -> value v_BYE_Request sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfBye(v_BYE_Request); + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_PTC_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, v_RecordRoute )) to sent_label; + } + else + { + SIPP.send(Response_200_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via)) to sent_label; + }; + } + [] SIPP.receive(loc_CANCEL)-> value v_Cancel sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfCancel(v_Cancel); + //Answer to the CANCEL + send200OK(); + } + // Ignore other Request + [] SIPP.receive { + repeat; + } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + } // end f_awaitingCANCELorBYE_sendReply + + /* + * @desc Await BYE + * set headers and send Ack message + */ + function f_awaitingBYE_sendReply + (in template Request loc_BYE, inout CSeq loc_CSeq_s) runs on SipComponent + { + var Request v_Cancel, v_BYE_Request; + + TResp.start(PX_TRESP); + alt + { + []SIPP.receive (loc_BYE) -> value v_BYE_Request sender sent_label + { + TResp.stop; + v_ignore_bye:= true; + setHeadersOnReceiptOfBye(v_BYE_Request); + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_PTC_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via, v_RecordRoute )) to sent_label; + } + else + { + SIPP.send(Response_200_s_1(v_CallId, v_CSeq, + v_From, v_To, v_Via)) to sent_label; + }; + } + // Ignore other Request + [] SIPP.receive { + repeat; + } + [] TResp.timeout + { + setverdict(fail); +// cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); +// f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + } + } // end f_awaitingCANCELorBYE_sendReply + + /* + * @desc Await Response (e.g. 4xx) + * set headers and send Ack message if 3rd parameter is "true" + * (derived from function awaitingPRResponse and awaitingPRInviteNon200OK) + */ + function f_awaitingResponse_andAck(in template Response loc_Response, inout CSeq loc_CSeq_s, in boolean doAck) runs on SipComponent + { + var Response v_Response; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(loc_Response)-> value v_Response sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + if (doAck) {sendACK(loc_CSeq_s);}; + setverdict(pass); + } + // Ignore other repeated INVITE + [] SIPP.receive(INVITE_Request_r_1)-> + sender sent_label + { + repeat; + } + [] TResp.timeout + { + setverdict(fail); +// f_cancelCall_cause(); + f_terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort); + + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + } // end f_awaitingResponse_andAck + + /* + * @desc Await 180 with A-law PCMA + * Check that u-law PCMA is not included + * Await 200 OK INVITE + * + * + */ + function f_Recv180_200(charstring loc_PCM) runs on SipComponent + { +// var Response v_Response; + var FncRetCode v_ret; + if (loc_PCM==" ") {f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false);}; + if (loc_PCM=="A") {f_awaitingRespons_but100_andAck(Response_180_r_3a(v_CallId, v_CSeq),v_CSeq,false);}; + if (loc_PCM=="U") {f_awaitingRespons_but100_andAck(Response_180_r_3u(v_CallId, v_CSeq),v_CSeq,false);}; + // SDP -> v_Body + if ((loc_PCM=="A") and match(v_Body,Inc_PCMA_PCMU) or // if PCMA: PCMU should not be included + (loc_PCM=="U") and match(v_Body,Inc_PCMU_PCMA)) // if PCMU: PCMA should not be included + {v_ret := e_error; + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + v_Route); + f_setVerdictPostamble(v_ret); + }; + + f_awaitingResponse_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + v_ignore200OKinv:=true; + // setHeadersOnReceiptOfResponse(v_CSeq, v_Response); + + + } // end of f_Recv180_200 + + /* f_Recv180_200_SDP + * @desc Awaits any 180 and a specified string in the SDP body of the 200 + */ + function f_Recv180_200_SDP(charstring p_TC, template charstring p_SDP) runs on SipComponent + { + var FncRetCode v_ret; + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_SDP (v_CallId, v_CSeq, p_SDP),v_CSeq, true); + v_ignore200OKinv:=true; + // SDP -> v_Body + if ( + (p_TC=="A" and (match(v_Body,Inc_PCMA_PCMU) or match(v_Body,Inc_PCMU))) // if PCMA: PCMU shall not be included + or + (p_TC=="U" and match(v_Body,Inc_PCMA)) // if PCMU: PCMA shall not be included + or + (p_TC=="101_027" and (match(v_Body,Inc_PCMU_PCMA) or match(v_Body,Inc_PCMU))) // if PCMA: PCMU shall not be included + or + (p_TC=="101_031" and not (not match(v_Body,Inc_H261) or match(v_Body,Inc_RejectH261))) // H261 shall be rejected or absent + ) + + {v_ret := e_error; + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + valueof(Route_l_1)); + f_setVerdictPostamble(v_ret); + }; + } // end of f_Recv180_200_SDP + + /* + * @desc Await 183 + * + */ + function f_Recv183(charstring loc_PCM) runs on SipComponent + { + var FncRetCode v_ret; + +// if (loc_PCM=="A") {f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, ?),v_CSeq,false);}; + if (loc_PCM=="A") {f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMA),v_CSeq,false);}; + if (loc_PCM=="U") {f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU),v_CSeq,false);}; + // SDP -> v_Body + if ((loc_PCM=="A") and match(v_Body,Inc_PCMA_PCMU) or // if PCMA: PCMU should not be included + (loc_PCM=="U") and match(v_Body,Inc_PCMU_PCMA)) // if PCMU: PCMA should not be included + { + v_ret := e_error; + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + valueof(Route_l_1)); + f_setVerdictPostamble(v_ret); + }; + + } // end of f_Recv183_A_notU + /* + * @desc Await 183 with A-law PCMA + * Check that u-law PCMA is not included + * + * note-axr: function not needed anymore + * + */ + function f_Recv183_A_prefU() runs on SipComponent + { + var FncRetCode v_ret; + + f_awaitingResponse_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU_PCMA),v_CSeq,false); + } // end of f_Recv183_A_prefU + + + /* + * @desc Send 200 OK + * + * derived from original send200OKInvite function + */ + function f_send200OKInvite(inout CallId loc_CallId, inout CSeq loc_CSeq) runs on SipComponent + { + if (v_BOO_RecordRoute) + { + SIPP.send(Response_200_Invite_WithRoute_s_1(loc_CallId, loc_CSeq, + caller_From, caller_To, v_Via, v_RecordRoute)) to sent_label; + awaitingAckRequest(loc_CSeq); + } + else + { + SIPP.send(Response_200_Invite_s_1(loc_CallId, loc_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + awaitingAckRequest(loc_CSeq); + }; + } + + /* + * @desc Send BYE with a cause parameter + * + * derived from original sendBYE function that omits the cause parameter + * the cause in the BYE is due to a PIXIT parameter PX_BYE_CAUSE + */ + function f_sendBYE_cause(CallId currentCallId, inout CSeq loc_CSeq_s, From loc_From, + To loc_To, HostPort loc_reqHostPort, template Route loc_Route ) runs on SipComponent + { + + // New Cseq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "BYE"; + + //Computation of the Request URI + buildRequestURI(loc_reqHostPort, loc_To); + + //New BRANCH_ID + v_Branch:=BRANCH_COOKIE & getRndTag(); + v_Via := + { + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + if (v_BOO_Route) + { + SIPP.send(BYE_Request_cause_s_1(currentCallId, loc_CSeq_s, loc_From, loc_To, loc_reqHostPort, loc_Route, v_Branch )) to sent_label; + } + else + { + SIPP.send(BYE_Request_cause_noroute_s_1(currentCallId, loc_CSeq_s, loc_From, loc_To, loc_reqHostPort, v_Branch )) to sent_label; + } + + }; + + /* + * @desc Send BYE with a cause parameter + * + * derived from original f_sendBYE_noroute_cause function + * but without route parameter + */ + function f_sendBYE_noroute_cause(CallId currentCallId, inout CSeq loc_CSeq_s, From loc_From, + To loc_To, HostPort loc_reqHostPort) runs on SipComponent + { + + // New Cseq + loc_CSeq_s.seqNumber := loc_CSeq_s.seqNumber + 1; + loc_CSeq_s.method := "BYE"; + + //Computation of the Request URI + buildRequestURI(loc_reqHostPort, loc_To); + + //New BRANCH_ID + v_Branch:=BRANCH_COOKIE & getRndTag(); + v_Via := + { + fieldName := VIA_E, + viaBody := {valueof(ViaBody_ETS_IPADDR(v_Branch))} + }; + + SIPP.send(BYE_Request_cause_noroute_s_1(currentCallId, loc_CSeq_s, loc_From, loc_To, loc_reqHostPort, v_Branch )) to sent_label; + + }; + + /* + * @desc Send BYE with a cause parameter + * + * derived from original cancelCall function that omits the cause parameter + * the cause in the CANCEL is due to a PIXIT parameter PX_BYE_CAUSE + */ + function f_cancelCall_cause() + runs on SipComponent + { + // This function is called to bring back the IUT in idle condition + // Sending of a CANCEL request with the same Cseq + v_ignore4xx := true; + v_CSeq.method := "CANCEL"; + SIPP.send(CANCEL_Request_s_cause_1(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via )) to sent_label; + // f_awaitingResponse_andAck(Response_487_r_1(v_CallId, v_CSeq),v_CSeq,true); + } + + + /* + * @desc Send PRACK message + * Check that u-law PCMA is not included + * Await corresponding 200 OK + */ + function f_SendRespPRACK() runs on SipComponent + { + var FncRetCode v_ret; + + setHeadersForPRACK(v_CSeq); + // note: SUT may send final response before receiving PRACK + // PRACK includes a generated answer + SIPP + .send (PRACK_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + v_RAck, + PX_SDPBODY2 // should not include attribute a=conf + )) to sent_label; + + // Note: local resource reservation may start + // get 200 OK PRACK + f_awaitingResponse_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + + } // end of f_SendRespPRACK + /* + * @desc await PRACK message + * reply with 200 OK + */ + function f_awaitingPRACK_sendReply() runs on SipComponent + { + var FncRetCode v_ret; + var Request v_Prack; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(PRACK_Request_r_1(v_CallId))-> value v_Prack sender sent_label + { + TResp.stop; + f_setHeadersOnReceiptOfPRACK(v_Prack); + //Answer to the PRACK + send200OK(); + } +// // Ignore other Request +// [] SIPP.receive { +// repeat; +// } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + + } // end of f_awaitingPRACK_sendReply + + /* + * @desc Send UPDATE message + * Await corresponding 200 OK + */ + function f_SendRespUPDATE() runs on SipComponent + { + var FncRetCode v_ret; + + setHeadersForUPDATE(v_CSeq); + SIPP + .send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY3 // should not include attribute a=conf + )) to sent_label; + + // get 200 OK UPDATE + f_awaitingResponse_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + + } // end of f_SendRespUPDATE + + /* + * @desc await UPDATE message + * reply with 200 OK + */ + function f_awaitingUPDATE_sendReply() runs on SipComponent + { + var FncRetCode v_ret; + var Request v_Update; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(UPDATE_Request_r_1(v_CallId))-> value v_Update sender sent_label + { + TResp.stop; + f_setHeadersOnReceiptOfUPDATE(v_Update); + //Answer to the UPDATE + send200OK(); + } +// // Ignore other Request +// [] SIPP.receive { +// repeat; +// } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + + } // end of f_awaitingUPDATE_sendReply + + /* + * @desc await UPDATE message + * reply with 200 OK + */ + function f_awaitingUPDATE(in boolean loc_reply) runs on SipComponent + { + var FncRetCode v_ret; + var Request v_Update; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(UPDATE_Request_r_1(v_CallId))-> value v_Update sender sent_label + { + TResp.stop; + f_setHeadersOnReceiptOfUPDATE(v_Update); + //Answer to the UPDATE + if (loc_reply) {send200OK();}; + } +// // Ignore other Request +// [] SIPP.receive { +// repeat; +// } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + stop + } + } + + } // end of f_awaitingUPDATE + + +// /* +// * @desc send 487 on INVITE +// * await ACK +// * derived from function rejectInvite +// */ +// function f_rejectInvite_with487(inout CSeq loc_CSeq_s) runs on SipComponent +// { +// if (v_BOO_RecordRoute){ +// SIPP.send(Response_487_s_2(v_CallId, loc_CSeq_s, //to reject the call as a postamble +// callee_From, callee_To, v_Via, v_RecordRoute)) to sent_label; // sends RequestTerminated +// }else{ +// SIPP.send(Response_487_s_1(v_CallId, loc_CSeq_s, //to reject the call as a postamble +// callee_From, callee_To, v_Via)) to sent_label; // sends RequestTerminated +// }; +// awaitingAckRequest(loc_CSeq_s); +// } + + /* + * @desc send 487 on INVITE + * await ACK + * derived from function rejectInvite + */ + function f_rejectInvite_with487(in boolean loc_BOO_RecordRoute, inout CSeq loc_CSeq_s) runs on SipComponent + { + if (loc_BOO_RecordRoute){ + SIPP.send(Response_487_s_2(v_CallId, loc_CSeq_s, //to reject the call as a postamble + callee_From, callee_To, v_Via, v_RecordRoute)) to sent_label; // sends RequestTerminated + }else{ + SIPP.send(Response_487_s_1(v_CallId, loc_CSeq_s, //to reject the call as a postamble + callee_From, callee_To, v_Via)) to sent_label; // sends RequestTerminated + }; + awaitingAckRequest(loc_CSeq_s); + } + + //@desc Ident to awaitingInviteRequest with the excepting that + // INVITE_Request_r_3 is used. + function awaitingInviteRequest_withSDPOffer() runs on SipComponent + { + var Request v_INVITE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (INVITE_Request_r_3) -> value v_INVITE_Request sender sent_label + { + TWait.stop; + v_ignore_invite := true; + v_first_recv:= true; // communication has started + setHeadersOnReceiptOfInvite(v_INVITE_Request); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + } + [] SIPP.receive + { + all timer.stop; + if (v_first_recv) {cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via);} // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + [] TWait.timeout + { + setverdict(inconc); + // cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingInviteRequest_withSDPOffer + + //@desc Ident to awaitingInviteRequest with the excepting that + // INVITE_Request_r_3 is used. + function awaitingInviteRequest_withSDPOffer_no100() runs on SipComponent + { + var Request v_INVITE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (INVITE_Request_r_3) -> value v_INVITE_Request sender sent_label + { + TWait.stop; + v_ignore_invite := true; + v_first_recv:= true; // communication has started + setHeadersOnReceiptOfInvite(v_INVITE_Request); + // SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + } + [] SIPP.receive + { + all timer.stop; + if (v_first_recv) {cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via);} // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + [] TWait.timeout + { + setverdict(inconc); + // cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingInviteRequest_withSDPOffer + + //@desc Ident to awaitingInviteRequest with the excepting that + // INVITE_Request_r_2 is used. + function awaitingInviteRequest_toField(template To loc_to) runs on SipComponent + { + var Request v_INVITE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (INVITE_Request_r_To(loc_to)) + -> value v_INVITE_Request sender sent_label + { + TWait.stop; + v_ignore_invite := true; + v_first_recv:= true; // communication has started + setHeadersOnReceiptOfInvite(v_INVITE_Request); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + } + [] SIPP.receive + { + all timer.stop; + if (v_first_recv) {cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via);} // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + [] TWait.timeout + { + setverdict(inconc); + // cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingInviteRequest_toField + + //@desc Ident to awaitingInviteRequest with the excepting that + // expected INVITE message is a parameter. + function f_awaitingInviteRequest(in template Request loc_Request) runs on SipComponent + { + var Request v_INVITE_Request; + + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (loc_Request) -> value v_INVITE_Request sender sent_label + { + TWait.stop; + v_ignore_invite := true; + setHeadersOnReceiptOfInvite(v_INVITE_Request); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + } + [] TWait.timeout + { + setverdict(inconc); + // cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + } + } //end awaitingInviteRequest_toField + + /* + * @desc Await Response (e.g. 4xx) + * set headers and send Ack message if 3rd parameter is "true" + * (derived from function awaitingPRResponse and awaitingPRInviteNon200OK) + */ + function f_awaitingRespons_but100_andAck(in template Response loc_Response, inout CSeq loc_CSeq_s, in boolean doAck) runs on SipComponent + { + var Response v_Response; + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive(Response_100_r_1(?, ?))-> value v_Response sender sent_label + { + repeat; + } + [] SIPP.receive(loc_Response)-> value v_Response sender sent_label + { + TResp.stop; + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + if (doAck) {sendACK(loc_CSeq_s);}; + v_ignore500:= true; + setverdict(pass); + } + // Ignore other repeated INVITE + [] SIPP.receive(INVITE_Request_r_1)-> + sender sent_label + { + repeat; + } + + + // ignore 181 if flag is set, 181 is sent in case of call diversion functionality + [] SIPP.receive(Response_1XX_r(StatusLine181, v_CallId, loc_CSeq_s)) -> sender sent_label + { + repeat; + } + +// ignore 183 if flag is set, 183 is sent to allow announcements to UE + [v_ignore183==true] SIPP.receive(Response_183_r_1(v_CallId, loc_CSeq_s)) -> sender sent_label + { + repeat; + } + +// acknowledge 487 if flag is set, 487 is used to end announcements to UE which started with the 183 +// [v_ignore183==true] SIPP.receive(Response_487_r_1(v_CallId, ?))-> value v_Response sender sent_label +// { +// setHeadersOnReceiptOfResponse(v_Response.msgHeader.cSeq, v_Response); +// sendACK(v_Response.msgHeader.cSeq); +// repeat +// } + + // other Response + [] SIPP.receive(Response_Any_r_1)-> value v_Response + sender sent_label + { + if (v_Response.statusLine.statusCode>199) {setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + sendACK(loc_CSeq_s);} + else{cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle();} + setverdict(fail); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + //v_ignore4xx := true; + stop + } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + } + } // end f_awaitingResponse_andAck + + /* + * @desc Await Response (e.g. 4xx) + * set headers and send Ack message if 3rd parameter is "true" + * (derived from function awaitingPRResponse and awaitingPRInviteNon200OK) + */ + function f_awaitingRespons_flextimer_but100_andAck(in template Response loc_Response, inout CSeq loc_CSeq_s, in boolean doAck, float timerval) runs on SipComponent + { + var Response v_Response; + + TResp.start(timerval); + alt + { + [] SIPP.receive(Response_100_r_1(?,?))-> value v_Response sender sent_label + { + repeat; + } + [] SIPP.receive(loc_Response)-> value v_Response sender sent_label + { + TResp.stop; + v_ignore484:= true; // ignore repeated 484 + setHeadersOnReceiptOfResponse(loc_CSeq_s, v_Response); + if (doAck) {sendACK(loc_CSeq_s);}; + setverdict(pass); + v_ignore484:= false; // do not ignore repeated 484 + } + // Ignore other repeated INVITE + [] SIPP.receive(INVITE_Request_r_1)-> + sender sent_label + { + repeat; + } +// ignore 183 if flag is set, 183 is sent to allow announcements to UE + [v_ignore183==true] SIPP.receive(Response_183_r_1(v_CallId, loc_CSeq_s)) -> sender sent_label + { + repeat; + } + + // other Response + [] SIPP.receive(Response_Any_r_1)-> value v_Response + sender sent_label + { + setverdict(fail); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + syncPort.send(m_syncClientStop); + stop + } + [] TResp.timeout + { + setverdict(fail); + cancelCall(v_CallId, loc_CSeq_s, v_From, v_Cancel_To, v_reqHostPort, v_Via); // f_cancelCall_cause(); + f_awaitSUTidle(); + syncPort.send(m_syncClientStop); + stop + } + } + } // end f_awaitingResponse_andAck + + /* + * @desc Allow retransmissions + * dedicated retransmitted messages are ignored + */ + function f_allowRetransmission(in template Response loc_Response) runs on SipComponent + { + TRept.start(PX_T4); + alt + { + [] SIPP.receive(loc_Response) -> sender sent_label + { + TRept.stop; + setverdict(pass); + } + [] TRept.timeout + { + setverdict(pass); + } + } + } // end f_allowRetransmission + + + /* + * @desc check the presence of conversation at SIP side + * + */ + function f_check_Conversation() runs on SipComponent + { + var boolean v_result; + var charstring v_question := "confirm if conversation at SIP port"; + + if (PX_SIP_CheckConversation) { + opPort.call(s_SIP_conversation:{v_question, -}) + {[] opPort.getreply(s_SIP_conversation:{-, true}) {} + [] opPort.getreply(s_SIP_conversation:{-, false}) + {all timer.stop; + setverdict(fail); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop;} + } + } + +// f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); // Note: implemented in test bodies + + return + } // end of f_check_Conversation + + /* + * @desc check the presence of conversation at SIP side + * + */ + function f_check_Ringing() runs on SipComponent + { + var boolean v_result; + var charstring v_question := "confirm if ringing at SIP port"; + + if (PX_SIP_CheckRinging) { + opPort.call(s_SIP_ringing:{v_question, -}) + {[] opPort.getreply(s_SIP_ringing:{-, true}) {} + [] opPort.getreply(s_SIP_ringing:{-, false}) + {all timer.stop; + setverdict(fail); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop;} + } + } + + f_selfOrClientSyncAndVerdict(c_Ringing, f_getVerdict()); + return + } // end of f_check_Conversation + + function f_terminateCall(CallId currentCallId, inout CSeq loc_CSeq_s, From loc_From, + To loc_To, HostPort loc_reqHostPort) runs on SipComponent + { + // Sending of a BYE request to release the call and expect a final response + f_sendBYE_noroute_cause(currentCallId, loc_CSeq_s, loc_From, loc_To,loc_reqHostPort ); + + if (PC_UA) + { + action("Please HANG UP"); + } + + TResp.start(PX_TRESP); + alt + { + [] SIPP.receive (Response_1XX_r_1(currentCallId, loc_CSeq_s)) + { + repeat; + } + [] SIPP.receive (Response_Final_r(currentCallId, loc_CSeq_s)) + { + TResp.stop; + } + [] SIPP.receive + { + all timer.stop; + syncPort.send(m_syncClientStop); + stop + } + [] TResp.timeout + { + syncPort.send(m_syncClientStop); + stop + } + } + } // end function f_terminateCall + + function f_awaitSUTidle() runs on SipComponent + { + v_ignore4xx := true; // allow 4xx in default + TNoAct.start(PX_TNOACT); + alt { + [] TNoAct.timeout{} + } + } + + + } // end of group Behaviour + + + + group DefaultsTestStep + { + // + // default behaviour derived from altstep defaultRGRR + // deregistering Tester depending of PX_PR_PTC_REGISTRATION + // + altstep a_clearRegistration() runs on SipComponent + { + [] any timer.timeout + { + setverdict(fail); + all timer.stop; + if (v_first_recv) {f_cancelCall_cause()}; + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + +// PS allow repeated INVITEs + [v_ignore_invite]SIPP.receive (INVITE_Request_r_1) + { + repeat + } + +// allow repeated BYEs after ack of the first BYE + [v_ignore_bye]SIPP.receive (BYE_Request_r_1(?)) + { + repeat + } + +// PS allow 100 replies + [] SIPP.receive(Response_100_r_1(v_CallId, v_CSeq)) + { + repeat + } + +// ignore 183 if flag is set, 183 is sent to allow announcements to UE + [v_ignore183==true] SIPP.receive(Response_183_r_1(v_CallId, v_CSeq)) + { + repeat + } + +// ignore 484 if flag is set + [v_ignore484==true] SIPP.receive(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 484))-> value tmp_response sender sent_label + { + sendACK(tmp_response.msgHeader.cSeq); + repeat + } + +// acknowledge 487 if flag is set, 487 is used to end announcements to UE which started with the 183 + [v_ignore183==true] SIPP.receive(Response_487_r_1(v_CallId, ?))-> value tmp_response sender sent_label + { + sendACK(tmp_response.msgHeader.cSeq); + repeat + } + + [v_ignore4xx==true] SIPP.receive(Response_4XX_r_1(v_CallId, ?))-> value tmp_response sender sent_label + { + sendACK(tmp_response.msgHeader.cSeq); + repeat + } + + [v_ignore500==true] SIPP.receive(Response_500_r_0(v_CallId, ?))-> value tmp_response sender sent_label + { + sendACK(tmp_response.msgHeader.cSeq); + repeat + } + +// + [v_ignore200OKinv==true] SIPP.receive(Response_INVITE_200_r_1 (v_CallId, ?))-> value tmp_response sender sent_label + { + repeat + } + + // unexpected BYE is acknowledged to avoid retransmissions + [] SIPP.receive(BYE_Request_r_1(?))-> value tmp_request sender sent_label + { + // all timer.stop; + setverdict(fail); + setHeadersOnReceiptOfBye(tmp_request); + sendACK(tmp_request.msgHeader.cSeq); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + // unexpected BYE is acknowledged to avoid retransmissions + [] SIPP.receive(mw_INFO_Request_1(?))-> value tmp_request sender sent_label + { + // all timer.stop; + setverdict(fail); + setHeadersOnReceiptOfInfo(tmp_request); + send200OK(); + repeat + } + + // unexpected CANCEL is acknowledged to avoid retransmissions + [] SIPP.receive(CANCEL_Request_r_1(?))-> value tmp_request sender sent_label + { + // all timer.stop; + setverdict(fail); + setHeadersOnReceiptOfCancel(tmp_request); + //Answer to the CANCEL + send200OK(); + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + + []SIPP.receive (INVITE_Request_r_1) -> value tmp_request sender sent_label + { + setverdict(fail); + TWait.stop; + v_ignore_invite := true; + setHeadersOnReceiptOfInvite(tmp_request); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr +//// f_cancelCall_cause(); +// v_CSeq.method := "CANCEL"; +// v_CSeq.seqNumber := v_CSeq.seqNumber + 1; +// SIPP.send(CANCEL_Request_s_cause_1(v_CallId, v_CSeq, callee_From, callee_To, v_reqHostPort, v_Via )) to sent_label; + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, StatusLine486)) to sent_label; + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + + f_awaitSUTidle(); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + [] SIPP.receive (Response:?)-> value tmp_response sender sent_label + { + if (tmp_response.statusLine.statusCode>199) + {setHeadersOnReceiptOfResponse(v_CSeq, tmp_response); + sendACK(v_CSeq); + } + // all timer.stop; + setverdict(fail); + if (v_first_recv) {f_cancelCall_cause()}; + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } + [] SIPP.receive + {// all timer.stop; + setverdict(fail); + if (v_first_recv) {f_cancelCall_cause()}; + if (PX_PR_PTC_REGISTRATION) {removePtcRegistration(v_CSeq)}; + syncPort.send(m_syncClientStop); + stop + } } + } // end of group DefaultsTestStep + + + } // end group SipIsupFunctions + +} diff --git a/SipAts/SipIsup_SIP_TCFunctions.ttcn b/SipAts/SipIsup_SIP_TCFunctions.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..c5ec0ae113d78d5f8299ba6a7745da7047250b0b --- /dev/null +++ b/SipAts/SipIsup_SIP_TCFunctions.ttcn @@ -0,0 +1,13009 @@ +/* + * @author STF 297 + * @version $Id$ + * @desc This module provides the TC functions used by the test component + * for SIP side of the SUT. + */ +module SipIsup_SIP_TCFunctions { + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_AbstractData all; + import from SipIsup_SIP_TypesAndConf all; + import from SipIsup_SIP_Steps all; + import from SipIsup_SIP_Templates all; + import from SipIsup_ISUP_ModuleParams all; // for timer values e.g. PX: T7, T9 + + //Type to adress the IUT to send it message + //type Address address; + type record address + { + //HostPort + charstring host optional, // hostname, IPv4 or IPv6 + integer portField optional // represented as an integer + }with { encode "SIPCodec" } + + + /* + * @desc The group structure is according to the TSS: + * + */ + group BasicCall { + group TP1_InterworkingFromSIPtoISUP { + group TP101_Sending_IAM { + + /* + * @desc This is the test case function (SIP side) for TC_101_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_101_001(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + setHeadersIUTInvite(v_CSeq); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // Testbody + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_001 + + /* + * @desc This is the test case function (SIP side) for TC_101_002 + */ + function f_Sip_TC_101_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_003 + /* + * @desc This is the test case function (SIP side) for TC_101_003 + * Note: same as TC_101_002 but with ISUP + */ + function f_Sip_TC_101_003(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_004 + /* + * @desc This is the test case function (SIP side) for TC_101_004 + */ + function f_Sip_TC_101_004(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_004 + /* + * @desc This is the test case function (SIP side) for TC_101_005 + */ + function f_Sip_TC_101_005(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law and u-law + f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU_PCMA),v_CSeq,false); + + // inform ISUP side on submission of PRACK + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_005 + /* + * @desc This is the test case function (SIP side) for TC_101_006 + */ + function f_Sip_TC_101_006(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law and u-law + f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU_PCMA),v_CSeq,false); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // inform ISUP side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_006 + /* + * @desc This is the test case function (SIP side) for TC_101_007 + * Note: function is identical to f_Sip_TC_101_006 but runs against ISUP + */ + function f_Sip_TC_101_007(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law and u-law + f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU_PCMA),v_CSeq,false); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // inform ISUP side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_007 + /* + * @desc This is the test case function (SIP side) for TC_101_008 + */ + function f_Sip_TC_101_008(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_100rel_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 183 with A-law and u-law + f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU_PCMA),v_CSeq,false); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // inform ISUP side on submission of UPDATE in order to await IAM + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_008 + /* + * @desc This is the test case function (SIP side) for TC_101_009 + */ + function f_Sip_TC_101_009(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200_SDP("A",Inc_PCMA); + + // check Conversation + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_009 + /* + * @desc This is the test case function (SIP side) for TC_101_010 + */ + function f_Sip_TC_101_010(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 with A-law and not u-law + f_Recv180_200_SDP("A",Inc_PCMA); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_010 + /* + * @desc This is the test case function (SIP side) for TC_101_011 + * Note: function is identical with f_Sip_TC_101_010 but run against ISUP + */ + function f_Sip_TC_101_011(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 with A-law and not u-law + f_Recv180_200_SDP("A",Inc_PCMA); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_011 + /* + * @desc This is the test case function (SIP side) for TC_101_012 + */ + function f_Sip_TC_101_012(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await IAM + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 with A-law and not u-law + f_Recv180_200_SDP("A",Inc_PCMA); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_012 + /* + * @desc This is the test case function (SIP side) for TC_101_013 + */ + function f_Sip_TC_101_013(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 180 and 200 with u-law and not A-law + f_Recv180_200_SDP("U",Inc_PCMU); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_013 + /* + * @desc This is the test case function (SIP side) for TC_101_014 + */ + function f_Sip_TC_101_014(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 183 with U-law but not A-law + f_Recv183("U"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // inform peer PTC side on submission of UPDATE in order to await COT + // Note: send UPDATE after local resource reservation terminated + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 with U-law and not A-law + f_Recv180_200_SDP("U",Inc_PCMU); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_014 + /* + * @desc This is the test case function (SIP side) for TC_101_015 + * Note: identical to f_Sip_TC_101_014 but runs against ISUP + */ + function f_Sip_TC_101_015(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 183 with U-law but not A-law + f_Recv183("U"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 with U-law and not A-law + f_Recv180_200_SDP("U",Inc_PCMU); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_015 + /* + * @desc This is the test case function (SIP side) for TC_101_016 + */ + function f_Sip_TC_101_016(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 183 with U-law but not A-law + f_Recv183("U"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await IAM + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 with U-law and not A-law + f_Recv180_200_SDP("U",Inc_PCMU); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_016 + /* + * @desc This is the test case function (SIP side) for TC_101_017 + */ + function f_Sip_TC_101_017(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_017 + /* + * @desc This is the test case function (SIP side) for TC_101_018 + */ + function f_Sip_TC_101_018(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_018 + + /* + * @desc This is the test case function (SIP side) for TC_101_019 + */ + function f_Sip_TC_101_019(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_019 + + /* + * @desc This is the test case function (SIP side) for TC_101_020 + * Note: test case has 8 variants, that are different at the SIP side + */ + function f_Sip_TC_101_020(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + // expected message body values according to the testcase variant + var charstring v_a_b_m_line[8]:= { + // VA_01 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF, + // VA_02 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " PCMU/8000" & CRLF, + // VA_03 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 8" & CRLF, + // VA_04 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " PCMA/8000" & CRLF, + // VA_05 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 9" & CRLF & + "b=AS:64" & CRLF & + "a=rtpmap:9 G722/8000" & CRLF, + // VA_06 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "b=AS:64" & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " CLEARMODE/8000" & CRLF, + // VA_07 + "m=image " & PX_SDP_MEDIA_PORT & " Udptl t38" & CRLF & + "a=" & PX_SDP_T38_ATTRIBUTE & CRLF, + // VA_08 + "m=image " & PX_SDP_MEDIA_PORT & " Tcptl t38" & CRLF & + "a=" & PX_SDP_T38_ATTRIBUTE & CRLF + }; + + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_a_b_m_line[VA-1])) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_020 + /* + * @desc This is the test case function (SIP side) for TC_101_021 + * Note: test case has 8 variants, that are different at the SIP side + */ + function f_Sip_TC_101_021(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + // expected message body values according to the testcase variant + var charstring v_a_b_m_line[8]:= { + // VA_01 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF, + // VA_02 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " PCMU/8000" & CRLF, + // VA_03 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 8" & CRLF, + // VA_04 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " PCMA/8000" & CRLF, + // VA_05 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 9" & CRLF & + "b=AS:64" & CRLF & + "a=rtpmap:9 G722/8000" & CRLF, + // VA_06 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "b=AS:64" & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " CLEARMODE/8000" & CRLF, + // VA_07 + "m=image " & PX_SDP_MEDIA_PORT & " Udptl t38" & CRLF & + "a=" & PX_SDP_T38_ATTRIBUTE & CRLF, + // VA_08 + "m=image " & PX_SDP_MEDIA_PORT & " Tcptl t38" & CRLF & + "a=" & PX_SDP_T38_ATTRIBUTE & CRLF + }; + + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_a_b_m_line[VA-1])) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_021 + /* + * @desc This is the test case function (SIP side) for TC_101_022 + * Note: test case has 6 variants, that are different at the SIP side + */ + function f_Sip_TC_101_022(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + // expected message body values according to the testcase variant + var charstring v_a_b_m_line[6]:= { + // VA_01 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF, + // VA_02 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " PCMU/8000" & CRLF, + // VA_03 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 8" & CRLF, + // VA_04 + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP " & PX_SDP_MEDIA_DYNAMIC_PT & CRLF & + "a=rtpmap:" & PX_SDP_MEDIA_DYNAMIC_PT & " PCMA/8000" & CRLF, + // VA_05 + "m=image " & PX_SDP_MEDIA_PORT & " Udptl t38" & CRLF & + "a=" & PX_SDP_T38_ATTRIBUTE & CRLF, + // VA_06 + "m=image " & PX_SDP_MEDIA_PORT & " Tcptl t38" & CRLF & + "a=" & PX_SDP_T38_ATTRIBUTE & CRLF + }; + + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_a_b_m_line[VA-1])) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_022 + /* + * @desc This is the test case function (SIP side) for TC_101_023 + */ + function f_Sip_TC_101_023(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_maxForward_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA, + PX_SIP_MAX_FORWARDS)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_023 + /* + * @desc This is the test case function (SIP side) for TC_101_024 + */ + function f_Sip_TC_101_024(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + valueof (SipUrl_withCalledPartyNumber(PX_SIPURL_CDPN_INTERNATIONAL_HOME)), + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) + to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_024 + /* + * @desc This is the test case function (SIP side) for TC_101_025 + */ + function f_Sip_TC_101_025(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + valueof (SipUrl_withCalledPartyNumber(PX_SIPURL_CDPN_INTERNATIONAL_ABROAD)), + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_025 + /* + * @desc This is the test case function (SIP side) for TC_101_026 + */ + function f_Sip_TC_101_026(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + valueof (SipUrl_withCalledPartyNumber(PX_SIPURL_CDPN)), + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_026 + /* + * @desc This is the test case function (SIP side) for TC_101_027 + */ + function f_Sip_TC_101_027(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200_SDP("101_027",Inc_PCMA); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_027 + /* + * @desc This is the test case function (SIP side) for TC_101_028 + */ + function f_Sip_TC_101_028(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200_SDP("A",Inc_PCMA); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_028 + /* + * @desc This is the test case function (SIP side) for TC_101_029 + */ + function f_Sip_TC_101_029(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 0" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200_SDP("101_029",Inc_RejectPCMU); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_029 + /* + * @desc This is the test case function (SIP side) for TC_101_030 + */ + function f_Sip_TC_101_030(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 8" & CRLF & + "m=audio " & int2str(str2int(PX_SDP_MEDIA_PORT)+1) & " RTP/AVP 8" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 415 + f_awaitingRespons_but100_andAck(Response_415_r_1(v_CallId,v_CSeq), v_CSeq, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_030 + /* + * @desc This is the test case function (SIP side) for TC_101_031 + */ + function f_Sip_TC_101_031(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + var charstring v_m_line := + "m=audio " & PX_SDP_MEDIA_PORT & " RTP/AVP 8" & CRLF & + "m=audio " & int2str(str2int(PX_SDP_MEDIA_PORT)+1) & " RTP/AVP 8" & CRLF & + "m=video " & int2str(str2int(PX_SDP_MEDIA_PORT)+2) & " RTP/AVP 31" & CRLF; + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_m_line)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200_SDP("101_031",Inc_PCMA); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_031 + + /* + * @desc This is the test case function (SIP side) for TC_101_032 + */ + function f_Sip_TC_101_032(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // check Conversation + f_check_Conversation(); + + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_101_032 + + } // end group TP101_SendingIAM + + group TP102_Sending_SAM { + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_102_001 + */ + function f_Sip_TC_102_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + var SipUrl v_RequestUri_i1 := valueof(SipUrl_withCalledPartyNumber_i1); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri_i1, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + var SipUrl v_RequestUri_i2 := valueof(SipUrl_withCalledPartyNumber_i2); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri_i2, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_102_001 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_102_002 + */ + function f_Sip_TC_102_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + var SipUrl v_RequestUri_i1 := valueof(SipUrl_withCalledPartyNumber_i1); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri_i1, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response 484 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 484),v_CSeq,false); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_102_002 + + } // end group TP102_Sending_SAM + + group TP103_Sending_COT { + /* + * @desc This is the test case function (SIP side) for TC_103_001 + */ + function f_Sip_TC_103_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + // awaiting 180 and 200 with A-law and not u-law + f_Recv180_200_SDP("A",Inc_PCMA); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_103_001 + + /* + * @desc This is the test case function (SIP side) for TC_103_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_103_002(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + // Note: send UPDATE after local resource reservation terminated + // inform peer PTC side on submission of UPDATE in order to await COT + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send UPDATE and await 200 OK + f_SendRespUPDATE(); + + // awaiting 200 + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_103_002 + + } // end group TP103_Receiving_COT + + group TP104_Receiving_ACM { + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_104_001 + */ + function f_Sip_TC_104_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + checkNoFurtherMessages(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_104_001 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_104_002 + * there are 5 variants of this test case, but without differences on the SIP side + */ + function f_Sip_TC_104_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + f_check_Ringing(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_104_002 + + } // end group TP104_Receiving_ACM + + group TP105_Receiving_CPG { + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_105_001 + */ + function f_Sip_TC_105_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_105_001 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_105_002 + */ + function f_Sip_TC_105_002(in CSeq loc_CSeq_s) runs on SipComponent { + f_Sip_TC_104_001(loc_CSeq_s); + } // end function f_Sip_TC_105_002 + + /* + * @desc This is the test case function (SIP side) for TC_105_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_105_003(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_104_001(loc_CSeq_s); + }//end function f_Sip_TC_105_003 + + + } // end group TP105_Receiving_CPG + + group TP106_Receiving_ANM { + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_106_001 + */ + function f_Sip_TC_106_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + var CSeq v_CSeq_retrans := v_CSeq; // remember V_CSeq from 200 OK + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + f_allowRetransmission(Response_INVITE_200_r_1 (v_CallId, v_CSeq_retrans)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + //sendACK(v_CSeq); // now in test body to avoid retransmissions of 200 OK + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_106_001 + + /* + * @desc This is the test case function (SIP side) for TC_106_002 + */ + function f_Sip_TC_106_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 183 with A-law and u-law + f_awaitingRespons_but100_andAck(Response_183_r_2_sdp(v_CallId, v_CSeq, Inc_PCMU_PCMA),v_CSeq,false); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send PRACK and await 200 OK + f_SendRespPRACK(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting 180 and 200 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, false); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + sendACK(v_CSeq); + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_106_002 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_106_003 + */ + function f_Sip_TC_106_003(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_noSDP_s_1( // no SDP + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + // awaiting 180 and 200 with SDP + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_SDP (v_CallId, v_CSeq, ?),v_CSeq, false); + SIPP.send(ACK_Request_SDP_s(v_reqHostPort, v_CallId, loc_CSeq_s,v_From, v_To, v_Via, PX_SDPBODY2)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_106_003 + + } // end group TP106_Receiving_ANM + + group TP107_Receiving_CON { + + /* + * @desc This is the test case function (SIP side) for TC_107_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_107_001(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + setHeadersIUTInvite(v_CSeq); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // Testbody + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, false); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + sendACK(v_CSeq); + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_107_001 + + /* + * @desc This is the test case function (SIP side) for TC_107_002 + */ + function f_Sip_TC_107_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 183 with A-law but not u-law + f_Recv183("A"); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // send PRACK and await 200 OK + setHeadersForPRACK(v_CSeq); + // note: SUT may send final response before receiving PRACK + // PRACK includes a generated answer + SIPP.send (PRACK_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + v_RAck, + PX_SDPBODY2 // should not include attribute a=conf + )) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, false); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + sendACK(v_CSeq); + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_107_002 + + /* + * @desc This is the test case function (SIP side) for TC_107_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_107_003(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + setHeadersIUTInvite(v_CSeq); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // Testbody + SIPP.send ( + INVITE_Request_noSDP_s_1( // no SDP + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_SDP (v_CallId, v_CSeq, ?),v_CSeq, false); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + SIPP.send(ACK_Request_SDP_s(v_reqHostPort, v_CallId, loc_CSeq_s,v_From, v_To, v_Via, PX_SDPBODY2)) to sent_label; + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_107_003 + + } // end group TP107_Receiving_CON + + group TP108_Receipt_REL { + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_001 + */ + function f_Sip_TC_108_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 5 (is identical with table 9, second parameter in array elements are + // not used but included due to common status_cause type) + const status_cause c_expectation[38]:= { + {StatusLine404,1},{StatusLine500,2},{StatusLine500,3},{StatusLine500,4},{StatusLine404,5}, + {StatusLine500,8},{StatusLine500,9},{StatusLine486,17},{StatusLine480,18},{StatusLine480,19}, + {StatusLine480,20},{StatusLine480,21},{StatusLine410,22},{StatusLine480,25},{StatusLine502,27}, + {StatusLine484,28},{StatusLine500,29},{StatusLine480,31},{StatusLine486,34},{StatusLine500,47}, + {StatusLine500,50},{StatusLine500,55},{StatusLine500,57},{StatusLine500,58},{StatusLine500,63}, + {StatusLine500,79},{StatusLine500,87},{StatusLine500,88},{StatusLine500,90},{StatusLine404,91}, + {StatusLine500,95},{StatusLine500,97},{StatusLine500,99},{StatusLine480,102},{StatusLine500,103}, + {StatusLine500,110},{StatusLine500,111},{StatusLine480,127} + }; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode),v_CSeq,true); + f_awaitSUTidle(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_001 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_002 + */ + function f_Sip_TC_108_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 6 (cp. table 11) + const status_cause c_expectation[11]:= { + {StatusLine486,17},{StatusLine480,18},{StatusLine480,21},{StatusLine410,22}, + {StatusLine502,27},{StatusLine484,28},{StatusLine480,31}, + {StatusLine500,47}, // note: default value 47 may be replaced by a PIXIT parameter + {StatusLine500,63},{StatusLine500,88},{StatusLine500,111} + }; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_002 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_003 + */ + function f_Sip_TC_108_003(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 7 + const status_cause c_expectation[5]:= { + {StatusLine480,21},{StatusLine480,31},{StatusLine500,38},{StatusLine500,41}, + {StatusLine500,111}}; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_003 + + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_004 + */ + function f_Sip_TC_108_004(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 7 + const status_cause c_expectation[5]:= { + {StatusLine480,21},{StatusLine480,31},{StatusLine500,38},{StatusLine500,41}, + {StatusLine500,111}}; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_004 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_005 + * VA1 allows 5 variants, but currently there are not differences for the SIP side + */ + function f_Sip_TC_108_005(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_005 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_006 + * VA1 allows 5 variants, but currently there are not differences for the SIP side + */ + function f_Sip_TC_108_006(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 200 + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_006 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_007 + * integer parameter VA allows 38 variants + */ + function f_Sip_TC_108_007(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + // expected status and cause values according to the testcase variant + // testplan table 9 + const status_cause c_expectation[38]:= { + {StatusLine404,1},{StatusLine500,2},{StatusLine500,3},{StatusLine500,4},{StatusLine404,5}, + {StatusLine500,8},{StatusLine500,9},{StatusLine486,17},{StatusLine480,18},{StatusLine480,19}, + {StatusLine480,20},{StatusLine480,21},{StatusLine410,22},{StatusLine480,25},{StatusLine502,27}, + {StatusLine484,28},{StatusLine500,29},{StatusLine480,31},{StatusLine486,34},{StatusLine500,47}, + {StatusLine500,50},{StatusLine500,55},{StatusLine500,57},{StatusLine500,58},{StatusLine500,63}, + {StatusLine500,79},{StatusLine500,87},{StatusLine500,88},{StatusLine500,90},{StatusLine404,91}, + {StatusLine500,95},{StatusLine500,97},{StatusLine500,99},{StatusLine480,102},{StatusLine500,103}, + {StatusLine500,110},{StatusLine500,111},{StatusLine480,127} + }; // Note: default cause value for VA[26] to be replaced by PIXIT value + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_3(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode,c_expectation[VA-1].c),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_007 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_008 + */ + function f_Sip_TC_108_008(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 10 (cp. table 11) + const status_cause c_expectation[11]:= { + {StatusLine486,17},{StatusLine480,18},{StatusLine480,21},{StatusLine410,22}, + {StatusLine502,27},{StatusLine484,28},{StatusLine480,31}, + {StatusLine500,47}, // note: default value 47 may be replaced by a PIXIT parameter + {StatusLine500,63},{StatusLine500,88},{StatusLine500,111} + }; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_3(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode,c_expectation[VA-1].c),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_008 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_009 + */ + function f_Sip_TC_108_009(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 11 (cp table 10) + const status_cause c_expectation[11]:= { + {StatusLine486,17},{StatusLine480,18},{StatusLine480,21},{StatusLine410,22}, + {StatusLine502,27},{StatusLine484,28},{StatusLine480,31}, + {StatusLine500,47}, // note: default value 47 may be replaced by a PIXIT parameter + {StatusLine500,63},{StatusLine500,88},{StatusLine500,111} + }; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_3(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode,c_expectation[VA-1].c),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_009 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_010 + */ + function f_Sip_TC_108_010(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected status and cause values according to the testcase variant + // testplan table 11 (cp table 10) + const status_cause c_expectation[11]:= { + {StatusLine486,17},{StatusLine480,18},{StatusLine480,21},{StatusLine410,22}, + {StatusLine502,27},{StatusLine484,28},{StatusLine480,31}, + {StatusLine500,47}, // note: default value 47 may be replaced by a PIXIT parameter + {StatusLine500,63},{StatusLine500,88},{StatusLine500,111} + }; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_3(v_CallId, v_CSeq, c_expectation[VA-1].s.statusCode,c_expectation[VA-1].c),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_010 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_011 + * VA1 allows 5 variants, but currently there are not differences for the SIP side + */ + function f_Sip_TC_108_011(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected cause values according to the testcase variant + // testplan table 12 + const integer c_cause[5] := {16,31,38,41,111}; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply + (BYE_Request_r_12(v_CallId,c_cause[VA-1]),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_011 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_012 + * VA1 allows 5 variants, but currently there are not differences for the SIP side + */ + function f_Sip_TC_108_012(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // expected cause values according to the testcase variant + // testplan table 12 + const integer c_cause[5] := {16,31,38,41,111}; + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 200 + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply + (BYE_Request_r_12(v_CallId,c_cause[VA-1]),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_012 + + /* + * @desc This is the test case function (SIP side) for TC_108_013 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_108_013(in CSeq loc_CSeq_s) + runs on SipComponent { + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + f_Sip_TC_105_002(loc_CSeq_s); + }//end function f_Sip_TC_108_013 + + + + } // end group TP108_ReceiptREL + + group TP1081_AutonomousRelease { + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_101 + */ + function f_Sip_TC_108_101(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response 480 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 480),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_101 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_102 + */ + function f_Sip_TC_108_102(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting failure response 500 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 500),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_102 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_103 + */ + function f_Sip_TC_108_103(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting failure response 500 and send Ack + // TODO: testcase is not full clear due to receipt of a BYE message to be sent by SUT + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_4(v_CallId, v_CSeq, 500,0),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_103 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_104 + */ + function f_Sip_TC_108_104(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + var SipUrl v_RequestUri_i3 := valueof(SipUrl_withCalledPartyNumber_i3); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri_i3, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response 484 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 484),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_104 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_105 + */ + function f_Sip_TC_108_105(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // implement test body behavior which should set return code + var SipUrl v_RequestUri_i3 := valueof(SipUrl_withCalledPartyNumber_i3); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri_i3, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + var CSeq v_CSeq1 := v_CSeq; + var CallId v_CallId1 := v_CallId; + + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + setHeadersIUTInvite(v_CSeq); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response 484 and send Ack + var CSeq v_CSeq2 := v_CSeq; + var CallId v_CallId2 := v_CallId; + v_CSeq := v_CSeq1; + v_CallId := v_CallId1; + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 484),v_CSeq,true); + v_CSeq := v_CSeq2; + v_CallId := v_CallId2; + +// +// // awaiting 180 and 200 +// f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); +// var CSeq v_CSeq_retrans := v_CSeq; // remember V_CSeq from 200 OK +// f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); +// f_allowRetransmission(Response_INVITE_200_r_1 (v_CallId, v_CSeq_retrans)); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_105 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_106 + */ + function f_Sip_TC_108_106(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + action("Test condition: ensure that SUT is in congestion!"); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, // Insufficient digits + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response 480 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 480),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_106 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_107 + */ + function f_Sip_TC_108_107(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + action("Test condition: ensure that SUT release after answer (autonomous release)!"); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 and 200 + f_Recv180_200(" "); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_107 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_108 + */ + function f_Sip_TC_108_108(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting failure response 500 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 500),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_TC_108_108 + + /* + * @desc This is the test case function (SIP side) for TC_108_109 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_108_109(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response 484 and send Ack + f_awaitingRespons_flextimer_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 484),v_CSeq,true,PX_Timeout_T7); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_108_109 + + /* + * @desc This is the test case function (SIP side) for f_Sip_TC_108_110 + */ + function f_Sip_TC_108_110(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // awaiting failure response 480 and send Ack + f_awaitingRespons_flextimer_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 480),v_CSeq,true,PX_Timeout_T9); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_108_110 + + /* + * @desc This is the test case function (SIP side) for TC_108_111 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_108_111(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_108_110(loc_CSeq_s); + }//end function f_Sip_TC_108_111 + + } // end group TP1081_AutonomousRelease + + + group TP109_Receiving_BYE_CANCEL_REL { + + /* + * @desc This is the test case function (SIP side) for TC_109_001 + */ + function f_Sip_TC_109_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 + f_Recv180_200(" "); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_109_001 + + /* + * @desc This is the test case function (SIP side) for TC_109_002 + */ + function f_Sip_TC_109_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + // f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_109_002 + + /* + * @desc This is the test case function (SIP side) for TC_109_003 + */ + function f_Sip_TC_109_003(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 + f_Recv180_200(" "); + + // the cause in the following BYE is due to a PIXIT parameter PX_SIP_BYE_CAUSE + f_sendBYE_cause(v_CallId, v_CSeq, caller_From, caller_To,v_reqHostPort,Route_l_1); + awaitingOkResponse(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_109_003 + + /* + * @desc This is the test case function (SIP side) for TC_109_004 + */ + function f_Sip_TC_109_004(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + f_cancelCall_cause(); + awaitingOkResponse(v_CSeq); + f_awaitSUTidle(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_109_004 + + } // end group TP109_Receiving_BYE_CANCEL_REL + + group TP110_Receiving_RSC_GRS_CGB { + /* + * @desc This is the test case function (SIP side) for TC_110_001 + */ + function f_Sip_TC_110_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, false); + + sendACK(v_CSeq); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_110_001 + + /* + * @desc This is the test case function (SIP side) for TC_110_002 + */ + function f_Sip_TC_110_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200(" "); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + //f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_110_002 + + /* + * @desc This is the test case function (SIP side) for TC_110_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_003(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_110_002(loc_CSeq_s); + }//end function f_Sip_TC_110_003 + + /* + * @desc This is the test case function (SIP side) for TC_110_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_004(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, false); + v_ignore200OKinv := true; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + sendACK(v_CSeq); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_110_004 + + /* + * @desc This is the test case function (SIP side) for TC_110_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_005(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_110_004(loc_CSeq_s); + }//end function f_Sip_TC_110_005 + + /* + * @desc This is the test case function (SIP side) for TC_110_006 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_006(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_110_004(loc_CSeq_s); + }//end function f_Sip_TC_110_006 + + /* + * @desc This is the test case function (SIP side) for TC_110_007 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_007(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // awaiting failure response 500 and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 500),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_110_007 + + /* + * @desc This is the test case function (SIP side) for TC_110_008 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_008(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_110_007(loc_CSeq_s); + }//end function f_Sip_TC_110_008 + + /* + * @desc This is the test case function (SIP side) for TC_110_009 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_009(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_110_007(loc_CSeq_s); + }//end function f_Sip_TC_110_009 + + /* + * @desc This is the test case function (SIP side) for TC_110_010 + */ + function f_Sip_TC_110_010(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + + // local variables to handle two different calls + var CallId v_CallId1; + + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // call1: + setHeadersIUTInvite(v_CSeq); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200(" "); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + v_CallId1 := v_CallId; // save call1 id for release procedure + // call2: + setHeadersIUTInvite(v_CSeq); + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200(" "); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // awaiting BYEs for both calls + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId1),v_CSeq); + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_110_010 + + /* + * @desc This is the test case function (SIP side) for TC_110_011 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_110_011(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_110_010(loc_CSeq_s); + }//end function f_Sip_TC_110_011 + + } // end group TP110_Receiving_RSC_GRS_CGB + + group TP111_Receiving_SUS { + /* + * @desc This is the test case function (SIP side) for TC_111_001 + */ + function f_Sip_TC_111_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200(" "); + + checkNoFurtherMessages(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_111_001 + + /* + * @desc This is the test case function (SIP side) for TC_111_002 + */ + function f_Sip_TC_111_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200(" "); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + TResp.start(PX_Timeout_T6*0.95); + alt + { + [] TResp.timeout{}; + } + + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); +// terminateCall( +// v_CallId, +// v_CSeq, +// caller_From, +// caller_To, +// v_reqHostPort, +// Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_111_002 + + } // end group TP111_Receiving_SUS + + group TP112_Receiving_RES { + + /* + * @desc This is the test case function (SIP side) for TC_112_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_112_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_111_001(loc_CSeq_s); + }//end function f_Sip_TC_112_001 + + } // end group TP112_Receiving_RES + + } // end group TP1_InterworkingFromSIPtoISUP + group TP3_InterworkingFromISUPtoSIP { + group TP301_Sending_INVITE { + +/* + * @desc This is the test case function (SIP side) for TC_301_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_001(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + awaitingInviteRequest(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_001 + + /* + * @desc This is the test case function (SIP side) for TC_301_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_301_002 + + /* + * @desc This is the test case function (SIP side) for TC_301_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_003(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_301_003 + + /* + * @desc This is the test case function (SIP side) for TC_301_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_004(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + //Testbody + awaitingInviteRequest(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_004 + + /* + * @desc This is the test case function (SIP side) for TC_301_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_005(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_301_005 + + /* + * @desc This is the test case function (SIP side) for TC_301_006 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_006(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_004(loc_CSeq_s); + }//end function f_Sip_TC_301_006 + + /* + * @desc This is the test case function (SIP side) for TC_301_007 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_007(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_004(loc_CSeq_s); + }//end function f_Sip_TC_301_007 + + /* + * @desc This is the test case function (SIP side) for TC_301_008 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_008(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + v_ignore_invite := false; + checkNoFurtherMessages(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_008 + + /* + * @desc This is the test case function (SIP side) for TC_301_009 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_009(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_301_009 + + /* + * @desc This is the test case function (SIP side) for TC_301_012 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_012(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + awaitingInviteRequest_withSDPOffer(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_0012 + + /* + * @desc This is the test case function (SIP side) for TC_301_013 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_013(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_awaitingPRACK_sendReply(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE_sendReply(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_013 + + + /* + * @desc This is the test case function (SIP side) for TC_301_014 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_014(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_013(loc_CSeq_s); + }//end function f_Sip_TC_301_014 + + /* + * @desc This is the test case function (SIP side) for TC_301_015 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_015(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_100_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + action(c_resourceUnavailable); + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_015 + + /* + * @desc This is the test case function (SIP side) for TC_301_016 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_016(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables and Constants + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + SIPP.send(Response_xxx_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + action(c_resourceUnavailable); + + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_016 + + /* + * @desc This is the test case function (SIP side) for TC_301_018 + */ + function f_Sip_TC_301_018(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + send200OKInvite(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + action(c_resourceUnavailable); + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(loc_CSeq_s); + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_018 + + /* + * @desc This is the test case function (SIP side) for TC_301_019 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_019(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_015(loc_CSeq_s); + }//end function f_Sip_TC_301_019 + + /* + * @desc This is the test case function (SIP side) for TC_301_020 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_020(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_301_016(loc_CSeq_s, VA); + }//end function f_Sip_TC_301_020 + + /* + * @desc This is the test case function (SIP side) for TC_301_027 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_027(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + SIPP.send(Response_100_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_027 + + /* + * @desc This is the test case function (SIP side) for TC_301_027 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_028(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + f_Sip_TC_301_016(loc_CSeq_s, VA); + } // end function f_Sip_TC_301_028 + + /* + * @desc This is the test case function (SIP side) for TC_301_031 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_031(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_027(loc_CSeq_s); + }//end function f_Sip_TC_301_031 + + /* + * @desc This is the test case function (SIP side) for TC_301_032 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_032(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_301_028(loc_CSeq_s, VA); + }//end function f_Sip_TC_301_032 + + /* + * @desc This is the test case function (SIP side) for TC_301_037 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_037(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Wait for ISUP action + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + //Testbody + awaitingInviteRequest(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_037 + + /* + * @desc This is the test case function (SIP side) for TC_301_038 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_038(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_301_038 + + /* + * @desc This is the test case function (SIP side) for TC_301_039 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_039(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_301_039 + + /* + * @desc This is the test case function (SIP side) for TC_301_040 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_040(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_301_040 + + /* + * @desc This is the test case function (SIP side) for TC_301_041 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_041(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_301_041 + + /* + * @desc This is the test case function (SIP side) for TC_301_042 + * @param loc_CSeq_s Transaction Id + */ + //TODO why ident to f_Sip_TC_301_013 with the exception of PRACK? + function f_Sip_TC_301_042(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE_sendReply(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_042 + + /* + * @desc This is the test case function (SIP side) for TC_301_043 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_043(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + //Wait for ISUP action + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + f_awaitingUPDATE_sendReply(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_043 + + /* + * @desc This is the test case function (SIP side) for TC_301_044 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_044(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_042(loc_CSeq_s); + }//end function f_Sip_TC_301_044 + + /* + * @desc This is the test case function (SIP side) for TC_301_045 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_045(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_042(loc_CSeq_s); + }//end function f_Sip_TC_301_045 + + /* + * @desc This is the test case function (SIP side) for TC_301_046 + * @param loc_CSeq_s Transaction Id + */ + //TODO why ident to f_Sip_TC_301_027 with the exception of 487 Request? + function f_Sip_TC_301_046(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_100_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_301_046 + + /* + * @desc This is the test case function (SIP side) for TC_301_048 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_048(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_301_028(loc_CSeq_s, VA); + }//end function f_Sip_TC_301_048 + + /* + * @desc This is the test case function (SIP side) for TC_301_049 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_049(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_015(loc_CSeq_s); + }//end function f_Sip_TC_301_049 + + /* + * @desc This is the test case function (SIP side) for TC_301_051 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_051(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_301_016(loc_CSeq_s, VA); + }//end function f_Sip_TC_301_051 + + /* + * @desc This is the test case function (SIP side) for TC_301_053 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_053(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + if (VA<8) {f_Sip_TC_301_054(loc_CSeq_s, VA)}; + if (VA==8) {f_Sip_TC_301_054(loc_CSeq_s, 12)}; + if (VA==9) {f_Sip_TC_301_054(loc_CSeq_s, 13)}; + }//end function f_Sip_TC_301_053 + + /* + * @desc This is the test case function (SIP side) for TC_301_054 + * @param loc_CSeq_s Transaction Id + */ + //TODO INV template not yet adapted to specific SDP params + function f_Sip_TC_301_054(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + + // CHECK of SDP values according to variants + + // check m: + if (7 < VA and VA < 12) + {if (not match(v_Body, Inc_image)) {setverdict(fail)};} else + {if (not match(v_Body, Inc_audio)) {setverdict(fail)};}; + + // check m: + if (VA==1 or VA==6) {if (not match(v_Body, Inc_PCMU) and not match(v_Body, Inc_PCMA)) {setverdict(fail)};}; + if (VA==3 or VA==7) {if (not match(v_Body, Inc_PCMA)) {setverdict(fail)};}; + if (VA==5) {if (not match(v_Body, Inc_PCMA) and not match(v_Body, Inc_PCMA) + and not match(v_Body, Inc_PCMU_PCMA) and not match(v_Body, Inc_PCMA_PCMU)) {setverdict(fail)};}; + if (VA==8 or VA==9) {if (not match(v_Body, Inc_udptlt38)) {setverdict(fail)};}; + if (VA==10 or VA==11) {if (not match(v_Body, Inc_tcptlt38)) {setverdict(fail)};}; + if (VA==12) {if (not match(v_Body, Inc_PCMG722)) {setverdict(fail)};}; + if (VA==2 or VA==4 or VA==13) { setverdict(pass); /* dynamicPT checked in a-line only */ }; + + // check bandwidth + if (not match(v_Body, Inc_AS64)) {setverdict(fail)}; + + // check attributes + if (VA==1 or VA==6) {if (not match(v_Body, Inc_rtpmap0) and not match(v_Body, Inc_rtpmap8)) {setverdict(fail)};}; + if (VA==2) {if (not match(v_Body, Inc_rtpmapDU) and not match(v_Body, Inc_rtpmapDA)) {setverdict(fail)};}; + if (VA==3 or VA==7) {if (not match(v_Body, Inc_rtpmap8)) {setverdict(fail)};}; + if (VA==4) {if (not match(v_Body, Inc_rtpmapDA)) {setverdict(fail)};}; + if (VA==12) {if (not match(v_Body, Inc_rtpmap9)) {setverdict(fail)};}; + if (VA==13) {if (not match(v_Body, Inc_rtpmapDC)) {setverdict(fail)};}; + + + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_301_054 + + /* + * @desc This is the test case function (SIP side) for TC_301_055 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_055(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_301_054(loc_CSeq_s, VA); + }//end function f_Sip_TC_301_055 + + /* + * @desc This is the test case function (SIP side) for TC_301_056 + * @param loc_CSeq_s Transaction Id + */ + //TODO Check if awaitingInviteRequest_toField is enough + function f_Sip_TC_301_056(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + awaitingInviteRequest_toField(ToField_r2); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_056 + + /* + * @desc This is the test case function (SIP side) for TC_301_057 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_057(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_056(loc_CSeq_s); + }//end function f_Sip_TC_301_057 + + /* + * @desc This is the test case function (SIP side) for TC_301_058 + */ + //TODO Check if awaitingInviteRequest_toField is enough + function f_Sip_TC_301_058(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Wait for ISUP action + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + //Testbody + awaitingInviteRequest_toField(ToField_r2); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_058 + + /* + * @desc This is the test case function (SIP side) for TC_301_059 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_059(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_058(loc_CSeq_s); + }//end function f_Sip_TC_301_059 + + /* + * @desc This is the test case function (SIP side) for TC_301_060 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_060(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + var Request v_INVITE_Request; + TWait.start(PX_TWAIT); + alt + { + []SIPP.receive (INVITE_Request_r_1) -> value v_INVITE_Request sender sent_label + { + TWait.stop; + v_ignore_invite:= true; //enable ignore invite in default + if (v_INVITE_Request.msgHeader.maxForwards.forwards == PX_MAX_NR_OF_HOPS) { + setverdict(pass); + setHeadersOnReceiptOfInvite(v_INVITE_Request); + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + } + else { + setverdict(inconc); + stop; + } + } + [] SIPP.receive + { + all timer.stop; + setverdict(inconc); + stop; + } + [] TWait.timeout + { + setverdict(inconc);stop; + } + } + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_301_060 + + /* + * @desc This is the test case function (SIP side) for TC_301_061 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_061(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_056(loc_CSeq_s); + }//end function f_Sip_TC_301_061 + + /* + * @desc This is the test case function (SIP side) for TC_301_062 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_062(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_056(loc_CSeq_s); + }//end function f_Sip_TC_301_062 + + /* + * @desc This is the test case function (SIP side) for TC_301_063 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_063(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_058(loc_CSeq_s); + }//end function f_Sip_TC_301_063 + + /* + * @desc This is the test case function (SIP side) for TC_301_064 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_301_064(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_058(loc_CSeq_s); + }//end function f_Sip_TC_301_064 + + + + } // end group TP301_SendingINVITE + + group TP302_Receiving_SAM { + +/* + * @desc This is the test case function (SIP side) for TC_302_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_302_001 + + /* + * @desc This is the test case function (SIP side) for TC_302_002 + * @param loc_CSeq_s Transaction Id + */ + //TODO Check if awaitingInviteRequest_toField is enough + function f_Sip_TC_302_002(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody 3 receptions of INV + awaitingInviteRequest_toField(ToField_r2_first); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point + + awaitingInviteRequest_toField(ToField_r2_middle); + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + awaitingInviteRequest_toField(ToField_r2); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_302_002 + + /* + * @desc This is the test case function (SIP side) for TC_302_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_003(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Wait for ISUP action + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + //Testbody 2 receptions of INV + awaitingInviteRequest_toField(ToField_r2_first); + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + awaitingInviteRequest_toField(ToField_r2); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_302_003 + + /* + * @desc This is the test case function (SIP side) for TC_302_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_004(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_003(loc_CSeq_s); + }//end function f_Sip_TC_302_004 + + /* + * @desc This is the test case function (SIP side) for TC_302_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_005(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_302_005 + + + /* + * @desc This is the test case function (SIP side) for TC_301_008 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_007(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + checkNoFurtherMessages(); +// f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_302_007 + + + + + + + /* + * @desc This is the test case function (SIP side) for TC_302_009 + */ + function f_Sip_TC_302_009(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + awaitingInviteRequest(); + + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_awaitingUPDATE_sendReply(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + awaitingInviteRequest(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_302_009 + + + /* + * @desc This is the test case function (SIP side) for TC_302_010 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_010(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_009(loc_CSeq_s); + }//end function f_Sip_TC_302_010 + + /* + * @desc This is the test case function (SIP side) for TC_302_011 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_011(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_003(loc_CSeq_s); + }//end function f_Sip_TC_302_011 + + /* + * @desc This is the test case function (SIP side) for TC_302_012 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_012(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_003(loc_CSeq_s); + }//end function f_Sip_TC_302_012 + + /* + * @desc This is the test case function (SIP side) for TC_302_013 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_013(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_003(loc_CSeq_s); + }//end function f_Sip_TC_302_013 + + + /* + * @desc This is the test case function (SIP side) for TC_302_014 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_014(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_003(loc_CSeq_s); + }//end function f_Sip_TC_302_014 + + /* + * @desc This is the test case function (SIP side) for TC_302_015 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_015(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_awaitingUPDATE_sendReply(); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point + + awaitingInviteRequest(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_302_015 + + /* + * @desc This is the test case function (SIP side) for TC_302_016 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_016(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_015(loc_CSeq_s); + }//end function f_Sip_TC_302_016 + + /* + * @desc This is the test case function (SIP side) for TC_302_017 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_017(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_015(loc_CSeq_s); + }//end function f_Sip_TC_302_017 + + /* + * @desc This is the test case function (SIP side) for TC_302_018 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_018(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_302_015(loc_CSeq_s); + }//end function f_Sip_TC_302_018 + + /* + * @desc This is the test case function (SIP side) for TC_302_019 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_019(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody 2 receptions of INV + awaitingInviteRequest_toField(ToField_r2); + awaitingInviteRequest_toField(ToField_r2); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_302_019 + + /* + * @desc This is the test case function (SIP side) for TC_302_0020 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_302_020(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_302_0020 + + + } // end group TP302_ReceiptSAM + + group TP303_Sending_ACM { + /* + * @desc This is the test case function (SIP side) for TC_303_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_303_001 + + /* + * @desc This is the test case function (SIP side) for TC_303_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_303_002 + + /* + * @desc This is the test case function (SIP side) for TC_303_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_003(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_303_003 + + /* + * @desc This is the test case function (SIP side) for TC_303_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_004(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_303_004 + + /* + * @desc This is the test case function (SIP side) for TC_303_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_005(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_303_005 + + /* + * @desc This is the test case function (SIP side) for TC_303_006 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_006(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_001(loc_CSeq_s); + }//end function f_Sip_TC_303_006 + + /* + * @desc This is the test case function (SIP side) for TC_303_007 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_007(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_007 + + /* + * @desc This is the test case function (SIP side) for TC_303_008 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_008(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_008 + + /* + * @desc This is the test case function (SIP side) for TC_303_010 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_010(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + awaitingInviteRequest(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_303_010 + + /* + * @desc This is the test case function (SIP side) for TC_303_011 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_011(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_011 + + /* + * @desc This is the test case function (SIP side) for TC_303_012 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_012(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_011(loc_CSeq_s); + }//end function f_Sip_TC_303_012 + + /* + * @desc This is the test case function (SIP side) for TC_303_013 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_013(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_011(loc_CSeq_s); + }//end function f_Sip_TC_303_013 + + /* + * @desc This is the test case function (SIP side) for TC_303_014 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_014(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_011(loc_CSeq_s); + }//end function f_Sip_TC_303_014 + + /* + * @desc This is the test case function (SIP side) for TC_303_015 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_015(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_011(loc_CSeq_s); + }//end function f_Sip_TC_303_015 + + /* + * @desc This is the test case function (SIP side) for TC_303_016 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_016(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_011(loc_CSeq_s); + }//end function f_Sip_TC_303_016 + + /* + * @desc This is the test case function (SIP side) for TC_303_017 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_017(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_017 + + /* + * @desc This is the test case function (SIP side) for TC_303_018 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_018(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_018 + + /* + * @desc This is the test case function (SIP side) for TC_303_019 + */ + function f_Sip_TC_303_019(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + + deactivate; + } // end function f_Sip_TC_303_019 + + /* + * @desc This is the test case function (SIP side) for TC_303_020 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_020(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_019(loc_CSeq_s); + }//end function f_Sip_TC_303_020 + + /* + * @desc This is the test case function (SIP side) for TC_303_021 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_021(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_019(loc_CSeq_s); + }//end function f_Sip_TC_303_021 + + /* + * @desc This is the test case function (SIP side) for TC_303_22 + */ + function f_Sip_TC_303_022(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + awaitingInviteRequest(); + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + + deactivate; + } // end function f_Sip_TC_303_022 + + /* + * @desc This is the test case function (SIP side) for TC_303_023 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_023(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE(false); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_023 + + /* + * @desc This is the test case function (SIP side) for TC_303_024 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_024(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_024 + + + /* + * @desc This is the test case function (SIP side) for TC_303_025 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_025(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_025 + + /* + * @desc This is the test case function (SIP side) for TC_303_026 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_026(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_026 + + /* + * @desc This is the test case function (SIP side) for TC_303_027 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_027(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_027 + + /* + * @desc This is the test case function (SIP side) for TC_303_028 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_028(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_028 + + /* + * @desc This is the test case function (SIP side) for TC_303_029 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_029(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_029 + + /* + * @desc This is the test case function (SIP side) for TC_303_030 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_030(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_023(loc_CSeq_s); + }//end function f_Sip_TC_303_030 + + /* + * @desc This is the test case function (SIP side) for TC_303_032 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_032(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + f_awaitingUPDATE(false); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_032 + + /* + * @desc This is the test case function (SIP side) for TC_303_033 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_033(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE(false); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_033 + + /* + * @desc This is the test case function (SIP side) for TC_303_034 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_034(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_033(loc_CSeq_s); + }//end function f_Sip_TC_303_034 + + /* + * @desc This is the test case function (SIP side) for TC_303_035 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_035(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_033(loc_CSeq_s); + }//end function f_Sip_TC_303_035 + + /* + * @desc This is the test case function (SIP side) for TC_303_036 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_036(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_033(loc_CSeq_s); + }//end function f_Sip_TC_303_036 + + /* + * @desc This is the test case function (SIP side) for TC_303_037 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_037(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_033(loc_CSeq_s); + }//end function f_Sip_TC_303_037 + + /* + * @desc This is the test case function (SIP side) for TC_303_038 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_038(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_033(loc_CSeq_s); + }//end function f_Sip_TC_303_038 + + /* + * @desc This is the test case function (SIP side) for TC_303_039 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_039(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_039 + + /* + * @desc This is the test case function (SIP side) for TC_303_040 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_040(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_040 + + /* + * @desc This is the test case function (SIP side) for TC_303_041 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_041(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_041 + + /* + * @desc This is the test case function (SIP side) for TC_303_042 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_042(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_042 + + /* + * @desc This is the test case function (SIP side) for TC_303_043 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_043(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_043 + + /* + * @desc This is the test case function (SIP side) for TC_303_044 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_044(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_044 + + /* + * @desc This is the test case function (SIP side) for TC_303_045 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_045(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_045 + + /* + * @desc This is the test case function (SIP side) for TC_303_046 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_046(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_046 + + /* + * @desc This is the test case function (SIP side) for TC_303_047 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_047(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_037(loc_CSeq_s); + }//end function f_Sip_TC_303_047 + + /* + * @desc This is the test case function (SIP side) for TC_303_048 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_048(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_048 + + /* + * @desc This is the test case function (SIP side) for TC_303_049 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_049(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_048(loc_CSeq_s); + }//end function f_Sip_TC_303_049 + + /* + * @desc This is the test case function (SIP side) for TC_303_050 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_050(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_048(loc_CSeq_s); + }//end function f_Sip_TC_303_050 + + /* + * @desc This is the test case function (SIP side) for TC_303_051 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_051(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_048(loc_CSeq_s); + }//end function f_Sip_TC_303_051 + + /* + * @desc This is the test case function (SIP side) for TC_303_052 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_052(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_048(loc_CSeq_s); + }//end function f_Sip_TC_303_052 + + /* + * @desc This is the test case function (SIP side) for TC_303_053 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_053(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_303_048(loc_CSeq_s); + }//end function f_Sip_TC_303_053 + + /* + * @desc This is the test case function (SIP side) for TC_303_054 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_054(in CSeq loc_CSeq_s) + runs on SipComponent { + + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_303_054 + + /* + * @desc This is the test case function (SIP side) for TC_303_055 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_055(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_toField(?); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, StatusLine484)) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + awaitingInviteRequest_toField(ToField_r2); + + +// NOTE: has been identified as TP problem - following lines are removed +// SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, +// caller_From, caller_To, v_Via, StatusLine484)) to sent_label; +// +// // awaiting ACK due to 200 OK INVITE +// awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_055 + + /* + * @desc This is the test case function (SIP side) for TC_303_056 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_056(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + awaitingInviteRequest_toField(ToField_r2); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_056 + + /* + * @desc This is the test case function (SIP side) for TC_303_057 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_303_057(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + awaitingInviteRequest_toField(ToField_r2); + + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_303_057 + + } // end group TP303_Sending_ACM + + group TP304_Sending_CPG { + + /* + * @desc This is the test case function (SIP side) for TC_304_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_304_001(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_304_001 + + /* + * @desc This is the test case function (SIP side) for TC_304_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_304_002(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + //awaiting BYE/CANCEL and respond with 200 OK + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + + deactivate; + }//end function f_Sip_TC_304_002 + + + } // end group TP304_Sending_CPG + + group TP305_Sending_ANM{ + + /* + * @desc This is the test case function (SIP side) for TC_305_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_305_001(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_send200OKInvite(v_CallId, v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_305_001 + + } // end group TP305_Sending_ANM + + group TP306_Sending_CON { + /* + * @desc This is the test case function (SIP side) for TC_306_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_306_001(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_306_001 + + /* + * @desc This is the test case function (SIP side) for TC_306_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_306_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_306_001(loc_CSeq_s); + }//end function f_Sip_TC_306_002 + + } // end group TP306_Sending_CON + + group TP307_Receiving_REL { + + /* + * @desc This is the test case function (SIP side) for TC_307_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_307_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_307_001 + + /* + * @desc This is the test case function (SIP side) for TC_307_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_307_002(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer_no100(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_002 + + /* + * @desc This is the test case function (SIP side) for TC_307_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_307_003(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + var Request v_Cancel; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingCANCEL(CANCEL_Request_r_1(v_CallId), v_CSeq, false, v_Cancel); + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + setHeadersOnReceiptOfCancel(v_Cancel); + send200OK(); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_003 + + /* + * @desc This is the test case function (SIP side) for TC_307_004 + */ + function f_Sip_TC_307_004(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_004 + + /* + * @desc This is the test case function (SIP side) for TC_307_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_307_005(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + + awaitingAckRequest(loc_CSeq_s); + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_005 + + /* + * @desc This is the test case function (SIP side) for TC_307_006 + */ + function f_Sip_TC_307_006(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_006 + + /* + * @desc This is the test case function (SIP side) for TC_307_007 + */ + function f_Sip_TC_307_007(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const integer c_cause[6] := {16,31,41,95,102,111}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest_withSDPOffer_no100(); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + // awaiting BYE + f_awaitingBYE_sendReply + (BYE_Request_r_12(v_CallId,c_cause[VA-1]),v_CSeq); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_007 + + /* + * @desc This is the test case function (SIP side) for TC_307_008 + */ + function f_Sip_TC_307_008(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var Request v_Cancel; + + const integer c_cause[6] := {16,31,41,95,102,111}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest_withSDPOffer(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingCANCEL(CANCEL_Request_r_1(v_CallId), v_CSeq, false, v_Cancel); + + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + // awaiting BYE + f_awaitingBYE_sendReply + (BYE_Request_r_12(v_CallId,c_cause[VA-1]),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_008 + + /* + * @desc This is the test case function (SIP side) for TC_307_009 + */ + function f_Sip_TC_307_009(in CSeq loc_CSeq_s, in integer VA, in integer VA2) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + const integer c_cause[6] := {16,31,41,95,102,111}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest_withSDPOffer_no100(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + SIPP.send(Response_100_s_1(v_CallId, v_CSeq, v_From, v_To, v_Via )) to sent_label; //axr + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply + (CANCEL_Request_r_12(v_CallId,c_cause[VA2-1]),BYE_Request_r_12(v_CallId,c_cause[VA2-1]),v_CSeq); + + + // implement postamble behavior which should set return code + + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_009 + + /* + * @desc This is the test case function (SIP side) for TC_307_010 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_307_010(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + + const integer c_cause[6] := {16,31,41,95,102,111}; + + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); +// f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + awaitingAckRequest(loc_CSeq_s); + // awaiting BYE + f_awaitingBYE_sendReply + (BYE_Request_r_12(v_CallId,c_cause[VA-1]),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_010 + + /* + * @desc This is the test case function (SIP side) for TC_307_011 + */ + function f_Sip_TC_307_011(in CSeq loc_CSeq_s, in integer VA, in integer VA2) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + const integer c_cause[6] := {16,31,41,95,102,111}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply + (CANCEL_Request_r_12(v_CallId,c_cause[VA2-1]),BYE_Request_r_12(v_CallId,c_cause[VA2-1]),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_307_011 + } // end group TP307_ReceiptREL + + + group TP308_Sending_REL { + + /* + * @desc This is the test case function (SIP side) for TC_308_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_001(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + sendBYE(v_CallId, v_CSeq, callee_From, callee_To,v_reqHostPort,v_Route); + awaitingOkResponse(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_001 + + /* + * @desc This is the test case function (SIP side) for TC_308_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_004(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // the cause in the following BYE is due to a PIXIT parameter PX_SIP_BYE_CAUSE + f_sendBYE_cause(v_CallId, v_CSeq, callee_From, callee_To,v_reqHostPort,v_Route); + awaitingOkResponse(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_004 + + /* + * @desc This is the test case function (SIP side) for TC_308_007 + */ + function f_Sip_TC_308_007(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine2[25] := + {StatusLine400, StatusLine402, StatusLine403, StatusLine404, + StatusLine405, StatusLine406, StatusLine408, StatusLine410, + StatusLine423, StatusLine480, StatusLine481, StatusLine482, + StatusLine483, StatusLine485, StatusLine486, StatusLine488, + StatusLine493, StatusLine500, StatusLine501, StatusLine502, + StatusLine504, StatusLine600, StatusLine603, StatusLine604, + StatusLine606}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA-1])) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_007 + + /* + * @desc This is the test case function (SIP side) for TC_308_008 + * @param loc_CSeq_s Transaction Id + * Note: test case behaviour is identical with TC_308_007 + * but the variant parameter value are different! + */ + function f_Sip_TC_308_008(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine2[13] := + {StatusLine401, StatusLine407, StatusLine413, StatusLine414, + StatusLine415, StatusLine416, StatusLine420, StatusLine421, + StatusLine484, StatusLine503, StatusLine505, StatusLine513, + StatusLine580}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA-1])) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_308_008 + + /* + * @desc This is the test case function (SIP side) for TC_308_009 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_009(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_308_008(loc_CSeq_s, VA); + }//end function f_Sip_TC_TC_308_009 + + /* + * @desc This is the test case function (SIP side) for TC_308_010 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_010(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_308_010 + + + /* + * @desc This is the test case function (SIP side) for TC_308_011 + * @param loc_CSeq_s Transaction Id + * Note: test case behaviour is identical with TC_308_009 + * but the response message is different! + */ + function f_Sip_TC_308_011(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, StatusLine491)) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_308_011 + + /* + * @desc This is the test case function (SIP side) for TC_308_013 + */ + function f_Sip_TC_308_013(in CSeq loc_CSeq_s, in integer VA, in integer VA2) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + const StatusLine c_StatusLine2[25] := + {StatusLine400, StatusLine402, StatusLine403, StatusLine404, + StatusLine405, StatusLine406, StatusLine408, StatusLine410, + StatusLine423, StatusLine480, StatusLine481, StatusLine482, + StatusLine483, StatusLine485, StatusLine486, StatusLine488, + StatusLine493, StatusLine500, StatusLine501, StatusLine502, + StatusLine504, StatusLine600, StatusLine603, StatusLine604, + StatusLine606}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA2-1])) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_013 + + /* + * @desc This is the test case function (SIP side) for TC_308_014 + */ + function f_Sip_TC_308_014(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine2[4] := + {StatusLine408, StatusLine486, StatusLine600, StatusLine603}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA-1])) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_014 + + /* + * @desc This is the test case function (SIP side) for TC_308_017 + */ + function f_Sip_TC_308_017(in CSeq loc_CSeq_s, in integer VA, in integer VA2) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + const StatusLine c_StatusLine2[25] := + {StatusLine400, StatusLine402, StatusLine403, StatusLine404, + StatusLine405, StatusLine406, StatusLine408, StatusLine410, + StatusLine423, StatusLine480, StatusLine481, StatusLine482, + StatusLine483, StatusLine485, StatusLine486, StatusLine488, + StatusLine493, StatusLine500, StatusLine501, StatusLine502, + StatusLine504, StatusLine600, StatusLine603, StatusLine604, + StatusLine606}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_xxx_s_2(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA2-1], PX_SIP_BYE_CAUSE)) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_017 + + /* + * @desc This is the test case function (SIP side) for TC_308_018 + * @param loc_CSeq_s Transaction Id + * Note: test case behaviour is identical with TC_308_007 + * but the variant parameter value are different! + */ + function f_Sip_TC_308_018(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine2[5] := + {StatusLine300, StatusLine301, StatusLine302, StatusLine305, + StatusLine380}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA-1])) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_308_018 + + /* + * @desc This is the test case function (SIP side) for TC_308_019 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_019(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine2[5] := + {StatusLine300, StatusLine301, StatusLine302, StatusLine305, + StatusLine380}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest_withSDPOffer(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine2[VA-1])) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + awaitingInviteRequest_withSDPOffer(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_308_019 + + /* + * @desc This is the test case function (SIP side) for TC_308_020 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_020(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest_withSDPOffer(); + + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_308_020 + + /* + * @desc This is the test case function (SIP side) for TC_308_021 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_021(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest_withSDPOffer(); + + SIPP.send(Response_180_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + + // awaiting BYE + f_awaitingBYE_sendReply + (BYE_Request_r_12(v_CallId,PX_SIP_BYE_CAUSE),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_308_021 + + /* + * @desc This is the test case function (SIP side) for TC_308_022 + */ + function f_Sip_TC_308_022(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, StatusLine484)) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_022 + + /* + * @desc This is the test case function (SIP side) for TC_308_023 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_023(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, StatusLine484)) to sent_label; + + // awaiting ACK due to 200 OK INVITE + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_TC_308_023 + + /* + * @desc This is the test case function (SIP side) for TC_308_024 + */ + function f_Sip_TC_308_024(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + // implement postamble behavior which should set return code + + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_308_024 + + /* + * @desc This is the test case function (SIP side) for TC_308_025 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_025(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_308_024(loc_CSeq_s); + }//end function f_Sip_TC_TC_308_025 + + /* + * @desc This is the test case function (SIP side) for TC_308_026 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_308_026(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from Invite + + SIPP.send(Response_183_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + f_awaitingPRACK_sendReply(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL or BYE according to q1912.5, 7.7.1 (3) + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_1(v_CallId),BYE_Request_r_1(v_CallId),v_CSeq); + + // implement postamble behavior which should set return code + + // send 487 response (on INVITE) and await ACK + f_rejectInvite_with487(v_BOO_RecordRoute_invite, v_CSeq_invite); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_TC_TC_308_026 + + } // end group TP308_Sending_REL + + group TP309_Receiving_RSC_GRS_CGB { + + /* + * @desc This is the test case function (SIP side) for TC_309_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_309_001 + + /* + * @desc This is the test case function (SIP side) for TC_309_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_002(in CSeq loc_CSeq_s, in integer VA, in integer VA2) runs on SipComponent { + //Variables and Constants + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + const StatusLine c_StatusLine[5] := + {StatusLine100, StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer_no100(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + + SIPP.send(Response_xxx_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + //action(c_resourceUnavailable); + + // awaiting CANCEL + // receive no cause or cause #31 due to local policy + f_awaitingCANCEL_sendReply(CANCEL_Request_r_14(v_CallId,31),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_309_002 + + /* + * @desc This is the test case function (SIP side) for TC_309_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_003(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + send200OKInvite(); + + awaitingAckRequest(loc_CSeq_s); + + // awaiting BYE receive no cause or cause #31 due to local policy + f_awaitingBYE_sendReply(BYE_Request_r_14(v_CallId,31),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_309_003 + + /* + * @desc This is the test case function (SIP side) for TC_309_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_005 (in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting BYE receive no cause or cause #31 due to local policy + f_awaitingBYE_sendReply(BYE_Request_r_14(v_CallId,31),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_309_005 + + + /* + * @desc This is the test case function (SIP side) for TC_309_006 + */ + function f_Sip_TC_309_006(in CSeq loc_CSeq_s, in integer VA, in integer VA2) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + + const StatusLine c_StatusLine[4] := + {StatusLine180, StatusLine181, StatusLine182, StatusLine183}; + + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + awaitingInviteRequest(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for "487 Request terminated" + + SIPP.send(Response_xxx_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, c_StatusLine[VA-1])) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting CANCEL or BYE + // receive no cause or cause #31 due to local policy + f_awaitingCANCELorBYE_sendReply(CANCEL_Request_r_14(v_CallId,31),BYE_Request_r_14(v_CallId,31),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_309_006 + + + /* + * @desc This is the test case function (SIP side) for TC_309_007 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_007(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_309_007 + + /* + * @desc This is the test case function (SIP side) for TC_309_008 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_008(in CSeq loc_CSeq_s, in integer VA, in integer VA2) + runs on SipComponent { + f_Sip_TC_309_002(loc_CSeq_s, VA, VA2); + }//end function f_Sip_TC_309_008 + + /* + * @desc This is the test case function (SIP side) for TC_309_009 + * @param loc_CSeq_s Transaction Id + * note: similar to f_Sip_TC_307_003 but here is no s1 sync. + */ + function f_Sip_TC_309_009(in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + var Request v_Cancel; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + awaitingInviteRequest_withSDPOffer(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingCANCEL(CANCEL_Request_r_1(v_CallId), v_CSeq, false, v_Cancel); + + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + setHeadersOnReceiptOfCancel(v_Cancel); + send200OK(); + + //awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_309_009 + + /* + * @desc This is the test case function (SIP side) for TC_309_011 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_011(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_309_005(loc_CSeq_s, VA); + }//end function f_Sip_TC_309_011 + + /* + * @desc This is the test case function (SIP side) for TC_309_012 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_012(in CSeq loc_CSeq_s, in integer VA, in integer VA2) + runs on SipComponent { + f_Sip_TC_309_006(loc_CSeq_s, VA, VA2); + }//end function f_Sip_TC_309_012 + + /* + * @desc This is the test case function (SIP side) for TC_309_013 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_013 (in CSeq loc_CSeq_s) + runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + + v_CSeq := loc_CSeq_s; + + // local variables to handle two different calls + var CSeq v_CSeq2; + var CallId v_CallId2; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // call 1 + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + f_send200OKInvite(v_CallId, v_CSeq); + + // call 2 + awaitingInviteRequest_withSDPOffer(); + v_CallId2 := v_CallId; + v_CSeq2 := v_CSeq; + SIPP.send(Response_180_s_1( v_CallId2, v_CSeq2, + caller_From, caller_To, v_Via )) to sent_label; + f_send200OKInvite(v_CallId2, v_CSeq2); + + // awaiting BYEs for both calls + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId2),v_CSeq2); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_309_013 + + /* + * @desc This is the test case function (SIP side) for TC_309_014 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_014(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_301_008(loc_CSeq_s); + }//end function f_Sip_TC_309_014 + + /* + * @desc This is the test case function (SIP side) for TC_309_015 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_015(in CSeq loc_CSeq_s, in integer VA, in integer VA2) + runs on SipComponent { + f_Sip_TC_309_002(loc_CSeq_s, VA, VA2); + }//end function f_Sip_TC_309_015 + + /* + * @desc This is the test case function (SIP side) for TC_309_016 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_016(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_309_009(loc_CSeq_s); + }//end function f_Sip_TC_309_016 + + /* + * @desc This is the test case function (SIP side) for TC_309_017 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_017(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_309_005(loc_CSeq_s, VA); + }//end function f_Sip_TC_309_017 + + /* + * @desc This is the test case function (SIP side) for TC_309_018 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_018(in CSeq loc_CSeq_s, in integer VA, in integer VA2) + runs on SipComponent { + f_Sip_TC_309_006(loc_CSeq_s, VA, VA2); + }//end function f_Sip_TC_309_018 + + /* + * @desc This is the test case function (SIP side) for TC_309_019 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_309_019(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_309_013(loc_CSeq_s); + }//end function f_Sip_TC_309_019 + + } // end group TP309_Receiving_RSC_GRS_CGB + + + } // end group TP3_InterworkingFromISUPtoSIP + + } // end group BasicCall + + group SupplementaryServices { + group TP5_InterworkingFromSIPtoISUP { + group TP501_CLI { + + /* + * @desc This is the test case function (SIP side) for TC_501_001 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) + to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_001 + + /* + * @desc This is the test case function (SIP side) for TC_501_002 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + Privacy_s_1(privacy_none), // privacy none + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_002 + + /* + * @desc This is the test case function (SIP side) for TC_501_003 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_003(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + Privacy_s_1(privacy_header), // privacy header + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_003 + + /* + * @desc This is the test case function (SIP side) for TC_501_004 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_004(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + Privacy_s_1(privacy_user), // privacy user + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_004 + + /* + * @desc This is the test case function (SIP side) for TC_501_005 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_005(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + Privacy_s_1(privacy_id), // privacy id + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_005 + + /* + * @desc This is the test case function (SIP side) for TC_501_006 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_006(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_s_2( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_006 + + /* + * @desc This is the test case function (SIP side) for TC_501_007 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_007(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + Privacy_s_1(privacy_none), // privacy none + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_007 + + /* + * @desc This is the test case function (SIP side) for TC_501_008 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_008(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + Privacy_s_1(privacy_header), // privacy header + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_008 + + /* + * @desc This is the test case function (SIP side) for TC_501_009 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_009(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + Privacy_s_1(privacy_user), // privacy user + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_009 + + /* + * @desc This is the test case function (SIP side) for TC_501_010 + * callee number is due to PX_TE_CALLEE_USERINFO + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_010(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + Privacy_s_1(privacy_id), // privacy id + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_501_010 + + /* + * @desc This is the test case function (SIP side) for TC_501_011 + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_011(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_pAssertedId_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(fromField_anonymous(getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_011 + + /* + * @desc This is the test case function (SIP side) for TC_501_012 + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_012(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(fromField_anonymous(getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_none), // privacy none + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_012 + + /* + * @desc This is the test case function (SIP side) for TC_501_013 + */ + function f_Sip_TC_501_013(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(fromField_anonymous(getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_header), // privacy header + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_013 + + /* + * @desc This is the test case function (SIP side) for TC_501_014 + */ + function f_Sip_TC_501_014(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(fromField_anonymous(getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_user), // privacy user + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_014 + + /* + * @desc This is the test case function (SIP side) for TC_501_015 + */ + function f_Sip_TC_501_015(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(fromField_anonymous(getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_id), // privacy id + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_015 + + /* + * @desc This is the test case function (SIP side) for TC_501_016 + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_016(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_pAssertedId_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_016 + + + /* + * @desc This is the test case function (SIP side) for TC_501_017 + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_017(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_none), // privacy none + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_017 + + /* + * @desc This is the test case function (SIP side) for TC_501_018 + */ + function f_Sip_TC_501_018(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_header), // privacy header + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_018 + + /* + * @desc This is the test case function (SIP side) for TC_501_019 + */ + function f_Sip_TC_501_019(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_user), // privacy user + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_019 + + /* + * @desc This is the test case function (SIP side) for TC_501_020 + */ + function f_Sip_TC_501_020(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_CLI_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + valueof(From_CGPN_s(SipUrl_withCallingPartyNumber(PX_SIPURL_CGPN) , getRndTag())), + v_To, + v_Via, + PAssertedID_s_1(Addr_Union_NameAddr + (CallingAddr(PX_SIPURL_CGPN_PASSERTED, + SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED))) + ), //PAssertedID_s_1(PX_SIP_PASSERTEDID), // format: sip: +CC NDC+SNN + Privacy_s_1(privacy_id), // privacy id + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_020 + + /* + * @desc This is the test case function (SIP side) for TC_501_021 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_501_021(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_501_001(loc_CSeq_s, 0); // reuse of TC_501_001 + }//end function f_Sip_TC_501_021 + + /* + * @desc This is the test case function (SIP side) for TC_501_022 + * Note: no differences on SIP side for the TC variants! + */ + function f_Sip_TC_501_022(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + // 183 indicating an announcement may be received on release of the call on the ISUP side + v_ignore183:=true; + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_pAssertedId_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PAssertedID_s_2( Addr_Union_NameAddr(CallingAddr_CGPN) , //(PX_SIP_PASSERTEDID, // format: sip: +CC NDC+SNN + Addr_Union_NameAddr(CallingAddr_CGPN2)), //PX_SIP_PASSERTEDID2), // format: tel: +CC NDC+SNN + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + cancelCall(v_CallId, v_CSeq, v_From, v_Cancel_To, v_reqHostPort, v_Via); + f_awaitSUTidle(); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_501_022 + + /* + * @desc This is the test case function (SIP side) for TC_501_023 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_501_023(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_501_001(loc_CSeq_s, VA); // reuse of TC_501_001 + }//end function f_Sip_TC_501_023 + + /* + * @desc This is the test case function (SIP side) for TC_501_024 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_501_024(in CSeq loc_CSeq_s, in integer VA) + runs on SipComponent { + f_Sip_TC_501_006(loc_CSeq_s, VA); // reuse of TC_501_006 + }//end function f_Sip_TC_501_024 + + } // end group TP501_CLI + + group TP502_HOLD { + /* + * @desc This is the test case function (SIP side) for TC_502_001 + */ + function f_Sip_TC_502_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + var CSeq v_callerCSeq; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + var boolean v_BOO_RecordRoute_resp := v_BOO_RecordRoute; // save BOO_RecordRoute from Response + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.hostPort := v_reqHostPort; + + // calling party set call on HOLD + // VA1: sendonly + v_attribute := "a=sendonly" & CRLF; + + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.hostPort := v_reqHostPort; + + // calling party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF; // may be omitted since default + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + // Remember CSeq in SIP-toISUP direction + v_callerCSeq := v_CSeq; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // called party set call on HOLD + awaitingInviteRequest(); + // sendonly + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict()); + + // called party RETRIEVE call + awaitingInviteRequest(); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // Reset CSeq to SIP-toISUP direction + v_CSeq := v_callerCSeq; + + // implement postamble behavior which should set return code + v_BOO_Route := v_BOO_RecordRoute_resp; // use route if BOO_RecordRoute in Response + terminateCall( + v_CallId, + v_CSeq, + callee_From, + callee_To, + v_reqHostPort, + v_Route); // Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_001 + + /* + * @desc This is the test case function (SIP side) for TC_502_002 + */ + function f_Sip_TC_502_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + + // calling party set call on hold + // VA1: sendonly + v_attribute := "a=sendonly" & CRLF ; + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + + // get 200 OK UPDATE + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // VA1: recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // calling party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF ; // may be omitted since default + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_002 + + + + /* + * @desc This is the test case function (SIP side) for TC_502_003 + */ + function f_Sip_TC_502_003(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + + //f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + + // calling party set call on hold + // VA1: sendonly + v_attribute := "a=sendonly" & CRLF ; + + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + + // get 200 OK UPDATE + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // VA1: recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + //f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // calling party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF ; // may be omitted since default + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_003 + + function f_Sip_TC_502_004(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + + // calling party set call on hold + // VA1: sendonly + v_attribute := "a=sendonly" & CRLF ; + + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + + // get 200 OK UPDATE + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // VA1: recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // calling party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF ; // may be omitted since default + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_004 + + function f_Sip_TC_502_005(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // calling party set call on HOLD + // sendonly + f_awaitingUPDATE(false); + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + // Answer to the UPDATE + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + send200OK(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // calling party RETRIEVE call + f_awaitingUPDATE(false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + //Answer to the UPDATE + send200OK(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_005 + + function f_Sip_TC_502_006(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + var CSeq v_callerCSeq; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.hostPort := v_reqHostPort; + + // calling party set call on HOLD + // sendonly + v_attribute := "a=sendonly" & CRLF; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + // Remember CSeq in SIP-toISUP direction + v_callerCSeq := v_CSeq; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // called party set call on HOLD + awaitingInviteRequest(); + // sendonly + if (not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=inactive" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_callerCSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.hostPort := v_reqHostPort; + v_From := callee_From; + v_To := callee_To; + + // calling party RETRIEVE call + v_attribute := "a=recvonly" & CRLF; // may be omitted since default + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendonly))) + {if (match(v_Body,Inc_sendrecv) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict()); + + // called party RETRIEVE call + awaitingInviteRequest(); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=sendrecv" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendrecv" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // Reset CSeq to SIP-toISUP direction + v_CSeq := v_callerCSeq; + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + callee_From, + callee_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_006 + + function f_Sip_TC_502_007(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var charstring v_attribute; + var CSeq v_callerCSeq; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + // sendrecv is default + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.hostPort := v_reqHostPort; + + // calling party set call on HOLD + // sendonly + v_attribute := "a=sendonly" & CRLF; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + // Remember CSeq in SIP-toISUP direction + v_callerCSeq := v_CSeq; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // called party set call on HOLD + awaitingInviteRequest(); + // inactive + if (not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=inactive" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // called party RETRIEVE call + awaitingInviteRequest(); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_recvonly))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_sendrecv)) + {setverdict(fail);}}; + + // sendonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=sendonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict()); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_callerCSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.hostPort := v_reqHostPort; + v_From := callee_From; + v_To := callee_To; + + // calling party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF; // may be omitted since default + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_502_007 + + + } // end group TP502_HOLD + + group TP503_TP { + /* + * @desc This is the test case function (SIP side) for TC_503_001 + */ + function f_Sip_TC_503_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + var CSeq v_callerCSeq; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + // Remember CSeq in SIP-toISUP direction + v_callerCSeq := v_CSeq; + + f_awaitingInviteRequest(INVITE_Request_r_1); + if (not match(v_Body,Inc_sendonly) and not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + f_awaitingInviteRequest(INVITE_Request_r_1); + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + terminateCall( + v_CallId, + v_callerCSeq, + callee_From, + callee_To, + v_reqHostPort, + Route_l_1); + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_503_001 + + /* + * @desc This is the test case function (SIP side) for TC_503_002 + */ + function f_Sip_TC_503_002(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_awaitingInviteRequest(INVITE_Request_r_1); + if (not match(v_Body,Inc_sendonly) and not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + TResp.start(PX_Timeout_T2*0.95); + alt + { + [] TResp.timeout{}; + } + + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_503_002 + + } // end group TP503_TP + + group TP504_CONF { + /* + * @desc This is the test case function (SIP side) for TC_504_001 + */ + function f_Sip_TC_504_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + awaitingInviteRequest(); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + awaitingInviteRequest(); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_504_001 + + /* + * @desc This is the test case function (SIP side) for TC_504_002 + */ + function f_Sip_TC_504_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_awaitingUPDATE(false); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_awaitingUPDATE(false); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_504_002 + + /* + * @desc This is the test case function (SIP side) for TC_504_003 + */ + function f_Sip_TC_504_003(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + awaitingInviteRequest(); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + awaitingInviteRequest(); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_504_003 + + /* + * @desc This is the test case function (SIP side) for TC_504_004 + */ + function f_Sip_TC_504_004(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_awaitingUPDATE(false); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + f_awaitingUPDATE(false); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_504_004 + + /* + * @desc This is the test case function (SIP side) for TC_504_005 + */ + function f_Sip_TC_504_005(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + checkNoFurtherMessages(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_504_005 + + + } // end group TP504_CONF + + group TP505_3PTY { + /* + * @desc This is the test case function (SIP side) for TC_505_001 + */ + function f_Sip_TC_505_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + awaitingInviteRequest(); +// // VA1: sendonly or inactive +// not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; +// // VA2: sendrecv or recvonly or omitted +// if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());//Synchronisation point 1 + + awaitingInviteRequest(); +// // VA1: sendonly or inactive +// if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; +// // VA2: sendrecv or recvonly or omitted +// if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());//Synchronisation point 2 + + awaitingInviteRequest(); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());//Synchronisation point 3 + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_505_001 + + /* + * @desc This is the test case function (SIP side) for TC_505_002 + */ + function f_Sip_TC_505_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_awaitingUPDATE(false); +// // VA1: sendonly or inactive +// if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; +// // VA2: sendrecv or recvonly or omitted +// if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_awaitingUPDATE(false); +// // VA1: sendonly or inactive +// if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; +// // VA2: sendrecv or recvonly or omitted +// if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_awaitingUPDATE(false); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_505_002 + + /* + * @desc This is the test case function (SIP side) for TC_505_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_505_003(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_504_005(loc_CSeq_s); + }//end function f_Sip_TC_505_003 + + + } // end group TP505_3PTY + + group TP506_COL { + /* + * @desc This is the test case function (SIP side) for TC_506_001 + */ + function f_Sip_TC_506_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_506_001 + + } // end group TP506_COL + + group TP507_MCID { + /* + * @desc This is the test case function (SIP side) for TC_507_001 + */ + function f_Sip_TC_507_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_507_001 + + /* + * @desc This is the test case function (SIP side) for TC_507_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_507_002(in CSeq loc_CSeq_s) + runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + var float v_timeout := PX_Timeout_T39; + var float v_timeout_max := (v_timeout)*1.1; + + //Let protocol timer T39 + 10% expire + f_Sip_Wait(v_timeout_max); + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + }//end function f_Sip_507_002 + + } // end group TP507_MCID + + group TP508_SUB { + + /* + * @desc This is the test case function (SIP side) for TC_508_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_508_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_506_001(loc_CSeq_s); + }//end function f_Sip_508_001 + + } // end group TP508_SUB + + group TP509_CDIV { + /* + * @desc This is the test case function (SIP side) for TC_509_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_509_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_507_001(loc_CSeq_s); + }//end function f_Sip_509_001 + + /* + * @desc This is the test case function (SIP side) for TC_509_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_509_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_506_001(loc_CSeq_s); + }//end function f_Sip_509_002 + + /* + * @desc This is the test case function (SIP side) for TC_509_003 + */ + function f_Sip_TC_509_003(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 + f_awaitingRespons_but100_andAck(Response_180_r_1(v_CallId, v_CSeq),v_CSeq,false); + + // awaiting 200 + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_509_003 + + /* + * @desc This is the test case function (SIP side) for TC_509_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_509_004(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_506_001(loc_CSeq_s); + }//end function f_Sip_509_004 + + } // end group TP509_CDIV + + group TP510_CW { + /* + * @desc This is the test case function (SIP side) for TC_510_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_510_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_506_001(loc_CSeq_s); + }//end function f_Sip_510_001 + + /* + * @desc This is the test case function (SIP side) for TC_510_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_510_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_509_003(loc_CSeq_s); + }//end function f_Sip_510_002 + + } // end group TP510_CW + + group TP511_UUS { + /* + * @desc This is the test case function (SIP side) for TC_511_001 + */ + function f_Sip_TC_511_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200("A"); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // note: check if this is needed + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_511_001 + + /* + * @desc This is the test case function (SIP side) for TC_511_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_511_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_511_001(loc_CSeq_s); + }//end function f_Sip_511_002 + + } // end group TP511_UUS + + group TP512_ECT { + + /* + * @desc This is the test case function (SIP side) for TC_512_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_512_001(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_511_001(loc_CSeq_s); + }//end function f_Sip_512_001 + + /* + * @desc This is the test case function (SIP side) for TC_512_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_512_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_511_001(loc_CSeq_s); + }//end function f_Sip_512_002 + + } // end group TP512_ECT + + group TP513_CCBS { + /* + * @desc This is the test case function (SIP side) for TC_513_001 + */ + function f_Sip_TC_513_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting failure response (4xx or 5xx) according to testcase variant and send Ack + f_awaitingRespons_but100_andAck(Response_NonOK_Final_r_2(v_CallId, v_CSeq, 486), v_CSeq,true); + f_awaitSUTidle(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_513_001 + + } // end group TP513_CCBS + + group TP514_CCNR { + /* + * @desc This is the test case function (SIP side) for TC_514_001 + */ + function f_Sip_TC_514_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_SDP_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + // awaiting 180 with A-law and not u-law and 200 + f_Recv180_200(" "); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // send BYE and await 200 OK + terminateCall( + v_CallId, + v_CSeq, + caller_From, + caller_To, + v_reqHostPort, + Route_l_1); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_514_001 + + } // end group TP514_CCNR + + group TP515_ACR { + /* + * @desc This is the test case function (SIP side) for TC_515_001 + */ + function f_Sip_TC_515_001(in CSeq loc_CSeq_s) runs on SipComponent { + var FncRetCode v_ret := e_error; + var default v_def := activate (a_Sip_catchSyncStop()); + // handle syncServerStop signal receipt + // implement preamble behavior which should set return code + var Response v_Response; + v_CSeq := loc_CSeq_s; + v_Default := activate (a_clearRegistration()); + + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + + setHeadersIUTInvite(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + // implement test body behavior which should set return code + SIPP.send ( + INVITE_Request_privacy_s_1( + v_RequestUri, + v_CallId, + v_CSeq, + v_From, + v_To, + v_Via, + Privacy_s_1(privacy_id), // privacy none + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA + )) to sent_label; + + // awaiting 603 and respond with 200 OK + f_awaitingRespons_but100_andAck(Response_603_r_3(v_CallId, v_CSeq, 24),v_CSeq,true); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // implement postamble behavior which should set return code + + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_515_001 + + + /* + * @desc This is the test case function (SIP side) for TC_515_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_515_002(in CSeq loc_CSeq_s) + runs on SipComponent { + f_Sip_TC_101_009(loc_CSeq_s); + }//end function f_Sip_TC_TC_515_002 + + } // end group TP515_ACR + } +group TP6_InterworkingFromISUPtoSIP { + + group TP601_CLI { + + /* + * @desc This is the test case function (SIP side) for TC_601_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_601_001(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest(INVITE_Request_r_From( + // fromField_r(SipUrl_ofUnknown_s) // without display info + fromField_r3(SipUrl_ofUnknown_s) // with omitted display info + )); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_001 + + + + /* + * @desc This is the test case function (SIP side) for TC_601_002 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From( + fromField_r2(SipUrl_withCalledPartyNumber2(PX_SIPURL_CDPN_INTERNATIONAL_HOME)))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_002 + + /* + * @desc This is the test case function (SIP side) for TC_601_003 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_003(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From( + fromField_r3(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN_PASSERTED)))); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_003 + + /* + * @desc This is the test case function (SIP side) for TC_601_004 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_004(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r2(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), // with display +//workaround(pass) PAssertedID_s_1(*) // with display +//workaround(fail) PAssertedID_s_1( Addr_Union_NameAddr(*)) // with display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN_r)) // with display + )); + if (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0])) + {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_004 + + /* + * @desc This is the test case function (SIP side) for TC_601_005 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_005(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + // no display name in "from" header field allowed + INVITE_Request_r_From3( + fromField_r3(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN)) + )); + if (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0])) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_005 + + /* + * @desc This is the test case function (SIP side) for TC_601_006 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_006(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r4(SipUrl_Anonymous), + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN)) //PAssertedID_s_1("tbd") + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_006 + + /* + * @desc This is the test case function (SIP side) for TC_601_007 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_007(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r3(SipUrl_Anonymous), + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN)) //PAssertedID_s_1("tbd") + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_007 + + /* + * @desc This is the test case function (SIP side) for TC_601_008 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_008(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r2(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), // with display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN_nodisplay)) + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_008 + + /* + * @desc This is the test case function (SIP side) for TC_601_009 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_009(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r3(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), // no display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN_nodisplay)) + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_009 + + /* + * @desc This is the test case function (SIP side) for TC_601_010 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_010(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r4(SipUrl_Anonymous), // with display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN_nodisplay)) // no display + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_010 + + /* + * @desc This is the test case function (SIP side) for TC_601_011 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_011(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r3(SipUrl_Anonymous), // no display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN_nodisplay)) // no display + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_011 + + /* + * @desc This is the test case function (SIP side) for TC_601_012 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_012(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + + f_Sip_TC_601_004(loc_CSeq_s, VA) + + } // end function f_Sip_TC_601_012 + + /* + * @desc This is the test case function (SIP side) for TC_601_013 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_013(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r4(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), // with display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN)) // with display + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_013 + + /* + * @desc This is the test case function (SIP side) for TC_601_014 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_014(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r3(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), // no display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN)) // with display + )); + if (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0])) + {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_014 + + /* + * @desc This is the test case function (SIP side) for TC_601_015 + * @param loc_CSeq_s Transaction Id + * note: there is no difference for the variants at the SIP side + */ + function f_Sip_TC_601_015(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preambles + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Testbody + f_awaitingInviteRequest( + INVITE_Request_r_From3( + fromField_r3(SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN)), // no display + PAssertedID_s_1( Addr_Union_NameAddr(CallingAddr_CGPN)) // with display + )); + // check Privacy header: "id" + if (not (v_valid_Privacy and match(v_Privacy.privValueList[0], Privacy_s_1(privacy_id).privValueList[0]))) + {setverdict(fail)}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + //awaiting CANCEL according to q1912.5, 7.7.1 (3) + f_awaitingCANCEL_sendReply(CANCEL_Request_r_1(v_CallId),v_CSeq); + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_601_015 + +} // end group TP601_CLI + + group TP602_HOLD { + /* + * @desc This is the test case function (SIP side) for TC_602_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_602_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv or absent + awaitingInviteRequest_withSDPOffer(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for ReInvite + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from ReInvite + + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv or absent + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call on HOLD + awaitingInviteRequest(); + // sendonly + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // calling party retrieve RETRIEVE + awaitingInviteRequest(); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // called party set call on HOLD + // VA1: sendonly + v_attribute := "a=sendonly" & CRLF ; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_CSeq.method := "INVITE"; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.userInfo := omit; + v_RequestUri.hostPort := v_reqHostPort; +// SIPP.send ( +// INVITE_Request_SDP_s_1( +// v_RequestUri, +// v_CallId, +// v_CSeq, +// callee_From, //v_From, +// callee_To, //v_To, +// v_Via, +// PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + callee_From, + callee_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict()); + + // called party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF ; // may be omitted since default + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_CSeq.method := "INVITE"; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.userInfo := omit; + v_RequestUri.hostPort := v_reqHostPort; +// SIPP.send ( +// INVITE_Request_SDP_s_1( +// v_RequestUri, +// v_CallId, +// v_CSeq, +// callee_From, //v_From, +// callee_To, //v_To, +// v_Via, +// PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + caller_From, // variable changed due to last response + caller_To, // variable changed due to last response + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_602_001 + + /* + * @desc This is the test case function (SIP side) for TC_602_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_602_002(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + awaitingAckRequest(v_CSeq); + + // calling party set call on HOLD + // sendonly + f_awaitingUPDATE(false); + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + // Answer to the UPDATE + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + send200OK(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // calling party RETRIEVE call + f_awaitingUPDATE(false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + //Answer to the UPDATE + send200OK(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_602_002 + + /* + * @desc This is the test case function (SIP side) for TC_602_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_602_003(in CSeq loc_CSeq_s) runs on SipComponent { + + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // Same Cseq number + v_CSeq.method := "INVITE"; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + + // calling party set call on hold + // VA1: sendonly + v_attribute := "a=sendonly" & CRLF ; + + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + callee_From, //v_From, + callee_To, //v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + + // get 200 OK UPDATE + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // recvonly + if (not match(v_Body,Inc_recvonly)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // calling party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF ; // may be omitted since default + setHeadersForUPDATE(v_CSeq); + SIPP.send (UPDATE_Request_s_1( + v_reqHostPort, + v_CallId, + v_CSeq, + callee_From, //v_From, + callee_To, //v_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA // should not include attribute a=conf + )) to sent_label; + + f_awaitingRespons_but100_andAck(Response_200_r_1(v_CallId, v_CSeq),v_CSeq,false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_602_003 + + function f_Sip_TC_602_004(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call on HOLD + // sendonly + f_awaitingUPDATE(false); + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + // Answer to the UPDATE + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + send200OK(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // calling party RETRIEVE call + f_awaitingUPDATE(false); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + //Answer to the UPDATE + send200OK(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + } // end function f_Sip_TC_602_004 + + /* + * @desc This is the test case function (SIP side) for TC_602_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_602_005(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv or absent + awaitingInviteRequest_withSDPOffer(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for ReInvite + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from ReInvite + + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv or absent + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call on HOLD + awaitingInviteRequest(); + // sendonly + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // called party set call on HOLD + // sendonly + v_attribute := "a=inactive" & CRLF ; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.userInfo := omit; + v_RequestUri.hostPort := v_reqHostPort; +// SIPP.send ( +// INVITE_Request_SDP_s_1( +// v_RequestUri, +// v_CallId, +// v_CSeq, +// callee_From, //v_From, +// callee_To, //v_To, +// v_Via, +// PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + callee_From, + callee_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // recvonly + if (not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // calling party retrieve RETRIEVE + awaitingInviteRequest(); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_recvonly))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_sendrecv)) + {setverdict(fail);}}; + + // sendonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=sendonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict()); + + // called party RETRIEVE call + v_attribute := "a=sendrecv" & CRLF ; // may be omitted since default + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.userInfo := omit; + v_RequestUri.hostPort := v_reqHostPort; +// SIPP.send ( +// INVITE_Request_SDP_s_1( +// v_RequestUri, +// v_CallId, +// v_CSeq, +// callee_From, //v_From, +// callee_To, //v_To, +// v_Via, +// PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + callee_From, + callee_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_602_005 + + /* + * @desc This is the test case function (SIP side) for TC_602_006 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_602_006(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + var charstring v_attribute; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv or absent + awaitingInviteRequest_withSDPOffer(); + var CSeq v_CSeq_invite := v_CSeq; // save CSeq from INVITE for ReInvite + var boolean v_BOO_RecordRoute_invite := v_BOO_RecordRoute; // save BOO_RecordRoute from ReInvite + + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv or absent + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call on HOLD + awaitingInviteRequest(); + // sendonly + if (not match(v_Body,Inc_sendonly)) {setverdict(fail);}; + + // recvonly + v_Body := PX_SIP_SDPBODY_WITHOUT_MEDIA & "a=recvonly" & CRLF & PX_SIP_SDPBODY_DEFAULT_MEDIA; // may substitude received "sendonly" by "recvonly" to be sent + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // called party set call on HOLD + // sendonly + v_attribute := "a=inactive" & CRLF ; + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.userInfo := omit; + v_RequestUri.hostPort := v_reqHostPort; + +// SIPP.send ( +// INVITE_Request_SDP_s_1( +// v_RequestUri, +// v_CallId, +// v_CSeq, +// callee_From, //v_From, +// callee_To, //v_To, +// v_Via, +// PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + callee_From, + callee_To, + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // recvonly + if (not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + // called party RETRIEVE call + v_attribute := "a=recvonly" & CRLF ; // may be omitted since default + v_CSeq.seqNumber := v_CSeq.seqNumber + 1; + v_CSeq.method := "INVITE"; + v_Via.viaBody :={valueof(ViaBody_ETS_IPADDR(BRANCH_COOKIE & getRndTag()))}; + v_RequestUri.userInfo := omit; + v_RequestUri.hostPort := v_reqHostPort; +// SIPP.send ( +// INVITE_Request_SDP_s_1( +// v_RequestUri, +// v_CallId, +// v_CSeq, +// callee_From, //v_From, +// callee_To, //v_To, +// v_Via, +// PX_SIP_SDPBODY_WITHOUT_MEDIA & v_attribute & PX_SIP_SDPBODY_DEFAULT_MEDIA)) to sent_label; + SIPP.send ( + INVITE_Request_SDP_s_ReInvite( + v_RequestUri, + v_CallId, + v_CSeq, + caller_From, // variable changed due to last response + caller_To, // variable changed due to last response + v_Via, + PX_SIP_SDPBODY_WITHOUT_MEDIA & PX_SIP_SDPBODY_DEFAULT_MEDIA & v_attribute, + v_Route)) to sent_label; + + f_awaitingRespons_but100_andAck(Response_INVITE_200_r_1 (v_CallId, v_CSeq),v_CSeq, true); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendonly))) + {if (match(v_Body,Inc_sendrecv) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict()); + + // calling party retrieve RETRIEVE + awaitingInviteRequest(); + // sendrecv (attribute could be omitted since sendrecv=default) + if (not(match(v_Body,Inc_sendrecv))) + {if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive) or match(v_Body,Inc_recvonly)) + {setverdict(fail);}}; + + SIPP.send(Response_200_INVITE_SDP_s_1(v_CallId, v_CSeq, + caller_From, caller_To, v_Via, v_Body )) to sent_label; + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_602_006 + + + } // end group TP602_HOLD + + group TP603_TP { + /* + * @desc This is the test case function (SIP side) for TC_603_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_603_001(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + // calling party set call on suspended + // sendonly or inactive + f_awaitingInviteRequest(INVITE_Request_r_1); + if (not match(v_Body,Inc_sendonly) and not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + // calling party set call on resumed + // not (sendonly or inactive) + f_awaitingInviteRequest(INVITE_Request_r_1); + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + // sendrecv + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_603_001 + /* + * @desc This is the test case function (SIP side) for TC_603_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_603_002(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call on suspended + // sendonly or inactive + f_awaitingInviteRequest(INVITE_Request_r_1); + if (not match(v_Body,Inc_sendonly) and not match(v_Body,Inc_inactive)) {setverdict(fail);}; + + send200OKInvite(); + awaitingAckRequest(v_CSeq); + + TResp.start(PX_Timeout_T2*0.95); + alt + { + [] TResp.timeout{}; + } + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_603_002 + + } // end group TP603_TP + + group TP604_CONF { + /* + * @desc This is the test case function (SIP side) for TC_604_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_604_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call + awaitingInviteRequest(); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + send200OKInvite(); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + awaitingInviteRequest(); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + send200OKInvite(); + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_604_001 + /* + * @desc This is the test case function (SIP side) for TC_604_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_604_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call + f_awaitingUPDATE(false); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE(false); + // both variants: sendrecv or recvonly or omitted + if (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive)) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_604_002 + /* + * @desc This is the test case function (SIP side) for TC_604_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_604_003(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call + // sendonly + awaitingInviteRequest(); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + awaitingInviteRequest(); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + awaitingInviteRequest(); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_604_003 + /* + * @desc This is the test case function (SIP side) for TC_604_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_604_004(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call + f_awaitingUPDATE(false); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE(false); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + f_awaitingUPDATE(false); + // VA1: sendonly or inactive + if (VA==1 and not (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + // VA2: sendrecv or recvonly or omitted + if (VA==2 and (match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_604_004 + /* + * @desc This is the test case function (SIP side) for TC_604_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_604_005(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_604_005 + + } // end group TP604_CONF + + group TP605_3PTY { + /* + * @desc This is the test case function (SIP side) for TC_605_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_605_001(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call + // sendrecv or recvonly or omitted + awaitingInviteRequest(); + if ((match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + awaitingInviteRequest(); + if ((match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + awaitingInviteRequest(); + if ((match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_605_001 + /* + * @desc This is the test case function (SIP side) for TC_605_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_605_002(in CSeq loc_CSeq_s, in integer VA) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + // calling party set call + // sendrecv or recvonly or omitted + f_awaitingUPDATE(false); + if ((match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); + + f_awaitingUPDATE(false); + if ((match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict()); + + f_awaitingUPDATE(false); + if ((match(v_Body,Inc_sendonly) or match(v_Body,Inc_inactive))) {setverdict(fail);}; + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_605_002 + /* + * @desc This is the test case function (SIP side) for TC_605_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_605_003(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_604_005(loc_CSeq_s); + + } // end function f_Sip_TC_605_003 + + } // end group TP605_3PTY + + group TP606_COL { + /* + * @desc This is the test case function (SIP side) for TC_606_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_606_001(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + + awaitingAckRequest(v_CSeq); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_606_001 + + } // end group TP606_COL + + group TP607_SUB { + /* + * @desc This is the test case function (SIP side) for TC_607_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_607_001(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_607_001 + + } // end group TP607_SUB + + group TP608_CUG { + /* + * @desc This is the test case function (SIP side) for TC_608_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_608_001(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_608_001 + + /* + * @desc This is the test case function (SIP side) for TC_608_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_608_002(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_301_008(loc_CSeq_s); + + } // end function f_Sip_TC_608_002 + + + } // end group TP608_CUG + + group TP609_CDIV { + /* + * @desc This is the test case function (SIP side) for TC_609_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_609_001(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_609_001 + + } // end group TP609_CDIV + + group TP610_UUS { + /* + * @desc This is the test case function (SIP side) for TC_610_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_001(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_001 + /* + * @desc This is the test case function (SIP side) for TC_610_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_002(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_002 + + /* + * @desc This is the test case function (SIP side) for TC_610_003 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_003(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_301_008(loc_CSeq_s); + + } // end function f_Sip_TC_610_003 + + /* + * @desc This is the test case function (SIP side) for TC_610_004 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_004(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_004 + + + + /* + * @desc This is the test case function (SIP side) for TC_610_005 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_005(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_301_008(loc_CSeq_s); + + } // end function f_Sip_TC_610_005 + + + + + + /* + * @desc This is the test case function (SIP side) for TC_610_006 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_006(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_006 + + + /* + * @desc This is the test case function (SIP side) for TC_610_007 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_007(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_301_008(loc_CSeq_s); + + } // end function f_Sip_TC_610_007 + + + /* + * @desc This is the test case function (SIP side) for TC_610_008 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_008(in CSeq loc_CSeq_s) runs on SipComponent { + //Variables + var FncRetCode v_ret := e_error; + var Response v_Response; + v_CSeq := loc_CSeq_s; + + //Defaults + var default v_def_catchSyncStop := activate(a_Sip_catchSyncStop()); + v_Default := activate (a_clearRegistration()); + + //Preamble + if (PX_PR_PTC_REGISTRATION) {mtcRegistration(loc_CSeq_s)}; + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + + //Test body + // sendrecv + awaitingInviteRequest_withSDPOffer(); + SIPP.send(Response_180_s_1( v_CallId, v_CSeq, + caller_From, caller_To, v_Via )) to sent_label; + // sendrecv + send200OKInvite(); + awaitingAckRequest(loc_CSeq_s); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + f_check_Conversation(); + f_selfOrClientSyncAndVerdict(c_uPlane, f_getVerdict()); + + // awaiting BYE and respond with 200 OK + f_awaitingBYE_sendReply(BYE_Request_r_1(v_CallId),v_CSeq); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); + + //Postamble + if (PX_PR_PTC_REGISTRATION) {removeRegistration(v_CSeq)}; + deactivate; + + } // end function f_Sip_TC_610_008 + + + + + /* + * @desc This is the test case function (SIP side) for TC_610_009 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_009(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_009 + /* + * @desc This is the test case function (SIP side) for TC_610_10 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_010(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_010 + /* + * @desc This is the test case function (SIP side) for TC_610_011 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_011(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_011 + /* + * @desc This is the test case function (SIP side) for TC_610_012 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_012(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_012 + /* + * @desc This is the test case function (SIP side) for TC_610_013 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_013(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_606_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_013 + /* + * @desc This is the test case function (SIP side) for TC_610_014 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_014(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_001(loc_CSeq_s); + + } // end function f_Sip_TC_610_014 + + /* + * @desc This is the test case function (SIP side) for TC_610_015 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_610_015(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_008(loc_CSeq_s); + + } // end function f_Sip_TC_610_015 + } // end group TP610_UUS + + group TP611_ECT { + /* + * @desc This is the test case function (SIP side) for TC_611_001 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_611_001(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_008(loc_CSeq_s); + + } // end function f_Sip_TC_611_001 + /* + * @desc This is the test case function (SIP side) for TC_611_002 + * @param loc_CSeq_s Transaction Id + */ + function f_Sip_TC_611_002(in CSeq loc_CSeq_s) runs on SipComponent { + + f_Sip_TC_610_008(loc_CSeq_s); + + } // end function f_Sip_TC_611_002 + + } // end group TP611_ECT + + } // end group InterworkingFromISUPtoSIP_ + } + + +} // end module SipIsup_SIP_TCFunctions diff --git a/SipAts/SipIsup_SIP_Templates.ttcn b/SipAts/SipIsup_SIP_Templates.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..86aa95e26725171bd5ab4b7e37b3e98328e6d4fb --- /dev/null +++ b/SipAts/SipIsup_SIP_Templates.ttcn @@ -0,0 +1,7121 @@ +/* + * @author STF 297 (STF270, STF246, STF196, STF166) + * @version $Id$ + * @desc This module is a copy of SIP_TypesAndConf published in ETSI TS 102027-2 with the following updates: + * + * renamed imports: SipIsup_SIP_* instead of SIP_* + * templates extended by new Header fields: RAck, RSeq + * + * new group of templates: SipIsupTemplates + */ + +module SipIsup_SIP_Templates +{ +import from SipIsup_SIP_TypesAndConf all; + +group Templates +{ + group SimpleTemplates + { + template charstring Inc_sdp := "application/sdp"; // pattern "?*/sdp*"; + template charstring Inc_SDP := "application/SDP"; // pattern "?*/SDP*"; + template charstring ValidBranch := pattern "z9hG4bK*"; + template charstring charstring_any_value := ?; + template charstring charstring_0 := "0"; + } + group SubTemplates + { + template MaxForwards MaxForwards_s (integer loc_int) + :={fieldName := MAX_FORWARDS_E, forwards := loc_int}; + + + template ContentDisposition ContentDisposition_s1 := + { + fieldName := CONTENT_DISPOSITION_E, + dispositionType := "session", + dispositionParams := omit + }; + + template From From_s1 (charstring tag_str) := + { + fieldName := FROM_E, + addressField := + { + nameAddr := { + displayName := "ETSI Tester", // optional charstring + addrSpec := SipUrl_ofCaller_s // SipUrl + }}, + fromParams := {{id := TAG_ID, paramValue := tag_str}} + }; + + template From From_s2 (charstring tag_str) := + { + fieldName := FROM_E, + addressField := + { + nameAddr := { + displayName := "ETSI Tester MTC", // optional charstring + addrSpec := SipUrl_ofCaller_s // SipUrl + }}, + fromParams := {{id := TAG_ID, paramValue := tag_str}} + }; + +// template From From_withoutTag_s1 := +// { +// fieldName := FROM_E, +// addressField := +// { +// nameAddr := { +// displayName := "ETSI Tester", // optional charstring +// addrSpec := SipUrl_ofCaller_s // SipUrl +// }}, +// fromParams := omit +// }; + + template SentProtocol SentProtocol_s (charstring loc_protocol) := + {protocolName := SIP_NAME, + protocolVersion:= SIP_VERSION, + transport:= loc_protocol}; + + template SipUrl SipUrl_Ambiguous := // Ambiguous SIP-URL + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_UNKNOWN_USERINFO,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := omit, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT2 //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofETS := // SIP-URL of the test system on MTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_ETS_LOCAL_USER,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_IP_ofETS := // SIP-URL of the test system on MTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_ETS_LOCAL_USER,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_IPADDR, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofPTC := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_ETS_LOCAL_USER2,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN2, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT2 //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofRDPTC := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_ETS_LOCAL_USER2,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_IUT_HOME_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := PX_IUT_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_IP_ofPTC := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_ETS_LOCAL_USER2,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_IPADDR2, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT2 //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_IP_ofPTC2 := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_ETS_LOCAL_USER2,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_IPADDR3, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT3 //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofPTC_r_1 := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := *, // optional + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN2, // hostname, IPv4 or IPv6 as a charstring + portField := * //optional integer + }, + urlParameters := omit, + headers := * + } + template SipUrl SipUrl_ofPTC_r_2 := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := *, // optional + hostPort := + { + host := PX_ETS_IPADDR2, // hostname, IPv4 or IPv6 as a charstring + portField := * //optional integer + }, + urlParameters := omit, + headers := * + } + + template SipUrl SipUrl_ofPTCRoute := // SIP-URL of the test system on PTC side + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := "PTCROUTE",// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_IPADDR2, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT2 //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofIut := // SIP-URL of the test system + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := omit, // FA : Can be not supported FA: to be reviewed + hostPort := + { + host := PX_IUT_HOME_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := PX_IUT_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofProxy := // SIP-URL of the proxy + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := omit, // optional + hostPort := + { + host := PX_PROXY_IPADDR, // hostname, IPv4 or IPv6 as a charstring + portField := PX_PROXY_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofCallee_r := // SIP-URL of the callee when the IUT is the caller + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_ETS_LOCAL_USER, + password := *}, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := * //optional integer + }, + urlParameters := *, + headers := * + } + + template SipUrl SipUrl_ofCallee_r2 := // SIP-URL of the callee when the IUT is the caller + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_ETS_LOCAL_USER, + password := *}, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := * //optional integer + }, + urlParameters := {UserPhone}, + headers := * + } + + template SipUrl SipUrl_ofCallee_r2_first modifies SipUrl_ofCallee_r2:= // SIP-URL of the callee when the IUT is the caller + { + userInfo := {userOrTelephoneSubscriber :=substr(PX_ETS_LOCAL_USER,0,PX_ETS_LOCAL_USER_len1)} // first portion of the number + } + template SipUrl SipUrl_ofCallee_r2_middle modifies SipUrl_ofCallee_r2:= // SIP-URL of the callee when the IUT is the caller + { + userInfo := {userOrTelephoneSubscriber :=substr(PX_ETS_LOCAL_USER,0,PX_ETS_LOCAL_USER_len2)} // second portion of the number + } + + template SipUrl SipUrl_ofLocalUser_s := // SIP-URL of the ETS for Registration + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_ETS_LOCAL_USER, + password := omit}, + hostPort := + { + host := PX_ETS_IPADDR, // hostname, IPv4 or IPv6 as a charstring + portField := omit + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofCallee_s := // SIP-URL of the callee when the IUT is the callee + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_TE_CALLEE_USERINFO, + password := omit}, + hostPort := + { + host := PX_TE_CALLEE_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := omit + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofCaller_s := // SIP-URL of the caller when the IUT is the callee + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_ETS_LOCAL_USER, + password := omit}, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := omit + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofIut_s := // SIP-URL of the caller when the IUT is the callee + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_ETS_LOCAL_USER, + password := omit}, + hostPort := + { + host := PX_IUT_HOME_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := omit + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofUnknown_s := // SIP-URL set to an unknown address when the IUT is the callee + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_UNKNOWN_USERINFO, + password := omit}, + hostPort := + { + host := PX_UNKNOWN_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := omit + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofMulticast_r := // SIP-URL set to address multicast + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := omit, // forbidden + hostPort := + { + host := MCAST_SIP_IPADDR, // hostname, "sip.mcast.net" (224.0.1.75) + portField := * + }, + urlParameters := *, + headers := * + } + + template SipUrl SipUrl_ofRouteEts := + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := "MTCROUTE",// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_IPADDR, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofRoutePtc := + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := "PTCROUTE",// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN2, // hostname, IPv4 or IPv6 as a charstring + portField := PX_ETS_PORT2 //optional integer + }, + urlParameters := omit, + headers := omit + } + + template SipUrl SipUrl_ofRouteIUT := + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := "IUTROUTE",// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_IUT_HOME_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := PX_IUT_PORT //optional integer + }, + urlParameters := omit, + headers := omit + } + +// workaround: need to be after die SipUrl templates :( + template From From_withoutTag_s1 := + { + fieldName := FROM_E, + addressField := + { + nameAddr := { + displayName := "ETSI Tester", // optional charstring + addrSpec := SipUrl_ofCaller_s // SipUrl + }}, + fromParams := omit + }; + + template CSeq Cseg_s_1 := + { + fieldName := CSEQ_E, + seqNumber := 0, + method:="INVITE" + }; + + template Route Route_l_1 := + { + fieldName := ROUTE_E, + routeBody :={ + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofProxy},rrParam := omit }, + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofRouteIUT},rrParam := omit} + } + } + template Route Route_l_2 := + { + fieldName := ROUTE_E, + routeBody :={ + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofRouteIUT}, rrParam := omit}, + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofRoutePtc},rrParam := omit } + } + } + template Route Route_l_3 := + { + fieldName := ROUTE_E, + routeBody :={ + {nameAddr := {displayName := omit, addrSpec :=SipUrl_ofRoutePtc}, rrParam := omit}, + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofProxy},rrParam := omit } + } + } + + template Route Route_l_4 := + { + fieldName := ROUTE_E, + routeBody :={ + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofProxy},rrParam := omit }, + {nameAddr := + {displayName := omit, + addrSpec :={ + scheme := SIP_SCHEME, // contains "sip" + userInfo := *, // optional + hostPort := + { + host := PX_IUT_HOME_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := PX_IUT_PORT //optional integer + }, + urlParameters := omit, + headers := omit + }}, + rrParam := omit + } + } + } + + template Route Route_l_5 := + { + fieldName := ROUTE_E, + routeBody :={ + {nameAddr := { + displayName := omit, + addrSpec :={ + scheme := SipUrl_ofRoutePtc.scheme, + userInfo := SipUrl_ofRoutePtc.userInfo, + hostPort := SipUrl_ofRoutePtc.hostPort, + urlParameters := {{ id := "lr", paramValue :=omit }}, + headers := omit}}, rrParam := omit}, + {nameAddr := {displayName := omit, addrSpec :=SipUrl_ofProxy},rrParam := omit } + } + } + + template Route Route_remove_r_1 := + { + fieldName := ROUTE_E, + routeBody :={ + {nameAddr := {displayName := omit, addrSpec := SipUrl_ofRoutePtc},rrParam := omit } + } + } + + template Route Route_reverse_r_1 := + { + fieldName := ROUTE_E, + routeBody := { + {nameAddr := {displayName:= omit, addrSpec:=SipUrl_ofRouteEts}, + rrParam := {{id := "lr", paramValue :=omit }} }, + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofProxy}, + rrParam := omit } + } + } + + template ViaBody ViaBody_ETS_IPADDR(charstring branch_val) := + { + sentProtocol := SentProtocol_s(PX_TRANSPORT), + sentBy:={host:=PX_ETS_IPADDR, portField:= PX_ETS_PORT}, + viaParams:={{id :=BRANCH_ID,paramValue :=branch_val}} + } + + template ViaBody ViaBody_ETS_NoBranch := + { + sentProtocol := SentProtocol_s(PX_TRANSPORT), + sentBy:={host:=PX_ETS_IPADDR, portField:= PX_ETS_PORT}, + viaParams:= omit + } + + template ViaBody ViaBody_IUT_IPADDR(charstring branch_val) := + { + sentProtocol := SentProtocol_s(PX_TRANSPORT), + sentBy:={host:= PX_IUT_IPADDR, portField:= PX_IUT_PORT}, + viaParams:={{id :=BRANCH_ID,paramValue :=branch_val}} + } + + template ViaBody ViaBody_PTC(charstring branch_val) := + { + sentProtocol := SentProtocol_s(PX_TRANSPORT), + sentBy:={host:= PX_ETS_IPADDR2, portField:= PX_ETS_PORT2}, + viaParams:={{id :=BRANCH_ID,paramValue :=branch_val}} + } + + template ViaBody ViaBody_PTC2(charstring branch_val) := + { + sentProtocol := SentProtocol_s(PX_TRANSPORT), + sentBy:={host:= PX_ETS_IPADDR3, portField:= PX_ETS_PORT3}, + viaParams:={{id := BRANCH_ID,paramValue :=branch_val}} + } + template Via Via_l1(charstring branch_val) := + { + fieldName := VIA_E, + viaBody := {ViaBody_PTC(branch_val)} + } + + template Via Via_l2 := + { + fieldName := VIA_E, + viaBody := + { + {sentProtocol := ?, + sentBy:={host:=PX_ETS_IPADDR, portField:= PX_ETS_PORT}, + viaParams:=?} + } + } + + template Contact Contact_Proxy_s := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + { + addressField := { addrSpecUnion := SipUrl_ofProxy}, + contactParams := omit + } + } + } + } + + template Contact Contact_Multi_s1 := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + { + addressField := { addrSpecUnion := SipUrl_IP_ofPTC}, + contactParams := omit + }, + { + addressField := { addrSpecUnion := SipUrl_ofPTC}, + contactParams := omit + } + } + } //end contactBody + }//end Contact_Multi_s + + template Contact Contact_Multi_s2 := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + { + addressField := {addrSpecUnion := SipUrl_IP_ofETS}, + contactParams := omit + }, + { + addressField := { addrSpecUnion := SipUrl_ofETS}, + contactParams := omit + } + } + } //end contactBody + }//end Contact_Multi_s + + template Contact Contact_RD_Multi_s := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + { + addressField := + { + nameAddr := + { + displayName := "ETSI Tester PTC", // note: "ifpresent" removed by STF297 + addrSpec := SipUrl_IP_ofPTC + } + }, + contactParams := omit + }, + { + addressField := { addrSpecUnion := SipUrl_ofProxy}, + contactParams := omit + } + } + } //end contactBody + }//end Contact_RD_Multi_s + + template Contact Contact_ETS_s := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + { + addressField := { addrSpecUnion := SipUrl_IP_ofETS}, + contactParams := omit + } + } + } //end contactBody + }//end Contact_ETS_s + + template Contact Contact_PTC_s := + { + fieldName := CONTACT_E, + contactBody:= + { + contactAddresses := + { + { addressField := + { + nameAddr := + { + displayName:="ETSI Tester PTC", + addrSpec := SipUrl_IP_ofPTC + } + }, + contactParams := {{id:="transport", paramValue :=PX_TRANSPORT }} + } + } + } + }; + + template Contact Contact_PTC2_s := + { + fieldName := CONTACT_E, + contactBody:= + { + contactAddresses := + { + { addressField := + { + nameAddr := + { + displayName:="ETSI Tester PTC", + addrSpec := SipUrl_IP_ofPTC2 + } + }, + contactParams := {{id :="transport", paramValue :=PX_TRANSPORT }} + } + } + } + }; + + template Contact Contact_RD_PTC_r := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := { + {addressField := { + nameAddr := + { + displayName := "ETSI Tester PTC" ifpresent, + addrSpec := SipUrl_IP_ofPTC + }}, + contactParams := *} + }//end contactAddresses + } //end contactBody + };//end Contact_RD_PTC_r + + template ContactAddress ContactAddress_r_1 := + { + addressField := ?, + contactParams := * + }; + + template To To_s1 := + { + fieldName := TO_E, + addressField := + {nameAddr := { + displayName := "IUT", // optional charstring + addrSpec := SipUrl_ofCallee_s // SipUrl + }},//end addressField + toParams := omit + } + + template To To_s2 := + { + fieldName := TO_E, + addressField := { nameAddr := + { + displayName := "ETSI Tester PTC",// optional charstring + addrSpec := SipUrl_ofPTC // SipUrl : PX_ETS_LOCAL_USER2, PX_EST_LOCAL_DOMAIN2 + }},//addressField + toParams := omit //optional set of GenericParam + }; + + template To To_s3 := //identical to From_s1 + { + fieldName := TO_E, + addressField := + { + nameAddr := { + displayName := "ETSI Tester", // optional charstring + addrSpec := SipUrl_ofIut_s // SipUrl + }}, + toParams := omit + }; + + template To To_s4 (charstring tag_str) := + { + fieldName := TO_E, + addressField := { nameAddr := + { + displayName := "ETSI Tester PTC",// optional charstring + addrSpec := SipUrl_ofPTC // SipUrl : PX_ETS_LOCAL_USER2, PX_EST_LOCAL_DOMAIN2 + }},//addressField + toParams := {{id := TAG_ID, paramValue := tag_str}} + }; + + template To To_s5 := + { + fieldName := TO_E, + addressField := { nameAddr := + { + displayName := "ETSI Tester PTC",// optional charstring + addrSpec := SipUrl_ofRDPTC // SipUrl : PX_ETS_LOCAL_USER2, PX_EST_LOCAL_DOMAIN2 + }},//addressField + toParams := omit //optional set of GenericParam + }; + + } //end of Group SubTemplates + + group MSGtemplates + { + group RequestTemplates + { + template Request REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + accept := *, + acceptEncoding := *, + acceptLanguage := *, + allow := *, + authorization := *, + callId := ?, + callInfo := *, + contact := *, + contentDisposition := *, + contentEncoding := *, + contentLanguage := *, + contentLength := *, + contentType := *, + cSeq := ?, + date := *, + expires := *, + fromField := ?, + maxForwards := ?, + mimeVersion := *, + organization := *, + proxyAuthorization := *, + proxyRequire := *, + require := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a REGISTER request [20] + alertInfo := *, + authenticationInfo := *, + errorInfo := *, + inReplyTo := *, + minExpires := *, + priority := *, + proxyAuthenticate := *, + recordRoute := *, + replyTo := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := * , // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Request REGISTER_Request_r_2 modifies REGISTER_Request_r_1:= + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := ?, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + contact := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := ? + } + } + } + } // end template REGISTER_Request_r_2 + + + // Register request with an Authorization field + template Request REGISTER_Request_r_4 modifies REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := ?, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + contact := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := ? + } + }, + authorization :=? + } + } + + // Register request with a request URI addressed to the configured Registrar PX_ETS_LOCAL_DOMAIN + template Request REGISTER_Request_r_5 modifies REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := {host:= PX_ETS_LOCAL_DOMAIN,portField:=*}, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + contact := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := ? + } + } + } + } + + // Register request with a request URI addressed to address of record PX_IUT_HOME_DOMAIN + template Request REGISTER_Request_r_6 modifies REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := {host:=PX_IUT_HOME_DOMAIN,portField:=*}, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + contact := + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := ? + } + } + } + } + + // Register request with CallId, CSeq, From, To, Contact as parameters + template Request REGISTER_Request_r_7 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Contact loc_Contact) + modifies REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := ?, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + contact := loc_Contact + } + } + + // Register request with CallId as parameters + template Request REGISTER_Request_r_8 + (CallId loc_CallId) + modifies REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := ?, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId + } + } + // Register request with Contact set to * and Expires header set to 0 + template Request REGISTER_Request_r_9 + modifies REGISTER_Request_r_1 := + { + requestLine := + { + method := REGISTER_E, + requestUri := + {scheme := SIP_SCHEME, userInfo := omit, hostPort := ?, + urlParameters := *, headers := *}, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + expires := {fieldName := EXPIRES_E, deltaSec := "0"}, + contact := {fieldName := CONTACT_E, contactBody := {wildcard :="*"}} + } + } + + // General send template sent to Registrar + template Request REGISTER_Request_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, + Contact loc_Contact, From loc_From, To loc_To, Via loc_Via) := + { + requestLine := + { + method := REGISTER_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_Via, + contact := loc_Contact, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + authorization := omit, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + callInfo :=omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + expires :=omit, + mimeVersion :=omit, + organization :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + require :=omit, + route :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a REGISTER request [20] + alertInfo := omit, + authenticationInfo := omit, + errorInfo := omit, + inReplyTo := omit, + minExpires := omit, + priority := omit, + proxyAuthenticate := omit, + recordRoute := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request REGISTER_Request_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, + Contact loc_Contact, From loc_From, To loc_To, Via loc_Via, + charstring loc_Expires) + modifies REGISTER_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, // original params + // loc_Contact, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + expires := { + fieldName := EXPIRES_E, + deltaSec := loc_Expires } + } + } + + //REGISTER request with no Contact + template Request REGISTER_Request_s_3 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) := + { + requestLine := + { + method := REGISTER_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_Via, + contact := omit, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + authorization := omit, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + callInfo :=omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + expires :=omit, + mimeVersion :=omit, + organization :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + require :=omit, + route :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a REGISTER request [20] + alertInfo := omit, + authenticationInfo := omit, + errorInfo := omit, + inReplyTo := omit, + minExpires := omit, + priority := omit, + proxyAuthenticate := omit, + recordRoute := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request REGISTER_Request_s_4 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, + Contact loc_Contact, From loc_From, To loc_To, Via loc_Via) + modifies REGISTER_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, // original params + // loc_Contact, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + authorization := omit + } + } + + template Request REGISTER_Request_s_5 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, + Contact loc_Contact, From loc_From, To loc_To, Via loc_Via) + modifies REGISTER_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, // original params + // loc_Contact, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + alertInfo := + { + fieldName:= ALERT_INFO_E, + alertInfoBody:={ + {url:="alert@info.body", genericParams:= omit} + } + } + + } + } + + //REGISTER Request with no Cseq + template Request REGISTER_Request_s_6 + (SipUrl loc_RequestUri, CallId loc_CallId, Contact loc_Contact, + From loc_From, To loc_To, Via loc_Via) := + { + requestLine := + { + method := REGISTER_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_Via, + contact := loc_Contact, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + authorization := omit, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + callInfo :=omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + expires :=omit, + mimeVersion :=omit, + organization :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + require :=omit, + route :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a REGISTER request [20] + alertInfo := omit, + authenticationInfo := omit, + errorInfo := omit, + inReplyTo := omit, + minExpires := omit, + priority := omit, + proxyAuthenticate := omit, + recordRoute := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request REGISTER_Request_s_7 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, + Contact loc_Contact, From loc_From, To loc_To, Via loc_Via) + modifies REGISTER_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, // original params + // loc_Contact, loc_From, loc_To, loc_Via) // original params + := + { + requestLine := + { + sipVersion := "sip/2.0" + } + } + + template Request INVITE_Request_r_1 := + { + requestLine := + { + method := INVITE_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := {fieldName:=CALL_ID_E, callid:=?}, + contact := ?, + cSeq := {fieldName:=CSEQ_E, seqNumber:= ?, method:= "INVITE"}, + fromField := ?, + toField := ?, + via := ?, + accept :=*, + acceptEncoding :=*, + acceptLanguage :=*, + alertInfo :=*, + allow :=*, + authorization :=*, + callInfo :=*, + contentDisposition :=*, + contentEncoding :=*, + contentLanguage :=*, + contentLength :=*, + contentType :=*, + date :=*, + expires :=*, + inReplyTo :=*, + maxForwards :=?, + mimeVersion :=*, + organization :=*, + priority :=*, + proxyAuthorization :=*, + proxyRequire :=*, + recordRoute :=*, + replyTo :=*, + require :=*, + route :=*, + subject :=*, + supported :=*, + timestamp :=*, + userAgent :=*, + undefinedHeader_List := *, + // the following header fields may never appear in a INVITE request [20] + authenticationInfo := *, + errorInfo := *, + minExpires := *, + proxyAuthenticate := *, + retryAfter := *, + server := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template NameAddr nameAddr_ofCallee_r := + { + displayName := *, + addrSpec := + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := *, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, + portField := * //optional integer + }, + urlParameters := *, + headers := * + } + } + template Addr_Union addr_Union_nameAddr_ofCallee_r := + { + nameAddr :=nameAddr_ofCallee_r + } + + template NameAddr nameAddr_ofCallee_r2 := + { + displayName := *, + addrSpec := + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := {userOrTelephoneSubscriber :=PX_ETS_LOCAL_USER, + password := *}, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := * //optional integer + }, + urlParameters := {UserPhone}, + headers := * + } + } + template NameAddr nameAddr_ofCallee_r2_first modifies nameAddr_ofCallee_r2 := + { + addrSpec := + { + userInfo := {userOrTelephoneSubscriber :=substr(PX_ETS_LOCAL_USER,0,PX_ETS_LOCAL_USER_len1)} + } + } + template NameAddr nameAddr_ofCallee_r2_middle modifies nameAddr_ofCallee_r2 := + { + addrSpec := + { + userInfo := {userOrTelephoneSubscriber :=substr(PX_ETS_LOCAL_USER,0,PX_ETS_LOCAL_USER_len2)} + } + } + template Addr_Union addr_Union_nameAddr_ofCallee_r2 := + { + nameAddr :=nameAddr_ofCallee_r2 + } + template Addr_Union addr_Union_nameAddr_ofCallee_r2_first := + { + nameAddr :=nameAddr_ofCallee_r2_first + } + template Addr_Union addr_Union_nameAddr_ofCallee_r2_middle := + { + nameAddr :=nameAddr_ofCallee_r2_middle + } + + + template Addr_Union addr_Union_SipUrl_ofCallee_r := + { + addrSpecUnion := SipUrl_ofCallee_r + } + + template Addr_Union addr_Union_SipUrl_ofCallee_r2 := + { + addrSpecUnion := SipUrl_ofCallee_r2 + } + template Addr_Union addr_Union_SipUrl_ofCallee_r2_first := + { + addrSpecUnion := SipUrl_ofCallee_r2_first + } + template Addr_Union addr_Union_SipUrl_ofCallee_r2_middle := + { + addrSpecUnion := SipUrl_ofCallee_r2_middle + } + + + template Request INVITE_Request_r_2 modifies INVITE_Request_r_1 := + { + msgHeader := + { + toField := { + fieldName := TO_E, + addressField := (addr_Union_nameAddr_ofCallee_r,addr_Union_SipUrl_ofCallee_r), + toParams:=* + } + } + } + + template Request INVITE_Request_r_3 modifies INVITE_Request_r_1 := + { + msgHeader := + { + contentLength :=?, + contentType :={fieldName := CONTENT_TYPE_E, mediaType := (Inc_SDP,Inc_sdp)} + }, + messageBody := ? + } + + + template Request INVITE_Request_r_5 //CK used in CC_OE_CE_V_001 + modifies INVITE_Request_r_1 := + { + msgHeader := + { + cSeq := ? + } // end msgHeader + } + + template Request INVITE_Request_r_6(integer fwd_value) //CK used in CC_OE_CE_V_006 + modifies INVITE_Request_r_1 := + { + msgHeader := + { + maxForwards := {fieldName := MAX_FORWARDS_E, forwards := fwd_value} + } // end msgHeader + } + + template Request INVITE_Request_r_7 //CK used in CC_OE_CE_V_007 + modifies INVITE_Request_r_1 := + { + msgHeader := + { + via := + { + fieldName := VIA_E, + viaBody := + { //ViaBody_List + {sentProtocol:= {protocolName:=SIP_NAME, protocolVersion:=SIP_VERSION, transport:=?}, + sentBy := ?, + //Parameter branch shall be present + viaParams := ? + }, + * + } //end viaBody + } // end via + } // end msgHeader + } + + template Request INVITE_Request_r_8 //CK used in CC_OE_CE_V_008 + modifies INVITE_Request_r_1 := + { + msgHeader := + { + allow := ?, + supported := ? + } // end msgHeader + } + template Request INVITE_Request_r_9 //CK used in CC_OE_CE_V_030 PTC side + modifies INVITE_Request_r_1 := + { + requestLine := + { + method := INVITE_E, + requestUri := SipUrl_ofPTC_r_2, + sipVersion := SIP_NAME_VERSION + } + } + + template Request INVITE_Request_r_10(CallId loc_CallId, CSeq loc_CSeq) + modifies INVITE_Request_r_1 := + { + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq + } + } + + template Request INVITE_Request_r_11 + modifies INVITE_Request_r_1 := + { + requestLine := + { + method := INVITE_E, + requestUri := SipUrl_ofPTC_r_1, + sipVersion := SIP_NAME_VERSION + } + } + + template Request INVITE_Request_r_12 (Route loc_Route) + modifies INVITE_Request_r_1 := + { + msgHeader := + { + route := loc_Route + } + } + + template Request INVITE_Request_r_13 (template Route loc_Route) + modifies INVITE_Request_r_1 := + { + requestLine := + { + method := INVITE_E, + requestUri := SipUrl_ofPTC_r_1, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + route := loc_Route + } + } + template Request INVITE_Request_r_14 + modifies INVITE_Request_r_1 := + { + msgHeader := + { + undefinedHeader_List := ? + } + } + + template Request INVITE_Request_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, Contact loc_Contact) + := + { + requestLine := + { + method := INVITE_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + contact := loc_Contact, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authorization := omit, + callInfo := omit, + contentDisposition := omit, + contentEncoding := omit, + contentLanguage := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + contentType := omit, + date := omit, + expires := omit, + inReplyTo := omit, + mimeVersion := omit, + organization := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + replyTo :=omit, + require := omit, + route := omit, + subject := omit, + supported := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a INVITE request [20] + authenticationInfo := omit, + errorInfo := omit, + minExpires := omit, + proxyAuthenticate := omit, + retryAfter := omit, + server := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request INVITE_Request_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + := + { + requestLine := + { + method := INVITE_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + contact := Contact_ETS_s, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "session", dispositionParams:= omit}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + contentEncoding := omit, + contentLanguage := omit, + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authorization := omit, + callInfo := omit, + date := omit, + expires := omit, + inReplyTo := omit, + mimeVersion := omit, + organization := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + replyTo := omit, + require := omit, + route := omit, + subject := omit, + supported := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a INVITE request [20] + authenticationInfo := omit, + errorInfo := omit, + minExpires := omit, + proxyAuthenticate := omit, + retryAfter := omit, + server := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := PX_SDPBODY, + payload := omit + } + + template Request INVITE_Request_s_2b + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, Contact loc_Contact, charstring loc_sdp) + modifies INVITE_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via, loc_Contact) // original params + := + { + msgHeader := + { + contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "session", dispositionParams:= omit}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_sdp))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION} + }, + messageBody := loc_sdp + } + + template Request INVITE_Request_ContentDisposition_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, charstring loc_sdp, ContentDisposition loc_ContentDispostion) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentDisposition := loc_ContentDispostion, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_sdp))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION} + }, + messageBody := loc_sdp + } + + template Request INVITE_Request_ContentLanguage_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, ContentDisposition loc_ContentDispostion) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentDisposition := loc_ContentDispostion, + contentLanguage := {fieldName := CONTENT_LANGUAGE_E, languageTag := {PX_LANGUAGE_UNSUPPORTED}}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION} + }, + messageBody := PX_SDPBODY + } + + template Request INVITE_Request_ContentEncoding_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, ContentDisposition loc_ContentDispostion) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentDisposition := loc_ContentDispostion, + contentEncoding := {fieldName := CONTENT_ENCODING_E, contentCoding := {PX_CONTENCOD_UNSUPPORTED}}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION} + }, + messageBody := PX_SDPBODY + } + + template Request INVITE_Request_s_3 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via,RecordRoute loc_RecordRoute) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + recordRoute := loc_RecordRoute + } + } + + template Request INVITE_Request_s_4 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, charstring delta_value ) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + expires := + { + fieldName := EXPIRES_E, + deltaSec :=delta_value + } + } + } + + template Request INVITE_Request_s_5 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + Contact loc_Contact, integer len_sdp, charstring loc_sdp) + modifies INVITE_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via, loc_Contact) // original params + := + { + msgHeader := + { + contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "session", dispositionParams:= omit}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= len_sdp}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION} + }, + messageBody := loc_sdp + } + + template Request INVITE_Request_s_6 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "session", dispositionParams:= omit}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + require:={fieldName:=REQUIRE_E, optionsTags:={PX_OPTION_UNSUPPORTED}} + }, + messageBody := PX_SDPBODY + } + + template Request INVITE_Request_s_7 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + TimeValue loc_TimeValue ) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "session", dispositionParams:= omit}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + timestamp:={fieldName:=TIMESTAMP_E, timeValue:=loc_TimeValue, delay:=omit} + }, + messageBody := PX_SDPBODY + } + + template Request INVITE_Request_s_8 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + Contact loc_Contact) + modifies INVITE_Request_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via, loc_Contact) // original params + := + { + msgHeader := + { + contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "session", dispositionParams:= omit}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + recordRoute := + { + fieldName := RECORD_ROUTE_E, + routeBody := {{nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofRouteEts}, + rrParam := omit }} + } + }, + messageBody := PX_SDPBODY + } + + + template Request INVITE_Request_s_9 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + expires := {fieldName:= EXPIRES_E, deltaSec:=SHORT_REGISTRATION} + } + } + + template Request INVITE_Request_s_10 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + proxyRequire := + { + fieldName:= PROXY_REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + template Request INVITE_Request_s_11 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, integer loc_mf) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards := {fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + } + + template Request INVITE_Request_s_12 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, Contact loc_contact) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contact := loc_contact + } + } + + template Request INVITE_Request_s_13 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + requestLine := + { + method := INVITE_E, + requestUri := loc_To.addressField.nameAddr.addrSpec, + sipVersion := "SIP/9.9" + } + } + + template Request INVITE_Request_s_14 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via,Route loc_Route) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + route := loc_Route + } + } + + template Request INVITE_Request_s_15 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards := omit + } + } + template Request INVITE_Request_s_16 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, Contact loc_Contact) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + requestLine := + { + sipVersion := "sip/2.0" + }, + msgHeader := + { + contact := loc_Contact + } + + } + + template Request INVITE_Request_Inv_s_1 + (SipUrl loc_RequestUri, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, Contact loc_Contact) + := + { + requestLine := + { + method := INVITE_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := omit, //Invalid + contact := loc_Contact, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authorization := omit, + callInfo := omit, + contentDisposition := omit, + contentEncoding := omit, + contentLanguage := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + contentType := omit, + date := omit, + expires := omit, + inReplyTo := omit, + mimeVersion := omit, + organization := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + replyTo :=omit, + require := omit, + route := omit, + subject := omit, + supported := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a INVITE request [20] + authenticationInfo := omit, + errorInfo := omit, + minExpires := omit, + proxyAuthenticate := omit, + retryAfter := omit, + server := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + template Request INVITE_Request_Inv_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, Contact loc_Contact) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contact := loc_Contact, + retryAfter := {fieldName:=RETRY_AFTER_E, deltaSec:="62", comment:=omit, retryParams:=omit} + } + } + + template Request BYE_Request_r_1(template CallId loc_CallId) := + { + requestLine := + { + method := BYE_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + accept := *, + acceptEncoding := *, + acceptLanguage := *, + allow := *, + authorization := *, + callId := loc_CallId, + contentDisposition := *, + contentEncoding := *, + contentLanguage := *, + contentLength := ?, + contentType := *, + cSeq := ?, + date := *, + fromField := ?, + maxForwards := ?, + mimeVersion := *, + proxyAuthorization := *, + proxyRequire := *, + recordRoute := *, + require := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a BYE request [20] + alertInfo := *, + authenticationInfo := *, + callInfo := *, + contact := *, + expires := *, + errorInfo := *, + inReplyTo := *, + minExpires := *, + organization := *, + priority := *, + proxyAuthenticate := *, + replyTo := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Request BYE_Request_r_2 + (template CallId loc_CallId, template CSeq loc_CSeq, template From loc_From, template To loc_To) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq + } + } + + template Request BYE_Request_r_3 + (template CallId loc_CallId, template To loc_To) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + toField := loc_To + } + } + + template Request BYE_Request_r_4 + (template CallId loc_CallId) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := SipUrl_IP_ofETS + }, + + msgHeader := + { + route := omit + } + } + + template Request BYE_Request_r_5 + (template CallId loc_CallId) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := SipUrl_IP_ofETS + }, + msgHeader := + { + route := + { + fieldName := ROUTE_E, + routeBody := { + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofRouteEts}, + rrParam := {{ id := "lr",paramValue := omit }} }, + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofProxy}, + rrParam := omit } + } + } + } + } + + template Request BYE_Request_r_6 + (template CallId loc_CallId) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := SipUrl_ofRouteEts + }, + msgHeader := + { + route := + { + fieldName := ROUTE_E, + routeBody := { + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofProxy}, + rrParam := omit }, + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_IP_ofETS}, + rrParam := omit } + } + } + } + } + + template Request BYE_Request_r_7 + (template CallId loc_CallId, template From loc_From) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + fromField := loc_From + } + } + + template Request BYE_Request_r_8 + (template CallId loc_CallId) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := BYE_E, + requestUri := + { scheme := SIP_SCHEME, + userInfo := *, + hostPort := ?, + urlParameters :=omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + } + } + + template Request BYE_Request_r_9 + (template CallId loc_CallId, template Route loc_Route) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + route := loc_Route + } + } + + template Request BYE_Request_r_10 + (template CallId loc_CallId, template integer loc_mf) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + } + + template Request BYE_Request_r_11 + (template CallId loc_CallId) + modifies BYE_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + via := + { + fieldName := VIA_E, + viaBody := + { //ViaBody_List + {sentProtocol:= {protocolName:=SIP_NAME, protocolVersion:=SIP_VERSION, transport:=?}, + sentBy := ?, + //Parameter branch shall be present + viaParams := ? + } + } //end viaBody + } // end via + + } // end msgHeader + } + + template Request BYE_Request_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, template Route loc_route, charstring branch_val) + := + { + requestLine := + { + method := BYE_E, + //SIP URL + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= loc_reqHostPort, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + + via := + { + fieldName := VIA_E, + viaBody := {ViaBody_ETS_IPADDR(branch_val)} + }, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + route :=loc_route, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + authorization := omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + mimeVersion :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + recordRoute :=omit, + require :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a BYE request [20] + alertInfo := omit, + authenticationInfo := omit, + callInfo := omit, + contact := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request BYE_Request_cause_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, template Route loc_route, charstring branch_val) + modifies BYE_Request_s_1:= + { + msgHeader := + { + reason := Reason_s(PX_SIP_BYE_CAUSE) // PIXIT value + } + } + + template Request BYE_Request_noroute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, charstring branch_val) + := + { + requestLine := + { + method := BYE_E, + //SIP URL + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= loc_reqHostPort, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + + via := + { + fieldName := VIA_E, + viaBody := {ViaBody_ETS_IPADDR(branch_val)} + }, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + route :=omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + authorization := omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + mimeVersion :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + recordRoute :=omit, + require :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a BYE request [20] + alertInfo := omit, + authenticationInfo := omit, + callInfo := omit, + contact := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request BYE_Request_cause_noroute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, charstring branch_val) + modifies BYE_Request_noroute_s_1 + := + { + msgHeader := + { + reason := Reason_s(PX_SIP_BYE_CAUSE) // PIXIT value + } + } + + + template Request BYE_Request_s_2 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, charstring branch_val) + modifies BYE_Request_noroute_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_reqHostPort, branch_val) // original params + := + { + msgHeader := + { + undefinedHeader_List :={{headerName:="unknownHeader",headerValue:="unknownValue"}} + } + } + + template Request BYE_Request_s_3 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, charstring branch_val) + modifies BYE_Request_noroute_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_reqHostPort, branch_val) // original params + := + { + msgHeader := + { + require := + { + fieldName:= REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + + template Request BYE_Request_s_4 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqHostPort, Via loc_Via) + := + { + requestLine := + { + method := BYE_E, + //SIP URL + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= loc_reqHostPort, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_Via , + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + authorization := omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + mimeVersion :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + recordRoute :=omit, + require :=omit, + route :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a BYE request [20] + alertInfo := omit, + authenticationInfo := omit, + callInfo := omit, + contact := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request BYE_Request_s_5 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + := + { + requestLine := + { + method := BYE_E, + //SIP URL + //SIP URL + requestUri := loc_requestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_Via , + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + accept :=omit, + acceptEncoding :=omit, + acceptLanguage :=omit, + allow :=omit, + authorization := omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + date :=omit, + mimeVersion :=omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + recordRoute :=omit, + require :=omit, + route :=omit, + supported :=omit, + timestamp :=omit, + userAgent :=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a BYE request [20] + alertInfo := omit, + authenticationInfo := omit, + callInfo := omit, + contact := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request BYE_Request_WithRoute_s_5 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, template Route loc_route) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + route := loc_route + } + } + + template Request BYE_Request_s_6 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, integer loc_mf) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards := {fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + } + + template Request BYE_Request_WithRoute_s_6 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, integer loc_mf, template Route loc_route) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards := {fieldName := MAX_FORWARDS_E, forwards := loc_mf}, + route := loc_route + } + } + + template Request BYE_Request_s_7 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { proxyRequire := + { + fieldName:= PROXY_REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + template Request BYE_Request_WithRoute_s_7 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, template Route loc_route) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + proxyRequire := + { + fieldName:= PROXY_REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + }, + route := loc_route + } + } + + template Request BYE_Request_s_8 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, template Route loc_route) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + route := loc_route + } + } + + template Request BYE_Request_s_9 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, template MaxForwards loc_mf) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards :=loc_mf + } + + } + + template Request BYE_Request_WithRoute_s_9 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, template MaxForwards loc_mf, template Route loc_route) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards :=loc_mf, + route := loc_route + } + + } + + template Request BYE_Request_s_10 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + inReplyTo := {fieldName:=IN_REPLY_TO_E, callids:={"erronous replyto"}} + } + } + + template Request BYE_Request_WithRoute_s_10 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, + To loc_To, Via loc_Via, template Route loc_route) + modifies BYE_Request_s_5 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + inReplyTo := {fieldName:=IN_REPLY_TO_E, callids:={"erronous replyto"}}, + route := loc_route + } + } + + template Request mw_INFO_Request_1(template CallId loc_CallId) := + { + requestLine := + { + method := INFO_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + authorization := *, + callId := ?, + contentLength := *, + cSeq := ?, + date := *, + fromField := ?, + maxForwards := ?, + recordRoute := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a CANCEL request [20] + accept := *, + acceptEncoding := *, + acceptLanguage := *, + alertInfo := *, + allow := *, + authenticationInfo := *, + callInfo := *, + contact := *, + contentDisposition :=*, + contentEncoding :=*, + contentLanguage :=*, + contentType :=*, + errorInfo := *, + expires :=*, + inReplyTo :=*, + minExpires := *, + mimeVersion :=*, + organization :=*, + priority :=*, + proxyAuthenticate := *, + proxyAuthorization :=*, + proxyRequire :=*, + replyTo := *, + require := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Request CANCEL_Request_ANY_r_1 := + { + requestLine := + { + method := CANCEL_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + authorization := *, + callId := ?, + contentLength := *, + cSeq := ?, + date := *, + fromField := ?, + maxForwards := ?, + recordRoute := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a CANCEL request [20] + accept := *, + acceptEncoding := *, + acceptLanguage := *, + alertInfo := *, + allow := *, + authenticationInfo := *, + callInfo := *, + contact := *, + contentDisposition :=*, + contentEncoding :=*, + contentLanguage :=*, + contentType :=*, + errorInfo := *, + expires :=*, + inReplyTo :=*, + minExpires := *, + mimeVersion :=*, + organization :=*, + priority :=*, + proxyAuthenticate := *, + proxyAuthorization :=*, + proxyRequire :=*, + replyTo := *, + require := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Request CANCEL_Request_r_1 (template CallId loc_CallId) := + { + requestLine := + { + method := CANCEL_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + authorization := *, + callId := loc_CallId, + contentLength := *, + cSeq := ?, + date := *, + fromField := ?, + maxForwards := ?, + recordRoute := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a CANCEL request [20] + accept := *, + acceptEncoding := *, + acceptLanguage := *, + alertInfo := *, + allow := *, + authenticationInfo := *, + callInfo := *, + contact := *, + contentDisposition :=*, + contentEncoding :=*, + contentLanguage :=*, + contentType :=*, + errorInfo := *, + expires :=*, + inReplyTo :=*, + minExpires := *, + mimeVersion :=*, + organization :=*, + priority :=*, + proxyAuthenticate := *, + proxyAuthorization :=*, + proxyRequire :=*, + replyTo := *, + require := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Request CANCEL_Request_r_2 + ( CallId loc_CallId, From loc_From, To loc_To, SipUrl loc_RequestUri) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := CANCEL_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + fromField := loc_From, + toField := loc_To + } + } + + template Request CANCEL_Request_r_3 + ( CallId loc_CallId, integer loc_Cseq_value) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_Cseq_value, method:= "CANCEL"} + } + } + + template Request CANCEL_Request_r_4 + ( CallId loc_CallId, Via loc_via) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + via := loc_via + } + } + + template Request CANCEL_Request_r_5 + ( CallId loc_CallId) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + proxyRequire :=omit, + require := omit + } + } + + template Request CANCEL_Request_r_6 + ( CallId loc_CallId) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := INVITE_E, + requestUri := SipUrl_ofPTC_r_1, + sipVersion := SIP_NAME_VERSION + } + } + + template Request CANCEL_Request_r_7 + ( CallId loc_CallId, Route loc_Route) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + route := loc_Route + } + + } + + template Request CANCEL_Request_r_8 + ( CallId loc_CallId, integer loc_mf) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + + } + + template Request CANCEL_Request_r_9 + ( CallId loc_CallId, Route loc_Route) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := INVITE_E, + requestUri := SipUrl_ofRoutePtc, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + route := loc_Route + } + + } + + template Request CANCEL_Request_r_10 + ( CallId loc_CallId, From loc_From, To loc_To, SipUrl loc_RequestUri, + integer loc_Cseq_value, Via loc_via) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := CANCEL_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_Cseq_value, method:= "CANCEL"}, + fromField := loc_From, + toField := loc_To, + via := loc_via + + } + } + + template Request CANCEL_Request_r_11 + ( CallId loc_CallId, From loc_From, To loc_To, SipUrl loc_RequestUri, + integer loc_Cseq_value) + modifies CANCEL_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := CANCEL_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_Cseq_value, method:= "CANCEL"}, + fromField := loc_From, + toField := loc_To + } + } + + template Request CANCEL_Request_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqUri, Via loc_via) + := + { + requestLine := + { + method := CANCEL_E, + //SIP URL + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= {host:=loc_reqUri.host, portField:=loc_reqUri.portField}, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_via, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + authorization := omit, + contentLength := omit, + date := omit, + recordRoute := omit, + //require := omit, + route := omit, + supported := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a CANCEL request [20] + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authenticationInfo := omit, + callInfo := omit, + contact := omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + errorInfo := omit, + expires :=omit, + inReplyTo :=omit, + minExpires := omit, + mimeVersion :=omit, + organization :=omit, + priority :=omit, + proxyAuthenticate := omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + replyTo := omit, + require := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, // CANCEL requests do not have a message body + payload := omit + } + + template Request CANCEL_Request_s_2 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqUri, Via loc_via) + modifies CANCEL_Request_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_reqUri, loc_via) // original params + := + { + msgHeader := + { + require := + { + fieldName:= REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + template Request CANCEL_Request_s_3 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqUri, Via loc_via) + modifies CANCEL_Request_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_reqUri, loc_via) // original params + := + { + msgHeader := + { + proxyRequire := + { + fieldName:= PROXY_REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + template Request CANCEL_Request_s_4 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_via) + := + { + requestLine := + { + method := CANCEL_E, + //SIP URL + requestUri := loc_requestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + via := loc_via, + fromField := loc_From, + toField := loc_To, + callId := loc_CallId, + cSeq := loc_CSeq, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + authorization := omit, + contentLength := omit, + date := omit, + recordRoute := omit, + require := omit, + route := omit, + supported := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a CANCEL request [20] + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authenticationInfo := omit, + callInfo := omit, + contact := omit, + contentDisposition :=omit, + contentEncoding :=omit, + contentLanguage :=omit, + contentType :=omit, + errorInfo := omit, + expires :=omit, + inReplyTo :=omit, + minExpires := omit, + mimeVersion :=omit, + organization :=omit, + priority :=omit, + proxyAuthenticate := omit, + proxyAuthorization :=omit, + proxyRequire :=omit, + replyTo := omit, + retryAfter := omit, + server := omit, + subject := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, // CANCEL requests do not have a message body + payload := omit + } + + template Request CANCEL_Request_s_5 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_via, integer loc_mf) + modifies CANCEL_Request_s_4 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_via) // original params + := + { + msgHeader := + { + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + } + + template Request CANCEL_Request_s_6 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_via, Route loc_Route) + modifies CANCEL_Request_s_4 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_via) // original params + := + { + msgHeader := + { + route := loc_Route + } + } + + template Request CANCEL_Request_s_7 + (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_via) + modifies CANCEL_Request_s_4 + // (loc_requestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_via) // original params + := + { + msgHeader := + { + maxForwards := omit + } + } + + template Request ACK_Request_r_1 (CallId loc_CallId) := + { + requestLine := + { + method := ACK_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + authorization := *, + callId := loc_CallId, + contact := *, + contentDisposition := *, + contentEncoding := *, + contentLanguage := *, + contentLength := ?, + contentType := *, + cSeq := {fieldName:=CSEQ_E, seqNumber:= ?, method:= ?}, + date := *, + fromField := ?, + maxForwards := ?, + mimeVersion := *, + proxyAuthorization := *, + proxyRequire := *, + recordRoute := *, + route := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a ACK request [20] + accept := *, + acceptEncoding := *, + acceptLanguage := *, + alertInfo := *, + authenticationInfo := *, + allow := *, + callInfo := *, + errorInfo := *, + expires := *, + inReplyTo := *, + minExpires := *, + organization := *, + priority := *, + proxyAuthenticate := *, + replyTo := *, + require := *, + retryAfter := *, + server := *, + subject := *, + supported := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Request ACK_Request_r_2 (CallId loc_CallId, To loc_To) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + //Tag param shall be present + toField := loc_To + } + } + template Request ACK_Request_r_3 (CallId loc_CallId) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + contentLength :=?, + contentType :={fieldName := CONTENT_TYPE_E, mediaType := (Inc_SDP,Inc_sdp)} + }, + messageBody := ? + } + + template Request ACK_Request_r_4 + (CallId loc_CallId, template SipUrl loc_requestUri, template Route loc_route) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := loc_requestUri + }, + msgHeader := + { + route := loc_route + } + } + + template Request ACK_Request_r_5 (CallId loc_CallId) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := SipUrl_ofRouteEts + }, + msgHeader := + { + route := + { + fieldName := ROUTE_E, + routeBody := { + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofProxy}, + rrParam := omit }, + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_IP_ofETS}, + rrParam := omit } + } + } + } + } + + template Request ACK_Request_r_7 (CallId loc_CallId) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + route := + { + fieldName := ROUTE_E, + routeBody := ? + } + } + } + + template Request ACK_Request_r_8 (CallId loc_CallId, template Via loc_Via) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + via := loc_Via + } + } + + template Request ACK_Request_r_9 + (CallId loc_CallId) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := ACK_E, + requestUri := + { scheme := SIP_SCHEME, + userInfo := *, + hostPort := ?, + urlParameters :=omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + } + } + + template Request ACK_Request_r_10 (CallId loc_CallId, CSeq loc_CSeq) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "ACK"} + } + } + template Request ACK_Request_r_11 (CallId loc_CallId, From loc_From) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + //Tag param shall be present + fromField := loc_From + } + } + template Request ACK_Request_r_12 + (CallId loc_CallId) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := SipUrl_IP_ofETS + }, + + msgHeader := + { + route := omit + } + } + template Request ACK_Request_r_13 (CallId loc_CallId, From loc_From, + To loc_To, SipUrl loc_RequestUri) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + requestUri := loc_RequestUri + }, + msgHeader := + { + toField := loc_To, + fromField := loc_From + } + } + template Request ACK_Request_r_14 (CallId loc_CallId, integer loc_mf) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + msgHeader := + { + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + } + + template Request ACK_Request_r_15 (CallId loc_CallId,template SipUrl loc_requestUri, template Route loc_route) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := ACK_E, + requestUri := loc_requestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + route :=loc_route + } + + } + + + template Request ACK_Request_r_16 (CallId loc_CallId, From loc_From, To loc_To, SipUrl loc_RequestUri, integer loc_Cseq_value) + modifies ACK_Request_r_1 + // (loc_CallId) // original params + := + { + requestLine := + { + method := ACK_E, + requestUri := loc_RequestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_Cseq_value, method:= "ACK"}, + fromField := loc_From, + toField := loc_To + } + } + + template Request ACK_Request_s_1 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) := + { + requestLine := + { + method := ACK_E, + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= loc_reqHostPort, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "ACK"}, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName:=MAX_FORWARDS_E, forwards:=70}, + authorization := omit, + contact := omit, + contentDisposition := omit, + contentEncoding := omit, + contentLanguage := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + contentType := omit, + date := omit, + mimeVersion := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + route := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a ACK request [20] + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authenticationInfo := omit, + callInfo := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + require := omit, + retryAfter := omit, + server := omit, + subject := omit, + supported := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request ACK_Request_s_2 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, Route loc_route) + modifies ACK_Request_s_1 + // (loc_reqHostPort, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + route := loc_route + } + } + + template Request ACK_Request_s_3 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies ACK_Request_s_1 + // (loc_reqHostPort, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + proxyRequire := + { + fieldName:= PROXY_REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + template Request ACK_Request_s_4 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies ACK_Request_s_1 + // (loc_reqHostPort, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + require := + { + fieldName:= REQUIRE_E, + //OptionTag_List + optionsTags := {PX_OPTION_UNSUPPORTED} + } + } + } + + template Request ACK_Request_s_5 (SipUrl loc_requestUri, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) := + { + requestLine := + { + method := ACK_E, + requestUri := loc_requestUri, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "ACK"}, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := 70}, + authorization := omit, + contact := omit, + contentDisposition := omit, + contentEncoding := omit, + contentLanguage := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + contentType := omit, + date := omit, + mimeVersion := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + route := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a ACK request [20] + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authenticationInfo := omit, + callInfo := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + require := omit, + retryAfter := omit, + server := omit, + subject := omit, + supported := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Request ACK_Request_s_6 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, integer loc_mf) + modifies ACK_Request_s_1 + // (loc_reqHostPort, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards := {fieldName := MAX_FORWARDS_E, forwards := loc_mf} + } + } + + template Request ACK_Request_s_7 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies ACK_Request_s_1 + // (loc_reqHostPort, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards := omit + } + } + + template Raw Raw_REGISTER_Request_s_1(charstring loc_ReqUri, charstring loc_CallId, charstring loc_CSeq, + charstring loc_Contact, charstring loc_From, charstring loc_To, + charstring loc_Via, charstring loc_Authorization) := + "REGISTER " & loc_ReqUri & " SIP/2.0" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + "Max-Forwards : 70" & CRLF & + loc_Authorization & CRLF & + "Content-Length: 0"& CRLF & CRLF & CRLF; + + template Raw Raw_REGISTER_Request_s_2(charstring loc_ReqUri, charstring loc_CallId, charstring loc_CSeq, + charstring loc_Contact, charstring loc_From, charstring loc_To, + charstring loc_Via, charstring loc_Authorization) := + CRLF & CR & CR & LF & LF & "REGISTER " & loc_ReqUri & " SIP/2.0" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + "Max-Forwards : 70" & CRLF & + loc_Authorization & CRLF & + "Content-Length:0" & CRLF + & CRLF & CRLF; + + template Raw Raw_BYE_Request_s_1(charstring loc_ReqUri, charstring loc_CallId, charstring loc_CSeq, + charstring loc_From, charstring loc_To, charstring loc_Via, charstring loc_Route) := + "BYE " & loc_ReqUri & " SIP/2.0" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Route & CRLF & + "Max-Forwards : 70" & CRLF & + "Content-Length: 0"& CRLF & CRLF; + + template Raw Raw_INVITE_Request_s_1(charstring loc_ReqUri, charstring loc_CallId, charstring loc_CSeq, + charstring loc_Contact, charstring loc_From, charstring loc_To, + charstring loc_Via, charstring loc_len, charstring loc_sdp) := + "INVITE " & loc_ReqUri & " SIP/2.0" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + "Max-Forwards : 70" & CRLF & + "Content-Length: "& loc_len & CRLF & CRLF & loc_sdp & CRLF; + + template Raw Raw_INVITE_Request_s_2(charstring loc_ReqUri, charstring loc_CallId, charstring loc_CSeq, + charstring loc_Contact, charstring loc_From, charstring loc_To, + charstring loc_Via, charstring loc_len, charstring loc_sdp) := + CRLF & CRLF & CRLF & "INVITE " & loc_ReqUri & " SIP/2.0" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + "Max-Forwards : 70" & CRLF & + "Content-Length: "& loc_len & CRLF & CRLF & loc_sdp & CRLF; + + template Raw Raw_Unknown_Request_s_1(charstring loc_ReqUri, charstring loc_CallId, charstring loc_CSeq, + charstring loc_Contact, charstring loc_From, charstring loc_To, charstring loc_Via) := + "UNKNOWN " & loc_ReqUri & " SIP/2.0" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + "Max-Forwards : 70" & CRLF & + "Content-Length: 0"& CRLF & CRLF; + } //end Groupe RequestTemplates + + group ResponseTemplates + { + template Response Response_Any_r_1 := + { + statusLine := {sipVersion := ?, statusCode := ?, reasonPhrase := ?}, + msgHeader := + { + callId := ?, + cSeq := ?, + fromField := ?, + toField := ?, + via := ?, + // OPTIONAL FIELDs are IGNORED except undefined + accept:=*, + acceptEncoding:=*, + acceptLanguage:=*, + alertInfo:=*, + allow :=*, + authenticationInfo:=*, + callInfo:=*, + contact:=*, + contentDisposition:=*, + contentEncoding:=*, + contentLanguage:=*, + contentLength:=*, + contentType:=*, + date:=*, + errorInfo:=*, + expires:=*, + minExpires:=*, + mimeVersion:=*, + organization:=*, + proxyAuthenticate:=*, + recordRoute:=*, + replyTo:=*, + require:=*, + retryAfter:=*, + server:=*, + supported:=*, + timestamp:=*, + userAgent:=*, + unsupported:=*, + warning:=*, + wwwAuthenticate:=*, + undefinedHeader_List := *, + // the following header fields may never appear in responses [20] + authorization := *, + inReplyTo := *, + maxForwards := *, + priority := *, + proxyAuthorization := *, + proxyRequire := *, + route := *, + subject := *, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Response Response_Any_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_Any_r_1 := + { + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq + } + } + + template Response Response_Final_r (CallId loc_CallId, CSeq loc_CSeq) := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (200..699), reasonPhrase := ?}, + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq, + fromField := ?, + toField := ?, + via := ?, + // OPTIONAL FIELDs are IGNORED except undefined + accept:=*, + acceptEncoding:=*, + acceptLanguage:=*, + alertInfo:=*, + allow :=*, + authenticationInfo:=*, + callInfo:=*, + contact:=*, + contentDisposition:=*, + contentEncoding:=*, + contentLanguage:=*, + contentLength:=*, + contentType:=*, + date:=*, + errorInfo:=*, + expires:=*, + minExpires:=*, + mimeVersion:=*, + organization:=*, + proxyAuthenticate:=*, + recordRoute:=*, + replyTo:=*, + require:=*, + retryAfter:=*, + server:=*, + supported:=*, + timestamp:=*, + userAgent:=*, + unsupported:=*, + warning:=*, + wwwAuthenticate:=*, + undefinedHeader_List := *, + // the following header fields may never appear in responses [20] + authorization := *, + inReplyTo := *, + maxForwards := *, + priority := *, + proxyAuthorization := *, + proxyRequire := *, + route := *, + subject := *, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + + }, + messageBody := *, + payload := * + } + + template Response Response_NonOK_Final_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_Final_r + // (loc_CallId,loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (300..699), reasonPhrase := ?} + } + + template Response Response_100_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 100, reasonPhrase := "Trying"} + } + + template Response Response_180_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 180, reasonPhrase := "Ringing"} + } + + template Response Response_183_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := "Session Progress"} + } + + template Response Response_199_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 199, reasonPhrase := "Unknown"} + } + + template Response Response_183I_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, Contact loc_Contact) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := "Session Progress"}, + msgHeader := + { + contact:= loc_Contact + } + } + + + template Response Response_1XX_r_1 (template CallId loc_CallId, template CSeq loc_CSeq) := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (100..199), reasonPhrase := ?}, + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq, + fromField := ?, + toField := ?, + via := ?, + // OPTIONAL FIELDs are IGNORED except undefined + accept:=*, + acceptEncoding:=*, + acceptLanguage:=*, + alertInfo:=*, + allow :=*, + authenticationInfo:=*, + callInfo:=*, + contact:=*, + contentDisposition:=*, + contentEncoding:=*, + contentLanguage:=*, + contentLength:=*, + contentType:=*, + date:=*, + errorInfo:=*, + expires:=*, + minExpires:=*, + mimeVersion:=*, + organization:=*, + proxyAuthenticate:=*, + recordRoute:=*, + replyTo:=*, + require:=*, + retryAfter:=*, + server:=*, + supported:=*, + timestamp:=*, + userAgent:=*, + unsupported:=*, + warning:=*, + wwwAuthenticate:=*, + undefinedHeader_List := *, + // the following header fields may never appear in responses [20] + authorization := *, + inReplyTo := *, + maxForwards := *, + priority := *, + proxyAuthorization := *, + proxyRequire := *, + route := *, + subject := *, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Response Response_101_199_r_1 (template CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (101..199), reasonPhrase := ?} + } + + template Response Response_101_199_r_2 + (template CallId loc_CallId, template CSeq loc_CSeq, From loc_From, template Via loc_via) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (101..199), reasonPhrase := ?}, + msgHeader := + { + fromField := loc_From, + via := loc_via + } + + } + + template Response Response_101_199_r_3 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (101..199), reasonPhrase := ?}, + msgHeader := + { + toField := + {fieldName := TO_E, + + addressField := + { + nameAddr := { + displayName := "IUT", // optional charstring + addrSpec := SipUrl_ofCallee_s // SipUrl + } + }, + toParams := ? //toParams shall contain a tag (checked in behaviour) + } + } + } + + template Response Response_101_199_r_4 + (CallId loc_CallId, CSeq loc_CSeq, To loc_to) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (101..199), reasonPhrase := ?}, + msgHeader := + { + toField := loc_to + } + + } + + template Response Response_101_199_r_5 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (101..199), reasonPhrase := ?}, + msgHeader := + { + contact:= + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + // One contact exactly + {addressField := ?, contactParams := *} + } + } + } + } + } + + template Response Response_101_199_r_6 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (101..199), reasonPhrase := ?}, + msgHeader := + { + recordRoute := + { + fieldName := RECORD_ROUTE_E, + routeBody := { + {nameAddr := {displayName:= *, addrSpec:= SipUrl_ofRouteEts}, + rrParam := * }, + {nameAddr := {displayName:= *, addrSpec:= SipUrl_ofProxy}, + rrParam := * } + } + } + } + } + + template Response Response_100_r_1 (template CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 100, reasonPhrase := ?} + } + template Response Response_100_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 100, reasonPhrase := ?}, + msgHeader := + { + timestamp:={fieldName:=TIMESTAMP_E, timeValue:=*, delay:=?} + } + } + + template Response Response_100_r_3 + (CallId loc_CallId, CSeq loc_CSeq, template Via loc_via) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 100, reasonPhrase := ?}, + msgHeader := + { + via := loc_via + } + } + + template Response Response_100_r_4 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, Via loc_via) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 100, reasonPhrase := ?}, + msgHeader := + { + + fromField := loc_From, + via := loc_via + } + } + + template Response Response_100_r_5 + (CallId loc_CallId, CSeq loc_CSeq, To loc_To) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 100, reasonPhrase := ?}, + msgHeader := + { + + toField := loc_To + } + } + + template Response Response_180_r_1 (template CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 180, reasonPhrase := ?} + } + + template Response Response_180_r_2 + (template CallId loc_CallId, template CSeq loc_CSeq, template Via loc_via) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 180, reasonPhrase := ?}, + msgHeader := + { + via := loc_via + } + } + + template Response Response_1XX_r (template StatusLine v_statusLine, template CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_183_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := v_statusLine + } + + template Response Response_182_r_1 (template CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 182, reasonPhrase := ?} + } + + template Response Response_183_r_1 (template CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := ?} + } + + template Response Response_200_r_1 (CallId loc_CallId, template CSeq loc_CSeq) := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := ?}, + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq, + fromField := ?, + toField := ?, + via := ?, + // OPTIONAL FIELDs are IGNORED except undefined + accept:=*, + acceptEncoding:=*, + acceptLanguage:=*, + alertInfo:=*, + allow :=*, + authenticationInfo:=*, + callInfo:=*, + contact:=*, + contentDisposition:=*, + contentEncoding:=*, + contentLanguage:=*, + contentLength:=*, + contentType:=*, + date:=*, + errorInfo:=*, + expires:=*, + minExpires:=*, + mimeVersion:=*, + organization:=*, + proxyAuthenticate:=*, + recordRoute:=*, + replyTo:=*, + require:=*, + retryAfter:=*, + server:=*, + supported:=*, + timestamp:=*, + unsupported:=*, + userAgent:=*, + warning:=*, + wwwAuthenticate:=*, + undefinedHeader_List := *, + // the following header fields may never appear in responses [20] + authorization := *, + inReplyTo := *, + maxForwards := *, + priority := *, + proxyAuthorization := *, + proxyRequire := *, + route := *, + subject := *, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + template Response Response_INVITE_200_r_1 (CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + //contact is mandatory in 2XX response to an INVITE + contact:={ fieldName := CONTACT_E, + contactBody :={contactAddresses:={ContactAddress_r_1,*}}} + } + } + + template Response Response_REGISTER_200_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + contact:=?, //contact is expected in 2XX response to an REGISTER + recordRoute:=omit //record-route is forbidden in 2XX response to an REGISTER + } + } + template Response Response_REGISTER_200_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + contact:=omit, //contact list is empty + recordRoute:=omit //record-route is forbidden in 2XX response to an REGISTER + } + } + + template Response Response_200_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + expires:={fieldName:=EXPIRES_E, deltaSec := ?} + } + } + + template Response Response_200_r_3 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + date:={fieldName:=DATE_E, sipDate := ?} + } + } + + template Response Response_200_r_4 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + contact:=?, //contact is mandatory in 2XX response to an INVITE + contentLength :=?, + contentType :={fieldName := CONTENT_TYPE_E, mediaType := (Inc_SDP,Inc_sdp)} + }, + messageBody := ? + } + + template Response Response_200_r_5 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, template Via loc_via) + modifies Response_200_r_1 + //(loc_CallId, loc_CSeq) + := + { + msgHeader := + { + fromField := loc_From, + via := loc_via + } + } + + template Response Response_200_r_6 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + contact:= + { + fieldName := CONTACT_E, + contactBody := + { + contactAddresses := + { + // One contact exactly + {addressField := ?, contactParams := *} + } + } + } + } + } + + template Response Response_200_r_7 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + recordRoute := + { + fieldName := RECORD_ROUTE_E, + routeBody := { + {nameAddr := {displayName:= *, addrSpec:= SipUrl_ofRouteEts}, + rrParam := * }, + {nameAddr := {displayName:= *, addrSpec:= SipUrl_ofProxy}, + rrParam := * } + } + } + } + } + + + template Response Response_200_r_8 + (CallId loc_CallId, CSeq loc_CSeq, TimeValue loc_TimeValue) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + contact:=?, //contact is mandatory in 2XX response to an INVITE + timestamp:={fieldName:=TIMESTAMP_E, timeValue:=loc_TimeValue, delay:=omit} + } + } + + template Response Response_200_r_9 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + toField := + { + fieldName := TO_E, + addressField := + { + nameAddr := { + displayName := "IUT", // optional charstring + addrSpec := SipUrl_ofCallee_s // SipUrl + } + }, + toParams := ? //toParams shall contain a tag (checked in behaviour) + } + } + } + + template Response Response_200_r_10 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + contact:=?, //contact is mandatory in 2XX response to an INVITE + recordRoute := + { + fieldName := RECORD_ROUTE_E, + routeBody := ? + } + } + } + + template Response Response_200_r_11 + (CallId loc_CallId, CSeq loc_CSeq, To loc_To) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + toField:=loc_To + } + } + + template Response Response_200_r_12 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + allow := ?, + supported := ? + } // end msgHeader + } + + template Response Response_200_r_13 + (CallId loc_CallId, CSeq loc_CSeq, template Via loc_via) + modifies Response_200_r_1 + //(loc_CallId, loc_CSeq) + := + { + msgHeader := + { + via := loc_via + } + } + + template Response Response_2XX_r_1 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (200..299), reasonPhrase := ?} + } + + template Response Response_200_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + callId := loc_CallId, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + accept:=omit, + acceptEncoding:=omit, + acceptLanguage:=omit, + alertInfo :=omit, + allow :=omit, + authenticationInfo:=omit, + callInfo:=omit, + contact:=omit, + contentDisposition:=omit, + contentEncoding:=omit, + contentLanguage:=omit, + contentType:=omit, + date:=omit, + errorInfo:=omit, + expires:=omit, + minExpires:=omit, + mimeVersion:=omit, + organization:=omit, + proxyAuthenticate:=omit, + recordRoute:=omit, + replyTo:=omit, + require:=omit, + retryAfter:=omit, + server:=omit, + supported:=omit, + timestamp:=omit, + unsupported:=omit, + userAgent:=omit, + warning:=omit, + wwwAuthenticate:=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in responses [20] + authorization := omit, + inReplyTo := omit, + maxForwards := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + route := omit, + subject := omit, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := omit, + payload := omit + } + + template Response Response_200_withRoute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + RecordRoute loc_Route) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + recordRoute:=loc_Route + } + } + + template Response Response_200_PTC_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + RecordRoute loc_Route) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + recordRoute:=loc_Route + } + } + + + // According to RFC2543bis-05 13.3.1.4, it must contain a SDP offer and a contact + template Response Response_200_Invite_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + contact :=Contact_ETS_s, + accept:=omit, + acceptEncoding:=omit, + acceptLanguage:=omit, + alertInfo :=omit, + allow :=omit, + authenticationInfo:=omit, + callInfo:=omit, + contentDisposition:=omit, + contentEncoding:=omit, + contentLanguage:=omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType := {fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + date:=omit, + errorInfo:=omit, + expires:=omit, + minExpires:=omit, + mimeVersion:=omit, + organization:=omit, + proxyAuthenticate:=omit, + recordRoute:=omit, + replyTo:=omit, + require:=omit, + retryAfter:=omit, + server:=omit, + supported:=omit, + timestamp:=omit, + unsupported:=omit, + userAgent:=omit, + warning:=omit, + wwwAuthenticate:=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in responses [20] + authorization := omit, + inReplyTo := omit, + maxForwards := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + route := omit, + subject := omit, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := PX_SDPBODY, + payload := omit + } + + template Response Response_200_PTCInvite_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, RecordRoute loc_Route) // with RecordRoute header + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + contact:=Contact_PTC_s, + recordRoute:=loc_Route, + accept:=omit, + acceptEncoding:=omit, + acceptLanguage:=omit, + alertInfo :=omit, + allow :=omit, + authenticationInfo:=omit, + callInfo:=omit, + contentDisposition:=omit, + contentEncoding:=omit, + contentLanguage:=omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + date:=omit, + errorInfo:=omit, + expires:=omit, + minExpires:=omit, + mimeVersion:=omit, + organization:=omit, + proxyAuthenticate:=omit, + replyTo:=omit, + require:=omit, + retryAfter:=omit, + server:=omit, + supported:=omit, + timestamp:=omit, + unsupported:=omit, + userAgent:=omit, + warning:=omit, + wwwAuthenticate:=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in responses [20] + authorization := omit, + inReplyTo := omit, + maxForwards := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + route := omit, + subject := omit, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := PX_SDPBODY, + payload := omit + } + + template Response Response_200_PTCInvite_noroute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via) // with no RecordRoute header + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + callId := loc_CallId, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + contact:=Contact_PTC_s, + recordRoute:=omit, + accept:=omit, + acceptEncoding:=omit, + acceptLanguage:=omit, + alertInfo :=omit, + allow :=omit, + authenticationInfo:=omit, + callInfo:=omit, + contentDisposition:=omit, + contentEncoding:=omit, + contentLanguage:=omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(PX_SDPBODY))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + date:=omit, + errorInfo:=omit, + expires:=omit, + minExpires:=omit, + mimeVersion:=omit, + organization:=omit, + proxyAuthenticate:=omit, + replyTo:= omit, + require:=omit, + retryAfter:=omit, + server:=omit, + supported:=omit, + timestamp:=omit, + unsupported := omit, + userAgent:=omit, + warning:=omit, + wwwAuthenticate:=omit, + undefinedHeader_List := omit, + // the following header fields may never appear in responses [20] + authorization := omit, + inReplyTo := omit, + maxForwards := omit, + priority := omit, + proxyAuthorization := omit, + proxyRequire := omit, + route := omit, + subject := omit, +// the following header field is due to RFC3261 (rel. prov. response) + rAck := omit, // due to new message header field + rSeq := omit, // due to new message header field + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := PX_SDPBODY, + payload := omit + } + + template Response Response_2XX_PTCInvite_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, RecordRoute loc_Route, integer loc_sc, charstring loc_rp) + modifies Response_200_PTCInvite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To,loc_Via,loc_Route) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_sc, reasonPhrase := loc_rp} + } + + + template Response Response_2XX_PTCInvite_noroute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, integer loc_sc, charstring loc_rp) + modifies Response_200_PTCInvite_noroute_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To,loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_sc, reasonPhrase := loc_rp} + } + template Response Response_200_Invite_WithRoute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, RecordRoute loc_Route) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + recordRoute:=loc_Route + } + } + + template Response Response_200_Invite_s_2 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, Contact loc_Contact) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contact:=loc_Contact + } + } + + template Response Response_200_Invite_s_3 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, charstring loc_sdp,template RecordRoute loc_Route) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_sdp))}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + recordRoute:=loc_Route + }, + messageBody := loc_sdp + } + + template Response Response_200_Invite_s_4 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, integer loc_sdp,template RecordRoute loc_Route) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= loc_sdp}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + recordRoute:=loc_Route + }, + messageBody := PX_SDPBODY + } + + template Response Response_2XX_Invite_s_1 + ( CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, integer loc_sc, charstring loc_rp) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_sc, reasonPhrase := loc_rp} + } + + template Response Response_2XX_Invite_WithRoute_s_1 + ( CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, RecordRoute loc_Route, integer loc_sc, charstring loc_rp) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_sc, reasonPhrase := loc_rp}, + msgHeader := + { + recordRoute:=loc_Route + } + } + + template Response Response_200_Invite_s_5 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, integer len_sdp, charstring loc_sdp, template RecordRoute loc_Route) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= len_sdp}, + contentType:={fieldName := CONTENT_TYPE_E, mediaType := SDP_APPLICATION}, + recordRoute:=loc_Route + }, + messageBody := loc_sdp + } + + template Response Response_Register_200_s_1 //used as a response to REGISTER_Request + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + Contact loc_Contact, charstring loc_Date, charstring loc_expires) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + contact := loc_Contact, + // expires := {EXPIRES_E, loc_Expires}, // expires fields must be part of contact + date := {fieldName := DATE_E, sipDate := loc_Date}, //eg Sat, 13 Nov 2010 23:29:00 GMT + expires := {fieldName := EXPIRES_E, deltaSec := loc_expires} + } + } + + template Response Response_Register_200_s_2 //used as a response to REGISTER_Request + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + Contact loc_Contact, charstring loc_Date) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + contact := loc_Contact, + // expires := {EXPIRES_E, loc_Expires}, // expires fields must be part of contact + date := { fieldName := DATE_E, sipDate := loc_Date} //eg Sat, 13 Nov 2010 23:29:00 GMT + } + } + + template Response Response_200_s_3 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + Contact loc_Contact,template RecordRoute loc_Route) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + contact := loc_Contact + } + } + + template Response Response_200_s_4 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + charstring loc_Expires) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + expires := {fieldName := EXPIRES_E, deltaSec := loc_Expires} + } + } + + template Response Response_200_s_5 // with RecordRoute header + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + recordRoute := + { + fieldName := RECORD_ROUTE_E, + routeBody := { + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofProxy}, + rrParam := omit }, + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofRouteEts}, + rrParam := {{ id:= "lr", paramValue := omit }} } + } + } + } + } + + template Response Response_200_s_6 // with RecordRoute header set to a list + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_Invite_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 200, reasonPhrase := "OK"}, + msgHeader := + { + recordRoute := + { + fieldName := RECORD_ROUTE_E, + routeBody := { + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofProxy}, + rrParam := omit }, + {nameAddr := {displayName:= omit, addrSpec:= SipUrl_ofRouteEts}, + rrParam := omit }} + }, + contact := Contact_ETS_s + } + } + + template Response Response_2xx_REGISTER_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, + Contact loc_Contact, charstring loc_Date,integer loc_status, charstring loc_phrase) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_status, reasonPhrase := loc_phrase}, + msgHeader := + { + callId := loc_CallId, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0}, + cSeq := loc_CSeq, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + contact := loc_Contact, + date := { fieldName := DATE_E, sipDate := loc_Date} //eg Sat, 13 Nov 2010 23:29:00 GMT + } + } + + template Response Response_300_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 300, reasonPhrase := "Multiple Choices"}, + msgHeader := + { + contact := Contact_Multi_s1 + } + } + + template Response Response_301_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 301, reasonPhrase := "Moved Permanently"}, + msgHeader := + { + contact := Contact_PTC_s + } + } + + template Response Response_302_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 302, reasonPhrase := "Moved Temporarily"}, + msgHeader := + { + contact := Contact_PTC_s + } + } + + template Response Response_305_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 305, reasonPhrase := "Use Proxy"}, + msgHeader := + { + contact := Contact_Proxy_s + } + } + + template Response Response_302_r_1 + (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 302, reasonPhrase := ?} + } + + template Response Response_302_r_2 + (CallId loc_CallId, CSeq loc_CSeq, template Via loc_via) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 302, reasonPhrase := ?}, + msgHeader := + { + via := loc_via + } + } + + template Response Response_3XX_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (300..399), reasonPhrase := ?}, + msgHeader := + { + toField := {fieldName := TO_E, + addressField := {nameAddr:= {displayName:= *, addrSpec := SipUrl_ofRDPTC}}, + toParams := ?}, // tag shall be present + //contact is mandatory in 3XX response to an INVITE + contact := Contact_RD_PTC_r + } + } + + template Response Response_3XX_r_2 (CallId loc_CallId, CSeq loc_CSeq,Via loc_Via) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (300..399), reasonPhrase := ?}, + msgHeader := + { + via := loc_Via, + //contact is mandatory in 3XX response to an INVITE + contact := ? + } + } + + template Response Response_3XX_r_3 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (300..399), reasonPhrase := ?} + } + + template Response Response_3XX_r_4 (CallId loc_CallId, CSeq loc_CSeq,Contact loc_Contact) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (300..399), reasonPhrase := ?}, + msgHeader := + { + contact := loc_Contact + } + } + + + template Response Response_400_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 400, reasonPhrase := "Bad Request"} + } + + template Response Response_401_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 401, reasonPhrase := "Unauthorized"}, + msgHeader := + { + wwwAuthenticate := + { + fieldName := WWW_AUTHENTICATE_E, + challenge := {digestCln := {{id := "realm" , paramValue := PX_REALM}}} + } + } + } + template Response Response_401_s_2 (CallId loc_CallId, CSeq loc_CSeq,From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 401, reasonPhrase := "Unauthorized"}, + msgHeader := + { + proxyAuthenticate := + { + fieldName := PROXY_AUTHENTICATE_E, + challenge := {digestCln := {{id := "realm", paramValue := PX_REALM}}} + } + } + } + + template Response Response_404_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 404, reasonPhrase := "Not Found"} + } + + template Response Response_407_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 407, reasonPhrase := "Proxy Authentication Required"}, + msgHeader := + { + proxyAuthenticate := + { + fieldName := PROXY_AUTHENTICATE_E, + challenge := {digestCln := {{id := "realm", paramValue := PX_REALM}}} + } + } + } + + template Response Response_409_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 409, reasonPhrase := "Conflict"} + } + + template Response Response_410_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 410, reasonPhrase := "Gone"} + } + + template Response Response_480_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 480, reasonPhrase := "Temporarily Unavailable"} + } + + template Response Response_481_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 481, reasonPhrase := "Call/Transaction Does Not Exist"} + } + + template Response Response_486_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 486, reasonPhrase := "User Busy"} + } + + template Response Response_400_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 400, reasonPhrase := ?} + } + + template Response Response_401_r_0 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 401, reasonPhrase := ?} + } + + template Response Response_401_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 401, reasonPhrase := ?}, + msgHeader := + { + wwwAuthenticate :={fieldName := WWW_AUTHENTICATE_E, challenge:= ?} + } + } + template Response Response_401_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 401, reasonPhrase := ?}, + msgHeader := + { + proxyAuthenticate := {fieldName := PROXY_AUTHENTICATE_E, challenge:= ?}, + wwwAuthenticate :={fieldName := WWW_AUTHENTICATE_E, challenge:= ?} + } + } + + template Response Response_403_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 403, reasonPhrase := ?} + } + + template Response Response_404_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 404, reasonPhrase := ?} + } + + template Response Response_405_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 405, reasonPhrase := ?}, + msgHeader := + { + allow :=? + } + + } + + template Response Response_407_r_0 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 407, reasonPhrase := ?} + } + + template Response Response_407_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 407, reasonPhrase := ?}, + msgHeader := + { + proxyAuthenticate:={fieldName := PROXY_AUTHENTICATE_E, challenge:= ?} + } + } + + template Response Response_408_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 408, reasonPhrase := ?} + } + + + template Response Response_409_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 409, reasonPhrase := ?} + } + + template Response Response_410_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 410, reasonPhrase := ?} + } + + template Response Response_410_r_2 + (CallId loc_CallId, CSeq loc_CSeq, template Via loc_via) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 410, reasonPhrase := ?}, + msgHeader := + { + via := loc_via + } + } + + template Response Response_415_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 415, reasonPhrase := ?} + } + + template Response Response_415_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 415, reasonPhrase := ?}, + msgHeader := + { + acceptEncoding:=? + } + } + + template Response Response_415_r_3 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 415, reasonPhrase := ?}, + msgHeader := + { + accept :=? + } + } + + template Response Response_416_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 416, reasonPhrase := ?} + } + + template Response Response_420_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 420, reasonPhrase := ?} + } + + template Response Response_420_r_2 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 420, reasonPhrase := ?}, + msgHeader := + { + unsupported:=? + } + } + + template Response Response_480_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 480, reasonPhrase := ?} + } + + template Response Response_482_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 482, reasonPhrase := ?} + } + + template Response Response_481_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 481, reasonPhrase := ?} + } + template Response Response_483_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 483, reasonPhrase := ?} + } + + template Response Response_484_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 484, reasonPhrase := ?} + } + + template Response Response_485_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 485, reasonPhrase := ?} + } + + template Response Response_486_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 486, reasonPhrase := ?} + } + + template Response Response_487_r_1 (CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 487, reasonPhrase := ?} + } + + template Response Response_488_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 488, reasonPhrase := ?} + } + + template Response Response_491_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 491, reasonPhrase := ?} + } + + template Response Response_4XX_r_1 (CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := (400..499), reasonPhrase := ?} + } + + template Response Response_500_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 500, reasonPhrase := "Server Internal Error"} + } + + template Response Response_500_r_0 (CallId loc_CallId, template CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 500, reasonPhrase := ?} + } + + template Response Response_500_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 500, reasonPhrase := ?}, + msgHeader := + { + retryAfter:={fieldName:=RETRY_AFTER_E, deltaSec:=?, comment:=*,retryParams:=*} + } + } + + template Response Response_500_r_2 + (CallId loc_CallId, CSeq loc_CSeq, template Via loc_via) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 500, reasonPhrase := ?}, + msgHeader := + { + via := loc_via + } + } + template Response Response_501_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 501, reasonPhrase := ?} + } + + template Response Response_503_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 503, reasonPhrase := ?} + } + + template Response Response_505_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := ?, statusCode := 505, reasonPhrase := ?} + } + + template Response Response_513_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := ?, statusCode := 513, reasonPhrase := ?} + } + + template Response Response_600_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 600, reasonPhrase := "Busy Everywhere"} + } + + template Response Response_603_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 603, reasonPhrase := "Decline"} + } + + template Response Response_699_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq,loc_From, loc_To, loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 699, reasonPhrase := "Unknown"} + } + + template Response Response_603_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 603, reasonPhrase := ?} + } + + template Response Response_603_r_2 + (CallId loc_CallId, CSeq loc_CSeq, template Via loc_via) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 603, reasonPhrase := ?}, + msgHeader := + { + via := loc_via + } + } + + template Response Response_606_r_1 (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 606, reasonPhrase := ?} + } + + template Response Response_XXX_with_route_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, RecordRoute loc_Route, integer loc_sc, charstring loc_rp) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To,loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_sc, reasonPhrase := loc_rp}, + msgHeader := + { + recordRoute:=loc_Route + } + } + + + template Response Response_XXX_noroute_s_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, integer loc_sc, charstring loc_rp) + modifies Response_200_s_1 + // (loc_CallId, loc_CSeq, loc_From, loc_To,loc_Via) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_sc, reasonPhrase := loc_rp} + } + + template Raw Raw_Response_Register_200_s_1(charstring loc_CallId, charstring loc_CSeq, + charstring loc_From, charstring loc_To, charstring loc_Via, charstring loc_Contact, + charstring loc_Date):= + "SIP/2.0 200 OK" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + loc_Date & CRLF & + "Content-Length: 0" + & CRLF & CRLF; + + template Raw Raw_Response_Register_200_s_2(charstring loc_CallId, charstring loc_CSeq, + charstring loc_From, charstring loc_To, charstring loc_Via, charstring loc_Contact, + charstring loc_Date):= + CRLF & CRLF & CRLF & "SIP/2.0 200 OK" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + loc_Date & CRLF & + "Content-Length: 0" & CRLF + & CRLF & CRLF; + + template Raw Raw_Response_Invite_200_s_1(charstring loc_CallId, charstring loc_CSeq, + charstring loc_From, charstring loc_To, charstring loc_Via, + charstring loc_Contact):= + "SIP/2.0 200 OK" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + "Content-Length: " & int2str(lengthof(addCRLF(PX_SDPBODY)))& CRLF + & CRLF + & PX_SDPBODY + & CRLF; + + template Raw Raw_Response_Invite_200_WithRoute_s_1(charstring loc_CallId, charstring loc_CSeq, + charstring loc_From, charstring loc_To, charstring loc_Via, + charstring loc_Contact, charstring loc_RecordRoute):= + "SIP/2.0 200 OK" & CRLF & + loc_CallId & CRLF & + loc_CSeq & CRLF & + loc_From & CRLF & + loc_To & CRLF & + loc_Via & CRLF & + loc_Contact & CRLF & + loc_RecordRoute & CRLF & + "Content-Length: " & int2str(lengthof(addCRLF(PX_SDPBODY)))& CRLF + & CRLF + & PX_SDPBODY + & CRLF; + + } //end Group ResponseTemplates + + group CMtemplates + { + template CM_Message CM_Stop := "Stop"; + template CM_Message CM_Init_OK := "Init OK"; + template CM_Message CM_Check_Done:= "Check Done"; + template CM_Message CM_Rsp_Rcved:= "Message Received"; + template CM_Message CM_Send_Rsp:= "Send Response"; + template CM_Message CM_Param (template charstring loc_par):= loc_par; + } + } // end Group MSGtemplates + +} // end Group Templates + + + group SipIsupTemplates + { + + group SDPTemplates + { + // media + template charstring Inc_audio := pattern "*m=audio*"; + template charstring Inc_image := pattern "*m=image*"; + + // media/transport/fmt-list + template charstring PCMA := "PCMA/8000"; // A-law PSTN network + template charstring PCMU := "PCMU/8000"; // mu-law PSTN network + template charstring Inc_PCMA := pattern "*RTP/AVP 8*"; + template charstring Inc_PCMU := pattern "*RTP/AVP 0*"; + template charstring Inc_PCMG722 := pattern "*RTP/AVP 9*"; + template charstring Inc_udptlt38 := pattern "*Udptl t38*"; + template charstring Inc_tcptlt38 := pattern "*Tcptl t38*"; + template charstring Inc_RejectPCMU := pattern "*0 RTP/AVP 0*"; + template charstring Inc_RejectPCMA := pattern "*0 RTP/AVP 8*"; + template charstring Inc_RejectH261 := pattern "*0 RTP/AVP 31*"; + template charstring Inc_H261 := pattern "*RTP/AVP 31*"; + template charstring Inc_PCMU_PCMA := pattern "*RTP/AVP 0 8*"; // PCMU takes precedence over PCMA + template charstring Inc_PCMA_PCMU := pattern "*RTP/AVP 8 0*"; // PCMA takes precedence over PCMU + + // bandwidth + template charstring Inc_AS64 := pattern "*b=AS:64*"; + + // attributes + template charstring Inc_rtpmap0 := pattern "*a=rtpmap:\d#(1,3) PCMU/8000*"; // todo: check value 96-127 + template charstring Inc_rtpmap8 := pattern "*a=rtpmap:\d#(1,3) PCMA/8000*"; // todo: check value 96-127 + template charstring Inc_rtpmap9 := pattern "*a=rtpmap:\d#(1,3) G722/8000*"; // todo: check value 96-127 + template charstring Inc_rtpmapDU := pattern "*a=rtpmap:0 PCMU/8000*"; // dynamic-PT + template charstring Inc_rtpmapDA := pattern "*a=rtpmap:8 PCMA/8000*"; // dynamic-PT + template charstring Inc_rtpmapDC := pattern "*a=rtpmap:0 CLEARMODE/8000*"; // dynamic-PT + template charstring Inc_sendrecv := pattern "*a=sendrecv*"; + template charstring Inc_recvonly := pattern "*a=recvonly*"; + template charstring Inc_sendonly := pattern "*a=sendonly*"; + template charstring Inc_inactive := pattern "*a=inactive*"; + } + + group SubTemplates + { + template GenericParam m_Cause(template charstring loc_cause) := + { + id := "cause", + paramValue := loc_cause + }; + template GenericParam m_Text(template charstring loc_text) := + { + id := "text", + paramValue := loc_text + }; + template SemicolonParam_List m_ReasonParams(template charstring loc_cause, template charstring loc_text) := + { + m_Cause(loc_cause),m_Text(loc_text) + }; + template ReasonValue m_ReasonValue(template charstring loc_cause, template charstring loc_text) := + { + token := "Q.850", + reasonParams := m_ReasonParams(loc_cause,loc_text) + }; + + + + template Reason Reason_s(integer loc_cause) := +// { +// fieldName := REASON_E, +// protocol := "Q.850", +// cause := loc_cause, +// reasonText := "" +// }; + { + fieldName := REASON_E, + reasonValues := {m_ReasonValue(int2str(loc_cause), "dummy")} + }; + + template Reason Reason_r(integer loc_cause) := +// { +// fieldName := REASON_E, +// protocol := "Q.850", +// cause := loc_cause, +// reasonText := * +// }; + { + fieldName := REASON_E, + reasonValues := { + *, m_ReasonValue(int2str(loc_cause), ?), * + } + }; + + template Reason Reason_r2 := + { + fieldName := REASON_E, + reasonValues := {m_ReasonValue(?,?)} + }; + + template Privacy Privacy_s_1(PrivacyValue loc_privacy) := + { + fieldName := PRIVACY_E, + privValueList := {loc_privacy} + }; + +// template Privacy Privacy_s_2 := +// { +// fieldName := PRIVACY_E, +// privValueList := {privacy_none} +// }; + + template PAssertedID PAssertedID_s_1(template Addr_Union loc_pAssertedIDValue) := + { + fieldName := P_ASSERTED_ID_E, + pAssertedIDValueList := {loc_pAssertedIDValue} + }; + + template PAssertedID my_PAssertedID_s_1 := + { + fieldName := P_ASSERTED_ID_E, + pAssertedIDValueList := {Addr_Union_NameAddr(CallingAddr_CGPN)} + }; + + template PAssertedID PAssertedID_s_2(template Addr_Union loc_pAssertedIDValue1, template Addr_Union loc_pAssertedIDValue2) := + { + fieldName := P_ASSERTED_ID_E, + pAssertedIDValueList := {loc_pAssertedIDValue1, loc_pAssertedIDValue2} + }; + + template SipUrl SipUrl_withCalledPartyNumber(charstring loc_CDPN) := // SIP-URL with a calles party number + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := loc_CDPN,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := DEFAULT_SIP_PORT //optional integer + }, + urlParameters := omit, + headers := omit + }; + + template SipUrl SipUrl_withCalledPartyNumber2(charstring loc_CDPN) := // SIP-URL with a calles party number + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := loc_CDPN, // pattern "{loc_CDPN}",// charstring + password := omit // optional charstring + }, + hostPort := + { + host := *, // hostname, IPv4 or IPv6 as a charstring + portField := omit //optional integer + }, + urlParameters := *, + headers := omit + }; + + template SipUrl SipUrl_withCalledPartyNumber_i1 := // insufficient digits + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := substr(PX_TE_CALLEE_USERINFO,0,lengthof(PX_TE_CALLEE_USERINFO)-2), // insufficient calling digits + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := DEFAULT_SIP_PORT //optional integer + }, + urlParameters := omit, + headers := omit + }; + + template SipUrl SipUrl_withCalledPartyNumber_i2 := // insufficient digits + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := substr(PX_TE_CALLEE_USERINFO,0,lengthof(PX_TE_CALLEE_USERINFO)-1), // insufficient calling digits + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := DEFAULT_SIP_PORT //optional integer + }, + urlParameters := omit, + headers := omit + }; + + template SipUrl SipUrl_withCalledPartyNumber_i3 := // insufficient digits + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := PX_UNKNOWN_USERINFO, // insufficient calling digits + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := DEFAULT_SIP_PORT //optional integer + }, + urlParameters := omit, + headers := omit + }; + + template SipUrl SipUrl_withCallingPartyNumber(charstring loc_CGPN) := // SIP-URL with a calling party number + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := loc_CGPN,// charstring + password := omit // optional charstring + }, + hostPort := + { + host := PX_ETS_LOCAL_DOMAIN, // hostname, IPv4 or IPv6 as a charstring + portField := DEFAULT_SIP_PORT //optional integer + }, + urlParameters := omit, + headers := omit + }; + + template SipUrl SipUrl_Anonymous := // SIP-URL with a calles party number + { + scheme := SIP_SCHEME, // contains "sip" + userInfo := // optional + { + userOrTelephoneSubscriber := "anonymous",// charstring + password := omit // optional charstring + }, + hostPort := + { + host := "anonymous.invalid", // hostname, IPv4 or IPv6 as a charstring + portField := omit //optional integer + }, + urlParameters := omit, + headers := omit + }; + + template To To_s_i1 := + { + fieldName := TO_E, + addressField := + {nameAddr := { + displayName := "IUT", // optional charstring + addrSpec := SipUrl_withCalledPartyNumber_i1 // insufficient digits + }},//end addressField + toParams := omit + } + + template To ToField_r (template Addr_Union loc_NameAddr):= + { + fieldName := TO_E, + addressField := loc_NameAddr, //end addressField + toParams := omit + } + + template To ToField_r2 := + { + fieldName := TO_E, + addressField := (addr_Union_nameAddr_ofCallee_r2,addr_Union_SipUrl_ofCallee_r2), + toParams := omit + } + template To ToField_r2_first := + { + fieldName := TO_E, + addressField := (addr_Union_nameAddr_ofCallee_r2_first,addr_Union_SipUrl_ofCallee_r2_first), + toParams := omit + } + template To ToField_r2_middle := + { + fieldName := TO_E, + addressField := (addr_Union_nameAddr_ofCallee_r2_middle,addr_Union_SipUrl_ofCallee_r2_middle), + toParams := omit + } + + + template From From_CGPN_s (template SipUrl loc_SipUrl, charstring tag_str) := + { + fieldName := FROM_E, + addressField := + { + addrSpecUnion := loc_SipUrl + }, + fromParams := {{id := TAG_ID, paramValue := tag_str}} + }; + + template From fromField_anonymous (charstring tag_str):= { + fieldName := FROM_E, + addressField := + { + // nameAddr := { + // displayName := "ETSI Tester", // optional charstring + // addrSpec := SipUrl_ofUnknown_s // SipUrl + // } + addrSpecUnion := SipUrl_Anonymous + }, + fromParams:={{id := TAG_ID, paramValue := tag_str}} + } + + template From fromField_r (template SipUrl loc_SipUrl) := { + fieldName := FROM_E, + addressField := + { + // nameAddr := { + // displayName := "ETSI Tester", // optional charstring + // addrSpec := SipUrl_ofUnknown_s // SipUrl + // } + addrSpecUnion := loc_SipUrl // SipUrl_ofUnknown_s + }, + fromParams:=* + } + +// var charstring m_display := '[^;](,);[;][^@(,)]'; // display name mit tag + + template From fromField_r2 (template SipUrl loc_SipUrl) := { + fieldName := FROM_E, + addressField := + { + nameAddr := { +// displayName := regexp(PX_SIPURL_CGPN_PASSERTED, '[^;](,);[;][^@(,)]', 0), + displayName := PX_SIPURL_CGPN_DISPLAY, + addrSpec := loc_SipUrl // SipUrl + } + }, + fromParams:=* + } + + template From fromField_r3 (template SipUrl loc_SipUrl) := { + fieldName := FROM_E, + addressField := + { + nameAddr := { + displayName := omit, // optional charstring + addrSpec := loc_SipUrl // SipUrl + } + }, + fromParams:=* + } + + template From fromField_r4 (template SipUrl loc_SipUrl) := { + fieldName := FROM_E, + addressField := + { + nameAddr := { + displayName := "Anonymous", // optional charstring + addrSpec := loc_SipUrl // SipUrl + } + }, + fromParams:=* + } + + template Addr_Union Addr_Union_NameAddr(template NameAddr loc_NameAddr) := + { + nameAddr := loc_NameAddr + } + + template NameAddr CallingAddr(in charstring loc_displayName, template SipUrl loc_addrSpec) := + { + displayName := loc_displayName, + addrSpec := loc_addrSpec + } + + template NameAddr CallingAddr_CGPN := + { + displayName := PX_SIPURL_CGPN_DISPLAY, // PX_SIPURL_CGPN_PASSERTED, + addrSpec := SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED) + } + + template NameAddr CallingAddr_CGPN_r := + { + displayName := PX_SIPURL_CGPN_DISPLAY, // PX_SIPURL_CGPN_PASSERTED, + addrSpec := * // SipUrl_withCalledPartyNumber2(PX_SIPURL_CGPN_PASSERTED) + } + + template NameAddr CallingAddr_CGPN2 := + { + displayName := PX_SIPURL_CGPN_PASSERTED, + addrSpec := SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED2) + } + + template NameAddr CallingAddr_CGPN_nodisplay := + { + displayName := omit, + addrSpec := SipUrl_withCalledPartyNumber(PX_SIPURL_CGPN_PASSERTED) + } + + template GenericParam UserPhone := + { + id := "user", + paramValue := "phone" + } + + } + + group MSGtemplates + { + + template Request INVITE_Request_100rel_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + supported:={fieldName:=SUPPORTED_E, optionsTags:={TAG_100rel}}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0} + }, + messageBody := omit + } + + template Request INVITE_Request_100rel_s_2 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, charstring loc_SDP) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + supported:={fieldName:=SUPPORTED_E, optionsTags:={TAG_100rel}}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_SDP))} + }, + messageBody := loc_SDP + } + + template Request INVITE_Request_SDP_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, charstring loc_SDP) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_SDP))} + }, + messageBody := loc_SDP + } + + template Request INVITE_Request_SDP_s_ReInvite + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, charstring loc_SDP, Route loc_Route) + modifies INVITE_Request_SDP_s_1 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + route := loc_Route + } + } + + template Request INVITE_Request_noSDP_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= 0} + }, + messageBody := omit + } + + template Request INVITE_Request_maxForward_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, charstring loc_SDP, integer loc_maxForwards) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + maxForwards :={fieldName := MAX_FORWARDS_E, forwards := loc_maxForwards}, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_SDP))} + }, + messageBody := loc_SDP + } + + template Request INVITE_Request_privacy_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, + template Privacy loc_Privacy, + charstring loc_SDP) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + privacy:= loc_Privacy, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_SDP))} + }, + messageBody := loc_SDP + } + + template Request INVITE_Request_pAssertedId_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, + template PAssertedID loc_PAssertedID, + charstring loc_SDP) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + pAssertedID := loc_PAssertedID, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_SDP))} + }, + messageBody := loc_SDP + } + + template Request INVITE_Request_CLI_s_1 + (SipUrl loc_RequestUri, CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, + Via loc_Via, + template PAssertedID loc_PAssertedID, + template Privacy loc_Privacy, + charstring loc_SDP) + modifies INVITE_Request_s_2 + // (loc_RequestUri, loc_CallId, loc_CSeq, loc_From, loc_To, loc_Via) // original params + := + { + msgHeader := + { + pAssertedID := loc_PAssertedID, + privacy:= loc_Privacy, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_SDP))} + }, + messageBody := loc_SDP + } + + template Request INVITE_Request_r_From2(template SipUrl loc_SipUrl) modifies INVITE_Request_r_1 := + { + msgHeader := + { + + fromField := { + fieldName := FROM_E, + addressField := + { +// nameAddr := { +// displayName := "ETSI Tester", // optional charstring +// addrSpec := SipUrl_ofUnknown_s // SipUrl +// } + addrSpecUnion := loc_SipUrl // SipUrl_ofUnknown_s + }, + fromParams:=* + } + + + } + } + + template Request INVITE_Request_r_From(template From loc_From) modifies INVITE_Request_r_1 := + { + msgHeader := + { + fromField := loc_From, + pAssertedID := omit, + privacy := omit + } + } + + template Request INVITE_Request_r_From3 + (template From loc_From, template PAssertedID loc_PAssertedID) + modifies INVITE_Request_r_1 := + { + msgHeader := + { + fromField := loc_From, + pAssertedID := loc_PAssertedID, + privacy := * + } + } + + + template Request INVITE_Request_r_To(template To loc_To) modifies INVITE_Request_r_1 := + { + msgHeader := + { + toField := loc_To + } + } + + template Request PRACK_Request_s_1 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, RAck loc_RAck, charstring loc_messageBody) := + { + requestLine := + { + method := PRACK_E, + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= loc_reqHostPort, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "ACK"}, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName:=MAX_FORWARDS_E, forwards:=70}, + authorization := omit, + contact := omit, + contentDisposition := omit, + contentEncoding := omit, + contentLanguage := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_messageBody))}, + contentType := omit, + date := omit, + mimeVersion := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + route := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + // the following header fields may never appear in a ACK request [20] + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authenticationInfo := omit, + callInfo := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + require := omit, + retryAfter := omit, + server := omit, + subject := omit, + supported := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := loc_RAck, + rSeq := omit, + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := loc_messageBody, // should be loc_messageBody (from v_messageBody) + payload := omit + } + + template Request PRACK_Request_r_1(template CallId loc_CallId) := + { + requestLine := + { + method := PRACK_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + accept := *, + acceptEncoding := *, + acceptLanguage := *, + allow := *, + authorization := *, + callId := loc_CallId, + contentDisposition := *, + contentEncoding := *, + contentLanguage := *, + contentLength := ?, + contentType := *, + cSeq := ?, + date := *, + fromField := ?, + maxForwards := ?, + mimeVersion := *, + proxyAuthorization := *, + proxyRequire := *, + recordRoute := *, + require := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + // the following header fields may never appear in a BYE request [20] + alertInfo := *, + authenticationInfo := *, + callInfo := *, + contact := *, + expires := *, + errorInfo := *, + inReplyTo := *, + minExpires := *, + organization := *, + priority := *, + proxyAuthenticate := *, + replyTo := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + + template Request UPDATE_Request_s_1 (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, charstring loc_messageBody) := + { + requestLine := + { + method := UPDATE_E, + requestUri := + { + scheme := SIP_SCHEME, + userInfo := omit, + hostPort:= loc_reqHostPort, + urlParameters := omit, + headers := omit + }, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + callId := loc_CallId, + cSeq := {fieldName:=CSEQ_E, seqNumber:= loc_CSeq.seqNumber, method:= "ACK"}, + fromField := loc_From, + toField := loc_To, + via := loc_Via, + maxForwards :={fieldName:=MAX_FORWARDS_E, forwards:=70}, + authorization := omit, + contact := omit, + contentDisposition := omit, + contentEncoding := omit, + contentLanguage := omit, + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_messageBody))}, + contentType := omit, + date := omit, + mimeVersion := omit, + proxyAuthorization := omit, + proxyRequire := omit, + recordRoute := omit, + route := omit, + timestamp := omit, + userAgent := omit, + undefinedHeader_List := omit, + accept := omit, + acceptEncoding := omit, + acceptLanguage := omit, + alertInfo := omit, + allow := omit, + authenticationInfo := omit, + callInfo := omit, + errorInfo := omit, + expires := omit, + inReplyTo := omit, + minExpires := omit, + organization := omit, + priority := omit, + proxyAuthenticate := omit, + replyTo := omit, + require := omit, + retryAfter := omit, + server := omit, + subject := omit, + supported := omit, + unsupported := omit, + warning := omit, + wwwAuthenticate := omit, + rAck := omit, + rSeq := omit, + reason := omit, // due to new message header field + pAssertedID := omit, // due to new message header field + pPreferredID := omit, // due to new message header field + privacy := omit // due to new message header field + }, + messageBody := loc_messageBody, + payload := omit + } + + template Request UPDATE_Request_r_1(template CallId loc_CallId) := + { + requestLine := + { + method := UPDATE_E, + requestUri := ?, + sipVersion := SIP_NAME_VERSION + }, + msgHeader := + { + accept := *, + acceptEncoding := *, + acceptLanguage := *, + allow := *, + authorization := *, + callId := loc_CallId, + contentDisposition := *, + contentEncoding := *, + contentLanguage := *, + contentLength := ?, + contentType := *, + cSeq := ?, + date := *, + fromField := ?, + maxForwards := ?, + mimeVersion := *, + proxyAuthorization := *, + proxyRequire := *, + recordRoute := *, + require := *, + route := *, + supported := *, + timestamp := *, + toField := ?, + userAgent := *, + via := ?, + undefinedHeader_List := *, + alertInfo := *, + authenticationInfo := *, + callInfo := *, + contact := *, + expires := *, + errorInfo := *, + inReplyTo := *, + minExpires := *, + organization := *, + priority := *, + proxyAuthenticate := *, + replyTo := *, + retryAfter := *, + server := *, + subject := *, + unsupported := *, + warning := *, + wwwAuthenticate := *, + rAck := *, // due to new message header field + rSeq := *, // due to new message header field + reason := *, // due to new message header field + pAssertedID := *, // due to new message header field + pPreferredID := *, // due to new message header field + privacy := * // due to new message header field + }, + messageBody := *, + payload := * + } + + +// provisional response SDP answer + template Response Response_180_r_3a (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 180, reasonPhrase := ?}, + messageBody := Inc_PCMA // includes specific attribute from template + } + template Response Response_180_r_3u (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 180, reasonPhrase := ?}, + messageBody := Inc_PCMU // includes specific attribute from template + } + +// provisional response with SDP offer + template Response Response_183_r_2a (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := ?}, + messageBody := Inc_PCMA // includes attribute from parameter + } + template Response Response_183_r_2u (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := ?}, + messageBody := Inc_PCMU // includes attribute from parameter + } + + template Response Response_183_r_2u_a (CallId loc_CallId, CSeq loc_CSeq) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := ?}, + messageBody := Inc_PCMU_PCMA // PCMU takes precedence over PCMA + } + + template Response Response_183_r_2_sdp (CallId loc_CallId, CSeq loc_CSeq, template charstring loc_sdp) + modifies Response_1XX_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 183, reasonPhrase := ?}, + messageBody := loc_sdp // PCMU takes precedence over PCMA + } + template Response Response_INVITE_200_r_SDP (CallId loc_CallId, CSeq loc_CSeq, template charstring p_sdp) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + msgHeader := + { + //contact is mandatory in 2XX response to an INVITE + contact:={ fieldName := CONTACT_E, + contactBody :={contactAddresses:={ContactAddress_r_1,*}}}}, + messageBody := p_sdp + } + + template Response Response_200_INVITE_SDP_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, charstring loc_sdp) + modifies Response_200_Invite_s_1 := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(loc_sdp))} + }, + messageBody := loc_sdp + } + + + template Response Response_603_r_3 (CallId loc_CallId, CSeq loc_CSeq, integer loc_cause) + modifies Response_200_r_1 + // (loc_CallId, loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 603, reasonPhrase := ?}, + msgHeader := {reason := Reason_r(loc_cause)} + } + + template Response Response_NonOK_Final_r_2 (CallId loc_CallId, CSeq loc_CSeq, integer loc_statusCode) + modifies Response_NonOK_Final_r_1 + // (loc_CallId,loc_CSeq) // original params + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := loc_statusCode, reasonPhrase := ?} + } + + template Response Response_NonOK_Final_r_3 (CallId loc_CallId, CSeq loc_CSeq, integer loc_statusCode, integer loc_cause) + modifies Response_NonOK_Final_r_2 + // (loc_CallId,loc_CSeq) // original params + := + { + msgHeader := {reason := Reason_r(loc_cause)} + } + + template Response Response_NonOK_Final_r_4 (CallId loc_CallId, CSeq loc_CSeq, integer loc_statusCode, integer loc_cause) + modifies Response_NonOK_Final_r_2 + // (loc_CallId,loc_CSeq) // original params + := + { + msgHeader := {reason := Reason_r2} + } + + template Response Response_xxx_s_1 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, StatusLine loc_StatusLine) + modifies Response_200_s_1 + := + { + statusLine := loc_StatusLine + } + + template Response Response_xxx_s_2 (CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, StatusLine loc_StatusLine, integer loc_cause) + modifies Response_xxx_s_1 + := + { + msgHeader := {reason := Reason_s(loc_cause)} + } + + template Response Response_487_s_1 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via) + modifies Response_200_s_1 + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 487, reasonPhrase := "Request Terminated"} + } + + template Response Response_487_s_2 (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, Via loc_Via, RecordRoute loc_RecordRoute) + modifies Response_200_s_1 + := + { + statusLine := {sipVersion := SIP_NAME_VERSION, statusCode := 487, reasonPhrase := "Request Terminated"}, + msgHeader := {recordRoute := loc_RecordRoute} + + } + + template Request BYE_Request_r_12 (template CallId loc_CallId, integer loc_cause) + modifies BYE_Request_r_1 + := + { + msgHeader := {reason := Reason_r(loc_cause)} + } + + template Request BYE_Request_r_13 (template CallId loc_CallId) + modifies BYE_Request_r_1 + := + { + msgHeader := {reason := omit} + } + + template Request BYE_Request_r_14 (template CallId loc_CallId, integer loc_cause) + modifies BYE_Request_r_1 + := + { + msgHeader := {reason := Reason_r(loc_cause) ifpresent} + } + + template Request CANCEL_Request_r_12 ( CallId loc_CallId, integer loc_cause) + modifies CANCEL_Request_r_1 + := + { + msgHeader := {reason := Reason_r(loc_cause)} + } + + template Request CANCEL_Request_r_13 ( CallId loc_CallId) + modifies CANCEL_Request_r_1 + := + { + msgHeader := {reason := omit} + } + + template Request CANCEL_Request_r_14 ( CallId loc_CallId, integer loc_cause) + modifies CANCEL_Request_r_1 + := + { + msgHeader := {reason := Reason_r(loc_cause) ifpresent} + } + + template Request CANCEL_Request_s_cause_1 + (CallId loc_CallId, CSeq loc_CSeq, From loc_From, To loc_To, HostPort loc_reqUri, Via loc_via) + modifies CANCEL_Request_s_1 + := + { + msgHeader := {reason := Reason_s(PX_SIP_BYE_CAUSE)} + } + + template Request ACK_Request_SDP_s (HostPort loc_reqHostPort, CallId loc_CallId, CSeq loc_CSeq, + From loc_From, To loc_To, Via loc_Via, charstring p_sdp) + modifies ACK_Request_s_1 + := + { + msgHeader := + { + contentLength := {fieldName := CONTENT_LENGTH_E, len:= lengthof(addCRLF(p_sdp))} + }, + messageBody := p_sdp + } + + + } // end Group SipIsupMSGtemplates + +} // end Group SipIsupTemplates + +} diff --git a/SipAts/SipIsup_SIP_TypesAndConf.ttcn b/SipAts/SipIsup_SIP_TypesAndConf.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..9ae28e8e121c5de4e89924fa3e4209fc8301b13f --- /dev/null +++ b/SipAts/SipIsup_SIP_TypesAndConf.ttcn @@ -0,0 +1,1728 @@ +/* + * @author STF 297 (STF270, STF246, STF196, STF166) + * @version $Id$ + * @desc This module is a copy of SIP_TypesAndConf published in ETSI TS 102027-2 with the following updates: + * + * extended types (group Types.SubTypes): Method, MessageHeader, FieldName + * extended SipComponent (group: SystemConfiguration): variable (v_RAck, v_Body, v_PAssertedID), port/timer (for Synchronization) + * + * additional types (group Types.SubTypes): RSeq, RAck, Reason, Privacy, P-Asserted-Identity, P-Preferred-Identity + * additional constants (group: SimpleConstants): TAG_100rel + * + * additional group SipIsup: new module parameters + * + * TODO: defintion of "WorkaroundAddress" to be removed (after a bug fix by Teleogic!) + */ + +module SipIsup_SIP_TypesAndConf +{ + + //LibCommon + import from LibCommon_Sync all; +// import from LibCommon_VerdictControl { type FncRetCode; function f_setVerdictPostamble }; + import from LibCommon_VerdictControl all; +// import from LibCommon_AbstractData { type StringStack; const c_initStringStack}; + import from LibCommon_AbstractData all; + + + + +group AdressTypes +{ +// STF297-Note: definition is a workaround due to Telelogic TAU compiler +//axr type address WorkaroundAddress; // to be removed if TAU bug is fixed + +//Type to adress the IUT to send it message +// type Address address; + type record address + { + //HostPort + charstring host optional, // hostname, IPv4 or IPv6 + integer portField optional // represented as an integer + }with { encode "SIPCodec" } + + //type HostPort address + +} +// end group AdressTypes + +group SIP_PIXITs +{ + group PICS_Items + { + modulepar { + // PICS question + // TRUE if + // PC_UA : IUT behaves as UA + boolean PC_UA := false; + // PC_PROXY : IUT behaves as a Proxy + boolean PC_PROXY := false; + // PC_STATELESS : IUT is a stateless PROXY otherwise stateful + boolean PC_STATELESS := false; + // PC_REDIRECTS : IUT behaves as a redirect server + boolean PC_REDIRECTS := false; + // PC_REGISTRATION : IUT supports Registration procedure + boolean PC_REGISTRATION := false; + // PC_PRECONFIGURED_REGISTRAR : IUT uses its configuration to determine its registrar address + // This one has to be set to the Local ETS domain + boolean PC_PRECONFIGURED_REGISTRAR := false; + // PC_ADDR_RECORD_REGISTRAR : IUT uses address-of-record to determine its registrar address + boolean PC_ADDR_RECORD_REGISTRAR := false; + // PC_MULTICAST_REGISTRAR : IUT uses multicast to determine its registrar address + boolean PC_MULTICAST_REGISTRAR := false; + // PC_THIRD_PARTY : IUT supports third party registration + boolean PC_THIRD_PARTY := false; + // PC_SHOULD : IUT supports SHOULD requirements of RFC3261 [1] + boolean PC_SHOULD := false; + // PC_REDIRECTION : IUT is able to manage redirection message for INVITE transaction + boolean PC_REDIRECTION := false; + // PC_FORK : IUT forks when target set contains more than one contact (q parameter used) + boolean PC_FORK := false + }//end modulepar + }//end group PICS_items + + group PIXIT_Items + { + modulepar { + // PIXIT + // True if UDP Transport is used by the IUT to run campaign + boolean PX_UDP := true; + // Used Transport in upper case "UDP"/"TCP" + charstring PX_TRANSPORT := "UDP"; + // IUT port number to exchange SIP messages + integer PX_IUT_PORT := 5060; + // IUT IP address to exchange SIP messages + charstring PX_IUT_IPADDR := "172.27.11.80"; + // IUT domain + charstring PX_IUT_HOME_DOMAIN := "172.27.11.80"; + // Additionnal IUT port number to exchange SIP messages + // on PTC side + integer PX_IUT_PORT2 := 0; // n/a + // Additional IUT IP address to exchange SIP messages + // on PTC side + charstring PX_IUT_IPADDR2 := "172.27.11.80"; + // Additionnal IUT port number to exchange SIP messages + // on PTC2 side + integer PX_IUT_PORT3 := 0; + // Additional IUT IP address to exchange SIP messages + // on PTC2 side + charstring PX_IUT_IPADDR3 := "172.27.11.80"; // Port number used by the ETS to exchange SIP messages + // on MTC side + integer PX_ETS_PORT := 5060; + // IP address used by the ETS to exchange SIP messages + // on MTC side + charstring PX_ETS_IPADDR := "172.27.1.219"; + // STF348: integer for REGISTRAR prot number to exchange SIP messages + // will be ignored if value is <0! + integer PX_SIP_REGISTRAR_PORT := 5060; + // STF348: charstring for REGISTRAR domain + charstring PX_SIP_REGISTRAR_DOMAIN := "172.27.11.80"; + // Port number used by the ETS to exchange SIP messages + // on PTC side + integer PX_ETS_PORT2 := 5062; + // IP address used by the ETS to exchange SIP messages + // on PTC side + charstring PX_ETS_IPADDR2 := "172.27.1.219"; + // Port number used by the ETS to exchange SIP messages + // on PTC2 side + integer PX_ETS_PORT3 := 5063; + // IP address used by the ETS to exchange SIP messages + // on PTC2 side + charstring PX_ETS_IPADDR3 := "172.27.1.219"; + // Default port number used in Routes or in 305 Response + integer PX_PROXY_PORT := 5060; + // Default IP address used in Routes or in 305 Response + charstring PX_PROXY_IPADDR := "172.27.11.80"; + //PX_DELTA_REGISTRATION : delta-seconds used in + // expires header field in 200 OK message to answer + // REGISTRATION request + charstring PX_DELTA_REGISTRATION := "100"; + // PX_ETS_LOCAL_DOMAIN : identity of the tester local domain + // on MTC side + charstring PX_ETS_LOCAL_DOMAIN := "172.27.1.219"; + // PX_ETS_LOCAL_USER : identity of the tester local user + // on MTC side + charstring PX_ETS_LOCAL_USER := "2909"; + // PX_ETS_LOCAL_USER_len1 : length of the first portion of PX_ETS_LOCAL_USER + // in case of stepwise completion of the number due to SAM at ISUP side + integer PX_ETS_LOCAL_USER_len1 := 1; + // PX_ETS_LOCAL_USER_len1 : length of the second portion of PX_ETS_LOCAL_USER + // in case of stepwise completion of the number due to SAM at ISUP side + integer PX_ETS_LOCAL_USER_len2 := 2; + // PX_ETS_LOCAL_DOMAIN2 : identity of the tester local domain + // on MTC or PTC side + charstring PX_ETS_LOCAL_DOMAIN2 := "172.27.11.80"; + // PX_ETS_LOCAL_USER2 : identity of the tester local user + // on PTC side + charstring PX_ETS_LOCAL_USER2 := "2909"; + // PX_ETS_UNAUTHORIZED_USER : identity of the tester local user + // on MTC side which is not authorized to update registration + charstring PX_ETS_UNAUTHORIZED_USER := "tip2"; + // PX_ETS_LOCAL_THIRD_USER : identity of another tester local user + // (third party tester) + charstring PX_ETS_LOCAL_THIRD_USER := "tip1"; + // PX_TE_CALLEE_DOMAIN : hostname of the callee when IUT is the callee + charstring PX_TE_CALLEE_DOMAIN := "172.27.11.80"; + // PX_TE_CALLEE_USERINFO : userinfo of the callee when IUT is the callee + charstring PX_TE_CALLEE_USERINFO := "0700123456"; + // PX_UNKNOWN_DOMAIN : unknown IP address + charstring PX_UNKNOWN_IPADDR := "1.0.0.0"; + // PX_UNKNOWN_DOMAIN : unknown hostname + charstring PX_UNKNOWN_DOMAIN := "172.27.11.93"; + // PX_UNKNOWN_USERINFO : unknown userinfo + charstring PX_UNKNOWN_USERINFO := "070"; + //PX_CREDENTIALS : Value used in authorisation header in REGISTER sent to the IUT +// Credentials PX_CREDENTIALS; + //PX_STR_CREDENTIALS : String Value used in authorisation header in REGISTER sent to the IUT for MG group + charstring PX_STR_CREDENTIALS := "abc"; + //PX_REALM : realm value for digest scheme understood by the IUT + charstring PX_REALM := "123"; + //PX_SDPBODY : SDP parameter proposed by the ETS + charstring PX_SDPBODY := "v=0 \n o=voicesession 12345 12345 IN IP4 172.27.1.219 \n s=Voice Session\n c=IN IP4 172.27.1.219 \n t=0 0 \n m=audio 8500 RTP/AVP 0 \n a=rtpmap:0 PCMU/8000"; + //PX_SDPBODY2 : additional SDP parameter proposed by the ETS + //for session modification testing + charstring PX_SDPBODY2 := "v=0 \n o=voicesession 12345 12345 IN IP4 172.27.1.219 \n s=Voice Session\n c=IN IP4 172.27.1.219 \n t=0 0 \n m=audio 8500 RTP/AVP 0 \n a=rtpmap:0 PCMU/8000"; + //PX_SDPBODY_UNSUPPORTED : SDP parameter proposed by the ETS + //that is not supported by the IUT + charstring PX_SDPBODY_UNSUPPORTED := "a charstring"; + //PX_SDPBODY_65535 : SDP parameter proposed by the ETS + //that makes the 200 OK or INVITE request of 63.535 bytes long + charstring PX_SDPBODY_65535 := "a charstring"; + //PX_SDPBODY_TOO_LARGE : SDP parameter proposed by the ETS + //that makes the 200 OK or INVITE request too large + charstring PX_SDPBODY_TOO_LARGE := "a charstring"; + //PX_CONTENCOD_UNSUPPORTED : Content encoding mechanism + //that is not supported by the IUT + charstring PX_CONTENCOD_UNSUPPORTED := "a charstring"; + //PX_LANGUAGE_UNSUPPORTED : Language content + //that is not supported by the IUT + charstring PX_LANGUAGE_UNSUPPORTED := "a charstring"; + //PX_OPTION_UNSUPPORTED : Option set in Request header field + // that is not supported + charstring PX_OPTION_UNSUPPORTED := "unsupported value"; + // PX_HOME_REGISTRATION : IUT needs to register itself to its home registar first + boolean PX_HOME_REGISTRATION := false; + // PX_PR_MTC_REGISTRATION : Does the ETS has to register itself before running proxy test case on MTC side (Sender of the INVITE)? + boolean PX_PR_MTC_REGISTRATION := false; + // PX_PR_PTC_REGISTRATION : Does the ETS has to register itself before running proxy test case on PTC side (receiver of the INVITE)? + boolean PX_PR_PTC_REGISTRATION := false; + + //////////////// + // Parameters for HTTP authentication + //////////////// + // Option controlling if authentication is enabled/disabled + // for registration messages. + boolean PX_REGISTRATION_AUTHENTICATION_ENABLED := false; + + // RFC 2617 3.2.1 qop options: + // Quoted string of one or more tokens indicating the "quality of + // protection" values supported by the server. The value "auth" + // indicates authentication; the value "auth-int" indicates + // authentication with integrity protection. + // Example: "auth, auth-int" + charstring PX_RFC2617_QOP := "auth"; + + // RFC 2617 3.2.2 username: + // The name of user in the specified realm. + charstring PX_RFC2617_USERNAME := "abcd"; + + // RFC 2617 3.2.2.2 passwd: + // A known shared secret, the password of user of the specified + // username. + charstring PX_RFC2617_PASSWD := "1234"; + + charstring PX_RFC2617_URI := "sip:172.27.11.80:5060"; + + //////////////// + // Timers + //////////////// + // T1 RTT estimate (500 ms) + float PX_T1 := 0.5; + // T2 Maximum retransmit interval for non-INVITE requests and INVITE response (4000 ms) + float PX_T2 := 4.0; + // T4 Maximum duration a message will remain in the network + float PX_T4 := 1.0; + // TWait default value for waiting an operator action + float PX_TWAIT := 10.0; + // TAck default value for waiting an acknowledgement + float PX_TACK := 5.0; + // TResp default value for waiting for a response from the IUT + float PX_TRESP := 5.0; + // TNoAct default value for waiting no message from the IUT + // Value given for PX_TNOACT should be less than value of + // SHORT_REGISTRATION constant (which is currently "3" (seconds)) + float PX_TNOACT := 1.0; + // TSYNC default value to synchronise ptc + float PX_TSYNC := 10.0; + // TGUARD default value for an extra long timer to limit test execution + float PX_TGUARD := 120.0; + // TRespRetention minimum time that a Proxy will wait before sending a final response + float PX_TRespRetention := 1.0; + // Short delta-second used in expires parameter to acknowledge a registration + charstring PX_SHORT_REGISTRATION := "3600" + + } + }//end group PXIT_items +} // end group SIP_PIXITs +group Types +{ + // *************************************************************** + // + // No specific TTCN-3 group is made for externals. + // Externals are unified and placed into the appropriate group. + // + // *************************************************************** + group SimpleTypes + { + group SimpleConstants + { + // SIP name protocol plus version + const charstring SIP_NAME_VERSION := "SIP/2.0"; + + // SIP name protocol + const charstring SIP_NAME := "SIP"; + + // SIP version + const charstring SIP_VERSION := "2.0"; + + // SIP scheme + const charstring SIP_SCHEME := "sip"; + + // TAG_ID + const charstring TAG_ID := "tag"; + + // BRANCH_ID + const charstring BRANCH_ID := "branch"; + + // BRANCH_COOKIE + const charstring BRANCH_COOKIE := "z9hG4bK"; + + // EXPIRES_ID + const charstring EXPIRES_ID := "expires"; + + // MADDR_ID + const charstring MADDR_ID := "maddr"; + + // METHOD_ID + const charstring METHOD_ID := "method"; + + // RECEIVED_ID + const charstring RECEIVED_ID := "received"; + + // TTL_ID + const charstring TTL_ID := "ttl"; + + // USER_ID + const charstring USER_ID := "user"; + + // SDP name application + const charstring SDP_APPLICATION := "application/sdp"; + + // @ (at) sign + const charstring AT := "@"; + + // * (wildchard) sign + const charstring WILDCARD := "*"; + + // / (slash) sign + const charstring SLASH := "/"; + + // < (less than) sign + const charstring LT := "<"; + + // > (greater than) sign + const charstring GT := ">"; + + // ( (left parenthesis) sign + const charstring LP := " ("; + + // ) (right parenthesis) sign + const charstring RP := ") "; + + // Quote sign + const charstring QUOTE := """"; + + // %d32 ; US-ASCII SP, space character + const charstring SP := " "; + + // %d09 ; US-ASCII HT, horizontal tab character + const charstring TAB := int2char (9); // oct2str('09'O); + + // %d13 ; US-ASCII CR, carriage return character + const charstring CR := int2char (13); // oct2str('0D'O); + // %d10 ; US-ASCII LF, line feed character + const charstring LF := int2char (10); // oct2str('0A'O); + + // CR LF ; typically the end of a line + const charstring CRLF := CR & LF; + + // Default SIP port number : 5060 + const integer DEFAULT_SIP_PORT := 5060; + + // Default SIP protocol : UDP + const charstring DEFAULT_SIP_PROT := "UDP"; + + // Fixed IP multicast address + const charstring MCAST_SIP_IPADDR := "224.0.1.75"; + + // Short delta-second used in expires parameter to acknowledge a registration + const charstring SHORT_REGISTRATION := PX_SHORT_REGISTRATION; // "3" + + // option tag 100rel (reliable provisional response [RFC3262]) + const charstring TAG_100rel := "100rel"; + + } //end Group SimpleConstants + } // end Group SimpleTypes + + group SubTypes{// Subtypes + + group TokenTypes // TokensTypes + { + // [20] + type enumerated FieldName + { + ACCEPT_E, + ACCEPT_ENCODING_E, + ACCEPT_LANGUAGE_E, + ALERT_INFO_E, + ALLOW_E, + AUTHENTICATION_INFO_E, + AUTHORIZATION_E, + CALL_ID_E, + CALL_INFO_E, + CONTACT_E, + CONTENT_DISPOSITION_E, + CONTENT_ENCODING_E, + CONTENT_LANGUAGE_E, + CONTENT_LENGTH_E, + CONTENT_TYPE_E, + CSEQ_E, + DATE_E, + ERROR_INFO_E, + EXPIRES_E, + FROM_E, + IN_REPLY_TO_E, + MAX_FORWARDS_E, + MIME_VERSION_E, + MIN_EXPIRES_E, + ORGANIZATION_E, + PRIORITY_E, + PROXY_AUTHENTICATE_E, + PROXY_AUTHORIZATION_E, + PROXY_REQUIRE_E, + RECORD_ROUTE_E, + REPLY_TO_E, + REQUIRE_E, + RETRY_AFTER_E, + ROUTE_E, + SERVER_E, + SUBJECT_E, + SUPPORTED_E, + TIMESTAMP_E, + TO_E, + UNSUPPORTED_E, + USER_AGENT_E, + VIA_E, + WARNING_E, + WWW_AUTHENTICATE_E, + + // [3262/7.1] + RACK_E, + RSEQ_E, + // [3326] + REASON_E, + // [3325] + P_ASSERTED_ID_E, + P_PREFERRED_ID_E, + // [3323] + PRIVACY_E + } + + // [7.1] + type enumerated Method { + ACK_E, + BYE_E, + CANCEL_E, + INVITE_E, + OPTIONS_E, + REGISTER_E, + PRACK_E, // Note: this element is not defined in [5] + SUBSCRIBE_E, NOTIFY_E, // [3265] + PUBLISH_E, // [3903/12] + REFER_E, // [3515] + UPDATE_E, // [3311] + INFO_E + } + + // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31, + // 20.33, 20.34, 20.39, 20.42, 20.44] + type record GenericParam + { + charstring id optional, + charstring paramValue optional + } + + // [20.1, 20.3, 20.4, 20.7, 20.9, 20.10, 20.11, 20.18, 20.20, 20.27, 20.28, 20.30, 20.31, + // 20.33, 20.34, 20.39, 20.42, 20.44] + //type set of GenericParam GenericParam_List; + + // [?] + type set of GenericParam SemicolonParam_List; + + // [?] + type set of GenericParam AmpersandParam_List; + + // [?] + type set of GenericParam CommaParam_List; + + // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39, 20.42, 20.43] + type record HostPort + { + charstring host optional, // hostname, IPv4 or IPv6 + integer portField optional // represented as an integer + } + + // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39] + type record UserInfo + { + charstring userOrTelephoneSubscriber, + charstring password optional + } + + // [19.1.1 ;used in: 20.10, 20.20, 20.30, 20.31, 20.34, 20.39] + type record SipUrl + { + charstring scheme, // contains "sip:" + UserInfo userInfo optional, + HostPort hostPort, + SemicolonParam_List urlParameters optional, + AmpersandParam_List headers optional + } + + // [20.1, RFC2616 14.1] + type record AcceptBody + { + charstring mediaRange, + SemicolonParam_List acceptParam optional + } + + // [20.1, RFC2616 14.1] + type set of AcceptBody AcceptBody_List; + + // [10.14, 10.25, 10.34, 10.38, 10.43] + // type SipUrl AddrSpec; + // the absolute URI is not used AddrSpec type has been replaced by SipUrl + + // type union AddrSpec + // { + // SipUrl sipUrl, + // charstring absoluteUri + // } + + // [20.4] + type record AlertInfoBody + { + charstring url, // any URI + SemicolonParam_List genericParams optional + } + + // [20.4] + type set of AlertInfoBody AlertInfoBody_List; + + // [20.8] + type charstring CallidString; // token ["@" token] + + // [20.8] + type set of CallidString CallidString_List; + + // [20.9] + type record CallInfoBody + { + charstring url, // any URI + SemicolonParam_List infoParams optional + } + + // [20.9] + type set of CallInfoBody CallInfoBody_List; + + // [20.27, 20.44, .......10.32, 10.48; RFC2616 14.33, 14.47; RFC2617 1.2] + type union Challenge + { + CommaParam_List digestCln, + OtherAuth otherChallenge + } + + // [20.10, 20.20, 20.30, 20.31, 20.34, 20.39] + type record NameAddr + { + charstring displayName optional, + SipUrl addrSpec + } + + // [20.10, 20.20, 20.31, 20.39] + type union Addr_Union + { + NameAddr nameAddr, + SipUrl addrSpecUnion // STS: "Union" added to filed name to avoid dangerous name equivalence with 2nd NameAddr field + } + + // [20.10] + type record ContactAddress + { + Addr_Union addressField, + SemicolonParam_List contactParams optional + } + + // [20.10] + type set of ContactAddress ContactAddress_List; // 1 or more elements + + // [20.10] + type union ContactBody + { + charstring wildcard, + ContactAddress_List contactAddresses + } + + // [20.2, 20.12; RFC2616 14.3, 14.11] + type charstring ContentCoding; + + // [20.2, 20.12; RFC2616 14.3, 14.11] + type set of ContentCoding ContentCoding_List; + + // [20.7, 20.28; RFC2616 14.35 RFC2617 1.2] + type union Credentials + { + CommaParam_List digestResponse, + OtherAuth otherResponse + } + + // [20.19, 20.23, 20.33] + type charstring DeltaSec; // an external operation can handle this field + + // [20.18] + type record ErrorInfoBody + { + charstring uri, // any URI + SemicolonParam_List genericParams optional + } + + // [20.18] + type set of ErrorInfoBody ErrorInfoBody_List; + + // [20.3 RFC2616 14.4] + type record LanguageBody + { + charstring languageRange, + SemicolonParam_List acceptParam optional + } + + // [20.3 RFC2616 14.4] + type set of LanguageBody LanguageBody_List; + + // [20.13; RFC2616 14.12] + type charstring LanguageTag; + + // [20.13; RFC2616 14.12] + type set of LanguageTag LanguageTag_List; + + // [20.5] + type set of charstring Method_List; + + + // [20.29, 20.32, 20.37, 20.40] + type charstring OptionTag; + + // [20.29, 20.32, 20.37, 20.40] + type set of OptionTag OptionTag_List; + + + // [20.7, 20.27, 20.28, 20.44 ; RFC2616 14.33, 14.47; RFC2617 1.2] + type record OtherAuth + { + charstring authScheme, + CommaParam_List authParams + } + + type record Payload + { + integer payloadlength, + charstring payloadvalue + } + + // [20.30,20.34] + type record RouteBody + { + NameAddr nameAddr, + SemicolonParam_List rrParam optional + } + + // [20.30,20.34] + type record of RouteBody RouteBody_List; + + // [20.42] + type record SentProtocol + { + charstring protocolName, + charstring protocolVersion, + charstring transport + } + + // [20.35, 20.41; RFC2616 14.43] + type charstring ServerVal; + + // [20.35, 20.41; RFC2616 14.43] + type set of ServerVal ServerVal_List; + + // [20.38] + type record TimeValue + { + integer majorDigit, // represented as an integer + integer minorDigit optional // represented as an integer + } + + // [20.42] + type record ViaBody + { + SentProtocol sentProtocol, + HostPort sentBy, + SemicolonParam_List viaParams optional + } + + // [20.42] + type record of ViaBody ViaBody_List; + + // [20.43] + type union WarnAgent + { + HostPort hostPort, + charstring pseudonym + } + + // [20.43] + type record WarningValue + { + integer warnCode, // represented as an integer + WarnAgent warnAgent, + charstring WarnText + } + + // [20.43] + type set of WarningValue WarningValue_List; + + +// type charstring PAssertedIDValue; + type Addr_Union PAssertedIDValue; + + type record of PAssertedIDValue PAssertedIDValue_List; + + type Addr_Union PPreferredIDValue; + + type record of PPreferredIDValue PPreferredIDValue_List; + + type charstring PrivacyValue; + + type record of PrivacyValue PrivacyValue_List; + + + } // end group TokensType + + + group HeaderFieldTypes // Header Fields + { + // [20.1, RFC2616 14.1] + type record Accept + { + FieldName fieldName (ACCEPT_E), + AcceptBody_List acceptArgs optional + } + + // [20.2, RFC2616 14.3] + type record AcceptEncoding + { + FieldName fieldName (ACCEPT_ENCODING_E), + ContentCoding_List contentCoding optional + } + + // [20.3, RFC2616 14.4] + type record AcceptLanguage + { + FieldName fieldName (ACCEPT_LANGUAGE_E), + LanguageBody_List languageBody optional + } + + // [20.4] + type record AlertInfo + { + FieldName fieldName (ALERT_INFO_E), + AlertInfoBody_List alertInfoBody optional + } + + // [20.5] + type record Allow + { + FieldName fieldName (ALLOW_E), + Method_List methods optional + } + + // [20.6] + type record AuthenticationInfo + { + FieldName fieldName (AUTHENTICATION_INFO_E), + CommaParam_List ainfo + } + + // [20.7 RFC2617 3.2.2] + type record Authorization + { + FieldName fieldName (AUTHORIZATION_E), + Credentials body + } + + // [20.8] + type record CallId + { + FieldName fieldName (CALL_ID_E), + CallidString callid + } + + // [20.9] + type record CallInfo + { + FieldName fieldName (CALL_INFO_E), + CallInfoBody_List callInfoBody optional + } + + // [20.10] + type record Contact + { + FieldName fieldName (CONTACT_E), + ContactBody contactBody + } + + // [20.11] + type record ContentDisposition + { + FieldName fieldName (CONTENT_DISPOSITION_E), + charstring dispositionType, + SemicolonParam_List dispositionParams optional + } + + // [20.12 RFC2616 14.11] + type record ContentEncoding + { + FieldName fieldName (CONTENT_ENCODING_E), + ContentCoding_List contentCoding + } + + // [20.13 RFC2616 14.12] + type record ContentLanguage + { + FieldName fieldName (CONTENT_LANGUAGE_E), + LanguageTag_List languageTag + } + + // [20.14] + type record ContentLength + { + FieldName fieldName (CONTENT_LENGTH_E), + integer len // this field is represented as an integer + } + + // [20.15] + type record ContentType + { + FieldName fieldName (CONTENT_TYPE_E), + charstring mediaType + } + + // [20.16] + type record CSeq + { + FieldName fieldName (CSEQ_E), + integer seqNumber, // this field is represented as an integer + charstring method + } + + // [20.17] + type record Date + { + FieldName fieldName (DATE_E), + charstring sipDate + } + + // [20.18] + type record ErrorInfo + { + FieldName fieldName (ERROR_INFO_E), + ErrorInfoBody_List errorInfo optional + } + + // [20.19] + type record Expires + { + FieldName fieldName (EXPIRES_E), + DeltaSec deltaSec + } + + // [20.20] + type record From + { + FieldName fieldName (FROM_E), + Addr_Union addressField, + SemicolonParam_List fromParams optional + } + + // [20.21] + type record InReplyTo + { + FieldName fieldName (IN_REPLY_TO_E), + CallidString_List callids + } + + // [20.22] + type record MaxForwards + { + FieldName fieldName (MAX_FORWARDS_E), + integer forwards // this field is represented as an integer + } + + // [20.23] + type record MinExpires + { + FieldName fieldName (MIN_EXPIRES_E), + DeltaSec deltaSec + } + + // [20.24 RFC2616 19.4.1] + type record MimeVersion + { + FieldName fieldName (MIME_VERSION_E), + integer majorNumber, // this field is represented as an integer + integer minorNumber // this field is represented as an integer + } + + // [20.25] + type record Organization + { + FieldName fieldName (ORGANIZATION_E), + charstring organization + } + + // [20.26] + type record Priority + { + FieldName fieldName (PRIORITY_E), + charstring priorityValue + } + + // [20.27 RFC2616 14.33 RFC2617 1.2] + type record ProxyAuthenticate + { + FieldName fieldName (PROXY_AUTHENTICATE_E), + Challenge challenge + } + + // [20.28 RFC2616 14.35 RFC2617 1.2] + type record ProxyAuthorization + { + FieldName fieldName (PROXY_AUTHORIZATION_E), + Credentials credentials + } + + // [20.29] + type record ProxyRequire + { + FieldName fieldName (PROXY_REQUIRE_E), + OptionTag_List optionsTags + } + + // [20.30] + type record RecordRoute + { + FieldName fieldName (RECORD_ROUTE_E), + RouteBody_List routeBody + } + + // [20.31] + type record ReplyTo + { + FieldName fieldName (REPLY_TO_E), + Addr_Union addressField, + SemicolonParam_List replyToParams optional + } + + // [20.32] + type record Require + { + FieldName fieldName (REQUIRE_E), + OptionTag_List optionsTags + } + + // [20.33] + type record RetryAfter + { + FieldName fieldName (RETRY_AFTER_E), + DeltaSec deltaSec, + charstring comment optional, + SemicolonParam_List retryParams optional + } + + // [20.34] + type record Route + { + FieldName fieldName (ROUTE_E), + RouteBody_List routeBody + } + + // [20.35 RFC2616 14.38] + type record Server + { + FieldName fieldName (SERVER_E), + ServerVal_List serverBody + } + + // [20.36] + type record Subject + { + FieldName fieldName (SUBJECT_E), + charstring summary + } + + // [20.37] + type record Supported + { + FieldName fieldName (SUPPORTED_E), + OptionTag_List optionsTags optional + } + + // [20.38] + type record Timestamp + { + FieldName fieldName (TIMESTAMP_E), + TimeValue timeValue optional, + TimeValue delay optional + } + + // [20.39] + type record To + { + FieldName fieldName (TO_E), + Addr_Union addressField, + SemicolonParam_List toParams optional + } + + // [20.40] + type record Unsupported + { + FieldName fieldName (UNSUPPORTED_E), + OptionTag_List optionsTags + } + + // Undefined header field + type record UndefinedHeader + { + charstring headerName, + charstring headerValue + } + + type set of UndefinedHeader UndefinedHeader_List; + + // [20.41 RFC2616 14.43] + type record UserAgent + { + FieldName fieldName (USER_AGENT_E), + ServerVal_List userAgentBody + } + + // [20.42] + type record Via + { + FieldName fieldName (VIA_E), + ViaBody_List viaBody + } + + // [20.43] + type record Warning + { + FieldName fieldName (WARNING_E), + WarningValue_List warningValue + } + + // [20.44 RFC2616 14.47 RFC2617 1.2] + type record WwwAuthenticate + { + FieldName fieldName (WWW_AUTHENTICATE_E), + Challenge challenge + } + + // [3262/7.1] + type record RSeq { + FieldName fieldName(RSEQ_E), + integer responseNum + } + + // [3262/7.2] + type record RAck { + FieldName fieldName(RACK_E), + integer responseNum, + integer seqNumber, + charstring method + } + + // [3326] //note-axr: to be refined +// type record Reason { +// FieldName fieldName(REASON_E), +// charstring protocol, +// integer cause, +// charstring reasonText optional +// } + + // [3326] STF348 refined definition + type record of ReasonValue ReasonValues; + + type record ReasonValue { + charstring token, + SemicolonParam_List reasonParams optional + } + type record Reason { + FieldName fieldName(REASON_E), + ReasonValues reasonValues + } + + // [3325] //note-axr: to be refined + type record PAssertedID { + FieldName fieldName(P_ASSERTED_ID_E), + PAssertedIDValue_List pAssertedIDValueList + } + + // [3325] //note-axr: to be refined + type record PPreferredID { + FieldName fieldName(P_PREFERRED_ID_E), + PPreferredIDValue_List pPreferredIDValueList + } + + // [3323] //note-axr: to be refined + type record Privacy { + FieldName fieldName(PRIVACY_E), + PrivacyValue_List privValueList + } + + } // end group HeaderFieldTypes + + group MessageHeaderTypes + { + + // Message-Header for all SIP requests and responses [20] + type set MessageHeader + { + Accept accept optional, + AcceptEncoding acceptEncoding optional, + AcceptLanguage acceptLanguage optional, + AlertInfo alertInfo optional, + Allow allow optional, + AuthenticationInfo authenticationInfo optional, // only in responses + Authorization authorization optional, // only in requests + CallId callId optional, // optional only in Invalid test cases mandatory otherwise + CallInfo callInfo optional, + Contact contact optional, // optional in response and all requests except INVITE where mandatory + ContentDisposition contentDisposition optional, + ContentEncoding contentEncoding optional, + ContentLanguage contentLanguage optional, + ContentLength contentLength optional, // optional in responses and all requests except ACK where mandatory + ContentType contentType optional, + CSeq cSeq optional, // optional only in Invalid test cases mandatory otherwise + Date date optional, + ErrorInfo errorInfo optional, // only in responses + Expires expires optional, + From fromField, + InReplyTo inReplyTo optional, // only in requests + MaxForwards maxForwards optional, // mandatory in requests not required in responses! + MimeVersion mimeVersion optional, + MinExpires minExpires optional, // only in responses + Organization organization optional, + Priority priority optional, // only in requests + ProxyAuthenticate proxyAuthenticate optional, // only in responses + ProxyAuthorization proxyAuthorization optional, // only in requests + ProxyRequire proxyRequire optional, // only in requests + RecordRoute recordRoute optional, + ReplyTo replyTo optional, // optional in responses and INVITE requests + Require require optional, + RetryAfter retryAfter optional, // only in responses + Route route optional, // only in requests + Server server optional, // only in responses + Subject subject optional, // only in requests + Supported supported optional, + Timestamp timestamp optional, + To toField, + Unsupported unsupported optional, // only in responses + UserAgent userAgent optional, + Via via optional, + Warning warning optional, // only in responses + WwwAuthenticate wwwAuthenticate optional, // only in responses + UndefinedHeader_List undefinedHeader_List optional, + + // 3262/7.1 + // Header field where proxy ACK BYE CAN INV OPT REG PRA + // ______________________________________________________ + // RAck R - - - - - - m + // RSeq 1xx - - - o - - - + // + RAck rAck optional, + RSeq rSeq optional, + + // 3326 + Reason reason optional, + + // 3325 + PAssertedID pAssertedID optional, + PPreferredID pPreferredID optional, + + // 3323 + Privacy privacy optional + } + + } // end group MessageHeaderTypes + + group StartLineTypes + { + // Request-Line [7.1] + type record RequestLine + { + Method method, + SipUrl requestUri, + charstring sipVersion + } + + // Status-Line [7.2] + type record StatusLine + { + charstring sipVersion, + integer statusCode, + charstring reasonPhrase + } + + } // end group StartLineTypes + + + group SubTypesConstants{} + + }// end group Subtypes + + group MSGtypes{ + + group RequestTypes + { + // [7.1] + type record Request + { + RequestLine requestLine, + MessageHeader msgHeader, + charstring messageBody optional, + Payload payload optional + } + } with { encode "SIPCodec" }// end group RequestTypes + + group ResponseTypes + { + // [7.2] + type record Response + { + StatusLine statusLine, + MessageHeader msgHeader, + charstring messageBody optional, + Payload payload optional + } + } with { encode "SIPCodec" }// end group ResponseTypes + + // This MSG type is defined for sending synctactic variations, ans syntactically + // erroneous messages, and receving messages failed parsing. + group SyntacticTypes + { + type charstring Raw; + } // end group SyntacticTypes + + group CMTypes + { + type charstring CM_Message; + } // end group CMTypes + }// end group MSGTypes +}// end group Types +group SystemConfiguration +{ + group TestComponents + { + group TestSystemInterfaces + { + type component SipInterfaces + { + port SipPort UDP1, UDP2, UDP3, TCP1, TCP2, TCP3; + } + } // end Group TestSystemInterfaces + + group TestAbstractComponents + { + + type component SipComponent + { + // general variables + // current address to send TCP/UDP messages + var address sent_label := {host := PX_IUT_IPADDR, portField := PX_IUT_PORT}; + // current address to send UDP multicast messages + var address sent_mcast_label := {host := MCAST_SIP_IPADDR, portField := DEFAULT_SIP_PORT}; + // ETS address + var address ets_label := {host := PX_ETS_IPADDR, portField := PX_ETS_PORT}; + + var SipUrl v_RequestUri := + { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + }; + var charstring v_Branch := ""; + var CallId v_CallId := + { // value of CallId header + fieldName := CALL_ID_E, + callid := "" + }; + var CallId v_CallIdReg :={ // value of CallId header for Registration + fieldName := CALL_ID_E, + callid := "" + }; + + var From v_From := { // value of From header + fieldName := FROM_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + fromParams := omit + }; + var To v_To := + { // value of To header + fieldName := TO_E, + addressField := + { + nameAddr := + { + displayName := omit, + addrSpec := + { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + toParams := omit + }; + var To v_Cancel_To := + { // value of To header + fieldName := TO_E, + addressField := + { + nameAddr := + { + displayName := omit, + addrSpec := + { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + toParams := omit + }; + + var Via v_Via := { // value of Via header + fieldName := VIA_E, + viaBody :={ + {sentProtocol := { + protocolName := SIP_NAME, + protocolVersion := SIP_VERSION, + transport := DEFAULT_SIP_PROT + }, + sentBy := {host:="", portField:=DEFAULT_SIP_PORT}, + viaParams:= omit + } + }}; + + var RecordRoute v_RecordRoute; // value of RecordRoute header + var boolean v_BOO_RecordRoute := false; + var Route v_Route; // :=omit; // value of Route header + var boolean v_BOO_Route := false; + var Contact v_Contact; // value of Contact header + var CSeq v_CSeq := { fieldName := CSEQ_E, seqNumber:=1, method:="INVITE" }; // value of CSeq header + var RAck v_RAck := { fieldName := RACK_E, responseNum := 1, seqNumber := 1, method := "INVITE"}; // value of RAck header + var CSeq v_IUT_CSeq := { fieldName := CSEQ_E, seqNumber:=1, method:="INVITE" }; // value of last CSeq header used by the IUT in request + var To callee_To := { // value of To header + fieldName := TO_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + toParams := omit + }; + var From callee_From := { // value of From header + fieldName := FROM_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + fromParams := omit + }; + var To caller_To := { // value of To header + fieldName := TO_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + toParams := omit + }; + var From caller_From:= { // value of From header + fieldName := FROM_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + fromParams := omit + }; + var HostPort v_reqHostPort := {host:=PX_IUT_IPADDR, portField:=PX_IUT_PORT}; // address to send request + var charstring v_date; + // Declaration of a variable for the handling of defaults + var Request v_def_REGISTER_Request; + var CallId v_def_CallId := { // value of CallId header + fieldName := CALL_ID_E, + callid := "" + }; + var CSeq v_def_CSeq := { fieldName := CSEQ_E, seqNumber:=1, method:="REGISTER" }; // value of CSeq header + var From v_def_From:={ // value of From header + fieldName := FROM_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + fromParams := omit + }; + var To v_def_To := { // value of To header + fieldName := TO_E, + addressField := {nameAddr := + {displayName := omit, + addrSpec := { + scheme := SIP_SCHEME, + userInfo := omit , + hostPort := {host:="", portField:=DEFAULT_SIP_PORT}, + urlParameters := omit, + headers := omit + } + } + }, + toParams := omit + }; + var Via v_def_Via := + { // value of Via header + fieldName := VIA_E, + viaBody := + { + {sentProtocol := { + protocolName := SIP_NAME, + protocolVersion := SIP_VERSION, + transport := DEFAULT_SIP_PROT + }, + sentBy := {host:="", portField:=DEFAULT_SIP_PORT}, + viaParams:= omit} + } + }; + var Contact v_def_Contact; // value of Contact header + var default v_Default; + + // Declaration of a variable for the handling of message raw + var charstring vRaw_CallId; + var charstring vRaw_CSeq; + var charstring vRaw_From; + var charstring vRaw_To; + var charstring vRaw_Via; + var charstring vRaw_Contact; + var charstring vRaw_Date; + var charstring vRaw_RequestUri; + var charstring vRaw_Route; + var charstring vRaw_RecordRoute; + var charstring vRaw_Authorization; + + // general timers + timer T1 := PX_T1; + timer TWait := PX_TWAIT; + timer TAck := PX_TACK; + timer TResp := PX_TRESP; + timer TNoAct := PX_TNOACT; + timer TRept; + timer TSync := PX_TSYNC; + timer TGuard := PX_TGUARD; + timer TDelay := 32.0; + port SipPort SIPP; + port Coordination cpA; + port Coordination cpB; + + // parts needed for Client/SelfSyncComp type compatibility + var StringStack v_stateStack:= c_initStringStack; + port SyncPort syncSendPort; + port SyncPort syncPort; + timer tc_sync := PX_TSYNC_TIME_LIMIT; + + // used for communication with the operator + port operatorPort opPort; + + // parts introduced for SipIsup interworking + var charstring v_Body; + var Response tmp_response; + var Request tmp_request; + var Privacy v_Privacy; + var boolean v_ignore_bye:= false; // enable ignore of repeated bye in default + var boolean v_ignore_invite:= false; //enable ignore invite in default + var boolean v_ignore181:= false; // enable ignore of 181 in default + var boolean v_ignore183:= false; // enable ignore of 183 in default + var boolean v_ignore484:= false; // enable ignore of 484 in default + var boolean v_ignore4xx:= false; // enable ignore of 4xx in default + var boolean v_ignore500:= false; // enable ignore of 500 in default + var boolean v_ignore200OKinv:= false; // enable ignore of 200OKinv in default + var boolean v_valid_Privacy:= false; // informs if Privacy header is valid/present in last message + var boolean v_first_recv:= false; // true after receipt of first incomming SIP message + + } + }// end Group TestComponents + }// end Group SystemConfiguration + + + group Ports + { + type port SipPort message + { + inout Request, Response, Raw + } with {extension "address"} + + // Ports that will exchange all SIP messages plus an Init Procedure + /* type port UDPPort message + { + inout Request, Response, Raw + } + + type port TCPPort message + { + inout Request, Response, Raw // Titan + // inout all //this is also possible as an alternative of the definition used in UDPPort + } +*/ + type port Coordination message + { + inout CM_Message + }with {extension "internal" } + } // End Group Ports + +} //end group SystemConfiguration + + +group SipIsup +{ + modulepar { + //PX_SIP_SDPBODY3 : additional SDP parameter proposed by the ETS (delivered with UPDATE) + //for session modification testing + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.1 + charstring PX_SIP_SDPBODY3 := "v=0 \n o=voicesession2 12345 12345 IN IP4 172.27.1.219 \n s=Voice Session\n c=IN IP4 172.27.1.219 \n t=0 0 \n m=audio 8500 RTP/AVP 0 \n a=rtpmap:0 PCMU/8000"; + //PX_SIP_SDPBODY4 : additional SDP parameter proposed by the SUT (delivered with 200 OKK UPDATE) + //for session modification testing + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.2 + charstring PX_SIP_SDPBODY4; + //PX_SIP_SDPBODY_A_and_U : additional SDP parameter proposed by the ETS (delivered with INVITE) + //should propose PCMA and PCMU + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.3 + charstring PX_SIP_SDPBODY_A_and_U; + //PX_SIP_PASSERTEDID : additional SDP parameter proposed by the ETS (delivered with INVITE) + //used in Suppl. Services Group + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.4 + charstring PX_SIP_PASSERTEDID; // format: sip: +CC NDC+SNN + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.5 + charstring PX_SIP_PASSERTEDID2; // 2nd P-Asserted-ID, according to rfc3325(9.1) format: sip: +CC NDC+SNN + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.6 + integer PX_MAX_NR_OF_HOPS := 70; // f_Sip_TC_301_060 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.7 + integer PX_SIP_BYE_CAUSE := 16; // f_Sip_TC_308_004, also used in Failure messages (TC_308_017) + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.7 + integer PX_CAUSE_UNKNOWN_MSG := 97; // PIXIT used in TC_108_103 on both sides + + //PX_SIP_SDPBODY_WITHOUT_MEDIA : SDP parameter proposed by the ETS (delivered with INVITE) + //includes only the lines up to the m line, e.g. v, o, s, c, t lines + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.8 + charstring PX_SIP_SDPBODY_WITHOUT_MEDIA := "v=0 \n o=voicesession 12345 12345 IN IP4 172.27.1.219 \n s=Voice Session\n c=IN IP4 172.27.1.219 \n t=0 0"; + //PX_SIP_SDPBODY_DEFAULT_MEDIA : SDP parameter proposed by the ETS (delivered with INVITE) + //includes only the m and optionally the a line(s) + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.9 + charstring PX_SIP_SDPBODY_DEFAULT_MEDIA := " \n m=audio 8500 RTP/AVP 0 \n a=rtpmap:0 PCMU/8000"; + // port for SDP media line + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.10 + charstring PX_SDP_MEDIA_PORT := "8500"; + // Dynamic PT for SDP media line + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.11 + charstring PX_SDP_MEDIA_DYNAMIC_PT := "0"; + // T.38 attribute for SDP attribute line + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.12 + charstring PX_SDP_T38_ATTRIBUTE := "T38FaxRateManagemant :transferredTCF"; + + // Max Forwards value for TC101023 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.13 + integer PX_SIP_MAX_FORWARDS := 70; + // SIP Url with a called party number in the format +CC NDC SN + // where CC is the country code of the network in which the next hop terminates + // used in TC101024 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.14 + charstring PX_SIPURL_CDPN_INTERNATIONAL_HOME := "+38640258"; + // SIP Url with a called party number in the format +CC NDC SN + // where CC is NOT the country code of the network in which the next hop terminates + // used in TC101025 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.15 + charstring PX_SIPURL_CDPN_INTERNATIONAL_ABROAD := "+38640258"; + // SIP Url with a called party number used in TC101026 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.17 + charstring PX_SIPURL_CDPN := "+386 4 207330"; + // calling party number (From field) used in TP501 and TP601 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.16 + charstring PX_SIPURL_CGPN := "+434123456;cpc=ordinary"; // with potential tags + // calling party number (From field, displayname only!) used in TP501 and TP601 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.16 + charstring PX_SIPURL_CGPN_DISPLAY := "+434123456"; // = PX_SIPURL_CGPN (without tags) + // calling party number (P-AssertedID line1) used in TP501 and TP601 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.18 + charstring PX_SIPURL_CGPN_PASSERTED := "sip:fluffy@iskratel.si"; + // calling party number (P-AssertedID line2) used in TP501 and TP601 + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.19 + charstring PX_SIPURL_CGPN_PASSERTED2 := "+38640258"; + // flag for conversation check implementation + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.20 + boolean PX_SIP_CheckConversation := false; // true if conversation check is implemented + // flag for ringing check implementation + // PIXIT reference: TISPAN DTS 06014-3 Table A1, item 1.21 + boolean PX_SIP_CheckRinging := false; // true if ringing check is implemented + + } //end modulepar + + const PrivacyValue privacy_none := "none"; + const PrivacyValue privacy_id := "id"; + const PrivacyValue privacy_header := "header"; + const PrivacyValue privacy_user := "user"; + const charstring c_resourceUnavailable := "Make internal resource reservation unsuccessful"; + + type record status_cause {StatusLine s, integer c}; + + group StatusLines + { + const StatusLine StatusLine100 := {SIP_NAME_VERSION, 100, "Trying"}; + const StatusLine StatusLine180 := {SIP_NAME_VERSION, 180, "Ringing"}; + const StatusLine StatusLine181 := {SIP_NAME_VERSION, 181, "Call is Being Forwarded"}; + const StatusLine StatusLine182 := {SIP_NAME_VERSION, 182, "Queued"}; + const StatusLine StatusLine183 := {SIP_NAME_VERSION, 183, "Session Progress"}; + + const StatusLine StatusLine300 := {SIP_NAME_VERSION, 300, "Multiple Choices"}; + const StatusLine StatusLine301 := {SIP_NAME_VERSION, 301, "Moved Permanently"}; + const StatusLine StatusLine302 := {SIP_NAME_VERSION, 302, "Move Temporarily"}; + const StatusLine StatusLine305 := {SIP_NAME_VERSION, 305, "Use Proxy"}; + const StatusLine StatusLine380 := {SIP_NAME_VERSION, 380, "Alternative Service"}; + + const StatusLine StatusLine400 := {SIP_NAME_VERSION, 400, "Bad Request"}; + const StatusLine StatusLine401 := {SIP_NAME_VERSION, 401, "Unauthorised"}; + const StatusLine StatusLine402 := {SIP_NAME_VERSION, 402, "Payment Required"}; + const StatusLine StatusLine403 := {SIP_NAME_VERSION, 403, "Forbidden"}; + const StatusLine StatusLine404 := {SIP_NAME_VERSION, 404, "Not Found"}; + const StatusLine StatusLine405 := {SIP_NAME_VERSION, 405, "Method Not Alllowed"}; + const StatusLine StatusLine406 := {SIP_NAME_VERSION, 406, "Not Accetable"}; + const StatusLine StatusLine407 := {SIP_NAME_VERSION, 407, "Proxy authentication required"}; + const StatusLine StatusLine408 := {SIP_NAME_VERSION, 408, "Request Timeout"}; + const StatusLine StatusLine410 := {SIP_NAME_VERSION, 410, "Gone"}; + const StatusLine StatusLine413 := {SIP_NAME_VERSION, 413, "Request Entity too long"}; + const StatusLine StatusLine414 := {SIP_NAME_VERSION, 414, "Request-uri too long"}; + const StatusLine StatusLine415 := {SIP_NAME_VERSION, 415, "Unsupported Media type"}; + const StatusLine StatusLine416 := {SIP_NAME_VERSION, 416, "Unsupported URI scheme"}; + const StatusLine StatusLine420 := {SIP_NAME_VERSION, 420, "Bad Extension"}; + const StatusLine StatusLine421 := {SIP_NAME_VERSION, 421, "Extension required"}; + const StatusLine StatusLine423 := {SIP_NAME_VERSION, 423, "Interval Too Brief"}; + const StatusLine StatusLine480 := {SIP_NAME_VERSION, 480, "Temporatily Unavailable"}; + const StatusLine StatusLine481 := {SIP_NAME_VERSION, 481, "Call/Transaction doesnot exist"}; + const StatusLine StatusLine482 := {SIP_NAME_VERSION, 482, "Loop Detected"}; + const StatusLine StatusLine483 := {SIP_NAME_VERSION, 483, "Too many hops"}; + const StatusLine StatusLine484 := {SIP_NAME_VERSION, 484, "Address Incomplete"}; + const StatusLine StatusLine485 := {SIP_NAME_VERSION, 485, "Ambiguous"}; + const StatusLine StatusLine486 := {SIP_NAME_VERSION, 486, "Busy Here"}; + const StatusLine StatusLine488 := {SIP_NAME_VERSION, 488, "Not acceptable here"}; + const StatusLine StatusLine491 := {SIP_NAME_VERSION, 491, "Request pending"}; + const StatusLine StatusLine493 := {SIP_NAME_VERSION, 493, "Undecipherable"}; + const StatusLine StatusLine500 := {SIP_NAME_VERSION, 500, "Server Internal error"}; + const StatusLine StatusLine501 := {SIP_NAME_VERSION, 501, "Not implemented"}; + const StatusLine StatusLine502 := {SIP_NAME_VERSION, 502, "Bad Gateway"}; + const StatusLine StatusLine503 := {SIP_NAME_VERSION, 503, "Service Unavailable"}; + const StatusLine StatusLine504 := {SIP_NAME_VERSION, 504, "Server timeout"}; + const StatusLine StatusLine505 := {SIP_NAME_VERSION, 505, "Version not supported"}; + const StatusLine StatusLine513 := {SIP_NAME_VERSION, 513, "Message too long"}; + const StatusLine StatusLine580 := {SIP_NAME_VERSION, 580, "Precondition failure"}; + const StatusLine StatusLine600 := {SIP_NAME_VERSION, 600, "Busy Everywhere"}; + const StatusLine StatusLine603 := {SIP_NAME_VERSION, 603, "Decline"}; + const StatusLine StatusLine604 := {SIP_NAME_VERSION, 604, "Does not exist anywhere"}; + const StatusLine StatusLine606 := {SIP_NAME_VERSION, 606, "Not acceptable"}; + + } //end StatusLines + + signature s_SIP_conversation (in charstring text, out boolean answer); + signature s_SIP_ringing (in charstring text, out boolean answer); + type port operatorPort procedure {inout s_SIP_conversation; inout s_SIP_ringing}; + +} //end group SipIsup + +// Return charstring that add CRLF for sure +external function addCRLF(charstring spd_body) return charstring; + +}