📄 tma4drv.h
字号:
//
// 信号音检测相关函数
// 忙音,拨号音,DTMF拨号音,对方摘挂机检测...
//
//
/*************************************************************************/
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetCheckDTMFLevel
//
// Description: 设置检测DTMF的灵敏度
//
// Inputs:
// iLevel:0 最灵敏
// iLevel:1 灵敏
// iLevel:2 中等
// iLevel:3 低
// iLevel:4 最低
// Return:
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC TV_SetCheckDTMFLevel(long iLevel);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetDTMFParam
//
// Date: 2006/05/26
//
// Description: 设置检测DTMF的参数.//使用默认值,如果有非正常接受DTMF时可以调整。如没有按DTMF时,接收到DTMF按键事件,或者按DTMF了没有接受到。
//
// Inputs:
// iFlow:第一组的最大值必须大于的数。默认为5(1-无穷)。建议在1-100
// 此值根据DTMF的声音大小变化而变化。
// 设置的越小抗噪音越差,忽略此值会大大提高灵敏度而降低抗噪音能力
// iSlow:(已无效)
//
// fValue:(已无效)
//
// iNum:检测到连续的个数。范围(1-6)。默认为5个.建议设置为3-6个。
// 此值越小,灵敏就越高,值越大,灵敏度越底,但不容易误测。
// 此值实际为设置DTMF声音维持的长度。计算时间长度公式为:
// 如果(iNum+1)*7.5
// 如果iNum=5,(5+1)*7.5=45毫秒。DTMF声音长度至少要维持45毫秒以上,
// 按照ITU标准,DTMF声音至少要维持45毫秒。
// Return: 无效
// Notes: DTMF声音越大值可越大.抗噪音能力就好
// 此参数不冲突与设置的DTMF的灵敏度SetCheckDTMFLevel.
//
//////////////////////////////////////////////////////////////////////////
float TELMATEFUNC TV_SetDTMFParam(long iFLow,long iSLow,float fValue,long iNum);
//建议在VB里使用此函数,iFlow就为TV_SetDTMFParam的iFlow和iSlow参数
//lValue/100就为TV_SetDTMFParam的fValue参数
//iNum就为TV_SetDTMFParam的iNum
long TELMATEFUNC TV_SetDTMFParam2(long iFLow,long lValue,long iNum);
//////////////////////////////////////////////////////////////////////////
//
// Function: VS_SetSigFreq
//
// Description: 设置使用的电话线的频率.
// 默认为标准市话频率ID:0为450和ID:1为437两个频率
//
// Inputs:
// iFreq:要设置的频率,范围为10-3400。
// iFreq1:如果是双频合成就设置两个频率
// iFreqID:第几组,0-5
// Return:
// true 成功
// false 失败
//
// Notes: 总共可以设置6组频率
// 如:拨号音为450,回铃音为400,这样两个不同频率就要设置两组。
// 当使用的设备同时有内线设备时,可能有两个不同的频率。
//
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC VS_SetSigFreq(long iFreq,long iFreq1,long iFreqID);
//////////////////////////////////////////////////////////////////////////
//
// Function: VS_SetAutoCheckFreq
//
// Description: 设置是否使用自动检测频率
//
// Inputs:
// bEnable:FALSE 不要自动检测,使用VS_SetSigFreq设置的频率。
// bEnable:TRUE 使用自动检测频率,VS_SetSigFreq设置的不起作用了。
// 此自动检测只适合单频。
// Return:
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC VS_SetAutoCheckFreq(BOOL bEnable);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_CheckDialSignal
//
// Description: 是否检测到拨号音
//
// Inputs: 无
//
// Return:
// TRUE: 检测到拨号音
// FALSE: 没有检测到拨号音
//
// Notes: 在呼叫前先检测拨号音能更准确的呼叫。
// 如果不能检测拨号音,请检测设置的频率是否正确。
//
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_CheckDialSignal();
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetBusyNum
//
// Description: 设置来检测的忙音个数
//
// Inputs:
// iBusyNum: 忙音个数(建议2—4)
//
// Return:
//
// Notes:
// 如果不容易检测到忙音,请减少忙音个数。
// 如果出现误测,增加忙音格式,默认为3个.
//
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC TV_SetBusyNum(long iBusyNum);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetSileLength
//
// Description: 设置来电响铃后静音的长度。标准市话为4000毫秒
//
// Inputs:
// iSileLength: 静音长度(4000-6000)
//
// Return:
//
// Notes:
// 如果设置的长度小于实际的长度,那会引起在同一个来电时自动被停止,增加N个未接电话。
// 设置的参数要大于等于实际静音的时间,系统默认为4500毫秒。
//
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC TV_SetSileLength(long iSileLength);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetOffHookType
//
// Description: 设置判断对方摘机类型
//
// Inputs:
// bType:TRUE 呼叫后要判断对放摘机前必须要先有回铃音
// bType:FALSE 呼叫后要判断对放摘机前不必先听到回铃音
// Return:
//
// Notes:
// 呼叫某些电话时没有回铃音(嘟....嘟...)。如:117,IP(17910、19920),手机彩铃...
// 如果你设置需要回铃音,那你呼叫117,IP时不会认为对方摘机。反之。
// 具体需求可以根据实际需求设置。
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC TV_SetOffHookType(BOOL bType);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetTalkSilenceTimes
//
// Date: 2005/03/07
//
// Description: 设置通话时连续一定时间静音后回调消息/事件
//
// Inputs:
// lTimes: 时间,单位为秒(范围为1-0xFFFF)
//
// Return:
// TRUE:成功
// FALSE:失败
// Notes:
// 触发有接受到TEvent_Silence事件或者TI_SILENCE_MESSAGE消息
// 默认为8秒
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_SetTalkSilenceTimes(long lTimes);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetAutoCheckFreq
//
// Date: 2005/03/07
//
// Description: 设置自动分析信号音的频率范围。如:拨号音,忙音等线路频率
//
// Inputs:
// lMinFreq: 最小频率
// lMaxFreq: 最大频率
//
// Return:
// TRUE:成功
// FALSE:失败
// Notes:
// 正常范围为400-600。默认就为这个。
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_SetAutoCheckFreq(long lMinFreq,long lMaxFreq);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_SetCheckRingBackCodeNum
//
// Date: 2005/03/23
//
// Description: 检测电话机按键后的回铃音前电话的按键个数必须大于等于设置的个数
// 默认为1个。如:设置号码个数为3个,那么电话机按键的号码个数小于3时
// 不检测回铃音,就无法得到TELCALLOUT消息
//
// Inputs:
// lCodeNum: 拨号的个数,默认为1
//
// Return:
// TRUE:成功
// FALSE:失败
// Notes:
// 正常范围为1-40。
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_SetCheckRingBackCodeNum(long lCodeNum);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_GetCheckRingBackCodeNum
//
// Date: 2005/03/23
//
// Description: 取的检测电话机按键后的回铃音前电话的按键个数
//
// Inputs:
//
// Return: 设置的个数
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
long TELMATEFUNC TV_GetCheckRingBackCodeNum();
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_ResetRingBack
//
// Date: 2005/03/23
//
// Description: 复位回铃音检测,如果已经检测到过回铃音,就被复位后重新检测。
//
// Inputs:
//
// Return:
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC TV_ResetRingBack();
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_EnableReversedPolarity
//
// Description: 是否使用极性反转检测对方摘挂机
//
// Inputs:
// TRUE: 使用极性反转检测对方摘挂机
// FALSE: 不使用极性反转检测对方摘挂机,而使用自动信号音检测方式
// Return:
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_EnableReversedPolarity(BOOL bEnable);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_StartCheckRemoteHook
//
// Description: 开始启动检测对方是否摘机
// 可以检测对方为彩铃时的摘机
//
// Inputs: 无
//
// Return:
// TRUE: 启动成功
// FALSE: 启动失败
//
// Notes:
// 该功能只支持玻瑞器B系列设备
// 启动前必须先
// 1.如果设备带有耳机,关闭耳机(TV_EnableMicSpk(FALSE))这时拨通后将听不到回铃或者彩铃
// 2.设置为DOID录音(TV_SetRecSource(RS_DOID))(#define RS_DOID 2)
// 3.设置传统的检测模式(TV_SetOffHookType(TRUE))为必须有回铃才提示.
// 如果不满足以上将提示启动失败
// 启动成功后如果去打开喇叭,启用耳机,修改录音方式将不会成功。
// 只有在停止检测TV_StopCheckRemoteHook()后才会成功
//
// 1.在系统检测到对方摘机后将自动停止检测。如果想忽略传统方式检测到的摘机,想用彩音方式,请重新启动该功能
// 2.调用TV_StartDial后系统将自动停止检测,用户需要在收到消息(TEvent_DialEnd 或 TI_DIALEND_MESSAGE)
// 后重新启动
// 3.电话挂机并且电脑也挂机后系统自动停止检测
// 建议在接收到拨号结束消息(TEvent_DialEnd 或 TI_DIALEND_MESSAGE)后启动该功能
//
// 注意:如果在检测过程,本地用户拿起电话机有可能会是检测失败
//
// 准确度还不能达到100%,在进一步改进算法中.
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_StartCheckRemoteHook();
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_StopCheckRemoteHook
//
// Description: 停止检测对方是否摘机(可以检测对方为彩铃时的摘机)
//
// Inputs: 无
//
// Return:
// TRUE: 停止成功
// FALSE: 停止失败,如果没有启动就失败
//
// Notes:
// 该功能只支持玻瑞器B系列设备
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_StopCheckRemoteHook();
/*************************************************************************/
//
//
// 设备控制、状态相关函数
//
//
/*************************************************************************/
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_EnableRing
//
// Description: 控制本地话机连接状态
//
// Inputs:
// FALSE: 本地电话机与PSTN断开
// TRUE: 本地电话机与PSTN连接
//
// Return: 无
//
// Notes: 本地话机与PSTN断开时,就不能进行PTSN通话。
// 此状态将一直保持。
//
//////////////////////////////////////////////////////////////////////////
void TELMATEFUNC TV_EnableRing(BOOL bEnable);
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_IsRingEnable
//
// Description: 得到本地话机连接状态
//
// Inputs: 无
//
// Return:
// TRUE: 本地话机可用,(电话机与PSTN连接着)
// FALSE: 本地话机不可用(电话机与PSTN断开着)
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_IsRingEnable();
//////////////////////////////////////////////////////////////////////////
//
// Function: TV_StartRing
//
// Description: 开始让电话机震铃
//
// Inputs: 无
//
// Return:
//
// Notes:
// 在启动开始震铃前必须调用TV_EnableRing(FALSE),使电话机与PSTN断开。
// 否则电话机不会出声音
// 也可以调用TV_StartRing后再调用TV_EnableRing(FALSE)。
// 注意:在电话震铃的时刻对检测电话机是否摘机无效。也就在电话机震铃
// 的时候拿起电话机后不是提示电话机摘机的消息,当震铃停止后才提示
//
// 只对有震铃功能的设备有效
//////////////////////////////////////////////////////////////////////////
BOOL TELMATEFUNC TV_StartRing();
///
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -