Voice Over IPv6: Architectures for Next Generation VoIP Networks

A user agent represents an end system. It contains a User Agent Client (UAC), which generates requests, and a User Agent Server (UAS), which responds to them. A UAC is capable of generating a request based on some external stimulus (the user clicking a button, or a signal on a PSTN line) and processing a response. A UAS is capable of receiving a request and generating a response based on user input, external stimulus, the result of a program execution, or some other mechanism. When a UAC sends a request, the request passes through some number of proxy servers, which forward the request towards the UAS. When the UAS generates a response, the response is forwarded towards the UAC.
UAC and UAS procedures depend strongly on two factors. First, based on whether the request or response is inside or outside of a dialog, and second, based on the method of a request. Dialogs are discussed thoroughly in Section A.7; they represent a peer-to-peer relationship between user agents and are established by specific SIP methods, such as INVITE.
This section discusses the method-independent rules for UAC and UAS behavior when processing requests that are outside of a dialog. This includes, of course, the requests which themselves establish a dialog.
This section covers UAC behavior outside of a dialog.
A valid SIP request formulated by a UAC must, at a minimum, contain the following header fields: To, From, CSeq, Call-ID,...