Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
understanding-SIP.pdf
Скачиваний:
115
Добавлен:
01.03.2016
Размер:
3.99 Mб
Скачать

SIP Header Fields

157

Replaces: sdjfdjfskdf@there.com;to-tag=5f35a3;from-tag=8675309

header field. Note that the characters “;” and “=” are replaced by their hex equivalents %3B and %3D. In the next example, the header field containing a method

Refer-To: <sip:UserC@client.anywhere.com?method=SUBSCRIBE>

would cause a SUBSCRIBE request to be sent instead of an INVITE, which is the default method if none is present. An example of the Refer-To header field in compact form with an HTTP URL is:

r:<http://www.artech-house.com>

6.2.22Referred-By

The Referred-By header field [42] is an optional header field in a REFER request and a request triggered by a REFER. It provides the recipient of a triggered request with information that the request was generated as a result of a REFER and the originator of the REFER. This information can be presented to the user or have policy applied in deciding how the UA should handle the request.

As this header field could be modified or fabricated, a more secure usage involves the addition of a Referred-By security token. The token is carried as a message body whose content id (cid) is indicated in the Referred-By header field. The token is an S/MIME signature over a message/sipfrag, which con-

tains, at a minimum, the From, Date, Call-ID, Refer-To, and Referred-By

header fields from the REFER request. An unsigned Referred-By header field may be rejected with a request that the Referred-By security token be included using the 429 Provide Referror Identity response code (see Section 5.4.24). The compact form is b:

Referred-By: <sip:user@host.com>

b:<sips:friend@neighbor.org>

6.2.23Reply-To

The Reply-To header field is used to indicate a sip or sips URI, which should be used in replying to this request. Normally, this URI is present in the From header field (the Contact is not used as it is only assumed valid for the duration of the dialog). However, in some cases, the From cannot be populated with this information, so the URI in this header field should be used instead of the From URI.

An example is:

158

SIP: Understanding the Session Initiation Protocol

 

 

Reply-To: <sip:l.tolstoy@stpetersburg.ru>

6.2.24

Replaces

The Replaces header field [29] is used in SIP call control applications. A UA in an established dialog receiving another INVITE with a Replaces header field that matches the existing dialog must accept the INVITE, terminate the existing dialog with a BYE, and transfer all resources and state from the existing dialog to the newly established dialog.

If the Replaces header field matches no dialog, the INVITE must be rejected

with a 481 Dialog Does Not Exist response.

In addition, Replaces has one application in pending dialogs. A UAC that has sent an INVITE but has not yet received a final response may receive an INVITE containing a Replaces header field that matches the pending INVITE. The UAC must terminate the pending dialog with a CANCEL (and be prepared to send an ACK and BYE if a 200 OK eventually arrives) and accept the new INVITE.

For an INVITE containing both a Require: replaces and Replaces header

field, this results in the return of one of the following set of responses:

200 (if a match is found);

481 (if no match is found);

420 (if Replaces is not supported).

Figure 6.3 shows a call flow using Replaces to implement a feature called “call pickup.” The early parameter means that the replacement should only be done if the dialog is in an early state; if the dialog has transitioned to a confirmed state, the INVITE should be rejected. Figure 4.9 shows the use of Replaces in an “attended transfer example.”

This example Replaces header field:

Replaces: 3232904875945;to-tag=34314;from-tag=2343

would match the dialog identified by:

To: <sip:moe@example.org>;tag=34314

From: <sip:larry@server.org>;tag=2343

Call-ID: 3232904875945

6.2.25 Reject-Contact

The Reject-Contact [23] header field specifies the URIs to which the request may not be proxied. Some additional parameters are also defined for Contact header fields such as media, duplex, and language. This header field, along with

 

 

 

 

 

 

SIP Header Fields

159

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 6.3 Call flow showing call pickup using Replaces.

Accept-Contact and Request-Disposition are part of the SIP caller preferences extensions. The compact form is j. Examples include:

Reject-Contact: sip:admin@boss.com

j:*;media=video

6.2.26Request-Disposition

The Request-Disposition [23] header field can be used to request servers to either proxy, redirect, or initiate serial or parallel (forking) searches. An example is:

Request-Disposition: redirect

6.2.27 Require

The Require header field is used to list features and extensions that a UAC requires a UAS to support in order to process the request. A 420 Bad Extension response is returned by the UAS listing any unsupported features in an Unsupported header field. If support or use of a feature is desirable but not

160

SIP: Understanding the Session Initiation Protocol

required, the Supported header field is used instead. See Table 6.10 for a list of feature tags.

An example is:

Require: rel100

6.2.28 Resource-Priority

The Resource-Priority header field [30] is used to convey resource priority in a SIP request. It has been used to interwork with PSTN pre-emption and priority queuing protocols. The header field contains namespace and a resource priority value, separated by a dot. Multiple values can be included separated by commas. Defined namespaces for Resource-Priority are included in Table 6.16. Resource-Priority namespaces supported can be listed in an Accept-Resource- Priority header field. The resource-priority option tag is used to indicate support for this mechanism.

An example is:

Resource-Priority: dsn.flash

6.2.29 Response-Key

The Response-Key header field was defined in RFC 2543 but was deprecated in RFC 3261 along with all PGP-based encryption in favor of S/MIME encryption.

6.2.30 Route

The Route header field is used to provide routing information for requests. RFC 3261 introduces two types of routing: strict and loose routing, which have similar meaning as the IP routing modes of the same name. In strict routing, a proxy must use the first URI in the Route header field to rewrite the Request-URI,

 

Table 6.16

 

Resource-Priority Namespaces

Value

Name

 

 

dsn

Defense switched network

dsrn

Defense RED switched network

q735

Commercial implementation of DSN multilevel

precedence and preemption (MLPP)

 

ets

Emergency telecommunications service

wps

Wireless priority service

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]