100 Global Call API for HMP on Windows Programming Guide — August 2006
Alarm Handling
The GCEV_BLOCKED and GCEV_DISCONNECTED events may arrive in any order. When the
blocking condition(s) clears, an unsolicited GCEV_UNBLOCKED event is sent to the application
indicating complete recovery from the blocking condition.
When a blocking condition occurs while a line device is in the Null, Disconnected, or Idle state,
only the GCEV_BLOCKED event is sent since there is no call to disconnect. The call state does
not change when a GCEV_BLOCKED or GCEV_UNBLOCKED event is sent to the application.
Note: In the asynchronous mode, if a gc_WaitCall( ) function is pending when a GCEV_UNBLOCKED
event is generated, the gc_WaitCall() function does not need to be reissued.
The GCEV_BLOCKED and GCEV_UNBLOCKED events are generated for blocking alarms at
the logical or virtual board or trunk level and the channel level:
Logical or Virtual Board (IP technology) or Trunk (E1, T1 or ISDN technology) Level
When the Global Call API recognizes a blocking alarm on condition at the logical or virtual
board or trunk level, a GCEV_BLOCKED event is generated for the logical or virtual board or
trunk device, assuming that the device is open. A GCEV_BLOCKED event is also generated
for all time slots currently open on the logical or virtual board or trunk device, assuming that
the application is currently unblocked. The application will receive a GCEV_BLOCKED event
only for the first alarm on condition for a particular line device.
When the Global Call API recognizes a blocking alarm off condition at the logical or virtual
board or trunk level, a GCEV_UNBLOCKED event is generated for the logical or virtual
board or trunk device, assuming that the device is open. A GCEV_UNBLOCKED event is also
generated for all time slots currently open on the logical or virtual board or trunk device,
assuming there are no other blocking conditions on the line device. The application will
receive a GCEV_UNBLOCKED event only for the last “alarm off” condition for a particular
line device.
Channel Level
When the Global Call API recognizes a blocking alarm on condition at the channel level, a
GCEV_BLOCKED event is generated for the channel, assuming that the application is
currently unblocked. The application will receive a GCEV_BLOCKED event only for the first
alarm on condition for the line device.
When the Global Call API recognizes a blocking alarm off condition at the channel level, a
GCEV_UNBLOCKED event is generated for the time slot, assuming there are no other
blocking conditions on the line device. The application will receive a GCEV_UNBLOCKED
event only for the last alarm off condition for the line device.
Note: When using Global Call with Intel NetStructure® Digital Network Interface boards, alarms apply
only a the trunk level. An alarm that occurs on a trunk applies to all channels on that trunk.
8.2.2 Generation of Alarm Events
The GCEV_ALARM event can be generated by both blocking and non-blocking alarms. Blocking
alarms are alarms that generate GCEV_BLOCKED and GCEV_UNBLOCKED events when the
alarms set and clear. GCEV_ALARM events are for information purposes only and do not cause
any channel state or call state changes.
In order for the GCEV_ALARM event to be returned by the application, the notify attribute for the
specified alarm source object must be set to “on” via the gc_SetAlarmConfiguration() function.