Cómo recibir SMS en C#
Este artículo proporciona información sobre cómo recibir SMS en C# con la pasarela de SMS Ozeki. ¡Sigue leyendo para aprender más sobre este procedimiento!
¿Por qué querrías recibir SMS en C#?
Hay varias razones para recibir SMS en C#. Puedes querer recopilar datos de sensores o usuarios móviles, crear servicios de SMS que envíen respuestas con información o simplemente pedir a tus usuarios que confirmen la recepción de un SMS.
Requisitos previos
- Pasarela de SMS Ozeki instalada
- Microsoft Visual Studio
- Ejemplo de recepción de SMS en C# (OzekiConsole.zip)
Cómo recibir SMS en C# (Pasos rápidos)
Cómo recibir SMS en C#- Descarga el ejemplo de recepción de SMS en C#
- Abre la solución en Visual Studio
- Conéctate a la pasarela de SMS Ozeki
- Recibe un SMS simulado en C#
- Conéctate a la red móvil
- Recibe un SMS en C# enviado desde un móvil
- Revisa los registros en la pasarela de SMS
- Verifica el informe de entrega en tu móvil
Ejemplo de código C# para recibir mensajes de texto
El siguiente ejemplo de código en C# describe los pasos más importantes para crear un servicio de recepción de SMS. La API de SMS Ozeki para C# es gratuita. Puedes modificar la biblioteca de la API, los ejemplos que incluye y usarla en tu proyecto, redistribuyéndola libremente o sus derivados. El siguiente ejemplo muestra cómo suscribirse al evento OnMessageReceived en C# y cómo manejarlo. El ejemplo imprime el mensaje SMS entrante en la consola.
class Program { static OzxClient Client; static void Main(string[] args) { Client = new OzxClient(); Client.AutoReconnect = true; Client.OnMessageReceived += Client_OnMessageReceived; Client.Connect("127.0.0.1",9580,"testuser","testpass"); } static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e) { Console.WriteLine("Mensaje recibido: " + e.Item.ToString()); } }
El parámetro e.Item es un OzxMessage completo. Esto significa que tienes todos los detalles del mensaje SMS en tu evento de la API de SMS en C#. Estos detalles incluyen el ID del remitente, el número de teléfono al que se envió el SMS, el texto del SMS y las marcas de tiempo correspondientes.
Una de las mayores ventajas de usar la API de SMS Ozeki para C# es que recibes los mensajes SMS entrantes al instante. Tan pronto como llegan a la pasarela de SMS, se reenvían a tu cliente de SMS en C# a través del enlace TCP/IP establecido. Esto significa que no experimentarás retrasos.
Si tu cliente de la API de SMS en C# no está conectado a la pasarela de SMS cuando se recibe el SMS, el mensaje se almacena en la bandeja de entrada de la pasarela. Esto significa que tus mensajes entrantes no se perderán, incluso si el software de SMS que has escrito usando la API de SMS en C# está offline. Esto se debe a que la Pasarela de SMS Ozeki es en realidad un servidor de SMS.
Paso 1 - Descarga la biblioteca de SMS Ozeki para C#
Ve a https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip y descarga el archivo zip con tu navegador. El archivo zip se guardará en tu directorio de Descargas (Figura 2). Puedes abrir la descarga directamente en el Explorador de Windows. El paquete zip descargado contendrá el código de ejemplo que puedes usar para recibir SMS en C#.
Paso 2 - Extrae la biblioteca de SMS para C#
Extrae la biblioteca de SMS para C# haciendo clic derecho en el archivo OzekiConsole.zip (Figura 2). Esto abrirá el menú contextual. En el menú contextual, selecciona "Extraer todo...". Esto mostrará la ventana de diálogo "Extraer", donde debes hacer clic en Extraer.
Haz clic en el botón "Extraer" en la ventana de diálogo "Extraer todo" (Figura 3).
Paso 3 - Abre el proyecto en Visual Studio
Abre la carpeta OzekiConsole. Esta carpeta aparecerá después de extraer el paquete OzekiConsole.zip. En la carpeta OzekiConsole, haz doble clic en el archivo OzekiConsole.sln. Esto mostrará el cuadro de diálogo "¿Cómo quieres abrir este archivo?". En este cuadro de diálogo, selecciona "Visual Studio". Después de seleccionar Visual Studio, haz clic en Aceptar para abrir el proyecto de ejemplo en C# (Figura 4).
Paso 4 - Haz clic en Program.cs
Abre Program.cs haciendo clic en el archivo en el Explorador de soluciones en el lado izquierdo de la pantalla. Este es el código principal de este proyecto de ejemplo en C#. Este código incluye ejemplos sobre cómo enviar SMS desde C# y cómo recibir SMS en C#. El código no es muy largo, tiene unas 300 líneas. Demuestra toda la funcionalidad de la API de SMS para C# (Figura 5).
Paso 5 - Establece un punto de interrupción en el código de recepción de SMS
Encuentra el manejador del evento OnMessageReceived y establece un punto de interrupción en la primera línea del procedimiento. Este punto de interrupción te permitirá capturar el evento OnMessageReceived. Este evento se activa cuando tu cliente de SMS en C# recibe el mensaje SMS de la pasarela de SMS (Figura 6).
Paso 6 - Crea una cuenta de usuario OZX para la API de SMS
Para permitir que el ejemplo de la API de SMS en C# se conecte a la pasarela de SMS, necesitas crear una cuenta de usuario OZX en la pasarela. Para hacer esto, ve a la consola de gestión de la pasarela de SMS abriendo la URL https://127.0.0.1:9515 y haz clic en el enlace "Añadir nuevo usuario/aplicación" en el lado derecho de la pantalla (Figura 7).
El enlace "Añadir nuevo usuario/aplicación" mostrará una lista de tipos de usuario instalables. Debes encontrar la cuenta de usuario OZX en la lista. La cuenta de usuario OZX utiliza un protocolo de SMS altamente optimizado que permite que tu aplicación de SMS en C# se comunique con la pasarela de SMS a través de la red. Como la pasarela de SMS y el cliente de SMS en C# se comunican a través de la red, puedes recibir un mensaje de texto en tu proyecto C# incluso si el proyecto se ejecuta en una computadora diferente (Figura 8).
Proporciona un nombre de usuario y contraseña. En nuestro ejemplo, usamos testuser como nombre de usuario y testpass como contraseña. El cliente de SMS en C# usará estas credenciales para conectarse a la pasarela de SMS. Si deseas más de una conexión de la API de SMS en C#, puedes crear múltiples cuentas de usuario OZX. Cada cuenta de usuario alojará su propio cliente de la API de SMS en C#. Para decidir qué cliente de SMS en C# recibirá un SMS entrante, debes crear rutas de entrada en la tabla de enrutamiento de SMS Ozeki (Figura 9).
Habilita las opciones de registro para la cuenta de la API de SMS en C# para obtener registros de comunicación. Recomiendo que marques todas las casillas de registro primero, para obtener información detallada sobre lo que sucede con un mensaje. Si recibes un texto, lo verás aparecer en el registro antes de que se reenvíe a tu cliente de SMS en C# (Figura 10).
Paso 6 - Añade una nueva ruta para simular SMS entrantes
Crea una nueva ruta de SMS para permitir que el usuario administrador envíe mensajes SMS de prueba al cliente de la API de SMS en C#. Una de las mejores cosas de usar la Pasarela de SMS Ozeki es que te permite gestionar tus mensajes SMS con una tabla de enrutamiento. Puedes configurar varias conexiones de red móvil y decidir qué SMS irán a dónde. En nuestro ejemplo, queremos enrutar los mensajes SMS provenientes de la cuenta de administrador al cliente de la API de SMS en C#. En un sistema real, no enrutarás SMS desde la cuenta de administrador, sino que enrutarás mensajes SMS recibidos en conexiones de red móvil a tu cliente de la API de SMS en C#.
Para crear una nueva ruta de SMS, haz clic en "Añadir nueva ruta" en el panel de control de la Pasarela de SMS Ozeki (Figura 11).
Para recibir un mensaje de texto mientras escribes tu código de SMS en C#, usarás el formulario de composición de la pasarela de SMS y enviarás el SMS como el usuario administrador. La ruta de SMS que vamos a crear enrutará los mensajes SMS provenientes del administrador a la cuenta testuser. La cuenta testuser reenviará el SMS al cliente de SMS en C# (Figura 12).
Selecciona testuser como destino para tus mensajes SMS entrantes en el formulario de detalles de enrutamiento. Esta ruta enviará mensajes SMS del usuario administrador a testuser. Testuser reenviará los mensajes SMS recibidos al cliente de la API en C# (Figura 13).
Paso 7 - Inicia el proyecto de ejemplo de SMS en C#
Para iniciar tu proyecto de SMS en C#, debes hacer clic en el botón Iniciar en la barra de herramientas de Visual Studio. Después de hacer clic en este botón, Visual Studio compilará el código y lo ejecutará en el entorno de desarrollo. La ejecución del programa se detendrá cuando el algoritmo alcance un punto de interrupción. Como nuestro ejemplo es una aplicación de consola, verás aparecer la ventana negra de la consola una vez que se inicie la ejecución (Figura 14).
Escribe "help" en la ventana de la consola. El texto de ayuda mostrará los comandos disponibles para ti en este proyecto de ejemplo. El primer comando que usarás es el comando connect. Escribe "connect 127.0.0.1:9580 testuser testpass" en la ventana de la consola para conectar tu código de SMS en C# a la Pasarela de SMS. Ten en cuenta que 127.0.0.1 significa que la pasarela de SMS se está ejecutando en la misma PC donde se ejecuta tu código de SMS en C#. 9580 es el puerto TCP/IP utilizado por la pasarela de SMS para aceptar clientes de SMS en C# (usuarios OZX), y las credenciales testuser y testpass son las que definimos cuando creamos la cuenta de usuario OZX en el paso 6 de este tutorial de SMS (Figura 15).
Una vez que te hayas conectado a la pasarela de SMS, estarás listo para enviar tu primer SMS a tu cliente de la API en C#.
Paso 8 - Envía un SMS de prueba
Envía un mensaje SMS de prueba haciendo clic en el botón "Nuevo" en la barra de herramientas de Ozeki en la consola de gestión de la Pasarela de SMS. Cuando envíes tu SMS de prueba, tendrás que definir una dirección de destinatario y el texto del mensaje. En la pestaña Avanzado, también puedes definir un ID de remitente, como un ID de remitente alfanumérico para tu SMS (Figura 16).
Haz clic en Aceptar para enviar el SMS de prueba. Tu pasarela de SMS te proporcionará los eventos relacionados con el envío del SMS y se te presentará un ID de mensaje. Puedes notar la cadena GUID en la última línea de la Figura 17.
Después de que el SMS sea enviado por el usuario administrador, es recibido por la cuenta de usuario OZX llamada testuser. Esta cuenta reenvía el SMS al cliente de SMS en C# a través de la red. El cliente de SMS en C# recibe el texto a través del enlace TCP/IP establecido por el método connect. Si has establecido un punto de interrupción en el evento OnMessageReceived, este es el momento en que tu punto de interrupción pausará la ejecución del programa.
Paso 9 - Recibe el SMS en la consola de C#
Lee la línea "Mensaje recibido" en la consola de C#. Verás que el SMS fue enviado por admin@localhost al número de teléfono +361111111. El cliente de la API de SMS en C# recibió el texto 'Hello c sharp client' (Figura 18). El mensaje de texto se presentó al cliente en C# en forma de un evento de C#. El manejador del evento OnMessageReceived se llama cuando se activa este evento, y el mensaje se coloca en el parámetro de entrada del método manejador del evento OzMessageReceived.
Lo siguiente que querrás hacer es revisar el registro en la pasarela de SMS.
Paso 10 - Revisa los registros en la Pasarela de SMS
Abre la página de detalles de testuser haciendo clic en el enlace testuser en el panel de control de la Pasarela de SMS Ozeki. Esto nos llevará al registro de eventos de la cuenta testuser. En este registro de eventos, esperamos ver la comunicación que tiene lugar entre el cliente de SMS en C# y la Pasarela de SMS. También esperamos ver el mensaje SMS recibido en el registro de comunicación (Figura 19).
Localiza la línea "Received." en la pestaña de eventos de testuser. Verás el SMS recibido por el cliente de SMS en C# en esta línea. Puedes ver la fecha y hora del evento y los detalles del mensaje. Debajo de la entrada legible del registro, verás el registro de comunicación del protocolo OZX. Este registro te permite depurar la comunicación en caso de que surja algún problema (Figura 20).
Recibir un mensaje de texto de la red móvil
En los pasos anteriores, hemos simulado un mensaje entrante. El usuario administrador envió un mensaje que se reenvió al ejemplo de SMS en C#. El siguiente paso es conectar el sistema a la red móvil. Para esto, tienes varias opciones. Puedes conectarte a un proveedor de servicios de SMS basado en Internet usando una pasarela de SMS para Android (Figura 21).
Para que la solución anterior funcione con un teléfono Android, todo lo que tienes que hacer es crear una ruta de entrada en la Tabla de enrutamiento de SMS Ozeki. Debes crear esta ruta entre la conexión de red móvil y el usuario de la API de SMS en C# (testuser). Para encontrar el mejor método de conexión de red móvil para tu proyecto, consulta nuestra guía cómo conectar tu pasarela de SMS a la red móvil (Figura 22).
En resumen
Esta ha sido una lista de instrucciones larga y muy detallada para ayudarte a comenzar con el desarrollo de un proyecto de SMS en C# que pueda recibir mensajes SMS. Si comienzas a usar esta solución, descubrirás rápidamente que es muy buena si deseas recibir mensajes SMS rápidamente a través de varias conexiones de red móvil. Esta solución funciona tanto si deseas recibir SMS a través de un teléfono móvil Android como a través de un enlace de SMS por IP, como una conexión cliente SMPP.
More information
- Cómo enviar SMS desde C#
- Recibir SMS en C#
- API de SMS en C# - conectar para enviar SMS
- API de SMS en C# - desconectar de la pasarela SMS
- API de SMS en C# - mantener conexión SMS activa
- API de SMS en C# - enviar un mensaje de texto
- API de SMS en C# - SMS aceptado para entrega
- API de SMS en C# - SMS no aceptado para entrega
- API de SMS en C# - enviado
- API de SMS en C# - envío fallido
- API de SMS en C# - informe de entrega exitoso
- API de SMS en C# - informe de entrega fallida
- API de SMS en C# - ID de remitente alfanumérico
- API de SMS en C# - cómo usar código corto como ID de remitente
- API de SMS en C# - clase de mensaje de texto