A computer-implemented method for establishing a real-time streaming communication session between a plurality of endpoints in a peer-to-peer network, the method comprising: retrieving a profile and a routing table from an access server by a first endpoint during an authentication process, wherein the profile identifies one or more endpoints from the plurality of endpoints 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 any of said one or more endpoints, and wherein the profile indicates the status of the plurality of endpoints; sending a notification message, using the address information, from the first endpoint directly to each of the one or more endpoints whose status indicates that it is online, to inform said one or more endpoints that the first endpoint is online, wherein said notification message is sent to a second endpoint and a third endpoint of the one or more endpoints; sending a request message from the first endpoint directly to the second endpoint and third endpoint using the address information to request the establishment of a real time data streaming communication session; receiving first and second response messages by the first endpoint directly from the second endpoint and third endpoint, respectively; establishing the real time data streaming communication session by the first endpoint directly with each of the second endpoint and third endpoint only if the respective first and second response messages grant permission; and directly streaming data in real time from the first endpoint simultaneously to the second endpoint and third endpoint, wherein all signaling and media traffic messages are sent directly from the first endpoint to the second endpoint and third endpoint and received by the first endpoint directly from the second endpoint and third endpoint. retrieving a profile and a routing table from an access server by a first endpoint during an authentication process, wherein the profile identifies one or more endpoints from the plurality of endpoints 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 any of said one or more endpoints, and wherein the profile indicates the status of the plurality of endpoints; sending a notification message, using the address information, from the first endpoint directly to each of the one or more endpoints whose status indicates that it is online, to inform said one or more endpoints that the first endpoint is online, wherein said notification message is sent to a second endpoint and a third endpoint of the one or more endpoints; sending a request message from the first endpoint directly to the second endpoint and third endpoint using the address information to request the establishment of a real time data streaming communication session; receiving first and second response messages by the first endpoint directly from the second endpoint and third endpoint, respectively; establishing the real time data streaming communication session by the first endpoint directly with each of the second endpoint and third endpoint only if the respective first and second response messages grant permission; and directly streaming data in real time from the first endpoint simultaneously to the second endpoint and third endpoint, wherein all signaling and media traffic messages are sent directly from the first endpoint to the second endpoint and third endpoint and received by the first endpoint directly from the second endpoint and third endpoint.