Loading ttcn/AtsSccas/AtsSccas_Steps.ttcn +126 −0 Original line number Diff line number Diff line module AtsSccas_Steps { // LibCommon import from LibCommon_VerdictControl all; // LibSip import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; Loading @@ -17,6 +20,7 @@ module AtsSccas_Steps { // AtsSccas import from AtsSccas_PIXITS all; import from AtsSccas_Templates all; group Constants { Loading Loading @@ -456,4 +460,126 @@ module AtsSccas_Steps { } // End of group SetHeaders group CommonProcedures { function f_registrationAS(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_cSeq_s := p_cSeq_s; var template(value) REGISTER_Request m_register3ptyUe; var template(value) RequestUnion m_req; var template(value) Response m_ResponseReg_3ptyUe; // Preamble f_init_userprofile(c_userProfile_PCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); f_initSipUrl(c_userProfile_PCSCFwithHomeUE); //Registration f_setHeaders_REGISTER(v_cSeq_s);//UE REGISTER m_register3ptyUe := m_register_ue_srvcc( 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", omit, omit, omit ); m_req:= {Register:=valueof(m_register3ptyUe)}; m_ResponseReg_3ptyUe := m_Response_2xxonREGISTER_IMS( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, m_SipUrl_currDomain(vc_userprofile), vc_from.addressField.nameAddr.addrSpec ); f_init_userprofile(c_userProfile_SCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS f_initSipUrl(c_userProfile_SCSCFwithHomeUE); f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER f_SendREGISTER( m_REGISTER_Request_AS( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, -, "600000", m_contentType("multipart/mixed",{m_contentTypeBoundary(c_boundary)}) , m_MBody_MIME_SipReqResp(c_boundary,m_req,m_ResponseReg_3ptyUe) )); tc_ack.start; alt { [] SIPP.receive(mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { tc_ack.stop; } [] tc_ack.timeout { f_setVerdict(e_timeout); } } } //end function f_registrationAS function f_deregistrationAS(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; // Preamble f_init_userprofile(c_userProfile_SCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS f_initSipUrl(c_userProfile_SCSCFwithHomeUE); f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER f_SendREGISTER( m_REGISTER_Request_AS( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, -, "0", - , -) ); tc_ack.start; alt { [] SIPP.receive(mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { tc_ack.stop; } [] tc_ack.timeout { f_setVerdict(e_timeout); } } } //end function f_deregistrationAS } //end group CommonProcedures } // End of module AtsSccas_Steps ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +179 −9 Original line number Diff line number Diff line Loading @@ -735,18 +735,179 @@ module AtsSccas_TCFunctions { } // End of function f_TC_ISC_SCCAS_GEN_INV_01 /** * @desc Verify that the SCCAS sends 1xx and/or 2xx response to the SIP INVITE request towards the served user. * @param p_cSeq_s Random CSeq REGISTER number */ function f_TC_ISC_SCCAS_GEN_INV_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; // Preamble f_registrationAS(v_cSeq_s); 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 } } // Postamble f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_GEN_INV_02 } // End of group TP_6A_4_2_SIP_INVITE_request } // End of group Group_6A_4 group Group_7_3 { group TP_Distinction_of_requests_sent_to_the_SCCAS { group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS { /** * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF * @param p_cSeq_s Random CSeq INVITE number */ function f_TC_ISC_SCCAS_ORI_INV_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; var template(value) REGISTER_Request m_register3ptyUe; var template(value) RequestUnion m_req; var template(value) Response m_ResponseReg_3ptyUe; // Preamble f_init_userprofile(c_userProfile_PCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); f_initSipUrl(c_userProfile_PCSCFwithHomeUE); //Registration f_setHeaders_REGISTER(v_cSeq_s);//UE REGISTER m_register3ptyUe := m_register_ue_srvcc( 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", omit, omit, omit ); m_req:= {Register:=valueof(m_register3ptyUe)}; m_ResponseReg_3ptyUe := m_Response_2xxonREGISTER_IMS( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, m_SipUrl_currDomain(vc_userprofile), vc_from.addressField.nameAddr.addrSpec ); f_init_userprofile(c_userProfile_SCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS f_initSipUrl(c_userProfile_SCSCFwithHomeUE); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync preambleDone f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER f_sendRegistrationAndAwait200Ok( v_cSeq_s, m_REGISTER_Request_AS( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, -, "600000", m_contentType("multipart/mixed",{m_contentTypeBoundary(c_boundary)}) , m_MBody_MIME_SipReqResp(c_boundary,m_req,m_ResponseReg_3ptyUe) ), mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact) ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_IncCSeq(v_cSeq_s); f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); 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_Response_1xx_Base(vc_callId, vc_cSeq)) { repeat } [] SIPP.receive(mw_INVITE_Request_AS(?, ?, ?, ?, *, *)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: INVITE 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_ORI_INV_01 } //End of group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS group TP_7_3_2_Call_origination_procedures_at_the_SCCAS{ /** * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSC * @desc Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user * @param p_cSeq_s Random CSeq INVITE number */ function TP_ISC_SCCAS_ORI_INV_01(in CSeq p_cSeq_s) function f_TC_ISC_SCCAS_ORI_INV_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; Loading Loading @@ -822,7 +983,7 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_IncCSeq(v_cSeq_s); /*LibIms_Steps.*/f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_SendINVITE( m_sccas_invite( vc_requestUri, Loading @@ -835,6 +996,11 @@ module AtsSccas_TCFunctions { )); tc_ack.start; alt { [] SIPP.receive(mw_Response_1xx_Base(vc_callId, vc_cSeq)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: 1xx message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] 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 ***"); Loading @@ -846,9 +1012,13 @@ module AtsSccas_TCFunctions { } } //End of function TP_ISC_SCCAS_ORI_INV_01 //TODO Deregistration? f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } //End of function f_TC_ISC_SCCAS_ORI_INV_02 } //End of group TP_7_3_2_Call_origination_procedures_at_the_SCCAS } //End of group TP_Distinction_of_requests_sent_to_the_SCCAS } // End of group Group_7_3 group Group_8_3 { Loading ttcn/AtsSccas/AtsSccas_Templates.ttcn +21 −1 Original line number Diff line number Diff line Loading @@ -649,8 +649,28 @@ module AtsSccas_Templates contact := p_contact, acceptContact := p_acceptContact }} } template (present) INVITE_Request mw_INVITE_Request_AS( template (present) SipUrl p_requestUri := ?, template (present) CallId p_callId := ?, template (present) PChargingVector p_pChargingVector := ?, template (present) PAssertedID p_pAssertedID := ?, template ContentType p_contentType := *, template MessageBody p_mb := * ) modifies mw_INVITE_Request_Base := { requestLine := { requestUri := p_requestUri }, msgHeader := { callId := p_callId, contentType := p_contentType, pChargingVector := p_pChargingVector, pAssertedID := p_pAssertedID }, messageBody := p_mb } // End of template mw_sccas_MESSAGE_Request } group request_receive_Yann { } Loading ttcn/AtsSccas/AtsSccas_Testcases.ttcn +65 −0 Original line number Diff line number Diff line Loading @@ -258,6 +258,71 @@ module AtsSccas_Testcases } // End of group Group_6A_4 group Group_7_3 { group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS { /* * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_ORI_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_ORI_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 TP_ISC_SCCAS_ORI_INV_01 } // End of group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS group TP_7_3_2_Call_origination_procedures_at_the_SCCAS{ /* * @desc Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_ORI_INV_02(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_ORI_INV_02(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 TP_ISC_SCCAS_ORI_INV_02 } // End of group TP_7_3_2_Call_origination_procedures_at_the_SCCAS } // End of group Group_7_3 group Group_8_3 { Loading Loading
ttcn/AtsSccas/AtsSccas_Steps.ttcn +126 −0 Original line number Diff line number Diff line module AtsSccas_Steps { // LibCommon import from LibCommon_VerdictControl all; // LibSip import from LibSip_Common all; import from LibSip_SIPTypesAndValues all; Loading @@ -17,6 +20,7 @@ module AtsSccas_Steps { // AtsSccas import from AtsSccas_PIXITS all; import from AtsSccas_Templates all; group Constants { Loading Loading @@ -456,4 +460,126 @@ module AtsSccas_Steps { } // End of group SetHeaders group CommonProcedures { function f_registrationAS(in CSeq p_cSeq_s) runs on ImsComponent { var CSeq v_cSeq_s := p_cSeq_s; var template(value) REGISTER_Request m_register3ptyUe; var template(value) RequestUnion m_req; var template(value) Response m_ResponseReg_3ptyUe; // Preamble f_init_userprofile(c_userProfile_PCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); f_initSipUrl(c_userProfile_PCSCFwithHomeUE); //Registration f_setHeaders_REGISTER(v_cSeq_s);//UE REGISTER m_register3ptyUe := m_register_ue_srvcc( 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", omit, omit, omit ); m_req:= {Register:=valueof(m_register3ptyUe)}; m_ResponseReg_3ptyUe := m_Response_2xxonREGISTER_IMS( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, m_SipUrl_currDomain(vc_userprofile), vc_from.addressField.nameAddr.addrSpec ); f_init_userprofile(c_userProfile_SCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS f_initSipUrl(c_userProfile_SCSCFwithHomeUE); f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER f_SendREGISTER( m_REGISTER_Request_AS( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, -, "600000", m_contentType("multipart/mixed",{m_contentTypeBoundary(c_boundary)}) , m_MBody_MIME_SipReqResp(c_boundary,m_req,m_ResponseReg_3ptyUe) )); tc_ack.start; alt { [] SIPP.receive(mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { tc_ack.stop; } [] tc_ack.timeout { f_setVerdict(e_timeout); } } } //end function f_registrationAS function f_deregistrationAS(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; // Preamble f_init_userprofile(c_userProfile_SCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS f_initSipUrl(c_userProfile_SCSCFwithHomeUE); f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER f_SendREGISTER( m_REGISTER_Request_AS( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, -, "0", - , -) ); tc_ack.start; alt { [] SIPP.receive(mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { tc_ack.stop; } [] tc_ack.timeout { f_setVerdict(e_timeout); } } } //end function f_deregistrationAS } //end group CommonProcedures } // End of module AtsSccas_Steps
ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +179 −9 Original line number Diff line number Diff line Loading @@ -735,18 +735,179 @@ module AtsSccas_TCFunctions { } // End of function f_TC_ISC_SCCAS_GEN_INV_01 /** * @desc Verify that the SCCAS sends 1xx and/or 2xx response to the SIP INVITE request towards the served user. * @param p_cSeq_s Random CSeq REGISTER number */ function f_TC_ISC_SCCAS_GEN_INV_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; // Preamble f_registrationAS(v_cSeq_s); 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 } } // Postamble f_deregistrationAS(v_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_GEN_INV_02 } // End of group TP_6A_4_2_SIP_INVITE_request } // End of group Group_6A_4 group Group_7_3 { group TP_Distinction_of_requests_sent_to_the_SCCAS { group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS { /** * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF * @param p_cSeq_s Random CSeq INVITE number */ function f_TC_ISC_SCCAS_ORI_INV_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; var template(value) REGISTER_Request m_register3ptyUe; var template(value) RequestUnion m_req; var template(value) Response m_ResponseReg_3ptyUe; // Preamble f_init_userprofile(c_userProfile_PCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); f_initSipUrl(c_userProfile_PCSCFwithHomeUE); //Registration f_setHeaders_REGISTER(v_cSeq_s);//UE REGISTER m_register3ptyUe := m_register_ue_srvcc( 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", omit, omit, omit ); m_req:= {Register:=valueof(m_register3ptyUe)}; m_ResponseReg_3ptyUe := m_Response_2xxonREGISTER_IMS( c_statusLine200, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, m_SipUrl_currDomain(vc_userprofile), vc_from.addressField.nameAddr.addrSpec ); f_init_userprofile(c_userProfile_SCSCFwithHomeUE); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS f_initSipUrl(c_userProfile_SCSCFwithHomeUE); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync preambleDone f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER f_sendRegistrationAndAwait200Ok( v_cSeq_s, m_REGISTER_Request_AS( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, -, "600000", m_contentType("multipart/mixed",{m_contentTypeBoundary(c_boundary)}) , m_MBody_MIME_SipReqResp(c_boundary,m_req,m_ResponseReg_3ptyUe) ), mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact) ); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_IncCSeq(v_cSeq_s); f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); 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_Response_1xx_Base(vc_callId, vc_cSeq)) { repeat } [] SIPP.receive(mw_INVITE_Request_AS(?, ?, ?, ?, *, *)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: INVITE 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_ORI_INV_01 } //End of group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS group TP_7_3_2_Call_origination_procedures_at_the_SCCAS{ /** * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSC * @desc Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user * @param p_cSeq_s Random CSeq INVITE number */ function TP_ISC_SCCAS_ORI_INV_01(in CSeq p_cSeq_s) function f_TC_ISC_SCCAS_ORI_INV_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; Loading Loading @@ -822,7 +983,7 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_IncCSeq(v_cSeq_s); /*LibIms_Steps.*/f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE)); f_SendINVITE( m_sccas_invite( vc_requestUri, Loading @@ -835,6 +996,11 @@ module AtsSccas_TCFunctions { )); tc_ack.start; alt { [] SIPP.receive(mw_Response_1xx_Base(vc_callId, vc_cSeq)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: 1xx message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] 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 ***"); Loading @@ -846,9 +1012,13 @@ module AtsSccas_TCFunctions { } } //End of function TP_ISC_SCCAS_ORI_INV_01 //TODO Deregistration? f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } //End of function f_TC_ISC_SCCAS_ORI_INV_02 } //End of group TP_7_3_2_Call_origination_procedures_at_the_SCCAS } //End of group TP_Distinction_of_requests_sent_to_the_SCCAS } // End of group Group_7_3 group Group_8_3 { Loading
ttcn/AtsSccas/AtsSccas_Templates.ttcn +21 −1 Original line number Diff line number Diff line Loading @@ -649,8 +649,28 @@ module AtsSccas_Templates contact := p_contact, acceptContact := p_acceptContact }} } template (present) INVITE_Request mw_INVITE_Request_AS( template (present) SipUrl p_requestUri := ?, template (present) CallId p_callId := ?, template (present) PChargingVector p_pChargingVector := ?, template (present) PAssertedID p_pAssertedID := ?, template ContentType p_contentType := *, template MessageBody p_mb := * ) modifies mw_INVITE_Request_Base := { requestLine := { requestUri := p_requestUri }, msgHeader := { callId := p_callId, contentType := p_contentType, pChargingVector := p_pChargingVector, pAssertedID := p_pAssertedID }, messageBody := p_mb } // End of template mw_sccas_MESSAGE_Request } group request_receive_Yann { } Loading
ttcn/AtsSccas/AtsSccas_Testcases.ttcn +65 −0 Original line number Diff line number Diff line Loading @@ -258,6 +258,71 @@ module AtsSccas_Testcases } // End of group Group_6A_4 group Group_7_3 { group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS { /* * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_ORI_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_ORI_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 TP_ISC_SCCAS_ORI_INV_01 } // End of group TP_7_3_1_Distinction_of_requests_sent_to_the_SCCAS group TP_7_3_2_Call_origination_procedures_at_the_SCCAS{ /* * @desc Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_ORI_INV_02(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_ORI_INV_02(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 TP_ISC_SCCAS_ORI_INV_02 } // End of group TP_7_3_2_Call_origination_procedures_at_the_SCCAS } // End of group Group_7_3 group Group_8_3 { Loading