Dialogic Dialogic Global Call IP IP Phone User Manual


 
Dialogic
®
Global Call IP Technology Guide — November 2007 159
Dialogic Corporation
IP-Specific Operations
changing between audio and T.38 fax modes
Note: The existing automatic and manual modes for audio/T.38 switching (as described in
Section 4.26, “T.38 Fax Server”) have used re-INVITE “under the hood” when using
the SIP protocol. But when an application has enabled access to re-INVITE requests,
audio/T.38 fax mode changes must be handled explicitly by the application, just like
any other re-INVITE requests.
4.7.2 Enabling Application Access to re-INVITE Requests
Note: Access to re-INVITE messages must be enabled as described in this section in both 1PCC and
3PCC operating modes.
For backwards compatibility in 1PCC mode, the default behavior of the Dialogic
®
Global Call API
library is to automatically reject all re-INVITE requests it receives that are not related to T.38, and
to do so without notifying the application.
In order to have access to received SIP re-INVITE requests, applications must set a specific
parameter value using the Global Call gc_SetConfigData( ) function. To enable the
GCEV_REQ_MODIFY_CALL event type that is used to notify applications of re-INVITE
requests, the application must include the following parameter element in the GC_PARM_BLK
that it passes to the gc_SetConfigData( ) function:
IPSET_CONFIG
IPPARM_OPERATING_MODE
value = IP_T38_MANUAL_MODIFY_MODE
The following code snippet illustrates how to set this parameter:
GC_PARM_BLKP parmblkp = NULL;
long request_id = 0;
gc_util_insert_parm_val(&parmblkp,
IPSET_CONFIG,
IPPARM_OPERATING_MODE,
sizeof(int),
IP_T38_MANUAL_MODIFY_MODE);
if (gc_SetConfigData(GCTGT_CCLIB_NETIF, boardDev, parmblkp, 0 /*timeout*/,
GCUPDATE_IMMEDIATE, &request_id, EV_ASYNC) != GC_SUCCESS)
{
// handle error…
}
In addition to enabling the GCEV_REQ_MODIFY_CALL event for access to received re-INVITE
requests, this parameter setting also enables the three gc_xxxModifyMedia( ) APIs that support re-
INVITE functionality. Unless this parameter value is set, any attempt to call one of the
gc_xxxModifyMedia( ) functions will fail with an IPERR_BAD_PARM error code.
4.7.3 Receiving SIP re-INVITE Requests
This section focuses primarily on library behavior in 1PCC operating mode. In 3PCC, the
application is responsible for parsing and SDP offers and constructing SDP answers.