Trunk Group URIs
The Oracle Communications Session Border Controller’s trunk group URI feature, applicable for SIP and IWF signaling services, enables the capabilities related to trunk groups that are described in this section. This implementation follows the IPTEL draft Representing Trunk Groups in Tel/SIP Uniform Resource Identifiers (URIs) (draft-ietf-iptel-trunk-group-06.txt), and also supports more customized approaches.
- For a typical access call flow scenario, when the calling party’s call arrives at the
Oracle Communications Session Border Controller, the
Oracle Communications Session Border Controller formulates a SIP INVITE message that it sends to a softswitch. The
Oracle Communications Session Border Controller now supports a new URI contact parameter in the SIP request message so that service providers need to be able to:
- Determine from where the Oracle Communications Session Border Controller received the call
- Signal information about the originating gateway from a Oracle Communications Session Border Controller to a softswitch (e.g., an incoming trunk group or a SIP gateway to a Oracle Communications Session Border Controller)
- This feature supports the signaling of routing information to the Oracle Communications Session Border Controller from network routing elements like softswitches. This information tells the Oracle Communications Session Border Controller what egress route (or outgoing trunk groups) it should choose for terminating next hops/gateways. For this purpose, new SIP URI parameters in the Request-URI are defined. Additional URI parameters include the network context to identify the network in which the originating or terminating gateway resides.
- Especially important for large business applications, this feature can free Oracle Communications Session Border Controller resources by reducing the number of local policy, session agent, and session agent group configurations. By enabling the trunk group URI feature, the Oracle Communications Session Border Controller instead uses a routing scheme based on signaled SIP URI information.
Terminology
The following IPTEL terms are used in the descriptions of and instructions for how to configure this feature:
- Trunk—In a network, a communication path connecting two switching systems used in the establishment of an end-to-end connection; in selected applications, it may have both its terminations in the same switching system
- Trunk group—A set of trunks, traffic engineered as a unit, for the establishment of connections within or between switching systems in which all of the paths are interchangeable except where sub-grouped
- Trunk group name—Provides a unique identifier of the trunk group; referred to as tgrp
- Trunk group context—Imposes a namespace by specifying a domain where the trunk groups are; also referred to simply as context
Trunk Group URI Parameters
Trunk group URI parameters identify originating and terminating trunk group information in SIP requests.
In the absence of official SIP standards for transporting trunk groups between signaling elements, the Oracle Communications Session Border Controller allows you to define URI parameters for use with originating and terminating trunk group URIs.
Originating Trunk Group URI Parameters and Formats
You can configure session agents and session agents groups on the Oracle Communications Session Border Controller to insert trunk group URI parameters in the SIP contact header. When SIP gateways comply with the IPTEL draft, they include the originating URI parameter in the SIP contact header. For those SIP and H.323 gateways that are not compliant, the Oracle Communications Session Border Controller inserts SIP trunk group URI parameters on the gateway’s behalf.
When there are no applicable session agent or session agent group configurations, the Oracle Communications Session Border Controller uses the source IP address of the endpoint or gateway as the trunk group name (tgrp) parameter in the originating trunk group URI.
The following diagram shows a scenario where the Oracle Communications Session Border Controller inserts originating trunk group URI parameters.

