System and method for peer-to-peer hybrid communications
First Claim
Patent Images
1. A method executable by a first endpoint for establishing and maintaining a communication session with a second endpoint in a peer-to-peer network comprising:
- sending, by the first endpoint, an authentication message to an access server;
receiving, by the first endpoint, a profile and a routing table from the access server in response to the authentication message and storing the profile and routing table on the first endpoint, wherein the profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates a status of the second endpoint as available, and the routing table contains address information needed for the first endpoint to communicate directly with the second endpoint;
sending, by the first endpoint, a first notification message directly to the second endpoint, wherein the first notification message informs the second endpoint that the first endpoint is available for a communication session with the second endpoint and includes address information including a first port needed for the second endpoint to communicate with the first endpoint;
detecting, by the first endpoint, that the first endpoint is idle after sending the first notification message and selecting a random unused second port of the first endpoint with which to listen for communications;
informing, by the first endpoint, the access server of the selected second port;
sending, by the first endpoint, a second notification message directly to the second endpoint, wherein the second notification message informs the second endpoint of the selected second port; and
establishing, by the first endpoint, a communication session directly with the second endpoint, wherein all signaling and media traffic messages are send directly from the first endpoint to the second endpoint and from the second endpoint to the first endpoint.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved system and method are disclosed for peer-to-peer communications. In one example, the method enables two endpoints to directly establish and maintain a communication session after authenticating with an access server.
186 Citations
18 Claims
-
1. A method executable by a first endpoint for establishing and maintaining a communication session with a second endpoint in a peer-to-peer network comprising:
-
sending, by the first endpoint, an authentication message to an access server; receiving, by the first endpoint, a profile and a routing table from the access server in response to the authentication message and storing the profile and routing table on the first endpoint, wherein the profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates a status of the second endpoint as available, and the routing table contains address information needed for the first endpoint to communicate directly with the second endpoint; sending, by the first endpoint, a first notification message directly to the second endpoint, wherein the first notification message informs the second endpoint that the first endpoint is available for a communication session with the second endpoint and includes address information including a first port needed for the second endpoint to communicate with the first endpoint; detecting, by the first endpoint, that the first endpoint is idle after sending the first notification message and selecting a random unused second port of the first endpoint with which to listen for communications; informing, by the first endpoint, the access server of the selected second port; sending, by the first endpoint, a second notification message directly to the second endpoint, wherein the second notification message informs the second endpoint of the selected second port; and establishing, by the first endpoint, a communication session directly with the second endpoint, wherein all signaling and media traffic messages are send directly from the first endpoint to the second endpoint and from the second endpoint to the first endpoint.
-
-
2. A method executable by a first endpoint for establishing and maintaining a communication session with a second endpoint in a peer-to-peer network comprising:
-
sending, by the first endpoint, an authentication message to an access server; receiving, by the first endpoint, a profile and a routing table from the access server in response to the authentication message and storing the profile and routing table on the first endpoint, wherein the profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates a status of the second endpoint as available, and the routing table contains address information needed for the first endpoint to communicate directly with the second endpoint, and wherein the profile further indicates that a plurality of endpoints other than the second endpoint have expressly granted the first endpoint permission to communicate and indicates a status of each of the plurality of endpoints as available or unavailable; sending, by the first endpoint, a first notification message directly to the second endpoint, wherein the first notification message informs the second endpoint that the first endpoint is available for a communication session with the second endpoint and includes address information including a first port needed for the second endpoint to communicate with the first endpoint; sending, by the first endpoint, a separate notification message directly to each of the plurality of endpoints other than the second endpoint having a status of available prior to selecting the random unused second port, wherein the separate notification message informs each of the plurality of endpoints having a status of available that the first endpoint is available for a communication session and includes address information including the first port needed for each of the plurality of endpoints to communicate with the first endpoint; detecting, by the first endpoint, that the first endpoint is idle after sending the first notification message and selecting a random unused second port of the first endpoint with which to listen for communications; informing, by the first endpoint, the access server of the selected second port; sending, by the first endpoint, a second notification message directly to the second endpoint, wherein the second notification message informs the second endpoint of the selected second port; and sending, by the first endpoint, an update notification message directly to each of the plurality of endpoints other than the second endpoint having a status of available after selecting the random unused second port, wherein the update notification message informs each of the plurality of endpoints having a status of available of the selected second port.
-
-
3. A method executable by a first endpoint for establishing and maintaining a communication session with a second endpoint in a peer-to-peer network comprising:
-
sending, by the first endpoint, an authentication message to an access server; receiving, by the first endpoint, a profile and a routing table from the access server in response to the authentication message and storing the profile and routing table on the first endpoint, wherein the profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates a status of the second endpoint as available, and the routing table contains address information needed for the first endpoint to communicate directly with the second endpoint; sending, by the first endpoint, a first notification message directly to the second endpoint, wherein the first notification message informs the second endpoint that the first endpoint is available for a communication session with the second endpoint and includes address information including a first port needed for the second endpoint to communicate with the first endpoint; detecting, by the first endpoint, that the first endpoint is idle after sending the first notification message and selecting a random unused second port of the first endpoint with which to listen for communications; informing, by the first endpoint, the access server of the selected second port; sending, by the first endpoint, a second notification message directly to the second endpoint, wherein the second notification message informs the second endpoint of the selected second port; receiving, by the first endpoint via the first port prior to selecting the random unused second port, a third notification message sent directly to the first endpoint from a third endpoint that had a status of unavailable when the first endpoint received the profile and the routing table from the access server, wherein the third notification message informs the first endpoint that the third endpoint is available; marking, by the first endpoint, a status of the third endpoint as available in the profile on the first endpoint after receiving the third notification message; and sending, by the first endpoint, a fourth notification message directly to the third endpoint after selecting the random unused second port, wherein the fourth notification message informs the third endpoint of the selected second port.
-
-
4. A method executable by a first endpoint for establishing and maintaining a communication session with a second endpoint in a peer-to-peer network comprising:
-
sending, by the first endpoint, an authentication message to an access server; receiving, by the first endpoint, a profile and a routing table from the access server in response to the authentication message and storing the profile and routing table on the first endpoint, wherein the profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates a status of the second endpoint as available, and the routing table contains address information needed for the first endpoint to communicate directly with the second endpoint; sending, by the first endpoint, a first notification message directly to the second endpoint, wherein the first notification message informs the second endpoint that the first endpoint is available for a communication session with the second endpoint and includes address information including a first port needed for the second endpoint to communicate with the first endpoint; detecting, by the first endpoint, that the first endpoint is idle after sending the first notification message and selecting a random unused second port of the first endpoint with which to listen for communications; informing, by the first endpoint, the access server of the selected second port; sending, by the first endpoint, a second notification message directly to the second endpoint, wherein the second notification message informs the second endpoint of the selected second port; receiving, by the first endpoint via the selected second port, a third notification message sent directly to the first endpoint from a third endpoint that had a status of unavailable when the first endpoint received the profile and the routing table from the access server, wherein the third notification message informs the first endpoint that the third endpoint is available; and marking, by the first endpoint, a status of the third endpoint as available in the profile on the first endpoint after receiving the third notification message.
-
-
5. A first endpoint device comprising:
-
a hardware platform; and an architecture having a graphical user interface (GUI) configured to provide user access to an endpoint engine; an operating system configured to provide access to the hardware platform; and the endpoint engine coupled to the GUI and the operating system, the endpoint engine having a plurality of functional components configured for; sending an authentication message to an access server; receiving a profile and a routing table from the access server in response to the authentication message and storing the profile and routing table on the first endpoint, wherein the profile indicates that a second endpoint device has expressly granted the first endpoint device permission to communicate with the second endpoint device and indicates a status of the second endpoint device as available, and the routing table contains address information needed for the first endpoint device to communicate directly with the second endpoint device; sending a first notification message directly to the second endpoint device, wherein the first notification message informs the second endpoint device that the first endpoint device is available for a communication session with the second endpoint device and includes address information including a first port needed for the second endpoint device to communicate with the first endpoint device; detecting that the first endpoint device is idle and selecting a random unused second port of the first endpoint device with which to listen for communications; informing the access server of the selected second port; sending a second notification message directly to the second endpoint device, wherein the second notification message informs the second endpoint device of the selected second port; and establishing a communication session directly with the second endpoint device, wherein all signaling and media traffic messages are send directly from the first endpoint device to the second endpoint device and from the second endpoint device to the first endpoint device. - View Dependent Claims (6, 7)
-
-
8. A method executable by an access server for aiding in the establishment of a communication session among a plurality of endpoints in a peer-to-peer network comprising:
-
authenticating, by the access server, a first endpoint and a second endpoint of the plurality of endpoints, wherein each of the plurality of endpoints is registered with the access server, and wherein the authenticating logs the first endpoint and second endpoint into the access server; updating, by the access server, a status of the first and second endpoints as available; sending, by the access server, a first profile and a first routing table to the first endpoint, wherein the first profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates the status of the second endpoint as available, and the first routing table contains address information needed for the first endpoint to communicate directly with the second endpoint; sending, by the access server, a second profile and a second routing table to the second endpoint, wherein the second profile indicates that the first endpoint has expressly granted the second endpoint permission to communicate with the first endpoint and indicates the status of the first endpoint as available, and the second routing table contains address information needed for the second endpoint to communicate directly with the first endpoint; receiving, by the access server, a first notification message from the first endpoint after the sending of the first and second profiles, wherein the first notification message informs the access server that the first endpoint is unavailable; updating, by the access server, the status of the first endpoint as unavailable in response to the first notification message, wherein the access server does not notify the second endpoint of the updated status of the first endpoint after receiving the first notification message as long as the second endpoint remains logged in to the access server; receiving, by the access server, a second notification message from the first endpoint after the receiving of the first notification message, wherein the second notification message informs the access server that the first endpoint is available; and updating, by the access server, the status of the first endpoint as available in response to the second notification message, wherein the access server does not notify the second endpoint of the updated status of the first endpoint after receiving the second notification message as long as the second endpoint remains logged in to the access server. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. An access system comprising:
-
a server having a network communication interface; and a memory coupled to the server, wherein the server is configured to use information stored in the memory to aid in the establishment of a communication session among a plurality of endpoints in a peer-to-peer network by; authenticating a first endpoint and a second endpoint of the plurality of endpoints, wherein each of the plurality of endpoints is registered with the access server, and wherein the authenticating logs the first endpoint and second endpoint into the access server; updating a status of the first and second endpoints as available; sending a first profile and a first routing table to the first endpoint, wherein the first profile indicates that the second endpoint has expressly granted the first endpoint permission to communicate with the second endpoint and indicates the status of the second endpoint as available, and the first routing table contains address information needed for the first endpoint to communicate directly with the second endpoint; sending a second profile and a second routing table to the second endpoint, wherein the second profile indicates that the first endpoint has expressly granted the second endpoint permission to communicate with the first endpoint and indicates the status of the first endpoint as available, and the second routing table contains address information needed for the second endpoint to communicate directly with the first endpoint; receiving a first notification message from the first endpoint after the sending of the first and second profiles, wherein the first notification message informs the access server that the first endpoint is unavailable; updating the status of the first endpoint as unavailable in response to the first notification message, wherein the access server does not notify the second endpoint of the updated status of the first endpoint after receiving the first notification message as long as the second endpoint remains logged in to the access server; receiving a second notification message from the first endpoint after the receiving of the first notification message, wherein the second notification message informs the access server that the first endpoint is available; and updating the status of the first endpoint as available in response to the second notification message, wherein the access server does not notify the second endpoint of the updated status of the first endpoint after receiving the second notification message as long as the second endpoint remains logged in to the access server. - View Dependent Claims (17, 18)
-
Specification