Patent ID: 8000325

Claim:
A computer-implemented method for establishing and maintaining a communication session between first and second endpoints in a peer-to-peer network using a non-proprietary protocol, the method comprising: sending a STUN (Simple Traversal of UDP through NATs (Network Address Translation)) request from the first endpoint to a STUN server prior to an authentication process with an access server; using information received from the STUN server in response to the STUN request during the authentication process; determining by the access server that the second endpoint is behind a device that will prevent it from receiving messages initiated by the first endpoint; instructing the second endpoint by the access server to periodically send a message to the access server to maintain a first communication channel through the device; prior to sending a profile and a routing table to the first endpoint, instructing the second endpoint by the access server via the first communication channel to send a message to the first endpoint to open a second communication channel through the device for the first endpoint, wherein the first endpoint's notification message can traverse the device through the second communication channel to reach the second endpoint; retrieving the profile and the routing table from the access server by the first endpoint during the authentication process, wherein the profile identifies the second endpoint as an endpoint with which the first endpoint has permission to communicate, and the routing table contains address information needed for the first endpoint to communicate directly with the second endpoint; and sending a notification message from the first endpoint directly to the second endpoint using the address information to inform the second endpoint that the first endpoint is online.