IP Library Granted Patent US 7,072,341
Granted Patent B2
US 7,072,341 · App. 10/077,510 · Granted Jul 4, 2006

Real time streaming media communication system

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,072,341
App. No.
10/077,510
Granted
Jul 4, 2006
Kind
B2
Abstract

A device provides for sending datagrams representing real time streaming media frames to a client independent of whether the client is served by a network address proxy. The device receives a datagram originated by the client that includes an indicated network address and an indicated port number for receipt of the datagrams representing real time streaming media frames, extracts a source network address and a source port number from the datagram originated by the client, and compares the indicated network address to the source network address. The device addresses the datagrams representing real time streaming media frames to the source network address and source port number if the indicated network address and the source network address are not the same.

Claims (136)

1. A system for sending media session datagrams representing real time streaming media frames to a caller client independent of whether the caller client is served by a network address translation proxy, the system comprising:

a directory server:

receiving a registration request originated by the caller client;

extracting a source network address and a source port number from the registration request to identify an open signaling channel to the caller client from the directory server that can be reverse translated by the network address translation proxy;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel, the response signal including the real time protocol channel of the call control manager; and

the call control manager:

providing the real time protocol channel to the directory server;

receiving a media session datagram from the caller client to the real time protocol channel;

extracting a source network address and a source port number from the media session datagram to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from a callee client to the caller client on the open media channel.

2. The system of claim 1 , wherein the directory server further:

writes the extracted source network address and port number to an open signaling channel field of a client database;

periodically receives a UDP datagram comprising a ping message from the caller client; and

updates the network address and port number stored in the open signaling channel field in the client database to reflect a source network address and source port number extracted from the UDP datagram; and

returning the response signal to the caller client on the open signaling channel comprises looking up the network address and port number of the open signaling channel in the client database.

3. A system for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the system comprising:

a directory server:

periodically receiving a UDP datagram comprising a ping message from the caller client;

updating an open signaling channel field in a client database to reflect a source network address and a source port number extracted from the UDP datagram;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel field associated with the caller client in the client database, the response signal including the real time protocol channel of the call control manager; and

the call control manager:

providing the real time protocol channel to the directory server;

receiving a media session datagram from the caller client to the real time protocol channel;

extracting a source network address and a source port number from the session datagram to identify an open media channel to the caller client form the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagram received from a callee client to the caller client on the open media channel.

4. A system for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the system comprising:

a directory server:

receiving a registration request originated by the caller client

extracting a source network address and a source port number from the registration request;

if the extracted source network address matches a client network address of the registration request, determining that the caller client is not served by a network address translation firewall and recording such determination in a client database;

if the extracted source network address is different than a client network address of the registration request, determining that the caller client is served by a network address translation firewall and recording the extracted source network address and source port number in the client database;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel recorded in the client database, the response signal including:

the real time protocol channel of the call control manager if the record in the client database indicates that the caller client is served by a network address translation firewall; and

a real time protocol channel of a callee client identified in the media session signaling request if the record in the client database indicates that the caller client is not served by a network address translation firewall; and

the call control manager:

providing the real time protocol channel of the call control manager to the directory server;

receiving a media session datagram addressed to the real time protocol channel of the call control manager by the caller client;

extracting a source network address and a source port number from the media session datagram to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from the callee client to the caller client on the open media channel.

5. A system for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the system comprising:

a directory server:

receiving a registration request originated by the caller client;

extracting a source network address and a source port number from the registration request;

if the extracted source network address matches a client network address of the registration request, determining that the caller client is not serviced by a network address translation firewall and recording such determination in a client database;

if the extracted source network address is different than a client network address of the registration request, determining that the caller client is served by a network address translation firewall and recording the extracted source network address and source port number in the client database as an open signaling channel to the caller client;

periodically receiving a UDP datagram comprising a ping message from the caller client;

updating the open signaling channel to the caller client in the client database to reflect a source network address and a source port number extracted from the UDP datagram;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel recorded in the client database, the response signal including:

the real time protocol channel of the call control manager if the record in the client database indicates that the caller client is served by a network address translation firewall; and

a real time protocol channel of a callee client identified in the media session signaling request if the record in the client database indicates that the caller client is not served by a network address translation firewall; and

the call control manager:

providing the real time protocol channel of the call control manager to the directory server;

receiving a media session datagram addressed to the real time protocol channel of the call control manager by the caller client;

extracting a source network address and a source port number from the media session datagram to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from the callee client to the caller client on the open media channel.

6. A method for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the method comprising:

operating a directory server for:

receiving a registration request datagram originated by the caller client;

extracting a source network address and a source port number from the registration request to identify an open signaling channel to the caller client from the directory server that can be reverse translated by the network address translation proxy;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel, the response signaling including the real time protocol channel of the call control manager; and

operating the call control manager for:

providing the real time protocol channel to the directory server;

receiving a media session datagram from the caller client to the real time protocol channel;

extracting a source network address and a source port number from the media session datagram to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from a callee client to the caller client on the open media channel.

7. The method of claim 6 , wherein the directory server further:

writes the extracted source network address and port number to an open signaling channel field of a client database;

periodically receives a UDP datagram comprising a ping message from the caller client; and

updates the network address and port number stored in the open signaling channel field in the client database to reflect a source network address and source port number extracted from the UDP datagram; and

returning the response signal to the caller client on the open signaling channel comprises looking up the network address and port number of the open signaling channel in the client database.

8. A method for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the method comprising:

operating a directory server for:

periodically receiving a UDP datagram comprising a ping message from the caller client;

updating an open signaling channel field in a client database to reflect a source network address and a source port number extracted from the UDP datagram;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel associated with the caller client in the client database the response signal including the real time protocol channel of the call control manager; and

operating the call control manager for:

providing the real time protocol channel to the directory server;

receiving a media session datagram originated by the caller client that includes a real time streaming media frame;

extracting a source network address and a source port number from the media session datagram originated by the client to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from a callee client to the caller client on the open media channel.

9. A method for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the method comprising:

operating a directory server for:

receiving a registration request datagram originated by the caller client;

extracting a source network address and a source port number from the registration request datagram;

if the extracted source network address matches a client network address of the registration request, determining that the caller client is not served by a network address translation firewall and recording such determination in a client database;

if the extracted source network address is different than a client network address of the registration request, determining that the caller client is served by a network address translation firewall and recording the extracted source network address and source port number in the client database;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel recorded in the client database, the response signal including:

the real time protocol channel of the call control manager if the record in the client database indicates that the caller client is served by a network address translation firewall; and

a real time protocol channel of a callee client identified in the media session signaling request if the record in the client database indicates that the caller client is not served by a network address translation firewall; and

operating the call control manager for:

providing the real time protocol channel of the call control manager to the directory server;

receiving a media session datagram addressed to the real time protocol channel of the call control manager by the caller client;

extracting a source network address and a source port number from the media session datagram to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from the callee client to the caller client on the open media channel.

10. A method for sending media session datagrams representing real time streaming frames to a caller client independent of whether the caller client is served by a network address translation proxy, the method comprising:

operating a directory server for:

receiving a registration request datagram originated by the caller client;

extracting a source network address and a source port number from the registration request;

if the extracted source network address matches a client network address of the registration request, determining that the caller client is not serviced by a network address translation firewall and recording such determination in a client database;

if the extracted source network address is different than a client network address of the registration request, determining that the caller client is served by a network address translation firewall and recording the extracted source network address and source port number in the client database as an open signaling channel to the caller client;

periodically receiving a UDP datagram comprising a ping message from the caller client;

updating the open signaling channel to the caller client in the client database to reflect a source network address and a source port number extracted from the UDP datagram;

receiving a media session signaling request originated by the caller client;

obtaining a real time protocol channel from a call control manager;

returning a response signal to the caller client on the open signaling channel recorded in the client database, the response signal including:

the real time protocol channel of the call control manager if the record in the client database indicates that the caller client is served by a network address translation firewall; and

a real time protocol channel of a callee client identified in the media session signaling request if the record in the client database indicates that the caller client is not served by a network address translation firewall; and

operating the call control manager for:

providing the real time protocol channel of the call control manager to the directory server;

receiving a media session datagram addressed to the real time protocol channel of the call control manager by the caller client;

extracting a source network address and a source port number from the media session datagram to identify an open media channel to the caller client from the call control manager that can be reverse translated by the network address translation proxy; and

relaying media session datagrams received from the callee client to the caller client on the open media channel.

11. The system of claim 4 , wherein, if the extracted source network address is different than a client network address of the registration request, the directory server further:

writes the extracted source network address and port number to an open signaling channel field of a client database;

periodically receives a UDP datagram comprising a ping message from the caller client; and

updates the network address and port number stored in the open signaling channel field in the client database to reflect a source network address and source port number extracted from the UDP datagram; and

returning the response signal to the caller client on the open signaling channel comprises looking up the network address and port number of the open signaling channel in the client database.

12. The method of claim 9 , wherein, if the extracted source network address is different than a client network address of the registration request, the directory server further:

writes the extracted source network address and port number to an open signaling channel field of a client database;

periodically receives a UDP datagram comprising a ping message from the caller client; and

updates the network address and port number stored in the open signaling channel field in the client database to reflect a source network address and source port number extracted from the UDP datagram; and

returning the response signal to the caller client on the open signaling channel comprises looking up the network address and port number of the open signaling channel in the client database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: GREEN FIELD, SERIES 93 OF ALLIED SECURITY TRUST I
To: PALO ALTO NETWORKS, INC.
Reel/Frame 064259/0425 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: INNOMEDIA PTE LTD.
To: GREEN FIELD, SERIES 93 OF ALLIED SECURITY TRUST I
Reel/Frame 059250/0536 →