如何在C#中获取来电显示?

问题描述 投票:9回答:3

您好我想使用56K调制解调器获取拨打家庭电话的电话号码,有没有办法用C#实现这一目标?

c# serial-port modem hardware-interface
3个回答
17
投票

并非所有调制解调器都支持来电显示。对于那些做的,实施因制造商而异。

调用者ID通过串行数据传递,因此您必须使用TAPI library(或Windows的超级终端来测试它)。呼叫者ID号通常出现在第一个和第二个环之间。

您需要向调制解调器发出命令以激活呼叫者ID。典型:

AT#CID=1(或AT+VCID=1

检查调制解调器的文档。

当有来电时,调制解调器将收到一个呼叫字符串。典型:

RING

然后调用者ID文本将进入。如果我记得正确,它将采用以下形式:

NMBR=XXXXXXXXXX

[我正在寻找参考。我会在找到它时发布一个链接]

更新:啊,找到一个。查看此页面了解各种调制解调器的命令和连接字符串:

How to Test a Modem for Caller ID Support


5
投票

这是可能的,但有一些事情你应该注意:

  • 您仍需要运营商/提供商支持来电显示。除非承运人已经做了一些额外的工作来添加它,否则基本的POTS线将不包括此信息。所以你不能这样做,以避免支付额外的来电显示费用。
  • 它没有内置到.Net中。你必须打电话到基本的TAPI库。我自己从来没有和这个图书馆合作过,所以我可以告诉你。

3
投票

serialPort1.Open(); serialPort1.WriteLine(“AT#cid = 1”+ System.Environment.NewLine); //其中serialPort1是串行控件以获取更多详细信息,请参阅以下链接:http://www.itworld2.com/frmsCsharp.aspx

© www.soinside.com 2019 - 2024. All rights reserved.