FW: SOS pls convert these into pascal syntax....

"Nitin Khanna" <[email protected]> Mon, 17 Jan 2005 12:16:20 +0530
Newsgroups gmane.comp.lang.delphi.jedi
Message-ID <[email protected]>

 

Can ne1 pls convert these files to .pas Pascal syntax files ..  We need them
for our project....SOS

  _____  

From: Nitin Khanna [mailto:[email protected]] 
Sent: Monday, January 17, 2005 12:11 PM
To: Robert Marquardt
Cc: Chisolm Wilson
Subject: SOS pls convert these into pascal syntax....

 

Hi Robert,

Can u pls convert these files into pascal syntax .pas files . these are
urgently reqd in our project

Regards 

nitin


  ----------

/**********************************************************************
*
*   C Header:       gclib.h
*   Description:    GlobalCall header file for application use
*   %created_by:    seibelr %
*   %date_created:  Thu Nov 01 15:50:19 2001 %
*
**********************************************************************/
/**********************************************************************
*  Copyright (C) 1996-2001 Dialogic Corp.
*  All Rights Reserved
*
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Dialogic Corp.
*  The copyright notice above does not evidence any actual or
*  intended publication of such source code.
**********************************************************************/
#ifndef GCLIB_H
#define GCLIB_H

#ifndef lint
static 
#ifdef __cplusplus          
const             /* C++ needs const */     
#endif
char     *_dnj25_gclib_h = "@(#) %filespec: gclib.h-97.1.2 %	 (%full_filespec: gclib.h-97.1.2:incl:gc#dnj25 %)";
#endif  /* !lint */

#include <stdio.h>
#include "srllib.h"
#include "dxxxlib.h"

