Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Excerpt

Overview

The

Spacevars
0series4
supports a subset of the functionality required for a full-ICE agent:

  • In controlling role, the
    Spacevars
    0product
    initiates connectivity check with a STUN Binding Request. The connectivity check by the
    Spacevars
    0product
    is sent in response to the first connectivity check, which is received from the peer. The
    Spacevars
    0product
    selects the remote Ip address for media based on the address signaled in the first STUN Binding Request, which is received from the peer. To assert the selection of media, the
    Spacevars
    0product
    sends STUN Binding Request with the USE-CANDIDATE attribute.
  • In controlled role, the
    Spacevars
    0product
    initiates a single connectivity check with a STUN Binding Request to the peer. This request is sent after receiving a Binding Request from the peer, which contains the USE-CANDIDATE attribute. This behavior is important to complete the full-ICE procedures when inter-operating with WRTC peers such as Google and Chrome.
  • In controlling role, the
    Spacevars
    0product
    protects against network loss of STUN message exchanges by introducing internal guard timers and sends STUN Keep-Alive messages at a configurable interval. This functionality is based on the procedures defined in RFC5245.

These functionalities allow the

Spacevars
0product
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

Spacevars
0product
implementation of ICE-Lync to support the following functionalities:

  • Allows specification of IPv6 candidates at Signaling and in STUN messages.
  • Validates the received STUN messages and attributes based on the MS-ICE2 standards.
  • Protects against network loss of STUN message exchanges by introducing internal guard timers and sends STUN Keep-Alive messages at a configurable interval.
Spacevars
0product
supports the following functionalities to implement pseudo full-ICE and MS-Lync ICE:

Anchor
Connectivity Check Timers
Connectivity Check Timers
Timers

In pseudo full-ICE and MS-Lync ICE configuration, the

Spacevars
0product
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. The
Spacevars
0product
runs following new timers at different stages of the STUN processing:

  • Connectivity Check Phase 1 Timer
  • Connectivity Check phase 2 Timer

  • USE-CANDIDATE Check Timer
  • Keep-Alive Timer

Controlling Role

The

Spacevars
0product
assumes the controlling role when the controlled attribute is received in Binding Request for a media stream. In the controlling role, the
Spacevars
0product
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, the
Spacevars
0product
discontinues the phase 1 connectivity timer and sends initial Binding Request without USE-CANDIDATE. The
Spacevars
0product
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, the
Spacevars
0product
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.

Controlled Role

The

Spacevars
0product
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, the

Spacevars
0product
sends back the binding response and determines the remote address for media from the received Binding Request message. In the controlled role, the
Spacevars
0product
does not send STUN Keep-Alive. When configured as full-ICE, the
Spacevars
0product
generates Binding Request towards the peer even when assuming the controlled role. In a controlled role, the
Spacevars
0product
re-sends this Binding Request message (without use-candidate attribute) up to 10 times or until a successful response is received from the peer.

Note

Binding request is generated from the

Spacevars
0product
only for the pseudo full-ICE support when the
Spacevars
0product
acts as controlled agent.

The following table describes the behavior of the timers:

Caption
0Table
1Timers
Timers Applicable Role of SBC StartedStoppedOn ExpiryDuration of the Timer (Seconds)
Connectivity Check phase 1 TimerControlled and controlling role
When full-ICE is negotiated through SDP with the peer and the
Spacevars
0product
has either received answer or has sent answer.
When a valid Binding Request message is received from the peer, the stream is either removed or the call is disconnected.
The
Spacevars
0product
generates an alarm sonusSbxIceTimerExpiryNotification and clears the call.
10
Connectivity Check phase 2 Timer
Controlling role
When the
Spacevars
0product
sends a Binding Request without USE-CANDIDATE attribute.
When a successful response is received to the
Spacevars
0product
's initial Binding Request, the stream is either removed or the call is disconnected.
The
Spacevars
0product
generates an alarm sonusSbxIceTimerExpiryNotification and clears the call.
5
USE-CANDIDATE Check Timer
Controlling role
When the
Spacevars
0product
sends a Binding Request with USE-CANDIDATE attribute.
When a successful Binding Response is received, the stream is either removed or the call is torn down.
The
Spacevars
0product
generates an alarm sonusSbxIceTimerExpiryNotification and clears the call.
10
Keep-Alive TimerControlling role
When ICE Keep-Alive message is first sent after receiving successful binding response to
Spacevars
0product
's Binding Request with USE-CANDIDATE, the
Spacevars
0product
periodically sends a STUN Keep-Alive message on RTP and RTCP ports.
When a valid Binding Request message is received from the peer, the stream is removed or the call is disconnected.
Resend Keep-Alive message.15
Note

For more information on the alarms, refer to the section Sonus WebRTC Gateway (WRTC) Alarms.

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.

Note
  • Connectivity check timers are applied to both pseudo full-ICE and MS-Lync ICE support.
  • In case of MS-Lync ICE, Keep-Alive messages are sent only to RTP port.

Anchor
Re-INVITE Generation
Re-INVITE Generation
Re-INVITE Generation

Once ICE processing is completed, when the

Spacevars
0product
is acting in the ICE controlling role, it generates a Re-INVITE specifying the local and remote candidate addresses that were selected for media. 

Note

The Re-INVITE message is generated when the

Spacevars
0product
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.

The following call flow diagram provides the pseudo ICE scenario.
Caption
0Figure
1Pseudo ICE Call Flow

Note

The MS Lync/Skype Remote Desktop Sharing feature is supported on the following

Spacevars
0series4
platforms:

  • Spacevars
    0series
  • Spacevars
    0series2
  • SWe on KVM
  • SWe on VMware