请问下Tapro通讯控件组里实现电话呼入监控的是哪个?(100分)

  • 主题发起人 主题发起人 risingsoft
  • 开始时间 开始时间
R

risingsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
我要实现一个传真接收系统,用到Tapro通讯控件组,TApdReceiveFax实现传真接收,TApdTapiDevice实现TApi接口调用,TApdComPort实现Modem串口参数配置,我的了解仅仅局限与此。
我想实现对拨入电话信号的监控,也就是检测到有拨入的传真电话信号时,我就立即启动TApdReceiveFax而不是一直等待,我查了下TApdTapiDevice,里面有一个TapiState属性:
Value Meaning
tsIdle No TAPI operations in progress.[:D][:)]
tsOffering TAPI is offering an incoming call.
tsAccepted APRO has accepted an incoming call.
tsDialTone Dial tone detected.
tsDialing Waiting for dial to complete or fail.
tsRingback Ringback detected.
tsBusy Line is busy.
tsSpecialInfo TAPI service provider specific.
tsConnected Call is connected.
tsProceeding Call is proceeding.
tsOnHold Call has been placed on hold.
tsConferenced Call is conferenced.
tsOnHoldPendConf Call is being conferenced.
tsOnHoldPendTransfer Call is being transferred.
tsDisconnected Call has been disconnected.
tsUnknown TAPI state unknown to APRO.

可是当我调用TApdReceiveFax的方法(FaxRecv是TApdReceiveFax类对象):
FaxRecv.InitModemForFaxReceive;
FaxRecv.StartReceive;
后启动接收监听时,TApdTapiDevice的TapiState从tsIdle直接就跳为tsConnected,而中间的状态无法获取。我查了Tapro通讯控件组的Source,里面的tsDialing,tsAccepted好像都没用到。而我对TApdTapiDevice的TapiState的监控是放在TApdTapiDevice的OnTapiStatus事件里的。

以上就是我的整个逻辑。也许我用错了方法,也许是没设置好属性。反正现在很迷茫了。

下面说下我现在的想法:
1、或许Tapro通讯控件组有专门监控电话拨入拨出的控件,请问是哪个呀?
2、TApdTapiDevice的TapiState,当我无论调用TApdReceiveFa.StartReceive或TApdSendFax.StartTransmit,都从tsIdle跳变为tsConnected,那么它在Docs里提到的那么多状态在什么情况下可以触发?
3、我现在实现的传真收发系统,要求很简单,就是监控MODEM,如果有拨入信号就立即启动接收,空闲时就启动发送,该如何实现?其实现在的关键就是无法监控拨入信号
 
TApdTapiDevice的OnTapiStatus事件无法触发
 
哎,对TAPI和TAPRO组件研究的人真少还是大家不愿意说[8D]
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部