关闭遥远的USSD会议

时间:2012-08-28 14:46:53

标签: ussd

我正在USSD客户端工作。一切正常,除了关闭一个遥远的USSD会议。

在规范中,我们可以看到函数CUSD: AT + CUSD = 2应关闭USSD会话,但事实并非如此。

事实上,当我这样做时:

AT+CUSD='#xxx#',12
AT+CUSD='1',12

我有一个遥远的连接。 在手机上,您可以拨打#xxx *#

打开新会话

如果我发送:

 AT+CUSD='#xxx*#',12

这不是开启一个新的远程会议。 如果我发送:

AT+CUSD=2
AT+CUSD='#xxx#'

这不是开启一个新的远程会议。

你知道如何关闭远程会话吗? 我在Windows或Linux上使用huwaei密钥E160和E173。

2 个答案:

答案 0 :(得分:0)

以下列方式使用。 AT + CUSD ='##XXX' 15 AT + CUSD = 2

答案 1 :(得分:0)

我发布这个是因为这是使用AT命令终止USSD会话的最佳结果,也因为答案含糊不清。 这是我最后使用的c#代码(我将命令发送到gsm调制解调器)。希望它可以帮助别人

    SerialPort SendingPort=null;

    public string TerminateUssdSession()
    {
            InitializePort();

            //// generate terminate command for modem
            string cmd = "";
            cmd = "AT+CUSD=2\r";

            // send cmd to modem
            OpenPort();

            SendingPort.Write(cmd);

            Thread.Sleep(500);

            string response = SendingPort.ReadExisting();

            return response;

    }

    private void InitializePort()
    {
        if (SendingPort == null)
        {
            SendingPort = new SerialPort();
            SendingPort.PortName = PortName;//put portname here e.g COM5
            SendingPort.BaudRate = "112500";
            SendingPort.Parity = Parity.None;
            SendingPort.DataBits = 8;
            SendingPort.StopBits = StopBits.One;
            SendingPort.Handshake = Handshake.None;
            SendingPort.ReadTimeout = 500;
        }
    }

    private void OpenPort()
    {
        if (!SendingPort.IsOpen)
        {
            SendingPort.Open();
        }
    }