【问题标题】:How to get Caller ID in C#?如何在 C# 中获取来电显示?
【发布时间】:2019-11-08 09:10:15
【问题描述】:

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

【问题讨论】:

  • 这太棒了,只要电话响起就弹出一个窗口或其他东西。缺点:谁有座机了...
  • 您应该说明调制解调器型号。启用来电显示因调制解调器而异。 USRobotoics 调制解调器需要与科胜讯调制解调器不同的 AT 命令。

标签: c# serial-port modem hardware-interface caller-id


【解决方案1】:

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

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

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

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

好的

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

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

RING

然后来电显示文本会进来。如果我没记错的话,它的形式是:

NMBR=XXXXXXXXXX

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

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

How to Test a Modem for Caller ID Support

【讨论】:

  • 好的,我会在家里试试,如果你能找到参考就很好了。谢谢。
【解决方案2】:

有可能,但有几点需要注意:

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

【讨论】:

  • 我确信我的电话线路支持来电显示,因为电话在其屏幕上显示来电号码。我会继续使用 TAPI,谢谢。
【解决方案3】:

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

【讨论】:

  • 嘿,不知道你可以用 writeline 方法添加这些字符串命令.. tnx(虽然链接不起作用)
猜你喜欢
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多