#ifdef __cplusplus
extern "C" {    /* C++ func bindings to enable funcs to be called from C++ */
#endif  /* __cplusplus */

/* Enable the #pragma pack(1) for WIN32 and UNIX */
#pragma pack(1)


#define METAEVENT_MAGICNO 0xBAD012FBL
/*
 * This file will be exported to application
 */

/*
 * Typedefs used throughout GlobalCall software, and application.
 */
#define GCLIB_DEBUG_FILE_NAME       "gclib.dbg"  /* controls where debug file list is kept */
#define MAX_BOARD_NAME_LENGTH       100          /* Not including the trailing NULL */
#define MAX_CCLIB_NAME_LENGTH       30           /* Not including the trailing NULL */
#define LIBID_GC                    0            /* GlobalCall lib's id */
#define GC_MAX_CRNS_PER_LINEDEV     20
#define GC_MAX_CCLIBNAME_LEN        20           /* Maximum length of a call control library name */

/*gc1*/
#define LINEDEV                      long
/*gc2*/
#define CRN                          long

/*
-- bit mask for gc_GetCCLibInfo
*/
#define GC_CCLIB_AVL                 0x1
#define GC_CCLIB_CONFIGURED          0x2
#define GC_CCLIB_FAILED              0x4
#define GC_CCLIB_STUB                0x8
#define GC_CCLIB_AVAILABLE           GC_CCLIB_AVL

/*
-- defines for gc_GetCallInfo()
*/
/*#define CALLED_SUBS         0x5*/    /* In ISDN header files */
/*#define U_IES               0x10*/   /* In ISDN header files */
#define CATEGORY_DIGIT        0x100    /* Get category digit */
#define CONNECT_TYPE          0x101    /* get callp connect type */
#define CALLNAME              0x102    /* get caller name call ID */
#define CALLTIME              0x103    /* get caller time call ID */
#define CALLINFOTYPE          0x105    /* type of call (charge, no charge, etc.) */
#define PRESENT_RESTRICT      0x106    /* origination presentation restriction */

/* Defines to indicate type of information */
/* for gc_CallAck(), gc_GetCallInfo(), gc_SendMoreInfo() and gc_ReqMoreInfo() */
#define ORIGINATION_ADDRESS   0x107
#define DESTINATION_ADDRESS   0x108


/*
-- Defines for the connect types
*/
#define GCCT_NA             0          /* media detection is not available (Orig. def.) */
#define GCCT_NOTENABLED     GCCT_NA    /* media detection never enabled (Preferred def.) */
#define GCCT_CAD            1          /* connect due to cadence */
#define GCCT_LPC            2          /* connect due to loop current */
#define GCCT_PVD            3          /* connect due to positive voice detection */
#define GCCT_PAMD           4          /* connect due to positive answering machine detection */
#define GCCT_FAX            GCCT_FAX1  /* for legacy re-compiles */
#define GCCT_INPROGRESS     6          /* media detection not yet avail. */
#define GCCT_DISCARDED      7          /* call disconnected by remote end or network */
#define GCCT_UNKNOWN        8          /* unknown media type answered the call */
#define GCCT_FAX1           9          /* connect due to fax tone TID_FAX1  */
#define GCCT_FAX2           10         /* connect due to fax tone TID_FAX2 */


/*gc3*/

/*
 * Total number of Call Control Libraries supported by GlobalCall
 */
#define GC_TOTAL_CCLIBS        9    /* Number of CC libraries suppported */

/*
 * GlobalCall Library component
 */
#define GC_LIB                 0     /* GlobalCall library */

/*
 * Call Control Libraries supported by GlobalCall
 */
#define GC_ALL_LIB             0     /* All CC libraries */
#define GC_ICAPI_LIB           1     /* ICAPI library */
#define GC_ISDN_LIB            2     /* ISDN library */
#define GC_ANAPI_LIB           3     /* ANAPI library */
#define GC_PDKRT_LIB           4     /* PDKRT library */
#define GC_SS7_LIB             5     /* SS7 library */
#define GC_DM3CC_LIB           6     /* DM3CC library */
#define GC_IPM_LIB             7     /* IP_Media library */
#define GC_CUSTOM1_LIB         100   /* Custom library # 1 */
#define GC_CUSTOM2_LIB         101   /* Custom library # 2 */


/*
 * CCLib specific start structure, used by GC_START_STRUCT
 * Libraries should find its own structure by looking at the name field in the
 * array pointed to by GC_START_STRUCT
 */
typedef struct {
    char    *cclib_name;          /* Must match CCLib name in gcprod */
    void    *cclib_data;
} CCLIB_START_STRUCT, *CCLIB_START_STRUCTP;

/*
 * GC start structure, points to an array of CCLIB_START_STRUCT
 */
typedef struct {
    int                  num_cclibs;
    CCLIB_START_STRUCT   *cclib_list;
} GC_START_STRUCT, *GC_START_STRUCTP;

/*
 * Custom CCLib start structure
 */
typedef struct {
    char    *file_name;           /* Name of library file */
    char    *start_proc_name;     /* Name of start procedure */
} GC_CUSTOMLIB_STRUCT, *GC_CUSTOMLIB_STRUCTP;


typedef struct {
    int     num_avllibraries;
    int     num_configuredlibraries;
    int     num_failedlibraries;
    int     num_stublibraries;

    /*
    -- these are an array of strings, each string terminated with a NULL
    -- e.g. avl_libraries[0] = "GC_ICAPI_LIB"
    --        avl_libraries[1] = "GC_ISDN_LIB"
    --        avl_libraries[2] = "GC_ANAPI_LIB"
    */
    char    **avllibraries;
    char    **configuredlibraries;
    char    **failedlibraries;
    char    **stublibraries;
} GC_CCLIB_STATUS, *GC_CCLIB_STATUSP;


/*
 * Data structure types
 */
typedef struct {
    char    name[GC_MAX_CCLIBNAME_LEN];  /* name of the library. */
    int     state;                       /* state of the library */
} GC_CCLIB_STATE, *GC_CCLIB_STATEP;

typedef struct {
    GC_CCLIB_STATE  cclib_state[GC_TOTAL_CCLIBS];
} GC_CCLIB_STATUSALL, *GC_CCLIB_STATUSALLP;



typedef struct {
    long    poll_units;     /* # of poll units before gc_GetEvent */
                            /* should return */
                            /* -1 = no limit */
                            /* 0 is the same as 1 */
                            /* NB - Only 1 or forever is currently */
                            /* implemented */
                            /* in the future, poll_units may be */
                            /* either cycles or time */
    int     rfu1;           /* reserved for future use */
    int     rfu2;           /* reserved for future use */
} GETEVENT;

/*
-- for gc_Open() successful "termination event"
-- need to distinguish from normal BLOCKED/UNBLOCKED codes
*/
#define     GCEV_OPEN_UNBLOCKED         -1L /* result of open being successful */
                                                            /* a - number so not to conflict with */
                                                            /* DTILIB codes */


/*
 * Data structure types
 */
#define GCME_UNKNOWN_STRUCT_TYPE      0
#define GCME_EVTBLK_STRUCT_TYPE       1
#define GCME_EVTDATA_STRUCT_TYPE      2


/*
 * Defines for GlobalCall API event codes
 */
#define DT_GC           0x800

/*gc4*/
#define GCEV_TASKFAIL       (DT_GC | 0x01) /* Abnormal condition; state unchanged */
#define GCEV_ANSWERED       (DT_GC | 0x02) /* Call answered and connected */
#define GCEV_CALLPROGRESS   (DT_GC | 0x03)
#define GCEV_ACCEPT         (DT_GC | 0x04) /* Call is accepted */
#define GCEV_DROPCALL       (DT_GC | 0x05) /* gc_DropCall is completed */
#define GCEV_RESETLINEDEV   (DT_GC | 0x06) /* Restart event */
#define GCEV_CALLINFO       (DT_GC | 0x07) /* Info message received */
#define GCEV_REQANI         (DT_GC | 0x08) /* gc_ReqANI() is completed */
#define GCEV_SETCHANSTATE   (DT_GC | 0x09) /* gc_SetChanState() is completed */
#define GCEV_FACILITY_ACK   (DT_GC | 0x0A)
#define GCEV_FACILITY_REJ   (DT_GC | 0x0B)
#define GCEV_MOREDIGITS     (DT_GC | 0x0C) /* cc_moredigits() is completed*/
#define GCEV_SETBILLING     (DT_GC | 0x0E) /* gc_SetBilling() is completed */
#define GCEV_ATTACH         (DT_GC | 0x0f) /* media device successfully attached */
#define GCEV_ATTACH_FAIL    (DT_GC | 0x10) /* failed to attach media device */
#define GCEV_DETACH         (DT_GC | 0x11) /* media device successfully detached */
#define GCEV_DETACH_FAIL    (DT_GC | 0x12) /* failed to detach media device */
#define GCEV_MEDIA_REQ      (DT_GC | 0x13) /* Remote end is requesting media channel */
#define GCEV_STOPMEDIA_REQ  (DT_GC | 0x14) /* Remote end is requesting media streaming stop */
#define GCEV_MEDIA_ACCEPT   (DT_GC | 0x15) /* Media channel established with peer */
#define GCEV_MEDIA_REJ      (DT_GC | 0x16) /* Failed to established media channel with peer*/
#define GCEV_OPENEX         (DT_GC | 0x17) /* Device Opened successfully */
#define GCEV_OPENEX_FAIL    (DT_GC | 0x18) /* Device failed to Open */
#define GCEV_ALERTING       (DT_GC | 0x21) /* The destination telephone terminal
                                            * equipment has received connection
                                            * request (in ISDN accepted the
                                            * connection request. This event is
                                            * an unsolicited event
                                            */
#define GCEV_CONNECTED      (DT_GC | 0x22) /* Destination answered the request */
#define GCEV_ERROR          (DT_GC | 0x23) /* unexpected error event */
#define GCEV_OFFERED        (DT_GC | 0x24) /* A connection request has been made */
#define GCEV_DISCONNECTED   (DT_GC | 0x26) /* Remote end disconnected */
#define GCEV_PROCEEDING     (DT_GC | 0x27) /* The call state has been changed to
                                            * the proceeding state */
#define GCEV_PROGRESSING    (DT_GC | 0x28) /* A call progress message has been
                                            * received */
#define GCEV_USRINFO        (DT_GC | 0x29) /* A user to user information event is
                                            * coming */
#define GCEV_FACILITY       (DT_GC | 0x2A) /* Network facility indication */
#define GCEV_CONGESTION     (DT_GC | 0x2B) /* Remote end is not ready to accept
                                            * incoming user information */
#define GCEV_D_CHAN_STATUS  (DT_GC | 0x2E) /* Report D-channel status to the user */
#define GCEV_NOUSRINFOBUF   (DT_GC | 0x30) /* User information element buffer is
                                            * not ready */
#define GCEV_NOFACILITYBUF  (DT_GC | 0x31) /* Facility buffer is not ready */
#define GCEV_BLOCKED        (DT_GC | 0x32) /* Line device is blocked */
#define GCEV_UNBLOCKED      (DT_GC | 0x33) /* Line device is no longer blocked */
#define GCEV_ISDNMSG        (DT_GC | 0x34)
#define GCEV_NOTIFY         (DT_GC | 0x35) /* Notify message received */
#define GCEV_L2FRAME        (DT_GC | 0x36) 
#define GCEV_L2BFFRFULL     (DT_GC | 0x37)
#define GCEV_L2NOBFFR       (DT_GC | 0x38)
#define GCEV_SETUP_ACK      (DT_GC | 0x39)
#define GCEV_REQMOREINFO    GCEV_SETUP_ACK /* Received request for more information from network */
                                           /* This is a replacement of GCEV_SETUP_ACK event */
#define GCEV_CALLSTATUS     (DT_GC | 0x3A) /* call status, e.g. busy */
#define GCEV_MEDIADETECTED  (DT_GC | 0x3B) /* Media detection completed */

/*gc5*/
/* these events only apply to those sites using ISDN DPNSS */
#define GCEV_DIVERTED       (DT_GC | 0x40)
#define GCEV_HOLDACK        (DT_GC | 0x41)
#define GCEV_HOLDCALL       (DT_GC | 0x42)
#define GCEV_HOLDREJ        (DT_GC | 0x43)
#define GCEV_RETRIEVEACK    (DT_GC | 0x44)
#define GCEV_RETRIEVECALL   (DT_GC | 0x45)
#define GCEV_RETRIEVEREJ    (DT_GC | 0x46)
#define GCEV_NSI            (DT_GC | 0x47)
#define GCEV_TRANSFERACK    (DT_GC | 0x48)
#define GCEV_TRANSFERREJ    (DT_GC | 0x49)
#define GCEV_TRANSIT        (DT_GC | 0x4A)
#define GCEV_RESTARTFAIL    (DT_GC | 0x4B)

/* end of ISDN DPNSS specific */

#define GCEV_ACKCALL             (DT_GC | 0x50) /* Termination event for gc_CallACK() */
#define GCEV_SETUPTRANSFER       (DT_GC | 0x51) /* Ready for making consultation call */
#define GCEV_COMPLETETRANSFER    (DT_GC | 0x52) /* Transfer completed successfully */
#define GCEV_SWAPHOLD            (DT_GC | 0x53) /* Call on hold swapped with active call */
#define GCEV_BLINDTRANSFER       (DT_GC | 0x54) /* Call transferred to consultation call */
#define GCEV_LISTEN              (DT_GC | 0x55) /* Channel (listen) connected to SCbus timeslot */
#define GCEV_UNLISTEN            (DT_GC | 0x56) /* Channel (listen) disconnected from SCbus timeslot */
#define GCEV_DETECTED            (DT_GC | 0x57) /* Incoming call detected */
#define GCEV_FATALERROR          (DT_GC | 0x58) /* Fatal error has occurred, see result value */
#define GCEV_RELEASECALL         (DT_GC | 0x59) /* Call Released */
#define GCEV_RELEASECALL_FAIL    (DT_GC | 0x5A) /* Failed to Release call*/

#define GCEV_DIALTONE            (DT_GC | 0x60) /* Call has transitioned to GCST_DialTone state */
#define GCEV_DIALING             (DT_GC | 0x61) /* Call has transitioned to GCST_Dialing state */
#define GCEV_ALARM               (DT_GC | 0x62) /* An alarm occurred */
                                                /* NOTE: this alarm is disabled by default */
#define GCEV_MOREINFO            (DT_GC | 0x63) /* Status of information requested\received */
#define GCEV_SENDMOREINFO        (DT_GC | 0x65) /* More information sent to the network */
#define GCEV_CALLPROC            (DT_GC | 0x66) /* Call acknowledged to indicate that the call is */
                                                /* now proceeding */
#define GCEV_NODYNMEM            (DT_GC | 0x67) /* No dynamic memory available */
#define GCEV_EXTENSION           (DT_GC | 0x68) /* Termination event for gc_Extension() */
#define GCEV_GETCONFIGDATA       (DT_GC | 0x6A) /* Configuration data successfully */
                                                /* retrieved */
#define GCEV_GETCONFIGDATA_FAIL  (DT_GC | 0x6B) /* Failed to get (retrieve) the */
                                                /* configuration data */
#define GCEV_SETCONFIGDATA       (DT_GC | 0x6C) /* The configuration data successfully */
                                                /* updated (set) */
#define GCEV_SETCONFIGDATA_FAIL  (DT_GC | 0x6D) /* Failed to set (update) the */
                                                /* configuration data   */
#define GCEV_SERVICEREQ          (DT_GC | 0x6E) /* Service Request received */
#define GCEV_SERVICERESP         (DT_GC | 0x70) /* Service Response received */
#define GCEV_SERVICERESPCMPLT    (DT_GC | 0x71) /* Service Response sent */

#define GCEV_FACILITYREQ         (DT_GC | 0xFF) /* A facility request is made by CO */

/*
 * MASK defines which may be modified by gc_SetEvtMsk().
 * These masks are used to mask or unmask their corresponding events,
 * GCEV_xxxx.
 */
#define GCMSK_ALERTING           0x01
#define GCMSK_PROCEEDING         0x02
#define GCMSK_PROGRESS           0x04
#define GCMSK_NOFACILITYBUF      0x08
#define GCMSK_NOUSRINFO          0x10
#define GCMSK_BLOCKED            0x20
#define GCMSK_UNBLOCKED          0x40
#define GCMSK_PROC_SEND          0x80
#define GCMSK_SETUP_ACK          0x100
#define GCMSK_DETECTED           0x200
#define GCMSK_DIALTONE           0x400
#define GCMSK_DIALING            0x800
#define GCMSK_FATALERROR         0x1000
#define GCMSK_REQMOREINFO        0x2000



/*
 * Event Mask Action values
 *
 */
#define GCACT_SETMSK             0x01   /* Enable notification of events
                                         * specified in bitmask and disable
                                         * notification of previously set
                                         * events */
#define GCACT_ADDMSK             0x02   /* Enable notification of events
                                         * specified in bitmask in addition
                                         * to previously set events. */
#define GCACT_SUBMSK             0x03   /* Disable notification of events
                                         * specified  in bitmask. */

/*
 * BUFFER sizes
 */
#define GC_BILLSIZE              0x60   /* For storing billing info */
#define GC_ADDRSIZE              128 	/* For storing ANI or DNIS digits. */


/*
 * Components supported for gc_GetVer()
 */
#define GCGV_LIB         GC_LIB         /* GlobalCall library */
#define ICGV_LIB         GC_ICAPI_LIB   /* ICAPI library */
#define ISGV_LIB         GC_ISDN_LIB    /* ISDN library */
#define ANGV_LIB         GC_ANAPI_LIB   /* ANAPI library */
#define PDGV_LIB         GC_PDKRT_LIB   /* PDKRT library */
#define SS7GV_LIB        GC_SS7_LIB     /* SS7 library */
#define DM3CCGV_LIB      GC_DM3CC_LIB   /* DM3 library */
#define IPMGV_LIB        GC_IPM_LIB     /* IP Media library */


/*
 * Cause definitions for dropping a call
 */
#define GC_UNASSIGNED_NUMBER      0x01  /* Number unassigned / unallocated */
#define GC_NORMAL_CLEARING        0x10  /* Call dropped under normal conditions*/
#define GC_CHANNEL_UNACCEPTABLE   0x06
#define GC_USER_BUSY              0x11  /* End user is busy */
#define GC_CALL_REJECTED          0x15  /* Call was rejected */
#define GC_DEST_OUT_OF_ORDER      0x19  /* Destination is out of order */
#define GC_NETWORK_CONGESTION     0x2a
#define GC_REQ_CHANNEL_NOT_AVAIL  0x2c  /* Requested channel is not available */
#define GC_SEND_SIT               0x300 /* send Special Info. Tone (SIT) */

/*
 * RATE types for gc_SetBilling()
 */
#define GCR_CHARGE                0x0000 /* Charge call (default) */
#define GCR_NOCHARGE              0x0100 /* Do not charge call */


/*
 * Defines for 'parm' parameter of gc_SetParm() and gc_GetParm()
 * gc6
 */
#define GCPR_ALARM                1      /* Enable or disable alarm handling */
#define GCPR_WAITIDLE             2      /* Change wait for idle time-out */
#define GCPR_LOADTONES            4      /* Enable or disable loading tone */
#define GCPR_RINGBACKID           5      /* GTD id for ring back tone */
#define GCPR_OUTGUARD             6      /* maximum time for call progress */
#define GCPR_MINDIGITS            7      /* min # of digits */
#define GCPR_CALLINFOTYPE         8      /* type of call (charge, no charge, etc.) */
#define GCPR_RECEIVE_INFO_BUF     9      /* size of cyclic buffers to store sig. msgs */
#define GCPR_MEDIADETECT          10     /* Enable or disable media detection */
#define GCPR_PROTVER              11     /* Retrieve protocol version            */
#define GCPR_CALLINGPARTY         0x4001 /* set or get terminal phone number */
#define GCPR_CATEGORY             0x104  /* request caller category              */
#define GCPR_CONNECT_TYPE         0x106  /* request perfectcall connect type */

#define GCPV_ENABLE               1      /* enable feature */
#define GCPV_DISABLE              0      /* disable feature */

/*
 * Call States
 */
#define GCST_NULL                   0x00
#define GCST_ACCEPTED               0x01
#define GCST_ALERTING               0x02
#define GCST_CONNECTED              0x04
#define GCST_OFFERED                0x08
#define GCST_DIALING                0x10
#define GCST_IDLE                   0x20
#define GCST_DISCONNECTED           0x40
#define GCST_DIALTONE               0x80
#define GCST_ONHOLDPENDINGTRANSFER  0x100
#define GCST_ONHOLD                 0x200
#define GCST_DETECTED               0x400

#define GCST_PROCEEDING             0x800
#define GCST_SENDMOREINFO           0x1000
#define GCST_GETMOREINFO            0x2000
#define GCST_CALLROUTING            0x4000



/*
 * Call State Masks
 */
#define GCMSK_ALERTING_STATE        GCST_ALERTING
#define GCMSK_DETECTED_STATE        GCST_DETECTED
#define GCMSK_CALLROUTING_STATE     GCST_CALLROUTING
#define GCMSK_GETMOREINFO_STATE     GCST_GETMOREINFO
#define GCMSK_PROCEEDING_STATE      GCST_PROCEEDING
#define GCMSK_SENDMOREINFO_STATE    GCST_SENDMOREINFO



/*
 * Channel states which may be set using gc_SetChanState()
 */
#define GCLS_INSERVICE              0    /* Set channel to in service */
#define GCLS_MAINTENANCE            1    /* Set channel to maintenance state */
#define GCLS_OUT_OF_SERVICE         2    /* Set channel to out of service */


/*
 * Defines for gc_CallACK() when getting more digits.
 */

#define GCIF_DDI                    1    /* get additional DDI digits */


/*gc7*/
#define GCDG_COMPLETE               0x0000  /* No more digits after that */
#define GCDG_PARTIAL                0x0100  /* Maybe more digits after that */
#define GCDG_NDIGIT                 0x00FF  /* Get infinite string of digits */
#define GCDG_MAXDIGIT               0x00E   /* maximum # of DDI digits which can be collected */

/*
-- Defines for gc_GetLinedevState
*/
#define GCGLS_BCHANNEL              0x0     /* B channel (ISDN) */
#define GCGLS_DCHANNEL              0x1     /* D channel (ISDN) */

#define GC_MAXNFACNETWORKID 251             /* Maximum non-facility network ID */

typedef struct {
/*
-- Note: structure is ordered with longest fields 1st
-- to improve access time with some compilers
*/
    long             magicno;            /* for internal validity check */

    /* application calls gc_GetMetaEvent() to fill in these fields */
    unsigned long    flags;              /* flags field */
                                         /* - possibly event data structure type */
                                         /* i.e. evtdata_struct_type */
    void             *evtdatap;          /* pointer to the event data block */
                                         /* other libraries to be determined */
                                         /* sr_getevtdatap() */
    long             evtlen;             /* event length */
                                         /* sr_getevtlen */
    long             evtdev;             /* sr_getevtdev */
    long             evttype;            /* Event type */

    /* linedev & crn are only valid for GlobalCall events */
    LINEDEV          linedev;            /* linedevice */
    CRN              crn;                /* crn - if 0 then no crn for this event */
    void             *extevtdatap;       /* pointer to abstract data buffer */
    void             *usrattr;           /* user attribute */
    int              cclibid;            /* ID of CCLib that event is associated with */
                                         /* + = CCLib ID number */
                                         /* -1 = unknown */
    int              rfu1;               /* for future use only */

} METAEVENT, *METAEVENTP;

/* define(s) for flags field within METAEVENT structure */
#define GCME_GC_EVENT               0x1  /* Event is a GlobalCall event */

/*gc8*/
#define MAXPHONENUM                 32   /* Maximum length of a phone number */
#define MAX_ADDRESS_LEN             GC_ADDRSIZE   /* Maximum length of an address */


/* define(s) for type field within GC_CALLACK_BLK structure */
#define GCACK_SERVICE_DNIS          0x1
#define GCACK_SERVICE_ISDN          0x2
#define GCACK_SERVICE_PROC          0x3
#define GCACK_SERVICE_INFO          0x4



typedef struct {
    unsigned long type;  /* type of a structure inside following union */
    long rfu;                /* will be used for common functionality */

    union {
        struct {
            int accept;
        } dnis;
        struct {
            int acceptance;
            /* 0x0000 proceding with the same B chan */
            /* 0x0001 proceding with the new B chan */
            /* 0x0002 setup ACK */
            LINEDEV linedev;
        } isdn;
        struct {          
            int info_len;
            int info_type; 
        } info;
        struct {
            long gc_private[4];
        } gc_private;
    } service;               /* what kind of service is requested */
                             /* related to type field */
} GC_CALLACK_BLK,    *GC_CALLACK_BLK_PTR;


typedef union {
  short          shortvalue;
  unsigned long  ulongvalue;
  long           longvalue;
  int            intvalue;
  unsigned int   uintvalue;
  char           charvalue;
  char           *paddress;
  void           *pstruct;
} GC_PARM;

/*
 * For GC_PARM_DATA and GC_PARM_BLK, the value_buf and the parm_data_buf
 * parameters, respectively, are used as placeholders to access the data in the
 * contagious memory block, which is what GC_PARM_BLK was designed for.
 * Applications should be aware that the one byte allocated should be used for
 * the data.  Applications, however, are strongly recommended to use the gc_util
 * functions for manipulation of the GC_PARM_BLK to avoid having to deal with
 * these issues.
 */

/* 
    GC_PARM_DATA data structure used in GC_PARM_BLK
*/
typedef struct 
{
    unsigned short      set_ID;            /* Set ID (two bytes long)*/
    unsigned short      parm_ID;           /* Parameter ID (two bytes long) */
    unsigned char       value_size;        /* Size of value_buf in bytes */
    unsigned char       value_buf[1];      /* Address to the parm value buffer */
}GC_PARM_DATA, *GC_PARM_DATAP;

/* 
    Generic GC_PARM_BLK data structure
*/
typedef struct 
{
    unsigned short      parm_data_size;    /* Size of parm_data_buf in bytes */
    unsigned char       parm_data_buf[1];  /* Address to the parm data buffer,
                                            * a chain of GC_PARM_DATA */ 
}GC_PARM_BLK, *GC_PARM_BLKP;
 
/*
 List of target type for gc_GetConfigData and gc_SetConfigData
*/

#define GCTGT_GCLIB_SYSTEM      0     /* GCLib target object followed by */
                                      /* target ID = 0 */
#define GCTGT_CCLIB_SYSTEM      1     /* CCLib target object followed by */
                                      /* target ID = CCLib ID */
#define GCTGT_PROTOCOL_SYSTEM   2     /* Protocol target object followed by */
                                      /* target ID = Protocol ID */
#define GCTGT_FIRMWARE_SYSTEM   3     /* Firware target object followed by */
                                      /* target ID = Firmware ID */
#define GCTGT_GCLIB_BOARD       4     /* Physical Board target object in GlobalCall */
                                      /* Library followed by target ID = Board ID */
#define GCTGT_CCLIB_BOARD       5     /* Physical Board target object in Call Control */
                                      /* Library followed by target ID = Board ID */
#define GCTGT_FIRMWARE_BOARD    7     /* Physical Board target object in Firmware */
                                      /* followed by ID = Board ID */
#define GCTGT_GCLIB_NETIF       8     /* Network Interface board target object in */
                                      /* GlobalCall Library followed by */
                                      /* target ID = Line Device ID */
#define GCTGT_CCLIB_NETIF       9     /* Network Interface board target object in */
                                      /* Call Control Library followed by */
                                      /* target ID = Line Device ID */
#define GCTGT_PROTOCOL_NETIF    10    /* Network Interface board target object in */
                                      /* Protocol module followed by target ID = Line Device ID */    
#define GCTGT_FIRMWARE_NETIF    11    /* Network Interface board target object in */
                                      /* Firmware module followed by target ID = Line Device ID */
#define GCTGT_GCLIB_CHAN        12    /* Time Slot target object in GlobalCall Library */
                                      /* followed by target ID = Line Device ID */
#define GCTGT_CCLIB_CHAN        13    /* Time Slot target object in Call Control Library */
                                      /* followed by target ID = Line Device ID */
#define GCTGT_PROTOCOL_CHAN     14    /* Time Slot target object in Protocol module */
                                      /* followed by target ID = Line Device ID */
#define GCTGT_FIRMWARE_CHAN     15    /* Time Slot target object in Firmware followed */
                                      /* by target ID = Line Device ID */
#define GCTGT_GCLIB_CRN         16    /* Call target object in GlobalCall Library */
                                      /* followed by target ID = CRN */
#define GCTGT_CCLIB_CRN         17    /* Call target object in Call Control Library */
                                      /* followed by target ID = CRN */
#define GCTGT_UNASSIGNED        100   /* Any target object not assigned in GC yet */
                                      /* followed by target ID = any long value */


/* 
List of possible value for update condition argument in gc_SetConfigData()
*/
#define GCUPDATE_IMMEDIATE      0
#define GCUPDATE_ATNULL         1

/*
  The following data structure is used in evtdatap field of GC METAEVENT for RTCM  
*/
typedef struct{
    long            request_ID;          /* The RTCM request ID */
    int             gc_result;           /* GC result value for this event */
    int             cclib_result;        /* CCLib result value for this event */
    int             cclib_ID;            /* CCLib ID for the result */
    char *          additional_msg;      /* Additional message for this event */
    GC_PARM_BLKP    retrieved_parmblkp;  /* Retrieved GC_PARM_BLK -- */
                                         /* used for gc_GetConfigData() in */
                                         /* asynchronous mode */ 
} GC_RTCM_EVTDATA, *GC_RTCM_EVTDATAP;

/* structure for gc_GetDeviceNameInfo */
typedef struct {
    int             cclibid;
    long            rfu;
} GC_DEVICENAME_INFO, *GC_DEVICENAME_INFOP;


/* 
 *    This structure is used for providing address information about the 
 *    origination and destination parties in the makecall block.
 */
typedef struct {
    char            address[MAX_ADDRESS_LEN];     /* address data element */ 
    unsigned char   address_type;                 /* address type parameter */
    unsigned char   address_plan;                 /* address plan parameter */
    char            sub_address[MAX_ADDRESS_LEN]; /* address data element */
    unsigned char   sub_address_type;             /* sub-address data element */
    unsigned char   sub_address_plan;             /* sub-address plan data element */
} GCLIB_ADDRESS_BLK;

/*
 *   This structure provides information about the medium e.g. timeslot to be
 *   used for the call. See the Technology User's Guide for support information.  
 */
typedef struct {
    unsigned char   medium_id;                  /* select timeslot/port */
    unsigned char   medium_sel;                 /* Preferred or exclusive */
} GCLIB_CHAN_BLK;

/*
 *   This structure provides information about the call e.g. category of the
 *   call. See the Technology User's Guide for support information.  
 */
typedef struct {
    unsigned char   category;                   /* Category of the call */
    unsigned char   address_info;               /* Indicates if address is */
                                                /* complete or overlap mode */
} GCLIB_CALL_BLK;

/*
 *   This is the Generic GC makecall block to be used for all technologies.
 */
typedef struct {
    GCLIB_ADDRESS_BLK     destination;          /* Called party information */
    GCLIB_ADDRESS_BLK     origination;          /* Calling party information */
    GCLIB_CHAN_BLK        chan_info;            /* Channel information */
    GCLIB_CALL_BLK        call_info;            /* Call information */
    GC_PARM_BLKP          ext_datap;            /* Extended parameters */
} GCLIB_MAKECALL_BLK, *GCLIB_MAKECALL_BLKP;


/*
 *    This structure is used for passing the GC generic makecall block or 
 *    a technology specific makecall block.
 */
typedef struct {
    GCLIB_MAKECALL_BLK    *gclib;       /* Generic makecall block */
    void                  *cclib;       /* cclib specific portion */
} GC_MAKECALL_BLK,  *GC_MAKECALL_BLKP;



typedef union {
  struct {
     long       cents;
  } ATT, *ATT_PTR;
} GC_RATE_U,  *GC_RATE_U_PTR;


typedef struct {
    long                  flags;
    long                  rfu;
} GCLIB_WAITCALL_BLK;

typedef struct {
    GCLIB_WAITCALL_BLK    *gclib;       /* GlobalCall specific portion */
    void                  *cclib;       /* cclib specific portion */
} GC_WAITCALL_BLK,  *GC_WAITCALL_BLKP;



/*
-- structures for gc_SndMsg
-- This structure is an rfu
*/
typedef struct {
    long                  flags;
    long                  rfu;
} GCLIB_IE_BLK, *GCLIB_IE_BLKP;

typedef struct {
    GCLIB_IE_BLK          *gclib;       /* GlobalCall specific portion */
    void                  *cclib;       /* cclib specific portion */
} GC_IE_BLK, *GC_IE_BLKP;



/*
 * Type definition for SCBus Timeslots information structure.
 * NOTE: All GlobalCall libraries/applications should include this header file in order to 
 * access this structure, i.e. this structure must not be accessed from another header file 
 * (e.g. dtilib.h/msilib.h/dxxxlib.h)
 */
#ifndef __SC_TSINFO__
#define __SC_TSINFO__
typedef struct sc_tsinfo {
    unsigned long         sc_numts;
    long                  *sc_tsarrayp;
} SC_TSINFO;
#endif

/*
 * Type definition for Channel/Timeslot device info structure and its values
 * NOTE: All GlobalCall libraries/applications should include this header file in order to 
 * access this structure, i.e. this structure must not be accessed from another header 
 * file (e.g. dtilib.h/dxxxlib.h)
 */
#ifndef __CT_DEVINFO__
#define __CT_DEVINFO__
typedef struct ct_devinfo {
    unsigned long         ct_prodid;
    unsigned char         ct_devfamily;
    unsigned char         ct_devmode;
    unsigned char         ct_nettype;
    unsigned char         ct_busmode;
    unsigned char         ct_busencoding;
    unsigned char         ct_rfu[7];
} CT_DEVINFO;

/*
 * Value defines
 */
/* device family */
#define CT_DFD41D         0x01
#define CT_DFD41E         0x02
#define CT_DFSPAN         0x03
#define CT_DFMSI          0x04

/* device mode */
#define CT_DMNETWORK      0x00
#define CT_DMRESOURCE     0x01

/* network type */
#define CT_NTNONE         0x00
#define CT_NTT1           0x01
#define CT_NTE1           0x02
#define CT_NTANALOG       0x03
#define CT_NTMSI          0x04
#define CT_NTIPT          0x05

/* bus mode */
#define CT_BMPEB          0x00
#define CT_BMSCBUS        0x01
#define CT_BMH100         0x06

/* bus encoding */
#define CT_BEULAW         0x00
#define CT_BEALAW         0x01

#endif


/*
-- structures for gc_SndFrame
-- This structure is an rfu
*/
typedef struct {
    long             flags;
    long             rfu;
} GCLIB_L2_BLK, *GCLIB_L2_BLKP;

typedef struct {
    GCLIB_L2_BLK *gclib;                /* GlobalCall specific portion */
    void             *cclib;            /* cclib specific portion */
} GC_L2_BLK, *GC_L2_BLKP;



/*
-- Alarm support data and structures
*/
/*************************************/
/* maximum # of alarm source objects */
/*************************************/
#define MAX_ASOS            25          /* maximum # of alarm source objects */
/*
-- alarm list structure
-- used to pass information between layers with a list of alarms
*/

#define MAX_NUMBER_OF_ALARMS 32         /* Max # of alarms can have */
                                        /* Caution: implementation assumes */
                                        /* 32 = unsigned long */
                                        /* if ever change this, change the */
                                        /* implementation also!!!! */
                
/**********************************************/
/* description of one field within ALARM_LIST */
/**********************************************/
typedef struct
{
    long            alarm_number;       /* the alarm number */

    /* Note: type of data is assumed to be known by the context */
    GC_PARM         alarm_data;         /* data for the alarm */
                                        /* field is typically ignored */
                                        /* if transmitting or stopping transmission */
                                        /* of an alarm */
    GC_PARM         rfu;                /* reserved for future use, must be 0 */
} ALARM_FIELD;

/********************************/
/* description of an alarm list */
/********************************/
typedef struct
{
    int             n_alarms;           /* # of alarms in this list */
    ALARM_FIELD     alarm_fields[MAX_NUMBER_OF_ALARMS];
} ALARM_LIST;


#define MAX_NUMBER_OF_ALARM_PARMS   32  /* maximum number of alarm parms   */
                                        /* that can be set/get in one call */
                                                                                            
/****************************************************************/
/* ALARM_PARM_FIELD represents one entry in the ALARM_PARM_LIST */
/****************************************************************/

typedef struct
{
    /****************************************************/
    /* a union since different ASOs may have different  */
    /* formats for the size                             */
    /****************************************************/
    GC_PARM         alarm_parm_number;          

    /* Note: type of data is assumed to be known by the context */
    GC_PARM         alarm_parm_data;

    GC_PARM         rfu;                /* resserved for future use, must be 0 */
} ALARM_PARM_FIELD;

/**********************************************************/
/* ALARM_PARM_LIST represents a list of alarms parameters */
/**********************************************************/
typedef struct
{
    int                 n_parms;           /* # of alarm parameters */
                                           /* in this list */
    ALARM_PARM_FIELD    alarm_parm_fields[MAX_NUMBER_OF_ALARM_PARMS];
} ALARM_PARM_LIST;



/*
-- alarm event structure
-- used by GC to pass information to the application
-- about an individual alarm
*/
typedef struct
{
    unsigned long   alarm_source_ID;   /* source of the alarm */
    long            alarm_number;      /* e.g if an E1 alarm, DTE1_LOS */
} GC_ALARM_EVENT;


     /*****************************/
     /* structures for alarm list */
     /*****************************/

typedef struct
{
    GC_PARM         aso_data;          /* type is assumed to be known by the context */
                                       /* typically will be char * or unsigned long */
    int             rfu;               /* reserved for future use, must be 0 */
} ALARM_SOURCE_OBJECT_FIELD;

#define ASO_LIST_BY_NAME      0
#define ASO_LIST_BY_ID        1

typedef struct
{
    int                         n_asos;   /* # of asos in this data structure */
    ALARM_SOURCE_OBJECT_FIELD   aso_fields[MAX_ASOS];
} ALARM_SOURCE_OBJECT_LIST;
     
    /***********************************/
    /* defines used by alarm functions */
    /***********************************/
/*
-- set & get configuration values 
*/
#define ALARM_CONFIG_BLOCKING           0   /* set alarm configuration to be */
                                                                /* blocking or non-blocking */
#define ALARM_CONFIG_NOTIFY             1   /* set alarm configuration for */
                                                                /* notify/no notify */
#define ALARM_CONFIG_NAME                   2   /* name of alarms in English */
#define ALARM_CONFIG_STATUS             3   /* current status of the alarm - off or on */
#define ALARM_CONFIG_STATUS_BLOCKING    4   /* current status of the blocking alarms - */
                                                                /* off or on */

/*
-- What is configured when call gc_SetAlarmConfiguration()/gc_SetAlarmNotifyAll()
-- Defaults are as follows:
--      If configuring alarm source object, only configure the alarm source object
--      If configuring board, only configure the board
--
-- These flags allow the application the following options:
--      If configuring alarm source object, optionally do one of the following:
--          1. configure all all boards associated with this alarm source object
--          2. configure all all boards and timeslots associated with this alarm source object
--      It is not legal to configure all timeslots associated with this alarm source object
--      without also configuring all boards
--
--      If configuring board, optionally configure all timeslots associated with
--      this board
*/
/* the next two defines are valid when configuring an alarm source object */
#define         ALARM_CONFIGURE_BOARDS                      0x100
#define         ALARM_CONFIGURE_BOARDS_AND_TIMESLOTS    0x200

/* the next define is only valid when configuring a board */
#define         ALARM_CONFIGURE_TIMESLOTS                   0x400

#define         ALARM_CONFIGURE_FLAGS (ALARM_CONFIGURE_BOARDS               \
                        | ALARM_CONFIGURE_BOARDS_AND_TIMESLOTS                      \
                        | ALARM_CONFIGURE_TIMESLOTS)


/*
-- ALARM_CONFIG_BLOCKING values
*/
#define ALARM_NONBLOCKING      0   /* this alarm is non-blocking */
#define ALARM_BLOCKING         1   /* this alarm is blocking */

/*
-- ALARM_CONFIG_NOTIFY values
*/
#define ALARM_NONOTIFY         0   /* Do notify on this alarm */
#define ALARM_NOTIFY           1   /* notify on this alarm */
/*
-- ALARM_CONFIG_STATUS, ALARM_CONFIG_STATUS_BLOCKING values
*/
#define ALARM_ON               1   /* alarm is on */
#define ALARM_OFF              0   /* alarm is off */

/*
-- Flow control. Used to prevent flooding
*/
#define ALARM_FLOW_ALWAYS                   0   /* send all alarm events to the app */
#define ALARM_FLOW_FIRST_AND_LAST_BLOCKING  1   /* send the first & last */
                                                /* blocking alarm */
                                                /* events to the app */
#define ALARM_FLOW_FIRST_AND_LAST           2   /* send first & last alarm events */
                                                /* to the app */    
#define ALARM_FLOW_ALWAYS_BLOCKING          3   /* send all blocking alarms to the app */
                                                /* but do not send non-blocking */
/*
-- alarm source ID
*/
#define ALARM_SOURCE_ID_NA              0           /* Not applicable - needed internally */
#define ALARM_SOURCE_ID_SPRINGWARE_E1   1           /* Springware E1 */
#define ALARM_SOURCE_ID_SPRINGWARE_T1   2           /* Springware T1 */
#define ALARM_SOURCE_ID_DM3_E1          3           /* DM3 E1 */
#define ALARM_SOURCE_ID_DM3_T1          4           /* DM3 T1 */
#define ALARM_SOURCE_ID_LOGICAL_ALARM   5           /* logical alarms - internal use only */
#define ALARM_SOURCE_ID_NETWORK_ID      0xFFFFFFFF  /* network alarm source object ID */
                                                    /* may be used instead of actual */
                                                    /* network ID */
/* where the dynamic assigned start */
#define ALARM_SOURCE_ID_DYNAMIC_START   (ALARM_SOURCE_ID_LOGICAL_ALARM + 1)

/* defines parameter set IDs for alarm source objects supported by GC */
#define ParmSetID_dt_alarm     1        /* dt_setalrm() */
#define ParmSetID_parm         2        /* dt_get/setparm */

/* duration field values for gc_SetUserInfo( ) */
#define GC_SINGLECALL          0
#define GC_ALLCALLS            1

/* EXTENSIONEVTBLK passed in GCEV_EXTENSION events for feature transparency and extension info: */ 
typedef struct {
    unsigned char    ext_id;
    GC_PARM_BLK      parmblk;
} EXTENSIONEVTBLK;

typedef struct {
    int     gcValue;
    char    *gcMsg;
    int     ccLibId;
    char    *ccLibName;
    long    ccValue;
    char    *ccMsg;
    char    *additionalInfo;
} GC_INFO;


 
/**************************************************************************/
/*                                  GC Values                             */
/**************************************************************************/


/* 
 * List of possible values for address_type parameter in the 
 * GCLIB_ADDRESS_BLK structure.
 */
#define GCADDRTYPE_TRANSPARENT      1    /* Transparent Number*/
#define GCADDRTYPE_NAT              2    /* National Number */
#define GCADDRTYPE_INTL             3    /* International Number */
#define GCADDRTYPE_LOC              4    /* Local Number */
#define GCADDRTYPE_IP               5    /* Internet Protocol Address) */
#define GCADDRTYPE_URL              6    /* URL Address */
#define GCADDRTYPE_DOMAIN           7    /* Domain address) */
#define GCADDRTYPE_EMAIL            8    /* Email Address */

/* 
 * List of possible values for address_plan field in the 
 * GCLIB_ADDRESS_BLK structure.
 */
#define GCADDRPLAN_UNKNOWN          1    /* Address plan - Unknown */
#define GCADDRPLAN_ISDN             2    /* Address plan - ISDN plan */
#define GCADDRPLAN_TELEPHONY        3    /* Address plan - Telephony plan */
#define GCADDRPLAN_PRIVATE          4    /* Address plan - Private plan */

/* 
 * List of possible values for sub_address_type field in the 
 * GCLIB_ADDRESS_BLK structure.
 */
#define GCSUBADDR_UNKNOWN           1    /* Address type - Unknown type */
#define GCSUBADDR_OSI               2    /* Address type - OSI type */
#define GCSUBADDR_USER              3    /* Address type - User type */
#define GCSUBADDR_IA5               4    /* Address type - IA5 characters */

/* 
 * List of possible values for medium_sel field in the 
 * GCLIB_CHAN_BLK structure.
 */
#define GCMEDSEL_MEDIUM_PREF        1    /* Timeslot selected is preferred */
#define GCMEDSEL_MEDIUM_EXCL        2    /* Timeslot selected is exclusive */


/* 
 * List of possible values for category field in the 
 * GCLIB_CALL_BLK structure.
 */
#define GCCAT_SUB_NOPRIOR           1    /* Subscriber without priority */
#define GCCAT_SUB_PRIOR             2    /* Subscriber with priority */
#define GCCAT_MAINT_EQUIP           3    /* Maintenance equipment */
#define GCCAT_COIN_BOX              4    /* Coinbox or subscriber with chargemetering */
#define GCCAT_OPERATOR              5    /* Operator */ 
#define GCCAT_DATA                  6    /* Data transmission */
#define GCCAT_CPTP                  7    /* C.P.T.P. */ 
#define GCCAT_SPECIAL               8    /* Special Line */
#define GCCAT_MOBILE                9    /* Mobile users */
#define GCCAT_VPN                   10   /* Virtual private network line */
 
/* 
 * List of possible values for address_info field in the 
 * GCLIB_CALL_BLK structure.
 */
#define GCADDRINFO_ENBLOC           1    /* Address is complete */
#define GCADDRINFO_OVERLAP          2    /* Address is not complete */

/* 
 * If an optional field in the makecall block is not set, then it must
 * be intialized to GCMKCALLBLK_DEFAULT.
 */
#define GCMKCALLBLK_DEFAULT         0xFF /* To initialize fields that are not used */


/* 
 * List of possible values of board open status
 */
#define GCBOARD_OPEN_IMPLICIT       0
#define GCBOARD_OPEN_EXPLICIT       1

/* 
 * List of possible query IDs
 */
#define GCQUERY_LD_NAME_TO_ID           1   /* query line device ID from its name */
#define GCQUERY_BOARD_NAME_TO_STATUS    2   /* query board status from its name */
#define GCQUERY_PROTOCOL_NAME_TO_ID     3   /* query protocol name from its name */
#define GCQUERY_PARM_NAME_TO_ID         4   /* query parm ID from its name */

/* 
 * Data structure for GC_PARM_ID
 */
typedef struct
{
    unsigned short  set_ID;          /* Set ID */
    unsigned short  parm_ID;         /* Parm ID */
    unsigned char   value_type;      /* Value type, its defines listed in gccfgparm.h */
    unsigned char   update_perm;     /* Update permission, its defines listed in gccfgparm.h */
} GC_PARM_ID, *GC_PARM_IDP;

/* Pre-determined sizes of parm_data_buf, used when inserting parms.  When
 * using the insert_parm functions, initially the smallest size will be
 * created, and increased to next sizes as needed.  As 
 * one can see, the max size of any block is therefore 8192 bytes */
#define PARM_BLK_SMALL       0x100   /* 256 bytes */
#define PARM_BLK_MEDIUM      0x200   /* 512 bytes */
#define PARM_BLK_LARGE       0x400   /* 1024 bytes */
#define PARM_BLK_HUGE        0x2000  /* 8192 bytes */

/* Error codes for insert_parm */
#define SUCCESS              0
#define INVPARM              -1
#define MAX_SIZE_REACHED     -2
#define MEMORY_ERR           -3

/* Defines to indicate type of resource device */
#define GC_NETWORKDEVICE       1     
#define GC_VOICEDEVICE         2
#define GC_MEDIADEVICE         3
#define GC_NET_GCLINEDEVICE    4


/*
 * GlobalCall Function Prototypes
 * Note: New functions will need to be addeded twice: once for
 * _MSC_VER ... & once for not
 */
#if ( defined (_MSC_VER) || defined (__STDC__) || defined (__cplusplus) || defined (__BORLANDC__) || defined (CLIB) )

#if defined (__cplusplus)
extern "C" {
#endif  /* __cplusplus */
int gc_AcceptCall(CRN crn, int rings, unsigned long mode);
int gc_AlarmName(METAEVENT *metaeventp ,char **alarm_name);
int gc_AlarmNumber(METAEVENT *metaeventp,long *alarm_number);
int gc_AlarmNumberToName(unsigned long aso_id, long alarm_number, char **name);
int gc_AlarmSourceObjectID(METAEVENT *metaeventp, unsigned long *aso_id);
int gc_AlarmSourceObjectIDToName(unsigned long aso_id, char **aso_name);
int gc_AlarmSourceObjectName(METAEVENT *metaeventp, char **aso_name);
int gc_AlarmSourceObjectNameToID(char *aso_name, unsigned long *aso_id);
int gc_AnswerCall(CRN crn, int rings, unsigned long mode);
int gc_Attach(LINEDEV linedev, int voiceh, unsigned long mode);
int gc_AttachResource(LINEDEV  linedev, int resourceh, GC_PARM_BLKP resourceattrp,
                      GC_PARM_BLKP *retblkpp, int resourcetype, unsigned long mode);
int gc_BlindTransfer(CRN activecall, char *numberstr, GC_MAKECALL_BLK *makecallp,
                     int timeout, unsigned long mode);                               
int gc_CallAck(CRN crn, GC_CALLACK_BLK *callack_blkp, unsigned long mode);
int gc_CallProgress(CRN crn, int indicator);
int gc_CCLibIDToName(int cclibid, char **lib_name);
int gc_CCLibNameToID(char *lib_name, int *cclibidp);  /* The lib_name must be NULL terminated */
                                                      /* and in uppercase e.g "GC_ICAPI_LIB" */
int gc_CCLibStatus(char *cclib_name, int *cclib_infop); /* The cclib_name must be NULL terminated */
                                                        /* and in uppercase e.g "GC_ICAPI_LIB" */
int gc_CCLibStatusAll(GC_CCLIB_STATUS *cclib_status);
int gc_CCLibStatusEx(char *cclib_name, void *cclib_infop); /* The cclib_name must be NULL terminated */
                                                             /* and in uppercase e.g "GC_ICAPI_LIB" */
int gc_Close(LINEDEV linedev);
int gc_CompleteTransfer(CRN callonhold, CRN consultationcall, unsigned long mode);  
int gc_CRN2LineDev(CRN crn, LINEDEV *linedevp);
int gc_Detach(LINEDEV linedev, int voiceh, unsigned long mode);
int gc_DropCall(CRN crn, int cause, unsigned long mode);
int gc_ErrorInfo(GC_INFO *a_Info);
int gc_ErrorValue(int *gc_errorp, int *cclibidp, long *cclib_errorp);
int gc_GetAlarmConfiguration(LINEDEV linedev, unsigned long aso_id,
                             ALARM_LIST *alarm_list, int alarm_config_type);
int gc_GetAlarmFlow(unsigned long aso_id, int *flow); 
int gc_GetAlarmParm(LINEDEV linedev, unsigned long aso_id, int ParmSetID,
                    ALARM_PARM_LIST * alarm_parm_list, unsigned long mode);
int gc_GetAlarmSourceObjectList(LINEDEV linedev, int ByNameOrById,
                                ALARM_SOURCE_OBJECT_LIST *aso_list);
int gc_GetAlarmSourceObjectNetworkID(LINEDEV linedev, unsigned long *aso_networkID);
int gc_GetANI(CRN crn, char * anibuf);
int gc_GetBilling(CRN crn, char *billing_buf);
int gc_GetCallInfo(CRN crn,int info_id, char *valuep);
int gc_GetCallProgressParm(LINEDEV linedev, DX_CAP *parmp);
int gc_GetCallState(CRN crn, int *state_ptr);
int gc_GetConfigData(int target_type, long target_id, GC_PARM_BLKP target_datap, int time_out, 
                     long * request_idp, unsigned long mode);
int gc_GetCRN(CRN *crn_ptr, METAEVENT *metaeventp);
int gc_GetCTInfo(LINEDEV linedev, CT_DEVINFO *ct_devinfop);                         
int gc_GetDeviceNameInfo(char *DeviceName, GC_DEVICENAME_INFOP devicename_infop);
int gc_GetDlgerrValue( LINEDEV linedev, int *dlgerrp);
int gc_GetDNIS(CRN crn, char *dnis);
int gc_GetFrame(LINEDEV linedev, GC_L2_BLK *l2_blkp);
int gc_GetInfoElem(LINEDEV linedev, GC_IE_BLK *iep);
int gc_GetLineDev(LINEDEV *linedevp, METAEVENT *metaeventp);
int gc_GetLinedevState(LINEDEV linedev, int type, int *state_buf);
int gc_GetMetaEvent(METAEVENT *metaeventp);
#ifdef _WIN32
int gc_GetMetaEventEx(METAEVENT *metaeventp, unsigned long evt_handle );
#endif  /* _WIN32 */
int gc_GetNetworkH(LINEDEV linedev, int *networkhp);
int gc_GetParm(LINEDEV linedev, int parm_id, GC_PARM *valuep);
int gc_GetResourceH(LINEDEV linedev, int * resourcehp, int resourcetype);
int gc_GetSigInfo(LINEDEV linedev, char *valuep, int info_id, METAEVENT *metaeventp);
int gc_GetUsrAttr(LINEDEV linedev, void  **usr_attrp);
int gc_GetVer(LINEDEV linedev, unsigned int *releasenump,
              unsigned int *intnump, long component);
int gc_GetVoiceH(LINEDEV linedev, int * voicehp);
int gc_GetXmitSlot(LINEDEV linedev, SC_TSINFO *sctsinfop);                          
int gc_HoldCall(CRN crn, unsigned long mode);
int gc_HoldACK(CRN crn);
int gc_HoldRej(CRN crn, int cause);
int gc_LibInit(void);
int gc_LinedevToCCLIDID(LINEDEV linedev, int *cclibid);
int gc_Listen(LINEDEV linedev, SC_TSINFO *sctsinfop, unsigned long mode);           
int gc_LoadDxParm(LINEDEV linedev, char *pathp, char *errmsgp, int err_length);
int gc_MakeCall(LINEDEV linedev, CRN *crnp, char *numberstr,
                GC_MAKECALL_BLK *makecallp, int timeout, unsigned long mode);
int gc_GetNetCRV(CRN crn, int *netcrvp);
int gc_Open(LINEDEV *linedevp, char *devicename, int rfu);
int gc_OpenEx(LINEDEV *linedevp, char *devicename, int mode, void *usrattr);
int gc_QueryConfigData(int target_type, long target_id, GC_PARM * source_datap, 
                       long query_id, GC_PARM * response_datap);
int gc_ReleaseCall(CRN crn);
int gc_ReleaseCallEx(CRN crn, unsigned long mode);
int gc_ReqANI(CRN crn, char *anibuf, int req_type, unsigned long mode);
int gc_ReqMoreInfo(CRN crn, int info_id, int info_len, int timeout, unsigned long mode); 
int gc_ResetLineDev(LINEDEV linedev, unsigned long mode);
int gc_ResultInfo(METAEVENT *a_Metaevent, GC_INFO *a_Info);
int gc_ResultMsg(int cclibid, long result_code, char **msg);
int gc_ResultValue(METAEVENT *metaeventp, int *gc_result, int *cclibidp,
                   long *cclib_resultp);
int gc_RetrieveCall(CRN crn, unsigned long mode);
int gc_RetrieveAck(CRN crn);
int gc_RetrieveRej(CRN crn, int cause);
int gc_SendMoreInfo(CRN crn, int info_id, GC_PARM *info_ptr, unsigned long mode);
int gc_SetAlarmConfiguration(LINEDEV linedev, unsigned long aso_id,
                             ALARM_LIST *alarm_list, int alarm_config_type);
int gc_SetAlarmFlow(unsigned long aso_id, int flow);
int gc_SetAlarmNotifyAll(LINEDEV linedev, unsigned long aso_id, int value);
int gc_SetAlarmParm(LINEDEV linedev, unsigned long aso_id, int ParmSetID,
                    ALARM_PARM_LIST *alarm_parm_list, unsigned long mode);
int gc_SetBilling(CRN crn,int rate_type, GC_RATE_U *ratep, unsigned long mode);
int gc_SetCallingNum(LINEDEV linedev, char *calling_num);
int gc_SetCallProgressParm(LINEDEV linedev, DX_CAP *parmp);
int gc_SetChanState(LINEDEV linedev, int chanstate, unsigned long mode);
int gc_SetConfigData(int target_type, long target_id, GC_PARM_BLKP target_datap,
                     int time_out, int update_cond, long * request_idp, unsigned long mode);
int gc_SetDlgerrValue(LINEDEV linedev, int dlgerr);
int gc_SetEvtMsk(LINEDEV linedev, unsigned long mask, int action);
int gc_SetInfoElem(LINEDEV linedev, GC_IE_BLK *iep);
int gc_SetParm(LINEDEV linedev, int parm_id, GC_PARM value);
int gc_SetupTransfer(CRN calltohold, CRN *consultationcall, unsigned long mode); 
int gc_SetUsrAttr(LINEDEV linedev, void *usr_attr);
int gc_SndFrame(LINEDEV linedev, GC_L2_BLK* l2_blkp);
int gc_SndMsg(LINEDEV linedev, CRN crn, int msg_type, GC_IE_BLK *sndmsgptr);
int gc_Start(GC_START_STRUCT *startp);
int gc_StartTrace(LINEDEV linedev, char *tracefilename);
int gc_Stop(void);
int gc_StopTrace(LINEDEV linedev);
int gc_StopTransmitAlarms(LINEDEV linedev, unsigned long aso_id,
                          ALARM_LIST *alarm_list, unsigned long mode);
int gc_SwapHold(CRN activecall, CRN callonhold, unsigned long mode);                
int gc_TransmitAlarms(LINEDEV linedev, unsigned long aso_id,
                      ALARM_LIST *alarm_list, unsigned long mode);
int gc_UnListen(LINEDEV linedev, unsigned long mode);                               
int gc_WaitCall(LINEDEV linedev, CRN *crnp, GC_WAITCALL_BLK *waitcallp,
                int timeout, unsigned long mode);
int gc_Extension(int target_type, long target_id, unsigned char ext_id, 
                 GC_PARM_BLKP parmblkp, GC_PARM_BLKP *retblkp, unsigned long mode);
int gc_SetUserInfo(int target_type, long target_id, GC_PARM_BLKP infoparmblkp, int duration);
int gc_GetUserInfo (int target_type, long target_id, GC_PARM_BLKP *infoparmblkp);
int gc_ReqService(int target_type, long target_id, unsigned long *pserviceID,
                    GC_PARM_BLKP reqdatap, GC_PARM_BLKP *respdatapp,
                    unsigned long mode);
int gc_RespService(int target_type, long target_id, GC_PARM_BLKP datap, 
                    unsigned long mode);

/* The following GC utility functions provide the convenience when using GC_PARM_BLK and
 GC_PARM_DATA */
int gc_util_insert_parm_ref(GC_PARM_BLKP *parm_blkpp, unsigned short setID,
                            unsigned short parmID, unsigned char data_size,
                            void *datap);
int gc_util_insert_parm_val(GC_PARM_BLKP *parm_blkpp, unsigned short setID,
                            unsigned short parmID, unsigned char data_size,
                            unsigned long data);
GC_PARM_DATAP gc_util_next_parm(GC_PARM_BLKP parm_blk, GC_PARM_DATAP cur_parm);
GC_PARM_DATAP gc_util_find_parm(GC_PARM_BLKP parm_blk, unsigned short setID,
                                unsigned short parmID);
void gc_util_delete_parm_blk(GC_PARM_BLKP parm_blk);

#if defined (__cplusplus)
}
#endif  /* __cplusplus */

#else /* !_MSC_VER && !__STDC__ && !__cplusplus !__BORLANDC__ && !CLIB */
int gc_AcceptCall();
int gc_AlarmName();
int gc_AlarmNunber();
int gc_AlarmNumberToName();
int gc_AlarmSourceObjectID();
int gc_AlarmSourceObjectIDToName();
int gc_AlarmSourceObjectName();
int gc_AlarmSourceObjectNameToID();
int gc_AnswerCall();
int gc_Attach();
int gc_AttachResource();
int gc_BlindTransfer();
int gc_CallAck();
int gc_CallProgress();
int gc_CCLibIDToName();
int gc_CCLibNameToID();
int gc_CCLibStatus();
int gc_CCLibStatusAll();
int gc_CCLibStatusEx();
int gc_CRN2LineDev();
int gc_Close();
int gc_CompleteTransfer();
int gc_Detach();
int gc_DropCall();
int gc_ErrorInfo();
int gc_ErrorValue();
int gc_GetAlarmConfiguration();
int gc_GetAlarmFlow();
int gc_GetAlarmParm();
int gc_GetAlarmSourceObjectList();
int gc_GetAlarmSourceObjectNetworkID();
int gc_GetANI();
int gc_GetBilling();
int gc_GetCallInfo();
int gc_GetCallProgressParm();
int gc_GetCallState();
int gc_GetConfigData();
int gc_GetCRN();
int gc_GetCTInfo();
int gc_GetDeviceNameInfo();
int gc_GetDlgerrValue();
int gc_GetDNIS();
int gc_GetFrame();
int gc_GetInfoElem();
int gc_GetLineDev();
int gc_GetLinedevState();
int gc_GetMetaEvent();
int gc_GetMetaEventEx();
int gc_GetNetworkH();
int gc_GetParm();
int gc_GetResourceH();
int gc_GetSigInfo();
int gc_GetUsrAttr();
int gc_GetVer();
int gc_GetVoiceH();
int gc_GetXmitSlot();
int gc_HoldCall();
int gc_HoldACK();
int gc_HoldRej();
int gc_LibInit();
int gc_LinedevToCCLIDID();
int gc_Listen();
int gc_LoadDxParm();
int gc_MakeCall();
int gc_GetNetCRV();
int gc_Open();
int gc_OpenEx();
int gc_QueryConfigData();
int gc_ReleaseCall();
int gc_ReleaseCallEx();
int gc_ReqANI();
int gc_ReqMoreInfo();
int gc_ResetLineDev();
int gc_ResultInfo();
int gc_ResultMsg();
int gc_ResultValue();
int gc_RetrieveCall();
int gc_RetrieveAck();
int gc_RetrieveRej();
int gc_SendMoreInfo();
int gc_SetAlarmConfiguration();
int gc_SetAlarmFlow();
int gc_SetAlarmFlow();
int gc_SetAlarmNotifyAll();
int gc_SetAlarmParm();
int gc_SetBilling();
int gc_SetCallingNum();
int gc_SetCallProgressParm();
int gc_SetChanState();
int gc_SetConfigData();
int gc_SetDlgerrValue();
int gc_SetEvtMsk();
int gc_SetInfoElem();
int gc_SetParm();
int gc_SetupTransfer();
int gc_SetUsrAttr();
int gc_SndFrame();
int gc_SndMsg();
int gc_Start();
int gc_StartTrace();
int gc_Stop();
int gc_StopTrace();
int gc_StopTransmitAlarms();
int gc_SwapHold();
int gc_TransmitAlarms();
int gc_UnListen();
int gc_WaitCall();
int gc_Extension();
int gc_SetUserInfo();
int gc_GetUserInfo ();
int gc_ReqService( );
int gc_RespService( );


int gc_util_insert_parm_ref();
int gc_util_insert_parm_val();
GC_PARM_DATAP gc_util_next_parm();
GC_PARM_DATAP gc_util_find_parm();
void gc_util_delete_parm_blk();

#endif  /* _MSC_VER || __STDC__ || __cplusplus */

/* Enable the #pragma pack() for WIN32 and UNIX */
#pragma pack()

#ifdef __cplusplus
}
#endif  /* __cplusplus */

