SIP
Click on the red underlined text to get to the source
... Overview of SIP Functionality ...
...
The Session Initiation Protocol (SIP) is an application-layer control
protocol that can establish, modify and terminate multimedia sessions ...
... distance learning, Internet telephony and similar applications. SIP
can invite both persons and "robots", such as a media storage
service ...
... can invite both persons and "robots", such as a media storage
service. SIP can invite parties to both unicast and multicast
sessions ...
...
SIP transparently supports name mapping and redirection services,
allowing the implementation of ISDN ...
...
SIP supports five facets of establishing and terminating multimedia
communications:
...
...
SIP can also initiate multi-party calls using a multipoint control
unit (MCU) or fully-meshed interconnection instead of multicast ...
... gateways that connect Public Switched Telephone
Network (PSTN) parties can also use SIP to set up calls between them.
...
... 6]) for describing multimedia sessions.
However, the functionality and operation of SIP does not depend on
any of these protocols.
...
... conjunction with other call setup and
signaling protocols. In that mode, an end system uses SIP exchanges
to determine the appropriate end system address and protocol from a
...
... address and protocol from a
given address that is protocol-independent. For example, SIP could be
used to determine that the party can be reached via H.323 [7 ...
...
In another example, SIP might be used to determine that the callee is
reachable via the PSTN and indicate the phone number ...
...
SIP does not offer conference control services such as floor control
or voting and does not prescribe how a conference is to be managed,
...
... services such as floor control
or voting and does not prescribe how a conference is to be managed,
but SIP can be used to introduce conference control protocols. SIP
...
... but SIP can be used to introduce conference control protocols. SIP
does not allocate multicast addresses.
...
... SIP can invite users to sessions with and without resource
reservation. SIP does not reserve resources, but can convey to the
invited system the information necessary to do this.
...
... This specification uses a number of terms to refer to the roles
played by participants in SIP communications. The definitions of
client, server and proxy ...
...
Call: A call consists of all participants in a conference invited by
a common source. A SIP call is identified by a globally unique
call-id (Section 6.12). Thus, if a user is, for example, invited
...
... invitations will be a unique call. A point-to-point Internet
telephony conversation maps into a single SIP call. In a
multiparty conference unit (MCU) based call-in conference, each
...
...
Client: An application program that sends SIP requests. Clients may
or may not interact directly with a human user ...
... user agent server).
Final response: A response that terminates a SIP transaction, as
opposed to a provisional response that does not. All 2xx, 3xx,
...
... service) requesting
participation in a session. A successful SIP invitation consists
of two transactions: an INVITE ...
... Location service: A location service is used by a SIP redirect or
proxy server to obtain information about a callee's possible
...
... services are offered by location servers.
Location servers MAY be co-located with a SIP server, but the
manner in which a SIP server requests location services ...
... co-located with a SIP server, but the
manner in which a SIP server requests location services is
beyond the scope of this document.
...
... Provisional response: A response used by the server to indicate
progress, but that does not terminate a SIP transaction. 1xx
responses are provisional, other responses are considered final.
...
... Redirect server: A redirect server is a server that accepts a SIP
request, maps the address into zero or more new addresses and
...
... client. Unlike a proxy server ,
it does not initiate its own SIP request. Unlike a user agent
server , it does not accept calls.
...
... user agent: A user agent server is a
server application that contacts the user when a SIP request is
received and that returns a response on behalf of the user. The
response accepts, rejects or redirects the request.
...
... invite others to conferences and as a user agent server to accept
invitations. The properties of the different SIP server types are
summarized in Table 1.
...
... server server server
__________________________________________________________________
also acts as a SIP client no yes no no
returns 1xx status yes yes yes yes
...
... Overview of SIP Operation ...
... This section explains the basic protocol functionality and operation.
Callers and callees are identified by SIP addresses, described in
Section 1.4.1. When making a SIP ...
... SIP addresses, described in
Section 1.4.1. When making a SIP call, a caller first locates the
appropriate server (Section 1.4.2) and then sends a SIP request ...
... SIP call, a caller first locates the
appropriate server (Section 1.4.2) and then sends a SIP request
(Section 1.4.3). The most common SIP operation is the invitation
...
... appropriate server (Section 1.4.2) and then sends a SIP request
(Section 1.4.3). The most common SIP operation is the invitation
(Section 1.4.4). Instead of directly reaching the intended callee, a
SIP request ...
... SIP operation is the invitation
(Section 1.4.4). Instead of directly reaching the intended callee, a
SIP request may be redirected or may trigger a chain of new SIP
requests by proxies (Section 1.4.5). Users can register ...
... (Section 1.4.4). Instead of directly reaching the intended callee, a
SIP request may be redirected or may trigger a chain of new SIP
requests by proxies (Section 1.4.5). Users can register their
...
... proxies (Section 1.4.5). Users can register their
location(s) with SIP servers (Section 4.2.6).
...
... SIP Addressing ...
... agents, can be included in some mailers' message
headers, or can be recorded during previous invitation interactions.
In many cases, a user's SIP URL can be guessed from their email
address.
...
... method of ensuring privacy by having an unlisted "phone"
number is compromised. However, unlike traditional telephony, SIP
offers authentication and access control mechanisms ...
... Locating a SIP Server ...
... client wishes to send a request, the client either sends it to
a locally configured SIP proxy server (as in HTTP), independent of
the Request-URI ...
... The client tries to find one or more addresses for the SIP server by
querying DNS. The procedure is as follows:
...
... There are no mandatory rules on how to select a host name
for a SIP server. Users are encouraged to name their SIP
servers using the sip.domainname (i.e., sip.example.com)
...
... host name
for a SIP server. Users are encouraged to name their SIP
servers using the sip.domainname (i.e., sip.example.com)
convention, as specified in RFC 2219 ...
... 16]. Users may only
know an email address instead of a full SIP URL for a
callee, however. In that case, implementations may be able
...
... URL for a
callee, however. In that case, implementations may be able
to increase the likelihood of reaching a SIP server for
that domain by constructing a SIP ...
... SIP server for
that domain by constructing a SIP URL from that email
address by prefixing the host name ...
... SIP Transaction ...
...
Once the host part has been resolved to a SIP server, the client
sends one or more SIP requests ...
... SIP server, the client
sends one or more SIP requests to that server and receives one or
more responses from the server. A request (and its retransmissions)
...
... more responses from the server. A request (and its retransmissions)
together with the responses triggered by that request make up a SIP
transaction. All responses to a request contain the same values in
...
...
If TCP is used, request and responses within a single SIP transaction
are carried over the same TCP connection ...
... are carried over the same TCP connection (see Section 10). Several
SIP requests from the same client to the same server MAY use the same
TCP connection ...
...
The SIP message format and operation is independent of the transport
protocol.
...
... SIP Invitation ...
... 2) and obtains a more precise location (step 3). The proxy server
then issues a SIP INVITE request to the address(es) returned by the
...
... +.....................+ +...............................+
====> SIP request
....> SIP response
...
... ====> SIP request
....> SIP response
^
...
...
^
| non-SIP protocols
|
...
... |
Figure 1: Example of SIP proxy server
...
...
A callee may move between a number of different end systems over
time. These locations can be dynamically registered with the SIP
server (Sections 1.4.7, 4.2.6). A location server MAY also use one or
more other protocols, such as finger ...
... hosts
simultaneously or because the location server has (temporarily)
inaccurate information. The SIP server combines the results to yield
a list of a zero or more locations.
...
... The action taken on receiving a list of locations varies with the
type of SIP server. A SIP redirect server returns the list to the
...
... receiving a list of locations varies with the
type of SIP server. A SIP redirect server returns the list to the
client ...
... client as Contact headers (Section 6.13). A SIP proxy server can
sequentially or in parallel try the addresses until the call is
...
...
If a proxy server forwards a SIP request, it MUST add itself to the
beginning of the list of forwarders noted in the Via (Section 6.40)
headers ...
...
A SIP invitation may traverse more than one SIP proxy server. If one
of these "forks" the request, i.e., issues more than one request in
...
...
A SIP invitation may traverse more than one SIP proxy server. If one
of these "forks" the request, i.e., issues more than one request in
response to receiving ...
...
A single conference session or call involves one or more SIP
request-response transactions. Proxy servers do not have to keep
...
... state for a particular call, however, they MAY maintain state for a
single SIP transaction, as discussed in Section 12. For efficiency, a
server MAY cache ...
... +...............................+
====> SIP request
....> SIP response
...
... ====> SIP request
....> SIP response
^
...
...
^
| non-SIP protocols
|
...
... |
Figure 2: Example of SIP redirect server
...
...
When TCP is used, SIP can use one or more connections to attempt to
contact a user or to modify parameters of an existing conference.
...
... connections to attempt to
contact a user or to modify parameters of an existing conference.
Different SIP requests for the same SIP call MAY use different TCP
connections or a single persistent connection ...
... contact a user or to modify parameters of an existing conference.
Different SIP requests for the same SIP call MAY use different TCP
connections or a single persistent connection, as appropriate.
...
...
For concreteness, this document will only refer to Internet
protocols. However, SIP MAY also be used directly with protocols
such as ATM AAL5, IPX ...
... allows easy implementation in languages such as Java, Tcl and Perl,
allows easy debugging, and most importantly, makes SIP flexible and
extensible. As SIP is used for initiating multimedia conferences
...
... allows easy debugging, and most importantly, makes SIP flexible and
extensible. As SIP is used for initiating multimedia conferences
rather than delivering media data, it is believed that the additional
overhead ...
... SIP Uniform Resource Locators ...
... SIP URLs are used within SIP messages to indicate the originator
(From), current destination (Request-URI ...
... destination (Request-URI) and final recipient (To) of
a SIP request, and to specify redirection addresses (Contact). A SIP
...
... a SIP request, and to specify redirection addresses (Contact). A SIP
URL can also be embedded in web pages or other hyperlinks to indicate
...
... URL can also be embedded in web pages or other hyperlinks to indicate
that a particular user or service can be called via SIP. When used as
a hyperlink, the SIP URL ...
... service can be called via SIP. When used as
a hyperlink, the SIP URL indicates the use of the INVITE method ...
... The SIP URL scheme is defined to allow setting SIP request-header
fields and the SIP message-body.
...
...
Figure 3: SIP URL syntax
...
...
The components of the SIP URI have the following meanings.
...
... connecting to a telephony gateway. Even without this parameter,
recipients of SIP URLs MAY interpret the pre-@ part as a phone
number if local restrictions on the name space ...
...
password: The SIP scheme MAY use the format "user:password" in the
userinfo field. The use of passwords ...
... host numbers without brackets are used for all other URLs. The
SIP URL requires the latter form, without brackets.
...
... URLs is being looked at
elsewhere in the IETF. SIP implementers are advised to keep up to
date on that activity.
...
... Headers of the SIP request can be defined with the "?"
mechanism within a SIP URL. The special hname "body" indicates
that the associated hvalue is the message-body ...
... URL. The special hname "body" indicates
that the associated hvalue is the message-body of the SIP INVITE
request. Headers ...
... Request-URI; they are ignored if present. hname
and hvalue are encodings of a SIP header name and value,
respectively. All URL ...
... Method: The method of the SIP request can be specified with the
method parameter. This parameter MUST NOT be used in the From
...
... case-insensitive, so that for example the two URLs
sip:j.doe@example.com and SIP:J.Doe@Example.com are equivalent. All
URL parameters are included when comparing SIP ...
... SIP:J.Doe@Example.com are equivalent. All
URL parameters are included when comparing SIP URLs for equality.
...
... telephone is relayed to the Internet via SIP, the SIP From
header field might contain a phone URL ...
... SIP Message Overview ...
... 2068(-> 2616draft) [11]).
In addition, we describe SIP in both prose and an augmented Backus-
Naur form (ABNF). See section C for an overview of ABNF ...
... UDP. When sent over TCP or UDP, multiple SIP
transactions can be carried in a single TCP connection ...
...
A SIP message is either a request from a client to a server, or a
response from a server to a client ...
...
A server MAY automatically respond to an invitation for a conference
the user is already participating in, identified either by the SIP
Call-ID or a globally unique identifier ...
...
This method MUST be supported by SIP proxy, redirect and user agent
servers as well as clients ...
...
This method MUST be supported by SIP proxy, redirect and user agent
servers as well as clients ...
...
This method MUST be supported by SIP proxy, redirect and user agent
servers, registrars and clients ...
... method MUST be supported by proxy servers and SHOULD be
supported by all other SIP server types.
...
... REGISTER request to the well-known "all SIP servers" multicast
address "sip.mcast.net" (224.0.1.75). This request SHOULD be scoped
to ensure it is not forwarded beyond the boundaries of the
...
... 25], depending on what is implemented in the
network. SIP user agents MAY listen to that address and use it to
become aware of the location of other local users [20 ...
... request-header fields is defined as
follows. We define "address-of-record" as the SIP address that the
registry ...
... registrations
in the response. Registrations using SIP URIs that differ
in one or more of host ...
... service, this method is
needed if there are several SIP servers on a single host.
In that case, only one of the servers can use the default
...
... UAC sets the Request-URI and To to the same
SIP URL, presumed to remain unchanged over long time
periods. However, if the UAC ...
... SIP server receives a request with a URI indicating a scheme
other than SIP which that server does not understand, the server MUST
return a 400 (Bad Request) response. It MUST do this even if the To
header field ...
... Both request and response messages include the version of SIP in use,
and follow [H3.1] (with HTTP ...
... SIP, and HTTP/1.1 replaced
by SIP/2.0) regarding version ordering, compliance requirements, and
...
... upgrading of version numbers. To be compliant with this
specification, applications sending SIP messages MUST include a SIP-
Version ...
... version numbers. To be compliant with this
specification, applications sending SIP messages MUST include a SIP-
Version of "SIP ...
... Option tags are unique identifiers used to designate new options in
SIP. These tags are used in Require (Section 6.30) and Unsupported
(Section 6.38) fields.
...
...
See Section C for a definition of token. The creator of a new SIP
option MUST either prefix the option with their reverse domain name ...
...
When registering a new SIP option, the following information MUST be
provided:
...
... receiving and interpreting a request message, the recipient
responds with a SIP response message. The response message format is
...
...
SIP's structure of responses is similar to [H6], but is defined
explicitly here.
...
... class of response. The last two digits do not have any
categorization role. SIP/2.0 allows 6 values for the first digit:
...
... response codes, and an example set of corresponding reason phrases
for SIP/2.0. These reason phrases are only recommended; they may be
replaced by local equivalents without affecting the protocol. Note
that SIP ...
... SIP/2.0. These reason phrases are only recommended; they may be
replaced by local equivalents without affecting the protocol. Note
that SIP adopts many HTTP/1.1 response codes. SIP ...
... SIP response codes are extensible. SIP applications are not required
to understand the meaning of all registered response codes, though
...
...
SIP header fields are similar to HTTP header fields in both syntax
and semantics. In particular, SIP header fields ...
... SIP header fields are similar to HTTP header fields in both syntax
and semantics. In particular, SIP header fields follow the syntax for
message-header as described in [H4.2]. The rules for extending header
fields ...
...
rules in [H4.2] regarding ordering of header fields apply to SIP,
with the exception of Via fields, see below, whose order matters.
Additionally, header fields ...
... header is defined in
[H14.3]. The semantics in SIP are identical to those defined in
[H14.3].
...
... rules for ordering the languages based on the q parameter apply to
SIP as well. When used in SIP, the Accept-Language request-header ...
... languages based on the q parameter apply to
SIP as well. When used in SIP, the Accept-Language request-header
...
...
Since the Call-ID is generated by and for SIP, there is no
reason to deal with the complexity of URL-encoding ...
... For systems which have tight bandwidth constraints, many of the
mandatory SIP headers have a compact form, as discussed in Section 9.
These are alternate names for the headers ...
... positive response (2xx) MAY insert a Contact response header
field indicating the SIP address under which it is reachable
most directly for future SIP requests ...
... SIP address under which it is reachable
most directly for future SIP requests, such as ACK, within the
same Call-ID ...
... header
field is used as the default value. If neither of these
mechanisms is used, SIP URIs are assumed to expire after one
hour. Other URI schemes ...
... such as a different server or multicast address to try or a
change of SIP transport from UDP to TCP ...
... header field MAY also refer to a different
entity than the one originally called. For example, a SIP call
connected to GSTN gateway ...
... header field can contain any suitable URI
indicating where the called party can be reached, not limited to SIP
URLs. For example, it could contain URL ...
... valid.
The parameter is either a number indicating seconds or a quoted
string containing a SIP-date. If this parameter is not provided,
the value of the Expires header field determines how long the
...
... SIP-date ...
... Strictly speaking, CSeq header fields are needed for any
SIP request that can be cancelled by a BYE or CANCEL
request or where a client can issue several requests for
...
... See [H14.19] for a definition of rfc1123-date. Note that unlike
HTTP/1.1, SIP only supports the most recent RFC 1123std3 [29] formatting
...
... header field specifies that the content has
been encrypted. Section 13 describes the overall SIP security
architecture and algorithms. This header field ...
... Since proxies can base their forwarding decision on any combination
of SIP header fields, there is no guarantee that an encrypted request
"hiding" header fields ...
...
The value of this field can be either a SIP-date or an integer number
of seconds (in decimal), measured from the receipt of the request.
...
... SIP-date ...
... tag" MAY appear in the From field of a request. It MUST be
present when it is possible that two instances of a user sharing a
SIP address can make call invitations with the same Call-ID.
...
... proxy.
Hiding the route of a SIP request is of limited value if the request
results in data packets being exchanged directly between the calling
...
...
The Max-Forwards request-header field may be used with any SIP method
to limit the number of proxies ...
... Payment: sheep_skins, conch_shells
S->C: SIP/2.0 420 Bad Extension
Unsupported: com.example.billing
...
... 600 (Busy), or 603 (Decline) response to indicate when the called
party anticipates being available again. The value of this field can
be either an SIP-date or an integer number of seconds (in decimal)
after the time of the response.
...
... SIP-date ...
... The To general-header field specifies recipient of the request, with
the same SIP URL syntax as the From field.
...
... The "tag" parameter serves as a general mechanism to distinguish
multiple instances of a user identified by a single SIP URL. As
proxies ...
...
A SIP server returns a 400 (Bad Request) response if it receives a
request with a To header field containing a URI ...
...
the NAT. Use of the received attribute allows SIP requests
to traverse NAT's which only modify the source IP address ...
... Port Translator's (NAPT) will not properly pass SIP when
transported on UDP, in which case an application layer ...
... gateway is required. When run over TCP, SIP stands a better
chance of traversing NAT's, since its behavior is similar
...
...
Normally, every host that sends or forwards a SIP message adds a Via
field indicating the path traversed. However, it is possible that
Network Address Translators ...
... address that the packet actually came from. (Note that
the NAT border.ieee.org is not a SIP server.)
...
... header field is shown in Fig. 11. The defaults
for "protocol-name" and "transport" are "SIP" and "UDP",
respectively. The "maddr" parameter, designating the multicast
address ...
...
Via: SIP/2.0/UDP first.example.com:4000;ttl=16
;maddr=224.2.0.1 ;branch=a7c6a8dlze (Example)
...
... UDP first.example.com:4000;ttl=16
;maddr=224.2.0.1 ;branch=a7c6a8dlze (Example)
Via: SIP/2.0/UDP adk8
...
...
The warn-code consists of three digits. A first digit of "3"
indicates warnings specific to SIP.
...
... In addition to the "basic" and "digest" authentication schemes
defined in the specifications cited above, SIP defines a new scheme,
PGP (RFC 2015prop ...
... codes x80 upwards to avoid clashes with future HTTP response codes.
Also, SIP defines a new class, 6xx. The default behavior for unknown
response codes ...
... header field. The choices SHOULD also be listed as
Contact fields (Section 6.13). Unlike HTTP, the SIP response MAY
contain several Contact fields or a list of addresses in a Contact
...
... Authorization
header field (section 6.27). SIP access authentication is explained
in section 13.2 and 14.
...
...
485 Ambiguous SIP/2.0
Contact: Carol Lee <sip:carol.lee@example.com>
...
...
The server does not support, or refuses to support, the SIP protocol
version that was used in the request message ...
... SIP Message Body ...
... The "chunked" transfer encoding of HTTP/1.1 MUST NOT be used for SIP.
(Note: The chunked encoding modifies the body of a message in order
...
... MTU. To address this problem, a more
compact form of SIP is also defined by using abbreviations for the
common header fields listed below:
...
... INVITE sip:schooler@vlsi.caltech.edu SIP/2.0
v:SIP/2.0/UDP 131.215.131.131;maddr=239.128.16.254;ttl=16
v:SIP ...
... SIP/2.0/UDP 131.215.131.131;maddr=239.128.16.254;ttl=16
v:SIP/2.0/UDP 128.16.64.19
f:sip:mjh@isi.edu
...
... Behavior of SIP Clients and Servers ...
...
Servers discard isomorphic requests, but first retransmit the
appropriate response. (SIP requests are said to be idempotent , i.e.,
receiving more than one copy of a request does not change the server
state ...
... client so
desires it MAY re-use the connection for further SIP requests or for
requests from the same family of protocols (such as HTTP or stream ...
... Behavior of SIP User Agents ...
...
A redirect server does not issue any SIP requests of its own. After
receiving a request other than CANCEL, the server gathers the list of
...
... refuses the request. For well-formed CANCEL requests, it SHOULD
return a 2xx response. This response ends the SIP transaction. The
redirect server ...
... redirect server maintains transaction state for the whole SIP
transaction. It is up to the client ...
... Proxies in this category issue at most a single unicast request for
each incoming SIP request, that is, they do not "fork" requests.
However, servers MAY choose to always operate in a mode that allows
issuing of several requests, as described in Section 12.4.
...
... The server can forward the request and any responses. It does not
have to maintain any state for the SIP transaction. Reliability is
...
... several requests in response to an incoming INVITE request. The
function request(r, a, b) sends a SIP request of type r to address a,
with branch id b. await_response() waits until a response is received
...
...
SIP requests and responses can contain sensitive information about
the communication patterns and communication content of individuals.
The SIP message ...
... SIP requests and responses can contain sensitive information about
the communication patterns and communication content of individuals.
The SIP message body MAY also contain encryption keys for the session
...
... encryption keys for the session
itself. SIP supports three complementary forms of encryption to
protect privacy ...
... header fields such as To and Via need to be visible to
proxies so that the SIP request can be routed correctly. Hop-by-hop
encryption encrypts the entire SIP request ...
... SIP request can be routed correctly. Hop-by-hop
encryption encrypts the entire SIP request or response on the wire so
that packet sniffers or other eavesdroppers cannot see who is calling
whom. Hop-by-hop encryption ...
...
SIP Via fields are used to route a response back along the path taken
by the request and to prevent infinite request loops. However, the
...
... encrypted and a short header
that will remain in the clear. Some parts of the SIP message, namely
the request line, the response line and certain header fields marked
...
... telephone.com SIP/2.0$
Via: SIP/2.0/UDP 169.130.12.5$
To: T. A. Watson <sip:watson@bell-telephone ...
... encrypted body. The encrypted body is preceded by a
blank line as a normal SIP message body would be.
...
...
Had no SIP header fields required encryption, the message would have
been as below. Note that the encrypted ...
... line (start with CRLF) to disambiguate between any possible SIP
header fields that might have been present and the SIP message body.
...
... start with CRLF) to disambiguate between any possible SIP
header fields that might have been present and the SIP message body.
...
... telephone.com SIP/2.0$
Via: SIP/2.0/UDP 169.130.12.5$
To: T. A. Watson <sip:watson@bell-telephone ...
... authentication to a called user agent that sends an insecure
response. This is allowed by the SIP security model, but is not a
good idea. However, unless the correct behavior is explicit, it
...
... Proxies need to encrypt a SIP request if the end system
cannot perform encryption or to enforce organizational
...
...
SIP requests and responses MAY also be protected by security
mechanisms at the transport or network ...
... Protective measures need to be taken to prevent an active attacker
from modifying and replaying SIP requests and responses. The same
cryptographic measures that are used to ensure the authenticity of
...
... cryptographic measures that are used to ensure the authenticity of
the SIP message also serve to authenticate the originator of the
message. However, the "basic" and "digest" authentication mechanism ...
... authentication MAY be used for hop-
by-hop authentication. SIP also extends the HTTP WWW-Authenticate
...
... Proxy counterparts to include cryptographically strong
signatures. SIP also supports the HTTP "basic" and "digest" schemes
(see Section 14) and other HTTP authentication ...
...
Since SIP requests are often sent to parties with which no
prior communication relationship has existed, we do not
specify authentication ...
... authentication using
PGP in Section 15. As indicated above, SIP implementations MAY also
use "basic" and "digest" authentication and other authentication
mechanisms ...
...
To cryptographically sign a SIP request, the order of the SIP header
fields is important. When an Authorization header field ...
...
To cryptographically sign a SIP request, the order of the SIP header
fields is important. When an Authorization header field is present,
...
... client constructs a message from the
request method (in upper case) followed, without LWS, by the SIP
version number, followed, again without LWS, by the request headers ...
...
For example, if the SIP request is to be:
...
... user agent, and so there is no simple way to detect these
rogue responses. This problem is best prevented by using hop-by-hop
encryption of the SIP request, which removes any additional problems
that UDP ...
...
User location and SIP-initiated calls can violate a callee's privacy.
An implementation SHOULD be able to restrict, on a per-user basis,
...
... mechanisms to provide a rudimentary form of security. This section
overviews usage of these mechanisms in SIP. The basic operation is
almost completely identical to that for HTTP [36 ...
... outlines this operation, pointing to [36] for details, and noting the
differences when used in SIP.
...
... credentials is identical. The 401 response is used
by user agent servers in SIP to challenge the authorization of a user
agent client. Additionally, registrars and redirect servers ...
... root URL, the
notion of protections spaces are interpreted differently for SIP. The
realm is a protection domain for all SIP ...
... SIP. The
realm is a protection domain for all SIP URIs with the same value for
the userinfo, host ...
... Request-URI also are within
the protection space specified by the Basic realm value of the
current challenge" does not apply for SIP. SIP clients MAY
...
... the protection space specified by the Basic realm value of the
current challenge" does not apply for SIP. SIP clients MAY
preemptively send the corresponding Authorization ...
... Authorization header with
requests for SIP URIs within the same protection realm (as defined
above) without receipt of another challenge from the server.
...
... 3. The example procedure for choosing a nonce based on Etag
does not work for SIP.
4. The Authentication ...
... URI's may actually refer to different users, due to
forwarding at some proxy. Therefore, in SIP, a server MAY
check that the request-uri in the Authorization ...
...
See sections 6.26 and 6.27 for additional information on usage of
these fields as they apply to SIP.
...
...
Receivers of signed SIP messages SHOULD discard any end-to-end header
fields above the Authorization ...
... start-up, via
multicast, with the local SIP server named bell-tel.com. In the
example, the user agent on saturn expects to receive SIP requests ...
... SIP server named bell-tel.com. In the
example, the user agent on saturn expects to receive SIP requests on
UDP port 3890.
...
... REGISTER sip:bell-tel.com SIP/2.0
Via: SIP/2.0/UDP saturn.bell-tel.com
From: sip:watson@bell-tel.com
...
... REGISTER sip:bell-tel.com SIP/2.0
Via: SIP/2.0/UDP saturn.bell-tel.com
From: sip:watson@bell-tel.com
...
... REGISTER sip:bell-tel.com SIP/2.0
Via: SIP/2.0/UDP saturn.bell-tel.com
From: sip:watson@bell-tel.com
...
... REGISTER sip:bell-tel.com SIP/2.0
Via: SIP/2.0/UDP pluto.bell-tel.com
From: sip:jon.diligent@bell-tel.com
...
... INVITE sip:schooler@cs.caltech.edu SIP/2.0
Via: SIP/2.0/UDP csvax.cs.caltech.edu;branch=8348
;maddr=239.128.16.254;ttl=16
...
... UDP csvax.cs.caltech.edu;branch=8348
;maddr=239.128.16.254;ttl=16
Via: SIP/2.0/UDP north.east.isi.edu
From: Mark Handley <sip:mjh@isi.edu>
...
... S->C: SIP/2.0 180 Ringing
Via: SIP/2.0/UDP csvax.cs.caltech.edu;branch=8348
;maddr=239.128.16.254;ttl=16
...
... UDP csvax.cs.caltech.edu;branch=8348
;maddr=239.128.16.254;ttl=16
Via: SIP/2.0/UDP north.east.isi.edu
From: Mark Handley <sip:mjh@isi.edu>
...
...
A sample response to the invitation is given below. The first line of
the response states the SIP version number, that it is a 200 (OK)
response, which means the request was successful. The Via headers ...
... S->C: SIP/2.0 200 OK
Via: SIP/2.0/UDP csvax.cs.caltech.edu;branch=8348
;maddr=239.128.16.254;ttl=16
...
... UDP csvax.cs.caltech.edu;branch=8348
;maddr=239.128.16.254;ttl=16
Via: SIP/2.0/UDP north.east.isi.edu
From: Mark Handley <sip:mjh@isi.edu>
...
... ACK sip:es@jove.cs.caltech.edu SIP/2.0
Via: SIP/2.0/UDP north.east.isi.edu
From: Mark Handley <sip:mjh@isi.edu>
...
... INVITE sip:watson@boston.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... S->C: SIP/2.0 100 Trying
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... S->C: SIP/2.0 180 Ringing
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0 182 Queued, 2 callers ahead
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0 182 Queued, 1 caller ahead
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... S->C: SIP/2.0 200 OK
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... ACK sip:watson@boston.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... C->S: BYE sip:watson@boston.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP kton.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... INVITE sip:t.watson@ieee.org SIP/2.0
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
...
The SIP server at ieee.org tries the four addresses in parallel. It
sends the following message to the home machine:
...
... SIP/2.0/UDP sip.ieee.org ;branch=1
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0/UDP sip.ieee.org ;branch=1
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... ACK sip:watson@h.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP sip.ieee.org ;branch=1
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0/UDP sip.ieee.org ;branch=2
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0/UDP sip.ieee.org ;branch=3
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0/UDP sip.ieee.org ;branch=4
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0/UDP sip.ieee.org ;branch=3
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... SIP/2.0/UDP sip.ieee.org ;branch=4
Via: SIP/2.0/UDP c.bell-tel.com
Contact: sip:t.watson@y.bell-tel.com
...
... P->A: CANCEL sip:watson@acm.org SIP/2.0
Via: SIP/2.0/UDP sip.ieee.org ;branch=2
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... A->P: SIP/2.0 200 OK
Via: SIP/2.0/UDP sip.ieee.org ;branch=2
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... ACK sip:t.watson@x.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... ACK sip:watson@y.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... C->Y: BYE sip:watson@y.bell-tel.com SIP/2.0
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... Y->C: SIP/2.0 200 OK
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
... P->C: SIP/2.0 302 Moved temporarily
Via: SIP/2.0/UDP c.bell-tel.com
From: A. Bell <sip:a.g.bell@bell-tel.com>
...
...
Charlie then sends the following request to the SIP server of the
anywhere.com domain. Note that the server at anywhere.com forwards
...
...
S->C: SIP/2.0 606 Not Acceptable
From: sip:mjh@isi.edu
To: <sip:schooler@cs.caltech.edu> ;tag ...
...
C->S: OPTIONS sip:bob@example.com SIP/2.0
From: Alice <sip:alice@anywhere.org>
To: Bob <sip:bob@example.com>
...
... application/sdp
S->C: SIP/2.0 200 OK
From: Alice <sip:alice@anywhere.org>
To: Bob <sip:bob@example.com> ;tag ...
... client needs to be able to
understand the Contact header, but only the SIP-URL part, not
the parameters.
...
... subject of the multicast session,
while the SIP Subject header field describes the reason for the
...
...
SIP header field values can be folded onto multiple lines if the
continuation line begins with a space or horizontal tab. All linear
white space, including folding, has the same semantics ...
... (RFC 2279(-> 3629std63) [21]). In this regard, SIP differs from HTTP, which uses
the ISO 8859-1 ...
...
Many SIP header field values consist of words separated by LWS or
special characters. These special characters MUST be in a quoted
string to be used within a parameter value ...
...
Comments can be included in some SIP header fields by surrounding the
comment text with parentheses. Comments are only allowed in fields
containing "comment" as part of their field value definition. In all
...
... client continues to the next
step. However if a step elicits one or more addresses, but no SIP
server at any of those addresses responds, then the client ...
... client always uses this
port number when contacting the SIP server. Otherwise, the port
number in the SIP URI is used, if present. If there is no port number ...
... port number when contacting the SIP server. Otherwise, the port
number in the SIP URI is used, if present. If there is no port number
in the URI ...
... and TCP (if supported by the client) SIP servers. The
format of these queries is defined in RFC 2052(-> 2782prop) ...
... queries the name
server for SRV records for SIP servers of that protocol
type only. If the client does not support the protocol
...
... DNS result expires. If the
client does not find a SIP server among the addresses listed in the
cached answer, it starts ...
...
For example, consider a client that wishes to send a SIP request. The
Request-URI for the destination ...
...
Section 4.4 describes a name space and mechanism for registering SIP
options.
...
...
Section 6.41 describes the name space for registering SIP warn-codes.
...
