如何编程用普通Modem在电脑上实现来电显示(200分)

  • 主题发起人 主题发起人 quark
  • 开始时间 开始时间
Q

quark

Unregistered / Unconfirmed
GUEST, unregistred user!
现在电信局开办来电显示服务,用带有‘来电显示’功能的电话机就可实现
象手机一样的功能,试问可不可以在电脑上用Modem实现此功能,(我有一软件
叫做,Advanced Call Center 2000,自称可实现,但是我始终没能搞定,
有会此软件的朋友也请帮个忙。
 
报上说,电信局已开通了同一条电话线同时上网与接电话互不影响的功能,
但需到电信局去注册。你说的软件,是否也是这个情况?
 
关键你的 modem要有这个功能,或者你可以自己做一块DTMF解码的卡,
比如现在常用的8870等通过ISA或RS232与计算机连接,然后你通过程序读取数据。
 
应该可以.只要交换机能传来对方的号码.
 
所为来电显示只是送一个主叫号码,自已编程截获主叫号码应不难。
关键是你要到电信局办理开通送主叫号码,才可实现。
jam:
“报上说,电信局已开通了同一条电话线同时上网与接电话互不影响的功能”
这叫isdn,要专用适配器。

 
1、的确需要电话局开通功能;
2、的确是交换机发出来的。

实际上只是读一个固定位置的信息而已。
http://www.cloud9.u-net.com/apsa/callerid/dev_soft.htm
call id developer's guid

btw:本来是交换机标准功能,可电信用来卖钱
 
我说的也是在电信局开办此服务之后如何识别
因为ACID2000已经实现了
 
关键要到电信开通该项服务,我记得程序很简单,只要unimodem就可以用。
 
前一段时间我恰好在研究这个问题,虽有一些心得,
但一直没法解决。我也在网上求救:http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=178487
我曾经试我用过起码六种有来电显示功能的在网上卖钱
的软件,但无一能在已开通来电显示功能的线路上显示
来电号码,我也试过直接读与MODEM相连的串口,但只
能收到‘RING’和 ‘回车’(chr(13),chr(10))以
及‘RING’。理论上在第一声铃响后,在第二声铃响
前应该传来对方电话号码,但我只找到回车而已。是否
对MODEM有特别要求。
不同国家在第一声RING之后传过来的信息格式一般是有
所不同的,有可能包括TIME,NAME AND CALLERID等。
下面送上一份朋友发给我的资料,希望对你有帮助。

Is My Modem Caller ID Capable?

If your modem manual or box does not indicate that your modem is caller id capable, or you want to manually test your modem for caller id compatibility, please perform the following test.

Use the HyperTerminal Program in Windows 95/98 by clicking on Start > Programs > Accessories > Communications > HyperTerminal.
Click on Hyperterm.exe
Type in "Test Caller ID" for the name of the new connection.
Change the Connect using: to "Direct to Comx" where x is the com port that your modem is attached to and click OK.
Click OK again on the Port Settings screen.
Type in ATZ to reset your modem and it should respond with "OK".
To test you modem to see what the appropriate caller id string is, type each of the following strings followed by <Enter> until your modem responds with an "OK". If you get an "ERROR" response, that means that this is not the correct string for your modem and you should try the next one.
AT#CID=1
AT+VCID=1
AT#CC1
AT*ID1
AT%CCID=1
AT#CLS=8#CID=1

This last string may be required for some voice modems even if AT#CID=1 gives an OK response.
Once you get the "OK" response from your modem, have someone call you and watch the terminal screen.
If Caller ID is working, you will see the work RING on the terminal screen followed by one or more additional lines of data. Here is what my screen looks like after I do this test.
ATZ
OK
AT#CID=1
OK

RING

DATE = 1115
TIME = 0845
NAME = TANNER NORMAN
NMBR = 6029249410

RING

RING

Don't worry about the specific format since there are many different format. Just make sure there is some data between the first and second RING shown that could be interpreted as the date, time, phone number or name (if you have the name service).

If Caller ID is not working, you will only see the word RING for each incoming ring. If this is the case try another one of the suggested caller id strings and try again.

If you are getting data between the first and second ring and my program does not recognize the data, please copy and paste it to me in an E-mail and I will add this format to my program.
 
i want to know, too!
 
我也想知道
 
普通的MODEM是绝对不行的
必须使用带ROCKWARE芯片的MODEM
当然也可以用tanjz的方法
只需要在与MODEM对话中输入
ENABALEMAINCALL的指令
然后在第一声振铃到第二声振铃之间
就可以从串口收到主叫号码的信息

我用超级终端试过
 
还没结束?
 
希望给予解答
 
后退
顶部