 result of incrementing by one of the Cseqs of the original request. Chapter 5 Laura Figure 5-16 Cseq helps to (1) INVITE distinguish Cseq: 1 INVITE transactions inside a session. (2) 200 OK Cseq: 1 INVITE (3) ACK Cseq: 1 ACK (4) INVITE Cseq: 2 INVITE (5) 200 OK Cseq: 2 INVITE (6) ACK Cseq: 2 ACK (7) BYE Cseq: 3 BYE (8) 200 OK Cseq: 3 BYE Cseq in ACK An ACK request has the same Cseq as the INVITE it acknowl- edges. This enables proxies to generate ACKs for non-successful final responses without creating new Cseqs. In fact, new Cseqs can only be cre- ated by the UA, which ensures that Cseqs are unique. Cseq in CANCEL A CANCEL request has the same Cseq as the request it cancels. This also enables proxies to generate CANCELs without creating new Cseqs. Moreover, CANCEL is the reason why the Cseq header includes a method name after the numerical part. Because the Cseq number of the INVITE and the CANCEL is the same, a SIP client couldn't distinguish responses for CANCEL and responses for INVITE without an additional field. The method name inside Cseq solves the problem (Figure 5-17). From The From header contains the initiator of the request and a SIP From: Bob Johnson <sip: Bob. Johnson@company.com> SIP: Protocol Operation Laura Figure 5-17 The method name in (1) INVITE the Cseq permits Cseq: 1 INVITE differentiating responses for INVITES (2) CANCEL and CANCELs. Cseq: 1 CANCEL (3) 200 OK Cseq: 1 CANCEL (4) 487 Transaction cancelled Cseq: 1 INVITE (5) ACK Cseq: 1 ACK Record-Route and Route These two headers are used by proxies that want to be in the signalling path for the entire session. We saw that Con- tact headers enable the UAs to send requests directly to each other. This creates offloading proxies in the path; they route the first INVITE to the proper destination and then let the UAs begin to exchange SIP signalling. However, sometimes a proxy needs to stay in the signalling path, in which case a mechanism is needed to keep UAs from exchanging SIP messages on their own. This mechanism consists of two headers: 