retrieves the status of the D channel cc_GetDChanState( )
105
void main()
{short devhdl; /* device handle for D channel */
int dchanstate; /* the space for cc_GetDChanState output */
.
.
.
if ( cc_Open(devhdl,"dtiB1T1",0)<0)
exit(1);
*/
* Using cc_GetDChanState() to get the
* layer 2 status.
*/
if ( cc_GetDChanState(devhdl,&dchanstate) <0)
procdevfail(devhdl);
else if ( dchanstate != DATA_LINK_UP )
{printf("D Channel link is inoperable...\n");
exit(1);
}
/* The layer 2 is OK, continue the program. */
.
.
.
.
.
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);
}
!
! !
!
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.
Error codes from the cc_GetDChanState( ) function include the following: