Rest Demo Test Suite

The REST Demonstration includes a test-suite at: test-suite.

Test suite structure

The most important files and directories in the test suite are:

test-suite/build.xml 1
test-suite/config 2
test-suite/log4j.properties 3
test-suite/scenarios 4
test-suite/target 5
  1. apache ant build file for running integration tests

  2. directory containing configuration files for interfaces and scenario simulators used in the test suite

  3. log4j properties files that dictates the logging generated by the test suite and scenario simulators. This does not have any impact on the tracing levels of Rhino (i.e the system under test)

  4. directory containing a sub-directory per test scenario

  5. directory that contains sub-directories such as results, which the output from each scenario is collated

Anatomy of a call flow scenario

The scenarios in the test suite are all contained in sub-directories of scenarios.

scenarios/call-notification/cn01001-successful-call-no-cn
scenarios/call-notification/cn01003-successful-call-direction-continue
scenarios/call-notification/cn01004-successful-call-direction-endcall
...

Each scenario directory contains up to three files:

  • scscf.scen — A scenario simulator script that defines the expected signalling between all the roles in the scenario. In the case of the REST demo, the roles include the SCSCF, Sentinel/Rhino TAS and the Call Notification server.

  • sas.yaml — the expected Service Assurance Server (SAS) event messages during the scenario

  • usage.yaml — the expected statistics that will be raised during the call flow

Note Learn more about the Scenario Simulator and Scenario Editor.

How to execute scenarios

There three methods you may follow to run scenarios:

  1. Run all tests by using the run-tests script from the root of the rest-demo installation:

    rest-demo$ ./run-tests
  2. Run all tests by using apache ant in the testsuite directory:

    rest-demo/test-suite $ ../build/bin/ant auto run-integration-tests
  3. Run a single test by using apache ant in the testsuite directory:

    rest-demo/test-suite $ ../build/bin/ant auto choose

    A file-chooser will open, which allows you to select one of the tests in the test suite to execute.
    choose test a
    choose test b

Reviewing the test logs

The outcome of each scenario appears in complementary directories in targets/results. Each scenario results directory contains up to three files:

  • stu.log — records the output from the test runner, including the messages sent/to from protocol simulators, statistics collected and sas events analysed.

  • localhost-101-rhino.log — records the output from the Rhino TAS as the scenario executes. The log will include output from the SIP SIS, Rhino, the call notification resource adaptor and the Sentinel-SIP service.

  • sas-sim.log — records output from the SAS simulator, which includes details of all marker and event messages received from Rhino whilst the scenario executes.

Scenarios

Each scenario may include the following roles:

  • SCSCF — SIP signalling between the SCSCF and a SIP AS, which in this case is Sentinel SIP on the Rhino TAS

  • MRF — SIP signalling between the Rhino TAS and a MRF (for announcements)

  • Sentinel — Sentinel SIP running on the Rhino TAS, including the REST Demo features and the REST Demo call notification resource adaptor.

  • CN-Server — HTTP signalling between Sentinel and an external Call Notification server. The CN server responds to call notification direction and event REST requests and answers with call notification direction and event REST responses.

Note

Some SIP signalling, such as reliable provisional responses, have been omitted from the following call flow diagrams for the sake of brevity.

Baseline scenario with no call notification

cn01001-successful-call-no-cn

This scenario is a simple SIP call with no interaction with the Call Notification server. The scenario demonstrates the standard SIP call flow for a successful call between two parties.

cn01001 successful call no cn 1
cn01001 successful call no cn 2
cn01001 successful call no cn 3

Action during call setup

The focus of these scenarios is the call notification direction request generated on the initial SIP INVITE. In each scenario, the Call Notification server responds with instructions to influence subsequent processing of the call.

cn01003-successful-call-direction-continue

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

Called party answers

…​ sends a Call Notification Event request to the Call Notification server.

Calling party ends the call

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

On the CN server response

