GSM AT 判斷電話是否接通

第一步 打電話

ATD+手機號碼;//(注意有分號)

AT+CSCA?

第二步判斷是否接通

AT+CLCC
AT+CSCA?

未接通返回

+CLCC: 1,1,0,1,0,"",128
+CLCC: 2,0,3,0,0,電話號,128

接通返回

+CLCC: 1,1,0,1,0,"",128
+CLCC: 2,0,0,0,0,電話號,128

第三步如果接通,發送語音

AT+QWTTS=1,1,2,"歡迎使用語音播報功能!"

AT+CSCA?

第四步掛斷電話

ATH

AT+CSCA?

 //語音通話代碼
        private void button_voice_Click(object sender, EventArgs e)
        {
            //打電話 ATD18192531985; +AT+CSCA?
            byte[] buf = Encoding.ASCII.GetBytes("ATD16195531982;\r\nAT+CSCA?");
            ss_port.Write(buf); 
            //讀取回執
            string response = Encoding.ASCII.GetString(ss_port.Read(128));

            while (true)
            {
                //發送AT+CLCC AT+CSCA?判斷有沒有接通
                buf = Encoding.ASCII.GetBytes("AT+CLCC\r\nAT+CSCA?");
                ss_port.Write(buf);
                response = Encoding.ASCII.GetString(ss_port.Read(128));
                if (response.Contains("2,0,0,0,0,"))
                {
                    Thread.Sleep(500);
                    buf = System.Text.Encoding.Default.GetBytes("AT+QWTTS=1,1,2,\"尊敬的用戶你好,歡迎使用TTS功能!即將結束通話,感謝您的聆聽!\"\r\nAT+CSCA?");
                    ss_port.Write(buf);
                    Thread.Sleep(11 * 1000);
                    buf = Encoding.ASCII.GetBytes("ATH\r\nAT+CSCA?");//掛機
                    ss_port.Write(buf);
                    break;
                }
                Thread.Sleep(1000);
            }        
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章