/* Include other GC API header files so application does not have to.
 * Each of these files are protected against multiple inclusion so
 * existing applications do not need to be changed
 */

#include <gcerr.h>
#include <gccfgparm.h>
#include <gcmsg.h>

#endif          /* _GCLIB_H */

  ----------

#ifndef __DXUIO_H__
#define __DXUIO_H__

/*
 * User Defined I/O Functions for read()/write()/lseek()
 */

#if ( defined (__STDC__) || defined (__cplusplus) )

typedef struct dx_uio {
   int (* u_read)(int, char *, unsigned); /* User Defined read() */
   int (* u_write)(int, char *, unsigned);/* User Defined write() */
   long (* u_seek)(int, long, int);       /* User Defined lseek() */
} DX_UIO;

#else

typedef struct dx_uio {
   int (* u_read)();       /* User Defined replacement for read() */
   int (* u_write)();      /* User Defined replacement for write() */
   long (* u_seek)();       /* User Defined replacement for lseek() */
} DX_UIO;

#endif

/*
 * User Defined I/O Functions for direct play()/record()
 */
#if ( defined (__STDC__) || defined (__cplusplus) )

typedef struct dx_uio_direct {
   unsigned long uDirectFlags;
   int (*uPlayBufferAlloc)(int, char **, unsigned);
   void (*uPlayBufferFree)(int, char *);
   int (*uRecordBufferAlloc)(int, char **, unsigned);
   void (*uRecordBufferFree)(int, char *, unsigned);
} DX_UIO_DIRECT;

