Patent ID: 8467387

Claim:
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.