Loading ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +149 −5 Original line number Original line Diff line number Diff line Loading @@ -1227,7 +1227,7 @@ module AtsSccas_TCFunctions { // STEP: send invite // STEP: send invite LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE(m_sccas_invite( f_SendINVITE(m_sccas_invite_contact( vc_requestUri, vc_requestUri, vc_callId, vc_callId, vc_cSeq, vc_cSeq, Loading @@ -1237,8 +1237,8 @@ module AtsSccas_TCFunctions { m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator omit, // template(omit) Require p_require := omit, omit, // template(omit) Require p_require := omit, vc_route, vc_route, m_supported_replaces, omit, omit m_messageBody_SDP_mediaOnly ) ) Loading @@ -1247,6 +1247,149 @@ module AtsSccas_TCFunctions { } // End of f_TC_ISC_SCCAS_CPT_INV_03 } // End of f_TC_ISC_SCCAS_CPT_INV_03 function f_TC_ISC_SCCAS_CPT_INV_04(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); // initial condition: the UE entity isRegisteredTo the IMS 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 // TODO: initial condition (PICS?): SCC AS supports the MSC Server assisted mid-call feature according to operator policy // STEP: send invite LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE(m_sccas_invite_contact( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, m_contact_g3gppDrvccAlertingFeature, // TODO: correct use auf g3gppDrvccAlertingFeature omit, // template(omit) Require p_require := omit, vc_route, m_supported_replaces, omit ) ); f_awaitingResponse(mw_sccas_Response_2xxmediaOnly(vc_callIdReg, p_cSeq_s, ?, ?, ?, mw_contact_g3gppDrvccAlertingFeature)); } // End of f_TC_ISC_SCCAS_CPT_INV_04 function f_TC_ISC_SCCAS_CPT_INV_05(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); // initial condition: the UE entity isRegisteredTo the IMS 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 // TODO: initial condition (PICS?): SCC AS supports the MSC Server assisted mid-call feature according to operator policy // STEP: send invite LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE(m_sccas_invite_contact( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, m_contact_g3gppDrvccOrigPreAlertingFeature, // TODO: correct use auf g3gppDrvccOrigPreAlertingFeature omit, // template(omit) Require p_require := omit, vc_route, m_supported_replaces, omit // TODO ) ); tc_ack.start; alt { [] SIPP.receive(mw_UPDATE_Request_ContactChange( vc_callId, mw_contact_sourceLegAtCreation, mw_contentType_appclication_sdp, mw_sdpmessageBody)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: response 200 was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } // f_awaitingResponse(mw_UPDATE_Request_ContactChange( // vc_callId, // mw_contact_sourceLegAtCreation, // mw_contentType_appclication_sdp, // mw_sdpmessageBody)); // f_awaitingResponse(mw_sccas_Response_2xxmediaOnly(vc_callIdReg, p_cSeq_s, ?, ?, ?, mw_contact_g3gppDrvccAlertingFeature)); } // End of f_TC_ISC_SCCAS_CPT_INV_05 } // End of group Group_9_3 } // End of group Group_9_3 group Group_10_3 { group Group_10_3 { Loading Loading @@ -1293,14 +1436,15 @@ module AtsSccas_TCFunctions { // Registration // Registration f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE( f_SendINVITE( m_sccas_invite( // TODO request active speech media component using CS bearer m_sccas_invite_replaces( // TODO request active speech media component using CS bearer vc_requestUri, vc_requestUri, vc_callId, vc_callId, p_cSeq_s, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_from, vc_to, vc_via_REG, vc_contact, vc_contact, -, -, -, -, -, -, m_MBody_SDP(vc_sdp_local) m_MBody_SDP(vc_sdp_local), - // indicating access transfer procedure )); )); tc_ack.start; tc_ack.start; alt { alt { Loading ttcn/AtsSccas/AtsSccas_Templates.ttcn +108 −4 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,8 @@ module AtsSccas_Templates import from LibIms_SIPTypesAndValues all; import from LibIms_SIPTypesAndValues all; import from LibIms_Templates all; import from LibIms_Templates all; import from LibSip_SDPTypes all; group HeaderTemplates { group HeaderTemplates { template (value) Supported m_sccas_supported( template (value) Supported m_sccas_supported( Loading Loading @@ -138,10 +140,41 @@ module AtsSccas_Templates messageBody := p_mb messageBody := p_mb } } group request_sent_Axel { group request_sent_Axel { template (omit) INVITE_Request m_sccas_invite_replaces( 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, in template(omit) Replaces p_replaces := omit ) modifies m_INVITE_Request_UE := { msgHeader := { contentLength := m_contentLength(f_MessageBodyLength(p_mb)), contentType := m_contentType(c_sdpApplication) }, messageBody := p_mb } } } group request_sent_Steffen { group request_sent_Steffen { template LibSip_SIPTypesAndValues.Contact m_contact_g3gppDrvccOrigPreAlertingFeature := { fieldName := CONTACT_E, contactBody := { wildcard := "g3gppDrvccOrigPreAlertingFeature" } } template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := { template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := { fieldName := CONTACT_E, fieldName := CONTACT_E, contactBody := { contactBody := { Loading @@ -150,6 +183,15 @@ module AtsSccas_Templates } } } } template LibSip_SIPTypesAndValues.Contact m_contact_g3gppDrvccAlertingFeature := { fieldName := CONTACT_E, contactBody := { wildcard := "g3gppDrvccAlertingFeature" } } template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := { template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := { sdpMessageBody := { sdpMessageBody := { protocol_version := 1, // TODO protocol_version := 1, // TODO Loading Loading @@ -219,8 +261,8 @@ module AtsSccas_Templates // payload := omit // payload := omit // } // } // TODO:change name template (omit) INVITE_Request m_sccas_invite_stl( template (omit) INVITE_Request m_sccas_invite_contact( template(value) SipUrl p_requestUri, template(value) SipUrl p_requestUri, template(value) CallId p_callId, template(value) CallId p_callId, template(value) CSeq p_cSeq, template(value) CSeq p_cSeq, Loading @@ -242,7 +284,7 @@ module AtsSccas_Templates toField := p_to, toField := p_to, via := p_via via := p_via }, }, messageBody := omit, messageBody := p_mb, payload := omit payload := omit } } Loading Loading @@ -470,10 +512,72 @@ module AtsSccas_Templates group request_receive_Steffen { group request_receive_Steffen { template LibSip_SIPTypesAndValues.ContentType mw_contentType_appclication_sdp := { fieldName := CONTENT_TYPE_E, mTypeSubtype := "appclication/sdp", mParams := * } template LibSip_SDPTypes.SDP_Message mw_sdpmessageBody := { protocol_version := ?, origin := ?, session_name := ?, information := *, uri := *, emails := *, phone_numbers := *, connection := *, bandwidth := *, times := ?, timezone_adjustments := ?, key := ?, attributes := ?, media_list := { { media_field := ?, information := *, connections := *, bandwidth := *, key := *, attributes := * } } } template(present) UPDATE_Request mw_UPDATE_Request_ContactChange( template CallId p_callId, template(present) Contact p_contact := ?, template(present) ContentType p_contenType := ?, template(present) SDP_Message p_sdpMessageBody := ? ) modifies mw_UPDATE_Request_Base := { msgHeader := { callId := p_callId, contact := p_contact, contentType := p_contenType }, messageBody := { sdpMessageBody := p_sdpMessageBody } } template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := { template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := { fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator } } template LibSip_SIPTypesAndValues.Contact mw_contact_sourceLegAtCreation := { fieldName := ?, contactBody := ? // TODO: "set to the Contact header field provided on the source leg at the creation of the dialog", } template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppDrvccAlertingFeature := { fieldName := ?, contactBody := ? // TODO: correct use of g3gppDrvccAlertingFeature } template (present) Response mw_sccas_Response_2xxmediaOnly( template (present) Response mw_sccas_Response_2xxmediaOnly( //template (present) StatusLine.statusCode p_statusCode := 200, //template (present) StatusLine.statusCode p_statusCode := 200, template (present) CallId p_callId := ?, template (present) CallId p_callId := ?, Loading ttcn/AtsSccas/AtsSccas_Testcases.ttcn +57 −3 Original line number Original line Diff line number Diff line Loading @@ -503,12 +503,37 @@ module AtsSccas_Testcases } // End of TP_ISC_SCCAS_CPT_INV_03 } // End of TP_ISC_SCCAS_CPT_INV_03 /* * @desc Verify that the SCC AS accepts conditions in an early dialog phase * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s) testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s) runs on ServerSyncComp runs on ServerSyncComp system TestAdapter { system TestAdapter { // TODO 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); // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_04(p_cSeq_s)); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TP_ISC_SCCAS_CPT_INV_04 } // End of TP_ISC_SCCAS_CPT_INV_04 Loading Loading @@ -586,11 +611,40 @@ module AtsSccas_Testcases } // End of TP_ISC_SCCAS_MED_RIN_01 } // End of TP_ISC_SCCAS_MED_RIN_01 /* * @desc Verify that the SCC AS performs the procedures correctly for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s) testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s) runs on ServerSyncComp runs on ServerSyncComp system TestAdapter { system TestAdapter { // TODO // the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase 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); // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_05(p_cSeq_s)); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TP_ISC_SCCAS_CPT_INV_05 } // End of TP_ISC_SCCAS_CPT_INV_05 Loading Loading
ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +149 −5 Original line number Original line Diff line number Diff line Loading @@ -1227,7 +1227,7 @@ module AtsSccas_TCFunctions { // STEP: send invite // STEP: send invite LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE(m_sccas_invite( f_SendINVITE(m_sccas_invite_contact( vc_requestUri, vc_requestUri, vc_callId, vc_callId, vc_cSeq, vc_cSeq, Loading @@ -1237,8 +1237,8 @@ module AtsSccas_TCFunctions { m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator omit, // template(omit) Require p_require := omit, omit, // template(omit) Require p_require := omit, vc_route, vc_route, m_supported_replaces, omit, omit m_messageBody_SDP_mediaOnly ) ) Loading @@ -1247,6 +1247,149 @@ module AtsSccas_TCFunctions { } // End of f_TC_ISC_SCCAS_CPT_INV_03 } // End of f_TC_ISC_SCCAS_CPT_INV_03 function f_TC_ISC_SCCAS_CPT_INV_04(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); // initial condition: the UE entity isRegisteredTo the IMS 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 // TODO: initial condition (PICS?): SCC AS supports the MSC Server assisted mid-call feature according to operator policy // STEP: send invite LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE(m_sccas_invite_contact( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, m_contact_g3gppDrvccAlertingFeature, // TODO: correct use auf g3gppDrvccAlertingFeature omit, // template(omit) Require p_require := omit, vc_route, m_supported_replaces, omit ) ); f_awaitingResponse(mw_sccas_Response_2xxmediaOnly(vc_callIdReg, p_cSeq_s, ?, ?, ?, mw_contact_g3gppDrvccAlertingFeature)); } // End of f_TC_ISC_SCCAS_CPT_INV_04 function f_TC_ISC_SCCAS_CPT_INV_05(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); // initial condition: the UE entity isRegisteredTo the IMS 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 // TODO: initial condition (PICS?): SCC AS supports the MSC Server assisted mid-call feature according to operator policy // STEP: send invite LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE(m_sccas_invite_contact( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, m_contact_g3gppDrvccOrigPreAlertingFeature, // TODO: correct use auf g3gppDrvccOrigPreAlertingFeature omit, // template(omit) Require p_require := omit, vc_route, m_supported_replaces, omit // TODO ) ); tc_ack.start; alt { [] SIPP.receive(mw_UPDATE_Request_ContactChange( vc_callId, mw_contact_sourceLegAtCreation, mw_contentType_appclication_sdp, mw_sdpmessageBody)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: response 200 was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync } } // f_awaitingResponse(mw_UPDATE_Request_ContactChange( // vc_callId, // mw_contact_sourceLegAtCreation, // mw_contentType_appclication_sdp, // mw_sdpmessageBody)); // f_awaitingResponse(mw_sccas_Response_2xxmediaOnly(vc_callIdReg, p_cSeq_s, ?, ?, ?, mw_contact_g3gppDrvccAlertingFeature)); } // End of f_TC_ISC_SCCAS_CPT_INV_05 } // End of group Group_9_3 } // End of group Group_9_3 group Group_10_3 { group Group_10_3 { Loading Loading @@ -1293,14 +1436,15 @@ module AtsSccas_TCFunctions { // Registration // Registration f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE( f_SendINVITE( m_sccas_invite( // TODO request active speech media component using CS bearer m_sccas_invite_replaces( // TODO request active speech media component using CS bearer vc_requestUri, vc_requestUri, vc_callId, vc_callId, p_cSeq_s, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_from, vc_to, vc_via_REG, vc_contact, vc_contact, -, -, -, -, -, -, m_MBody_SDP(vc_sdp_local) m_MBody_SDP(vc_sdp_local), - // indicating access transfer procedure )); )); tc_ack.start; tc_ack.start; alt { alt { Loading
ttcn/AtsSccas/AtsSccas_Templates.ttcn +108 −4 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,8 @@ module AtsSccas_Templates import from LibIms_SIPTypesAndValues all; import from LibIms_SIPTypesAndValues all; import from LibIms_Templates all; import from LibIms_Templates all; import from LibSip_SDPTypes all; group HeaderTemplates { group HeaderTemplates { template (value) Supported m_sccas_supported( template (value) Supported m_sccas_supported( Loading Loading @@ -138,10 +140,41 @@ module AtsSccas_Templates messageBody := p_mb messageBody := p_mb } } group request_sent_Axel { group request_sent_Axel { template (omit) INVITE_Request m_sccas_invite_replaces( 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, in template(omit) Replaces p_replaces := omit ) modifies m_INVITE_Request_UE := { msgHeader := { contentLength := m_contentLength(f_MessageBodyLength(p_mb)), contentType := m_contentType(c_sdpApplication) }, messageBody := p_mb } } } group request_sent_Steffen { group request_sent_Steffen { template LibSip_SIPTypesAndValues.Contact m_contact_g3gppDrvccOrigPreAlertingFeature := { fieldName := CONTACT_E, contactBody := { wildcard := "g3gppDrvccOrigPreAlertingFeature" } } template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := { template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := { fieldName := CONTACT_E, fieldName := CONTACT_E, contactBody := { contactBody := { Loading @@ -150,6 +183,15 @@ module AtsSccas_Templates } } } } template LibSip_SIPTypesAndValues.Contact m_contact_g3gppDrvccAlertingFeature := { fieldName := CONTACT_E, contactBody := { wildcard := "g3gppDrvccAlertingFeature" } } template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := { template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := { sdpMessageBody := { sdpMessageBody := { protocol_version := 1, // TODO protocol_version := 1, // TODO Loading Loading @@ -219,8 +261,8 @@ module AtsSccas_Templates // payload := omit // payload := omit // } // } // TODO:change name template (omit) INVITE_Request m_sccas_invite_stl( template (omit) INVITE_Request m_sccas_invite_contact( template(value) SipUrl p_requestUri, template(value) SipUrl p_requestUri, template(value) CallId p_callId, template(value) CallId p_callId, template(value) CSeq p_cSeq, template(value) CSeq p_cSeq, Loading @@ -242,7 +284,7 @@ module AtsSccas_Templates toField := p_to, toField := p_to, via := p_via via := p_via }, }, messageBody := omit, messageBody := p_mb, payload := omit payload := omit } } Loading Loading @@ -470,10 +512,72 @@ module AtsSccas_Templates group request_receive_Steffen { group request_receive_Steffen { template LibSip_SIPTypesAndValues.ContentType mw_contentType_appclication_sdp := { fieldName := CONTENT_TYPE_E, mTypeSubtype := "appclication/sdp", mParams := * } template LibSip_SDPTypes.SDP_Message mw_sdpmessageBody := { protocol_version := ?, origin := ?, session_name := ?, information := *, uri := *, emails := *, phone_numbers := *, connection := *, bandwidth := *, times := ?, timezone_adjustments := ?, key := ?, attributes := ?, media_list := { { media_field := ?, information := *, connections := *, bandwidth := *, key := *, attributes := * } } } template(present) UPDATE_Request mw_UPDATE_Request_ContactChange( template CallId p_callId, template(present) Contact p_contact := ?, template(present) ContentType p_contenType := ?, template(present) SDP_Message p_sdpMessageBody := ? ) modifies mw_UPDATE_Request_Base := { msgHeader := { callId := p_callId, contact := p_contact, contentType := p_contenType }, messageBody := { sdpMessageBody := p_sdpMessageBody } } template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := { template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := { fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator } } template LibSip_SIPTypesAndValues.Contact mw_contact_sourceLegAtCreation := { fieldName := ?, contactBody := ? // TODO: "set to the Contact header field provided on the source leg at the creation of the dialog", } template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppDrvccAlertingFeature := { fieldName := ?, contactBody := ? // TODO: correct use of g3gppDrvccAlertingFeature } template (present) Response mw_sccas_Response_2xxmediaOnly( template (present) Response mw_sccas_Response_2xxmediaOnly( //template (present) StatusLine.statusCode p_statusCode := 200, //template (present) StatusLine.statusCode p_statusCode := 200, template (present) CallId p_callId := ?, template (present) CallId p_callId := ?, Loading
ttcn/AtsSccas/AtsSccas_Testcases.ttcn +57 −3 Original line number Original line Diff line number Diff line Loading @@ -503,12 +503,37 @@ module AtsSccas_Testcases } // End of TP_ISC_SCCAS_CPT_INV_03 } // End of TP_ISC_SCCAS_CPT_INV_03 /* * @desc Verify that the SCC AS accepts conditions in an early dialog phase * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s) testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s) runs on ServerSyncComp runs on ServerSyncComp system TestAdapter { system TestAdapter { // TODO 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); // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_04(p_cSeq_s)); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TP_ISC_SCCAS_CPT_INV_04 } // End of TP_ISC_SCCAS_CPT_INV_04 Loading Loading @@ -586,11 +611,40 @@ module AtsSccas_Testcases } // End of TP_ISC_SCCAS_MED_RIN_01 } // End of TP_ISC_SCCAS_MED_RIN_01 /* * @desc Verify that the SCC AS performs the procedures correctly for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side * @param p_cSeq_s Transaction Id */ testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s) testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s) runs on ServerSyncComp runs on ServerSyncComp system TestAdapter { system TestAdapter { // TODO // the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase 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); // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_05(p_cSeq_s)); // synchronize PTC on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TP_ISC_SCCAS_CPT_INV_05 } // End of TP_ISC_SCCAS_CPT_INV_05 Loading