📄 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 + -