Global Call API for HMP on Windows Programming Guide — August 2006 99
Alarm Handling
responsible for starting and stopping the transmission of alarms and setting and getting alarm
parameters, such as timing parameters.
8.2 Operation and Configuration of GCAMS
The primary functions of GCAMS are as follows:
Generation of Events for Blocking Alarms
Generation of Alarm Events
Configuration of Alarm Properties and Characteristics
Starting and Stopping Alarm Transmission (E1, T1 and ISDN technologies only)
Retrieving Alarm Data

8.2.1 Generation of Events for Blocking Alarms

Global Call alarms are classified as either blocking or non-blocking. Blocking alarms are alarms
that cause the application to become blocked and potentially generate a GCEV_BLOCKED event
when the alarm is set (the “alarm on” condition is detected). Subsequently, all blocking alarms
generate a GCEV_UNBLOCKED event when the alarm clears (the “alarm off” condition is
detected). Non-blocking alarms are alarms that do not cause the application to become blocked and
do not generate a GCEV_BLOCKED or GCEV_UNBLOCKED event when the alarm is set or
clears.
Note: The gc_SetAlarmConfiguration() function can be used to change which alarms are blocking an d
which alarms are not blocking for a given alarm source object. To retrieve the status of the current
alarm configuration, use gc_GetAlarmConfiguration( ). For more on changing the configuration
of alarm source objects, see Section8.2 .3, “Configuration of Alarm Properties and
Characteristics”, on page 101.
The GCEV_BLOCKED and GCEV_UNBLOCKED events are unsolicited events that are sent in
addition to other Global Call events. The blocked and unblocked events do not require any
application-initiated action. The blocked event is generated only for the first blocking condition
detected. Subsequent blocking conditions on the same line device will not generate additional
blocked events. Until all blocking conditions are cleared, the line device affected by the blocking
condition (that is, the line device that received the GCEV_BLOCKED event) cannot generate or
accept calls. When the line device has completely recovered from the blocking condition a
GCEV_UNBLOCKED event is sent.
When a blocking condition occurs while a call is in progress or connected, any calls on the line
device that is in the blocked condition are treated in the same manner as if a remote disconnection
occurred: an unsolicited GCEV_DISCONNECTED event is sent to the application and the call
changes to the Disconnected state. The result value retrieved for the event will indicate the reason
for the disconnection, for example, an alarm condition occurred. Result values are retrieved by
calling the gc_ResultInfo( ) function, see Section 4.4, “Event Retrieval”, on page 73. The
GCEV_BLOCKED event is also sent to the application to indicate that a blocking condition
occurred; the gc_ResultInfo() function can be called to retrieve the reason for the
GCEV_BLOCKED event, as well.