In the following sections, I'll explain the purpose of the most important SIP headers and give simple usage examples of them. SIP: Protocol Operation Accept Content-encoding Max-forwards Route Table 5-6 Accept-encoding Content-language MIME-version Server SIP Headers Accept-language Content-length Organization Subject Alert-info Content-type Priority Supported Allow Proxy- Timestamp authenticate Proxy- authorization Authorization Encryption Proxy-require Unsupported Call-ID Error-info Record-route User-agent Call-info Expires Require Contact Response-key Warning Content-disposition In-reply-to Retry-after WWW-authenticate Call-ID The Call-ID represents a SIP signalling relationship shared among two or more users. It identifies a particular invitation and all of the subsequent transactions related to that invitation in a format that looks like the following: Call-ID: ges456fcdw21lkfgte12ax@workstation1234.university.com A server that is juggling SIP signalling for many sessions employs Call- ID to associate incoming messages to the proper session. For instance, Bob invites Laura to a chess session with a particular Call-ID. Laura's UA accepts and soon the game commences. After a while, Bob calls Laura to speak with her while they are still playing chess. This INVITE from Bob's UA has a different Call-ID from the previous one. When Bob and Laura finish speaking, Bob's UA sends a BYE to Laura's UA to end the phone call. Laura's UA uses the Call-ID of the BYE message to decide whether to terminate the chess game or the conversation (Figure 5-14). Chapter 5 Laura Figure 5-14 Call-ID helps to (1) INVITE distinguish between Call-ID: 1234@131.160.1.112 different sessions. (2) 200 OK Call-ID: 1234@131.160.1.112 (3) ACK Call-ID: 1234@131.160.1.112 (4) INVITE Call-ID: 5678@131.160.1.112 (5) 200 OK Call-ID: 5678@131.160.1.112 (6) ACK Call-ID: 5678@131.160.1.112 Conversation (7) BYE Call-ID: 5678@131.160.1.112 (8) 200 OK Call-ID: 5678@131.160.1.112 Contact A Contact header provides a URL where the user can be reached directly