Commit 3f0b2c2b authored by Michael Proestler's avatar Michael Proestler
Browse files

TC_ESRP_QUEUE_STATE_BV_02 - WIP

parent d16ca5e6
Loading
Loading
Loading
Loading
+63 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<!-- This program is free software; you can redistribute it and/or      -->
<!-- modify it under the terms of the GNU General Public License as     -->
<!-- published by the Free Software Foundation; either version 2 of the -->
<!-- License, or (at your option) any later version.                    -->
<!--                                                                    -->
<!-- This program is distributed in the hope that it will be useful,    -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      -->
<!-- GNU General Public License for more details.                       -->
<!--                                                                    -->
<!-- You should have received a copy of the GNU General Public License  -->
<!-- along with this program; if not, write to the                      -->
<!-- Free Software Foundation, Inc.,                                    -->
<!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
<!--                                                                    -->
<!--                 Sipp default 'uac' scenario.                       -->
<!--                                                                    -->

<scenario name="Basic Sipstone UAC">
  <!-- In client mode (sipp placing calls), the Call-ID MUST be         -->
  <!-- generated by sipp. To do so, use [call_id] keyword.                -->
  
  <pause milliseconds="15000"/>

  <send>
    <![CDATA[
      SUBSCRIBE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: PSAP1 <sip:psap1@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      CSeq: 1 SUBSCRIBE
      Contact: sip:psap1@[local_ip]:[local_port]
      Max-Forwards: 70
      Event: emergency-QueueState
      Expires: 60            
      Content-Length: 0
    ]]>
  </send>

  <recv response="200" />

  <recv request="NOTIFY"></recv>

  <send>
    <![CDATA[
      SIP/2.0 200 OK
      [last_Via:]
      [last_From:]
      [last_To:]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: <sip:[local_ip]:[local_port];transport=[transport]>
      Content-Length: 0
    ]]>
  </send>

  <pause milliseconds="1000"/>
</scenario>
+5 −0
Original line number Original line Diff line number Diff line
@@ -37,6 +37,11 @@ module AtsESRP_Pics {
  modulepar boolean PICS_ESRP_TARGET_SIP_REGISTER_SUPPORT := true
  modulepar boolean PICS_ESRP_TARGET_SIP_REGISTER_SUPPORT := true




  /**
  * @desc Does the IUT support Queue States ?
  */
  modulepar boolean PICS_ESRP_QUEUE_STATE_SUPPORT := true

  /**
  /**
   * @desc HTTP post URI for LIS protocol
   * @desc HTTP post URI for LIS protocol
   */
   */
+65 −1
Original line number Original line Diff line number Diff line
@@ -89,7 +89,7 @@ module AtsESRP_TestCases {
  import from LibSip_Steps all;
  import from LibSip_Steps all;
  import from LibSip_Templates all;
  import from LibSip_Templates all;
  import from LibSip_Interface all;
  import from LibSip_Interface all;

  import from LibNg112_SubscriptionPayloads all;
  // LibIms
  // LibIms
  import from LibIms_SIPTypesAndValues all;
  import from LibIms_SIPTypesAndValues all;
  import from LibIms_Steps all;
  import from LibIms_Steps all;
@@ -569,6 +569,11 @@ module AtsESRP_TestCases {
  group QueueState {
  group QueueState {
    testcase TC_ESRP_QUEUE_STATE_BV_01() runs on HttpSipComponent system TestAdapter {
    testcase TC_ESRP_QUEUE_STATE_BV_01() runs on HttpSipComponent system TestAdapter {
      
      
      // Test control
      f_check_statements({
        { name := "PICS_ESRP_QUEUE_STATE_SUPPORT", val := PICS_ESRP_QUEUE_STATE_SUPPORT }
      })

      f_cf_01_up()
      f_cf_01_up()


      // Initialize
      // Initialize
@@ -591,11 +596,70 @@ module AtsESRP_TestCases {
      f_sendSubscribeQueueStateResponse();
      f_sendSubscribeQueueStateResponse();




      f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);            
      f_cf_01_down()
    }

    testcase TC_ESRP_QUEUE_STATE_BV_02() runs on HttpSipComponent system TestAdapter {

      // Test control
      f_check_statements({
        { name := "PICS_ESRP_QUEUE_STATE_SUPPORT", val := PICS_ESRP_QUEUE_STATE_SUPPORT }
      })

      f_cf_01_up()

      // Initialize
      f_init_userprofile(c_userProfile_ESINetPSAP);        
      f_init_interfaceprofile(c_interfaceProfile_SUT_ESRP);        
      // f_IMS_preamble_woRegistration(p_cSeq_s);

      // Preamble      
      // TODO: Comment back in, once the encoding notify payload issue is resolved
      /*
      f_sendDequeueRegistration(
                                m_dequeue_registration_request(
                                                                PX_ESRP_DEQUEUE_REGISTRATION_QUEUE,
                                                                PX_ESRP_DEQUEUE_REGISTRATION_DEQUEUER,
                                                                PX_ESRP_DEQUEUE_REGISTRATION_EXPIRATION,
                                                                PX_ESRP_DEQUEUE_REGISTRATION_PREFERENCE
                                                              )
      );
      f_awaitingDequeueRegistrationResponse(mw_dequeue_response_ok)            
      */
      f_awaitingSubscribeQueueState();
      f_sendSubscribeQueueStateResponse();

      f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);

      // Test Body
      
      var QueueStatePayload state := {
        QueueStateEventUri := PX_ESRP_DEQUEUE_REGISTRATION_QUEUE,
        QueueStateEventQueueLength := 5,
        QueueStateEventMaxLength := 20,
        QueueStateValuesCode := "active"
      }
      
      var charstring json := oct2char(unichar2oct(encvalue_unichar(valueof(state))));

      f_SendNOTIFY(m_NOTIFY_QueueState(
        vc_requestUri, vc_callId ,vc_cSeq, vc_from, vc_to, vc_via, { textplain := json }
      ));
      
      f_awaitingOkResponse(vc_cSeq);

      // Verify Response


      f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);            
      f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);            
      f_cf_01_down()
      f_cf_01_down()
    }    
    }    
  }
  }



  

  group Common {
  group Common {
      //
      //
      function f_TC_ESRP_SIP_INVITE_Upstream(
      function f_TC_ESRP_SIP_INVITE_Upstream(
+1 −1
Original line number Original line Diff line number Diff line
@@ -19,7 +19,7 @@ module AtsESRP_TestControl {
    }
    }




    execute(TC_ESRP_QUEUE_STATE_BV_01());
    execute(TC_ESRP_QUEUE_STATE_BV_02());


  } // End of 'control' statement
  } // End of 'control' statement


+20 −0
Original line number Original line Diff line number Diff line
@@ -768,6 +768,8 @@ module LibSip_Templates {


        template(value) Event m_Event_cdiv modifies m_Event_base := {eventType := "comm-div-info"}
        template(value) Event m_Event_cdiv modifies m_Event_base := {eventType := "comm-div-info"}


        template(value) Event m_Event_QueueState modifies m_Event_base := {eventType := "emergency-QueueState"}

        template(value) Event m_Event_mcid := m_Event_cdiv;
        template(value) Event m_Event_mcid := m_Event_cdiv;


        template(value) Expires m_Expires_base := {
        template(value) Expires m_Expires_base := {
@@ -2623,6 +2625,24 @@ module LibSip_Templates {
                    }
                    }
                }
                }


                template(value) NOTIFY_Request m_NOTIFY_QueueState(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) MessageBody p_messageBody,
                    template(omit) Contact p_contact := omit
                ) modifies m_NOTIFY_Request_Base := {
                    msgHeader := {
                        contact := p_contact,
                        event := m_Event_QueueState,
                        subscriptionState := m_SubscriptionState_active
                    },
                    messageBody := p_messageBody
                }                

// FIXME STF549: : Titan error: Restriction on template definition does not allow usage of any value
// FIXME STF549: : Titan error: Restriction on template definition does not allow usage of any value


//                template(omit) NOTIFY_Request m_NOTIFY_Request_sipfrag(
//                template(omit) NOTIFY_Request m_NOTIFY_Request_sipfrag(