RFC 2543:SIP: Session Initiation Protocol
RFC-Ref

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 can be used to initiate sessions as well as invite members to 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. ...
... SIP is designed as part of the overall IETF multimedia data and control architecture ...
... 6]) for describing multimedia sessions. However, the functionality and operation of SIP does not depend on any of these protocols. ...
... SIP can also be used in conjunction with other call setup and signaling 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 ...
... 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. ...
... 10] and indicate requirement levels for compliant SIP implementations. ...
... 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 ...
... 2396(-> 3986std66) [12]. The following terms have special significance for SIP. ...
... 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. ...
... elements in the origin field. (SIP) transaction: A SIP transaction ...
... (SIP) transaction: A SIP transaction occurs between a client and a ...
... user agent client is a client application that initiates the SIP request. User agent server ...
... 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 ...
... ACK yes yes yes no Table 1: Properties of the different SIP server types ...
... 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 ...
... The "objects" addressed by SIP are users at hosts, identified by a SIP ...
... SIP are users at hosts, identified by a SIP URL. The SIP URL ...
... SIP URL. The SIP URL takes a form similar to a mailto or telnet URL ...
... address. See section 2 for a detailed discussion of SIP URL's. ...
... A user's SIP address can be obtained out-of-band, can be learned via ...
... 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. ...
... A SIP URL address can designate an individual (possibly located at ...
... 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 ...
... A successful SIP invitation consists of two requests, INVITE followed by ACK ...
... 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 makes minimal assumptions about the underlying transport and network-layer ...
... In an Internet context, SIP is able to utilize both UDP and TCP as ...
... Routers can more readily snoop SIP UDP packets. TCP allows easier passage through ...
... +...............................+ ====> 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 ...
... SIP is text-based, using ISO 10646 in UTF-8 encoding throughout. This ...
... 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 ...
... 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 ...
... The SIP URL scheme is defined to allow setting SIP request-header fields and the SIP message-body. ...
... URL scheme is defined to allow setting SIP request-header fields and the SIP message-body. ...
... A SIP URL follows the guidelines of RFC 2396(-> 3986std66) [12 ...
... Figure 3: SIP URL syntax ...
... The components of the SIP URI have the following meanings. ...
... Figure 4: SIP URL syntax; telephone subscriber ...
... 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. ...
... URL parameters: SIP URLs can define specific parameters of the request. URL ...
... Headers: Headers of the SIP request can be defined with the "?" mechanism within a SIP URL ...
... 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 ...
... Table 2 summarizes where the components of the SIP URL can be used and what default values ...
... Examples of SIP URLs are: ...
... Table 2: Use and default values of URL components for SIP headers, Request-URI ...
... Within a SIP message, URLs are used to indicate the source and intended destination ...
... current destination of a request. Normally all these fields will contain SIP URLs. ...
... SIP URLs are case-insensitive, so that for example the two URLs ...
... 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. ...
... SIP header fields MAY contain non-SIP URLs. As an example, if a call ...
... SIP header fields MAY contain non-SIP URLs. As an example, if a call from a telephone ...
... from a telephone is relayed to the Internet via SIP, the SIP From header field ...
... telephone is relayed to the Internet via SIP, the SIP From header field might contain a phone URL ...


... SIP Message Overview ...
... SIP is a text-based protocol and uses the ISO 10646 character set in ...
... 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 ...
... Note, however, that SIP is not an extension of HTTP. ...
... Unlike HTTP, SIP MAY use UDP. When sent over TCP or UDP ...
... 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 ...


... SIP-Version ...
... Table 3: SIP headers ...
... 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 ...
... proxy servers and SHOULD be supported by redirect and user agent SIP servers. ...
... method MUST be supported by proxy servers and SHOULD be supported by all other SIP server types. ...
... address listed in the To header field with a SIP server. ...
... 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 ...
... The Request-URI is a SIP URL as described in Section 2 or a general URI ...
... When used as a Request-URI, a SIP-URL MUST NOT contain the transport ...
... headers elements. A server that receives a SIP-URL with these elements removes ...
... UAC sets the Request-URI and To to the same SIP URL, presumed to remain unchanged over long time periods. However, if the UAC ...
... If a SIP server receives a request with a URI indicating a scheme other than SIP ...
... 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 ...
... SIP Version ...
... Both request and response messages include the version of SIP in use, and follow [H3.1] (with HTTP ...
... and follow [H3.1] (with HTTP replaced by SIP, and HTTP/1.1 replaced by SIP ...
... 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 ...
... SIP- Version of "SIP/2.0". ...
... 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. ...
... SIP-version ...
... 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 adopts many HTTP/1.1 response codes. SIP/2.0 adds response codes in the range starting ...
... SIP response codes are extensible. SIP applications are not required ...
... SIP response codes are extensible. SIP applications are not required to understand the meaning of all registered response codes, though ...
... | "504" ; Gateway Time-out | "505" ; SIP Version not supported ...


... 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 ...
... message-header fields with the same field-name, described in [H4.2] also apply to SIP. The ...
... 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 ...
... message body" rather then the entity as the two are the same in SIP. ...
... 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-URL ...
... 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 ...
... INVITE sip:watson@boston.bell-telephone.com SIP/2.0 Via: SIP/2.0/UDP ...
... telephone.com SIP/2.0 Via: SIP/2.0/UDP 169.130.12.5 From: <sip:a.g.bell@bell-telephone ...
... 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 ...
... The SIP-URL MUST NOT contain the "transport-param", "maddr-param", ...
... "ttl-param", or "headers" elements. A server that receives a SIP-URL with these elements ...
... 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 ...
... passed upstream in the response to the UAC. In SIP, only UAC's can authenticate ...
... C->S: INVITE sip:watson@bell-telephone.com SIP/2.0 Require: com.example.billing Payment ...
... 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 SIP-URL MUST NOT contain the "transport-param", "maddr-param", ...
... "ttl-param", or "headers" elements. A server that receives a SIP-URL with these elements ...
... 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 ...
... Via: SIP/2.0/UDP erlang.bell-telephone.com:5060 ...
... UDP erlang.bell-telephone.com:5060 Via: SIP/2.0/UDP 10.0.0.1:5060 ;received=199.172.136.3 ...
... 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 ...
... "SIP" | token ...
... 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 ...


... When SIP is carried over UDP with authentication and a complex ...
... 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 ...
... 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 ...
... SIP is defined so it can use either UDP (unicast or multicast ...
... 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 ...
... A single TCP connection can serve one or more SIP transactions. A transaction ...
... 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 ...
... A SIP client using UDP SHOULD retransmit a BYE, CANCEL, OPTIONS, or ...
... For UDP, A SIP client SHOULD retransmit a SIP INVITE ...
... UDP, A SIP client SHOULD retransmit a SIP INVITE request with an interval that starts ...


... Behavior of SIP User Agents ...


... Behavior of SIP Proxy and Redirect Servers ...
... This section describes behavior of SIP redirect and proxy servers in detail. Proxy servers ...
... 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 ...
... End-to-end encryption of the SIP message body and certain sensitive header fields; ...
... Not all of the SIP request or response can be encrypted end-to-end ...
... 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 ...
... A SIP request (or response) is end-to-end encrypted by splitting 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 ...
... INVITE sip:watson@boston.bell-telephone.com SIP/2.0$ Via: SIP/2.0/UDP ...
... 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. ...
... INVITE sip:watson@boston.bell-telephone.com SIP/2.0$ Via: SIP/2.0/UDP ...
... telephone.com SIP/2.0$ Via: SIP/2.0/UDP 169.130.12.5$ To: T. A. Watson <sip:watson@bell-telephone ...
... Privacy of SIP Responses ...
... SIP requests can be sent securely using end-to-end encryption and authentication ...
... 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 ...
... Any SIP header fields that were encrypted in a request SHOULD also be encrypted ...
... 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 ...
... SIP requests MAY be authenticated using the Authorization header field ...
... SIP does not dictate which digital signature scheme is used for 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: ...
... INVITE sip:watson@boston.bell-telephone.com SIP/2.0 Via: SIP/2.0/UDP ...
... telephone.com SIP/2.0 Via: SIP/2.0/UDP 169.130.12.5 Authorization ...
... 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, ...


... SIP Authentication using HTTP Basic and Digest Schemes ...
... SIP implementations MAY use HTTP's basic and digest authentication ...
... 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. ...
... The framework for SIP authentication parallels that for HTTP [36 ...
... 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 ...
... Since SIP does not have the concept of a canonical root URL ...
... 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 ...
... the userinfo, host and port part of the SIP Request-URI. For example: ...
... INVITE sip:alice.wonderland@example.com SIP/2.0 WWW-Authenticate: Basic realm="business" ...
... INVITE sip:aw@example.com SIP/2.0 WWW-Authenticate: Basic realm="business" ...
... Since SIP URIs are not hierarchical, the paragraph in [36] that ...
... 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. ...
... 36], with "HTTP 1.1" replaced by "SIP/2.0" in addition to the following differences: ...
... URI = SIP-URL ...
... 3. The example procedure for choosing a nonce based on Etag does not work for SIP. 4. The Authentication ...
... Proxy-Authentication-Info fields are not used in SIP. 5. The text in [36 ...
... 36] regarding cache operation does not apply to SIP. 6. [36 ...
... Authorization header, point to the same resource. In a SIP context, these two URI ...
... 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. ...


... SIP Security Using PGP ...
... 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. ...
... C->S: REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP saturn.bell-tel.com From: sip:watson@bell-tel.com ...
... C->S: REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP saturn.bell-tel.com From: sip:watson@bell-tel.com ...
... C->S: REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP saturn.bell-tel.com From: sip:watson@bell-tel.com ...
... C->S: REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... REGISTER sip:bell-tel.com SIP/2.0 Via: SIP/2.0/UDP pluto.bell-tel.com From: sip:jon.diligent@bell-tel.com ...
... C->S: INVITE sip:schooler@cs.caltech.edu SIP/2.0 Via: SIP/2.0/UDP ...
... 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> ...
... INVITE Subject: SIP will be discussed, too Content-Type: application/sdp ...
... S->C: SIP/2.0 180 Ringing Via: SIP/2.0/UDP ...
... 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 ...
... 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> ...
... C->S: ACK sip:es@jove.cs.caltech.edu SIP/2.0 Via: SIP/2.0/UDP ...
... 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> ...
... C->S: INVITE sip:watson@boston.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... 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> ...
... RTP/AVP 0 3 4 5 S->C: SIP/2.0 100 Trying Via: SIP/2.0/UDP ...
... 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> ...
... Content-Length: 0 S->C: SIP/2.0 180 Ringing Via: SIP/2.0/UDP ...
... 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> ...
... Content-Length: 0 S->C: SIP/2.0 182 Queued, 2 callers ahead Via: SIP ...
... 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> ...
... Content-Length: 0 S->C: SIP/2.0 182 Queued, 1 caller ahead Via: SIP ...
... 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> ...
... Content-Length: 0 S->C: SIP/2.0 200 OK Via: SIP/2.0/UDP ...
... 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> ...
... C->S: ACK sip:watson@boston.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... 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 ...
... 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> ...
... Bell's user agent sends the invitation to the SIP server for the ieee.org domain: ...
... C->P: INVITE sip:t.watson@ieee.org SIP/2.0 Via: SIP/2.0/UDP ...
... 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: ...
... P->H: INVITE sip:watson@h.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... INVITE sip:watson@h.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP sip.ieee.org ;branch=1 Via: SIP ...
... 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> ...
... H->P: SIP/2.0 404 Not Found Via: SIP/2.0/UDP ...
... H->P: SIP/2.0 404 Not Found Via: SIP/2.0/UDP sip.ieee.org ;branch=1 Via: SIP ...
... 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> ...
... P->H: ACK sip:watson@h.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... 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> ...
... P->A: INVITE sip:watson@acm.org SIP/2.0 Via: SIP/2.0/UDP ...
... INVITE sip:watson@acm.org SIP/2.0 Via: SIP/2.0/UDP sip.ieee.org ;branch=2 Via: SIP ...
... 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> ...
... P->X: INVITE sip:t.watson@x.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... INVITE sip:t.watson@x.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP sip.ieee.org ;branch=3 Via: SIP ...
... 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> ...
... P->Y: INVITE sip:watson@y.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... INVITE sip:watson@y.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP sip.ieee.org ;branch=4 Via: SIP ...
... 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> ...
... X->P: SIP/2.0 200 OK Via: SIP/2.0/UDP ...
... X->P: SIP/2.0 200 OK Via: SIP/2.0/UDP sip.ieee.org ;branch=3 Via: SIP ...
... 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> ...
... Contact: sip:t.watson@x.bell-tel.com Y->P: SIP/2.0 200 OK Via: SIP/2.0/UDP ...
... Y->P: SIP/2.0 200 OK Via: SIP/2.0/UDP sip.ieee.org ;branch=4 Via: SIP ...
... 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 ...
... 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 ...
... 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> ...
... C->X: ACK sip:t.watson@x.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... 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> ...
... C->Y: ACK sip:watson@y.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP ...
... 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->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> ...
... CSeq: 2 BYE Y->C: SIP/2.0 200 OK Via: SIP/2.0/UDP ...
... 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 ...
... 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> ...
... A->C: SIP/2.0 302 Moved temporarily From: Charlie <sip:charlie@caller.com> ...
... Charlie then sends the following request to the SIP server of the anywhere.com domain. Note that the server at anywhere.com forwards ...
... C->B: INVITE sip:bob@anywhere.com SIP/2.0 From: sip:charlie@caller.com ...
... C->F: INVITE sip:alice@anywhere.com SIP/2.0 From: sip:charlie@caller.com ...
... F->C: SIP/2.0 302 Moved temporarily From: sip:charlie@caller.com ...
... C->S: INVITE sip:alice@anywhere.com SIP/2.0 From: sip:charlie@caller.com ...
... 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. ...


... The SDP "s=" line and the SIP Subject header field have different ...
... subject of the multicast session, while the SIP Subject header field describes the reason for the ...


... The following are defined in RFC 2396(-> 3986std66) [12] for the SIP URI: ...
... 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. ...



Google
Web
RFC-Ref