Patent ID: 9531667
Filing Date: 2016-12-27
CPC Classification: H04L

Claim Text:
1. Apparatus to enable first and second mobile device peers to communicate with one another, each peer being associated with a respective Network Address Translation (NAT) device, comprising; an overlay network comprising hardware processing elements and associated computer memories: first computer program code computer executable in a hardware processing element of the overlay network as a domain name service (DNS) directory service to receive DNS requests from the first and second mobile device peers and, in response, to return to the respective first and second mobile device peers respective first and second data, the data comprising Internet Protocol (IP) address and port data, together with a unique connection identifier (ID) for an end-to-end connection to be established between the first and second mobile device peers; second computer program code operative as a first relay server at the first IP address and port (a) to receive from a first peer a first session allocation request, the first session allocation request including the second IP address and port, and the unique connection ID, and (b) when the first session allocation request received from the first peer is accepted, to return IP address and port data of the respective NAT device associated with the first peer; third computer program code operative as a second relay server at the second IP address and port (a) to receive from the second peer a second session allocation request, the second session allocation request including first IP IP address and port, and the unique connection ID, and (b) when the second session allocation request received from the second peer is accepted, to return IP IP address and port data of the respective NAT device associated with the second peer; wherein the second program code is further operative (c) to receive from the first peer a first connection request that includes the IP IP address and port of the NAT device associated with the second peer; wherein the third program code is further operative (c) to receive from the second peer a second connection request that includes the IP IP address and port of the NAT device associated with the first peer; and completing the end-to-end connection between the first and second mobile device peers through the first and second relay servers.