IP Library Granted Patent US 11,637,874
Granted Patent B2
US 11,637,874 · App. 17/024,491 · Granted Apr 25, 2023

Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping

Inventor: Tolga Asveren (Bordentown, NJ)
Assignee: Ribbon Communications Operating Company, Inc.
H04L65/1069H04L61/2567H04L61/2575H04L65/1104H04L65/65H04L67/14
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,637,874
App. No.
17/024,491
Granted
Apr 25, 2023
Kind
B2
Abstract

The present invention is directed to communications apparatus, systems, and methods for preventing and/or minimizing session data clipping/loss when using the ICE protocol procedures on a session border controller. An exemplary method embodiment of operating a Session Border Controller (SBC) includes, receiving, at the SBC, an initial offer message from a first user equipment device directed to a second user equipment device, said initial offer message including one or more candidate addresses for the first user equipment device; and establishing a data path between the SBC and the second user equipment device in response to receiving said initial offer message prior to establishing a data session between the first user equipment device and the session border controller.

Claims (72)

1. A method of operating a session border controller, the method comprising:

receiving, at the session border controller, a first initial offer message from a first user equipment device directed to a second user equipment device, said first initial offer message including one or more Interactive Connectivity Establishment (ICE) candidate addresses for the first user equipment device;

establishing a data path between the session border controller and the second user equipment device in response to receiving said first initial offer message, said session border controller and said second user equipment device being ICE agents which perform an ICE negotiation to establish said data path between the session border controller and the second user equipment device, said ICE negotiation including at least the following operations: (i) identifying by the session border controller a first ICE candidate address for the session border controller, (ii) generating by the session border controller a list of session border controller and second user equipment device ICE candidate address pairs, and (iii) performing by the session border controller a successful connectivity check on one or more of the ICE candidate address pairs included in the generated list of ICE candidate address pairs;

establishing a data session between the first user equipment device and the session border controller after establishing the data path between the session border controller and the second user equipment device in response to receiving said first initial offer message; and

wherein said first user equipment device and said second user equipment device are ICE endpoint devices, ICE endpoint devices being endpoint devices which support the ICE protocol.

2. The method of claim 1 ,

wherein said first initial offer message includes two ICE candidate addresses for the first user equipment device, a first ICE candidate address for the first user equipment device and a second ICE candidate address for the first user equipment device;

wherein said establishing a data path between the session border controller and the second user equipment device further includes:

identifying a second ICE candidate address for the session border controller;

transmitting, from the session border controller, to the second user equipment device a second initial offer message, said second initial offer message including the first ICE candidate address for the session border controller and the second ICE candidate address for the session border controller, said first ICE candidate address for the session border controller being a proxy candidate address for the first ICE candidate address for the first user equipment device, said second ICE candidate address for the session border controller being a proxy candidate address for the second ICE candidate address for the first user equipment device; and

receiving, at the session border controller, a first response message from the second user equipment device in response to the second initial offer message, the first response message including one or more ICE candidate addresses for the second user equipment device.

3. The method of claim 2 , wherein said list of session border controller and second user equipment device ICE candidate address pairs is generated from the first ICE candidate address for the session border controller, the second ICE candidate address for the session border controller and the one or more ICE candidate addresses for the second user equipment device included in the first response message from the second user equipment device.

4. The method of claim 3 , wherein the one or more ICE candidate addresses for the second user equipment device included in the first response message is two ICE candidate addresses for the second user equipment device, a first ICE candidate address for the second user equipment device and a second ICE candidate address for the second user equipment device.

5. The method of claim 4 further comprising:

identifying a third ICE candidate address for the session border controller, said third ICE candidate address for the session border controller being a proxy candidate address for the first ICE candidate address for the second user equipment device;

identifying a fourth ICE candidate address for the session border controller, said fourth candidate address for the session border controller being a proxy candidate address for the second ICE candidate address for the second user equipment device;

generating, by the session border controller, a response to the first initial offer message from the first user equipment device directed to the second user equipment device, by the session border controller, said response to the first initial offer message from the first user equipment device directed to the second user equipment device including the third ICE candidate address for the session border controller and the fourth ICE candidate address for the session border controller; and

