User`s guide

Dialogic
®
System Release 6.0 PCI for Windows
®
Release Update, Rev 62 — January 30, 2008 172
Dialogic Corporation
CC_CST_LCREV
These defines will be part of the GC_PARM_BLK structure that will be associated with the
GCEV_EXTENSION event that the application receives. The application parses the
GC_PARM_BLK to determine the call status transition reason.
Enable GCEV_EXTENSION Event
int EnableCallStatusInformation()
{
GC_PARM_BLKP pParmBlock = NULL;
long requestID;
int iRetCode = gc_util_insert_parm_val(&pParmBlock, CCSET_EXTENSIONEVT_MSK,
GCACT_ADDMSK, sizeof(long), EXTENSIONEVT_CALLSTATUS_TRANSITION);
int rc = gc_SetConfigData(GCTGT_CCLIB_CHAN,
m_DevHdl,
pParmBlock,
0,
GCUPDATE_IMMEDIATE,
&requestID,
EV_ASYNC);
if(rc != GC_SUCCESS) {
cout << "failed to set evt mask" << endl;
return GC_ERROR;
} else {
Cout << "gc_SetConfigData() called - Call Status Transition event reception enabled"
<< endl;
}
gc_util_delete_parm_blk(pParmBlock);
return 0;
}
Process GCEV_EXTENSION Event
GC_PARM_BLKP gcParmBlkp = NULL;
GC_PARM_DATAP t_gcParmDatap = NULL;
EXTENSIONEVTBLK *ext_evtblkp = NULL;
ext_evtblkp = (EXTENSIONEVTBLK *)meta_event.extevtdatap;
gcParmBlkp = &ext_evtblkp->parmblk;
cout << "Received GCEV_EXTENSION event with ExtID = " << ext_evtblkp->ext_id << endl;
while (t_gcParmDatap = gc_util_next_parm(gcParmBlkp, t_gcParmDatap))
{
switch (t_gcParmDatap->set_ID)
{
case CCSET_CALLSTATUS_TRANSITION:
switch(t_gcParmDatap->parm_ID)
{
case CCPARM_CST_TYPE:
// Determine the CST Type.
switch (t_gcParmDatap->value_buf)
{
case CC_CST_LCON:
cout << "LCON detected" << endl;
break;