[英]How to make caller id in c#.net
第一件事
若要查看調制解調器是否支持呼叫者ID,請打開一個串行端口終端(我喜歡油灰)並將其設置為調制解調器的com端口,然后撥打該調制解調器的電話號碼,您應該看到類似RING 5555555555(其中5555555555是給您打電話的人的電話號碼)
您可能必須打開該調制解調器的呼叫者ID(如果有的話)
1)打開“電話和調制解調器選項”控制面板
2)點擊“調制解調器”標簽
3)在列表中選擇您的調制解調器(如果尚未選擇)
4)點擊“屬性”按鈕
5)點擊“高級”標簽
6)在“額外初始化命令”編輯框中鍵入“#CID = 1”注意:將“#CID = 1”替換為命令以啟用調制解調器上的呼叫者ID請勿在命令中包含“ AT”部分包括引號7)單擊確定
8)點擊確定
9)重啟電腦
這是一些與C#中的串行端口進行交互的代碼(如果需要的話)
public SerialPort sp;
string dataReceived = string.Empty;
private delegate void SetTextDeleg(string text);
private void FormLoad()
{
sp = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
this.sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
sp.Open();
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
Thread.Sleep(500);
string x = sp.ReadLine(); // will read to the first carriage return
this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { x });
}
catch
{ }
}
private void si_DataReceived(string data)
{
dataReceived = data.Trim();
// Do whatever with the data that is coming in.
}
我也剛在亞馬遜上搜索“ Caller ID Modem”,似乎有很多10到20美元(美國)的錢可以支持這種確切的用法。 我會推薦Trendnet TFM-561U
如果您使用電話和傳真調制解調器,只需將電話線插入調制解調器。
接下來,在Windows窗體上,拖放一個SerialPort
控件並對其進行初始化。
this.serialPort1.PortName = "COM3";
this.serialPort1.BaudRate = 9600;
this.serialPort1.DataBits = 8;
this.serialPort1.RtsEnable = true;
this.serialPort1.DataReceived += serialPort1_DataReceived;
this.serialPort1.Open();
將以下命令傳遞給調制解調器以激活呼叫者ID
this.serialPort1.WriteLine("AT#cid=1" + System.Environment.NewLine);
處理其DataReceived事件並顯示接收到的數據
void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
richTextBox1.Text += this.serialPort1.ReadLine();
}
輸出:
RING //On 1st Ring
DATE = xxxxx //On 2nd Ring
TIME = xxxx
NMBR = xxxxxxxxx
RING //On 3rd Ring
RING //On 4th Ring
PS如果電話線將DTMF音作為主叫方ID發送,則您需要DTMF到FSK轉換器來檢測該號碼,否則您將收到振鈴但沒有收到該號碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.