?? 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* EVENTCALLBACKPROC)(WORD wEvent, int nReference, DWORD dwParam);
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);
typedef void (CALLBACK* TVCRECMEMPROC) (int ch, LPBYTE lpData, DWORD dwDataLen) ;
// 會議屬性
//////////////////////////////////////////////////////////////////////////
#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 //放音是否上總線
#define CH_FLAG_HANGUPSTOPREC 0x00000080 //掛機時停止錄音
//////////////////////////////////////////////////////////////////////////
//----------------------------------------事件輪詢BG------------------------------//
enum{
APIPcm_NOSIG=0,
APIPcm_SS1,
APIPcm_ISDNU,
APIPcm_ISDNN,
APIPcm_TUP,
APIPcm_ISUP
};
enum
{
NO_EVENT, // 無事件方式
EVENT_POLLING, //事件輪詢
EVENT_CALLBACK, //事件回調
EVENT_MESSAGE //windows消息
};
typedef struct {
DWORD dwWorkMode;
LPVOID lpHandlerParam;
DWORD dwOutCondition;
DWORD dwOutParamVal;
}EVENT_SET,*PEVENT_SET;
typedef struct{
WORD wEventCode; //事件代碼
int nReference; //通道號(...)
DWORD dwParam; //通道狀態.輸出參數(...)
}TVCEVENTMSG,*PTVCEVENTMSG;
//
////過濾事件隊列
//typedef struct {
// TVCEVENTMSG TvcMsg;
// bool bEnable;
//}FILTEREVENT,*PFILTEREVENT;
//主要事件
enum
{
//Dtmf接收
TvcE_Dtmf_Geted=0x0000, //Dtmf字符接收緩沖寫入了新的Dtmf字符
TvcE_WaitDtmf_End=0x0001, //接收指定Dtmf字符串的任務結束
//Dtmf發送
TvcE_SendDtmf_End=0x0002, //發送Dtmf任務結束
//發送閃斷
TvcE_SendFlash_End=0x0003, //發送閃斷任務結束事件
//放音
TvcE_Play_End=0x0004, //放音任務結束
//錄音
TvcE_Record_End=0x0005, //錄音任務結束
//FSK發送
TvcE_SendFSK_End=0x0006, //發送FSK任務結束事件
TvcE_LineVoltage_Changed=0x0007, //線路電壓變化
//呼叫控制
TvcE_ChState_Changed=0x0008, //道狀態發生變化
TvcE_RingDt_Changed=0x0009, //鈴流電平變化
TvcE_RingCount_Changed=0x000a, //振鈴計數變化
TvcE_CallerID_Geted=0x000b, //接收主叫號碼
TvcE_CalleeID_Geted=0x000c, //被叫號碼變化
TvcE_Remote_Pickup=0x000d, //模擬電話線相對能量算法檢測被叫摘機
//坐席
TvcE_FlashCount_Changed=0x000e, //flash計數發生變化
TvcE_HookState_Changed=0x000f, //內線Hook(摘機、掛機)狀態發生變化
//信號音檢測
TvcE_BusyTone_Changed=0x0010, //忙音計數變化
TvcE_EchoTone_Changed=0x0011, //檢測到一個完整的回鈴音周期
TvcE_DialTone_Detected=0x0012, //發現撥號音
TvcE_BargeIn_Detected=0x0013, //檢測到BargeIn(檢測到 BargeIn TvcGetNoSoundTime 將重新計數)
TvcE_NoSound_Found=0x0014, //檢測到線路無聲
TvcE_SpecFreq_Found=0x0015, //指定檢測的頻率發現
TvcE_Last_Api_Event=0x0100,
};
//----------------------------------------事件輪詢ED------------------------------//
enum{
plyrec_always,
plyrec_stopbytime,
plyrec_stopbybyte,
};
enum
{
tvc_voc_alaw = 0x1,
tvc_voc_ulaw = 0x2,
tvc_voc_adpcm = 0x4,
tvc_voc_pcm16 = 0x5, //線性16位語音格式
tvc_voc_pcm8 = 0x6, //線性8位語音格式
tvc_voc_gsm = 0x31,
};
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, //電路復位
ch_waitappset, //等等待應用程序設置KB
};
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_cgc,
adial_tup_adail_fial, //其它原因的呼叫失敗
adial_tup_blo,
adial_tup_rsc, //電路復原信號
adial_tup_stb, //用戶長話忙
adial_tup_slb, //用戶市話忙
adial_tup_sec, //機鍵擁塞
adial_tup_unn, //空號
adial_tup_adi, //地址消息不全
adial_tup_los, //LOS
adial_tup_acb, //
adial_tup_noreply,
};
// 等待掛機原因
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,
V08BPCI=0x180,
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);
int WINAPI TvcLoadDrvA();
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);
int WINAPI TvcClrCallerIdBuf(int ch);
int WINAPI TvcSetCIDMode(int ch ,int Mode);
int WINAPI TvcSetLocalVol(int nBoard,int Vol);
int WINAPI TvcSetPreRecordPara(int ch,UCHAR nRecType,UCHAR nVol,int dwTime );
int WINAPI TvcCheckRecord(int ch);
int WINAPI TvcStopRecord(int ch);
int WINAPI TvcStartFileRecord(int ch,char *szMasterFile,char *szSlaveFile);
int WINAPI TvcSetRecordPara(int ch,PRECORDCONFIG Rec);
int WINAPI TvcPauseRecord(int ch);
int WINAPI TvcRestartRecord(int ch);
int WINAPI TvcGetRecordTime(int ch);
int WINAPI TvcGetRecordBytes(int ch);
int WINAPI TvcSetRecAgc(int ch,UCHAR ucEnable);
int WINAPI TvcStartMemoryRecord(int ch,char *pBuf,int BlockSize,int StartOffset,int StopBytes);
int WINAPI TvcGetRecordOffset(int ch);
int WINAPI TvcStartFileRecordA(int ch,char *szMasterFile,char *szSlaveFile, int nRecFormat,DWORD dwStopBytes,DWORD dwStoptime,int nMask);
int WINAPI TvcSetRecVol(int ch,int Vol);
int WINAPI TvcSetDefaultRecFormat(int ch,int nFormat);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -