s card. Mobile: +1 212 555 5556 SIP: Bob.Johnson@company.com Fax: +1 212 555 5557 E-mail: Bob.Johnson@company.com On the other hand, it does deliver instant messages exceptionally well, which are small by definition and probably urgent, and intended to reach users at their present location. The same features also make SIP suitable as a protocol for presence. SIP registrars have to know when a user is online in order to deliver messages to him or her. Combining presence information with instant messages is another example of the advanced services that can be implemented by using SIP. SIP Uses Existing Infrastructure for Providing New Services For instance, a ser- vice provider builds a SIP infrastructure for VoIP services, consisting of SIP proxies, redirect servers, and location servers. Customers of this service provider use SIP UAs to establish voice calls over the new infrastructure. Because VoIP is the service that the customers want, the service provider is successful. But as time goes by, customers do not find VoIP that exciting any more, and what they really want to do is play interactive games. The service provider doesn't have to modify or retrofit at this point; it just has to pro- cure an updated SIP UA that uses a gaming session description protocol to establish subscriber sessions instead of SDP. Because the SIP servers in the network ignore the contents of the session description, the entire SIP infra- structure built with VoIP in mind is instantly repurposed without any changes to the network. Widespread Knowledge of How to Program SIP Applications Programming SIP applications requires certain skills that are already widespread among programmers. Most programmers are used to Web applications, text parsers, and scripting languages, which are exactly what come into play when coding SIP applications. Besides, because SIP messages are human readable, no need exists for special protocol analyzers to discover why two different implementations do not interact properly. In fact, no special knowledge is nee