You can use interceptors to inspect and manipulate the signaling between a service and the SIS, or between the SIS and the network.

This lets you:

  • blend services developed in isolation — by intercepting and changing the signaling, to ensure each can be executed correctly

  • augment the behaviour of services (in ways not imagined when the services were developed)

  • alter messages received from the network before the SIS starts processing them

  • alter messages sent by the SIS, for example to add message fields not set by the SIS.

Note
What is an interceptor?

An interceptor is a set of script elements that may modify the parameters of the messages it intercepts (or may perform some other action). Interceptor scripts are typically embedded directly within a composition. However an interceptor can also be installed as a SIS component in its own right, allowing it to be invoked by SLEE applications or other interceptors.

Below is a sample interceptor and a description of the schema syntax.

Sample interceptor

This example below shows a simple interceptor that modifies the service key of an IN InitialDP operation. Its main elements are: interceptor-name/vendor/version, which define this interceptor’s component identity; and script, which specifies the operations to perform when the interceptor is invoked.

VIA Diagram Script
simple
<interceptor xmlns="http://www.opencloud.com/SIS/Interceptor"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.opencloud.com/SIS/Interceptor sis-interceptor-1.2.xsd">

  <interceptor-name>Simple</interceptor-name>
  <interceptor-vendor>ABC</interceptor-vendor>
  <interceptor-version>1.0</interceptor-version>

  <script>
    <if>
      <present variable="${initial-dp}"/>
      <then>
        <assign toVariable="${initial-dp.service-key}" value="100"/>
      </then>
    </if>
  </script>
</interceptor>
Note Interceptors may contain conditional branches, and may also invoke interceptor extension components to perform functions that may not be possible using the scripting language.

Interceptor syntax schema

The base XML schema sis-interceptor-1.2.xsd defines the basic structure of an interceptor. SIS variants extend this base schema with protocol-specific properties.

IN interceptors

Interceptors for IN protocols may use the XML schema in-sis-interceptor-1.2.xsd to extend the generic schema for SIS interceptors. IN interceptors use the following corresponding schema namespaces:

<interceptor xmlns="http://www.opencloud.com/SIS/Interceptor"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:in="http://www.opencloud.com/SIS/Interceptor/IN"
  xsi:schemaLocation="http://www.opencloud.com/SIS/Interceptor/IN in-sis-interceptor-1.2.xsd
                      http://www.opencloud.com/SIS/Interceptor    sis-interceptor-1.2.xsd">

SIP interceptors

Interceptors for SIP may use the XML schema sip-sis-interceptor-1.2.xsd to extend the generic schema for SIS interceptors. SIP interceptors use the following corresponding schema namespaces:

<composition xmlns="http://www.opencloud.com/SIS/Interceptor"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:sip="http://www.opencloud.com/SIS/Interceptor/SIP"
  xsi:schemaLocation="http://www.opencloud.com/SIS/Interceptor/SIP sip-sis-interceptor-1.2.xsd
                      http://www.opencloud.com/SIS/Interceptor     sis-interceptor-1.2.xsd">
Previous page Next page