📄 tdi.h
字号:
} TDIIPAddr_t;
typedef struct
{
LoginID_t loginID; /* Login for this session */
AppName_t appName; /* Application name for this session */
LoginTime_t timeOpened; /* Time the ACS stream was opened */
char homeDeviceID[16]; /* Primary device ID of Home
* WorkTop record
*/
char awayDeviceID[16]; /* Primary device ID of Away Worktop
* record.
*/
unsigned short transportType; /* Transport type (see below) */
union {
char pad[32]; /* struct padding */
TDISPXAddr_t spxAddress; /* SPX/IPX address */
TDIIPAddr_t ipAddress; /* IP address */
} address;
} TDISessionInfo_t;
/* defines for transportType field */
#define TDI_SPX_IPX 1 /* SPX/IPX transport */
#define TDI_TCP_IP 2 /* TCP/IP transport */
typedef struct SetFlowControl_t {
char alternateCall;
char answerCall;
char callCompletion;
char clearCall;
char clearConnection;
char conferenceCall;
char consultationCall;
char deflectCall;
char pickupCall;
char groupPickupCall;
char holdCall;
char makeCall;
char makePredictiveCall;
char queryMwi;
char queryDnd;
char queryFwd;
char queryAgentState;
char queryLastNumber;
char queryDeviceInfo;
char reconnectCall;
char retrieveCall;
char setMwi;
char setDnd;
char setFwd;
char setAgentState;
char transferCall;
char eventReport;
char routeRegister;
char routeRegisterCancel;
char reRoute;
char routeSelect;
char monitorDevice;
char monitorCall;
char monitorCallsViaDevice;
char changeMonitorFilter;
char monitorStop;
char monitorEnded;
char snapshotDeviceReq;
char snapshotCallReq;
char escapeService;
char escapeServiceConf;
char sysStatReq;
char sysStatStart;
char sysStatStop;
char sysStatFilter;
char changeSysStatFilter;
char sysStatReqConf;
char acsOpenStream;
} SetFlowControl_t;
#pragma pack (4)
typedef struct TdiAbout_t
{
char aboutVer[20]; /* Module version */
char aboutString[40]; /* Module name */
} TdiAbout_t;
#pragma pack ()
#ifdef __cplusplus
extern "C" {
#endif
/*
* FUNCTION PROTOTYPES
*/
TDILIBAPI TDIHandle_t tdiDriverRegister(
const char *service_name, /* INPUT */
const char *driver_name, /* INPUT */
int service_type, /* INPUT */
TDIProtocol_t protocol_descriptor, /* INPUT */
const char *vendor_name, /* INPUT */
const TDIVersion_t version, /* INPUT */
TDISecurity_t driver_security, /* INPUT */
const TDIBuf_info_t *buffer_descriptor); /* INPUT */
TDILIBAPI TDIReturn_t tdiDriverUnregister (
TDIHandle_t driverID); /* INPUT */
TDILIBAPI TDIReturn_t tdiAllocBuffer (
TDIHandle_t driverID, /* INPUT */
char **bufptr, /* OUTPUT */
unsigned int length, /* INPUT */
TDIBuf_flag_t *buf_flag); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiFreeBuffer (
TDIHandle_t driverID, /* INPUT */
char *bufptr); /* INPUT */
TDILIBAPI TDIReturn_t tdiReceiveFromTserver(
TDIHandle_t driverID, /* INPUT */
char **bufptr); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiSendToTserver(
TDIHandle_t driverID, /* INPUT */
char *bufptr, /* INPUT */
TDIPriority_t priority); /* INPUT */
TDILIBAPI TDIReturn_t tdiQueueSize (
TDIHandle_t driverID, /* INPUT */
TDIQueue_info_t *queue_descriptor); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiGetTDISize (
TDIHandle_t driverID, /* INPUT */
TDIBuf_info_t *buffer_descriptor); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiMemAllocSize (
TDIHandle_t driverID, /* INPUT */
TDIMemAlloc_info_t *mem_descriptor); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiDriverSanity (
TDIHandle_t driverID); /* INPUT */
TDILIBAPI TDIReturn_t tdiGetSessionIDInfo (
TDIHandle_t driverID, /* INPUT */
SessionID_t sessionID, /* INPUT */
TDISessionID_t *sessionIDInfo);/* OUTPUT */
TDILIBAPI TDIReturn_t tdiGetSessionInformation (
TDIHandle_t driverID, /* INPUT */
SessionID_t sessionID, /* INPUT */
TDISessionInfo_t *sessionInfo); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiMapInvokeID(
TDIHandle_t driverID, /* INPUT */
SessionID_t sessionID, /* INPUT */
InvokeID_t invokeID, /* INPUT */
InvokeID_t *appInvokeID); /* OUTPUT */
TDILIBAPI TDIReturn_t tdiSetMessageFlowControl(
TDIHandle_t driverID, /* INPUT */
short int msgLevel, /* INPUT */
SetFlowControl_t *cstaMsgs); /* INPUT */
TDILIBAPI TDIReturn_t tdiGetMessageFlowControl(
TDIHandle_t driverID, /* INPUT */
short int *msgLevel, /* INPUT */
SetFlowControl_t *cstaMsgs); /* INPUT */
TDILIBAPI TDIReturn_t tdiGetTservVersion(
char *customer_version, /* OUTPUT */
char *internal_version, /* OUTPUT */
TDIVersion_t tsdi_version, /* OUTPUT */
int service_type, /* INPUT */
TDIProtocol_t *protocol_version); /* OUTPUT */
typedef void (*TrafficMeasCB) (TDIHandle_t driverID, int cbParam);
TDILIBAPI TDIReturn_t tdiTrafficRegister(
TDIHandle_t driverID, /* INPUT */
TDITrafficType_t trafficType, /* INPUT */
TrafficMeasCB callback ); /* INPUT */
TDILIBAPI TDIReturn_t tdiTrafficReport(
TDIHandle_t driverID, /* INPUT */
TDITrafficType_t trafficType, /* INPUT */
TDIStatType_t statType, /* INPUT */
TDIStatValue_t statValue ); /* INPUT */
TDILIBAPI TDIReturn_t tdiTrafficUnregister (
TDIHandle_t driverID, /* INPUT */
TDITrafficType_t trafficType); /* INPUT */
TDILIBAPI TDIReturn_t tdiGetAboutInfo(TdiAbout_t *tdiAbout);
TDILIBAPI char* tdiGetPDUName(EventClass_t msgClass,EventType_t msgType);
#ifdef _WINNT_NTS_
/* This API only applies to the Windows NT platform */
TDILIBAPI TDIReturn_t tdiDriverUnload(const char *driverName);
#endif
/*
* Error Levels used by tdiLogError
*/
#undef TRACE
#undef ERROR
typedef enum error_level {
TRACE = 0x1, /* trace message for debugging */
CAUTION = 0x2, /* unexpected software error (non-fatal) */
AUDIT_TRAIL = 0x4, /* important (normal) event */
WARNING = 0x8, /* non-service-affecting condition */
ERROR = 0x10, /* non-fatal, service-affecting condition */
FATAL = 0x20, /* FATAL condition (calling module aborting) */
/* FORCE_PRINTF is only used in the NetWare target */
FORCE_PRINTF = 0x80, /* If or'd in with one of the other levels,
* forces a ConsolePrintf regardless of how
* the system errlog settings are
*/
FORCE_LOG = 0x100 /* Force the message into the error log
* regardless of the system error log settings.
*/
} ElogLevel_t;
typedef enum error_level ElogLevelMask_t;
typedef int ElogDestMask_t;
TDILIBAPI void tdiLogError(
const char *module, /* I - module name */
ElogLevel_t level, /* I - TRACE, ERROR, FATAL,...*/
int location_code, /* I - unique location number */
int error_code, /* I - error code */
const char *format, /* I - printf style format */
... /* I - optional arguments
* (0 or more) */
);
#ifdef __cplusplus
}
#endif
/* Driver Service Type - passed in tdiDriverRegister() */
#define TDI_ST_OAM 1
#define TDI_ST_CSTA 2
#define TDI_ST_SIM 3
#define TDI_ST_NMSRV 4
#define TDI_ST_TSRVOAM 5
#define TDI_ST_CSRVOAM 6
#define TDI_ST_SDBADMIN 7
#define CS_HOME_WORKTOP 1
#define CS_DEVICE_DEVICE 2
#define CS_DEVICE_CALL 3
#define CS_CALL_CALL 4
#define CS_CONTROL 5
#define CS_ROUTE 6
/* Driver Control Block Structure */
typedef struct {
unsigned short messageOffset;
unsigned short messageLength;
unsigned short privateOffset;
unsigned short privateLength;
InvokeID_t invokeID;
CSTAMonitorCrossRefID_t monitorCrossRefID;
SessionID_t sessionID;
EventClass_t messageClass;
EventType_t messageType;
short class_of_service;
} TDIDriverControlBlock_t;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -