?? usbid.~pas
字號:
//=================================================
// name : usbid.pas
// copyright : quanova corporation
// date : 2004.5.13
//
// date comment ver
// 2004.5.13 create 1.00
//=================================================
unit usbid;
interface
uses
Windows;
const MAX_PLAYBUFSIZE = 4096; // 播放緩沖時的最大值
const MaxDataLen = 46;
type
EDATA= record
Result: longint;
Buf: Array[1..MaxDataLen] of Char;
end;
type
Event = record
EventType: longint; // Type of Event
Data : EDATA;
end;
type PEvent = ^Event;
//
// Event Define
// 事件類型定義.同步與系統發出的消息,請選擇其中一種方式處理
//
const TEvent_InterOffHook = 0 // 本地電話機摘機事件
//TV_Event.data.ptrData='1' 為一聲震鈴結束
//其它為開始震鈴
const TEvent_Ring = 3 // 某一外線通道振鈴事件
const TEvent_DialEnd = 4 // 撥號結束事件
const TEvent_PlayEnd = 5 // 放音結束事件
const TEvent_Silence = 9 //通話是一定時間的靜音.默認為5秒
const TEvent_GetChar = 10 // 收到DTMF碼事件
const TEvent_OffHook = 11 // 撥號后,被叫方摘機事件
const TEvent_HangUp = 12 // 掛機事件
const TEvent_Nobody = 13 // 撥號后,沒人接聽事件
const TEvent_Busy = 14 // 檢測到忙音事件
const TEvent_InterHangUp = 19 // 本地電話機掛機
const TEvent_Dial = 28 //檢測到撥號音
const TEvent_TelDial = 29 //檢測到話機撥號DTMF碼
const TEvent_GetFsk = 30 //得到FSK來電
const TEvent_StopCallIn = 31 //對方停止呼叫,(產生一個未接電話)
const TEvent_GetDTMF = 32 //得到DTMF碼來電
const TEvent_TelCallOut = 33 //電話機呼出。也就電話機撥號后聽到回鈴音
const TEvent_PlugOut = 36 //電話伴侶設備被拔掉
const TEvent_PlugIn = 37 //電話伴侶設備插入
const TEvent_RecordError = 38 //錄音發生錯誤(建議重新初始化設備)
const TEvent_PlayError = 39 //播放錯誤(建議重新初始化設備)
const TEvent_GetDTMFTimeOut = 40 //接收DTMF來電超時(未震鈴)。
const TEvent_MicIn = 41 //MIC插入狀態
const TEvent_MicOut = 42 //MIC拔出狀態
// api
const DLLNAME = 'TmA4Drv.dll';
//設備啟動關閉
function TV_Initialize(): longint; stdcall; External DLLNAME; //初始化系統中所有的 USBID 電話卡return 0 is ok
function TV_Disable(): longint; stdcall; External DLLNAME; //禁止 USBID 工作
function TV_StartDial(code: String; st: Boolean): longint; stdcall; External DLLNAME;
function TV_StopDial(): longint; stdcall; External DLLNAME;
//獲取事件
function TV_GetEvent(TV_Event: Pevent): longint; stdcall; External DLLNAME;
//摘掛機
procedure TV_OffHookCtrl(); stdcall; External DLLNAME;
procedure TV_HangUpCtrl(); stdcall; External DLLNAME;
procedure TV_OpenLinePlay(); stdcall; External DLLNAME;
//錄音
function TV_StartRecordFile(fp: String;seek: longint;num: longint):longint;stdcall;External DLLNAME;
function TV_StopRecordFile(ldevid:longint;bclearbusy:Boolean): longint; stdcall; External DLLNAME;
//放音
function TV_StartPlayFile(fp:String;lseek:longint;lmaxnum:longint;bopenplay:Boolean;breplay:Boolean;bsetvolume:Boolean;lTime:longint):longint; stdcall; External DLLNAME;
function TV_StopPlayFile(ldevid:longint): longint; stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_GetInitState
//
// Description: 取得初始化狀態
//
// Inputs: 無
//
// Return:
// TRUE: 初始化設備成功
// FALSE: 初始化設備失敗
// Notes:
//
//////////////////////////////////////////////////////////////////////////
function TV_GetInitState (): Boolean; stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_EnableTel
//
// Description: 控制本地話機是否可用
//
// Inputs:
// TRUE: 本地話機可用
// FALSE: 本地話機不可用
//
// Return: 無
//
// Notes: 本地話機不可用時,不能進行摘掛機,不能進行通話。
// 此狀態將一直保持。
//
//////////////////////////////////////////////////////////////////////////
procedure TV_EnableRing(bEnable:Boolean); stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_IsTelEnable
//
// Description: 本地話機是否可用
//
// Inputs: 無
//
// Return:
// TRUE: 本地話機可用
// FALSE: 本地話機不可用
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
function TV_IsRingEnable():Boolean ; stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_GetTelState
//
// Description: 本地話機摘掛機狀態
//
// Inputs: 無
//
// Return:
// TRUE: 本地話機處于摘機狀態
// FALSE: 本地話機處于掛機狀態
//
// Notes: 區別與系統摘機,兩種不同的摘機方式,互相不影響.
// 只要有一個處于摘機狀態,電話線就處于摘機狀態。
// 可以兩個同時摘機進行通話.
//
//////////////////////////////////////////////////////////////////////////
function TV_GetTelState():Boolean ; stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_GetPcState
//
// Description: 系統摘掛機狀態
//
// Inputs: 無
//
// Return:
// TRUE: 處于摘機狀態
// FALSE: 處于掛機狀態
//
// Notes: 區別與話機摘機,兩種不同的摘機方式,互相不影響.
// 只要有一個處于摘機狀態,電話線就處于摘機狀態。
// 可以兩個同時摘機進行通話.
//
//////////////////////////////////////////////////////////////////////////
function TV_GetPcState():Boolean ; stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_CheckDialSignal
//
// Description: 是否檢測到撥號音
//
// Inputs: 無
//
// Return:
// TRUE: 檢測到撥號音
// FALSE: 沒有檢測到撥號音
//
// Notes: 在呼叫前先檢測撥號音能更準確的呼叫。
// 如果不能檢測撥號音,請檢測設置的頻率是否正確。
//
//////////////////////////////////////////////////////////////////////////
function TV_CheckDialSignal():Boolean ; stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetBusyNum
//
// Description: 設置來檢測的忙音個數
//
// Inputs:
// iBusyNum: 忙音個數(2-4)
//
// Return:
//
// Notes:
// 如果不容易檢測到忙音,請減少忙音個數。
//
//////////////////////////////////////////////////////////////////////////
procedure TV_SetBusyNum(ibusynum:longint);stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetSileLength
//
// Description: 設置來電響鈴后靜音的長度。標準市話為4000毫秒
//
// Inputs:
// iSileLength: 靜音長度(4000-6000)
//
// Return:
//
// Notes:
// 如果設置的長度小于實際的長度,那會引起在同一個來電時自動被停止,增加N個未接電話。
// 設置的參數要大于等于實際靜音的時間,系統默認為4500毫秒。
//
//////////////////////////////////////////////////////////////////////////
procedure TV_SetSileLength(isileLength:longint);stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetOffHookType
//
// Description: 設置判斷對方摘機類型
//
// Inputs:
// bType:TRUE 呼叫后要判斷對放摘機前必須要先有回鈴音
// bType:FALSE 呼叫后要判斷對放摘機前不必先聽到回鈴音
// Return:
//
// Notes:
// 呼叫某些電話時沒有回鈴音。如:117,IP(17910、19920)。
// 如果你設置需要回鈴音,那你呼叫117,IP時不會認為對方摘機。反之。
// 具體需求可以根據實際需求設置。
//////////////////////////////////////////////////////////////////////////
procedure TV_SetOffHookType(btype:Boolean);stdcall; External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetCheckDTMFLevel
//
// Description: 設置檢測DTMF的靈敏度
//
// Inputs:
// iLevel:0 最靈敏
// iLevel:1 靈敏
// iLevel:2 中等
// iLevel:3 低
// iLevel:4 最低
// Return:
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
procedure TV_SetCheckDTMFLevel(llevel:longint);stdcall;External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_OpenDoPlay
//
// Description: 使電腦放音數據不到盒子喇叭
//
// Inputs: 無
//
// Return: 無
//
// Notes:
//
//
//////////////////////////////////////////////////////////////////////////
procedure TV_OpenDoPlay();stdcall;External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_IsDoPlayOpen
//
// Date: 2004/12/18
//
// Description: 電腦放音數據是否到盒子喇叭是否出聲音
//
// Inputs: 無
//
// Return:
// FALSE: 電腦放音的數據不到盒子喇叭
// TRUE: 電腦放音數據到盒子喇叭出聲
//
// Notes:
//
//
//////////////////////////////////////////////////////////////////////////
function TV_IsDoPlayOpen():Boolean;stdcall;External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_CloseDoPlay
//
// Description: 使電腦放音數據到盒子喇叭
//
// Inputs: 無
//
// Return: 無
//
// Notes:
//
//
//////////////////////////////////////////////////////////////////////////
procedure TV_CloseDoPlay();stdcall;External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetRecSource
//
// Description: 設置錄音數據源
//
// RS_MIC 電話機話筒說話的數據。適合不通話時本地話筒錄音
// RS_SPK 可用在通話、留言時錄音,錄線上的聲音,使用前電腦摘機,如果不摘機,不能錄到數據
// RS_DOID 其它時候都用此方式錄音,錄來自電話線上的聲音,用來采集來電號碼等。。
//
// Inputs: 無
//
// Return: 無
//
// Notes:
// /*電腦摘機后必須打開DOID才能錄到線上的聲音,如:撥號音等。。*/
//
//////////////////////////////////////////////////////////////////////////
procedure TV_SetRecSource(lrectype:longint);stdcall;External DLLNAME;
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_EnableEchoCanceller
//
// Description: 打開/關閉回音抵消功能
//
// Inputs:
// bEnable:TRUE 打開回音抵消模塊
// bEnable:FALSE 關閉回音抵消模塊
// Return:
//
// Notes:
// 只需要在設置TV_SetRecSource為RS_MIC并且電話機摘著放音時
// 才有必要打開此功能。如使用電話打IP電話時。建議平時不要打開消耗資源
// 抵消本地電話機產生的回音,避免對方聽到自己的說話音。
// 不能抵消對方設備產生的回音,如:使用在網絡電話時本地聽到自己的說話。(對方用音響產生的回音)
//
//////////////////////////////////////////////////////////////////////////
procedure TV_EnableEchoCanceller(bEnable:Boolean);stdcall;External DLLNAME;
implementation
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -