ded in order to cre- ate a SIP service. Programmers fresh from the university are equipped with Chapter 4 everything they need to innovate services, as long as they have the imagination. Not SO long ago, this was far from true. Highly specialized knowledge was needed, and once the service was implemented, it was not easy to test. (Not everybody has the requisite telephone switch handy.) Today any personal computer can become a SIP server to test new applications. This has an important implication. It means that the people creating a particular SIP service are the people who have the expertise on that par- ticular service; that is, organizations creating gaming applications will come to understand gaming and organizations developing messaging appli- cations will come to understand messaging. Today's programming practice (much bemoaned) is to find a programmer who knows a protocol and teach him or her how the applications should work. SIP enables people who know the functional needs of a certain community to create their own services. SIP Enables Application Decomposition SIP enables us to combine simple applications into more complex services [draft-rosenberg-sip-app- components]. For instance, if I want to build an application that gets input in the form of a text in Spanish, translates it into English, and produces output in the form of speech, I can look at the solution as several simple applications working together. The first application performs text transla- tion from Spanish to English. The second, which receives English text as input, converts it into English speech as output. This example comprises two application servers doing relatively simple things that can be tailored a hundred ways to meet a user's need. The user employs SIP signalling to coordinate both application servers in order to obtain the expected global result. CHAPTER Protocol Operation Chapter 5 This chapter describes SIP in further detail. It outlines how SIP function- ality is achieved: that is, which messages are exchanged between dif