📄 tvcdrvapi.h
字号:
#ifndef _TVC_DRVAPI_H_
#define _TVC_DRVAPI_H_
#ifndef WIN32
#ifndef OS_LINUX
#ifndef TYPEDEF_H
#define TYPEDEF_H
typedef char CHAR;
typedef float FLOAT;
typedef int BOOL;
typedef int INT;
typedef long LONG;
typedef unsigned char BYTE;
typedef unsigned char UCHAR;
typedef unsigned int UINT;
typedef unsigned long DWORD;
typedef unsigned long ULONG;
typedef unsigned short USHORT;
typedef unsigned short WORD;
typedef BOOL *LPBOOL;
typedef BYTE *LPBYTE;
typedef BYTE *PBYTE;
typedef CHAR *LPSTR;
typedef CHAR *LPTSTR;
typedef CHAR *PCHAR;
typedef DWORD *LPDWORD;
typedef DWORD *PDWORD;
typedef WORD *LPWORD;
typedef WORD *PWORD;
typedef UCHAR *PUCHAR;
typedef long *LPLONG;
typedef long *PLONG;
typedef void *LPVOID;
typedef const CHAR *LPCSTR;
typedef const CHAR *LPCTSTR;
typedef const void *LPCVOID;
#endif
#endif
#endif
#ifndef WINAPI
#define WINAPI __stdcall
#endif
typedef void (CALLBACK* WAITDTMFPROC)(int ch,char *szWaitStr,int nWaitEndResult,char *szRxDtmfStr);
typedef void (CALLBACK* DUALBUFFRECORDPROC)(int ch,UCHAR ucRecStopReason,LPBYTE pBuff,DWORD dwBytes,PVOID pParam);
// 会议属性
//////////////////////////////////////////////////////////////////////////
#define CONF_ATTRIB_DTMFNOTONBUS 0x00000001 // 成员通道按键音是否上总线
#define CONF_ATTRIB_TONENOTONBUS 0x00000002 // 成员通道信号音是否上总线
//////////////////////////////////////////////////////////////////////////
// 通道标志
#define CH_FLAG_DTMFSTOPPLAY 0x00000001 // 有DTMF时停止放音
#define CH_FLAG_DTMFSTOPSENDTONE 0x00000002 // 有DTMF时停止发送信号音
#define CH_FLAG_HANGUPSTOPPLAY 0x00000004 // 挂机时停止放音
#define CH_FLAG_BARGEINSTOPPLAY 0x00000008 // 有人说话时停止放音
#define CH_FLAG_AUTOSENDDIALTONE 0x00000010 // 坐席通道摘机时是否自动发送拨号音
#define CH_FLAG_PLAYTOBUS 0x00000040 //放音是否上总线
//////////////////////////////////////////////////////////////////////////
enum{
plyrec_always,
plyrec_stopbytime,
plyrec_stopbybyte,
};
enum _CH_TYPE_{
ANALOG_REC = 0,
ANALOG_USER = 1,
ANALOG_TRK = 2,
DIGITAL_SS1 = 3,
DIGITAL_ISDNU = 4,
DIGITAL_ISDNN = 5,
DIGITAL_SS7TUP = 6,
DIGITAL_SS7ISUP = 7,
DIGITAL_NOSIG = 8,
EX_SOFTFAX = 0x80, //外部的传真通道
CH_NULL = 0xff,
};
enum _TONE_TYPE_{
DIAL_TONE=0, // 0: 拨号音;
BUSY_TONE,
ECHO_TONE,
HANG_TONE,
USER_SELF_TONE=0xff,
};
enum _CH_STATE_{
ch_free=0x0, // 空闲
ch_pickuped, // 摘机
ch_talking, // 通话
ch_ringing, // 振铃
ch_empty, // 断线
ch_wait_talk, // 等对方摘机
ch_dialout, // 外拨拨号
ch_dialfail, // 外拨失败
ch_callin, // 数字通道有呼入
ch_waithangup, // 数字通道等待挂机
ch_waitrelease, // 数字通道等待释放
ch_localblock, // 本地闭塞
ch_remoteblock, // 远方闭塞
ch_tup_reset, //电路复位
};
enum DIAL_STEP{
adial_silence=0x100, //无声
adial_silnceafterecho, //回铃后无声
adial_busy, //对方忙
adial_nodialtone, //没有拨号音
adial_timeout, //拨号超时
adial_nobody, //无人接听
adial_unavailable,
adial_signal_error, //收到未定义的信号
adial_remote_refuse, //呼出时对方挂机
adial_code_empty, //空号
adial_pbx_busy, //一号信令中的机键拥塞 ,ISND表示网络忙,TUP中表示交换机忙
adial_ss1_mfc_timeout=0x180, //MFC互控超时
adial_ss1_waitack_timeout, //等待对端应答超时
adial_tup_waitack_timeout=0x1a0,
adial_tup_cicgroup_busy,
adial_tup_adail_fial, //其它原因的呼叫失败
adial_tup_cic_blo,
adial_tup_cic_rsc, //电路复原信号
};
// 等待挂机原因
enum WAIT_HANGUP_REASON{
WH_NULL,
WH_Busy, // 忙音
WH_CallerHangupWhenTalking, // 通话中主叫挂机
WH_CalleeHangupWhenTalking, // SS7 通话中被叫挂机
WH_ChNotAvailable, //通道不可用
WH_NetTimeout,
WH_RelTimeout,
WR_ConTimeout,
};
// 主叫接收模式
enum{
DTMF_MODE,
FSK_MODE,
AUTO_MODE,
};
// 通道加入电话会议的模式
enum CONF_MODE{
CONF_SPEAK_ALWAYS, // 总是具有发言权
CONF_SPEAK_DYNAMIC, // 具有动态发言权
CONF_SPEAK_ONLY, // 只有发言权,听不到其他通道的声音,用于对会议放音
CONF_LISTEN, // 没有发言权(听众)
CONF_SPEAK_DTMF, // 按键发言
CONF_MAXMODE,
};
typedef struct _API_SYSTEM_INFO_{
short wTotalCh;
unsigned char ucMaxCfgBoard;
unsigned char ucMaxUseableBoard;
short wVerMajor; // 主版本号
short wVerMinor; // 辅版本号
}APISYSTEMINFO,*PAPISYSTEMINFO;
typedef struct _API_BOARD_INFO_{
unsigned short ucBoardModel; // 板卡类型
short wAccreditId; // 客户ID
short wChunnelOnBoard; // 板卡上的总数
unsigned long uBoardSerial; // 序列号
char szBoardSerial[9]; // 板卡序列号
}APIBOARDINFO,*PAPIBOARDINFO;
typedef struct {
UCHAR mask; // 0--一直录音,1--时间为准,2--字节为准
int dwRecStopTime; // 单位字节
int dwRecStopBytes; // 音位毫秒
UCHAR ucRecFormat; // 录音格式
UCHAR ucWaveFileHead; // 录音文件是否要WAVE HEAD
UCHAR ucStopRecWhenHangUp; // 当挂机时自动停止录音
UCHAR ucRecVol; // 录音音量
}RECORDCONFIG,*PRECORDCONFIG;
enum{
V08PCI=0x100,
V16PCI=0x200,
V30PCI=0x300,
V30PCI_SS1=0x320,
V30PCI_ISDN=0x360,
V30PCI_SS7=0x380,
V60PCI=0x400,
V60PCI_SS1=0x420,
V60PCI_ISDN=0x460,
V60PCI_SS7=0x480,
V120PCI=0x500,
V120PCI_SS1=0x520,
V120PCI_ISDN=0x560,
V120PCI_SS7=0x580,
};
int WINAPI TvcLoadDrv(char *szIniFile,char *szIndexFile);
void WINAPI TvcFreeDrv(void);
int WINAPI TvcGetBoardInfo(int nBoardId,PAPIBOARDINFO pInfo);
int WINAPI TvcGetDrvInfo(PAPISYSTEMINFO pInfo);
int WINAPI TvcGetChType(int ch);
int WINAPI TvcGetDtmfStr(int ch,PUCHAR pucDtmf,int Wanted ,UCHAR bisClr);
int WINAPI TvcClrRxDtmfBuf(int ch);
int WINAPI TvcCheckTxDtmf(int ch);
int WINAPI TvcStopTxDtmf(int ch);
int WINAPI TvcStartTxDtmf(int ch,char *szDtmf);
int WINAPI TvcSetTxDtmfPara(int ch,int iOnTime,int iOffTime);
int WINAPI TvcGetTxDtmfPara(int ch,int *iOnTime,int *iOffTime);
int WINAPI TvcSetRxDtmfDWLDT(int ch,UCHAR bDisplay);
int WINAPI TvcSetRxDtmfIsOmitABCD(int ch,UCHAR bisOmit);
int WINAPI TvcSetRxDtmfSensitive(int ch,int wLevel);
int WINAPI TvcSetTxTonePara(int ch,int wFreq1,int wFreq2);
int WINAPI TvcStopSendTone(int ch);
int WINAPI TvcStartSendTone(int ch,int nToneType,int OnTime,int OffTime);
int WINAPI TvcGetBusyCount(int ch);
int WINAPI TvcGetEchoCount(int ch);
int WINAPI TvcSetRxToneFreqPara(int ch,int wFreq1,int wFreq2,int wBand1,int wBand2,int wRatio);
int WINAPI TvcSetBusyToneTimePara(int ch,int TimePeriod);
int WINAPI TvcSetEchoToneTimePara(int ch,int OnTime,int OffTime);
int WINAPI TvcClearBusyCount(int ch);
int WINAPI TvcClearEchoCount(int ch);
int WINAPI TvcGetBusyTime(int ch);
int WINAPI TvcGetEchoTime(int ch);
int WINAPI TvcPickUp(int ch);
int WINAPI TvcHangUp(int ch);
int WINAPI TvcGetChState(int ch);
int WINAPI TvcGetCallDirection(int ch);
int WINAPI TvcGetRingCount(int ch);
int WINAPI TvcGetRingDT(int ch);
int WINAPI TvcClearRingCount(int ch);
int WINAPI TvcGetChStateKeepTime(int ch);
int WINAPI TvcIsBargeIn(int ch);
int WINAPI TvcIsSound(int ch);
int WINAPI TvcGetNoSoundTime(int ch);
int WINAPI TvcGetNoSoundDtrTime(int ch);
int WINAPI TvcSetNoSoundDtrTime(int ch,int NoSoundTime);
int WINAPI TvcSetBargeInSensitive(int ch,int Sensitive);
int WINAPI TvcGetPolarCount(int ch);
int WINAPI TvcClearPolarCount(int ch);
int WINAPI TvcGetPolarState(int ch);
int WINAPI TvcSetPickupDtmrVoltage(int ch,int Voltage);
int WINAPI TvcSetOfflineDtmrVoltage(int ch,int Voltage);
int WINAPI TvcGetOfflineDtmrVoltage(int ch);
int WINAPI TvcGetPickUpDtmrVoltage(int ch);
int WINAPI TvcGetLineVoltage(int ch);
int WINAPI TvcSetIsIgnoreVoltage(int ch,UCHAR ucIsIgnore);
int WINAPI TvcGetCallerId(int ch,char *szBuf,int want);
int WINAPI TvcGetCallerIdLen(int ch);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -