64 Global Call API for HMP on Windows Programming Guide — August 2006
Call State Models

3.4.4 Handling Unsolicited Events

The application must handle unsolicited events in the synchronous mode, unless these events are
masked or disabled. The gc_SetConfigData() function specifies the events that are enabled or
disabled for a specified line device. This function sets the event mask associated with the specified
line device. If an event bit in the mask is cleared, the event is disabled and not sent to the
application.
The unsolicited events listed in Table9 require a signal handler if they are enabled. Unsolicited
events that cannot be masked must use a signal handler. All technology-specific unsolicited events
also require a signal handler (see the appropriate Global Call Technology Guide for details). If any
of these unsolicited events are not masked by the application and signal handlers are not defined,
they are queued without being retrievable and memory problems are likely to occur.
3.5 Advanced Call Control with Call Hold and Transfer
Note: The advanced call model applies only to E1, T1 and ISDN technologies. It does not apply to IP
technology which uses a different scheme for features such as call transfer. See the Global Call IP
Technology Guide for more information.
This section describes the advanced call state model. Topics include:
Advanced Call State Model Overview
Advanced Call States for Hold and Transfer
Call Hold
Call Transfer

3.5.1 Advanced Call State Model Overview

The advanced call model provides additional call control functionality over the basic call model,
adding the ability to transfer calls, place calls on hold and retrieve calls on hold. This section
provides brief descriptions of the API functions used to hold, retrieve, and transfer calls and
Table9. Unsolicited Events Requiring Signal Handlers
Event Default Setting Maskable
GCEV_ALERTING enabled yes
GCEV_PROCEEDING disabled yes
GCEV_DETECTED disabled yes
GCEV_BLOCKED enabled yes
GCEV_UNBLOCKED enabled yes
GCEV_DISCONNECTED enabled no
GCEV_TASKFAIL enabled no