#else

typedef struct dx_uio_direct {
   unsigned long uDirectFlags;
   int (*uPlayBufferAlloc)();
   void (*uPlayBufferFree)();
   int (*uRecordBufferAlloc)();
   void (*uRecordBufferFree)();
} DX_UIO_DIRECT;

#endif

#endif	/* __DXUIO_H__	*/
  ----------

/***********************************************************************
 *        FILE: sctools.h
 * DESCRIPTION: Header File for DIALOGIC Windows NT library
 *
 *   Copyright (c) 1991-1996 Dialogic Corp. All Rights Reserved
 *
 *   THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Dialogic Corp.
 *   The copyright notice above does not evidence any actual or
 *   intended publication of such source code.
 **********************************************************************/


/**
 ** Definitions
 **/
#define SC_VOX       0x01                       /* Voice channel device */
#define SC_LSI       0x02                       /* Analog Timeslot device */
#define SC_DTI       0x03                       /* Digital Timeslot device */
#define SC_FAX       0x04                       /* Fax channel device */
#define SC_MSI        0x05                                     /* MSI channel device */

#define SC_FULLDUP   0x00                       /* Full duplex connection */
#define SC_HALFDUP   0x01                       /* Half duplex connection */


/**
 ** Function Prototypes
 **/
#ifdef __cplusplus
extern "C" {   // C++ func bindings to enable C funcs to be called from C++
#define extern
#endif

#if ( defined( __STDC__ ) || defined( __cplusplus ) )
int nr_scroute( int, unsigned short, int, unsigned short, unsigned char );
int nr_scunroute( int, unsigned short, int, unsigned short, unsigned char );
#else
int nr_scroute();
int nr_scunroute();
#endif

#ifdef __cplusplus
}
#undef extern
#endif

  ----------

/**********************************************************************
*
*   C Header:       gccfgparm.h
*   Instance:       gc_1
*   Description:    
*   %created_by:    wietechr %
*   %date_created:  Thu Sep 27 11:04:33 2001 %
*
**********************************************************************/
/**********************************************************************
*  Copyright (C) 1996-2000 Dialogic Corp.
*  All Rights Reserved
*
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Dialogic Corp.
*  The copyright notice above does not evidence any actual or
*  intended publication of such source code.
**********************************************************************/
#ifndef _gc_1_gccfgparm_h_H
#define _gc_1_gccfgparm_h_H

#ifndef lint
static
#ifdef __cplusplus          
const             /* C++ needs const */     
#endif
char    *_gc_1_gccfgparm_h = "@(#) %filespec: gccfgparm.h-9.1 %  (%full_filespec: gccfgparm.h-9.1:incl:gc#1 %)";
#endif

#include "gclib.h"

/***************************************************************************************
* This header file contains information about configurable parameters only             *
* defined in GCLib module.  Other configurable parameters that are defined in other    *
* software modules may be found in similar header files of those software modules.     *
*                                                                                      *
* The set ID is used to represent a group of parameters that are closely related       *
* All set IDs in GlobalCall are divided into four groups according to the software     *
* module categories (that are GCLib, CCLib, Protocol, Firmware). Each software         *
* module category has a unique set ID range.  For example, GCLib category has          * 
* a different set ID range from CCLib category.                                        *
*                                                                                      *
* The range of set IDs defined in GCLib module is further divided into two             *
* sub-groups: the parameters maintained in GCLib and the parameters maintained         *
* in CCLibs.  The parameters maintained in CCLibs are grouped into non-technology      *
* and technology specific ones. For those technology specific parameters, each         *
* individual technology has its set ID range.                                          *
*                                                                                      *
* The set ID range of CCLib module category is further divided according to            * 
* CCLib IDs.  In other words, each individual CCLib module has its set ID              *
* range respect to its CCLib ID.  For example, PDKRT and ISDN call control library     *
* has a different set ID range.                                                        *
* However, all protocol modules in protocol category shares the same set ID range.     *
*                                                                                      *
* Generally, the parameters defined in GCLib module are common and thus can be         *
* applied to across all GlobalCall software modules (e.g., CCLib modules) while        *
* non-GCLib defined parameters can only be only applicable to a specific software      *
* module that defines them (e.g., the parameter for a protocol).                       *
*                                                                                      *
* This header file only lists the set ID and parm ID defines of GCLib defined          *
* parameters.  Other information, like target object types that support a parameter,   *
* parameter value type, and updateable permission flag, are given in the GlobalCall    *
* API document.                                                                        *
*                                                                                      *
* Caution: Since those parameters are common across different technologies, they are   *
* defined in this file but they may be used in different individual software modules.  *
* User should refer to the related manuals or documents before using them.             *
*                                                                                      *
****************************************************************************************/

