10

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

4

3 回答 3

17

并非所有调制解调器都支持来电显示。对于那些这样做的人,制造商之间的实施方式各不相同。

来电显示通过串行数据传递,因此您必须使用TAPI 库(或 Windows 的超级终端来测试它)。来电显示号码通常出现在第一次和第二次响铃之间。

您需要向调制解调器发出命令以激活来电显示。通常:

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

好的

检查您的调制解调器的文档。

当有来电时,调制解调器会收到一个呼叫字符串。通常:

RING

然后会出现来电显示文本。如果我没记错的话,它将采用以下形式:

NMBR=XXXXXXXXXX

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

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

如何测试调制解调器以获得来电显示支持

于 2009-07-29T15:21:58.060 回答
5

这是可能的,但您应该注意以下几点:

  • 您仍然必须有您的运营商/提供商支持的来电显示。除非承运人做了一些额外的工作来添加它,否则基本的 POTS 行不会包含此信息。所以你不能这样做以避免支付额外的来电显示费用。
  • 它不是内置于 .Net 中的。您必须调用基本的TAPI库。我自己从来没有使用过这个库,所以我可以告诉你的就这么多。
于 2009-07-29T15:07:03.737 回答
3

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

于 2009-10-30T16:39:53.757 回答