Global Call API for HMP on Windows Programming Guide — August 2006 69
Call State Models
Figure 20. Call Termination by the Network or Application During a Transfer
Note: In Figure20, when gc_DropCall( ) is issued, an unsolicited GC EV_CONNECTED event is
received for call 1 transitioning it back to the Connected state.
3.5.4.3 Unsupervised Transfers
In an unsupervised transfer, a successful call to the gc_BlindTransfer() function transfers the call
in a single step, without any consultation or announcement by the person transferring the call.
Internally, the currently connected call is placed on hold, the new party is dialed, and, finally, the
connection to both parties is relinquished. When the application receives the
GCEV_BLINDTRANSFER event, the original call enters the GCST_IDLE state. At this point the
application must call gc_ReleaseCallEx() for the call to release the allocated resources.
Once the new party is dialed, the control and responsibility for the results of the transfer, whether
successfully connected or not, lie totally with the remote party once the transfer is relinquished.
Only one call is controlled by the application as the transfer is initiated internally via the protocol.
Unsupervised transfers do not provide call progress results for the transfer nor do they support
terminating the transfer at any point via the gc_DropCall() function.
gc_DropCall (Call 2)*
GCEV_DROPCALL (Call 2)
GCEV_CONNECTED (Call 1)
gc_ReleaseCallEx (Call 2)
gc_DropCall (Call 2)*
GCEV_DROPCALL (Call 2)
GCEV_CONNECTED (Call 1)
OnHoldPendingtransfer (Call 1)
Dialing (Call 2)
OnHoldPendingtransfer (Call 1)
Alerting (maskable) (Call 2)
OnHoldPendingtransfer (Call 1)
Connected (Call 2)
OnHoldPendingtransfer (Call 1)
Dialing (Call 2)
state unchanged (Call 1)
Disconnected (Call 2)
Connected (Call 1)
Idle (Call 2)
Connected (Call 1)
Null (Call 2)
OnHoldPendingtransfer (Call 1)
Alerting (maskable) (Call 2)
OnHoldPendingtransfer (Call 1)
Connected (Call 2)
Disconnected (Call 1)
state unchanged (Call 2)
TERMINATED
BY
NETWORK
(from any of the states
shown in the box below)
TERMINATED
BY
APPLICATION
(from any of the states
shown in the box below)
This can be Call 1 or Call 2
depending on which call is
currenly active, that is, not in an
OnHoldPendingTransfer state.
*
Note:
Connected (Call 1)
OnHoldPendingtransfer (Call 2)
Connected (Call 1)
OnHoldPendingtransfer (Call 2)