IP Library Granted Patent US 8,681,820
Granted Patent B2
US 8,681,820 · App. 13/100,035 · Granted Mar 25, 2014

Inserting out-of-band data into in-band data streams

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,681,820
App. No.
13/100,035
Granted
Mar 25, 2014
Kind
B2
Abstract

A computer-implemented method for inserting an out-of-band signaling packet into a real-time protocol (RTP) stream is provided. The method includes receiving the out-of-band signaling packet intended for transmission to a user device and forming a synthesized packet based on payload information from the out-of-band signaling packet and header information stored in a data structure describing the RTP stream. The method also includes inserting the synthesized packet into the RTP stream. The method further includes receiving an RTP packet intended for transmission to the user device via the RTP stream, analyzing an insertion sequence number and an insertion flag maintained in the data structure, and discarding or forwarding the RTP packet via the RTP stream based on the analyzing.

Claims (50)

1. A computer-implemented method for inserting an out-of-band signaling packet into a real-time protocol (RTP) stream, comprising:

receiving, by a computing device, the out-of-band signaling packet intended for transmission to a user device;

forming, by the computing device, a synthesized packet based on payload information from the out-of-band signaling packet and header information stored in a data structure describing the RTP stream;

inserting, by the computing device, the synthesized packet into the RTP stream;

updating an insertion sequence number in the data structure to signal to the computing device an RTP packet to be discarded;

ensuring that an insertion flag maintained in the data structure is set;

receiving, by the computing device, an RTP packet intended for transmission to the user device via the RTP stream;

analyzing, by the computing device, the insertion sequence number and the insertion flag maintained in the data structure; and

discarding or forwarding the RTP packet via the RTP stream, by the computing device, based on the analyzing.

2. The computer-implemented method of claim 1 wherein the receiving of the out-of-band signaling packet, the forming and the inserting are performed by a first module of the computing device.

3. The computer-implemented method of claim 1 wherein the receiving of the RTP packet, the analyzing and the discarding or forwarding are performed by a second module of the computing device.

4. The computer-implemented method of claim 1 further comprising processing the RTP packet by storing header information of the RTP packet in the data structure.

5. The computer-implemented method of claim 1 further comprising discarding the RTP packet having a sequence number equal to the insertion sequence number.

6. The computer-implemented method of claim 1 wherein forming the synthesized packet further comprises creating a timestamp for the synthesized packet that is associated with a signaling event.

7. The computer-implemented method of claim 1 further comprising discarding the RTP packet if the insertion flag is set and a sequence number of the RTP packet is equal or behind the insertion sequence number.

8. The computer-implemented method of claim 1 wherein the RTP packet is forwarded via the RTP stream if the insertion flag is not set or a sequence number of the RTP packet exceeds the insertion sequence number.

9. The computer-implemented method of claim 1 wherein updating the insertion sequence number comprises adding one to the insertion sequence number.

10. The computer-implemented method of claim 9 wherein the computing device has formed at least one other synthesized packet since processing a RTP packet that was not discarded.

11. The computer-implemented method of claim 1 wherein updating the insertion sequence number comprises adding one to a sequence number of a last RTP packet that the computing device processed and did not discard.

12. The computer-implemented method of claim 11 wherein the computing device has not formed another synthesized packet since processing the last RTP packet.

13. A computing device for inserting an out-of-band signaling packet into a real-time protocol (RTP) stream, comprising:

a module storing a data structure describing the RTP stream, the data structure maintaining an insertion sequence number and an insertion flag;

a fast path module for receiving an RTP packet intended for transmission to the user device via the RTP stream, analyzing the insertion sequence number and the insertion flag, and discarding or forwarding the RTP packet based on the analyzing; and

a slow path module for receiving the out-of-band signaling packet intended for transmission to a user device, forming a synthesized packet based on payload information from the out-of-band signaling packet and header information stored in the data structure, and inserting the synthesized packet into the RTP stream, the slow path module including a buffer for storing an insertion task for an out-of-band signaling event until an insertion module of the slow path module processes the insertion task.

14. The computing device of claim 13 wherein the slow path module comprises a scheduler for scheduling the insertion task for the out-of-band signaling event.

15. A method for inserting an out-of-band signaling packet into a real-time protocol (RTP) stream, comprising:

receiving, by a computing device, the out-of-band signaling packet intended for transmission to a user device;

scheduling, by the computing device, an insertion task for the out-of-band signaling packet;

storing, by the computing device, the insertion task in a buffer until the computing device processes the insertion task;

forming, by the computing device, a synthesized packet based on payload information from the out-of-band signaling packet and header information stored in a data structure describing the RTP stream;

inserting, by the computing device, the synthesized packet into the RTP stream;

receiving, by the computing device, an RTP packet intended for transmission to the user device via the RTP stream;

analyzing, by the computing device, an insertion sequence number and an insertion flag maintained in the data structure; and

discarding or forwarding the RTP packet via the RTP stream, by the computing device, based on the analyzing.

16. A method for inserting an out-of-band signaling packet into a real-time protocol (RTP) stream, comprising:

receiving, by a computing device, the out-of-band signaling packet intended for transmission to a user device;

forming, by the computing device, a synthesized packet based on payload information from the out-of-band signaling packet and header information stored in a data structure describing the RTP stream;

inserting, by the computing device, the synthesized packet into the RTP stream;

receiving, by the computing device, an RTP packet intended for transmission to the user device via the RTP stream, said RTP packet including a sequence number, said sequence number of the RTP packet being behind an insertion sequence number by less than a predetermined number of RTP packets that the computing device is allowed to consume for out-of-band signaling during a time period;

analyzing, by the computing device, the insertion sequence number and an insertion flag maintained in the data structure; and

discarding or forwarding the RTP packet via the RTP stream, by the computing device, based on the analyzing, said RTP packet being discarded if the insertion flag is set and a sequence number of the RTP packet is equal or behind the insertion sequence number.

17. A computer program product, tangibly embodied in a non-transitory computer readable medium, for inserting an out-of-band signaling packet into a real-time protocol (RTP) stream, the computer program product including instructions being operable to cause a data processing apparatus to:

receive the out-of-band signaling packet intended for transmission to a user device;

form a synthesized packet based on payload information from the out-of-band signaling packet and header information stored in a data structure describing the RTP stream;

insert the synthesized packet into the RTP stream;

update an insertion sequence number in the data structure to signal to the computing device an RTP packet to be discarded;

ensure that an insertion flag maintained in the data structure is set;

receive an RTP packet intended for transmission to the user device via the RTP stream;

analyze the insertion sequence number and the insertion flag maintained in the data structure; and

discard or forward the RTP packet based on the analyze.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2024
From: CITIZENS BANK, N.A.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 067822/0433 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 044978/0801 Recorded Dec 6, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 058949/0497 →
SECURITY INTEREST Recorded Mar 3, 2020
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052076/0905 →
CHANGE OF NAME Recorded Jan 16, 2019
From: SONUS NETWORKS, INC.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
Reel/Frame 048078/0036 →
SECURITY INTEREST Recorded Jan 2, 2018
From: GENBAND US LLC; SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 044978/0801 →
CHANGE OF NAME Recorded Dec 24, 2017
From: SONUS, INC.
To: SONUS NETWORKS, INC.
Reel/Frame 044957/0213 →
MERGER AND CHANGE OF NAME Recorded Dec 24, 2017
From: SOLSTICE SAPPHIRE, INC.; SONUS NETWORKS, INC.; SONUS NETWORKS, INC.
To: SONUS, INC.
Reel/Frame 044957/0243 →
RELEASE OF SECURITY INTEREST Recorded Oct 24, 2017
From: BANK OF AMERICA, N.A.
To: SONUS NETWORKS, INC.; SONUS FEDERAL, INC.; NETWORK EQUIPMENT TECHNOLOGIES, INC.; PERFORMANCE TECHNOLOGIES, INCORPORATED; SONUS INTERNATIONAL, INC.; TAQUA, INC.
Reel/Frame 044283/0361 →
SECURITY INTEREST Recorded Sep 12, 2014
From: SONUS NETWORKS, INC.; SONUS FEDERAL, INC.; NETWORK EQUIPMENT TECHNOLOGIES, INC.; PERFORMANCE TECHNOLOGIES, INCORPORATED; SONUS INTERNATIONAL, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033728/0409 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2011
From: LI, SHIPING; ASVEREN, TOLGA; CONGER, KEITH M.; GRIPPO, RONALD V.
To: SONUS NETWORKS, INC.
Reel/Frame 027291/0408 →