Patent ID: 7975058

Claim:
A proxy server, comprising: a memory configured to store and retrieve a client device identifier and an associated client device public transport address; and a communication unit, wherein: the communication unit is configured to send and receive messages, the communication unit is configured to receive an identification message according to a first protocol from a client device through at least one intermediate network address translator (NAT), wherein: the identification message according to the first protocol includes the client device identifier and conveys the client device public transport address, the communication unit is configured to receive keep-alive messages according to the first protocol periodically sent by the client device to maintain a NAT address binding; the memory is updated with the conveyed client device public transport address so that the conveyed client device public transport address is associated in memory with the client device identifier; the communication unit is configured to receive an HTTP request message from an admin device, the HTTP request message including the client device identifier and the HTTP request message being inbound initiated, and the proxy server is configured to search the memory for the client device identifier that matches the client device identifier included in the HTTP request message; select the updated public transport address associated in memory with the client device identifier; retrieve the associated client device public transport address; instruct the client device via a message according to the first protocol, using the associated client device public transport address and the NAT address binding maintained using the keep-alive messages of the first protocol, to open a first connection with the proxy server according to a second protocol that is different from the first protocol; relay the inbound initiated HTTP request message from the admin device via the connection according to the second protocol to the client device; and relay an HTTP response message from the client device via a second connection to the admin device.