Dialogic Dialogic Global Call IP IP Phone User Manual


 
Dialogic
®
Global Call IP Technology Guide — November 2007 87
Dialogic Corporation
IP Call Scenarios
3.3.5.1 Successful SIP Attended Call Transfer
Figure 30 illustrates the basic scenario for successful SIP attended call transfer. The scenario
illustrates the use of a gc_InitXfer( ) function call, which is not required in SIP. The
GCEV_INIT_XFER completion event in this case contains a dummy rerouting address.
Figure 30. Successful SIP Attended Call Transfer
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_REQ_
XFER(CRNp)
202 Accepted
GCEV_ACCEPT_
XFER(CRNp)
GCEV_
INVOKE_XFER_
ACCEPTED(CRNp)
NOTIFY(100 Trying)
Subscription-State=active; expires=300
REFER (Refer-To:sip:
TransferredTo?Replaces=secondaryCall)
gc_InitXfer
(CRNs)
INVITE (Replaces:secondaryCall)
GCEV_OFFERED
(CRNt & xfer flag)
gc_MakeCall
(CRNt, CRNp)
GCEV_DIALING
(CRNt)
gc_AcceptXfer
(CRNp)
GCEV_DROPCALL
(CRNp)
gc_ReleaseCallEx
(CRNp)
GCEV_RELEASECALL
(CRNp)
GCEV_XFER_
CMPLT(CRNp)
gc_DropCall(CRNp)
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:
NOTIFY (200 OK)
Subscription-State = terminated
200 OK
GCEV_DROPCALL
(CRNs)
gc_ReleaseCallEx
(CRNs)
GCEV_RELEASECALL
(CRNs)
gc_DropCall(CRNs)
GCEV_INVOKE_
XFER_(CRNp)
GCEV_DISCONNECTED
(CRNs)
200 OK
gc_InvokeXfer
(CRNp, CNRs)
GCEV_INIT
XFER_(CRNs)
Dispatch "dummy" event
to synchronize with GC
state machine.
GCEV_CONNECTED
(CRNt)
gc_AnswerCall(CRNt)
GCEV_ANSWERED
(CRNt)
Primary call between A and B is connected (not shown).
Secondary (consultation) call between A and C is connected (not shown).
Pre condition:
BYE
200 OK
GCEV_
DISCONNECTED
(CRNp)
GCEV_
DISCONNECTED
(CRNp)
gc_DropCall(CRNp)
GCEV_DROPCALL
(CRNp)
gc_ReleaseCallEx
(CRNp)
GCEV_RELEASECALL
(CRNp)
GCEV_
DISCONNECTED
(CRNs)
gc_DropCall(CRNs)
GCEV_DROPCALL
(CRNs)
gc_ReleaseCallEx
(CRNs)
GCEV_RELEASECALL
(CRNs)
200 OK
BYE
KEY:
CRNp - primary call
CRNs - secondary (consultation) call
CRNt - transferred call
200 OK