📄 tw8adll.txt
字号:
的功能, 此功能可以由用户向电话局申请. 如电话线路不具备<极性反转>
功能, 那么本函数的返回值恒为 0, 此时应用程序就只能通过调用函数
TW_MonitorOffHook(...) 来判断被呼叫方是否已经摘机, 从而进行下一步
的操作.
在调用本函数前, 必须调用 TW_StartDial(...) 自动拨号. 自动拨号函数
调用后, 自动保存了线路的极性状态; 用户摘机后, 线路的极性反转,
TW_ListenerOffHook(...) 比较当前线路的极性与原有状态是否一致, 即
可判断出被呼叫方是否摘机. 事实上, TW_StartDial(...) 中的拨号字符
串甚至可以是空串, 因为此函数在拨号的同时还实现了"保存原有线路极性
状态"这一功能, 无论拨号内容是什么, 都会在函数内部自动实现此功能.
TW_StartMonitor
---------------
语法:
C : void TW_StartMonitor(WORD Ch)
VB: Sub TW_StartMonitor(ByVal Ch As Integer)
Delphi: procedure TW_StartMonitor(Ch: WORD)
VF: TW_StartMonitor(Ch)
PB: SUBROUTINE TW_StartMonitor(UnsignedInteger Ch)
功能: 开始监视被叫方的摘机状态
参数: Ch: 通道号
返回: 无
说明: 在完成拨号后, 必须调用一次本函数, 然后即可调用 TW_MonitorOffHook(...)
来监视被叫方是否摘机
TW_MonitorOffHook
-----------------
语法:
C : BOOL TW_MonitorOffHook(WORD Ch, WORD RingLen)
VB: Function TW_MonitorOffHook(ByVal Ch As Integer, ByVal RingLen As Integer) As Long
Delphi: function TW_MonitorOffHook(ch: WORD; RingLen: WORD): Boolean
VF: TW_MonitorOffHook(Ch, RingLen)
PB: FUNCTION Integer TW_MonitorOffHook(UnsignedInteger Ch, UnsignedInteger RingLen)
功能: 监视被叫方是否摘机
参数: Ch: 通道号
RingLen: 回铃音嘟声的时间长度 (单位: 40ms)
一般回铃音嘟声的时间长度是 1 秒, 因此本参数的值应为 25
返回: 0 : 被叫方没有摘机
非 0 : 被叫方已摘机
说明: 本函数是根据信号音来判断被叫方的摘机状态, 如果被叫方摘机后有说话
的声音, 那么返回结果会很及时, 否则, 返回结果会稍有延迟, 但是延迟
时间最多不超过 4 秒. 如果被叫方在第一次振铃时立即摘机, 如果回铃
音长度不够, 有可能检测不到摘机
如果电话线路具有<极性反转>功能, 则调用 TW_ListenerOffHook(...)
的检测结果会更加准确
TW_MonitorBusy
--------------
语法:
C : BOOL TW_MonitorBusy (WORD Ch, WORD Type, DWORD Num)
VB: Function TW_MonitorBusy(ByVal Ch As Integer, ByVal Type As Integer, ByVal Num As Long) As Long
Delphi: function TW_MonitorBusy(Ch:WORD; Type:WORD; Num:Cardinal):Boolean
VF: TW_MonitorBusy(Ch, Type, Num)
PB: FUNCTION Integer TW_MonitorBusy(UnsignedInteger Ch, UnsignedInteger Type, UnsignedLong Num)
功能: 根据忙音监视挂机状态
参数: Ch: 通道号
Type: 忙音信号音类型
Num: 忙音个数
返回: 0 : 没有监视到指定个数的忙音
非 0 : 监视到指定个数的忙音, 即对方已挂机
说明: 某一路外线在放音时, 对方挂机, 线路上出现忙音, 这时应用程序调用
函数 TW_CheckSignal(...) 是不能准确检测到忙音信号的, 因为放音
的信号与忙音信号已经混杂在一起, 在这种情况下, 就需要调用本函数
来监视挂机状态
忙音信号音可以是 SIG_BUSY1 或 SIG_BUSY2, 忙音个数一般可以指定
为 5 或 6, 根据实际情况可以适当调整, 但是如果个数太小, 有可能
会出现误判, 如果个数太大, 则有可能检测不到
其他函数:
#########
TW_StartTimer
-------------
语法:
C : void TW_StartTimer (WORD Ch, Long Second)
VB: Sub TW_StartTimer(ByVal Ch As Integer, ByVal Second As Long)
Delphi: procedure TW_StartTimer(Ch:WORD;Second:longint)
VF: TW_StartTimer(Ch, Second)
PB: SUBROUTINE TW_StartTimer(UnsignedInteger Ch, Long Second)
功能: 开始某一通道的计时器
参数: Ch: 通道号
Second: 定时器时间 (单位: 秒)
说明: 计时器一般在信号音检测中用来定时. 如果需要, 也可和 TW_TimerElapsed(...)
配合起来用在其他场合. 定时器的误差小于 1 秒. 对于同一通道, 无论何时调
用 TW_StartTimer(...) 都重新开始该通道的计时, 不会将计时累加在以前设定
的时间上.
TW_TimerElapsed
---------------
语法:
C : LONG TW_TimerElapsed (WORD Ch)
VB: Function TW_TimerElapsed(ByVal Ch As Integer) As Long
Delphi: function TW_TimerElapsed(Ch:WORD):longint
VF: TW_TimerElapsed(Ch)
PB: FUNCTION Long TW_TimerElapsed(UnsignedInteger Ch)
功能: 查询某一通道的计时器开始后已走过的时间 (单位: 秒)
参数: Ch: 通道号
说明: 如果返回 -1, 则表示已超过定时器时间
TW_SysPara
----------
语法:
C : void TW_SysPara (SP_STRUC sp*)
VB: Sub TW_SysPara Lib "tw8a.dll" (ByRef sp As SP_STRUC)
Delphi: procedure TW_SysPara (var sp:SP_STRUCT)
VF: 无效
PB: SUBROUTINE TW_SysPara(REF sp_struc sp)
功能: 获取系统参数
参数: sp: 系统参数结构(或指针,C语言)
返回: 无
说明: 请参阅<系统参数结构>
TW_CompressRatio
----------------
语法:
C : void TW_CompressRatio (WORD Ratio)
VB: Sub TW_CompressRatio Lib(ByVal Ratio As Integer)
Delphi: procedure TW_CompressRatio(Ratio: WORD)
VF: TW_CompressRatio(Ratio)
PB: SUBROUTINE TW_CompressRatio(UnsignedInteger Ratio)
功能: 设置录放音的压缩比
参数: Ratio: 压缩比
返回: 无
说明: 所设置的压缩比对所有的通道都有效, 并且在某一压缩比下的录音数据必须以
相同的压缩比来放音, 否则就会放出噪音. 在实际使用时, 要根据需要选择
适当的压缩比, 一般情况下, 可以使用 RATE_64K. 请参阅<压缩比常量定义>
TW_GetSerial
------------
语法:
C : void TW_GetSerial (LPSTR Serial)
VB: Sub TW_GetSerial(ByVal Serial As String)
Delphi: procedure TW_GetSerial(Serial: PChar)
VF: TW_GetSerial(@Serial)
PB: SUBROUTINE TW_GetSerial(REF String Serial)
功能: 取出 TW8A 的序列号
参数: Serial: 存放序列号的缓冲区的地址
返回: 无
说明: 函数调用前, 必须给参数Serial分配足够的空间.
每一块 TW8A 电话卡对应于唯一的 8 位序列号, 如 "95800001", (某些
早期版本的电话卡可能没有设置序列号). 如果一台计算机中同时使用多
块电话卡, 则所取出的是第一块卡的序列号
TW_PulseMode
------------
语法:
C : void TW_PulseMode (BYTE Mode)
VB: Sub TW_PulseMode(ByVal Mode As Byte)
Delphi: procedure TW_PulseMode(Mode:byte))
VF: TW_PulseMode(Mode)
PB: SUBROUTINE TW_PulseMode(UnsignedInteger Mode)
功能: 设置内线电话脉冲拨号的接收方式
参数: Mode: 方式代码
0x00(0) : 正常接收 (缺省方式)
0x01(1) : '0' 到 '9' 分别对应代码 0x50 到 0x59, 从而与音频拨号区别开
0x0f(15): 不接收脉冲信号
返回: 无
说明: 此函数对所有的内线通道都有效. 调用 TW_Initialize(...) 函数后, 接收
方式被自动设为缺省方式. 在正常接收时, 接收到内线电话的音频或脉冲码
一样; 设为 0x01 后, 接收到的音频码与脉冲码不一样, 音频码还是 0x30
到 0x39, 脉冲码变为 0x50 到 0x59
TW_GetReturnCode
----------------
语法:
C : BYTE TW_GetReturnCode (void);
VB: Function TW_GetReturnCode() As Byte
Delphi: function TW_GetReturnCode:Byte
VF: TW_GetReturnCode()
PB: FUNCTION UnsignedInteger TW_GetReturnCode()
功能: 取上一次函数调用的返回码
参数: 无
返回: 上一次函数调用的返回码,参见返回码常量定义
TW_SetLength
------------
语法:
C : DWORD TW_SetLength (DWORD NewSize)
VB: Function TW_SetLength(ByVal NewSize As Long) As Long
Delphi: function TW_SetLength(NewSize:Longword):Longword
VF: TW_SetLength(NewSize)
PB: FUNCTION UnsignedLong TW_SetLength(UnsignedLong NewSize)
功能: 设置录放音缓冲区的大小
参数: NewSize: 所要设置的值
返回: 缓冲区大小的原来的值
说明: 每一个录音或放音通道的缓冲区实际大小是这里输入值的两倍。
缺省设置的值为 2048,即缺省一个通道的缓冲区实际大小是 4096。缓
冲区只有在实际使用时才被分配,使用完后就被释放。一般不必设置此值,建议
使用缺省值
适用于 VB5.0 和 PB6.0 的函数:
#############################
VB: Sub TW_GetPcb(ByRef pcb As PCB_STRUC)
PB: SUBROUTINE TW_GetPcb(REF pcb_struc pcb)
-------------------------------------------
功能: 读取系统参数控制块PCB_STRUC的值
参数: pcb: 系统参数控制块PCB_STRUC类型的变量
返回: 无
VB: Sub TW_SetPcb(ByRef pcb As PCB_STRUC)
PB: SUBROUTINE TW_SetPcb(pcb_struc pcb)
------------------------------------------
功能: 设置系统参数控制块的值
参数: pcb: 系统参数块类型的变量
返回: 无
说明: 在调用此函数前, 一般应先调用 TW_GetPcb()函数取得缺省参数,再
对需要修改的个别参数进行修改,最后调用 TW_SetPcb() 设置。
通过调用该函数,可以修改系统信号音的参数.
只用于 VF5.0 的函数(tw8a.dll中不存在以下函数):
##############################################
TW_GetSig(@SignalArray)
----------------------
功能: 查询信号音 0--7 的时间参数
参数: 对信号音数组的引用
信号音数组必须是二维数组,行数一般为 8,列数必须为 4。
二维数组的行号对应信号音 0--7。
声明数组时行数可根据实际需要调整,比如只查询前 3 个信号音时,行数可设
为 3。
返回: 无
说明: 每个信号音有 4 个时间参数,时间参数都为整数,整数 1 代表 40ms,整
数 2代表 80ms,以此类推。
信号音数组可声明为 SIG[8,4]。SIG[N,?] 表示信号音 N-1,比如
SIG[2,?]表示忙音 1。
在 4个时间参数中,SIG[N,1] : 信号音为低时的最小时间
SIG[N,2] : 信号音为低时的最大时间
SIG[N,3] : 信号音为高时的最小时间
SIG[N,4] : 信号音为高时的最大时间
这样,信号音为低的时间= (SIG[N,1] + SIG[N,2]) /2
信号音为高的时间= (SIG[N,3] + SIG[N,4]) /2
TW_SetSig(@SignalArray)
----------------------
功能: 设置信号音 0--7 的时间参数
参数: 对信号音数组的引用
信号音数组必须是二维数组,行数一般为 8,列数必须为 4。
声明数组时行数可根据实际需要调整,比如只设置前 3 个信号音时,行数
可设为 3。
返回: 无
说明: 参阅 TW_GetSig 说明。
注意在调用此函数前, 一般应先调用 TW_GetSig()函数取得缺省参数,再
对需要修改的个别信号音进行参数修改,最后调用 TW_SetSig() 设置。
假设声明信号音数组为 SIG[8,4], 又假设要改变 SIG[2,?] (忙音 1) 的时
间参数, 如果只对数组元素 SIG[2, ?] 赋值,而不对其它数组元素赋值, 则
它们的值都是 0, 这样在调用 TW_SetSig() 后,除忙音 1 按您的要求改
变了时间参数外,其它信号音的时间参数全被改为 0。 所以,应先调用
TW_GetSig()取得时间参数。
对电话卡进行初始化后, 所有的信号音时间参数被置为缺省值。
TW_LoadAPI()
------------
功能: 装入TW8A动态连接库
参数: 无
返回: 无
热线咨询
========
如果对 TurboWay 系列电话卡编程有疑问或建议, 请与我们取得联系:
地址: 北京市海淀区知春路 61 号 (航天部 514 所八楼, 翠宫饭店对面)
通信: 100080 北京 2747 信箱 18 分箱 北京泰兴数据工程有限公司
电话: 010-62576872 62576873 68744951-5
传真: 010-62544378
Email: taixing@public.bta.net.cn
网址: WWW.taixing.com.cn
北京泰兴数据工程有限公司 (D&E)
1998. 11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -