IP Library Granted Patent US 8,681,776
Granted Patent B2
US 8,681,776 · App. 11/580,224 · Granted Mar 25, 2014

Methods, systems and computer program products for storing communication session information at a network interface module

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,776
App. No.
11/580,224
Granted
Mar 25, 2014
Kind
B2
Abstract

The subject matter described herein includes methods, systems, and computer program products for storing communication session information at a network interface module. One method described herein includes receiving a plurality of RTCP packets associated with a communication session at a network interface module. RTCP information is extracted from at least one of the packets. The extracted RTCP information is stored in memory local to the network interface module.

Claims (63)

1. A method for storing communication session information at a network interface module, the method comprising:

(a) receiving, at a network interface module of a network node, a plurality of real time transport control protocol (RTCP) packets associated with a communication session;

(b) extracting, using a network processor located on the network interface module, RTCP information from at least one of the RTCP packets, wherein extracting the RTCP information includes using the network processor located on the network interface module to extract the RTCP information from fields of an RTCP portion of the at least one RTCP packet;

(c) storing, using the network processor located on the network interface module, the extracted RTCP information in memory located on the network interface module, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from the at least one of the RTCP packets; using the extracted IP address and UDP port number as a search key to identify an area in the memory allocated for the communication session; and storing the extracted RTCP information in the identified area in the memory allocated for the communication session; and

(d) using the network processor to forward incoming packets to an appropriate voice server module of a plurality of voice server modules and to forward outbound media packets over a communications network.

2. The method of claim 1 wherein receiving a plurality of RTCP packets associated with a communication session includes receiving the plurality of RTCP packets associated with the communication session at a media gateway.

3. The method of claim 2 wherein the network interface module comprises an Internet protocol (IP) network interface module of the media gateway.

4. The method of claim 1 wherein receiving the plurality of RTCP packets associated with the communication session includes receiving RTCP packets associated with a voice over Internet protocol (VoIP)-to-VoIP call session, and further comprising routing the RTCP packets from the network interface module to another network interface module in the network node in a manner that bypasses a voice server module in the network node.

5. The method of claim 1 wherein receiving a plurality of RTCP packets associated with a communication session includes receiving a plurality of RTCP packets associated with a voice over Internet protocol (VoIP)-to-time division multiplexing (TDM) call session and further comprising forwarding the plurality of RTCP packets to a voice server module in the network node.

6. The method of claim 1 wherein storing the extracted RTCP information comprises:

(a) allocating memory associated with the network interface module for the communication session; and

(b) writing the extracted RTCP information to the allocated memory.

7. The method of claim 1 wherein storing the extracted RTCP information comprises:

(a) extracting session identification information from the at least one RTCP packet for use as a search key for locating a record in the memory allocated to store RTCP information from the at least one RTCP packet;

(b) searching the memory using the search key; and

(c) in response to locating a record corresponding to the search key, updating RTCP information stored in the record with the extracted RTCP information.

8. The method of claim 7 wherein extracting session identification information from the at least one RTCP packet includes extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number.

9. The method of claim 1 wherein storing the extracted RTCP information comprises storing at least one of a sender's packet count, the sender's octet count, a fraction of packets lost, a cumulative number of packets lost, and packet interarrival jitter.

10. A method for storing communication session information at a network interface module, the method comprising:

(a) receiving, at the network interface module of a network node, a plurality of real time transport control protocol (RTCP) packets associated with a communication session, wherein receiving the plurality of RTCP packets associated with the communication session includes receiving the plurality of RTCP packets associated with the communication session at a session border controller (SBC);

(b) extracting, using a network processor located on the network interface module, RTCP information from at least one of the RTCP packets;

(c) storing, using the network processor located on the network interface module, the extracted RTCP information in memory located on the network interface module, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from the at least one of the RTCP packets; using the extracted IP address and UDP port number as a search key to identify an area in the memory allocated for the communication session; and storing the extracted RTCP information in the identified area in the memory allocated for the communication session; and

(d) using the network processor to forward incoming packets to an appropriate voice server module of a plurality of voice server modules and to forward outbound media packets over a communications network.

11. A method for storing communication session information at a network interface module, the method comprising:

(a) receiving, at the network interface module of a network node, a plurality of real time transport control protocol (RTCP) packets associated with a communication session;

(b) extracting, using a network processor located on the network interface module, RTCP information from at least one of the RTCP packets;

(c) storing, using the network processor located on the network interface module, the extracted RTCP information in memory located on the network interface module, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from the at least one of the RTCP packets; using the extracted IP address and UDP port number as a search key to identify an area in the memory allocated for the communication session; and storing the extracted RTCP information in the identified area in the memory allocated for the communication session, and wherein storing the extracted RTCP information includes allocating storage space in one of random access memory (RAM) of the network interface module and content addressable memory (CAM) of the network interface module; and

(d) using the network processor to forward incoming packets to an appropriate voice server module of a plurality of voice server modules and to forward outbound media packets over a communications network.

12. A system for storing communication session information, the system comprising:

a network node including:

(a) a plurality of voice server modules configured to process voice packets associated with a communication session and send real time transport control protocol (RTCP) packets to and receive RTCP packets from a network;

(b) a plurality of network interface modules for sending the voice and RTCP packets to and receiving the voice and RTCP packets from the network, wherein at least one of the network interface modules includes: an RTCP caching module for extracting, using a network processor located on the at least one network interface module, RTCP information from at least one of the RTCP packets, wherein extracting the RTCP information includes using the network processor located on the at least one network interface module to extract the RTCP information from fields of an RTCP portion of the at least one RTCP packet; and an RTCP cache including memory located on the at least one network interface module for storing the extracted RTCP information from the received RTCP packets, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from the at least one of the RTCP packets; using the extracted IP address and UDP port number as a search key to identify an area in the memory allocated for the communication session; and storing the extracted RTCP information in the identified area in the memory allocated for the communication session; and

wherein the network processor is configured to forward incoming packets to an appropriate voice server module of the plurality of voice server modules and to forward outbound media packets over a communications network.

13. The system of claim 12 wherein the network node comprises a media gateway.

14. The system of claim 12 wherein the processor located on the at least one network interface module comprises a network processor of the at least one network interface module.

15. The system of claim 12 wherein the at least one network interface module comprises an Internet protocol (IP) network interface module.

16. The system of claim 12 wherein the at least one network interface module is adapted to receive and route packets associated with a voice over Internet protocol (VoIP)-to-VoIP call session that does not require transcoding to another of the network interface modules in a manner that bypasses the voice processing resources.

17. The system of claim 12 wherein the at least one network interface module is adapted to route packets associated with a voice over Internet protocol (VoIP)-to-time division multiplexing (TDM) call session that requires transcoding to one of the voice processing resources.

18. The system of claim 12 wherein the RTCP caching module is adapted to:

(a) allocate memory in the RTCP cache for at least one of the communication sessions; and

(b) write the RTCP information from the at least one of the RTCP packets to the allocated memory.

19. The system of claim 12 wherein the RTCP caching module is adapted to:

(a) extract session identification information from one of the received RTCP packets for use as a search key for locating a record in the RTCP cache for storing RTCP information for at least one of the communications sessions; and

(b) in response to locating a record using the search key, to update RTCP information stored in the record with RTCP information extracted from the one of the received RTCP packets.

20. The system of claim 19 wherein the RTCP caching module is adapted to extract an Internet protocol (IP) address and a user datagram protocol (UDP) port number from the one of the received RTCP packets for use as the search key.

21. The system of claim 19 wherein the RTCP caching module is adapted to, in response to failing to locate the stored RTCP information, allocate space in the RTCP cache and store the RTCP information extracted from the one received packet in the allocated space.

22. The system of claim 12 wherein the RTCP caching module is adapted to store at least one of a packet sender's packet count, the packet sender's octet count, and a fraction of packets lost, a cumulative number of packets lost, and packet interarrival jitter for the RTCP packets in the RTCP cache.

23. The system of claim 12 comprising a central processing unit (CPU) wherein the CPU controls overall operation of the network node, and wherein the RTCP caching module and the RTCP cache are separate from the CPU.

24. A system for storing communication session information, the system comprising:

a network node including:

(a) a plurality of voice server modules configured to process voice packets associated with a communication session and send real time transport control protocol (RTCP) packets to and receive RTCP packets from a network;

(b) a plurality of network interface modules for sending the voice and RTCP packets to and receiving the voice and RTCP packets from the network, wherein at least one of the network interface modules includes an RTCP caching module implemented by a network processor located on the at least one network interface module for extracting and storing, on the at least one network interface module, RTCP information extracted from the RTCP packets, and an RTCP cache for caching the RTCP information, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from at least one of the RTCP packets associated with the communication session; using the extracted IP address and UDP port number as a search key to identify an area in the RTCP cache allocated for the communication session; and storing the extracted RTCP information in the identified area in the RTCP cache allocated for the communication session, and wherein the network node comprises a session border controller (SBC); and

