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.
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.
Restrictions
Note that:
|
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]