common characteristics can be expected from every SIP extension. In this section, we will analyze some SIP extensions that have been proposed. We will describe the functionality provided by the extension and outline how it is implemented, and will try to keep these two concepts as separate as possible SO the reader can readily distinguish them. The SIP Toolkit The core protocol taken together with its extensions can be seen as a toolkit for creating services. In order to design a new application or create a new service, the designer picks the extensions needed and combines them. Thus, extensions are sufficiently general mechanisms that can be used in a vari- ety of different services. We'll follow the same bottom-up approach to describe SIP extensions, postponing a discussion of specific applications and architecture that have been implemented using different extensions until the next chapter. Reliable Delivery of Provisional Responses Core SIP ensures that the initiator of a session is informed when the remote party agrees to join the session. Short of actual acceptance, Chapter 6 though, reports on the progress of session establishment are not considered valuable. However, some applications need this type of information. For example, suppose the support department of a company implements a queue for incoming calls. When all of the clerks are busy, calls from customers are placed in the call queue. As the next clerk becomes available, he or she answers the first call in the queue. Customers calling this service will insist on being informed about their progress in the queue. They can be informed either by displaying a message on the screen of the caller's SIP phone (such as "You are now the second in the queue") or by playing a voice message for the caller. The relevant exten- sion for providing this service is the reliable delivery of provisional responses. How It's Done Information about how session establishment is pro- gressing is carried in provisional responses for an INVITE request. The pro- visional resp