Loading ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +98 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ module AtsSccas_TCFunctions { import from AtsSccas_Steps all; import from AtsSccas_PICS all; import from AtsSccas_PIXITS all; import from AtsSccas_TestConfiguration all; group Group_6_3 { Loading Loading @@ -528,6 +529,79 @@ module AtsSccas_TCFunctions { } // End of group Group_6_3 group Group_6A_4 { group TP_6A_4_2_SIP_INVITE_request { /** * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header * @param p_cSeq_s Random CSeq REGISTER number */ function f_TC_ISC_SCCAS_GEN_INV_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; // Preambule f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); // Registration f_sendRegistrationAndAwait200Ok( v_cSeq_s, m_sccas_register( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest( vc_authorization, {c_Integrity_protected_no} ), PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation "600000", -, m_contentType(c_sdpApplication), // TODO To be refined during validation m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation ), mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact) ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE( m_sccas_invite( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, -, -, -, m_MBody_SDP(vc_sdp_local) )); tc_ack.start; alt { [] SIPP.receive(mw_sccas_Response_2xxonINVITE(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } // TODO Deregistration? f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_GEN_INV_01 } // End of group TP_6A_4_2_SIP_INVITE_request } // End of group Group_6A_4 group Group_7_3 { Loading @@ -545,4 +619,27 @@ module AtsSccas_TCFunctions { group Group_11_3 { } // End of group Group_11_3 group helpers { function f_sendRegistrationAndAwait200Ok( in CSeq p_cSeq_s, in template (omit) REGISTER_Request p_register, template (present) Response p_response ) runs on ImsComponent { f_setHeaders_REGISTER(p_cSeq_s); f_SendREGISTER(p_register); tc_ack.start; alt { [] SIPP.receive(p_response) { tc_ack.stop; } [] tc_ack.timeout { f_setVerdict(e_timeout); } } } // End of function f_sendRegistrationAndAwait200Ok } // End of group helpers } // End of module AtsSccas_TCFunctions No newline at end of file ttcn/AtsSccas/AtsSccas_Templates.ttcn +48 −10 Original line number Diff line number Diff line Loading @@ -152,6 +152,26 @@ module AtsSccas_Templates group request_sent_Yann { } template (omit) INVITE_Request m_sccas_invite( in template(value) SipUrl p_requestUri, in template(value) CallId p_callId, in template(value) CSeq p_cSeq, in template(value) From p_from, in template(value) To p_to, in template(value) LibSip_SIPTypesAndValues.Via p_via, in template(value) LibSip_SIPTypesAndValues.Contact p_contact, in template(omit) Require p_require := omit, in template(omit) Route p_route := omit, in template(omit) Supported p_supported := omit, in template(value) MessageBody p_mb ) modifies m_INVITE_Request_UE := { msgHeader := { contentLength := m_contentLength(f_MessageBodyLength(p_mb)), contentType := m_contentType(c_sdpApplication) }, messageBody := p_mb } } // End of group request_sent group request_receive { Loading Loading @@ -234,6 +254,24 @@ module AtsSccas_Templates group request_receive_Yann { } template (present) Response mw_sccas_Response_2xxonINVITE( template (present) CallId p_callId := ?, template (present) CSeq p_cSeq := ?, template (present) From p_from := ?, template (present) To p_to := ?, template (present) Via p_via := ?, template (present) Contact p_contact := ?, template (present) PChargingVector p_pChargingVector := ?, template (present) PAssertedID p_pAssertedID := ?, template AcceptContact p_acceptContact := * ) modifies mw_Response_2xx_Base := { msgHeader := { pChargingVector := p_pChargingVector, contact := p_contact, acceptContact := p_acceptContact } } // End of template mw_sccas_Response_2xxonINVITE } // End of group request_receive } // End of group modified_templates Loading ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn +4 −5 Original line number Diff line number Diff line Loading @@ -26,9 +26,8 @@ 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; function f_IncCSeq(inout CSeq loc_CSeq) { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; return }; // end f_IncCSeq Loading ttcn/AtsSccas/AtsSccas_Testcases.ttcn +45 −12 Original line number Diff line number Diff line Loading @@ -221,6 +221,40 @@ module AtsSccas_Testcases } // End of group Group_6_3 group Group_6A_4 { group TP_6A_4_2_SIP_INVITE_request { /* * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_GEN_INV_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ueims; // Test control if (not PICS_SCCAS_GM) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_1IscUp(v_imsComponent_ueims); //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_GEN_INV_01(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_GEN_INV_01 } // End of group TP_6A_4_2_SIP_INVITE_request } // End of group Group_6A_4 group Group_7_3 { Loading @@ -238,5 +272,4 @@ module AtsSccas_Testcases group Group_11_3 { } // End of group Group_11_3 } // End of module AtsSccas_Testcases Loading
ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +98 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ module AtsSccas_TCFunctions { import from AtsSccas_Steps all; import from AtsSccas_PICS all; import from AtsSccas_PIXITS all; import from AtsSccas_TestConfiguration all; group Group_6_3 { Loading Loading @@ -528,6 +529,79 @@ module AtsSccas_TCFunctions { } // End of group Group_6_3 group Group_6A_4 { group TP_6A_4_2_SIP_INVITE_request { /** * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header * @param p_cSeq_s Random CSeq REGISTER number */ function f_TC_ISC_SCCAS_GEN_INV_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; // Preambule f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); // Registration f_sendRegistrationAndAwait200Ok( v_cSeq_s, m_sccas_register( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest( vc_authorization, {c_Integrity_protected_no} ), PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation "600000", -, m_contentType(c_sdpApplication), // TODO To be refined during validation m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation ), mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact) ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE( m_sccas_invite( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, -, -, -, m_MBody_SDP(vc_sdp_local) )); tc_ack.start; alt { [] SIPP.receive(mw_sccas_Response_2xxonINVITE(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } // TODO Deregistration? f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_GEN_INV_01 } // End of group TP_6A_4_2_SIP_INVITE_request } // End of group Group_6A_4 group Group_7_3 { Loading @@ -545,4 +619,27 @@ module AtsSccas_TCFunctions { group Group_11_3 { } // End of group Group_11_3 group helpers { function f_sendRegistrationAndAwait200Ok( in CSeq p_cSeq_s, in template (omit) REGISTER_Request p_register, template (present) Response p_response ) runs on ImsComponent { f_setHeaders_REGISTER(p_cSeq_s); f_SendREGISTER(p_register); tc_ack.start; alt { [] SIPP.receive(p_response) { tc_ack.stop; } [] tc_ack.timeout { f_setVerdict(e_timeout); } } } // End of function f_sendRegistrationAndAwait200Ok } // End of group helpers } // End of module AtsSccas_TCFunctions No newline at end of file
ttcn/AtsSccas/AtsSccas_Templates.ttcn +48 −10 Original line number Diff line number Diff line Loading @@ -152,6 +152,26 @@ module AtsSccas_Templates group request_sent_Yann { } template (omit) INVITE_Request m_sccas_invite( in template(value) SipUrl p_requestUri, in template(value) CallId p_callId, in template(value) CSeq p_cSeq, in template(value) From p_from, in template(value) To p_to, in template(value) LibSip_SIPTypesAndValues.Via p_via, in template(value) LibSip_SIPTypesAndValues.Contact p_contact, in template(omit) Require p_require := omit, in template(omit) Route p_route := omit, in template(omit) Supported p_supported := omit, in template(value) MessageBody p_mb ) modifies m_INVITE_Request_UE := { msgHeader := { contentLength := m_contentLength(f_MessageBodyLength(p_mb)), contentType := m_contentType(c_sdpApplication) }, messageBody := p_mb } } // End of group request_sent group request_receive { Loading Loading @@ -234,6 +254,24 @@ module AtsSccas_Templates group request_receive_Yann { } template (present) Response mw_sccas_Response_2xxonINVITE( template (present) CallId p_callId := ?, template (present) CSeq p_cSeq := ?, template (present) From p_from := ?, template (present) To p_to := ?, template (present) Via p_via := ?, template (present) Contact p_contact := ?, template (present) PChargingVector p_pChargingVector := ?, template (present) PAssertedID p_pAssertedID := ?, template AcceptContact p_acceptContact := * ) modifies mw_Response_2xx_Base := { msgHeader := { pChargingVector := p_pChargingVector, contact := p_contact, acceptContact := p_acceptContact } } // End of template mw_sccas_Response_2xxonINVITE } // End of group request_receive } // End of group modified_templates Loading
ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn +4 −5 Original line number Diff line number Diff line Loading @@ -26,9 +26,8 @@ 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; function f_IncCSeq(inout CSeq loc_CSeq) { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; return }; // end f_IncCSeq Loading
ttcn/AtsSccas/AtsSccas_Testcases.ttcn +45 −12 Original line number Diff line number Diff line Loading @@ -221,6 +221,40 @@ module AtsSccas_Testcases } // End of group Group_6_3 group Group_6A_4 { group TP_6A_4_2_SIP_INVITE_request { /* * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_GEN_INV_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ueims; // Test control if (not PICS_SCCAS_GM) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_1IscUp(v_imsComponent_ueims); //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_GEN_INV_01(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_GEN_INV_01 } // End of group TP_6A_4_2_SIP_INVITE_request } // End of group Group_6A_4 group Group_7_3 { Loading @@ -238,5 +272,4 @@ module AtsSccas_Testcases group Group_11_3 { } // End of group Group_11_3 } // End of module AtsSccas_Testcases