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.
me sirvió mucho 😉
Hola buenas noches!!!. Consulta:
Como identifico los parámetros de mi componente “SerialPort”
Si no lo tienes en las especificaciones, con la técnica del prueba y error, en este caso con modificar los parámetros de la paridad y del de bit de para seria suficiente, la velocidad suele ser esa por defecto.
Me da el mensaje de erro Puerto cerrado…como abro el puerto
gracias
Tienes que comprobar que windows te lo reconoce, dependiendo de la versión cambia la manera como funciona. Si tienes Windows 10 posiblemente tengas problemas de permisos. Prueba con el hiperterminal enviado los comandos AT al aparato. Cuando lo tengas funcionando con el hiperterminal, prueba con el C#
Como puedo hacer para saber caul puerto esta habilidato
En Windows es fácil, se te tiene que haber creado un puerto en panel de control -> sistemas, si no se te ha creado tienes mal conectado el dispositivo. Un saludo
Hola buenas noches!!!
como obtengo MSM mediante c# con comandos AT