Programming Guide

Global Call API for HMP on Windows Programming Guide — August 2006 45
Call State Models
then the call is offered to the application regardless of the amount of information available.
The application can then request and collect more information as required.
The following sections describe various configurations operating in overlap receiving mode.
Scenario 1
In this scenario, the application is configured to acknowledge the incoming call and send a call
proceeding indication after sufficient information has been received. When an incoming call is
detected, the call is immediately offered to the application regardless of the amount of information
available to proceed with the call.
When the call is in the Offered state (after the generation of the unsolicited GCEV_OFFERED
event), the application sends an acknowledgement for the incoming call by issuing a
gc_CallAck(GCACK_SERVICE_INFO) function. The application may selectively retrieve call
information, such as Destination address and Origination address (caller ID) by issuing the
gc_GetCallInfo( ) function. If more information is still required, the gc_ReqMoreInfo( ) function
is issued to request more information. When the information is received, the GCEV_MOREINFO
event is generated again. When all the required information is received, the application may send a
call proceeding indication to the remote side by issuing the gc_CallAck( ) function. Otherwise, the
application can choose to accept or answer the call.
Scenario 2
In this scenario, the technology call control layer is configured to acknowledge the incoming call
and send a call proceeding indication after sufficient information has been received. When an
incoming call is detected, the technology call control layer immediately sends an
acknowledgement. If the minimum amount of information required is specified, then the call is
offered to the application only after the minimum amount of information required is received. After
the call is offered to the application, the address information can be retrieved to determine if more
information is required. If more information is required, a
gc_CallAck(GCACK_SERVICE_INFO) function must be issued. Since an acknowledgement
was already sent out, nothing is sent to the remote side at this time. However, if the minimum
amount of information is not specified, then the technology control layer requests and collects
more information. After all the maximum amount of information expected is received, the
technology control layer sends a call proceeding indication to the remote side. The call is then
offered to the application, which can then accept or answer the call.
Scenario 3
In this scenario, the technology call control layer is configured to acknowledge the incoming call
and the application is configured to send a call proceeding indication after sufficient information
has been received. When an incoming call is detected, the technology call control layer
immediately sends an acknowledgement. If the minimum amount of information required is
specified, then the call is offered to the application only after the minimum amount of information
required is received. Otherwise the call is immediately offered to the application.
When the call is in the Offered state (after generation of the unsolicited GCEV_OFFERED event),
the application may selectively retrieve call information, such as the Destination and Origination