2009-07-29 30 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

相關問題