/***************************************************************************************
* The ranges of set IDs for different software module types are as follows             *
***************************************************************************************/

/*
  GCLib defined set IDs must be from 0 to 0x3FFFh (0 to 16383)
*/

/*
  The parameters are defined and also maintained or used in GCLib from 0x000h to
  0x0FFFh (0 to 4095)
*/ 
#define GC_GCLIB_USE_SET_MIN        0
#define GC_GCLIB_USE_SET_MAX        0x0FFF

/* 
  The parameters are defined in this header file but maintained in other software modules
  from 0x1000h to 0x3FFFh (4096 to 16383).  The range is divided into non-technology and
  technology specific sub-ranges. 
*/
#define GC_GCLIB_DEF_SET_MIN        0x1000
#define GC_GCLIB_DEF_SET_MAX        0x3FFF

/* 
  The parameters are not technology specific but maintained in other software modules.
  Range is from 0x1000h to 0x2FFFh (4096 to 12287) 
*/
#define GC_GCLIB_GEN_SET_MIN        GC_GCLIB_DEF_SET_MIN
#define GC_GCLIB_GEN_SET_MAX        0x2FFF

/* 
  The parameters are technology specific and maintained in other software modules.
  The set ID ranges of technologies from 0x3000h to 0x3FFFh (12288 to 16383).
  Maximum number of technologies is limited to 16.  
  Each TECHNOLOGY has a set ID span 0xFFh (256)
*/
#define GC_GCLIB_TECH_SET_MIN       0x3000
#define GC_GCLIB_TECH_SET_MAX       0x3FFF

/* The IP technology must be from 0x3000h to 0x31FFh (16384-12799) */
#define GC_IP_TECH_SET_MIN          0x3000 
#define GC_IP_TECH_SET_MAX          0x30FF

/* 
 * The set ranges for any new technology shall be defined here
 * .... 
 */





/***************************************************************************************
*  The following defines are set ID ranges of CCLib modules from 0x4000h to 0x9FFFh
*  (16384--40959).  Total number of CCLibs is limited to 60.
*  Each CCLib module has set ID span 0xFFh (256)
***************************************************************************************/

#define GC_CCLIB_SET_START          0x4000
#define GC_CCLIB_SET_SPAN           0xFF 

/* The ICAP library must be from 0x4100h to 0x41FFh (16640-16895) */
#define GC_ICAPILIB_SET_MIN         (GC_CCLIB_SET_START + (GC_ICAPI_LIB << 8)) 
#define GC_ICAPILIB_SET_MAX         (GC_ICAPILIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The ISDN library must be from 0x4200h to 0x42FFh (16896-17151) */
#define GC_ISDNLIB_SET_MIN          (GC_CCLIB_SET_START + (GC_ISDN_LIB << 8))
#define GC_ISDNLIB_SET_MAX          (GC_ISDNLIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The ANALOG library must be from 0x4300h to 0x43FFh (17152-17407) */
#define GC_ANAPILIB_SET_MIN         (GC_CCLIB_SET_START + (GC_ANAPI_LIB << 8))
#define GC_ANAPILIB_SET_MAX         (GC_ANAPILIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The PDKRT library must be from 0x4400h to 0x44FFh (17408-17663) */
#define GC_PDKRTLIB_SET_MIN         (GC_CCLIB_SET_START + (GC_PDKRT_LIB << 8))
#define GC_PDKRTLIB_SET_MAX         (GC_PDKRTLIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The SS7 library must be from 0x4500h to 0x45FFh (17664-17919) */
#define GC_SS7LIB_SET_MIN           (GC_CCLIB_SET_START + (GC_SS7_LIB << 8))
#define GC_SS7LIB_SET_MAX           (GC_SS7LIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The DM3 library must be from 0x4600h to 0x46FFh (17920-18175) */
#define GC_DM3CCLIB_SET_MIN         (GC_CCLIB_SET_START + (GC_DM3CC_LIB << 8))
#define GC_DM3CCLIB_SET_MAX         (GC_DM3CCLIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The IP H323 library must be from 0x4700h to 0x47FFh (18176-18431) */
#define GC_IPMLIB_SET_MIN           (GC_CCLIB_SET_START + (GC_IPM_LIB << 8))
#define GC_IPMLIB_SET_MAX           (GC_IPMLIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* 
 * The set ranges for any new CCLib shall be defined here
 * .... 
 */


/* The Customer library 1 must be from 0x9E00h to 0x9EFFh (40448-40703) */
#define GC_CUSTOM1LIB_SET_MIN       0x9E00
#define GC_CUSTOM1LIB_SET_MAX       (GC_CUSTOM1LIB_SET_MIN | GC_CCLIB_SET_SPAN)

/* The Customer library 2 must be from 0x9F00h to 0x9FFFh (40704-40959) */
#define GC_CUSTOM2LIB_SET_MIN       0x9F00
#define GC_CUSTOM2LIB_SET_MAX       (GC_CUSTOM1LIB_SET_MIN | GC_CCLIB_SET_SPAN)


/* Protocol defined set IDs must be from 0xA000h to 0xBFFFh (40960--49165) */
#define GC_PROTOCOL_SET_MIN         0xA000
#define GC_PROTOCOL_SET_MAX         0xBFFF

/* Firmware defined set IDs must be from 0xC000h to 0xFFFFh (49166--65535) */
#define GC_FIRMWARE_SET_MIN         0xC000
#define GC_FIRMWARE_SET_MAX         0xFFFF




/*********************************************************************************** 
* The following defines the possible value types for configuration parameters (used 
* in parameter info define macros) and for the value_type field in GC_PARM_ID data
* structure
************************************************************************************/
#define     GC_VALUE_INT            0x1     /* Integer data ==> int */ 
#define     GC_VALUE_LONG           0x2     /* Long integer data ==> long */
#define     GC_VALUE_SHORT          0x3     /* Short integer data ==> short */
#define     GC_VALUE_CHAR           0x4     /* Character data ==> char */
#define     GC_VALUE_STRING         0x5     /* Character string data ==> char* */
#define     GC_VALUE_UINT           0x6     /* Unsigned Integer data ==> int */ 
#define     GC_VALUE_ULONG          0x7     /* Unsigned Long integer data ==> long */
#define     GC_VALUE_USHORT         0x8     /* Unsigned Short integer data ==> short */
#define     GC_VALUE_UCHAR          0x9     /* Unsigned Character data ==> char */

/*
 * New parm value type shall be defined here
 */

#define     GC_VALUE_PARM_ID        0xF     /* GC_PARM_ID data structure that only used for */
                                            /* gc_QueryConfigData() */



/*
 * The following defines the possible update flag values for configuration parameters
 * (used in parmater info define macros)and for the update_perm field 
 * in GC_PARM_ID data structure 
 */
#define     GC_W_I                  0       /* GC_W_I <==> update immediately*/
#define     GC_R_O                  1       /* GC_R_O <==> retrieve only */
#define     GC_W_N                  2       /* GC_W_N <==> update only at GC null state */
#define     GC_W_X                  3       /* GC_W_X <==> not available */




/***********************************************************************************/
/*  The following set ID and parameter ID defines are defined and maintained (used)*/
/*  in GCLib.                                                                      */
/*  Range: 0x0000 to 0x0FFF                                                        */
/***********************************************************************************/

/* 
 *
 * The following set ID is generic
 *
 */
#define     GCSET_GENERIC           0x0 /* Generic set */

/*The following are the parameters that supports set ID = GCSET_GENERIC */
#define     GCPARM_GENERIC          0x0 /* generic parm */




/* 
 *
 * The following set ID is for device information
 *
 */
#define     GCSET_DEVICEINFO        0x1 /* Protocol information set */

/* The following parm IDs support setID = GCSET_PROTOCOL */
#define     GCPARM_DEVICENAME       0x1 /* device name */
#define     GCPARM_NETWORKH         0x2 /* network handle */
#define     GCPARM_VOICENAME        0x3 /* voice name */
#define     GCPARM_VOICEH           0x4 /* voice handle */
#define     GCPARM_CALLSTATE        0x5 /* call state */
#define     GCPARM_BOARD_LDID       0x6 /* board line device ID */




/* 
 *
 * The following set ID is for protocol information
 *
 */
#define     GCSET_PROTOCOL          0x2 /* Protocol information set */

/* The following parm IDs support setID = GCSET_PROTOCOL */
#define     GCPARM_PROTOCOL_ID      0x1 /* protocol ID */
#define     GCPARM_PROTOCOL_NAME    0x2 /* protocol Name */




/* 
 *
 * The following set ID is for CCLib information
 *
 */
#define     GCSET_CCLIB_INFO        0x3 /* CCLib information set */

/* The following parm IDs support setID = GCSET_CCLIB_INFO */
#define     GCPARM_CCLIB_ID         0x1 /* CCLib ID */
#define     GCPARM_CCLIB_NAME       0x2 /* CCLib Name */




/* 
 *
 * The following set ID is for call event mask of a time slot
 *
 */
#define     GCSET_CALLEVENT_MSK     0x8 /* Call event mask set*/
#define     GCPARM_GET_MSK          0x0 /* generic parm */ 
/* Other parm IDs that support set ID = GCSET_CALLEVENT_MSK include */
/* GCACT_SETMSK, GCACT_ADDMSK, and GCACT_SUBMSK */



/* 
 *
 * The following set ID is for call state mask of a time slot
 *
 */  
#define     GCSET_CALLSTATE_MSK     0x9 /* call state mask set */

/* The parm IDs that support set ID = GCSET_CALLSTATE_MSK include GCPARM_GET_MSK, */
/* GCACT_SETMSK, GCACT_ADDMSK, and GCACT_SUBMSK */



/* 
 *
 * The following set ID is for CRN value by given index of a time slot
 *
 */
#define     GCSET_CRN_INDEX         0xA /* CRN index set */

/* The following parm IDs support setID = GCSET_CRN_INDEX */
#define     GCPARM_1ST_CRN          0x0 /* The first crn of a time slot line device */
#define     GCPARM_2ND_CRN          0x1 /* The second crn of a time slot line device */


/*
 *
 *  The set ID and parm ID for the new GCLib-maintained parameters shall be defined here
 *
 */



/***********************************************************************************/
/*  The following set ID and parameter ID defines are defined in GCLib but         */
/*  maintained (used) in GCLib.                                                    */
/*  Range: 0x1000 - 0x3FFF                                                         */
/***********************************************************************************/

/*
 * 
 * The following set ID is for call information:
 * call info set used as an alternative to gc_GetCallInfo
 *
 */
#define     GCSET_CALLINFO          0x1001  /*  */
/* The parm IDs that support set ID = GCSET_CALLINFO include CALLINFOTYPE, */
/* CATEGORY_DIGIT, and CONNECT_TYPE */



/* 
 *
 * The following set ID is for call information:
 * parm set used as an alternative to gc_SetParm/gc_GetParm
 *
 */
#define     GCSET_PARM              0x1002
/* The parm IDs that support set ID = GCSET_PARM include GCPR_CALLINGPARTY */
/* and GCPR_LOADTONES */




/*
 *
 *  The following set ID is for configuring the sending of call acknowledgement
 *  and call proceeding indication.
 *
 */
#define     GCSET_CALL_CONFIG       0x1003  

/* Parameter IDs for GCSET_CALL_CONFIG */
#define     GCPARM_CALLACK          1   /* determines who sends the Call Acknowledgment */
#define     GCPARM_CALLPROC         2   /* determines who sends the Call Proceeding */
#define     GCPARM_MIN_INFO         3   /* specifies minimum amount of info/digits to receive  */
#define     GCPARM_MAX_INFO         4   /* specifies maximum amount of info/digits to receive  */

/* Possible values for GCPARM_CALLACK and GCPARM_CALLPROC parameters */
#define     GCCONTROL_APP           1   /* Application controlled sending */
#define     GCCONTROL_TCCL          2   /* Technology call control layer controlled sending */




/*
 *
 *  The following set ID is for setting the channel capabilities
 *
 */
#define     GCSET_CHAN_CAPABILITY   0x1004  /* MakeCall block - Channel capability parameters */

/* Parameter IDs for GCSET_CHAN_CAPABILITY */
#define     GCPARM_TYPE                     1    /* Type of capability */
#define     GCPARM_CAPABILITY               2    /* Capability of the channel */ 
#define     GCPARM_RATE                     3    /* Information transfer rate */ 

/* Possible values for GCPARM_TYPE parameter in the GCSET_CHAN_CAPABILITY set.*/
#define     GCCAPTYPE_VIDEO                 1    /* Video */
#define     GCCAPTYPE_AUDIO                 2    /* Audio */
#define     GCCAPTYPE_3KHZ_AUDIO            3    /* 3Khz Audio */
#define     GCCAPTYPE_7KHZ_AUDIO            4    /* 7Khz Audio */
#define     GCCAPTYPE_RDATA                 5    /* Raw data */
#define     GCCAPTYPE_UDATA                 6    /* User data */
#define     GCCAPTYPE_UNDEFINED             7    /* Undefined capability type */
#define     GCCAPTYPE_MUX                   8    /* Multiplexed capability */
#define     GCCAPTYPE_DTMF                  9    /* DTMF capability */

/* Possible values for GCPARM_CAPABILITY parameter in the GCSET_CHAN_CAPABILITY set.*/
/* Data Capabilites */
#define     GCCAP_DATA_t120                 1    /* T.120 data protocol chosen */
#define     GCCAP_DATA_dsm_cc               2    /* DSM-cc data protocol chosen */   
#define     GCCAP_DATA_usrData              3    /* User data protocol chosen */ 
#define     GCCAP_DATA_t84                  4    /* T.84 data protocol chosen. */    
#define     GCCAP_DATA_t434                 5    /* T.434 data protocol chosen. */   
#define     GCCAP_DATA_h224                 6    /* H.224 data protocol chosen. */   
#define     GCCAP_DATA_nlpd                 7    /* NLPD data protocol chosen. */    
#define     GCCAP_DATA_dsvdControl          8    /* DSVD control data protocol chosen. */    
#define     GCCAP_DATA_h222                 9    /* H.222 data protocol chosen */    
#define     GCCAP_DATA_t30Fax               10   /* T.30 Fax protocol chosen */  
#define     GCCAP_DATA_t140                 11   /* T.140 data protocol chosen */    
#define     GCCAP_DATA_t38Fax               12   /* T.38 Fax protocol chosen */  
#define     GCCAP_DATA_CCITTV110            13   /* CCITT V.110 standard */
#define     GCCAP_DATA_CCITTV120            14   /* CCITT V.120 standard */  
#define     GCCAP_DATA_CCITTX31             15   /* CCITT X.31 standard */   
#define     GCCAP_DATA_nonStandard          16   /* non-Standard Data capability */

/* Audio Capabilities */
#define     GCCAP_AUDIO_nonstandard         100  /* Non standard audio codec chosen */
#define     GCCAP_AUDIO_g711Alaw64k         101  /* G.711 audio, A-law, 64k */
#define     GCCAP_AUDIO_g711Alaw56k         102  /* G.711 audio, A-law, 56k */
#define     GCCAP_AUDIO_g711Ulaw64k         103  /* G.711 audio, U-law, 64k */
#define     GCCAP_AUDIO_g711Ulaw56k         104  /* G.711 audio, U-law, 56k */
#define     GCCAP_AUDIO_G721ADPCM           105  /* ADPCM */ 
#define     GCCAP_AUDIO_g722_48k            106  /* G.722 audio 48k */ 
#define     GCCAP_AUDIO_g722_56k            107  /* G.722 audio 56k */ 
#define     GCCAP_AUDIO_g722_64k            108  /* G.722 audio 64k */ 
#define     GCCAP_AUDIO_g7231_5_3k          109  /* G.723.1 at 5.3 kbit/s */   
#define     GCCAP_AUDIO_g7231_6_3k          110  /* G.723.1 at 6.3 kbit/s */   
#define     GCCAP_AUDIO_g726_16k            111  /* G.726 at 16 kbit/s. Mapped to nonstandard coder in H.245 as G.726.is 
                                                    not yet specified in H.245 */
#define     GCCAP_AUDIO_g726_24k            112  /* G.726 at 24 kbit/s. Mapped to nonstandard coder in H.245 as G.726.is 
                                                    not yet specified in H.245 */
#define     GCCAP_AUDIO_g726_32k            113  /* G.726 at 32 kbit/s. Mapped to nonstandard coder in H.245 as G.726.is 
                                                    not yet specified in H.245 */
#define     GCCAP_AUDIO_g726_40k            114  /* G.726 at 40 kbit/s. Mapped to nonstandard coder in H.245 as G.726.is 
                                                    not yet specified in H.245 */
#define     GCCAP_AUDIO_g728                115  /* G.728 audio at 16 kbit/s */  
#define     GCCAP_AUDIO_g729                116  /* G.729 audio at 8 kbit/s */   
#define     GCCAP_AUDIO_g729AnnexA          118  /* G.729AnnexA audio at 8 kbit/s */ 
#define     GCCAP_AUDIO_g729wAnnexB         119  /* G.729 audio at 8 kbit/s with silence suppression as in Annex B */    
#define     GCCAP_AUDIO_g729AnnexAwAnnexB   120  /* G.729AnnexA audio at 8 kbit/s with silence suppression as in Annex B */  
#define     GCCAP_AUDIO_g7231AnnexCCapability 121/* G.723.1 with Annex C */    
#define     GCCAP_AUDIO_gsmFullRate         122  /* Full-rate speech transcoding (GSM 06.10) */  
#define     GCCAP_AUDIO_gsmHalfRate         123  /* Half-rate speech transcoding (GSM 06.20) */  
#define     GCCAP_AUDIO_gsmEnhancedFullRate 124  /* Enhanced Full Rate (EFR) speech transoding (GSM 06.60) */  
#define     GCCAP_AUDIO_gsmAdaptiveMultiRate 125 /* GSM 06.90 AdaptiveMultRate.  Mapped to nonstandard coder in H.245
                                                    as GSM AMR not yet specified in H.245 */
