A voice-over-Internet-Protocol (VoIP) client codes audio data as printable
ASCII characters, then embeds the ASCII audio data inside a cookie that
is sent over the Internet within an HTTP GET message. The GET message is
sent to a server acting as a call proxy or external manager that forwards
the audio data to a remote client. Return audio data is sent back to the
client in the normal data field of an HTTP response message from the
server. When the client receives the HTTP response, it sends another GET
message without audio data, allowing the server to send another response.
This empty GET allows VoIP to pass through strict firewalls that pair
each HTTP response with a GET. For secure-sockets layer (SSL), client and
server exchange pseudo-keys in hello and finished messages that establish
the SSL session. Audio data is streamed in SSL messages instead of
encrypted data.