1.7.13. Send a Non-Call Related ISDN Message
The GCIS_EXID_SNDNONCALLMSG extension ID is supported when using Springware boards only. When using DM3 boards, the GCIS_EXID_SNDNONCALLMSG extension ID is not supported.
The GCIS_EXID_SNDNONCALLMSG extension ID is used to send a non-Call related ISDN message to the network over the D Channel. This extension ID specifies the ISDN CRN Type as either:
- GLOBAL CRN - pertaining to all calls or channels on a trunk
- NULL CRN - not related to any particular call
Unlike the GCIS_EXID_SNDMSG extension ID, this extension ID does not require a call reference number (CRN) to transmit the outgoing message.
The following table provides the parameter inputs for the gc_Extension( ) function.
- Note: Some IEs may require a Call Reference Value (CRV) to be part of the contents. The call reference in this case, must be the Call Reference Value assigned by the network, not the Call Reference Number (CRN) that is assigned by Global Call and retrieved using the gc_GetCRN( ) function. It is up to the application to correctly format and order the IEs. Refer to the ISDN Recommendation Q.931 or the switch specification of the application's ISDN protocol for the relevant CCITT format.
Example
int extSndNonCallMsg (LINEDEV handle) { GC_PARM_BLKP parm_blkp = NULL, ret_blkp = NULL; unsigned long mode; int ret_val = 0; GC_INFO t_Info; int indicator char sapi, ces, ie_data[255]; int msg; unsigned char length; gc_util_insert_parm_val( &parm_blkp, GCIS_SET_GENERIC, GCIS_PARM_CRNTYPE, sizeof( int ), GLOBAL_CRN); sapi = 0; gc_util_insert_parm_ref( &parm_blkp, GCIS_SET_DLINK, GCIS_PARM_DLINK_SAPI, sizeof( char ), &sapi); ces = 1; gc_util_insert_parm_ref( &parm_blkp, GCIS_SET_DLINK, GCIS_PARM_DLINK_CES, sizeof( char ), &ces); msg = SndMsg_Notify; gc_util_insert_parm_ref( &parm_blkp, GCIS_SET_SNDMSG, GCIS_PARM_SNDMSGTYPE, sizeof( int ), &msg); //See previous section on Send a Non-Call State Related ISDN Message InitSndMsgBlk (ie_data, msg, &length); gc_util_insert_parm_ref( &parm_blkp, GCIS_SET_IE, GCIS_PARM_IEDATA, length, ie_data); mode = EV_SYNC; ret_val = gc_Extension(GCTGT_GCLIB_CHAN, handle, GCIS_EXID_SNDNONCALLMSG, parm_blkp, &ret_blkp, mode); if ( ret_val ) { ret_val = gc_ErrorInfo(&t_Info); if (ret_val == GC_SUCCESS) { printf("gc_ErrorInfo() successfully called\n"); PrintGC_INFO(&t_Info); } else { printf("gc_ErrorInfo() call failed\n"); } } gc_util_delete_parm_blk( ret_blkp ); gc_util_delete_parm_blk( parm_blkp ); return ret_val; }
Click here to contact Telecom Support Resources
Copyright 2003, Intel Corporation