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