User`s guide

Dialogic
®
System Release 6.0 PCI for Windows
®
Release Update, Rev 62 — January 30, 2008 189
Dialogic Corporation
Figure 2. Successful SIP Unattended Call Transfer, Party A Notified with Ringing
Successful Transfer with Early Termination of REFER Subscription
Figure 3 illustrates a valid scenario for which Global Call does not support the party B role.
In this scenario, party B terminates the REFER subscription with the first NOTIFY, before
party A can be notified of the transferred call status. The Call Control Library at Party A
disconnects the primary call with party B after the terminating NOTIFY and the application
then must tear down the call using gc_DropCall( ) and gc_ReleaseCallEx( ).
A
(Transferring,
Transferor)
App
A
(Transferring,
Transferor)
IP CCLib
B
(Transferred,
Transferee)
App
B
(Transferred,
Transferee)
IP CCLib
C
(Transferred To,
Transfer Target)
App
C
(Transferred To,
Transfer Target)
IP CCLib
GCEV_OFFERED(CRNt)
IPEC_IncomingTransfer
(optional)
gc_DropCall(CRNp)
GCEV_
DROPCALL(CRNp)
gc_ReleaseCallEx
(CRNp)
GCEV_
RELEASECALL
(CRNp)
GCEV_ALERTING
(CRNt) (optional)
GCEV_PROCEEDING
(CRNt) (optional)
GCEV_PROCEEDING
(CRNt) (optional)
GCEV_REQ_
XFER(CRNp)
Pre condition: Primary call between A and B is connected (not shown).
GCEV_DIALING
(CRNt)
GCEV_
DISCONNECTED
(CRNp)
GCEV_
DISCONNECTED
(CRNp)
GCEV_
DROPCALL(CRNp)
gc_ReleaseCallEx
(CRNp)
GCEV_
RELEASECALL
(CRNp)
KEY:
CRNp - primary call
CRNt - transferred call
202 Accepted
GCEV_ACCEPT_
XFER(CRNp)
GCEV_
INVOKE_XFER_
ACCEPTED(CRNp)
(optional)
GCEV_INVOKE_
XFER(CRNp)
BYE
BYE
200 OK
200 OK
NOTIFY(180 Ringing)
Subscription-State = active
400 Bad Request
GCEV_XFER_CMPLT
(CRNp)
100 Trying from Party C
is not Notified to Party A
REFER
gc_MakeCall
(CRNt, CRNp)
gc_InvokeXfer
(CRNp)
INVITE
gc_CallAck(CRNt) (optional)
100 Trying (optional)
GCEV_
ANSWERED(CRNt)
gc_AnswerCall(CRNt)
ACK
200 OK
gc_DropCall(CRNp)
Transferred call between B and C is connected.
Primary call between A and B dropped and released
Post condition:
NOTIFY(100 Trying)
Subscription-State=active; expires=300
200 OK
180 Ringing (optional)
NOTIFY(200 OK)
Subscription-State = terminated
200 OK
GCEV_CONNECTED
(CRNt)
gc_AcceptXfer(CRNp)