Initiation Protocol (SIP). We describe the functionality SIP provides and the entities defined by the pro- tocol. We analyze its good features and explain where SIP fits in the devel- oping picture of communications. Finally, we explain why SIP is such a compelling example of good protocol design. This chapter explains what we can expect from SIP, but it does not go into protocol details. For information on protocol operation, including messages, syntax, and concrete use cases, turn to the next chapter. Separating protocol behavior from protocol opera- tion enables the reader to distinguish between SIP's functionality and how this functionality is achieved. SIP History In the previous chapter, we saw that the Internet multimedia conferencing architecture encompasses many protocols. These were not all developed at the same time. Beginning with the first multimedia systems, this architec- ture was dynamically evolving. New protocols were designed and existing protocols were improved. As time went by, the Internet stretched to provide more and more multimedia services. Yet this architecture still had a missing piece: it did not have a way to explicitly invite users to join a particular session. A multicast session could be announced using Session Announcement Protocol (SAP), for instance, but it was up to the potential receiver to check through all of the announced ses- sions periodically to find one he or she wanted to join. It was impossible for one user to inform another user about a session and invite him or her to participate. Suppose I'm watching an interesting movie being multicast on the Mbone and I recall a friend who would probably also be interested in seeing it. I need a simple means to alert my friend, send her a description, and invite her to join the session (Figure 4-1). Inviting users to Mbone sessions was the original purpose of SIP when the Internet Engineering Task Force (IETF) first commissioned it. The pro- tocol has evolved steadily and SIP is currently used to invite users to all types of ses