A Voice-over-Internet-Protocol (VoIP) system includes clients that make
management connections to an external manager server using web-browsing
protocols. A discovery process tests a variety of transport methods by
sending packets using different protocols to several ports of the
external manager. Some packets may be blocked by firewalls, while other
packets are allowed to pass through. Successful packet replies indicate
transport capabilities of the client. When a client makes a VoIP call to
another client, the external manager compares transport capabilities of
the two clients and selects a transport capability that is common to both
clients. Transport methods include direct client-to-client connections
using TCP or UDP to an arbitrary port or well-known port 80 or 443, and
indirect using a voice-proxy server that each client connects to using
web standards such as HTTP or SSL. When a client can make only outgoing
connections, that client initiates the connection.