There are two available formats for the originating trunk group URIs:
- In compliance with
the IPTEL draft, the first format has two parameters: tgrp (identifier of the
specific trunk group) and trunk-context (defines the network domain of the
trunk group). These appear in the following formats:
-
tgrp=”trunk group name”
-
trunk-context=”network domain”
The URI BNF for would appear as it does in the example directly below, where the tgrp is tg55 and the trunk-context is trunk-context is telco.example.com:
tel:+15555551212;tgrp=tg55;trunk-context=telco.example.com
-
- The second format
is customized specifically for access URIs and contains two provisioned
parameters: tgrp (or tgname) and context (or provstring). This appears as
tgrp.context, where these definitions apply:
-
tgrp (tgname)—Provisioned trunk group name for the originating session agent; this value must have at least one alphabetical character, cannot contain a period (.), and can contain a hyphen (-) but not as the first or the last character
-
context (provstring)—Name of the originating trunk group context; this value must have at least one alphabetical character in the top label
This format conforms to format for a hostname in the SIP URI as specified in RFC 3261, such that a trunk group identifier would appear as:
custsite2NY-00020.type2.voip.carrier.net
where the tgrp is custsite2NY-00020, and the context is type2.voip.carrier.net.
The BNF for an access URI conforms to the following:
SIP-URI = "sip:" [userinfo ] hostport uri-parameters [headers ]
uri-parameters = *( ";" uri-parameter )
uri-parameter = transport-param / user-param / method-param
/ ttl-param / maddr-param / lr-param / other-param
other-param = accessid / pname [ '=' pvalue ] accessid = "access=" accessURI accessURI = scheme tgname ["." provstring] scheme = "sip:" / token tgname = ALPHA / *(alphanum) ALPHA *(alphanum / "-") alphanum / alphanum *(alphanum / "-") ALPHA *(alphanum) # up to 23 characters provstring = *(domain ".") toplabel # up to 24 characters toplabel = ALPHA / ALPHA *( alphanum / "-" ) alphanum domain = alphanum/ alphanum *( alphanum / "-" ) alphanum
-
Terminating Trunk Group URI Parameters and Formats
Terminating trunk group URI parameters appear in the R-URI, and they can be included in by a network routing element to instruct the Oracle Communications Session Border Controller which egress trunk groups to use. By matching the trunk group URI parameter with configured session agents or session agent groups, the Oracle Communications Session Border Controller can locate the terminating gateway. The trunk group name can also be expressed as the IP address of the terminating gateway.

In the absence of official SIP standards for transporting trunk groups between signaling elements, the Oracle Communications Session Border Controller allows you to define the URI parameters used in terminating trunk groups.
There are two available formats for the terminating trunk group URIs:
- In compliance with
the IPTEL draft, the first format has two parameters: tgrp (which can be either
a trunk group name or an IP address) and trunk-context (defines the network
domain of the trunk group). These appear in the following formats:
-
tgrp=”trunk group name”
-
trunk-context=”network domain”
An example R-URI with terminating trunk group parameters appears as follows, where the tgrp is TG2-1 and the context is isp.example.net@egwy.isp.example.net:
INVITE sip:+15555551212;tgrp=TG2-1;trunk-context=isp.example.net@egwy.isp.example.net SIP/2.0
-
- The second format
is customized specifically for egress URIs and contains two provisioned
parameters: tgrp (or tgname) and context (or tgdomain). This appears as
tgrp.context (or tgname.tgdomain), where definitions apply:
-
tgrp (tgname)—Provisioned trunk group name for the originating session agent; this value must have at least one alphabetical character, cannot contain a period (.), and can contain a hyphen (-) but not as the first or the last character
-
context (tgdomain)—Name of the terminating trunk group context; this value can be up to twenty-four characters
The use of multiple terminating trunk groups is not supported.
The BNF for a single, egress URI with trunk group information conforms to:
SIP-URI = "sip:" [userinfo ] hostport uri-parameters [headers ] uri-parameters = *( ";" uri-parameter ) uri-parameter = transport-param / user-param / method-param / ttl-param / maddr-param / lr-param / other-param other-param = egressid / pname [ '=' pvalue ] egressid = "egress=" egressURI egressURI = scheme tgname ["." tgdomain] scheme = "sip:" / token tgname = ALPHA / *(alphanum) ALPHA *(alphanum / "-") alphanum / alphanum *(alphanum / "-") ALPHA *(alphanum) # up to 23 characters tgdomain = *(domain ".") toplabel # up to 24 characters toplabel = ALPHA / ALPHA *( alphanum / "-" ) alphanum domain = alphanum/ alphanum *( alphanum / "-" ) alphanum
For all trunk group URI support, you must set the appropriate parameters in the SIP manipulations configuration and in the session agent or session agent group configurations.
In the originating trunk group URI scenario, a call arrives at the Oracle Communications Session Border Controller from a configured session agent or session agent group. If this session agent or session agent group has the appropriate trunk group URI parameters and inbound manipulation rules configured, the Oracle Communications Session Border Controller then looks to the SIP manipulations configuration and add the trunk group URI information according to those rules. Those rules tell the Oracle Communications Session Border Controller where and how to insert the trunk group URI information, and the system forwards the call.
In the terminating trunk group scenario, a call arrives at the Oracle Communications Session Border Controller from, for instance, a call agent. This call contains information about what trunk group to use. If the information matches a session agent or session agent group that has outbound manipulation rules configured, the Oracle Communications Session Border Controller will then look up the SIP manipulations configuration and strip information according to those rules. Those rules tell the Oracle Communications Session Border Controller where and how to remove the information, and the Oracle Communications Session Border Controller forwards the call.
-
Trunk Group Signaling Parameters
The Oracle Communications Session Border Controller supports a dynamic reading of the initial INVITE message of the session Contact header and Request URI tag parameter. This facilitates populating the Trunk Group and Trunk Context parameters into the existing AVPs.
For Ingress messages, if the trunk-group and the trunk-context parameters are configured in the session agent and the realm-configuration respectively, the Oracle Communications Session Border Controller populates these values in the Acme-Originating-Trunk-Group and the Acme-Originating Trunk-Context AVPs of the START/INTERMIDIATE/STOP accounting records. Similarly for an Egress session, if the trunk-group and the trunk-context parameters are configured in the session agent and the realm-configuration respectively, the Oracle Communications Session Border Controller populates these values in the Acme-Terminating-Trunk-Group and the Acme-Terminating-Trunk-Context AVPs of the START/INTERIM/STOP accounting records.
The following diagram shows the functional architecture of a typical access call flow scenario with Trunk Group and Trunk-Context parameters