wherein the network processor is configured to forward incoming packets to an appropriate voice server module of the plurality of voice server modules and to forward outbound media packets over a communications network.

25. A system for storing communication session information, the system comprising:

a network node including:

(a) a plurality of voice server modules configured to process voice packets associated with a communication session and send real time transport control protocol (RTCP) packets to and receive RTCP packets from a network;

(b) a plurality of network interface modules for sending the voice and RTCP packets to and receiving the voice and RTCP packets from the network, wherein at least one of the network interface modules includes an RTCP caching module implemented by a network processor located on the network interface module for extracting RTCP information from received RTCP packets and storing, on the at least one network interface module, RTCP information extracted from the RTCP packets, and an RTCP cache for caching the RTCP information at the network interface module, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from at least one of the RTCP packets associated with the communication session; using the extracted IP address and UDP port number as a search key to identify an area in the RTCP cache allocated for the communication session; and storing the extracted RTCP information in the identified area in the RTCP cache allocated for the communication session, and wherein the RTCP cache comprises one of a random access memory (RAM) and a content addressable memory (CAM); and

wherein the network processor is configured to forward incoming packets to an appropriate voice server module of the plurality of voice server modules and to forward outbound media packets over a communications network.

26. A computer program product comprising computer executable instructions embodied in a non-transitory computer readable medium for performing steps comprising:

(a) receiving, at a network interface module of a network node, a plurality of real time transport control protocol (RTCP) packets associated with a communication session;

(b) extracting, using a network processor at the network interface module, RTCP information from at least one of the RTCP packets, wherein extracting the RTCP information includes using the network processor located on the network interface module to extract the RTCP information from fields of an RTCP portion of the at least one RTCP packet;

(c) storing, using the network processor located on the network interface module, the extracted RTCP information in memory located on the network interface module, wherein storing the extracted RTCP information includes: extracting an Internet protocol (IP) address and a user datagram protocol (UDP) port number from the at least one of the RTCP packets; using the extracted IP address and UDP port number as a search key to identify an area in the memory allocated for the communication session; and storing the extracted RTCP information in the identified area in the memory allocated for the communication session; and

(d) using the network processor to forward incoming packets to an appropriate voice server module of a plurality of voice server modules and to forward outbound media packets over a communications network.

Assignments (16)
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 →
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 →
SECURITY INTEREST Recorded Jan 2, 2018
From: GENBAND US LLC; SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 044978/0801 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Dec 29, 2017
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: GENBAND US LLC
Reel/Frame 044986/0303 →
CORRECTIVE ASSIGNMENT TO CORRECT PATENT NO. 6381239 PREVIOUSLY RECORDED AT REEL: 039269 FRAME: 0234. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Jan 3, 2017
From: GENBAND US LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041422/0080 →
RELEASE AND REASSIGNMENT OF PATENTS Recorded Jul 7, 2016
From: COMERICA BANK, AS AGENT
To: GENBAND US LLC
Reel/Frame 039280/0467 →
PATENT SECURITY AGREEMENT Recorded Jul 6, 2016
From: GENBAND US LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 039269/0234 →
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2014
From: ONE EQUITY PARTNERS III, L.P., AS COLLATERAL AGENT
To: GENBAND US LLC
Reel/Frame 031968/0955 →
SECURITY AGREEMENT Recorded Nov 9, 2010
From: GENBAND US LLC
To: COMERICA BANK
Reel/Frame 025333/0054 →
PATENT SECURITY AGREEMENT Recorded Jun 18, 2010
From: GENBAND US LLC
To: ONE EQUITY PARTNERS III, L.P., AS COLLATERAL AGENT
Reel/Frame 024555/0809 →
CHANGE OF NAME Recorded Jun 2, 2010
From: GENBAND INC.
To: GENBAND US LLC
Reel/Frame 024468/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2009
From: SANTERA SYSTEMS, LLC
To: GENBAND, INC.
Reel/Frame 023471/0754 →
MERGER Recorded Jan 22, 2009
From: SANTERA SYSTEMS, INC.
To: SANTERA SYSTEMS, LLC
Reel/Frame 022151/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2006
From: LU, DAVID Z.; LI, SAN-QI
To: SANTERA SYSTEMS, INC.
Reel/Frame 018547/0164 →