Internet Communications Using SIP : Delivering VoIP and Multimedia Services With Session Initiation Protocol {2Nd Ed.}

(Steven Felgate) #1

SIP can be applied for extremely complex call scenarios for all of the call sce-
narios presented here. The question is, “Is there a consistent mechanism to
deal with such scenarios, with no unnecessary complexity beyond doing the
job right and based on public standards for a large degree of interoperability?”
The problem was first addressed in the SIP community in the paper on
third-party call control in SIP [11] and then formulated within a framework for
SIP call control extensions [10]. The desire was to achieve functionality with
extensions and without burdening the base SIP protocol implementations that
do not require functions that are more complex. The transfer services were
treated in more detail in Sparks [9], after which some interesting new applica-
tions emerged, most notably controlling a SIP phone from a desktop PC
[12],[13] using SIP third-party call control. A useful method for SIP, called
REFER, turns out to be appropriate to handle most complex call control sce-
narios. Readers who have some insight into the complexity of the IN/AIN,
PBXs, H.323, and MEGACO/H.248 protocols may find the simplicity of the
REFERmethod outlined here especially intriguing.


The REFER Method

The REFERmethod allows a third party (such as a controller) to request the
caller set up a call with a resource. The resource is identified in a new SIP
header called Refer-To. Note that the resource is a URI, not necessarily a SIP
URI. For example, the Refer-Toheader could contain an HTTP URI, which
would result in the web page being retrieved instead of a new SIP call being
initiated. In addition, a SIP URI in a Refer-Toheader may contain the
method type, which defaults to INVITE if not specified. Thus, a REFER
request could be used to request a BYEbe sent instead of an INVITE.AREFER
request must contain a Referred-Byheader that identifies the referring
party. In the new request generated as a result of the REFERrequest, this
Referred-Byheader can be used to inform the called party by whom it was
referred to make this call. Following are examples of the Refer-Toheader:


■■ To request a party to call John Doe, a REFERrequest is sent containing:
Refer-To: sip:[email protected]

■■ The same request containing the header:
Refer-To: sip:[email protected]
Accept-Contact=sip:[email protected];only=true

ensures that the right John Doe device (instance) is reached by the
request. For example, the referred request could encounter a forking
proxy, or some other service logic in which there are multiple possible
ContactURIs for John Doe. The Accept-Contactheader along with
the only=trueparameter ensures that the right one is reached.

SIP Telephony 201
Free download pdf