PREV TOC HOME INDEX NEXT


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.

Parameter

Input

target_type GCTGT_GCLIB_CRN
target_id call reference number (CRN) of the call
ext_id GCIS_EXID_GETNETCRV
retblkp set_id - GCIS_SET_GENERIC

parm_id - GCIS_PARM_NETCRV


values - network provided

value_type - int
mode EV_SYNC

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;
} 

PREV TOC HOME INDEX NEXT

Click here to contact Telecom Support Resources

Copyright 2003, Intel Corporation
All rights reserved
This page generated January, 2003