Dialogic Dialogic Global Call IP IP Phone User Manual


 
88 Dialogic
®
Global Call IP Technology Guide — November 2007
Dialogic Corporation
IP Call Scenarios
3.3.5.2 Attended Transfer when REFER is Not Globally Supported
If protecting or exposing the Transfer Target is not a concern, it is possible to complete an attended
transfer when only the Transferor and one other party support REFER. Note that a 405 Method Not
Allowed might be returned instead of the 501 Not Implemented response.
Figure 31. SIP Attended Call Transfer, Recovery from REFER Unsupported
3.3.5.3 Attended Transfer When Contact URI is Not Globally Routable
It is a requirement of RFC3261 that a Contact URI be globally routable even outside the dialog.
However, due to RFC2543 User Agents and some architectures (NAT/firewall traversal, screening
proxies, ALGs, etc.), this will not always be the case. As a result, the methods of attended transfer
shown in Figure 30 and Figure 31 may fail since they use the Contact URI in the Refer-To header
field. Figure 32 shows such a scenario involving a Screening Proxy in which the transfer initially
fails but succeeds on a second try. The failure response (403 Forbidden, 404 Not Found, or a
timeout after no response) is communicated back to the Transferor. Since this may be caused by
routing problems with the Contact URI, the Transferor retries the REFER, this time with Refer-To
containing the Address of Record (AOR) of the Target (the same URI the Transferor used to reach
the Transfer Target). However, the use of the AOR URI may result in routing features being
A
(Transferring,
Transferor)
App
A
(Transferring,
Transferor)
IP CCLib
B
(Transferred,
Transferee)
non-Global Call
C
(Transferred To,
Transfer Target)
App
C
(Transferred To,
Transfer Target)
IP CCLib
GCEV_INVOKE_
XFER_REJ(CRNp)
cause = 501
gc_InitXfer(CRNs)
GCEV_REQ_XFER
(CRNs)
Transferred call between B and C offered (option whether connected or not).
Primary call between A and B dropped and released.
Secondary (consultation) call between A and C dropped and released.
Post condition:
GCEV_INVOKE_
ACCEPTED(CRNs)
(optional)
gc_InvokeXfer
(CRNp, CNRs)
GCEV_INIT_
XFER_(CRNs)
gc_AcceptXferCRNs)
GCEV_ACCEPT_
XFER(CRNs)
Primary call between A and B is connected (not shown).
Secondary (consultation) call between A and C is connected (not shown).
Pre condition:
gc_InitXfer(CRNp)
GCEV_INIT_
XFER_(CRNp)
gc_InvokeXfer
(CRNs, CNRp)
Normal attended transfer
transactions not shown.
REFER (Refer-To:sip:
TransferredTo?Replaces=secondaryCall)
501 NotImplemented
REFER (Refer-To:sip:TransferredTo?Replaces=primaryCall
202 Accepted