gets the call charge information cc_GetBilling( )
87
#include "cclib.h"
void main()
{
LINEDEV devhdl = 0;
CRN crn = 0;
char *devname = "dtiB1T1";
char billingbuf[CC_BILLSIZE];
if ( cc_Open( &devhdl, devname,0)<0)
{
printf("Error opening device: errno = %d\n", errno);
exit(1);
}
printf("Making call\n");
if ( cc_MakeCall(devhdl,&crn,"9933000",NULL,30,EV_SYNC)<0)
procdevfail(devhdl);
.
.
.
.
.
/* Drop the call */
if ( cc_DropCall(crn, NORMAL_CLEARING, EV_SYNC)<0)
callfail(crn);
/*
Using cc_ GetBilling(crn,billingbuf)to
retrieve the call charge information.
Note that not every network supports this feature
*/
if ( cc_GetBilling(crn,billingbuf) <0)
callfail(crn);
if ( cc_ReleaseCall(crn)<0)
callfail(crn);
if ( cc_Close( devhdl)<0)
printf("Error closing device, errno = %d\n", errno);
}
int callfail(CRN crn)
{
LINEDEV ld;
cc_CRN2LineDev(crn,&ld);
procdevfail(ld);
}
int procdevfail(LINEDEV handle)
{
int reason;
char *msg;
reason = cc_CauseValue(handle);
cc_ResultMsg(handle,reason,&msg);
printf("reason = %x - %s\n",reason,msg);
}