cc_HoldAck( ) accept a hold request from remote equipment
162
exit(1);
}
if ( sr_enbhdlr( ldev,CCEV_HOLDCALL,HoldCallHdlr)<0)
{
printf( "dtiEnable for HoldCallHdlr failed: %s\n",
ATDV_ERRMSGP( SRL_DEVICE ) );
return( 1 );
}
.
.
.
.
while (1)
{
/* wait for network event */
sr_waitevt(-1);
}
cc_Close(ldev);
}
/***************************************************/
/* HoldCallHdlr - accept the hold call request */
/***************************************************/
int HoldCallHdlr( )
{
CRN crn_buf;
int ldev = sr_getevtdev();
int len = sr_getevtlen();
vod *ev_datap = sr_getevtdatap();
cc_GetCRN(&crn_buf, ev_datap);
if ( cc_HoldAck( crn_buf ) <0)
procdevfail(ldev);
return( 0 );
}
int procdevfail(LINEDEV ldev)
{
int reason;
char *msg;
reason = cc_CauseValue(ldev);
cc_ResultMsg(ldev,reason,&msg);
printf("reason = %x - %s\n",reason,msg);
}
!
! !
!
Errors
If the function returns a value < 0 to indicate failure, use the cc_CauseValue( )
function to retrieve the reason code for the failure. The cc_ResultMsg( ) function
can be used to interpret the reason code. Error codes are defined in the files
ccerr.h, isdnerr.h, and isdncmd.h.