Dialogic 05-2239-009 사용자 설명서
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
) 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.
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.
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.
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:
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);
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…
}
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.
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.
application is responsible for parsing and SDP offers and constructing SDP answers.