#define     GCCAP_AUDIO_is11172             126  /* is11172AudioCapability_chosen */ 
#define     GCCAP_AUDIO_is13818             127  /* is13818AudioCapability_chosen */ 
#define     GCCAP_AUDIO_is127EnhancedVariableRate 128 /* TIA/EIA standard IS-127 transcoding.  Mapped to nonstandard
                                                     coder in H.245 as IS-127 EVRC is not yet specified in H.245. */

/* Video Capabilites */
#define     GCCAP_VIDEO_nonstandard         200  /* Non standard video codec chosen */   
#define     GCCAP_VIDEO_h261                201  /* H.261 video codec */ 
#define     GCCAP_VIDEO_h262                202  /* H.261 video codec */ 
#define     GCCAP_VIDEO_h263                203  /* H.263 video codec */ 
#define     GCCAP_VIDEO_is11172             204  /* IS11172 video codec */   

/* Other Capabilities */
#define     GCCAP_txEncryption              300  /* Transmit enxryption capability */    
#define     GCCAP_rxEncryption              301  /* Receive enxryption capability */ 
#define     GCCAP_conference                302  /* Conference capability */
#define     GCCAP_h235Security              303  /* H.235 security capability */ 
#define     GCCAP_clientUserInput           304  /* Client user input, used for DTMF tones */    
#define     GCCAP_muxNonStandard            305  /* Non standard Mux capability */   
#define     GCCAP_muxH222                   306  /* H.222 Mux capability */  
#define     GCCAP_muxH223                   307  /* H.223 Mux capability */  
#define     GCCAP_muxVgMux                  308  /* VG Mux capability */ 
#define     GCCAP_muxH2250                  309  /* H.225.0 Mux capability */    
#define     GCCAP_muxH223AnnexA             310  /* H.223 Annex A Mux capability */
#define     GCCAP_unknown                   311  /* unknown capability */
#define     GCCAP_noChange                  312  /* use previous capability */
#define     GCCAP_dontCare                  313  /* use any capability */
#define     GCCAP_nonStandard               314  /* non-Standard capability */


/* Possible values for GCPARM_RATE parameter in the GCSET_CHAN_CAPABILITY set.*/
#define     GCCAPRATE_EINI460               1       
#define     GCCAPRATE_50                    2    /* 50 bps */
#define     GCCAPRATE_75                    3    /* 75 bps */
#define     GCCAPRATE_100                   4    /* 100 bps */
#define     GCCAPRATE_134                   5    /* 134 bps */
#define     GCCAPRATE_110                   6    /* 110 kbps */
#define     GCCAPRATE_150                   7    /* 150 kbps */
#define     GCCAPRATE_200                   8    /* 200 kbps */
#define     GCCAPRATE_300                   9    /* 300 kbps */
#define     GCCAPRATE_600                   10   /* 600 kbps */
#define     GCCAPRATE_1200                  11   /* 1.2 kbps */
#define     GCCAPRATE_2400                  12   /* 2.4 kbps */
#define     GCCAPRATE_3600                  13   /* 3.6 kbps */
#define     GCCAPRATE_4800                  14   /* 4.8 kbps */
#define     GCCAPRATE_5300                  15   /* 5.3 kbps */  
#define     GCCAPRATE_6300                  16   /* 6.3 kbps */  
#define     GCCAPRATE_7200                  17   /* 7.2 kbps */
#define     GCCAPRATE_8000                  18   /* 8 kbps */
#define     GCCAPRATE_9600                  19   /* 9.6 kbps */
#define     GCCAPRATE_12000                 20   /* 12 kbps */
#define     GCCAPRATE_14400                 21   /* 14.4 kbps */
#define     GCCAPRATE_16000                 22   /* 16 kbps */
#define     GCCAPRATE_19200                 23   /* 19.2 kbps */
#define     GCCAPRATE_32000                 24   /* 32 kbps */
#define     GCCAPRATE_48000                 25   /* 48 kbps */
#define     GCCAPRATE_56000                 26   /* 56 kbps */
#define     GCCAPRATE_64000                 27   /* 64 kbps */
#define     GCCAPRATE_128000                28   /* 128 kbps */
#define     GCCAPRATE_384000                29   /* 384 kbps */
#define     GCCAPRATE_1536000               30   /* 1536 kbps */
#define     GCCAPRATE_1920000               31   /* 1920 kbps */
#define     GCCAPRATE_75_1200               32
#define     GCCAPRATE_1200_75               33
#define     GCCAPRATE_DEFAULT               34




/*
 *
 *  The following set ID is for setting the caller ID information
 *
 */
#define     GCSET_CALLER_ID         0x1005  /* MakeCall block - Caller ID parameters    */

/* Parameter IDs for GCSET_CALLER_ID */
#define     GCPARM_NAME             1       /* Name to be displayed (NULL terminated) */
#define     GCPARM_ADDRESS          2       /* Address to be displayed (NULL terminated) */ 
#define     GCPARM_DATE             3       /* Date in MM/DD/YYYY format */ 
#define     GCPARM_TIME             4       /* Time in HH:MM format */ 
#define     GCPARM_NAME_ABSENCE     5       /* Reason for absence of name */ 
#define     GCPARM_NUMBER_ABSENCE   6       /* Reason for absence of number */ 
#define     GCPARM_INFO             7       /* Other User data (NULL terminated) */ 

/* Possible values for GCPARM_NAME_ABSENCE, GCPARM_NUMBER_ABSENCE */
#define     GCABSENCE_PRIVATE       1       /* Private address */
#define     GCABSENCE_OUT_OF_AREA   2       /* Out of area address */




/*
 *
 *  The following set ID is for configuring the service request parameters
 *
 */
#define     GCSET_SERVREQ           0x1006  /* GCSR parameters */

/* Parameter IDs for GCSET_SERVREQ */
#define     PARM_SERVICEID          1       /* Request ID */
#define     PARM_REQTYPE            2       /* Request Type */
#define     PARM_ACK                3       /* Request Acknowledgement */

/* Possible values for PARM_ACK parameter in GCSET_SERVREQ */
#define     GC_NACK                 0       /* No ack required or rejection */
#define     GC_ACK                  1       /* Ack required or confirmation */




/*
 * 
 * The following two set IDs are corresponding to the structure: GCLIB_ADDRESS_BLK
 *
 */
#define GCSET_ORIG_ADDR             0x1007  /* structure: GCLIB_ADDRESS_BLK */
#define GCSET_DEST_ADDR             0x1008  /* structure: GCLIB_ADDRESS_BLK */

/* Parameter IDs for GCSET_ORIG_ADDR and GCSET_DEST_ADDR */
#define GCPARM_ADDR_DATA            0x0     /* field: address */
#define GCPARM_ADDR_TYPE            0x1     /* field: address_type */
#define GCPARM_ADDR_PLAN            0x2     /* field: address_plan */
#define GCPARM_SUBADDR_DATA         0x3     /* field: sub_address */
#define GCPARM_SUBADDR_TYPE         0x4     /* field: sub_address_type */
#define GCPARM_SUBADDR_PLAN         0x5     /* field: sub_address_plan */


/* Possible values for GCPARM_ADDR_DATA parameter               */
/*      GCADDRTYPE_TRANSPARENT  - Transparent Number            */
/*      GCADDRTYPE_NAT          - National Number               */
/*      GCADDRTYPE_INTL         - International Number          */
/*      GCADDRTYPE_LOC          - Local Number                  */
/*      GCADDRTYPE_IP           - Internet Protocol Address)    */
/*      GCADDRTYPE_URL          - URL Address                   */
/*      GCADDRTYPE_DOMAIN       - Domain address)               */
/*      GCADDRTYPE_EMAIL        - Email Address                 */

/* Possible values for GCPARM_ADDR_PLAN parameter               */ 
/*      GCADDRPLAN_UNKNOWN      - Address plan - Unknown        */
/*      GCADDRPLAN_ISDN         - Address plan - ISDN plan      */
/*      GCADDRPLAN_TELEPHONY    - Address plan - Telephony plan */
/*      GCADDRPLAN_PRIVATE      - Address plan - Private plan   */

/* Possible values for GCPARM_SUBADDR_TYPE parameter            */ 
/*      GCSUBADDR_UNKNOWN       - Address type - Unknown type   */
/*      GCSUBADDR_OSI           - Address type - OSI type       */
/*      GCSUBADDR_USER          - Address type - User type      */
/*      GCSUBADDR_IA5           - Address type - IA5 characters */



/* 
 *
 * The following set ID is corresponding to the structure: GCLIB_CHAN_BLK 
 *
 */
#define GCSET_CHAN_BLK              0x1009

/* Parameter IDs for GCSET_CHAN_BLK */
#define GCPARM_CHAN_MEDIA_ID        0x0     /* field: medium_id  */
#define GCPARM_CHAN_MEDIA_SEL       0x1     /* field: medium_sel */

/* Possible values for GCPARM_CHAN_MEDIA_SEL parameter           */
/*      GCMEDSEL_MEDIUM_PREF    - Timeslot selected is preferred */
/*      GCMEDSEL_MEDIUM_EXCL    - Timeslot selected is exclusive */



/*
 *
 * The following set ID is corresponding to the structure: GCLIB_CALL_BLK
 *
 */
#define GCSET_CALL_BLK              0x100A

/* Parameter IDs for GCSET_CALL_BLK */
#define GCPARM_CALL_CATEGORY        0x0     /* field: category */
#define GCPARM_CALL_ADDR_INFO       0x1     /* field: address_info */

/* Possible values for GCPARM_CALL_CATEGORY parameter               */ 
/*      GCCAT_SUB_NOPRIOR       - Subscriber without priority       */
/*      GCCAT_SUB_PRIOR         - Subscriber with priority          */
/*      GCCAT_MAINT_EQUIP       - Maintenance equipment             */
/*      GCCAT_COIN_BOX          - Coinbox or subscriber with chargemetering */
/*      GCCAT_OPERATOR          - Operator                          */  
/*      GCCAT_DATA              - Data transmission                 */
/*      GCCAT_CPTP              - C.P.T.P.                          */  
/*      GCCAT_SPECIAL           - Special Line                      */
/*      GCCAT_MOBILE            - Mobile users                      */
/*      GCCAT_VPN               - Virtual private network line      */

/* Possible values for GCPARM_CALL_ADDR_INFO parameter              */
/*      GCADDRINFO_ENBLOC       - Address is complete               */
/*      GCADDRINFO_OVERLAP      - Address is not complete           */


/*
 *
 * The following set ID is for specifying a network interface for setting
 * interface parameters e.g. setting the IP address of a network interface board.
 *
 */
#define GCSET_NETIF_NUM             0x100B

/* Parameter IDs for GCSET_NETIF_NUM */
#define GCPARM_IP_NETIF             0x01


/*
 *  The set ID and parm ID for the new GCLib-defined parameters shall be defined here
 */


#endif



  ----------

/**********************************************************************
*
*  C Header:      gcerr.h
*  Description:   GlobalCall error header file for application use
*  %created_by:   jinb %
*  %date_created: Thu Apr 12 14:28:29 2001 %
*
**********************************************************************/
/**********************************************************************
*  Copyright (C) 1996-2000 Dialogic Corp.
*  All Rights Reserved
*
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Dialogic Corp.
*  The copyright notice above does not evidence any actual or
*  intended publication of such source code.
**********************************************************************/

#ifndef _GCERR_H_
#define _GCERR_H_

#ifndef lint
static 
#ifdef __cplusplus          
const             /* C++ needs const */     
#endif
char    *_dnj25_gcerr_h = "@(#) %filespec: gcerr.h-35 %  (%full_filespec: gcerr.h-35:incl:gc#dnj25 %)";
#endif

/****************/
/* Error values */
/****************/
/*gc1*/
/* Note: when adding error codes, recall that ICAPI error codes for the
   most part may not excede 0x7F - cf. r2_updateline() */
#define GC_ERROR  -1
#define EGC_NOERR             0        /* No error                         */
#define GC_SUCCESS            EGC_NOERR /* synonym of EGC_NOERR            */
#define EGC_NOCALL            1        /* No call was made or transfered   */
#define EGC_ALARM             2        /* Function interrupt by alarm      */
#define EGC_ATTACHED          3        /* specified resource already attached  */
#define EGC_DEVICE            4        /* Bad device handle                */
#define EGC_INVPROTOCOL       5        /* Ivalid protocol name             */
#define EGC_PROTOCOL          7        /* Protocol error                   */
#define EGC_SYNC              8        /* The mode flag must be EV_ASYNC   */
#define EGC_TIMEOUT           9        /* function time out                */
#define EGC_UNSUPPORTED       0xA      /* Function is not supported        */
#define EGC_USER              0xB      /* Function interrupted by user     */
#define EGC_VOICE             0xc      /* No voice resource attached       */
#define EGC_NDEVICE           0xd      /* Too many devices opened          */
#define EGC_NPROTOCOL         0xe      /* Too many protocols opened        */
#define EGC_BADFCN            0xf      /* Bad function code (TSR)          */
#define EGC_TSRNOTACTIVE      0x10     /* CCLIB not active (TSR)           */
#define EGC_COMPATIBILITY     0x11     /* incompatible components          */
/*gc2*/
/*gc3*/
#define EGC_EVTERR            0x13     /* Internal Dialogic use only       */
/*gc4*/
#define EGC_PUTEVT            0x14     /* Error queuing event              */
#define EGC_MAXDEVICES        0x15     /* Exceeded Maximum devices limit   */
#define EGC_OPENH             0x16     /* Error opening voice channel      */
#define EGC_DXOPEN            EGC_OPENH
/*gc5*/
#define EGC_INTERR            0x18     /* Internal Global Call Error */
#define EGC_NOMEM             0x19     /* Out of memory                    */
#define EGC_PFILE             0x1A     /* Error opening parameter file     */
#define EGC_TIMER             0x1B     /* Error starting timer             */
#define EGC_FILEWRITE         0x1C     /* Error writing file               */
#define EGC_SYSTEM            0x1D     /* System error                     */
/*gc6*/
#define EGC_VOXERR            0x1E     /* Internal Dialogic use only       */
#define EGC_DTIERR            0x32     /* Internal Dialogic use only       */
/*gc7*/
#define EGC_ERR               0x39     /* Internal Dialogic use only       */
/*gc8*/
#define EGC_LINERELATED       0x40     /* Error is related to line device  */
#define EGC_INVSTATE          0x41     /* Invalid state                    */
#define EGC_INVCRN            0x42     /* Invalid call reference number    */
#define EGC_INVLINEDEV        0x43     /* Invalid line device passed       */
#define EGC_INVPARM           0x44     /* Invalid parameter(argument)      */
#define EGC_SRL               0x45     /* SRL failure                      */
/*gc9*/
#define EGC_OTHERERRORS       0x80     /* Internal Dialogic use only       */
#define EGC_USRATTRNOTSET     0x81     /* UsrAttr was not set for this ldev*/
#define EGC_INVMETAEVENT      0x82     /* Invalid metaevent                */
#define EGC_GCDBERR           0x83     /* GlobalCall database error        */
#define EGC_NAMENOTFOUND      0x84     /* trunk device name name not found */
#define EGC_DRIVER            0x85     /* driver error                     */
#define EGC_FILEREAD          0x86     /* File read                        */
#define EGC_FILEOPEN          0x87     /* file open                        */
#define EGC_TASKABORTED       0x88     /* task aborted                     */
#define EGC_CCLIBSPECIFIC     0x89     /* cclib specific - a catchall      */
#define EGC_XMITALRM          0x8A     /* Send alarm failed                */
#define EGC_SETALRM           0x8B     /* Set alarm mode failed            */
#define EGC_CCLIBSTART        0x8C     /* At least one cclib failed to start*/
#define EGC_ALARMDBINIT       0x8D     /* Alarm database failed to init    */
#define EGC_INVDEVNAME        0x8E     /* Invalid device name              */
#define EGC_DTOPEN            0x8F     /* dt open failed                   */
#define EGC_GCNOTSTARTED      0x90     /* GlobalCall not started           */
#define EGC_DUPENTRY          0x91     /* inserting a duplicate entry into the database */
#define EGC_ILLSTATE          0x92     /* Function is not supported in the current state */
#define EGC_FUNC_NOT_DEFINED  0x93     /* Low level function is not defined */
#define EGC_GC_STARTED        0x94     /* GlobalCall is already started    */
#define EGC_BUSY              0x95     /* Line is busy                     */
#define EGC_NOANSWER          0x96     /* Ring, no answer                  */
#define EGC_NOT_INSERVICE     0x97     /* Number not in service            */
#define EGC_NOVOICE           0x98     /* No voice                         */
#define EGC_NORB              0x99     /* no ringback                      */
#define EGC_CEPT              0x100    /* operator intercept               */
#define EGC_STOPD             0x101    /* call progress stopped            */
#define EGC_CPERROR           0x102    /* SIT detection error              */
#define EGC_DIALTONE          0x103    /* no dial tone detected            */
#define EGC_ROUTEFAIL         0x104    /* routing failed                   */
#define EGC_DTUNLISTEN        0x105    /* dt_unlisten failed               */
#define EGC_DXUNLISTEN        0x106    /* dx_unlisten failed               */
#define EGC_AGUNLISTEN        0x107    /* ag_unlisten failed               */
#define EGC_DTGETXMITSLOT     0x108    /* dt_getxmitslot failed            */
#define EGC_DXGETXMITSLOT     0x109    /* dx_getxmitslot failed            */
#define EGC_AGGETXMITSLOT     0x10A    /* ag_getxmitslot failed            */
#define EGC_DTLISTEN          0x10B    /* dt_listen failed                 */
#define EGC_DXLISTEN          0x10C    /* dx_listen failed                 */
#define EGC_AGLISTEN          0x10D    /* ag_listen failed                 */
#define EGC_NO_MORE_AVL       0x10E    /* No more info avl                 */
#define EGC_UNALLOCATED       0x10F    /* number is unallocated            */
#define EGC_CONGESTION        0x110    /* congestion on the line           */
#define EGC_REJECT            0x111    /* call is rejected                 */
#define EGC_GETXMITSLOT       0x112    /* xx_getxmitslot failed            */
#define EGC_LISTEN            0x113    /* xx_listen failed                 */
#define EGC_UNLISTEN          0x114    /* xx_unlisten failed               */
#define EGC_RESETABLE_FATALERROR        0x115 /* resetable error                     */
#define EGC_RECOVERABLE_FATALERROR      0x116 /* recoverable error                   */
#define EGC_NON_RECOVERABLE_FATALERROR  0x117 /* non-recoverable fatal error         */
#define EGC_FATALERROR_ACTIVE           0x118 /* fatal error recovery is in progress */
#define EGC_FATALERROR_OCCURRED         0x119 /* fatal error has occurred            */
#define EGC_ASYNC             0x120    /* function must be sync            */    
#define EGC_DT_GETPARM        0x121    /* dt_getparm call failed           */
#define EGC_DT_SETPARM        0x122    /* dt_setparm call failed           */
#define EGC_ANM               0x123    /* ANM event handler creation or registration failed */
#define EGC_CCLIB_NOTFOUND    0x124    /* Call control library not found */
#define EGC_INVCCLIBFUNC      0x125    /* Invalid Call control library function */
#define EGC_INVCCLIB          0x126    /* Invalid Call control library - may be corrupted */
#define EGC_RTCMINIT          0x127    /* RTCM failed to initialize */

