PREV TOC HOME INDEX NEXT


1.7.11. Send Frame to the Data Link Layer

The GCIS_EXID_SNDFRAME extension ID is used to send a frame to the data link layer. When the data link layer is successfully established, the application will receive a GCEV_D_CHAN_STATUS event. If the data link layer is not established before the function is called, the function will be returned with a value <0 indicating function failure.

Note: To enable Layer 2 access, set parameter number 24 to 01 in the firmware parameter file. When Layer 2 access is enabled, only the gc_Extension( ) function with the ext_id parameter set to GCIS_EXID_GetFrame or CC_SndFrame can be used (no calls can be made).

The following table shows the 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_SNDFRAME
parmblkp the pstruct member of parmblkp should point to the L2_BLK data structure. For a description of the L2_BLK data structure, refer to Section4.2, L2_BLK. Also see example code for details.

set_id - GCIS_SET_DLINK

parm_id - GCIS_PARM_DLINK_CES

values -

    • 0 for PRI
    • 1-8 for BRI when used as a network-side terminal.

value_type - char


parm_id - GCIS_PARM_DLINK_SAPI

values -

    • 0 for BRI and PRI
    • 16 for X.25 packets over D-channel

value_type - char


set_id - GCIS_SET_IE

parm_id - GCIS_PARM_IEDATA

values - user provided


value_type - char array, length should not exceed MAXLEN_IEDATA

mode EV_SYNC

Note: The data link layer must be successfully established before the gc_Extension( ) function with ext_id GCIS_EXID_SndFrame is called.

This extension ID is not supported for the BRI/2 board.

Example
 int extSndFrame (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];
          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);
          InitSndFrameBlk(ie_data);
         gc_util_insert_parm_ref( &parm_blkp, GCIS_SET_IE, GCIS_PARM_IEDATA, 
                13, ie_data);
          mode = EV_SYNC;
          ret_val = gc_Extension(GCTGT_GCLIB_CHAN, handle, GCIS_EXID_SNDFRAME,
                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;
}
 void InitSndFrameBlk (char *data)
{
         data [0] = 0x08;     /* Protocol discriminator */
         data [1] = 0x02;     /* CRN length - 2 bytes */
         data [2] = 0x03;     /* CRN = 8003 */
         data [3] = 0x80;
         data [4] = 0x6e;     /* msg type = NOTIFY */
          /* The first IE */
         data [5] = 0x27;     /* IE type = 27 (NOTIFY) */
         data [6] = 0x01;     /* The length of NOTIFY */
         data [7] = 0xF1;     /* Notify indication */
          /* The second IE */
         data [8] = 0x76;     /* IE type = 76 (REDIRECTION) */
         data [9] = 0x03;     /* length of redirection */
         data [10] = 0x01;    /* unknown type and E164 plan */
         data [11] = 0x03;    /* network provides presentation */
         data [12] = 0x8D;    /* reason = transfer */
         } 

PREV TOC HOME INDEX NEXT

Click here to contact Dialogic Customer Engineering

Copyright 2001, Dialogic Corporation
All rights reserved
This page generated October, 2001