Once a proxy server passes on an invite request, it immediately sends back a status message called "100," or "trying." That notifies the caller that it's working on the invite request. After the proxy server locates the destination UA and sends it the invite, it sends a 180 "ringing" message to the sender. When the recipient answers, it passes the 200 response to the proxy server, which then sends the message to the originating UA.
The originator then sends an "ack" response to the destination client, letting the client know that it received the 200. All further communication happens between the clients: RTP takes over, transporting digitized audio between the UAs. When the call is completed, a "bye" message is sent to the other UA, which replies with another 200.
Although a proxy server, by default, drops out of the loop once a call is completed, it can be configured to stick around. It works like this: The proxy server inserts its own address into the "contact" field when it communicates with the UA, forcing the UA to send the rest of the responses back to the proxy server instead of the originating UA. Keeping the proxy involved during the call lets you enable call-detail recording, where you can track the duration of calls. It also lets you hide network details about endpoints for security purposes.
A request and call setup also can pass through multiple proxy servers. If one proxy server can't connect to a destination UA, for example, it can forward the request to another proxy server, which then locates, or attempts to locate, the UA.
There's also a redirect server, which can receive requests from a UA or a proxy server. The redirect server doesn't make the connection itself--it merely replies with information on where to retry the original request. It's a quick way to give the UA information it needs without adding a large processing burden to the proxy server.
A SIP gateway server translates between the VoIP world and the PSTN so you can make calls outside your organization. The gateway can provide a legacy connection to an internal PBX, for instance, or go directly to the PSTN. It translates the SIP signaling into something the legacy telephone understands, and has a codec that converts the RTP traffic so it can be sent from a legacy voice circuit and vice versa.
Most VoIP calls between organizations will go over the PSTN because there is no global directory service for the Internet. In the future, a protocol called ENUM (E.164 Number RFC 2916) may use DNS to provide an Internet-based directory service that tracks phone numbers for calling among different organizations or companies.
A registrar server is required if you use proxy servers; it tells the UA the user's location. For example, when a telecommuter plugs in a VoIP phone, the device automatically tells the registrar server his or her location. You can register multiple phones--a SIP phone, mobile phone or even a legacy phone--with the registrar server as long as there is a SIP gateway available when a call is made.
SIP's support for mobility is one of its biggest draws. When a SIP proxy server receives an invite request, for instance, it can contact each registered device sequentially or all devices simultaneously. The registrar server stores the location information for registered users in a location server, which can reside on the same physical server. SIP proxy servers consult the location server to find a UA.
Don't be afraid to take a SIP.
I promise it'll go down easy.
Peter Morrissey is a full-time faculty member at Syracuse University's School of Information Studies, and a contributing editor and columnist at Network Computing. Write to him at ppmorris@syr.edu.
Post a comment or question on this story.