#define EGC_INVTARGETTYPE     0x130    /* invalid target object type */
#define EGC_INVTARGETID       0x131    /* invalid target object ID */
#define EGC_INVPARMBLK        0x132    /* invalid GC_PARM_BLKP */
#define EGC_INVDATABUFFSIZE   0x133    /* invalid parm data buffer size since it is not equal to the total parm data size */
#define EGC_INVSETID          0x134    /* invalid set ID */
#define EGC_INVPARMID         0x135    /* invalid parm ID */
#define EGC_PARM_UPDATEPERM_ERR 0x136    /* the parameter is not allowed to be updated */
#define EGC_PARM_VALUESIZE_ERR  0x137    /* value buffer size error */
#define EGC_PARM_VALUE_ERR    0x138    /* parm value error */
#define EGC_INVPARM_TARGET    0x139    /* invalid parmater for target object */
#define EGC_INVPARM_GCLIB     0x13A    /* invalid parameter for GCLib */
#define EGC_INVPARM_CCLIB     0x13B    /* invalid parameter for CCLib */
#define EGC_INVPARM_PROTOCOL  0x13C    /* invalid parameter for protocol */
#define EGC_INVPARM_FIRMWARE  0x13D    /* invalid parameter for firmware */
#define EGC_PARM_DATATYPE_ERR 0x13E    /* the parameter data type error */
#define EGC_NEXT_PARM_ERR     0x13F    /* next parm error */
#define EGC_INVUPDATEFLAG     0x140    /* Invalid update condition flag */
#define EGC_INVQUERYID        0x141    /* invalid query ID */
#define EGC_QUERYEDATA_ERR    0x142    /* source data error */
#define EGC_ATTACH_ERROR      0x143    /* error attaching media device */
#define EGC_PARM_FAILURE      0x144    /* parm failure and see additional message */
#define EGC_NOCCLIBSTARTED    0x145    /* No CCLIBS started */
#define EGC_GLARE             0x146    /* glare condition present */
#define EGC_DEVICE_REG_ERR    0x147    /* Device Registration for async open failed */


/* Note: when adding error codes, recall that ICAPI error codes for the
   most part may not excede 0x7F - cf. r2_updateline() */
/*****************/
/* result values */
/*****************/
/*gc9*/
#define GCRV_RESULT         0x500
#define GCRV_NORMAL         (GCRV_RESULT | 0)    /* normal completion                */
#define GCRV_ALARM          (GCRV_RESULT | 1)    /* event caused by alarm            */
#define GCRV_TIMEOUT        (GCRV_RESULT | 2)    /* event caused by timeout          */
#define GCRV_PROTOCOL       (GCRV_RESULT | 3)    /* event caused by protocol error   */
#define GCRV_NOANSWER       (GCRV_RESULT | 4)    /* event caused by no answer        */
#define GCRV_INTERNAL       (GCRV_RESULT | 5)    /* event caused internal failure   */
#define GCRV_CCLIBSPECIFIC  (GCRV_RESULT | 6)    /* event caused by cclib specific failure */
#define GCRV_NOVOICE        (GCRV_RESULT | 7)    /* Call needs voice, use ic_attach() */
#define GCRV_SIGNALLING     (GCRV_RESULT | 8)    /* Signaling change */
#define GCRV_BUSY           (GCRV_RESULT | 9)    /* Line is busy */
#define GCRV_NOT_INSERVICE  (GCRV_RESULT | 0x40) /* Number not in service        */
#define GCRV_NORB           (GCRV_RESULT | 0x41) /* no ringback           */
#define GCRV_CEPT           (GCRV_RESULT | 0x42) /* operator intercept    */
#define GCRV_STOPD          (GCRV_RESULT | 0x43) /* call progress stopped */
#define GCRV_CPERROR        (GCRV_RESULT | 0x44) /* call progress error   */
#define GCRV_DIALTONE       (GCRV_RESULT | 0x45) /* no dial tone          */
#define GCRV_UNALLOCATED    (GCRV_RESULT | 0x46) /* number not allocated */
#define GCRV_CONGESTION     (GCRV_RESULT | 0x47) /* congestion            */
#define GCRV_REJECT         (GCRV_RESULT | 0x48) /* call rejected         */
#define GCRV_FATALERROR_ACTIVE      (GCRV_RESULT | 0x49) /* Fatal error recovery is in progress */
#define GCRV_RESETABLE_FATALERROR   (GCRV_RESULT | 0x50) /* resetable fatal error */
#define GCRV_RECOVERABLE_FATALERROR (GCRV_RESULT | 0x51) /* recoverable fatal error */
#define GCRV_NONRECOVERABLE_FATALERROR (GCRV_RESULT | 0x52) /* non recoverable fatal error */
#define GCRV_FATALERROR_OCCURRED    (GCRV_RESULT | 0x53) /* fatal error has occurred */
#define GCRV_NODYNMEM               (GCRV_RESULT | 0x54) /* No dynamic memory available */
#define GCRV_ATTACH_ERROR           (GCRV_RESULT | 0x55) /* event caused by failure to attach media device */
#define GCRV_INFO_PRESENT_ALL       (GCRV_RESULT | 0x56) /* The req info is available */
#define GCRV_INFO_PRESENT_MORE      (GCRV_RESULT | 0x57) /* The req info is available, and even more are present */
#define GCRV_INFO_SOME_TIMEOUT      (GCRV_RESULT | 0x58) /* The req info is not yet available. Only some info is present, not all  */
#define GCRV_INFO_SOME_NOMORE       (GCRV_RESULT | 0x59) /* The req info is not yet available. No more info is coming in */
#define GCRV_INFO_NONE_TIMEOUT      (GCRV_RESULT | 0x5A) /* The req info is not available. No info came in  */
#define GCRV_INFO_NONE_NOMORE       (GCRV_RESULT | 0x5B) /* The req info is not available. No info came in and none is expected */
#define GCRV_INFO_SENT              (GCRV_RESULT | 0x5C) /* The information has been sent successfully */
#define GCRV_DESTINATION_ADDRESS_REQ   (GCRV_RESULT | 0x5D) /* The destination information has been requested by the remote side */
#define GCRV_ORIGINATION_ADDRESS_REQ   (GCRV_RESULT | 0x5E) /* The origination information has been requested by the remote side */
#define GCRV_MEDIA_REQ_CANCELLED   (GCRV_RESULT | 0x5F) /* The media request was cancelled by the remote side */
#define GCRV_NETWORK_OPEN_FAILED   (GCRV_RESULT | 0x60) /* The network channel failed to open */
#define GCRV_MEDIA_OPEN_FAILED     (GCRV_RESULT | 0x61) /* The media channel failed to open */
#define GCRV_GLARE                 (GCRV_RESULT | 0x62) /* A glare condition occurred */

/*
-- alarm values
-- initialized such that matches values (well actually +0x10)
-- in DTT1_xxx and DTE1_xxx (as of 4/8/96).
-- Also, doesn't differentiate between T1 & E1 when the same value
-- is used for both with a different meaning. The same value
-- will be returned here (albeit from different mneumonics)
-- User is expected to know if the board is T1 or E1
-- At the present time (4/8/96) Dialogic software does not tell
-- the difference at the library level.
-- gc_ResultMsg() will use the E1 vocabulary.
*/
#define GCRV_OOF     (GCRV_RESULT | 0x10) /* out of frame error, count saturation */
#define GCRV_LOS     (GCRV_RESULT | 0x11) /* Initial loss of signal detection */
#define GCRV_DPM     (GCRV_RESULT | 0x12) /* Driver performance monitor failure */
#define GCRV_BPVS    (GCRV_RESULT | 0x13) /* Bipolar violation count saturation */
#define GCRV_ECS     (GCRV_RESULT | 0x14) /* Error count saturation */
#define GCRV_RYEL    (GCRV_RESULT | 0x15) /* Received yellow alarm */
#define GCRV_RRA     GCRV_RYEL            /* Received remote alarm */
#define GCRV_RCL     (GCRV_RESULT | 0x16) /* Received carrier loss */
#define GCRV_FERR    (GCRV_RESULT | 0x17) /* Frame bit error */
#define GCRV_FSERR   GCRV_FERR            /* Received frame sync error */
#define GCRV_B8ZSD   (GCRV_RESULT | 0x18) /* Bipolar eight zero substitution detect */   
#define GCRV_RBL     (GCRV_RESULT | 0x19) /* Received blue alarm */
#define GCRV_RUA1    GCRV_RBL             /* Received unframed all 1s */ 
#define GCRV_RLOS    (GCRV_RESULT | 0x1A) /* Received loss of sync */
#define GCRV_RED     (GCRV_RESULT | 0x1B) /* Got a read alarm condition */
#define GCRV_MFSERR  (GCRV_RESULT | 0x1C) /* Received multi frame sync error */
#define GCRV_RSA1    (GCRV_RESULT | 0x1D) /* Received signalling all 1s */
#define GCRV_RDMA    (GCRV_RESULT | 0x1E) /* Received distant multi-frame alarm */
#define GCRV_CECS    (GCRV_RESULT | 0x1F) /* CRC4 error count saturation */

/* -- recovered series -- */
#define GCRV_OOFOK   (GCRV_RESULT | 0x20) /* out of frame error, count saturation recovered */
#define GCRV_LOSOK   (GCRV_RESULT | 0x21) /* Initial loss of signal detection recovered */
#define GCRV_DPMOK   (GCRV_RESULT | 0x22) /* Driver performance monitor failure recovered */
#define GCRV_BPVSOK  (GCRV_RESULT | 0x23) /* Bipolar violation count saturation recovered */
#define GCRV_ECSOK   (GCRV_RESULT | 0x24) /* Error count saturation recovered */
#define GCRV_RYELOK  (GCRV_RESULT | 0x25) /* Received yellow alarm recovered */
#define GCRV_RRAOK   GCRV_RYELOK          /* Received remote alarm recovered */
#define GCRV_RCLOK   (GCRV_RESULT | 0x26) /* Received carrier loss recovered */
#define GCRV_FERROK  (GCRV_RESULT | 0x27) /* Frame bit error recovered */
#define GCRV_FSERROK GCRV_FERROK          /* Received frame sync error recovered */
#define GCRV_B8ZSDOK (GCRV_RESULT | 0x28) /* Bipolar eight zero substitution dtct recovered */  
#define GCRV_RBLOK   (GCRV_RESULT | 0x29) /* Received blue alarm recovered */
#define GCRV_RUA1OK  GCRV_RBLOK           /* Received unframed all 1s recovered */ 
#define GCRV_RLOSOK  (GCRV_RESULT | 0x2A) /* Received loss of sync recovered */
#define GCRV_REDOK   (GCRV_RESULT | 0x2B) /* Got a read alarm condition recovered */
#define GCRV_MFSERROK (GCRV_RESULT | 0x2C)   /* Received multi frame sync error recovered */
#define GCRV_RSA1OK  (GCRV_RESULT | 0x2D) /* Received signalling all 1s recovered */
#define GCRV_RDMAOK  (GCRV_RESULT | 0x2E) /* Received distant multi-frame alarm recovered */
#define GCRV_CECSOK  (GCRV_RESULT | 0x2F) /* CRC4 error count saturation recovered */

#endif   /* _GCERR_H_ */

  ----------


/********************************************************************
 *  Copyright (C) 2000 Dialogic Corp.
 *  All Rights Reserved
 *
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Dialogic Corp.
 *  The copyright notice above does not evidence any actual or
 *  intended publication of such source code.
 ********************************************************************/

/********************************************************************
 *	MODULE:		dticas.h
 *	DESCRIPTION:        DTI CAS template definitions.
 *
 *	REVISION HISTORY:
 *	Who			Version		When		What
 *	Cris Ivan				1997    Initial
 *  Kamil Shahab            2000    Added support for 3 new commands
 ********************************************************************/

#ifndef __DTICAS
#define __DTICAS

typedef struct t_create_transition_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	BYTE PreTransCode;
	BYTE PostTransCode;
	WORD PreTransInterval;
	WORD PreTransIntervalNom; /* [ci]+ send template adition */
	WORD PostTransInterval;
	WORD PostTransIntervalNom; /* [ci]+ send template adition */
} DTCAS_CREATE_TRANSITION_MSG;

typedef DTCAS_CREATE_TRANSITION_MSG *P_DTCAS_CREATE_TRANSITION_MSG;

typedef struct t_create_pulse_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	BYTE OffPulseCode;
	BYTE OnPulseCode;
	WORD PrePulseInterval;
	WORD PrePulseIntervalNom; /* [ci]+ send template adition */
	WORD PulseIntervalMin;
	WORD PulseIntervalNom;
	WORD PulseIntervalMax;
	WORD PostPulseInterval;
	WORD PostPulseIntervalNom; /* [ci]+ send template adition */
} DTCAS_CREATE_PULSE_MSG;

typedef DTCAS_CREATE_PULSE_MSG *P_DTCAS_CREATE_PULSE_MSG;

typedef struct t_create_train_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	BYTE OffPulseCode;
	BYTE OnPulseCode;
	WORD PreTrainInterval;
	WORD PreTrainIntervalNom; /* [ci]+ send template adition */
	WORD PulseIntervalMin;
	WORD PulseIntervalNom;
	WORD PulseIntervalMax;
	WORD InterPulseIntervalMin;
	WORD InterPulseIntervalNom;
	WORD InterPulseIntervalMax;
	WORD PostTrainInterval;
	WORD PostTrainIntervalNom; /* [ci]+ send template adition */
} DTCAS_CREATE_TRAIN_MSG;

typedef DTCAS_CREATE_TRAIN_MSG *P_DTCAS_CREATE_TRAIN_MSG;

typedef struct t_create_reply_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	WORD result;
} DTCAS_REPLY_MSG;

typedef DTCAS_REPLY_MSG *P_DTCAS_REPLY_MSG;

typedef struct t_delete_template_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
} DTCAS_DELETE_TEMPLATE_MSG;

typedef DTCAS_DELETE_TEMPLATE_MSG *P_DTCAS_DELETE_TEMPLATE_MSG;

typedef struct t_ena_dis_template_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
} DTCAS_ENA_DIS_TEMPLATE_MSG;

typedef DTCAS_ENA_DIS_TEMPLATE_MSG *P_DTCAS_ENA_DIS_TEMPLATE_MSG;

/* Kamil Shahab(11/22/1999): Additional Structure defined to add new commands to CAS 
   management function */
typedef struct t_get_template_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
} DTCAS_GET_TEMPLATE_MSG;

typedef DTCAS_GET_TEMPLATE_MSG *P_DTCAS_GET_TEMPLATE_MSG;

typedef struct t_get_next_template_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
} DTCAS_GET_NEXT_TEMPLATE_MSG;

typedef DTCAS_GET_NEXT_TEMPLATE_MSG *P_DTCAS_GET_NEXT_TEMPLATE_MSG;

typedef struct t_clear_all_template_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
} DTCAS_CLEAR_ALL_TEMPLATE_MSG;

typedef DTCAS_CLEAR_ALL_TEMPLATE_MSG *P_DTCAS_CLEAR_ALL_TEMPLATE_MSG;

typedef struct t_get_template_reply_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	WORD result;
	union template_reply_msg {
		DTCAS_CREATE_TRANSITION_MSG   transition;
		DTCAS_CREATE_PULSE_MSG        pulse;
		DTCAS_CREATE_TRAIN_MSG        train;
    } tmplt_info;
} DTCAS_GET_TEMPLATE_REPLY_MSG;

typedef DTCAS_GET_TEMPLATE_REPLY_MSG *P_DTCAS_GET_TEMPLATE_REPLY_MSG;
/* End addition dated 1/27/2000 */

typedef struct t_detected_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	WORD result;
	WORD count;
	DWORD timestamp;
} DTCAS_DETECTED_MSG;

typedef DTCAS_DETECTED_MSG *P_DTCAS_DETECTED_MSG;

/* [ci] send template addition */
typedef struct t_transmit_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	BYTE pulse_count;
	BYTE sequence_count;
} DTCAS_TRANSMIT_MSG;

typedef DTCAS_TRANSMIT_MSG *P_DTCAS_TRANSMIT_MSG;

