IP Library Granted Patent US 8,626,849
Granted Patent B2
US 8,626,849 · App. 12/844,172 · Granted Jan 7, 2014

Apparatus and method for resolving a race condition between two session initiation protocol (SIP) end points

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 8,626,849
App. No.
12/844,172
Granted
Jan 7, 2014
Kind
B2
Abstract

An apparatus and method are described for resolving a glare condition between two SIP endpoints. The method allows a third party call control controller to resolve the glare condition when the ownership status of each dialog is the same, by initiating a back-off period of time at the apparatus based on the ownership status of the SIP dialog and re-sending a re-INVITE message to the end point after expiry of the back-off period of time.

Claims (60)

1. A method at an intermediary server, between two end points exchanging media, the method comprising:

receiving, at the intermediary server, a first re-INVITE message from a first end point of the two end points, wherein the first end point has a first session initiation protocol (SIP) dialog with the intermediary server having an associated ownership status, the first SIP dialog established using first session description protocol characteristics (SPD 1 );

receiving, at the intermediary server, a second re-INVITE message from a second end point of the two end points causing a glare condition between the two end points, wherein the second end point has a second SIP dialog with the intermediary server having the same associated ownership status as the first SIP dialog, the second SIP dialog established using second session description protocol characteristics (SPD 2 );

sending, from the intermediary server, a first 491 Request Pending message to the second endpoint in response to the received second re-INVITE message;

receiving, at the intermediary server, a second 491 Request Pending from the second endpoint;

initiating, at the intermediary server, a back-off period of time based on the ownership status of the second SIP dialog; and

re-sending, from the intermediary server, the first re-INVITE message to the second end point after expiry of the back-off period of time.

2. The method of claim 1 , wherein the second re-INVITE message is received prior to receiving a 200 OK message from the second end point in response to the first re-INVITE message.

3. The method of claim 1 , further comprising sending the first re-INVITE message received from the first endpoint to the second endpoint.

4. The method of claim 3 , further comprising:

receiving the first re-INVITE message at the second endpoint prior to receiving a 200 OK message in response to the second re-INVITE message; and

sending the second 491 Request Pending message in response to the received first re-INVITE message.

5. The method of claim 1 , further comprising

sending an ACK message to the second endpoint in response to the second 491 Request Pending message.

6. The method of claim 1 , further comprising:

receiving a 200 OK message from the second endpoint; and

sending the 200 OK message to the first endpoint.

7. The method of claim 6 , further comprising:

sending an ACK message to the second endpoint in response to the 200 OK message; and

receiving an ACK message from the first endpoint in response to the 200 OK message.

8. The method of claim 1 wherein the intermediary server is the owner of both SIP dialogs between the first endpoint and the second endpoint.

9. The method of claim 8 , wherein the intermediary server selects a back off time value randomly between 2.1 and 4 second in units of 10 ms.

10. The method of claim 1 wherein the intermediary server is not the owner of either of the SIP dialogs between the first endpoint and the second endpoint.

11. The method of claim 10 wherein the intermediary server selects a back off time value randomly between 0 and 2 second in units of 10 ms.

12. The method of claim 6 , wherein the first re-INVITE message defines new SDP characteristics (SDP 3 ) for the first SIP dialog, the second re-INVITE message defines new SDP characteristics (SDP 4 ) for the second SIP dialog and the 200 OK message includes SDP 4 .

13. An apparatus between two end points exchanging media, the apparatus comprising:

a memory for storing instructions; and

a processor coupled to the memory for executing the instructions stored in the memory, the instructions configuring the apparatus to:

receive a first re-INVITE message from a first end point of the two end points, wherein the first end point has a first session initiation protocol (SIP) dialog with the intermediary server having an associated ownership status, the first SIP dialog established using first session protocol characteristics (SPD 1 );

receive a second re-INVITE message from a second end point of the two end points causing a glare condition between the two end points, wherein the second end point has a second SIP dialog with the intermediary server having the same associated ownership status as the first SIP dialog, the second SIP dialog established using second session protocol characteristics (SPD 2 );

send a first 491 Request Pending message to the second endpoint in response to the received second re-INVITE message;

receive a second 491 Request Pending from the second endpoint;

initiate a back-off period of time based on the ownership status of the second SIP dialog; and

re-send the first re-INVITE message to the second end point after expiry of the back-off period of time.

14. The apparatus of claim 13 , wherein the second re-INVITE message is received prior to receiving a 200 OK message from the second end point in response to the first re-INVITE message.

15. The apparatus of claim 13 , wherein the instructions further configure the apparatus to send the first re-INVITE message received from the first endpoint to the second endpoint.

16. The apparatus of claim 15 , wherein the instructions further configure the apparatus to:

receive the first re-INVITE message at the second endpoint prior to receiving a 200 OK message in response to the second re-INVITE message; and

send the second 491 Request Pending message in response to the received first re-INVITE message.

17. The apparatus of claim 13 , wherein the instructions further configure the apparatus to:

send an ACK message to the second endpoint in response to the second 491 Request Pending message.

18. The apparatus of claim 13 , wherein the instructions further configure the apparatus to:

receive a 200 OK message from the second endpoint; and

send the 200 OK message to the first endpoint.

19. The apparatus of claim 18 , wherein the instructions further configure the apparatus to:

send an ACK message to the second endpoint in response to the 200 OK message; and

receive an ACK message from the first endpoint in response to the 200 OK message.

20. The apparatus of claim 18 , wherein the first re-INVITE message defines new SDP characteristics (SDP 3 ) for the first SIP dialog, the second re-INVITE message defines new SDP characteristics (SPD 4 ) for the second SIP dialog (SDP 2 ) and the 200 OK message includes SDP 4 .

21. The apparatus of claim 13 wherein the intermediary server is the owner of both SIP dialogs between the first endpoint and the second endpoint.

22. The apparatus of claim 21 , wherein the intermediary server selects a back off time value randomly between 2.1 and 4 second in units of 10 ms.

23. The apparatus of claim 13 wherein the intermediary server is not the owner of either of the SIP dialogs between the first endpoint and the second endpoint.

24. The apparatus of claim 23 wherein the intermediary server selects a back off time value randomly between 0 and 2 second in units of 10 ms.

25. A non-transitory computer readable memory storing instructions for execution by a processor, the instructions for implementing a method at an intermediary server the method comprising:

receiving, at the intermediary server, a first re-INVITE message from a first end point of the two end points, wherein the first end point has a first session initiation protocol (SIP) dialog with the intermediary server having an associated ownership status, the first SIP dialog established using first session description protocol characteristics (SPD 1 );

receiving, at the intermediary server, a second re-INVITE message from a second end point of the two end points causing a glare condition between the two end points, wherein the second end point has a second SIP dialog with the intermediary server having the same associated ownership status as the first SIP dialog, the second SIP dialog established using second session description protocol characteristics (SPD 2 );

sending, from the intermediary server, a first 491 Request Pending message to the second endpoint in response to the received second re-INVITE message;

receiving, at the intermediary server, a second 491 Request Pending from the second endpoint;

initiating, at the intermediary server, a back-off period of time based on the ownership status of the second SIP dialog; and

re-sending, from the intermediary server, the first re-INVITE message to the second end point after expiry of the back-off period of time,

thereby resolving a glare condition between the two end points.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 4, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034161/0093 →
CHANGE OF NAME Recorded Nov 22, 2013
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 031713/0397 →