通过C#程序拨打手机

通过C#程序拨打手机,c#,C#,我正试图通过C#程序拨打手机。下面显示我的程序。在这种情况下,当我点击我的拨号按钮时,它会拨打我在程序中给出的号码(目的地号码)。但是一两秒钟后它就消失了&它没有连接到目的地号码。下面是我的C代码。请帮我解决这个问题。谢谢 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; u

我正试图通过C#程序拨打手机。下面显示我的程序。在这种情况下,当我点击我的拨号按钮时,它会拨打我在程序中给出的号码(目的地号码)。但是一两秒钟后它就消失了&它没有连接到目的地号码。下面是我的C代码。请帮我解决这个问题。谢谢

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SerialPort sp = new SerialPort();
            sp.PortName = "COM10";
            sp.BaudRate = 9600;
            sp.Parity = Parity.None;
            sp.DataBits = 8;
            sp.StopBits = StopBits.One;
            sp.Handshake = Handshake.XOnXOff;
            sp.DtrEnable = true;
            sp.RtsEnable = true;


            sp.Open();

            if (!sp.IsOpen)
            {
                MessageBox.Show("Serial port is not opened");
                return;
            }

            sp.WriteLine("AT" + Environment.NewLine);
            sp.WriteLine("ATD=\"" + "Destination Number" + "\"" + Environment.NewLine);

        }
    }
}   

最后我找到了解决办法。我们应该在目的地号码的末尾加上分号。然后它成功了

sp.WriteLine("ATD=\"" + "Destination Number;" + "\"" + Environment.NewLine);

尝试将“sp”的偏差移到方法之外,如下所示:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        private SerialPort sp;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            sp = new SerialPort();           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (sp.IsOpen)
            {
                sp.Close();
            }

            sp.PortName = "COM10";
            sp.BaudRate = 9600;
            sp.Parity = Parity.None;
            sp.DataBits = 8;
            sp.StopBits = StopBits.One;
            sp.Handshake = Handshake.XOnXOff;
            sp.DtrEnable = true;
            sp.RtsEnable = true;


            sp.Open();

            if (!sp.IsOpen)
            {
                MessageBox.Show("Serial port is not opened");
                return;
            }

            sp.WriteLine("AT" + Environment.NewLine);
            sp.WriteLine("ATD=\"" + "Destination Number" + "\"" + Environment.NewLine);

        }
    }
}   

波特率
增加到最大值,并在
处使用此
命令:

ATD = DestinationNumber;

这不适用于out
因为系统会认为你在打数据电话而不是语音电话。

这是我的工作拨号线,它会响电话 不知道如何从端口获取语音输入和输出我正在使用huwavi E173加密狗。这是我的工作线C#


最后我找到了解决办法。我们应该加上,;到目的地号码的末尾。然后它成功了。
SerialPort port = new SerialPort();
port.Open();
string t = port.ReadExisting();
Thread.Sleep(100);

string cmd = "ATD";
Thread.Sleep(100);
string phoneNumber = "071********";
Thread.Sleep(100);
port.WriteLine(cmd + phoneNumber + ";\r");

port.Close();