typedef struct t_end_transmit_msg
{
	BYTE msg_code;
	BYTE rfu;
	WORD template_id;
	BYTE pulse_count;
	BYTE sequence_count;
	DWORD timestamp;
} DTCAS_END_TRANSMIT_MSG;

typedef DTCAS_END_TRANSMIT_MSG *P_DTCAS_END_TRANSMIT_MSG;
/* [ci] send template addition */

/* Message code definitions. */

/* Commands: */
#define	DTCAS_CREATE_TRANSITION     0
#define	DTCAS_CREATE_PULSE          1
#define	DTCAS_CREATE_TRAIN          2
#define	DTCAS_DELETE_TEMPLATE       3
#define	DTCAS_ENABLE_TEMPLATE       4
#define	DTCAS_DISABLE_TEMPLATE      5
#define	DTCAS_TRANSMIT_TEMPLATE     6
#define	DTCAS_GET_TEMPLATE          7   /* Get a template definition (1/27/2000) */
#define	DTCAS_GET_NEXT_TEMPLATE     8   /* Get a definition of next template (1/27/2000) */
#define	DTCAS_CLEAR_ALL_TEMPLATE    9   /* Clear the template queue (1/27/2000) */

/* Replies: */
#define	DTCAS_CREATE_TRANSITION_COMPLETE    0
#define	DTCAS_CREATE_PULSE_COMPLETE         1
#define	DTCAS_CREATE_TRAIN_COMPLETE         2
#define	DTCAS_DELETE_TEMPLATE_COMPLETE      3
#define	DTCAS_ENABLE_TEMPLATE_COMPLETE      4
#define	DTCAS_DISABLE_TEMPLATE_COMPLETE     5
#define	DTCAS_TRANSMIT_TEMPLATE_COMPLETE    6
#define	DTCAS_GET_TEMPLATE_COMPLETE         7   /* Template definition received (1/27/2000) */
#define	DTCAS_GET_NEXT_TEMPLATE_COMPLETE    8   /* Definition of next template received (1/27/2000) */
#define	DTCAS_CLEAR_ALL_TEMPLATE_COMPLETE   9   /* Clearing template queue completed (1/27/2000) */

/*
 * Note: The result codes 1-15 are not implemented yet and are reserved for
 *       future use.
 */

/* Result Codes: */
#define	DTCAS_ERR_INTPULSEINTMIN         1  /* The minimum inter-pulse interval is invalid */
#define	DTCAS_ERR_INTPULSEINTMAX         2  /* The maximum inter-pulse interval is invalid */
#define	DTCAS_ERR_INTPULSEINTNOM         3  /* The nominal inter-pulse interval is invalid */
#define	DTCAS_ERR_POSTPULSEINT           4  /* The Post-Pulse interval is invalid */
#define	DTCAS_ERR_POSTTRAININT           5  /* The Post-Train interval is invalid */
#define	DTCAS_ERR_POSTTRANSCODE          6  /* The Post-Transition Code is invalid */
#define	DTCAS_ERR_POSTTRANSINT           7  /* The Post-Transition interval is out-of-range */
#define	DTCAS_ERR_PULSEINTMAX            8  /* The maximum pulse interval is invalid */
#define	DTCAS_ERR_PULSEINTMIN            9  /* The minimum pulse interval is invalid */
#define	DTCAS_ERR_PULSEINTNOM           10  /* The nominal pulse interval is invalid */
#define	DTCAS_ERR_PREPULSEINT           11  /* The Pre-Pulse interval is invalid */
#define	DTCAS_ERR_PRETRAININT           12  /* The Pre-Train interval is invalid. */
#define	DTCAS_ERR_PRETRANSCODE          13  /* The Pre-Transition Code is invalid */
#define	DTCAS_ERR_PRETRANSINT           14  /* The Pre-Transition interval is out-of-range */
#define	DTCAS_ERR_SIGNALENABLED         15  /* The signal is already enabled. */
#define	DTCAS_ERR_DUPLICATETEMPLATE     16  /* The duplicate template in table */
#define	DTCAS_ERR_TEMPLATETABLEFULL     17  /* The signal definition table is full */
#define	DTCAS_ERR_INVALIDSUBCOMMAND     18  /* The subcommand is invalid */
#define	DTCAS_ERR_TEMPLATENOTFOUND      19  /* The template was not found */
#define	DTCAS_OK_DUPLICATETEMPLATE      0   /* Identical template creation requested */
#define DTCAS_ERR_TEMPLATESENDSTOP      21  /* Signaling send in a template send was stopped */
#define DTCAS_ERR_TEMPLATESENDNOTDONE   22  /* Sending of a template is not finished yet */
#define	DTCAS_ERR_NEXT_TEMPLATENOTFOUND 23  /* Next template was not found (1/27/2000) */

#endif /* __DTICAS */

  ----------

/**********************************************************************
*
*	C Header:		gcmsg.h
*	Instance:		gc_1
*	Description:	Header file provides GC number-to-name transforms
*	%created_by:	seibelr %
*	%date_created:	Thu Jun 21 16:49:53 2001 %
*
**********************************************************************/
/**********************************************************************
*   Copyright (c) 2001 Dialogic Corp.
*   All Rights Reserved
*
*   THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Dialogic Corp.
*   The copyright notice above does not evidence any actual or
*   intended publication of such source code
**********************************************************************/

#ifndef _gc_1_gcmsg_h_H
#define _gc_1_gcmsg_h_H

#ifndef lint
static
#ifdef __cplusplus          
const             /* C++ needs const */     
#endif
char    *_gc_1_gcmsg_h = "@(#) %filespec: gcmsg.h-2 %  (%full_filespec: gcmsg.h-2:incl:gc#1 %)";
#endif

#ifdef __cplusplus
extern "C" {   /* C++ func bindings to enable funcs to be called from C */
#endif

/* CAUTION: in the following macro, if the event code is greater than 0x800 and less 
   than 0x900, then a GC event name is returned; otherwise, return message
   indicating that a non-GC event code was passed into the macro. */
#define GCEV_MSG(code) (((code >= 0x800) && (code < 0x900))? gcev_msg[code-0x800] : "NON-GLOBALCALL EVENT")

static
#ifdef __cplusplus          
const             /* C++ needs const */     
#endif
	char *gcev_msg[256] = { "GCEV_INVALID_0x800",
                        "GCEV_TASKFAIL",
                        "GCEV_ANSWERED",
                        "GCEV_CALLPROGRESS",
                        "GCEV_ACCEPT",
                        "GCEV_DROPCALL",
                        "GCEV_RESETLINEDEV",
                        "GCEV_CALLINFO",
                        "GCEV_REQANI",
                        "GCEV_SETCHANSTATE",
                        "GCEV_FACILITY_ACK",
                        "GCEV_FACILITY_REJ",
                        "GCEV_MOREDIGITS",
                        "GCEV_INVALID_0x80D",
                        "GCEV_SETBILLING",
                        "GCEV_ATTACH",
                        "GCEV_ATTACH_FAIL",
                        "GCEV_DETACH",
                        "GCEV_DETACH_FAIL",
                        "GCEV_MEDIA_REQ",
                        "GCEV_STOPMEDIA_REQ",
                        "GCEV_MEDIA_ACCEPT",
                        "GCEV_MEDIA_REJ",
                        "GCEV_OPENEX",
                        "GCEV_OPENEX_FAIL",
                        "GCEV_INVALID_0x819",
                        "GCEV_INVALID_0x81A",
                        "GCEV_INVALID_0x81B",
                        "GCEV_INVALID_0x81C",
                        "GCEV_INVALID_0x81D",
                        "GCEV_INVALID_0x81E",
                        "GCEV_INVALID_0x81F",
                        "GCEV_INVALID_0x820",
                        "GCEV_ALERTING",
                        "GCEV_CONNECTED",
                        "GCEV_ERROR",
                        "GCEV_OFFERED",
                        "GCEV_INVALID_0x825",
                        "GCEV_DISCONNECTED",
                        "GCEV_PROCEEDING",
                        "GCEV_PROGRESSING",
                        "GCEV_USRINFO",
                        "GCEV_FACILITY",
                        "GCEV_CONGESTION",
                        "GCEV_INVALID_0x82C",
                        "GCEV_INVALID_0x82D",
                        "GCEV_D_CHAN_STATUS",
                        "GCEV_INVALID_0x82F",
                        "GCEV_NOUSRINFOBUF",
                        "GCEV_NOFACILITYBUF",
                        "GCEV_BLOCKED",
                        "GCEV_UNBLOCKED",
                        "GCEV_ISDNMSG",
                        "GCEV_NOTIFY",
                        "GCEV_L2FRAME",
                        "GCEV_L2BFFRFULL",
                        "GCEV_L2NOBFFR",
                        "GCEV_REQMOREINFO",
                        "GCEV_CALLSTATUS",
                        "GCEV_MEDIADETECTED",
                        "GCEV_INVALID_0x83C",
                        "GCEV_INVALID_0x83D",
                        "GCEV_INVALID_0x83E",
                        "GCEV_INVALID_0x83F",
                        "GCEV_DIVERTED",
                        "GCEV_HOLDACK",
                        "GCEV_HOLDCALL",
                        "GCEV_HOLDREJ",
                        "GCEV_RETRIEVEACK",
                        "GCEV_RETRIEVECALL",
                        "GCEV_RETRIEVEREJ",
                        "GCEV_NSI",
                        "GCEV_TRANSFERACK",
                        "GCEV_TRANSFERREJ",
                        "GCEV_TRANSIT",
                        "GCEV_RESTARTFAIL",
                        "GCEV_INVALID_0x84C",
                        "GCEV_INVALID_0x84D",
                        "GCEV_INVALID_0x84E",
                        "GCEV_INVALID_0x84F",
                        "GCEV_ACKCALL",
                        "GCEV_SETUPTRANSFER",
                        "GCEV_COMPLETETRANSFER",
                        "GCEV_SWAPHOLD",
                        "GCEV_BLINDTRANSFER",
                        "GCEV_LISTEN",
                        "GCEV_UNLISTEN",
                        "GCEV_DETECTED",
                        "GCEV_FATALERROR",
                        "GCEV_RELEASECALL",
                        "GCEV_RELEASECALL_FAIL",
                        "GCEV_INVALID_0x85B",
                        "GCEV_INVALID_0x85C",
                        "GCEV_INVALID_0x85D",
                        "GCEV_INVALID_0x85E",
                        "GCEV_INVALID_0x85F",
                        "GCEV_DIALTONE",
                        "GCEV_DIALING",
                        "GCEV_ALARM",
                        "GCEV_MOREINFO",
                        "GCEV_INVALID_0x864",
                        "GCEV_SENDMOREINFO",
                        "GCEV_CALLPROC",
                        "GCEV_NODYNMEM",
                        "GCEV_EXTENSION",
                        "GCEV_INVALID_0x869",
                        "GCEV_GETCONFIGDATA",
                        "GCEV_GETCONFIGDATA_FAIL",
                        "GCEV_SETCONFIGDATA",
                        "GCEV_SETCONFIGDATA_FAIL",
                        "GCEV_SERVICEREQ",
                        "GCEV_INVALID_0x86F",
                        "GCEV_SERVICERESP",
                        "GCEV_SERVICERESPCMPLT",
                        "GCEV_INVALID_0x872",
                        "GCEV_INVALID_0x873",
                        "GCEV_INVALID_0x874",
                        "GCEV_INVALID_0x875",
                        "GCEV_INVALID_0x876",
                        "GCEV_INVALID_0x877",
                        "GCEV_INVALID_0x878",
                        "GCEV_INVALID_0x879",
                        "GCEV_INVALID_0x87A",
                        "GCEV_INVALID_0x87B",
                        "GCEV_INVALID_0x87C",
                        "GCEV_INVALID_0x87D",
                        "GCEV_INVALID_0x87E",
                        "GCEV_INVALID_0x87F",
                        "GCEV_INVALID_0x880",
                        "GCEV_INVALID_0x881",
                        "GCEV_INVALID_0x882",
                        "GCEV_INVALID_0x883",
                        "GCEV_INVALID_0x884",
                        "GCEV_INVALID_0x885",
                        "GCEV_INVALID_0x886",
                        "GCEV_INVALID_0x887",
                        "GCEV_INVALID_0x888",
                        "GCEV_INVALID_0x889",
                        "GCEV_INVALID_0x88A",
                        "GCEV_INVALID_0x88B",
                        "GCEV_INVALID_0x88C",
                        "GCEV_INVALID_0x88D",
                        "GCEV_INVALID_0x88E",
                        "GCEV_INVALID_0x88F",
                        "GCEV_INVALID_0x890",
                        "GCEV_INVALID_0x891",
                        "GCEV_INVALID_0x892",
                        "GCEV_INVALID_0x893",
                        "GCEV_INVALID_0x894",
                        "GCEV_INVALID_0x895",
                        "GCEV_INVALID_0x896",
                        "GCEV_INVALID_0x897",
                        "GCEV_INVALID_0x898",
                        "GCEV_INVALID_0x899",
                        "GCEV_INVALID_0x89A",
                        "GCEV_INVALID_0x89B",
                        "GCEV_INVALID_0x89C",
                        "GCEV_INVALID_0x89D",
                        "GCEV_INVALID_0x89E",
                        "GCEV_INVALID_0x89F",
                        "GCEV_INVALID_0x8A0",
                        "GCEV_INVALID_0x8A1",
                        "GCEV_INVALID_0x8A2",
                        "GCEV_INVALID_0x8A3",
                        "GCEV_INVALID_0x8A4",
                        "GCEV_INVALID_0x8A5",
                        "GCEV_INVALID_0x8A6",
                        "GCEV_INVALID_0x8A7",
                        "GCEV_INVALID_0x8A8",
                        "GCEV_INVALID_0x8A9",
                        "GCEV_INVALID_0x8AA",
                        "GCEV_INVALID_0x8AB",
                        "GCEV_INVALID_0x8AC",
                        "GCEV_INVALID_0x8AD",
                        "GCEV_INVALID_0x8AE",
                        "GCEV_INVALID_0x8AF",
                        "GCEV_INVALID_0x8B0",
                        "GCEV_INVALID_0x8B1",
                        "GCEV_INVALID_0x8B2",
                        "GCEV_INVALID_0x8B3",
                        "GCEV_INVALID_0x8B4",
                        "GCEV_INVALID_0x8B5",
                        "GCEV_INVALID_0x8B6",
                        "GCEV_INVALID_0x8B7",
                        "GCEV_INVALID_0x8B8",
                        "GCEV_INVALID_0x8B9",
                        "GCEV_INVALID_0x8BA",
                        "GCEV_INVALID_0x8BB",
                        "GCEV_INVALID_0x8BC",
                        "GCEV_INVALID_0x8BD",
                        "GCEV_INVALID_0x8BE",
                        "GCEV_INVALID_0x8BF",
                        "GCEV_INVALID_0x8C0",
                        "GCEV_INVALID_0x8C1",
                        "GCEV_INVALID_0x8C2",
                        "GCEV_INVALID_0x8C3",
                        "GCEV_INVALID_0x8C4",
                        "GCEV_INVALID_0x8C5",
                        "GCEV_INVALID_0x8C6",
                        "GCEV_INVALID_0x8C7",
                        "GCEV_INVALID_0x8C8",
                        "GCEV_INVALID_0x8C9",
                        "GCEV_INVALID_0x8CA",
                        "GCEV_INVALID_0x8CB",
                        "GCEV_INVALID_0x8CC",
                        "GCEV_INVALID_0x8CD",
                        "GCEV_INVALID_0x8CE",
                        "GCEV_INVALID_0x8CF",
                        "GCEV_INVALID_0x8D0",
                        "GCEV_INVALID_0x8D1",
                        "GCEV_INVALID_0x8D2",
                        "GCEV_INVALID_0x8D3",
                        "GCEV_INVALID_0x8D4",
                        "GCEV_INVALID_0x8D5",
                        "GCEV_INVALID_0x8D6",
                        "GCEV_INVALID_0x8D7",
                        "GCEV_INVALID_0x8D8",
                        "GCEV_INVALID_0x8D9",
                        "GCEV_INVALID_0x8DA",
                        "GCEV_INVALID_0x8DB",
                        "GCEV_INVALID_0x8DC",
                        "GCEV_INVALID_0x8DD",
                        "GCEV_INVALID_0x8DE",
                        "GCEV_INVALID_0x8DF",
                        "GCEV_INVALID_0x8E0",
                        "GCEV_INVALID_0x8E1",
                        "GCEV_INVALID_0x8E2",
                        "GCEV_INVALID_0x8E3",
                        "GCEV_INVALID_0x8E4",
                        "GCEV_INVALID_0x8E5",
                        "GCEV_INVALID_0x8E6",
                        "GCEV_INVALID_0x8E7",
                        "GCEV_INVALID_0x8E8",
                        "GCEV_INVALID_0x8E9",
                        "GCEV_INVALID_0x8EA",
                        "GCEV_INVALID_0x8EB",
                        "GCEV_INVALID_0x8EC",
                        "GCEV_INVALID_0x8ED",
                        "GCEV_INVALID_0x8EE",
                        "GCEV_INVALID_0x8EF",
                        "GCEV_INVALID_0x8F0",
                        "GCEV_INVALID_0x8F1",
                        "GCEV_INVALID_0x8F2",
                        "GCEV_INVALID_0x8F3",
                        "GCEV_INVALID_0x8F4",
                        "GCEV_INVALID_0x8F5",
                        "GCEV_INVALID_0x8F6",
                        "GCEV_INVALID_0x8F7",
                        "GCEV_INVALID_0x8F8",
                        "GCEV_INVALID_0x8F9",
                        "GCEV_INVALID_0x8FA",
                        "GCEV_INVALID_0x8FB",
                        "GCEV_INVALID_0x8FC",
                        "GCEV_INVALID_0x8FD",
                        "GCEV_INVALID_0x8FE",
                        "GCEV_FACILITYREQ"
};

#ifdef __cplusplus
}
#endif

#endif  /* _gc_1_gcmsg_h_H */


[Non-text portions of this message have been removed]






 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/Delphi-JEDI/

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/