Dialogic Dialogic Global Call IP IP Phone User Manual


 
Dialogic
®
Global Call IP Technology Guide — November 2007 399
Dialogic Corporation
accept proposed modification of call characteristics — gc_AcceptModifyCall( )
gc_SetConfigData( ) function. If this parameter value has not been set, the function call will
fail with an error value of IPERR_BAD_PARM.
Only one modification transaction can be pending in a call at any given time. Until the pending
re-INVITE has been accepted, rejected, or canceled, no additional re-INVITE can be sent by
either party.
Only one attempt to send a response to a re-INVITE request can be pending at a time. A
response must fail (as indicated by a failure termination event) before a new response is
attempted, otherwise the function call will fail.
The GCEV_REQ_MODIFY_CALL event will only arrive when a call is connected. But if the
call is dropped—either locally via gc_DropCall( ) or remotely as indicated by a
GCEV_DISCONNECTED event—before a response is initiated via gc_AcceptModifyCall( ),
the request is invalid and the response can no longer be sent.
The potential for glare situations exist with a CANCEL being received from the remote party
as the local application intends to send 200OK. If the library receives the CANCEL before the
gc_AcceptModifyCall( ), the function call fails because the re-INVITE dialog is terminated
and the application receives an informational GCEV_MODIFY_CALL_CANCEL event.
Errors
The function returns GC_ERROR if any of the parameters is invalid, if the call is not in the
connected state, if there is no re-INVITE request pending, or if the value of the configuration
parameter IPSET_CONFIG / IPPARM_OPERATING_MODE has not been set to
IP_T38_MANUAL_MODIFY_MODE in 1PCC operating mode. Use the gc_ErrorInfo( )
function to retrieve further information.
Upon receiving a GCEV_ACCEPT_MODIFY_FAIL event, use the gc_ResultInfo( ) function
to retrieve information about the failure event. See the “Error Handling” section in the
Dialogic
®
Global Call API Programming Guide. All Global Call error codes are defined in the
gcerr.h file while IP-specific error codes are specified in gcip_defs.h. On failure, no
modifications to the existing dialog or media session are performed and the current state
remains as it was prior to the attempting the modification request.
Example
The following code example illustrates how the gc_AcceptModifyCall( ) function is used in the
first party call control (1PCC) operating mode.
.
.
.
/* Dialogic Header Files */
#include <gcip.h>
#include <gclib.h>
.
.
.
/* SRL event handler: */
for (;;)
{
if (-1 != sr_waitevt(500)) process_event();
}