A SIS trigger may contain zero or more selectors, which the SIS evaluates only if the trigger condition evaluates to true. The SIS evaluates the selectors in the order they are declared in the trigger, until one of them finds a valid composition (or an extension component returns a terminate result instead). Below are descriptions of how selectors look for valid compositions by constant value, profile table lookup or extension component.

Constant value

A selector may search for a valid composition using a constant value. In this case, the trigger references and aliases the identity of the composition for the SIS to execute, and the selector’s <composition-alias-ref> element uses that alias name. For example:

VIA notation Script XML
select by name
<trigger ...>
  <trigger-name>...</trigger-name>
  <trigger-vendor>...</trigger-vendor>
  <trigger-version>...</trigger-version>
  <trigger-priority>...</trigger-priority>

  <composition-ref>
    <composition-name>O-Trigger Handling</composition-name>
    <composition-vendor>OpenCloud</composition-vendor>
    <composition-version>1.0</composition-version>
    <composition-alias>O-Trigger</composition-alias>
  </composition-ref>

  <on-condition>...</on-condition>

  <select>
    <composition-alias-ref>O-Trigger</composition-alias-ref>
  </select>
  ...
</trigger>
Warning When the SIS invokes the selector, if the SIS cannot find the composition, the selector fails and the SIS continues rule processing as if the selector did not exist.

Profile table lookup

A profile-lookup selector requests that the SIS search profiles for the identity of a composition for the SIS to execute. These selectors specify a scheme that tells the SIS which profile table contains the profiles to search, and a key that identifies which variable’s value to use to index the profile table.

The SIS performs the following searches for address or service key subscriptions:

Protocol Scheme Searches Key If found…​

IN

 address-subscriptions

address subscriptions

string variable (assumed to be a subscribable address)

…​gets from that profile the component identifier of the relevant composition provisioned for the subscription (originating, terminating, or third-party call, depending on the trigger type).

IN

 service-key-subscriptions

service key subscriptions

integer variable

SIP

 originating-address

address subscriptions

string variable (assumed to be a subscribable address)

…​returns origination composition from that subscription

SIP

 terminating-address

address subscriptions

string variable (assumed to be a subscribable address)

…​returns terminating composition from that subscription

The selector succeeds if:

  • a subscription profile is found

  • a relevant composition is provisioned

  • that composition exists.

The selector fails if:

  • the SIS cannot find a subscription profile with the specified scheme and key

  • the SIS finds a subscription profile, but without a composition provisioned for the relevant trigger type (originating, terminating, or third-party call)

  • the SIS finds a subscription profile with a composition provisioned for the trigger type, but that composition does not exist.

If the selector fails, the SIS continues rule processing as if the selector did not exist.

For example:

VIA notation Script XML
select by lookup
<trigger ...>
  <trigger-name>...</trigger-name>
  <trigger-vendor>...</trigger-vendor>
  <trigger-version>...</trigger-version>
  <trigger-priority>...</trigger-priority>

  <on-condition>...</on-condition>

  <select>
    <profile-lookup scheme="originating-address" key="${from.uri}"/>
  </select>
</trigger>

Extension component

You can invoke an extension component for a composition-selection process more complex than predefined selectors can describe. For example, you might need to interrogate an external subscription database or analyse particular initial request parameters to determine which composition to select.

In this case, the trigger references a extension component of type SCS that has previously been defined in the SIS. For example:

VIA notation Script XML
select by extension
<trigger ...>
  <trigger-name>...</trigger-name>
  <trigger-vendor>...</trigger-vendor>
  <trigger-version>...</trigger-version>
  <trigger-priority>...</trigger-priority>

  <on-condition>...</on-condition>

  <select>
    <extension>Select-via-ldap-lookup</extension>
  </select>
</trigger>

If the extension component does not respond to the selection request within a predefined (configurable) timeout period, or the extension component returns the identity of a composition that does not exist, the SIS assumes the selector failed to find a composition, and continues evaluating any remaining triggers, following the algorithm described in Triggers.

If the extension component returns an error response, trigger processing is aborted immediately with the specified error being returned to the network to terminate call handling, as if a terminate clause had been executed.

Tip Read more about SIS extensions here.
Previous page Next page