User`s guide

Dialogic
®
System Release 6.0 PCI for Windows
®
Release Update, Rev 62 — January 30, 2008 197
Dialogic Corporation
activated such as forking or sequential searching which may result in the triggered INVITE
reaching the wrong User Agent. To prevent an incorrect UA answering the INVITE, a
Require: replaces header field is included in the Refer-To. This ensures that only the UA
which matches the Replaces dialog will answer the INVITE, since any incorrect UA which
supports Replaces will reply with a 481 and a UA which does not support Replaces will
reply with a 420.
Note that there is still no guarantee that the correct endpoint will be reached, and the
result of this second REFER may also be a failure. In that case, the Transferor could fall
back to unattended transfer or give up on the transfer entirely. Since two REFERs are sent
within the dialog, creating two distinct subscriptions, the Transferee uses the ‘id’
parameter in the Event header field to distinguish notifications for the two subscriptions.
Figure 8. SIP Attended Call Transfer, Recovery from URI Not Routable
1.51.1.6 Unsuccessful Call Transfer Scenarios
All of the scenarios in this section apply to both unattended (blind) transfer and attended
(supervised) SIP call transfers. The gc_InitXfer( ) function call and GCEV_INIT_XFER
termination event are “dummy” operations that are only used to synchronize the Global
Call state machine and can safely be ignored in this context.
Transfer failures can be caused by any of transfer endpoints as shown in scenarios. In all
cases, the transferring endpoint (Transferor or party A) is notified by either
A
(Transferring,
Transferor)
App
A
(Transferring,
Transferor)
IP CCLib
B
(Transferred,
Transferee)
3rd Party
Screening Proxy
C
(Transferred To,
Transfer Target)
3rd Party
GCEV_INVOKE_
XFER_FAIL
(CRNp, 403)
gc_InvokeXfer
(CRNp, CRNs,
TransferredToContact)
Transferred call between B and C is connected.
Primary and secondary calls are dropped and released.
Post condition:
GCEV_INVOKE_
XFER(CRNp)
GCEV_INVOKE_
XFER_ACCEPTED
(CRNP)
INVITE
200 OK
Primary call between A and B is connected (not shown).
Secondary (consultation) call between A and C is connected (not shown).
Pre condition:
gc_InvokeXfer
(CRNp, CRNs,
TransferredToAOR)
REFER (Refer-To:sip:
TransferredToContact?Replaces=secondaryCall)
202 Accepted
GCEV_INVOKE_
XFER_ACCEPTED
(CRNP)
NOTIFY (403 Forbidden)
Subscription-State = terminated
200 OK
REFER (Refer-To:sip:
TransferredToAOR?Replaces=secondaryCall)
202 Accepted
NOTIFY (200 OK)
Subscription-State = terminated
200 OK
INVITE
INVITE
403 Forbidden
200 OK
Normal primary and secondary
call cleanup not shown.