Vertical Service Code processing is split between detection logic and processing logic.
Vertical Service Code detection
VerticalServiceCode feature detects vertical service codes in the dial string, optionally removes them from the SIP Request, and sets the session so subsequent features can give effect to the service code.
Operators will normally only need to assign specific service codes and associated announcements in VerticalServiceCodes
’s addressList entries.
Vertical Service Code processing
The following features are designed to have at least some of their functionality triggered by VerticalServiceCode
feature.
These features provide one or more pre-defined VerticalServiceCode_Action profiles which are assigned to operator specific short codes in VerticalServiceCode
’s addressList entries.
Feature | Description | VSC Triggers |
---|---|---|
updates the Request URI of a SIP INVITE, based on the location of the calling party and the dialled number |
|
|
performs a list of predefined HTTP PUT operations to update subscriber data in an XCAP server. |
|
|
implements the Originating Identification Restriction (OIR) service |
|
Supplied Vertical Service Code Actions
Sentinel Volte ships with the following predefined VSC Actions. These cover the VSC use cases within the Sentinel Volte feature set.
Unresolved directive in <stdin> - include::VerticalServiceCodeActionsTable.txt[]
Supplied XCAP Update Action Assumptions
Many of the above VSC actions use the XCAP data Update feature to update subscriber data. The XCAP Data Update feature provides predefined actions to update portions of the user’s XCAP document. Those actions assume the subscriber’s user document has at least the following elements. If the user document has a different structure the XCAP Data Update feature’s corresponding predefined Action will need modification. If the user document has portions missing the provisioning system will need to provide them before the corresponding VSC Action can be assigned to a service code.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<simservs xmlns:ocp="urn:oma:xml:xdm:common-policy" xmlns:cp="urn:ietf:params:xml:ns:common-policy" xmlns="http://uri.etsi.org/ngn/params/xml/simservs/xcap">
<originating-identity-presentation active="true"/>
<originating-identity-presentation-restriction active="true">
<default-behaviour>presentation-not-restricted</default-behaviour>
</originating-identity-presentation-restriction>
<communication-diversion active="false">
<NoReplyTimer>60</NoReplyTimer>
<cp:ruleset>
<cp:rule id="call-diversion-busy">
<cp:conditions>
<rule-deactivated/>
<busy/>
</cp:conditions>
<cp:actions>
<forward-to>
<target/>
</forward-to>
</cp:actions>
</cp:rule>
<cp:rule id="call-diversion-unconditional">
<cp:conditions>
<rule-deactivated/>
</cp:conditions>
<cp:actions>
<forward-to>
<target/>
</forward-to>
</cp:actions>
</cp:rule>
<cp:rule id="call-diversion-no-reply">
<cp:conditions>
<rule-deactivated/>
<no-answer/>
</cp:conditions>
<cp:actions>
<forward-to>
<target/>
</forward-to>
</cp:actions>
</cp:rule>
<cp:rule id="call-diversion-not-reachable">
<cp:conditions>
<rule-deactivated/>
<not-reachable/>
</cp:conditions>
<cp:actions>
<forward-to>
<target/>
</forward-to>
</cp:actions>
</cp:rule>
<cp:rule id="call-diversion-not-logged-in">
<cp:conditions>
<rule-deactivated/>
<not-registered/>
</cp:conditions>
<cp:actions>
<forward-to>
<target/>
</forward-to>
</cp:actions>
</cp:rule>
</cp:ruleset>
</communication-diversion>
<communication-waiting active="false"/>
<terminating-identity-presentation active="true"/>
<terminating-identity-presentation-restriction active="true">
<default-behaviour>presentation-not-restricted</default-behaviour>
</terminating-identity-presentation-restriction>
<incoming-communication-barring active="false">
<cp:ruleset/>
</incoming-communication-barring>
<outgoing-communication-barring active="false">
<cp:ruleset/>
</outgoing-communication-barring>
<extensions/>
</simservs>