2012-03-23 26 views
5

Tengo dispositivo Nokia conecta al PCCómo cancelar respuesta USSD necesidad

Este es el código que utilizo para enviar comandos USSD:

Port.Write("AT+CUSD=0,\"*147*1*#\",15\r\n");

Funciona bien, pero muestra una opción para elegir el servicio. Lo que quiero es detenerlo O Salir (Salir) de ese mensaje. Puedo presionar cancelar la opción desde el teléfono, pero ¿cómo puedo hacerlo usando C#?

Respuesta

0

Creo que AT + CUSD = 2 se puede utilizar para cancelar una sesión. Alternativamente, solo espere a que la sesión USSD expire en el lado del servidor (normalmente los tiempos de espera no son demasiado largos)

1

Lo publico porque este es uno de los mejores resultados con respecto a la finalización de sesiones USSD usando comandos AT y también porque las respuestas son vagas. Este es el código C# que utilicé al final (estaba enviando los comandos a un módem gsm). Espero que ayude a alguien más

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 port name 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(); 
     } 
    }