In this section:
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). 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, see:
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 SBC to suppress 183 response without SDP:
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, see ingressIpAttributes - SIP - CLI or Ip Signaling Profile - Ingress Ip Attributes (EMA).
The
The
This feature is not applicable when the
sendAllAllowedCodecsForLateMediaInviteOrReInvite
flag controls the handling of audio codecs that the SBC offers in response to a late media INVITE or Re-INVITE without SDP for transcoded calls.For pass-through calls, the SBC always offers a subset of the codecs advertised by the associated peer. The SBC Offer codec list is classified as a subset because the list can be subjected to codec policy filters.
Example 1: G711 pass-through call
If a re-INVITE with no SDP is received on egress, SBC generates an offer for G711, G729. The G726 and AMR are not offered because the call is marked as a relay call with DSP removed, and hence the transcoded codecs.
Example 2: G711 to AMR transcoded call
If a re-INVITE with no SDP is received on egress, by default, SBC generates an offer for AMR. If the “Send All Allowed Codecs For Late Media Invite Or Re-Invite” flag is enabled then SBC generates a codec list of G711,G729, AMR, and G726 in the Offer.
See commonIpAttributes - SIP - CLI or Common Ip Attributes - Flags (EMA) for configuration details.
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.
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 IP ports where it is reachable.These are known as local “candidates”. The “candidates” can be any or all of the following:
Use STUN to discover the Server Reflexive and Peer reflexive addresses on the NAT. Use TURN 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 completes, the Full ICE Agent assumes 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. The SBC acts as a controlled agent, and responds to the STUN requests. Based on the success/failure of the connectivity check, the controlling agent selects a candidate pair to exchange the media, and 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”. The SBC, as a controlled ICE-Lite agent, cuts through the media after receiving USE-CANDIDATE on all components of the media stream (for example, if RTP and RTCP are required for a stream, the 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 the controlled agent (SBC) responds by sending its local candidate in the default IP port of the media line to complete the ICE-Lite procedure. Use the Full ICE agent (using the ICE Restart procedures) to restart the Ice-lite procedure if the Media ports change during a call.
The ICE-Lite procedure starts with the offerer discovering all IP ports where it is reachable
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.
SBC can accept a mixture of bundled and unbundled streams, but currently only single bundle is supported.
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 SBC accepts offers that express bundling with a single bundle. A bundle may have one or more streams.
Stream
Bundle Only
The SBC accepts offers that include bundled streams with the bundle-only attribute set.
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
The SBC allows relaying multiplexed RTP and RTCP traffic.
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.
The above requirement also covers audio calls; the SBC supports RTP and RTCP multiplexing by relaying the rtcp-mux attribute for audio pass-through only flows. Pass-through only flows are flows where transcoding is not possible (no transcode codecs are a part of the outgoing offer).
For rtcp-mux to work on audio only calls, sdpAttributesSelectiveRelay
must be enabled.
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:
Bundling and/or multiplexing is only allowed when security is configured to be relayed, and:
If the SBC performs security termination for any stream the call is forced to be unbundled.