…​ sends a Call Notification Event request to the Call Notification server.

cn01003 successful call direction continue 1
cn01003 successful call direction continue 2
cn01003 successful call direction continue 3

cn01004-successful-call-direction-endcall

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ENDCALL.

On the CN server response

…​ rejects the call by sending a 403 error response to the calling party and sends a Call Notification Event - Disconnected request to the Call Notification server.

cn01004 successful call direction endcall

cn01005-successful-call-direction-route

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ROUTE and routingAddress of tel:34600009901 so Sentinel directs the call to the alternate destination.

Called party answers

…​ sends a Call Notification Event request to the Call Notification server.

Calling party ends the call

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

On the CN server response

…​ sends a Call Notification Event request to the Call Notification server.

cn01005 successful call direction route 1
cn01005 successful call direction route 2
cn01005 successful call direction route 3

cn01009-successful-call-direction-number-translation

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ROUTE and routingAddress of tel:34600009901 so Sentinel directs the call to the alternate destination.

Called party answers

…​ sends a Call Notification Event request to the Call Notification server.

Calling party ends the call

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

On the CN server response

…​ sends a Call Notification Event request to the Call Notification server.

cn01009 successful call direction number translation 1
cn01009 successful call direction number translation 2
cn01009 successful call direction number translation 3

cn01010-successful-call-direction-endcall-with-announcement

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ENDCALL and announcementId of 15.

On the CN server response

…​ plays announcement (id=15) to the calling party by creating an outgoing dialog to the MRF

The announcement ends

…​ rejects the call by sending a 403 error response to the calling party and sends a Call Notification Event - Disconnected request to the Call Notification server.

cn01010 successful call direction endcall with announcement

Action based on response of the called party

The focus of these scenarios is the call notification direction request generated when the called party fails to respond. In each scenario, the Call Notification server responds with instructions to ROUTE the call to an alternate destination.

cn01006-successful-call-forward-on-busy

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

Called party is busy

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ROUTE and routingAddress of tel:34600009901.

On the CN server response

…​ directs the call to the alternate destination (tel:34600009901)

Called party answers

…​ sends a Call Notification Event request to the Call Notification server.

Calling party ends the call

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

On the CN server response

…​ sends a Call Notification Event request to the Call Notification server.

cn01006 successful call forward on busy 1
cn01006 successful call forward on busy 2
cn01006 successful call forward on busy 3
cn01006 successful call forward on busy 4
cn01006 successful call forward on busy 5

cn01007-successful-call-forward-on-no-answer

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

Called party does not answer

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ROUTE and routingAddress of tel:34600009901.

On the CN server response

…​ directs the call to the alternate destination (tel:34600009901)

Called party answers

…​ sends a Call Notification Event request to the Call Notification server.

Calling party ends the call

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

Called party is notified the call is ended

…​ sends a Call Notification Event request to the Call Notification server.

cn01007 successful call forward on no answer 1
cn01007 successful call forward on no answer 2
cn01007 successful call forward on no answer 3
cn01007 successful call forward on no answer 4
cn01007 successful call forward on no answer 5

cn01008-successful-call-forward-on-rsf

Point in session Sentinel …​

On the initial INVITE

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

Called party cannot be reached

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of ROUTE and routingAddress of tel:34600009901.

On the CN server response

…​ directs the call to the alternate destination (tel:34600009901)

Called party answers

…​ sends a Call Notification Event request to the Call Notification server.

Calling party ends the call

…​ sends a Call Notification Direction request to the Call Notification server.

The CN server responds with an actionToPerform of CONTINUE.

Called party is notified the call is ended

…​ sends a Call Notification Event request to the Call Notification server.

cn01008 successful call forward on rsf 1
cn01008 successful call forward on rsf 2
cn01008 successful call forward on rsf 3
cn01008 successful call forward on rsf 4
cn01008 successful call forward on rsf 5

Previous page