The SIS can trigger services in parallel as explained in the parallel composition script section of SIS Overview and Concepts.

However in some cases the default parallel triggering behaviour might not be sufficient. The SIS allows you to override the default behaviour by using a parallel triggering service. Below is an overview of how a parallel triggering service works with the SIS, how the SIP parallel triggering service extends the default SIS parallel triggering behaviour, and how to install the SIP parallel triggering service.

Tip This is a SIS feature for SIP.

Using a parallel triggering service

Each parallel block in a composition may optionally use a parallel triggering service. You instruct the SIS to use such a service by adding the use-service extension option to the parallel block, as shown below:

<parallel extension-options="use-service=<service-ref>">
    <invoke service="Prepay"/>
    <invoke service="Location" primary="true"/>
</parallel>

The <service-ref> argument must be a valid local service reference. The rest of the parallel block is unchanged. If the service reference refers to an external service, the SIS will ignore it and fall back to its default parallel triggering behaviour.

When the SIS evaluates a parallel block with the use-service parameter, it fires an initial event to the parallel triggering service, containing information about the services to be invoked. It is then up to the parallel triggering service to invoke the other services in parallel. The SIS waits for the outcome from the service before continuing with the rest of the composition.

The SIP parallel triggering service

The default behaviour for SIP parallel triggering is to send the initial INVITE to all services in parallel, but only the primary service will see the successful responses to the INVITE, so only the primary service stays on the call. Non-primary services receive an error response to the initial INVITE, so they will not receive any further messages on the call.

The SIS includes a parallel triggering service for SIP. This service extends the default parallel triggering behaviour by allowing all services invoked in parallel to remain on the call. When this service is used, all services receive the initial INVITE and OK response in parallel, and any mid-dialog requests are delivered to all services sequentially. The SIP parallel triggering service acts as a B2BUA to each service, maintaining dialogs to and from each service.

Warning
Restrictions

Note that:

  • The SIP parallel triggering service only supports external services. If any services inside the parallel block are local, the SIS falls back to its default behaviour.

  • Currently the service input and output interceptors of invoke statements are ignored when using a parallel triggering service.

  • Care must be taken to ensure that services invoked in parallel do not use SIP extensions that are incompatible with the other services.

Installing the service

The SIP parallel triggering service is installed by default with the SIP examples in sis/sip/<sis-version>/examples/sip, using the service reference ParallelTrigger. Below are the necessary details for installing it manually (if required).

Service information

Deployable Unit

 sis/sip/<sis-version>/du/sis-sip-parallel-trigger-service-<sis-version>.du.jar

Service Name

 ParallelTrigger

Service Vendor

 OpenCloud

Service Version

 0.1

Example sis-console commands

[Rhino@localhost (#1)] installlocaldu sis/sip/3.0.0.0/du/sis-sip-parallel-trigger-service-3.0.0.0.du.jar
installed: DeployableUnitID[url=file:sis/sip/3.0.0.0/du/sis-sip-parallel-trigger-service-3.0.0.0.du.jar]
[Rhino@localhost (#2)] activateservice name=ParallelTrigger,vendor=OpenCloud,version=0.1
Activating service ServiceID[name=ParallelTrigger,vendor=OpenCloud,version=0.1] on node(s) [101]
Service transitioned to the Active state on node 101
[Rhino@localhost (#3)] createlocalserviceref sipsis ParallelTrigger name=ParallelTrigger,vendor=OpenCloud,version=0.1
Created service reference ParallelTrigger for local SLEE service ServiceID[name=ParallelTrigger,vendor=OpenCloud,version=0.1]
Previous page
SIS Version 3.0.0