transmitting, by the session border controller, to the first user equipment device the generated response to the first initial offer message from the first user equipment device directed to the second user equipment device.

6. The method of claim 5 further comprising:

waiting, by the session border controller, to receive a STUN connectivity check message from the first user equipment device first ICE candidate address before transmitting a STUN connectivity check message to the second user equipment device from said first ICE candidate address for the session border controller; and

in response to receiving a STUN connectivity check message from the first user equipment device first ICE candidate address, transmitting, by the session border controller, a STUN connectivity check message to the second user equipment device from said first ICE candidate address for the session border controller.

7. The method of claim 6 further comprising:

waiting, by the session border controller, to receive a STUN connectivity check message from the first user equipment device second ICE candidate address before transmitting a STUN connectivity check message to the second user equipment device from said second ICE candidate address for the session border controller; and

waiting by the session border controller for a STUN connectivity check response message from the second user equipment device in response to the STUN connectivity check message sent by the session border controller to the second user equipment device from said first ICE candidate address for the session border controller before responding to the STUN connectivity check message received from the first user equipment device first ICE candidate address.

8. The method of claim 7 ,

wherein the session border controller is not a controlling ICE agent in ICE negotiations between the first user equipment device and the session border controller; and

wherein the session border controller is a controlling ICE agent in the ICE negotiations between the session border controller and the second user equipment device.

9. The method of claim 8 , wherein said session border controller is operating in a back to back user agent mode of operation in connection with messages being exchanged between the first user equipment device and the second user equipment device.

10. The method of claim 1 further comprising:

receiving data at the session border controller from the first user equipment device and relaying said data to the second user equipment device over said data path established between the session border controller and the second user equipment device device; and

wherein said performing by the session border controller a successful connectivity check on one or more of the ICE candidate address pairs in the generated list of ICE candidate address pairs includes:

generating by the session border controller a connectivity check message;

transmitting by the session border controller the generated connectivity check message to the second user equipment device;

receiving by the session border controller a connectivity check response message from the second user equipment device in response to the connectivity check message transmitted to the second user equipment device; and

determining by the session border controller the connectivity check performed has been successful in response to receiving the connectivity check response message from the second user equipment device in response to the connectivity check message transmitted to the second user equipment device.

11. A session border controller comprising:

memory, and

a processor configured to control said session border controller to perform the following operations:

receiving a first initial offer message from a first user equipment device directed to a second user equipment device, said first initial offer message including one or more Interactive Connectivity Establishment (ICE) candidate addresses for the first user equipment device, said first user equipment device being an endpoint device which supports the ICE protocol, said second user equipment device being an endpoint device which supports the ICE protocol;

establishing a data path between the session border controller and the second user equipment device in response to receiving said first initial offer message, said session border controller and said second user equipment device being ICE agents which perform an ICE negotiation to establish said data path between the session border controller and the second user equipment device, said ICE negotiation including at least the following operations: (i) identifying by the session border controller a first ICE candidate address for the session border controller, (ii) generating by the session border controller a list of session border controller and second user equipment device ICE candidate address pairs, and (iii) performing by the session border controller a successful connectivity check on one or more of the ICE candidate address pairs included in the generated list of ICE candidate address pairs; and

establishing a data session between the first user equipment device and the session border controller after establishing the data path between the session border controller and the second user equipment device in response to receiving said first initial offer message.

12. The session border controller of claim 11 ,

wherein said first initial offer message includes two ICE candidate addresses for the first user equipment device, a first ICE candidate address for the first user equipment device and a second ICE candidate address for the first user equipment device;

wherein said operation of establishing a data path between the session border controller and the second user equipment device further includes the operations of:

identifying a second ICE candidate address for the session border controller;

transmitting, from the session border controller, to the second user equipment device a second initial offer message, said second initial offer message including the first ICE candidate address for the session border controller and the second ICE candidate address for the session border controller, said first ICE candidate address for the session border controller being a proxy candidate address for the first ICE candidate address for the first user equipment device, said second ICE candidate address for the session border controller being a proxy candidate address for the second ICE candidate address for the first user equipment device; and

receiving, at the session border controller, a first response message from the second user equipment device in response to the second initial offer message, the first response message including one or more ICE candidate addresses for the second user equipment device.

