In this section:
SBC supports a subset of the functionality required for a full-ICE agent:
These functionalities allow SBC to inter-operate with other ICE peers, which require the connecting peer to act as a full-ICE agent.
When inter-operating with Lync endpoints, which require their own flavor of ICE, this feature extends the existing SBC implementation of ICE-Lync to support the following functionalities:
SBC supports the following functionalities to implement pseudo full-ICE and MS-Lync ICE:
In pseudo full-ICE and MS-Lync ICE configuration, SBC determines the controlled or controlling role for a particular media stream. The role is determined based on the controlled attribute in the STUN Binding Request from the peer. SBC runs following new timers at different stages of the STUN processing:
Connectivity Check phase 2 Timer
SBC assumes the controlling role when the controlled attribute is received in Binding Request for a media stream. In the controlling role, SBC retrieves the remote media IP or port based on the first Binding Request from the remote end. When the Binding Request with controlled attribute is received, SBC discontinues the phase 1 connectivity timer and sends initial Binding Request without USE-CANDIDATE. SBC starts the phase 2 connectivity timer of 5 seconds and wait for the STUN response. Once a successful response is received from the peer to the Binding Request without USE-CANDIDATE, SBC generates the Binding Request with USE-CANDIDATE and starts the USE-CANDIDATE check timer for 10 seconds. This timer is stopped after a successful binding response is received from the peer.
SBC assumes the controlled role when the controlling attribute is received in Binding Request for a media stream.
When a STUN Binding Request with USE-CANDIDATE is received, SBC sends back the binding response and determines the remote address for media from the received Binding Request message. In the controlled role, SBC does not send STUN Keep-Alive. When configured as full-ICE, SBC generates Binding Request towards the peer even when assuming the controlled role. In a controlled role, SBC re-sends this Binding Request message (without use-candidate attribute) up to 10 times or until a successful response is received from the peer.
Binding request is generated from SBC only for the pseudo full-ICE support when SBC acts as controlled agent.
The following table describes the behavior of the timers:
A new parameter iceKeepaliveTimer
is added to Network Address Translator (NAT) Traversal of SIP Trunk Group to enable Keep-Alive timer for ICE. This parameter is supported for Keep-Alive message on RTP port in Lync mode and RTP and RTCP ports in full-ICE mode.
Once ICE processing is completed, when SBC is acting in the ICE controlling role, it generates a Re-INVITE specifying the local and remote candidate addresses that were selected for media.
The Re-INVITE message is generated when SBC is configured as either iceLync
or iceFull
. In the case of full-ICE, the Re-INVITE message is generated only when the remote IP determined through STUN exchange is different from the original C-line IP that the endpoint sent in SDP.