13 enero, 2013

Envio de SMS mediante c# y comandos AT

Para enviar mensaje SMS, hace falta un módem o teléfono que soporte envió de sms, conexión con el ordenador, ya sea mediante bluetooth, usb o puerto serie. Los módem gsm soportan comandos AT, eston permiten configurar y obtener diversa información del módem gsm, como puede ser marca, modelo, nivel de cobertura, proveedor de la conexión, realizar llamadas, etc.

Para mas información sobre los comandos at del puede ver la pagina de la Wikipedia » Conjunto de comandos AT».
Para poder comunicarnos desde nuestro programa en C# con el módem o teléfono necesitamos el componente «SerialPort». Esto componente nos permite realizar comunicación mediante puerto serie.
Creación e inicialización del componente SerialPort
sModem = new SerialPort("COM1",9600, Parity.None, 8, StopBits.Two);
Donde:
  • Com1: es el puerto donde esta conectado el módem o teléfono gsm
  • 9600: Velocidad a la que nos conectaremos al aparato.
  • Parity.None: Paridad ninguna.
  • 8: Tamaño del bit de datos.
  • StopBits.Two: Bits de parada, en este caso 2.

Estos parámetros hay cambiarlos por los que específicos del módem al que vamos ha conectarnos.

Ejemplo de función:

// Función para mandar sms
public Boolean EnviarMensaje(string NumTel, string Mensaje)
{
    try
    {
        // Comando de comprobación                
        sModem.Write("AT\r");
        // Pasamo a modo SMS
        sModem.Write("AT+CMGF=1\r");
        // Enviamos el numero al que queremos enviar el SMS
        sModem.Write("AT+CMGS=\"" + NumTel.Trim() + "\"\r");
        // El texto del mensaje, se termina con Control+Z
        sModem.Write(Mensaje.Trim() + '\x001a');
        // Si todo sale bien devuelve true
        return true;
    }
    catch (Exception Error)
    {
        // si hay algún error devuelve false
        return false;
    }
}

Si estas interesado en aprender más acerca de C# te recomendamos este curso.

https://go.hotmart.com/R69191757Y