In this section:
The Transparency Profile is the recommended method of configuring transparency on the SBC Core for new deployments as well as when applying additional transparency configurations to existing deployments. Do not use IP Signaling Profile flags in these scenarios because the flags will be retired in upcoming releases. Refer to the SBC SIP Transparency Implementation Guide for additional information.
Session Description Protocol (SDP) is a set of rules defining how multimedia sessions are set up to allow all end points to effectively participate in the session.
Interactive Connectivity Establishment (ICE) is a protocol used by systems that cannot determine their own transport address as seen from the remote end, but that can provide several possible alternatives (see ICE-Lite Support below). The SDP transparency feature allows SDP and ICE media to pass through the
SDP Transparency functionality includes:
When SDP Transparency is enabled, all IP Signaling Profile SDP-related flags are overridden.
For additional audio/video support topics, refer to:
The
An endpoint perceives a 183 without SDP response as being an extra message resulting in unexpected behavior.
Endpoints that behave irregularly upon receipt of a 183 without SDP response prior to cut-through.
Two IP Signaling Profile ingress flags are available to configure the
suppress183For3xxRedirectResponse
suppress183WithoutSdp
% set profiles signaling ipSignalingProfile <SIP profile name> ingressIpAttributes flags suppress183For3xxRedirectResponsek <disable | enable> % set profiles signaling ipSignalingProfile <SIP profile name> ingressIpAttributes flags suppress183WithoutSdp <disable | enable>
The following table describes the effects of enabling/disabling these flags.
For configuration details, refer to Ingress IP Attributes - SIP - CLI or Ip Signaling Profile - Ingress Ip Attributes (EMA).
The
The
This feature is not applicable when the
Do not use deriveFromOtherLeg
when configuring H.323 or SIP trunk groups to use INVITEs with no SDPs.
sendAllAllowedCodecsForLateMediaInviteOrReInvite
flag controls the handling of audio codecs that the For pass-through calls, the
Example 1: G711 pass-through call
If a re-INVITE with no SDP is received on egress, the
Example 2: G711 to AMR transcoded call
If a re-INVITE with no SDP is received on egress, by default, the
The SBC has an existing flag for late media INVITEs or Re-INVITES to specify which codecs are included in the SDP offer, but the behavior differs based on whether the base call is a pass-through or transcoded call. For pass-through calls the codecs offered do not include those supported for transcoding. For certain scenarios the originator of the INVITE/Re-INVITE must know the full capabilities even for a pass-through call. This feature addresses the pass-through case where the full set of codecs is needed.
When the sendSBCSupportedCodecsForLateMediaReInvite
flag is enabled, the SBC sends all the codecs supported on a particular leg as an SDP OFFER in the 200 OK response to a late media Re-INVITE. The OFFER sent in the 200 OK contains all the pass-through and transcodable codecs supported on that leg. This behavior is applicable only for late media Re-INVITE requests. The flag does not have any impact on late media INVITE requests.
For example, an additional codec might be needed if one of the original parties in a pass-through two-way call attempts to bridge in a third party. For both transcoded and pass-through calls, when the sendSBCSupportedCodecsForLateMediaReInvite
flag is enabled, the SBC responds in the 200 OK to a late media Re-INVITE request with the full set of codecs the SBC supports, including those available through transcoding. This flag takes precedence over the sendAllAllowedCodecsForLateMediaInviteOrReInvite
flag and the sendOnlyPreferredCodec
flag in the IP Signaling profile. The SIP trunk group media flag lateMediaSupport
must be set to convert for the behavior enabled by the sendSBCSupportedCodecsForLateMediaReInvite
flag to apply.
Refer to Common IP Attributes - SIP - CLI or Common IP Attributes - Flags (EMA) for configuration details.
The SBC supports Late Media pass-through calls over GW-GW and also, handles Late Media (offer less) re-INVITE on either side. This functionality is supported when the flag lateMediaSupport
is configured as passthru.
set addressContext <addressContex name> zone <zone name> sipTrunkGroup <sipTrunkGroup name> media lateMediaSupport passthru
When the flag lateMediaSupport
is set as passthru
, the Late Media INVITE/re-INVITE received on that leg is relayed to the other leg.
The SBC SWe Cloud does not support Late Media pass-through calls over GW-GW.
Alternative Network Address Types (ANAT) semantics for the SDP grouping framework allows the expression of alternative network addresses (e.g. different IP versions) for a particular media stream. This ability is useful in environments with both IPv4-only hosts and IPv6-only hosts.
The
Interactive Connectivity Establishment (ICE) is a protocol for Network Address Translator (NAT) traversal for multimedia sessions established with the offer/answer model. ICE uses the Session Traversal Utilities for NAT (STUN) protocol and its extension Traversal Using Relay NAT (TURN). ICE uses STUN and TURN servers to overcome network address translation issues that can occur when an endpoint is situated behind a NAT device. ICE solves the NAT issues for media streams. Support of the ICE specification is required by WebRTC (WRTC) endpoints.
The SBC is capable of acting as an ICE-Lite agent to allow the WRTC endpoints to connect to the existing VoIP network through the SBC using the DTLS-SRTP protocol. While acting as an ICE-Lite endpoint, the SBC interconnects with endpoints that have either ICE-Lite or full-ICE implementations. ICE-Lite is a lite version of the ICE protocol, which is defined to exchange media with each other. The interconnect with ICE-Lite end points is only for the purpose of IPv4 to IPv6 inter-working and no NAT traversal procedures are supported for ICE-Lite to ICE-Lite.
SBC implementation for ICE can be used with endpoints that are connected to the SBC through Ribbon WRTC gateway and also WRTC endpoints connected from a third-party WRTC Gateway thereby presenting ICE in their SDP.
As SBC is not required to act as an ICE client (it is not located behind a NAT in current deployment models), the initial support for ICE is limited to the SBC acting as an ICE-Lite endpoint.
ICE-Lite key points:
STUN message processing:
Reachable IP address: an ICE-Lite agent has a reachable public IP address and can work with other agents that use ICE and are behind the NAT.
The ICE-Lite procedure starts with the offerer discovering all the IP port where it is reachable. These are known as local “candidates”. The “candidates” can be any or all of the following:
STUN is used to discover the Server Reflexive and Peer reflexive addresses on the NAT and TURN is used to discover the Relay candidates on the TURN relay. After the local candidates are discovered, the offerer (Full ICE Agent) sends them in the session description protocol (SDP) offer to the remote endpoints. The remote end point (SBC) discovers its own local candidates (which are only host candidates) and sends in the answer SDP to the offerer.
Once the offer/answer exchange is completed, Full ICE Agent takes the role of ICE controlling agent and performs connectivity check between the candidate pairs (from local candidate to remote candidate) by sending the STUN messages. SBC acts as controlled agent and responds to the STUN requests. Based on the success/failure of the connectivity check, a candidate pair is selected by the controlling agent to exchange the media and it sends a connectivity check on the selected pair with USE-CANDIDATE attribute to let the controlled agent know about the selected pair. The connectivity check may lead to the discovery of new local candidates due to the presence of Restricted or Symmetric NAT. These local candidates are also included in the procedure and are known as “Peer Reflexive Addresses”. SBC being a controlled ICE-Lite agent cuts thru the media after receiving USE-CANDIDATE on all components of the media stream (for example, if RTP and RTCP are required for a stream then media is only cut-through when USE-CANDIDATE is received for both RTP and RTCP).
The controlling agent sends an updated offer by using the selected local candidate in the default IP port of the media line and controlled agent (SBC) respond by sending its local candidate in the default IP port of the media line to complete the ICE-Lite procedure. The Ice-lite procedure can be restarted by the Full ice agent using ICE Restart procedures, if the Media ports changed during a call.
sdpAttributesSelectiveRelay
flag must be enabled for bundling.The SDP media-level attribute, "bundle-only", is parsed and used to identify that specific media is only used if bundled, and resides within a BUNDLE group. The "bundle-only" attribute is a property attribute with no value.
The
The use of a BUNDLE group and a BUNDLE address also allows the usage of a single set of Interactive Connectivity Establishment (ICE) candidates for multiple "m=" lines.
If RTP/RTCP multiplexing is used, the same address:port combination is used for all RTP and RTCP packets.
Single-bundle
The
Stream
Bundle Only
The
The bundling of streams is negotiated using the "a=group:BUNDLE" attribute at the session level:
If the peer is able to support the bundle:
The following is an example for OFFER and ANSWER mechanism.
OFFER
v=0 o=alice 2890844526 2890844526 IN IP4 10.32.241.3 s= c=IN IP4 10.32.241.3 t=0 0 a=group:BUNDLE audio video m=audio 10000 RTP/AVP 0 a=mid:audio a=rtpmap:0 PCMU/8000 a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid m=video 10002 RTP/AVP 31 32 a=mid:video a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid
ANSWER
v=0 o=bob 2808844564 2808844564 IN IP4 biloxi.example.com s= c=IN IP4 biloxi.example.com t=0 0 a=group:BUNDLE audio video m=audio 20000 RTP/AVP 0 a=mid:audio a=rtpmap:0 PCMU/8000 a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid m=video 20000 RTP/AVP 32 a=mid:video a=rtpmap:32 MPV/90000 a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid
Bundling is only allowed when security is configured to be relayed, and:
The
Within a BUNDLE group, the offerer and answerer must enable RTP/RTCP multiplexing for the RTP-based media associated with the BUNDLE group.
When RTP/RTCP multiplexing is enabled, the same address:port combination is used for sending all RTP and RTCP packets associated with the BUNDLE group. Each endpoint sends the packets towards the BUNDLE address of the other endpoint. The same address:port combination may be used for receiving RTP and RTCP packets.
Using bundling of media streams and the support of RTCP multiplexing ensures that only a single ICE transaction on one port is required. This limits the occurrence of NAT traversal issues and reduces the time needed to establish a call.
For the OFFER:
For the ANSWER:
The RTP contains two components:
With the increased use of Network Address Port Translation (NAPT), using separate UDP ports to transport RTP and RTCP has become problematic as maintaining multiple NAT bindings can be costly. To overcome these scenarios, the
Prior to 6.1.0 release, the
The
rtcpMux
flag is added to the PSP to configure RTCP-Mux.When RTP interception is triggered on an RTCP-Mux call (for example, lawful intercept), the RTCP bandwidth requirements do not change with the use of RTCP-Mux. The
The rtcpMux
flag is visible only when the rtcp
control is enabled on the PSP.
The following table describes the RTCP-Mux to non-RTCP-Mux inter-working scenarios for offer/answer:
When using ICE where RTP and RTCP are sent on separate ports, the
When the
sendRtcpPortInSdp
flag is enabled) to designate a fallback port for RTCP in case the answerer does not support RTP and RTCP-Mux. This response is performed for each media stream when RTP and RTCP-Mux is desired.With an upgrade to
rtcpMux
on both the PSPs to maintain backward compatibility. This is required when the sessions transparently relay DTLS and RTCP-Mux attributes using DTLS-SRTP relay control (dtlsSrtpRelay
) in the PSP and the flag sdpAttributesSelectiveRelay
is enabled.Once the RTCP-Mux is negotiated, the subsequent reINVITE(s) sent from the
The
sdp100relIwkForPrack
supports Asymmetric PRACK Inter-working for the late media calls.The configurations for the existing flags associated with the flag sdp100relIwkForPrack
, and the supported call flow scenarios, are summarized below:
Scenario 1: When PRACK is supported only on the ingress leg of the call, and the lateMediaSupport
flag is set to passthru
Scenario 2: When PRACK is supported only on the ingress leg of the call, and the lateMediaSupport
flag is set to convert
Scenario 3: When PRACK is supported only on the egress leg of the call, and the lateMediaSupport
flag is set to passthru
The SBC can be configured to process multiple audio m-lines, or a combination of audio and image m-lines, in SDP. Multiple m-lines (media streams) is needed in call recording scenarios or to support some types of fax transmissions.
When support is enabled on both the ingress and egress legs of a call when multiple m-lines are present, the SBC determines a core stream among the m-lines. The core stream is the first m-line within the SDP which contains a codec supported by the SBC. The SBC applies the media parameters specified by merging together the ingress and egress Packet Service Profile (PSP) parameters, such as transcoding policy, to the core stream. For all other non-core audio or image media streams the SBC allocates resources for the stream and transparently relays the m-lines. If the first stream containing a supported codec is for fax (m=image), then the SBC treats the call as a fax and relays all other media streams.
Support for multiple m-lines is enabled or disabled using the multipleAudioStreamsSupport
option within media parameters in SIP trunk groups.
If you enable multiple m-line support, you also have the option to enable a separate media option in SIP trunk groups which disables all SRTP (SAVP) streams present in incoming SDP. This enables deployments to disallow SRTP on the ingress call leg, but not on the egress leg. Enabling the option disallowSrtpStream
means that for all SAVP streams in the incoming SDP, the SBC sets the port to zero, thus disabling the SAVP stream. The SBC handles any other streams in the SDP according to the multiple m-line handling just described. If the incoming SDP contains only one or more SAVP streams, the call is rejected. The option disallowSrtpStream
can only be enabled when the multipleAudioStreamsSupport
option is enabled.
The multiple m-line support applies only to cases where the m-lines present consist of all audio streams or a combination of audio and image media streams. The SBC maintains its default behavior if the non-core streams are video or other non-audio, non-image streams. Multiple m-line support must be enabled on both ingress and egress SIP Trunk Groups for the feature to apply.
When the multipleAudioStreamsSupport
option is disabled, the SBC default behavior takes place.
For more information, refer to: