1.7.7. Retrieve the Network Call Reference Value (CRV)
The GCIS_EXID_GETNETCRV extension ID is supported when using Springware boards only. When using DM3 boards, the CRV can be retrieved using gc_GetCRV( ) function.
The GCIS_EXID_GETNETCRV extension ID is used to retrieve the network call reference value (CRV) for a specified call reference number (CRN). The CRN is assigned during either the gc_MakeCall( ) function for outbound calls or the gc_WaitCall( ) function for incoming calls. If an invalid host CRN value is passed, for example, the CRN of an inactive call, the gc_Extension( ) function will return a value <0 indicating failure.
- Note: The GCIS_EXID_GETNETCRV extension ID can be used to invoke the Two B Channel Transfer (TBCT) feature. The TBCT feature is invoked by sending a FACILITY message to the network containing, among other things, the call reference values (CRVs) of the two calls to be transferred. See Appendix B, "ISDN Call Scenarios" for more information on TBCT.
The following table provides the parameter inputs for the gc_Extension( ) function.
- Note: This extension ID is not supported for the BRI/2 board
Example
int UseExtGetNetCRV (CRN crn, int *netcrvp, unsigned mode) { /* The GC_PARM_BLK data must point to NULL initially */ GC_PARM_BLKP parm_blkp = NULL, ret_blkp = NULL; GC_PARM_DATAP parm_datap; int ret_val = 0; GC_INFO t_Info; /* Insert the parm into the data block */ gc_util_insert_parm_ref(&parm_blkp, GCIS_SET_GENERIC, GCIS_PARM_NETCRV, sizeof(int), 0); ret_val = gc_Extension( GCTGT_GCLIB_CRN, crn, GCIS_EXID_GETNETCRV, parm_blkp, &ret_blkp, mode); if ( ret_val ) { ret_val = gc_ErrorInfo(&t_Info); if (ret_val == GC_SUCCESS) { printf("gc_Extension() fails with GC Error 0x%xh: %s\n", t_Info.gcValue, t_Info.gcMsg); printf("CC %d(%s) Error - 0x%xh: %s\n", t_Info.ccLibId, t_Info.ccLibName, t_Info.ccValue, t_Info.ccMsg); printf("Additional message: %s\n", t_Info.additionalInfo); } else { printf("gc_ErrorInfo() call failed\n"); } } /* Get the first parm from the data block */ parm_datap = gc_util_next_parm(parm_blkp, NULL); /* Get the NetCRV from the parm data */ memcpy(netcrvp, parm_datap->value_buf, sizeof(int)); /* Free the Parm data block allocated when done */ gc_util_delete_parm_blk( parm_blkp ); return ret_val; }
Click here to contact Telecom Support Resources
Copyright 2003, Intel Corporation