The received SIP signaling URI trunk group parameters can be populated into the accounting AVP parameters for ingress and egress legs by adding the populate-signaling-tgrp option in the session-agent.
ORACLE#(session-agent) options +populate-signaling-tgrp
In the absence of the trunk-group and trunk-context parameters from the session-agent and realm-configuration respectively of the Ingress Session, if the session-agent is configured with the option populate-signaling-tgrp, the Oracle Communications Session Border Controller will decode the tgrp and trunk-context parameters received in the initial INVITE message 'Contact header' of the session and cache these values for the session duration. SBC will then populate these received parameter values in Acme-Originating-Trunk-Group and Acme-Originating-Trunk-Context AVPs of START/INTERMEDIATE/STOP accounting records. Similarly for the egress session, the SBC will decode the tgrp and trunk-context parameters received in first INVITE message 'Request-URI' of the session and cache these values for the session duration. SBC will then populate these received parameter values in Acme-Terminating-Trunk-Group and Acme-Terminating-Trunk-Context AVPs of START/INTERIM/STOP accounting records.
Oracle Communications Session Border Controller will cache and populate only if both tgrp and trunk-context and present in the Contact header. In the absence of even one of the parameters the system will discard the received parameter and will not populate the parameter to the corresponding AVP.
SIP Header and Parameter Manipulation
SIP header and parameter manipulation is its own configuration where you can set up rules for the addition, removal, and modification of a SIP header or the elements of a SIP header. For example, you can set up the configuration to add a URI parameter to the URI in a SIP header or replace an FQDN with in IP address. For trunk group URI support, this configuration tells the Oracle Communications Session Border Controller where and how to manipulate the SIP message to use originating (access) and terminating (egress) trunk group URI parameters.
These manipulations can be applied at the realm or at the session agent level.
Trunk Group Routing
You can configure SIP interfaces (using the ACLI term-tgrp-mode parameter) to perform routing based on the trunk group information received in SIP requests. There are three options: none, IPTEL, and egress URI.
- If you leave this parameter set to none (its default), the Oracle Communications Session Border Controller will not look for or route based on terminating trunk group URI parameters
- When you set this parameter to either
iptel or
egress-uri and the incoming request has the trunk group parameter of this type (IPTEL or egress URI), the
Oracle Communications Session Border Controller will select the egress next hop by matching the “tgrp” and trunk context with a configured session agent or session agent group.
If the received terminating trunk group URI parameters include an IP address, the egress next hop is the IP address specified. The Oracle Communications Session Border Controller determines the egress realm by matching the trunk context it receives with the trunk context you configure for the realm.
- If the incoming request does not have trunk group parameters or it does not have trunk group parameters of the type that you configure, the Oracle Communications Session Border Controller uses provisioned procedures and/or local policy for egress call routing.
The Oracle Communications Session Border Controller returns errors in these cases:
- If the terminating trunk group URI parameters do not identify a local Oracle Communications Session Border Controller session agent or session agent group, then the Oracle Communications Session Border Controller returns a SIP final response of 488 Not Acceptable Here.
- If the Oracle Communications Session Border Controller receives a SIP INVITE with terminating trunk group URI parameters that do not match the specified syntax, the Oracle Communications Session Border Controller returns a 400 final response with the reason phrase Bad Egress=Parameters.
Trunk Group URIs and SIP Registration Caching
For calls where SIP registration caching is used, you will need to set certain parameters that enable the Oracle Communications Session Border Controller to preserve trunk group URI parameters on the outgoing side.
- For SIP-SIP calls, you set the preserve-user-info option in the SIP interface configuration.
- For SIP-H.323 calls requiring IWF, you set the preserve-user-info-sa option in the session agent configuration.
Trunk Group URI Configuration
Before you configure your Oracle Communications Session Border Controller to support trunk group URIs, you need to determine:
- How you want to manipulate SIP headers (entered in the SIP header manipulations configuration)
- For terminating trunk group routing, the trunk group mode you want to use (none, IPTEL, or egress URI); this decides routing based on trunk group information
- The trunk group name and context to use entered in a session agent or session agent group configuration
- Whether you are using originating or terminating trunk group URIs (entered in the session agent configuration)
- The trunk group context for use in a realm configuration, in case the trunk group name in the session agent or session agent group does not have a context
Precedence Used for Trunk Group Configurations
The Oracle Communications Session Border Controller (SBC) can insert trunk-group/trunk-context URIs into applicable SIP messages when the upstream SIP or H.323 gateways do not. The values inserted are dependent on SBC configuration and use configuration precedence when configurations conflict.
The SBC uses the following precedence when choosing these element's trunk-group and trunk-context configuration values for routing.
- session-agent (SA)
- session-group (SAG)
- realm
Note:
Do not configure a trunk context without a trunk-group.The examples below present configurations for SA, SAG and realm and the resulting trunk group and context values to be inserted. Examples also include an explanation for the result.
Example 1 (Result—trgp1:contextg)
- SA Configuration: trunk-group tgrp1
- SAG Configuration: trunk-group tgrp2:context2
- Realm Configuration: trunk-context contextg
The SBC selects SA trunk-group value. The SA has no context, so the SBC uses the realm's context value.
Example 2 (Result—trgp1:context1)
- SA Configuration: trunk-group tgrp1:context1
- SAG Configuration: trunk-group tgrp2:context2
- Realm Configuration: trunk-context contextg
The SBC selects the SA trunk-group and context values.
Example 3 (Result—trgp2:context2)
- SA Configuration: trunk-group [null]
- SAG Configuration: trunk-group tgrp2:context2
- Realm Configuration: trunk-context contextg
The SBC selects the SAG trunk-group and context values.
Example 4 (Result—trgp2:contextg)
- SA Configuration: trunk-group [null]
- SAG Configuration: trunk-group tgrp2
- Realm Configuration: trunk-context contextg
The SBC selects the SAG trunk-group's value. The SAG has no context, so the SBC uses the realm's context value.
Example 5 (Result—none)
- SA Configuration: trunk-group [null]
- SAG Configuration: trunk-group [null]
- Realm Configuration: trunk-context contextg
The SBC has no configured trunk-group value and cannot support a context without a group.
Example 6 ( Result—ABC)
- SA Configuration: trunk-group [null]
- SAG Configuration: trunk-group ABC
- Realm Configuration: trunk-context [null]
The SBC selects the SAG trunk-group's value, and does not use a context.
Configuring SIP Manipulations
When you configure the SIP header manipulations to support trunk group URIs, take note of:
- The name of the configuration, so that you can use it when you apply the manipulations in a session agent for the inbound or outbound manipulations
- The new-value parameter, which specifies the trunk group and trunk group context that you want to manipulate; the possible values that apply to trunk group URI configurations are $TRUNK_GROUP and $TRUNK_GROUP_CONTEXT
Setting the Trunk Group URI Mode for Routing
To set the mode for routing for terminating trunk group URIs:
Configuring a Session Agent for Trunk Group URIs
In a session agent, you can configure the outbound or inbound SIP header manipulation rules to use, as well as a list of trunk group names and contexts. For the trunk group names and contexts, you can use either the IPTEL or the custom format.
To configure a session agent for trunk group URIs:
Configuring a Session Agent Group for Trunk Group URIs
In a session agent group, you can configure the outbound or inbound SIP header manipulation rules to use, as well as a list of trunk group names and contexts. For the trunk group names and contexts, you can use either the IPTEL or the custom format.
To configure a session agent group for trunk group URIs:
Setting a Trunk Group Context in a Realm
You can set trunk group contexts at the realm level, which will be used by all session agents and session agent groups if there is no context specified in their configurations.
The realm trunk group URI context accommodates the IPTEL and the custom format.
To configure a trunk group context for a realm:
Using this Feature with a SIP Interface
If you are using the trunk group URIs feature with SIP interface that has registration caching enabled, then you need to configure the preserve-user-info option for that SIP interface.
Example 1 Adding Originating Trunk Group Parameters in IPTEL Format
This ACLI sample shows you how the ACLI SIP manipulations might appear in a case where you want to add originating trunk parameters in IPTEL format.
sip-manipulation
name add_iptel
header-rule
name contact
action manipulate
match-value
msg-type any
element-rule
name tgrp
type uri-user-param
action add
match-val-type any
match-value
new-value $TRUNK_GROUP
element-rule
name trunk-context
type uri-user-param
action add
match-val-type any
match-value
new-value $TRUNK_GROUP_CONTEXT
Example 2 Adding Originating Trunk Group Parameters in Custom Format
This ACLI sample shows you how the ACLI SIP manipulations might appear in a case where you want to add originating trunk parameters in custom format.
sip-manipulation
name add_att
header-rule
name contact
action manipulate
match-value
msg-type any
element-rule
name egressURI
type uri-param
action add
match-val-type any
match-value
new-value "sip:"+$TRUNK_GROUP+"."+$TRUNK_GROUP_CONTEXT
Example 3 Removing IPTEL Trunk Group Names
This ACLI sample shows you how the ACLI SIP manipulations might appear in a case where you want to remove IPTEL trunk groups names.
sip-manipulation
name strip_iptel
header-rule
name request-uri
action manipulate
match-value
msg-type any
element-rule
name tgrp
type uri-user-param
action delete-element
match-val-type any
match-value
new-value
element-rule
name trunk-context
type uri-user-param
action delete-element
match-val-type any
match-value
new-value
Example 4 Removing Custom Trunk Group Names
This ACLI sample shows you how the ACLI SIP manipulations might appear in a case where you want to remove custom trunk groups names.
sip-manipulation
name strip_egress
header-rule
name request-uri
action manipulate
match-value
msg-type any
element-rule
name egressURI
type uri-param
action delete-element
match-val-type any
match-value
new-value