Anchor | ||||
---|---|---|---|---|
|
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
|
...
Additional section:
|
...
Panel | ||||||
---|---|---|---|---|---|---|
|
Info | ||
---|---|---|
| ||
Related articles: |
Info | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
The instructions, commands and references in this document apply to the
This document does not apply to SBC Edge (SBC 1000 and 2000 systems). |
Pagebreak |
---|
This document provides configuration and provisioning guidance to enable SIP transparency on
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
This document is intended for design engineers, system engineers and operations staff for the purpose of deploying SIP on a
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
This document describes configuration procedures related to version 4.2 of the
Spacevars | ||
---|---|---|
|
Note |
---|
This document does not apply to SBC Edge (SBC 1000 and 2000 systems). |
Noprint |
---|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
For some SIP elements, transparency is a frequently-debated topic. When transparency for a SIP header or body is desired, the user may often compare the element against a SIP Proxy which is a typical benchmark for significant transparency. Considered a popular comparison, this topic needs to addressed up front when discussing SIP transparency.
The SIP devices that connect most peers and endpoints are typically a SIP Proxy or Back-to-Back User Agent (B2BUA). The most transparent device is the SIP Proxy; its behaviors are primarily specified in RFC 3261 and are very basic in its message processing capabilities. The required transparency of a Proxy is one of its few strengths when compared to a B2BUA.
Caption | ||||
---|---|---|---|---|
| ||||
Although an
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
While RFC 3261 goes into detail describing the required behavior of a SIP Proxy, its description for a B2BUA could be considered somewhat terse: "Since it is a concatenation of a UAC [User Agent Client] and UAS [User Agent Server], no explicit definitions are needed for its behavior." This statement notwithstanding, debate and research into the transparency behavior of a B2BUA continued, but seemingly without consensus. An often referenced IETF draft (draft-marjou-sipping-01) submitted to the SIPPING WG was not accepted as a working group document.
Admittedly, complete SIP transparency is not achievable due to the needs and requirements of changing some headers. Even a SIP Proxy is not completely transparent. In many scenarios the ability to control and even minimize transparency is a strength of a B2BUA/
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Fundamentally, the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
This document describes the
Spacevars | ||
---|---|---|
|
Noprint |
---|
Spacevars | ||
---|---|---|
|
Since its inception, the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Prior to release 4.0, SIP header and body transparency was controlled primarily by the use of individual Transparency Flags, mostly within the IP Signaling Profile (IPSP; ipSignalingProfile > commonIpAttributes > transparencyFlags) and apply on the egress leg of a session (egress relative to the SIP message).
Caption | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
Noprint |
---|
If a header or body did not have a specific flag on the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
When a transparency flag was added for a header, it meant that the header was now known and that the unknownHeader flag no longer controlled it.
This methodology was problematic as headers transitioned from unknown to known on the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Starting in version 4.0, the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
A Transparency Profile is a user-configurable profile allowing the user to transparently pass almost any SIP header/body through the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Both already-known and previously-unknown SIP headers and bodies can be configured in a Transparency Profile. By default, no headers or message bodies are present in a Transparency Profile. Up to 256 unique Transparency Profiles can be created on the
Spacevars | ||
---|---|---|
|
When a header or body is specified in a Transparency Profile, the profile will take precedence over any applicable Transparency Flag. For headers not specified in a transparency profile, the setting of existing Transparency Flags will continue to determine the transparency of that header. In this way, a Transparency Profile can either override or augment existing Transparency Flag settings. This document will describe some usage scenarios where both mechanisms may be used together.
When configuring a Transparency Profile for specific SIP headers,
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Info |
---|
For additional details, |
...
see Transparency Profile. |
Noprint |
---|
Starting in version 4.0, the
Spacevars | ||
---|---|---|
|
Code Block | ||
---|---|---|
| ||
set profiles services transparencyProfile <profile> sipHeader <SIP Header> |
where <SIP Header>
is case insensitive, supports up to 31 characters, and supports an "all" entry to match all headers (see section 3.3 for exceptions).
The ability to exclude specific headers from transparency is primarily intended for use in conjunction with the "all" header option.
SIP headers are also configurable using compact form. When configuring specific headers in a Transparency Profile,
Spacevars | ||
---|---|---|
|
Info |
---|
See IANA for the SIP header fields and their compact forms at: +http://www.iana.org/assignments/sip-parameters/sip-parameters.xhtml+ |
Compact form can be received by the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
The
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
The following SIP headers are not controlled by the Transparency Profile (or any Transparency Flags), and are ignored if configured in a
...
Transparency Profile:
If Contact Header is specified in a Transparency Profile, then it is treated as full Contact transparency and it will take precedence over other Contact related flags (such as useZoneLevelDomainNameInContact).
Noprint |
---|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Code Block | ||
---|---|---|
| ||
set profiles services transparencyProfile <profile> sipMessageBody <Content-Type> |
where <Content-Type>
is case insensitive, supports up to 127 characters, and supports an "all" entry to match all message bodies except those described in the below list.
The following Content-Types are not controlled by the Transparency Profile and are ignored if configured in a profile:
Multipart/mixed and multipart/related are ignored because the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
A Transparency Profile cannot control the SDP (application/sdp). The SDP and its controls will be discussed later in this document.
The other exceptions are due to existing Relay Flags (see table below) elsewhere within the
Spacevars | ||
---|---|---|
|
Caption | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
See
...
Relay Flags below for details.
Noprint |
---|
Spacevars | ||
---|---|---|
|
...
Spacevars | ||
---|---|---|
|
The following SIP methods are not supported by a Transparency Profile (or any Transparency Flags):
...
Spacevars | ||
---|---|---|
|
The following SIP headers are not supported by a Transparency Profile (or any Transparency
...
flags):
Allow
Call-ID
CSeq
Max-Forwards
Require
RSeq
These SIP headers are entirely added and/or modified by the
Spacevars | ||
---|---|---|
|
Option tags/methods of the following SIP headers can be transparently passed or blocked by configuring the SIP Param Filter Profile.
Info |
---|
For configuration details, see: |
Noprint |
---|
...
Some header behaviors vary depending on whether they are received in or out of an existing dialog. While the Transparency Profile has been extended in 4.2 to apply to out-of-dialog messages, there are some specific headers whose behavior is not under the control of a Transparency Profile (or Transparency Flags) when received in out-of-dialog messages.
A Dialog "represents a peer-to-peer SIP relationship between two user agents that persists for some time. The dialog facilitates sequencing of messages between the user agents and proper routing of requests between both of them. The dialog represents a context in which to interpret SIP messages." (reference: RFC 3261)
The
Spacevars | ||
---|---|---|
|
Out-of-Dialog header behavior irrespective of the Transparency Profile or Flags:
Caption | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Noprint |
---|
Pagebreak |
---|
The
Spacevars | ||
---|---|---|
|
For all the above mentioned media types (with the exception of Audio), the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
For Audio, the
Spacevars | ||
---|---|---|
|
You must enable Video (assign a valid video bandwidth) and Audio transparency to achieve the above described behavior using the below CLI syntax.
Note |
---|
Associate the following configuration with both Trunk Groups. |
Code Block | ||
---|---|---|
| ||
% set profiles media packetServiceProfile <packetServiceProfileName> packetToPacketControl transcode transcoderFreeTransparency
% set addressContext <addressContextName> zone <zoneName> sipTrunkGroup <trunkGroupName> media sdpAttributesSelectiveRelay enabled
% set addressContext <addressContextName> zone <zoneName> sipTrunkGroup <trunkGroupName> media lateMediaSupport passthru |
Noprint |
---|
Spacevars | ||
---|---|---|
|
The following diagram illustrates the media flow for an SRTP pass-through call.
Caption | ||||
---|---|---|---|---|
| ||||
Note |
---|
|
To control this SRTP media pass-through, a new allowPassthru
flag is introduced to the secureRtpRtcp
of PSP. When allowPassthru
flag is enabled along with the security enableSrtp
flag, it allows SBC topass-through SRTPmedia without authenticating, decrypting, and encrypting it internally. When selected, this flag prioritizes SRTP pass-through media over terminated SRTP media. When disabled, this flag terminates all SRTP and SRTCP media for authentication, encryption, or decryption. This flag is disabled by default.
Make note that the sdpTransparencyState
signaling object within the SIP Trunk Group should not be considered a general use parameter. It is specific to some functionality (mainly ICE) and environments; however, this flag does not apply to all types of call flows.
Note | ||||
---|---|---|---|---|
Do not enable the sdpTransparencyState flag unless specifically directed to do so by
|
Anchor | ||||
---|---|---|---|---|
|
Relay Flags exist mostly within the IP Signaling Profile (IPSP; ipSignalingProfile > commonIpAttributes > relayFlags) and apply on the ingress leg of a session (ingress relative to the SIP message).
Relay Flags are intended mainly for SIP Methods (Requests) and Responses (and some SIP message bodies) that normally get consumed or modified by the
Spacevars | ||
---|---|---|
|
Albeit imprecise, a good method to contrast Relay Flags and Transparency Flags/Profiles is to consider that Relay controls whether a SIP request/response is sent through the
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Caption | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||
|
Spacevars | ||
---|---|---|
|
refer
relay flag is disabled. To support this enhancement, a new Conditional Relay Matching criteria is introduced. Using this criteria, Spacevars | ||
---|---|---|
|
If the refer
relay flag is disabled, the Call Control (CC) mechanism forwards the REFER request to Digital Signaling (DS). DS exchanges information with the PSX to check the match criteria set in Conditional Relay Matching.
The matched criteria includes call parameters such as Username, Directory Number (DN), or Fully Qualified Domain Name (FQDN).
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Note | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
If a REFER request is sent after a switchover and:
|
Note |
---|
This feature is supported only for Blind/Unattended Transfer calls and not for Attended Transfer (refer with replaces) calls. |
Caption | ||||
---|---|---|---|---|
| ||||
Spacevars | ||
---|---|---|
|
To configure this feature, perform the following steps:
Spacevars | ||
---|---|---|
|
Create SIP_MSG_TYPE_REFER call parameter filter profile (CPFP) in the PSX. Execute the following command to view the CPFP SIP_MSG_TYPE_REFER. This profile is already present in ERE.
Info |
---|
For more information on creating CPFP, refer to PSX |
...
Code Block |
---|
> show table profiles callParameterFilterProfile
Description:
Profile used for routing based on SIP message type.
Possible completions:
SIP_MSG_TYPE_INFO - SIP Message Type is Info
SIP_MSG_TYPE_MESSAGE - SIP Message Type is Message
SIP_MSG_TYPE_NOTIFY - SIP Message Type is Notify
SIP_MSG_TYPE_REFER - SIP Message Type is Refer
SIP_MSG_TYPE_REGISTER - SIP Message Type is Register
SIP_MSG_TYPE_SUBSCRIBE - SIP Message Type is Subscribe
none - seed data for provisioning support
|
All > Profiles > Call Parameter Filter Profile
Caption | ||||
---|---|---|---|---|
| ||||
Note |
---|
A new script SONS_SIP_REFER_RELAY is seeded in both ERE and PSX. |
Disable the Refer relay flag in IPSP.
Code Block |
---|
% set profiles signaling ipSignalingProfile DEFAULT_SIP commonIpAttributes relayFlags refer disable |
Enable the Notify relay in Egress side on IPSP to relay REFER for DN/Username/FQDN match.
Code Block |
---|
% set profiles signaling ipSignalingProfile DEFAULT_SIP commonIpAttributes relayFlags notify enable |
All > Profiles > Signaling > Ip Signaling Profile > Common Ip Attributes > Relay Flags
Caption | ||||
---|---|---|---|---|
| ||||
Create a new routing label with the script SONS_SIP_REFER_RELAY to trigger process refer request feature.
Note |
---|
The routing label action must be set as script. |
Code Block |
---|
% set global callRouting routingLabel <routing_label> script SONS_SIP_REFER_RELAY action script |
All > Global > Call Routing > Routing Label
Caption | ||||
---|---|---|---|---|
| ||||
Caption | ||||
---|---|---|---|---|
| ||||
Configure a DN criteria in the standard route and attach the SIP_MSG_TYPE_REFER profile to the standard route by executing the following command:
Code Block |
---|
% set global callRouting route none Sonus_NULL Sonus_NULL standard <Matched_DN or FQDN> 1 all ALL SIP_MSG_TYPE_REFER Sonus_NULL routingLabel <routing_label> |
For DN (Directory Number) or username
Code Block |
---|
% set global callRouting route none Sonus_NULL Sonus_NULL standard <Matched_DN or Username> 1 all ALL SIP_MSG_TYPE_REFER Sonus_NULL routingLabel <routing_label> |
For FQDN with DN or username
Note | ||||
---|---|---|---|---|
The corresponding Sip domain group must be configured in
|
Code Block |
---|
% set global sipDomain <Matched_domain_name >
% set global callRouting route none Sonus_NULL Sonus_NULL standard <Matched_DN or Username> 1 all ALL SIP_MSG_TYPE_REFER <Matched_domain_name> routingLabel <routing_label>
|
All > Global > Call Routing > Route
Caption | ||||
---|---|---|---|---|
| ||||
Caption | ||||
---|---|---|---|---|
| ||||
Execute the following commands to view the call detail status and call media status.
Code Block |
---|
> show status global callDetailStatus
or
> show status global callMediaStatus
|
Noprint |
---|
Pagebreak |
---|
As discussed previously, the Transparency Profile does not deprecate any existing Transparency Flag. Those flags continue to function as designed. When a header/body is specified in a Transparency Profile, then the profile takes precedence over any applicable Transparency Flag. For headers/bodies not specified in a transparency profile, the setting of existing Transparency Flags continues to determine the transparency of that header.
When configuring a Transparency Profile for specific SIP headers,
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
Complete or maximum transparency is occasionally desired, especially during initial integration testing to determine if specific headers are required for the success of certain call flows.
Code Block | ||
---|---|---|
| ||
set profiles services transparencyProfile MAX_TRANSPARENCY sipHeader all
set profiles services transparencyProfile MAX_TRANSPARENCY sipMessageBody all
set profiles services transparencyProfile MAX_TRANSPARENCY state enabled
commit
set addressContext <AC> zone <ZONE> sipTrunkGroup <TG> services transparencyProfile MAX_TRANSPARENCY
commit |
Additional Relay Flags also need to be enabled to maximize the transparency of the Trunk Group for testing. See Relay Flags above.
Noprint |
---|
The ignoreTransparency header option within the Transparency Profile is primarily used for excluding one or more specific headers when paired with the "all" header option. In the example below, the user wishes to pass all SIP headers except for the History-Info header.
Code Block | ||
---|---|---|
| ||
set profiles services transparencyProfile ALMOST_ALL_HDRS sipHeader all
set profiles services transparencyProfile ALMOST_ALL_HDRS sipHeader History-Info ignoreTransparency yes
set profiles services transparencyProfile ALMOST_ALL_HDRS state enabled
commit
set addressContext <AC> zone <ZONE> sipTrunkGroup <TG> services transparencyProfile ALMOST_ALL_HDRS
commit |
Existing deployments will likely utilize Transparency Flags, and those that must pass proprietary or otherwise
Spacevars | ||
---|---|---|
|
While a Transparency Profile can be configured to completely overlap with any existing Transparency Flags settings, it is not required. A Transparency Profile can be configured to simply augment existing Transparency Flags settings with a more surgical configuration and allowing unknownHeader to be disabled.
For example, a user may wish to have the
Spacevars | ||
---|---|---|
|
Rather than continue to allow all unknown headers through the
Spacevars | ||
---|---|---|
|
Code Block | ||
---|---|---|
| ||
set profiles services transparencyProfile IDENTITY_HDRS sipHeader Identity
set profiles services transparencyProfile IDENTITY_HDRS sipHeader y
set profiles services transparencyProfile IDENTITY_HDRS sipHeader Identity-Info
set profiles services transparencyProfile IDENTITY_HDRS sipHeader n
set profiles services transparencyProfile IDENTITY_HDRS state enabled
commit
set addressContext <AC> zone <ZONE> sipTrunkGroup <TG> services transparencyProfile IDENTITY_HDRS
commit
set profiles signaling ipSignalingProfile <IPSP> commonIpAttributes transparencyFlags unknownHeader disable
commit |
Noprint |
---|
Spacevars | ||
---|---|---|
|
Spacevars | ||
---|---|---|
|
rtpmap
, fmtp
, and T38
fax
. Audio transparency functionality is used to manage bandwidth for audio stream in the pass-through calls. By enabling this feature, audio codecs that are unknown to the system are available to establish audio calls or streams.Spacevars | ||
---|---|---|
|
Note |
---|
This feature does not support H323-H323 and GW-GW calls. |
Audio Transparency Feature is controlled by two flags:
Bandwidth (b) lines are transparently relayed and do not play any role in calculating the unknown audio codec bandwidth. The following PSP configuration bits for Audio Transparency feature are included for Unknown audio bandwidth reservation to calculate the Unknown audio bandwidth:
unknownCodecBitRate
unknownCodecPacketSize
Note |
---|
If the bandwidth is not configured, the default settings (Packet Size—10 ms and Bit Rate—124 KB/s) are used for a pass-through call. |
By default for pass-through calls,
Spacevars | ||
---|---|---|
|
reserveBwForPreferredAudioCommonCodec
is added to reserve the bandwidth associated with the preferred common codec (instead of the worst case common codec) on the Trunk Groups and IP interfaces. When this flag is enabled, bandwidth of the first common codec from Answer (SIP) is used for reservation and bandwidth of the heaviest common codec is used for policer.Note |
---|
This flag can be used independently or in conjunction with Audio Transparency feature and/or
|
Note |
---|
The flag |
By default, for pass-through calls the
Spacevars | ||
---|---|---|
|
policeOnHeaviestAudioCodec
is introduced in PSP.Note |
---|
This flag can be used independent of or in conjunction with Audio transparency feature and/or |
Configuring the basic audio transparency feature contains:
sdpAttributesSelectiveRelay
Parameter on Both Ingress and Egress Trunk GroupstranscoderFreeTransparency
Parameter on Packet Service ProfileAnchor | ||||
---|---|---|---|---|
|
sdpAttributesSelectiveRelay
Parameter on Both Ingress and Egress Trunk GroupsCode Block | ||
---|---|---|
| ||
% set addressContext default zone ZONE1 sipTrunkGroup TG_SBX_INT media sdpAttributesSelectiveRelay enabled
% set addressContext default zone ZONE2 sipTrunkGroup TG_SBX_EXT media sdpAttributesSelectiveRelay enabled |
Anchor | ||||
---|---|---|---|---|
|
transcoderFreeTransparency
Parameter on Packet Service ProfileCode Block | ||
---|---|---|
| ||
% set profiles media packetServiceProfile PSP_INT packetToPacketControl transcode transcoderFreeTransparency
% set profiles media packetServiceProfile PSP_EXT packetToPacketControl transcode transcoderFreeTransparency |
Anchor | ||||
---|---|---|---|---|
|
Code Block | ||
---|---|---|
| ||
% set profiles media packetServiceProfile PSP_INT audioTransparency unknownCodecBitRate 124
% set profiles media packetServiceProfile PSP_EXT audioTransparency unknownCodecBitRate 124
% set profiles media packetServiceProfile PSP_INT audioTransparency unknownCodecPacketSize 10
% set profiles media packetServiceProfile PSP_EXT audioTransparency unknownCodecPacketSize 10
% set profiles media packetServiceProfile PSP_INT flags reserveBwForPreferredAudioCommonCodec enable
% set profiles media packetServiceProfile PSP_EXT flags reserveBwForPreferredAudioCommonCodec enable |
Note |
---|
For configuring Bit Rate (kbps), Packet Size (ms) and Reserve BW For Preferred Audio Common Codec for pass-through calls flags on PSX, see PSX Documentation. |
Spacevars | ||
---|---|---|
|
The SIP Param Filter Profile includes the following characteristics:
Info |
---|
The SBC supports configuring up to 32 SIP Param Filter Profiles. Each profile can be configured using any/all of the SIP headers Allow/Supported/Require. |
The following table explains the SIP Param Filter Profile behavior when using the Allow, Supported and Require headers.
Caption | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Noprint |
---|
Pagebreak |
---|