热情软件屋

 

用vb如何通过modem读取电话机数字键发出的DTMF信号


编号:QA002063
建立日期: 1999年11月21日 最后修改日期:2003年11月1日
所属类别:

zcl:
    操作系统: win98
    编程工具: vb
    问题: 用vb如何通过modem读取电话线上的电话机数字键发出的DTMF信号?以实现BITWARE中用电话机对语音信箱的操作。

回答:

    VB中有TERMINAL CONTROL 的控件(主持人注:即MSCOMM32),可以对串行口进行读写,而计算机相对于MODEM,正好是一个DTE与DCE的关系,关于这种关系的细节可以去参考RS232的通信原理,标准MODEM中大概有30个接口寄存器,你对MODEM卡是无法直接访问这些寄存器的,只有通过AT命令,由MODEM来完成一些特定的功能。关于DTMF检测(也就是对方电话号码的检测),则该MODEM芯片必须具有CALLER ID的功能,至于AT命令中是否有检测CALLER ID 功能的命令,需要你去查阅相关的最新资料,因为以前的AT命令不包括这个功能,计算机对MODEM的唯一访问方式就是AT命令。(主持人建议:一般在Modem的手册上会有AT指令集)。
    主持人注:目前的Modem一般都不具备检测DTMF功能,所以一般需要另外购买硬件(如电话语音卡)。
    
    贺斌的意见:
    可以采用AT#CID=1,如果显示OK,则可以接收来电号码了。
    
    zhangpk的意见:
    对于你的MODEM是否有CALLER ID功能,可以通过访问注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\Class\Modem\0000\EnableCallerId键,看其中是否有AT指令字符,其中1的值就是CALLER ID的AT指令。
    
    李俊文的意见:
    不用另外加硬件也可以接收DTMF信号,要用语音AT命令而且MODEM必需是语音FAXMODEM,接收的字符里含有其他字符,但是有规律的可以捕捉按键号码。如果感兴趣请跟我联系(lijw001@public.yj.jl.cn)。

此问题由chen_tu回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 网络与通信, network, communicate, com, com1, com2

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio