Dialogic Dialogic Global Call IP IP Phone User Manual


 
64 Dialogic
®
Global Call IP Technology Guide — November 2007
Dialogic Corporation
IP Call Scenarios
3.2.4.4 Party B Clears Primary Call Before Transfer is Completed
The primary call may be cleared at any time while a blind transfer is in progress. As indicated in
Figure 18, the transferred endpoint (party B) may clear the primary call while awaiting
acknowledgement from the transferred-to endpoint (party C). As a result, the
GCEV_INVOKE_XFER_FAIL termination event is received at transferring endpoint (party A)
followed by a GCEV_DISCONNECTED. Similarly, the GCEV_XFER_FAIL termination event is
received at the transferred endpoint (party B) followed by a GCEV_DROPCALL. At this point
party A must drop and release the call while party B must release the call. The transferred call will
also be abandoned implicitly per H.450.2 once the primary call is abandoned. The transferred-to
endpoint will receive the GCEV_DISCONNECTED event at which point it must explicitly drop
and release the abandoned transferred call attempt. Note that if instead party A initiated the
clearing of the primary call while blind transfer is in progress, the only major difference with the
corollary is that party B and not A would react to the primary disconnect (in the same manner as
before) and explicitly drop the primary call; otherwise, the behavior is identical.
Figure 18. H.450.2 Blind Call Transfer Failure - Party B Clears Primary Call
Before Transfer is Completed
A
(Transferring)
IP CCLib
B
(Transferred)
App
B
(Transferred)
IP CCLib
C
(Transferred To)
App
FACILITY(ctInitiate.Invoke)
RELEASECOMPLETE
Post condition: Both primary and transferred calls are dropped and released.
GCEV_
INVOKE_XFER_
FAIL(CRNp)
GCEV_
OFFERED
(CRNt,
GCRV_XFERCALL)
SETUP(ctSetup.Invoke)
GCEV_REQ_XFER
(CRNp)
gc_AcceptXfer
(CRNp)
GCEV_
ACCEPT_XFER
(CRNp)
gc_MakeCall(CRNt,
CRNp)
GCEV_XFER_
FAIL(CRNp)
Pre condition: Primary call between A and B is in connected (not shown).
GCEV_DIALING
(CRNt)
gc_DropCall(CRNp)
GCEV_
DROPCALL(CRNp)
gc_ReleaseCallEx
(CRNp)
GCEV_
RELEASECALL
(CRNp)
Before C responds...
GCEV_
DISCONNECTED
(CRNt)
gc_ReleaseCallEx(CRNt)
GCEV_
RELEASECALL
(CRNt)
gc_DropCall(CRNt)
GCEV_
DROPCALL
(CRNt)
A
(Transferring)
App
C
(Transferred To)
IP CCLib
RELEASECOMPLETE
GCEV_
DISCONNECTED
(CRNp)
gc_ReleaseCallEx
(CRNp)
GCEV_
RELEASECALL
(CRNp)
gc_DropCall(CRNp)
GCEV_
DROPCALL
(CRNp)
GCEV_
DISCONNECTED
(CRNt)
gc_ReleaseCallEx
(CRNt)
GCEV_
RELEASECALL
(CRNt)
gc_DropCall(CRNt)
GCEV_
DROPCALL
(CRNt)
gc_InvokeXfer(CRNp)