Loading CONF/CONF_Steps.ttcn3 +78 −0 Original line number Diff line number Diff line Loading @@ -231,4 +231,82 @@ module CONF_Steps { p_sdp.media_list[0].attributes := v_attList; } } /** * @desc This function subscribes a Conference event package by sending a SUBSCRIBE request to a conference FOKUS * @param p_cSeq_s CSeq number * @param p_profile is conference URI */ function f_subscribeConf(inout CSeq p_cSeq_s, in SipUrl p_profile) runs on ImsComponent { // creating a new dialog LibIms_Steps.f_setHeadersSUBSCRIBE( p_cSeq_s, p_profile ); // subscribe Conference event package f_SubscriptionWithNotification( p_cSeq_s, m_SUBSCRIBE_Request_Event( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_Event_conference ), mw_NOTIFY_Request( vc_callId, "active", "application/conference-info+xml", m_Event_conference, m_MBody_XML(mw_XmlBody_ConfInfo(mw_conferenceInfo_active)) ) ); } /** * @desc This function invites a user to join a conference by sending a REFER request to a conference FOKUS * @param p_cSeq CSeq number * @param p_to_user user * @param p_conferenceUri conference uri */ function f_referConference( inout CSeq p_cSeq, in integer p_to_user, in SipUrl p_conferenceUri ) runs on ImsComponent { LibIms_Steps.f_setHeadersREFER_conf(p_cSeq, p_conferenceUri); f_SendREFER(m_REFER_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_contact, vc_from, vc_to, vc_via, m_ReferTo_SipUrl(f_initSipUrl(p_to_user), "INVITE"), omit )); f_awaitingResponse(mw_Response_Base( c_statusLine202, vc_callId, p_cSeq )); //await NOTIFY and send reply 200 OK f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request( vc_callId, "active", "application/message/sipfrag", m_Event_refer, m_MBody_sipfrag("SIP/2.0 100 Trying") )); } } No newline at end of file CONF/CONF_TC_Functions.ttcn3 +763 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes CONF/CONF_Templates.ttcn3 +31 −14 Original line number Diff line number Diff line Loading @@ -110,6 +110,17 @@ module CONF_Templates { } } template INVITE_Request mw_INVITE_Request_CONF_OIR( template SipUrl p_requestUri, template PAssertedID p_pAssertedID, template Contact p_contact ) modifies mw_INVITE_Request_Base := { requestLine := {requestUri := p_requestUri}, msgHeader := { referredBy := omit } } template INVITE_Request mw_INVITE_Request_CONF_referredBy( template SipUrl p_requestUri, template PAssertedID p_pAssertedID, Loading Loading @@ -207,8 +218,14 @@ template ReferTo mw_ReferTo ( } template REFER_Request m_REFER_Request_Privacy(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, Contact p_contact, From p_from, template To p_to, Via p_via, template ReferTo p_referTo, template ReferredBy p_referredBy, template Privacy p_privacy) modifies m_REFER_Request_Base := { msgHeader := {privacy := p_privacy} } } No newline at end of file CONF/CONF_TestCases.ttcn3 +178 −0 Original line number Diff line number Diff line Loading @@ -612,4 +612,182 @@ module CONF_TestCases { f_cf_ue_down(v_pcscf); } } group interactionTIR { /** * @desc * Remote user requests TIR, no identity information in the * conference notification info send in the NOTIFY request to the * conference creator. * @param p_cSeq Transaction Id */ testcase TC_CONF_N08_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N08_001(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } } group interactionOIR { /** * @desc * Conference creator subscribes to OIR in permanent mode. There is * no identity information of the creator included in the conference * notification sent to the conference participants. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_001(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to OIR in permanent mode. * Referred-By is not sent in the INVITE request if Privacy header * set to value "user" was received in the REFER. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_002(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_002(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to OIR in permanent mode. * Referred-By is not sent in the INVITE request if Privacy header * set to value "user" was received in the REFER. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_003(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_003(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to OIR in permanent mode. * Referred-By is not sent in the INVITE request if Privacy header * set to value "header" was received in the REFER. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_004(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_004(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } } group interactionACR_CB { /** * @desc * Conference creator subscribes to ACR/CB and has Outgoing Call * Barring activated for UE2. Conference invitation for UE2 via * REFER is rejected. * @param p_cSeq Transaction Id */ testcase TC_CONF_N10_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N10_001(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to ACR/CB and has Outgoing Call * Barring activated for UE2. Conference invitation for UE2 via * the uri-list is rejected. * @param p_cSeq Transaction Id */ testcase TC_CONF_N10_002(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N10_002(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } } } No newline at end of file Loading
CONF/CONF_Steps.ttcn3 +78 −0 Original line number Diff line number Diff line Loading @@ -231,4 +231,82 @@ module CONF_Steps { p_sdp.media_list[0].attributes := v_attList; } } /** * @desc This function subscribes a Conference event package by sending a SUBSCRIBE request to a conference FOKUS * @param p_cSeq_s CSeq number * @param p_profile is conference URI */ function f_subscribeConf(inout CSeq p_cSeq_s, in SipUrl p_profile) runs on ImsComponent { // creating a new dialog LibIms_Steps.f_setHeadersSUBSCRIBE( p_cSeq_s, p_profile ); // subscribe Conference event package f_SubscriptionWithNotification( p_cSeq_s, m_SUBSCRIBE_Request_Event( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_Event_conference ), mw_NOTIFY_Request( vc_callId, "active", "application/conference-info+xml", m_Event_conference, m_MBody_XML(mw_XmlBody_ConfInfo(mw_conferenceInfo_active)) ) ); } /** * @desc This function invites a user to join a conference by sending a REFER request to a conference FOKUS * @param p_cSeq CSeq number * @param p_to_user user * @param p_conferenceUri conference uri */ function f_referConference( inout CSeq p_cSeq, in integer p_to_user, in SipUrl p_conferenceUri ) runs on ImsComponent { LibIms_Steps.f_setHeadersREFER_conf(p_cSeq, p_conferenceUri); f_SendREFER(m_REFER_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_contact, vc_from, vc_to, vc_via, m_ReferTo_SipUrl(f_initSipUrl(p_to_user), "INVITE"), omit )); f_awaitingResponse(mw_Response_Base( c_statusLine202, vc_callId, p_cSeq )); //await NOTIFY and send reply 200 OK f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request( vc_callId, "active", "application/message/sipfrag", m_Event_refer, m_MBody_sipfrag("SIP/2.0 100 Trying") )); } } No newline at end of file
CONF/CONF_TC_Functions.ttcn3 +763 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes
CONF/CONF_Templates.ttcn3 +31 −14 Original line number Diff line number Diff line Loading @@ -110,6 +110,17 @@ module CONF_Templates { } } template INVITE_Request mw_INVITE_Request_CONF_OIR( template SipUrl p_requestUri, template PAssertedID p_pAssertedID, template Contact p_contact ) modifies mw_INVITE_Request_Base := { requestLine := {requestUri := p_requestUri}, msgHeader := { referredBy := omit } } template INVITE_Request mw_INVITE_Request_CONF_referredBy( template SipUrl p_requestUri, template PAssertedID p_pAssertedID, Loading Loading @@ -207,8 +218,14 @@ template ReferTo mw_ReferTo ( } template REFER_Request m_REFER_Request_Privacy(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, Contact p_contact, From p_from, template To p_to, Via p_via, template ReferTo p_referTo, template ReferredBy p_referredBy, template Privacy p_privacy) modifies m_REFER_Request_Base := { msgHeader := {privacy := p_privacy} } } No newline at end of file
CONF/CONF_TestCases.ttcn3 +178 −0 Original line number Diff line number Diff line Loading @@ -612,4 +612,182 @@ module CONF_TestCases { f_cf_ue_down(v_pcscf); } } group interactionTIR { /** * @desc * Remote user requests TIR, no identity information in the * conference notification info send in the NOTIFY request to the * conference creator. * @param p_cSeq Transaction Id */ testcase TC_CONF_N08_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N08_001(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } } group interactionOIR { /** * @desc * Conference creator subscribes to OIR in permanent mode. There is * no identity information of the creator included in the conference * notification sent to the conference participants. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_001(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to OIR in permanent mode. * Referred-By is not sent in the INVITE request if Privacy header * set to value "user" was received in the REFER. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_002(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_002(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to OIR in permanent mode. * Referred-By is not sent in the INVITE request if Privacy header * set to value "user" was received in the REFER. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_003(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_003(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to OIR in permanent mode. * Referred-By is not sent in the INVITE request if Privacy header * set to value "header" was received in the REFER. * @param p_cSeq Transaction Id */ testcase TC_CONF_N09_004(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N09_004(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } } group interactionACR_CB { /** * @desc * Conference creator subscribes to ACR/CB and has Outgoing Call * Barring activated for UE2. Conference invitation for UE2 via * REFER is rejected. * @param p_cSeq Transaction Id */ testcase TC_CONF_N10_001(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N10_001(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } /** * @desc * Conference creator subscribes to ACR/CB and has Outgoing Call * Barring activated for UE2. Conference invitation for UE2 via * the uri-list is rejected. * @param p_cSeq Transaction Id */ testcase TC_CONF_N10_002(inout CSeq p_cSeq) runs on ServerSyncComp system TestAdapter { // variable declaration var ImsComponent v_pcscf; // setup test configuration f_cf_ue_up(v_pcscf); // start component v_pcscf.start(f_TC_CONF_N10_002(p_cSeq)); // synchronize component f_serverSync1Client({c_prDone, c_tbDone}); // tear down test configuration f_cf_ue_down(v_pcscf); } } } No newline at end of file