The subscription request has the following form:
SUBSCRIBE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 4.3.2.1;branch=z9hG4bK343d
To: User B <sip:[email protected]>
From: User A <sip:[email protected]>;tag=h34s341
Max-Forwards: 70
Call-ID: a5f2d43127767eh54wfd
CSeq: 23 SUBSCRIBE
Contact: <sip:[email protected]>
Event: dialog
Expires: 60
Content-Length: 0
The notification request has the form:
NOTIFY sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP pc.here.com:5060;branch=z9hG4bK343d
To: User A <sip:[email protected]>;tag=9839421323
From: User B <sip:[email protected]>;tag=h34s341
Max-Forwards: 70
Call-ID: a5f2d43127767eh54wfd
Subscription-State: active;expires=55
CSeq: 5 NOTIFY
Event: dialog
Content-Length: ...
The Eventheader indicates which event notification is being requested. If
User B’s user agent was not willing to provide the notification of this event, a
603 Declineresponse could be sent.
A service network can be built in a serverless design using SUBSCRIBEand
NOTIFY. SIP also supports a server-based approach using the PUBLISH
method.
Presence Publication
The SIPPUBLISHmethod allows a user agent to publish or upload presence
information to a presence server. The presence server can then distribute this
information. Figure 6.12 shows an example of this.
Authentication Challenges
SIP supports two types of authentication challenges: user agent to user agent,
and user agent to server. It does not currently support server to server authen-
tication challenges, although this could be accomplished using a non-SIP
scheme such as IPSec [30]. SIP supports a number of authentication schemes
borrowed from HTTP. SIP Digest authentication is the most commonly used
scheme today, which relies on a challenge/response and a shared secret
128 Chapter 6