2009-07-29 29 views
9

你好,我想用56K调制解调器获取家庭电话的电话号码,有没有办法用C#实现这一点?如何获取C#中的来电显示?

+0

可能有人与学科知识,请重新打这个问题? – 2009-10-30 16:41:57

+1

这真的很棒,每当手机响起时只需要一个弹出窗口或其他东西。下行:谁再有固定电话...... – tsilb 2010-05-13 19:17:23

回答

17

并非所有调制解调器支持来电显示。对于那些制造商来说,实施情况各不相同。

有来电显示是通过串行数据传送,所以你将不得不使用TAPI library(或Windows的超级终端进行测试)。来电显示号码通常出现在第一个和第二个环之间。

您将需要发出命令到调制解调器以激活来电显示。典型:

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

OK

检查调制解调器的文档。

当有电话打进来时,调制解调器将接收的呼叫字符串。典型:

RING

然后呼叫者ID文本会在如果我正确地记住,这将是形式:

NMBR=XXXXXXXXXX

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

UPDATE:啊,找到一个。看看这个页面的命令和连接字符串为各个调制解调器:

How to Test a Modem for Caller ID Support

+0

好吧,我会在家里尝试,如果你找到一个参考,它将是非常好的。谢谢。 – zer0w1dthspace 2009-07-29 15:26:20

5

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

  • 你仍然需要有来电显示您的运营商/供应商的支持。一条基本的POTS线路不会包含这些信息,除非运营商已经做了一些额外的工作来添加它。所以你不能这样做,以免支付额外的来电显示费。
  • 它没有内置到.Net中。您必须拨打基本的TAPI图书馆。我从来没有自己与这个图书馆合作过,所以尽我所能告诉你。
+0

我确定我的电话线支持来电显示,因为手机在其屏幕上显示来电号码。我会继续与TAPI,谢谢。 – zer0w1dthspace 2009-07-29 15:11:13

3

serialPort1.Open(); serialPort1.WriteLine(“AT#cid = 1”+ System.Environment.NewLine); //其中serialPort1是更详细的串行控制 看到以下链接:http://www.itworld2.com/frmsCsharp.aspx

相关问题