Global Call API for HMP on Windows Programming Guide — August 2006 67
Call State Models
Supervised transfers use the following Global Call API functions:
gc_SetupTransfer()
initiates a supervised transfer
gc_CompleteTransfer()
completes a supervised transfer
gc_SwapHold()
switches between the consultation call and the call pending transfer
Unsupervised transfers use the following Global Call API function:
gc_BlindTransfer( )
initiates and completes an unsupervised (one-step) transfer
3.5.4.2 Supervised Transfers
A supervised transfer begins with a successful call to the gc_SetupTransfer() function. The
following steps describe how the transfer is completed:
1. Successful call to the gc_SetupTransfer( ) function changes the state of the original call to the
GCST_ONHOLDPENDINGTRANSFER state.
2. A consultation CRN is allocated with the initial state of GCST_DIALTONE and is returned by
the gc_SetupTransfer() function.
3. The gc_MakeCall( ) function is called to establish a connection on the consultation call. The
CRN returned by gc_MakeCall( ) is the same CRN as was returned by gc_SetupTransfer().
4. The consultation call proceeds similarly to a singular outbound call proceeding through the
GCST_DIALING and GCST_ALERTING (if enabled) call states. (See Section3.4, “Basic
Call Control in Asynchronous Mode” for more information.)
5. If the consultation call is successfully established, the state of the consultation call changes to
the GCST_CONNECTED state, and the state of the original call remains unchanged.
6. While the consultation call is in the GCST_CONNECTED state, the gc_SwapHold( ) function
may be used to switch between the call pending transfer and the consultation call.
7. A call to the gc_CompleteTransfer( ) function transfers the original call to the consultation
call and internally drops both channels.
8. The states of the original and the consultation call both change to the GCST_IDLE state upon
receipt of the GCEV_COMPLETETRANSFER event.
9. The application must call gc_ReleaseCallEx( ) for both of the calls to release the resources
allocated for both channels.
Note: The consultation call may be terminated at any point in the process by the application or by the
detection of a call disconnect from the network.
The call state transitions that occur during a supervised transfer are shown in Figure 19 (which also
shows the call state transitions for an unsupervised transfer).