IP Library › Granted Patent US 7,751,316
Granted Patent B2
US 7,751,316 · App. 11/128,897 · Granted Jul 6, 2010

Relay Server for SIP/RTP messages with buffer management

Assignee: Yahoo! Inc.
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 7,751,316
App. No.
11/128,897
Granted
Jul 6, 2010
Kind
B2
Abstract

A system, method, and apparatus are directed towards managing a Voice over IP (VOIP) messages over a network, employing the Real-time Transport Protocol (RTP) and Session Initiation Protocol (SIP) over the Transmission Control Protocol (TCP). The VOIP messages are sent by a source device to a destination device through a relay server. The relay server may throttle the VOIP messages employing buffer management. When the buffer is substantially full, the relay server will drop packets from the source device. Indication of the lost packets may be provided to the source device through a Real-time Transport Control Protocol (RTCP) report. The source device may then employ the RTCP report to modify a type of codec employed, and thereby adjust a rate of flow of VOIP packets sent towards the destination device. Additionally, the relay server may provide port translation services for RTP/RTCP packets between the source and destination devices.

Claims (61)

1. A method for use in managing network packets over a network, comprising:

setting a size for a packet store at a relay server;

receiving a network packet from a source device addressed to a destination device at the relay server, wherein the network packet is configured to employ a Transmission Control Protocol (TCP) transport protocol; and

if the packet store is substantially full, the relay server performs actions, including:

dropping the received network packet at the relay server,

sending a report generated by the relay server to the source device when the received network packet is dropped, wherein the report enables the source device to modify a rate of transmission of the network packets over the network by at least one of modifying a codec and changing a codec employed to process the network packets,

determining, based on a first received network packet in the network packets, a packet type and a source port, wherein the packet type includes at least one of a Real-time Transport Protocol (RTP) or a Real-time Transport Control Protocol (RTCP) packet type,

if the network packets are to be sent employing a single port, sending each RTP and RTCP packet of the network packets to the destination device using the single port, and

if the network packets are to be sent employing multiple ports, sending each RTP packet of the network packets using a first port, and sending each RTCP packet of the network packets using a second port.

2. The method of claim 1 wherein the network packets further comprise at least one of Voice Over IP (VOIP) packet, a voice packet, a video packet, a text data packet, or an Instant Messaging (IM) packet.

3. The method of claim 1 , wherein the sending the report further comprises generating the report by at least one of the relay server configured to implement the method or the destination device, where the network packets are intended for the destination device.

4. The method of claim 1 , wherein if the packet store is substantially full further comprises:

determining if a predetermined number of packet retransmits have occurred within a predefined period of time, and if not, resizing the packet store to a larger packet capacity.

5. The method of claim 1 , wherein the method is implemented as computer-readable instructions within the relay server, and the source device is a mobile device.

6. The method of claim 1 , further comprising: removing another network packet from the packet store and forwarding the removed network packet to the destination device.

7. A relay server for use in managing Voice over IP (VOIP) packets over a network, comprising:

a transceiver for receiving and sending packets to another computing device;

a processor in communication with the transceiver; and

a memory in communication with the processor and for use in storing data and machine instructions that causes the processor to perform a plurality of operations, including:

setting a size for a packet store;

receiving a VOIP packet from a source device, the VOIP packet being destined for a destination device, and is configured to employ a Transmission Control Protocol (TCP) transport protocol; and

if the packet store is substantially full:

determining if there is a predetermined packet loss within a predefined period of time, and if there is:

dropping the received VOIP packet at the relay server,

sending a report generated by the relay server to the source device when the received network packet is dropped, wherein the report enables the source device to modify a rate of transmission of VOIP packets over the network by at least one of modifying a codec and changing a codec employed to process a next VOIP packet,

determining, based on a first received VOIP packet in the VOIP packets, a packet type and a source port, wherein the packet type includes at least one of a Real-time Transport Protocol (RTP) or a Real-time Transport Control Protocol (RTCP) packet type,

if the VOIP packets are to be sent employing a single port, sending each RTP and RTCP packet of the VOIP packets to the destination device using the single port, and

if the VOIP packets are to be sent employing multiple ports, sending each RTP packet of the VOIP packets using a first port, and sending each RTCP packet of the VOIP packets using a second port.

8. The relay server of claim 7 , wherein the received VOIP packet employs at least one of a Session Initiation Protocol (SIP) or a Real-time Transport Protocol (RTP).

9. The relay server of claim 7 , wherein the report is generated by at least one of the relay server or the destination device.

10. The relay server of claim 7 , further comprising:

if the packet store includes sufficient capacity to store the received VOIP packet, storing the packet in the packet store; and

sending a prior received VOIP packet stored in the packet store towards the destination device, by employing a first-in/first-out selection mechanism to select the prior received VOIP packet.

11. The relay server of claim 7 , further comprising:

if the packet store is substantially full, but the predetermined packet loss is absent, increasing the packet store capacity.

12. The relay server of claim 7 , wherein if the predetermined packet loss has not occurred, resizing the packet store size.

13. A system for use in managing Voice over IP (VOIP) packets over a network, comprising:

a client device that is configured to perform actions, including:

if a VOIP packet employs a user datagram transport protocol (UDP), converting the transport protocol to a transmission control protocol (TCP); and

sending the converted VOIP packet towards a relay server that is useable to relay the converted VOIP packet to a destination device; and

the relay server in communication with the client device and the destination device and is configured to perform actions, including:

receiving the converted VOIP packet from the client device; and

if a packet store configured to receive and store VOIP packets is substantially full:

dropping the received VOIP packet at the relay server,

sending a report generated by the relay server to the client device when the received network packet is dropped, wherein the report enables the client device to modify a rate of transmission of VOIP packets over the network by at least one of modifying a codec and changing a codec employed to process a next VOIP packet,

determining, based on a first received VOIP packet in the VOIP packets, a packet type and a source port, wherein the packet type includes at least one of a Real-time Transport Protocol (RTP) or a Real-time Transport Control Protocol (RTCP) packet type, and

if the VOIP packets are to be port translated, employing an association of the source port to packet type that is determined based on the first received VOIP packet to forward each VOIP packet in the VOIP packets using a translated source port.

14. The system of claim 13 , wherein the destination device is a mobile device.

15. The system of claim 13 , wherein the report is generated by at least one of the relay server or the destination device.

16. The system of claim 13 , wherein the report is generated employing, at least in part, the Real-time Transport Control Protocol (RTCP).

17. A system for use in managing Voice over IP (VOIP) packets over a network, comprising:

a client device that is configured to perform actions, including:

if a VOIP packet employs a user datagram transport protocol (UDP), converting the transport protocol to a transmission control protocol (TCP); and

sending the converted VOIP packet towards a relay server that is useable to relay the converted VOIP packet to a destination device; and

the relay server in communication with the client device and the destination device and is configured to perform actions, including:

receiving the converted VOIP packet from the client device; and

if a packet store configured to receive and store VOIP packets is substantially full:

dropping the received VOIP packet at the relay server,

sending a report generated by the relay server to the client device when the received network packet is dropped, wherein the report enables the client device to modify a rate of transmission of VOIP packets over the network by at least one of modifying a codec and changing a codec employed to process a next VOIP packet,

if the VOIP packets are to be sent employing a single port, sending each RTP and RTCP packet of the VOIP packets to the destination device using the single port; and

if the VOIP packets are to be sent employing multiple ports, sending each RTP packet of the VOIP packets using a first port, and sending each RTCP packet of the VOIP packets using a second port.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2005
From: YARLAGADDA, MADHU; WIEGAND, JAMIE L.
To: YAHOO! INC.
Reel/Frame 016566/0987 →
Continuity (1)
Related Publication 20060256721A1 · Nov 16, 2006