Intel 05-2409-003 Manual Do Utilizador

Página de 154
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 
 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).