13. The session border controller of claim 12 , wherein said list of session border controller and second user equipment device ICE candidate address pairs is generated from the first ICE candidate address for the session border controller, the second ICE candidate address for the session border controller and the one or more ICE candidate addresses for the second user equipment device included in the first response message from the second user equipment device.

14. The session border controller of claim 13 , wherein the one or more ICE candidate addresses for the second user equipment device included in the first response message is two ICE candidate addresses for the second user equipment device, a first ICE candidate address for the second user equipment device and a second ICE candidate address for the second user equipment device.

15. The session border controller of claim 14 ,

wherein said processor is further configured to control the session border controller to perform the following operations:

identifying a third ICE candidate address for the session border controller, said third ICE candidate address for the session border controller being a proxy candidate address for the first ICE candidate address for the second user equipment device;

identifying a fourth ICE candidate address for the session border controller, said fourth candidate address for the session border controller being a proxy candidate address for the second ICE candidate address for the second user equipment device;

generate a response to the first initial offer message from the first user equipment device directed to the second user equipment device, said response to the first initial offer message from the first user equipment device directed to the second user equipment device including the third ICE candidate address for the session border controller and the fourth ICE candidate address for the session border controller; and

transmitting, by the session border controller, to the first user equipment device the generated response to the first initial offer message from the first user equipment device directed to the second user equipment device.

16. The session border controller of claim 15 ,

wherein said processor is further configured to control the session border controller to:

wait to receive a STUN connectivity check message from the first user equipment device first ICE candidate address before transmitting a STUN connectivity check message to the second user equipment device from said first ICE candidate address for the session border controller; and

in response to receiving a STUN connectivity check message from the first user equipment device first ICE candidate address, transmit a STUN connectivity check message to the second user equipment device from said first ICE candidate address for the session border controller.

17. The session border controller of claim 16 ,

wherein said session border controller further controls the session border controller to:

wait, by the session border controller, to receive a STUN connectivity check message from the first user equipment device second ICE candidate address before transmitting a STUN connectivity check message to the second user equipment device from said second ICE candidate address for the session border controller; and

wait by the session border controller for a STUN connectivity check response message from the second user equipment device in response to the STUN connectivity check message sent by the session border controller to the second user equipment device from said first ICE candidate address for the session border controller before responding to the STUN connectivity check message received from the first user equipment device first ICE candidate address.

18. The session border controller of claim 17 ,

wherein the session border controller is not a controlling ICE agent in ICE negotiations between the first user equipment device and the session border controller; and

wherein the session border controller is a controlling ICE agent in the ICE negotiations between the session border controller and the second user equipment device.

19. The session border controller of claim 18 , wherein said processor is further configured to control the session border controller to operate in a back to back user agent mode of operation in connection with messages being exchanged between the first user equipment device and the second user equipment device.

20. A non-transitory computer readable medium including processor executable instructions for use in a session border controller, the non-transitory computer readable medium comprising:

instructions which when executed by at least one processor in the session border controller controls said session border controller to:

receive a first initial offer message from a first user equipment device directed to a second user equipment device, said first initial offer message including one or more Interactive Connectivity Establishment (ICE) candidate addresses for the first user equipment device, said first user equipment device being an endpoint device which supports the ICE protocol, said second user equipment device being an endpoint device which supports the ICE protocol;

establish a data path between the session border controller and the second user equipment device in response to receiving said first initial offer message, said session border controller and said second user equipment device being ICE agents which perform an ICE negotiation to establish said data path between the session border controller and the second user equipment device, said ICE negotiation including at least the following operations: (i) identifying by the session border controller a first ICE candidate address for the session border controller, (ii) generating by the session border controller a list of session border controller and second user equipment device ICE candidate address pairs, and (iii) performing by the session border controller a successful connectivity check on one or more of the ICE candidate address pairs included in the generated list of ICE candidate address pairs; and

establish a data session between the first user equipment device and the session border controller after establishing the data path between the session border controller and the second user equipment device in response to receiving said first initial offer message.

Assignments (1)
SHORT-FORM PATENTS SECURITY AGREEMENT Recorded Sep 5, 2024
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 068857/0290 →