Dialogic Dialogic Global Call IP IP Phone User Manual


 
426 Dialogic
®
Global Call IP Technology Guide — November 2007
Dialogic Corporation
gc_SipAck( ) — acknowledge a SIP 200OK message in 3PCC mode
/* SRL event handler: */
for (;;)
{
if (-1 != sr_waitevt(500))
process_event();
}
void process_event(void)
{
METAEVENT metaevent;
GC_INFO t_info;
/* Populate the metaEvent structure */
if(GC_SUCCESS != gc_GetMetaEvent(&metaevent)) return;
/* process GlobalCall events */
if ((metaevent.flags & GCME_GC_EVENT) == 0)
return;
switch (metaevent.evttype)
{
.
.
.
case GCEV_SIP_200OK: /* request to modify call attribute */
{
EXTENSIONEVTBLK *extblkp = metaevent.extevtdatap;
GC_PARM_BLKP parm_blkp = &extblkp->parmblk;
GC_PARM_DATA_EXT curParm;
INIT_GC_PARM_DATA_EXT(&curParm);
while ((curParm = gc_util_next_parm_ex(parm_blkp, &curParm)) != NULL)
{
.
.
.
/* parse and evaluate each proposed attribute change (code not shown)*/
.
.
.
}
if ( gc_SipAck(metaevent.crn, NULL, EV_ASYNC) != GC_SUCCESS)
{
.
.
.
/* perform error recovery here */
.
.
.
}
break;
}
case GCEV_SIP_ACK_OK:
.
.
.
/* remote dialog transaction complete */
.
.
.
break;