Cómo recibir SMS desde Perl

La forma más sencilla de recibir mensajes SMS desde Perl es utilizar la API HTTP/REST de SMS integrada en Ozeki SMS Gateway. Cuando uses esta API, enviarás mensajes SMS mediante una solicitud HTTP Post al gateway de SMS. La solicitud HTTP Post contendrá un mensaje formateado en formato JSON. El gateway de SMS enviará este SMS al teléfono del destinatario y devolverá una respuesta HTTP 200 OK a tu solicitud.

cómo recibir sms desde perl
Figura 1 - Cómo recibir SMS desde Perl

Código Perl para recibir SMS desde un móvil

El ejemplo de código Perl para SMS a continuación demuestra cómo puedes recibir SMS usando la API HTTP REST de SMS de Ozeki SMS Gateway con la biblioteca Perl Ozeki.Libs.Rest. Esta biblioteca se te proporciona gratuitamente y puedes usarla y modificarla en cualquiera de tus proyectos.

ReceiveSms.pl
use Ozeki::Libs::Rest::Configuration;
use Ozeki::Libs::Rest::MessageApi;

my $configuration = new Ozeki::Libs::Rest::Configuration();
$configuration->{ Username } = "http_user";
$configuration->{ Password } = "qwe123";
$configuration->{ ApiUrl } = "http://127.0.0.1:9509/api";

my $api = new Ozeki::Libs::Rest::MessageApi($configuration);

my $result = $api->DownloadIncoming();

print($result->stringify, "\n");

foreach my $message (@{ $result->{ messages } }) {
    print($message->stringify, "\n");
}

Cómo usar el ejemplo de SMS en Perl:

Este ejemplo de SMS en Perl puede usarse en cualquier aplicación Perl. Para usarlo, debes añadir la biblioteca Ozeki.Libs.Rest a tu proyecto. Después de añadir la biblioteca, debes incluir la directiva use Ozeki::Libs::Rest; en la sección de encabezado de tu código fuente Perl. Esto te permitirá usar las clases proporcionadas por la biblioteca Ozeki.Libs.Rest. Puedes usar la clase Message para crear el SMS. Puedes usar la clase MessageApi para recibir los mensajes SMS en el gateway de SMS. El gateway de SMS enviará tu mensaje a la red móvil ya sea mediante una conexión inalámbrica o a través de Internet.

Descargar ReceiveSms.pl

El código fuente explicado en este artículo puede descargarse, usarse y modificarse gratuitamente.
Descargar: ReceiveSms.pl.zip (76.0Kb)

¿Qué contiene el archivo ReceiveSms.pl.zip?

El archivo ReceiveSms.pl.zip contiene la biblioteca Ozeki.Libs.Rest, que te proporciona todas las herramientas necesarias para enviar y recibir mensajes SMS. También encontrarás el archivo ReceiveSms.pl en el zip, que contiene el código de ejemplo para mostrarte cómo recibir un SMS. Este código de ejemplo se muestra a continuación.

Figura 2 - Qué hay dentro de ReceiveSms.pl.zip

Cómo recibir SMS en Perl (Guía rápida)

Para recibir SMS en Perl:

  1. Descarga el archivo ReceiveSms.pl.zip
  2. Extrae el archivo .zip de la carpeta de Descargas
  3. Abre el archivo ReceiveSms.pl en un editor de texto
  4. Inicia Ozeki SMS Gateway
  5. Haz clic en HTTP user en la pestaña Users and applications
  6. Ejecuta ReceiveSms.pl para recibir SMS usando la línea de comandos
  7. Revisa la Bandeja de entrada en Ozeki SMS Gateway

Instalar Ozeki SMS Gateway y crear un usuario HTTP API

Para poder enviar y recibir SMS desde Perl, primero necesitas instalar Ozeki SMS Gateway. El gateway de SMS puede instalarse en la misma computadora donde desarrollas tu código Perl en Visual Studio. Después de la instalación, el siguiente paso es conectar Ozeki SMS Gateway a la red móvil. Puedes enviar un SMS de prueba desde la interfaz gráfica de Ozeki para verificar que tu conexión a la red móvil funcione. El paso final para preparar tu entorno es crear un usuario HTTP API para SMS. Crea un usuario con el nombre "http_user" y la contraseña "qwe123" para que el ejemplo funcione sin modificaciones.

Una vez configurado el entorno, puedes ejecutar tu código Perl.

URL de la API HTTP para recibir SMS desde Perl

Para enviar SMS desde Perl, tu aplicación Perl deberá realizar una solicitud HTTP al gateway de SMS. La URL de la API se muestra a continuación. Ten en cuenta que la dirección IP (127.0.0.1) debe reemplazarse por la dirección IP de tu gateway de SMS. Si Ozeki SMS Gateway está instalado en la misma computadora donde se ejecuta la aplicación Perl de SMS, puede ser 127.0.0.1. Si está instalado en una computadora diferente, debe ser la dirección IP de esa computadora.

http://127.0.0.1:9509/api?action=rest

Autenticación HTTP para recibir SMS desde Perl

Para autenticar el cliente de SMS en Perl, necesitas enviar el nombre de usuario y la contraseña en una cadena codificada en base64 al servidor en una solicitud HTTP. El formato utilizado es: base64(nombredeusuario+":"+contraseña). En Perl puedes usar el siguiente código para hacer esta codificación:

my ($self, $Username, $Password) = @_;
my $Username_Password = "${Username}:${Password}";
my $Username_Password_encoded = encode_base64($Username_Password);
return "Basic ${Username_Password_encoded}";
	

Por ejemplo, si codificas el nombre de usuario 'http_user' y la contraseña 'qwe123', obtendrás la siguiente cadena codificada en base64: aHR0cF91c2VyOnF3ZTEyMw==. Para enviar

Solicitud HTTP para recibir SMS con Perl

Para recibir SMS, tu aplicación Perl enviará una solicitud HTTP similar a la que se muestra a continuación. Ten en cuenta que esta solicitud contiene una parte de encabezado HTTP y una parte de cuerpo HTTP. El cuerpo HTTP es una cadena de datos codificada en JSON. Contiene el número del destinatario y el texto del mensaje.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Connection: TE, close
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 192.168.0.14:9509
Te: deflate,gzip;q=0.3
User-Agent: libwww-perl/6.43
	

Encabezado de solicitud HTTP para recibir SMS desde C#

Para enviar los mensajes SMS, necesitas incluir las siguientes líneas como encabezados en la solicitud HTTP. Ten en cuenta que incluimos un encabezado de tipo de contenido y un encabezado de Autorización.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

Respuesta HTTP recibida por el ejemplo de SMS en Perl

Una vez que el gateway de SMS recibe esta solicitud, generará una respuesta HTTP. La respuesta HTTP contendrá un código de estado para indicar si el envío del SMS fue exitoso o no. También devolverá una estructura codificada en JSON para proporcionarte detalles útiles sobre el envío del mensaje.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 02 Jul 2021 16:00:35 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "a860555d-db45-11eb-82d5-c00c4d4e2ea7",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36201111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-02 14:56:18",
	      "valid_until": "2021-07-09 14:56:18",
	      "time_to_send": "2021-07-02 14:56:18",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "a8607b04-db45-11eb-818e-c00c4d4e2ea7",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36202222222",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-07-02 14:56:18",
	      "valid_until": "2021-07-09 14:56:18",
	      "time_to_send": "2021-07-02 14:56:18",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "a8609539-db45-11eb-80db-c00c4d4e2ea7",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36203333333",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-07-02 14:56:18",
	      "valid_until": "2021-07-09 14:56:18",
	      "time_to_send": "2021-07-02 14:56:18",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}

Cómo recibir SMS con Perl usando la API de SMS en Perl (Tutorial en video)

Estos videos te mostrarán cómo instalar el módulo Ozeki::Libs::Rest y cómo usar el programa de ejemplo ReceiveSms.pl. El video te mostrará cómo puedes descargar la carpeta del proyecto ReceiveSMS.pl, cómo configurar un sistema que puedas empezar a usar. El video solo dura 1:30 minutos pero incluye todos los pasos que necesitas seguir. El tutorial es claro y fácil de seguir, por lo que no tendrás problemas para replicar el proceso.

Video 1 - Cómo descargar y configurar la solución de ejemplo (Tutorial en video)

Ejemplo de SMS en Perl: ReceiveSms.pl

En la Figura 3, puedes ver el código fuente de ReceiveSMS.pl. Este código descargará todos los mensajes entrantes de un servidor y los imprimirá en pantalla. Debes proporcionar las credenciales de inicio de sesión del servidor en las variables 'Username' y 'Password'. Si estás familiarizado con el lenguaje de programación Perl, siéntete libre de modificar el código para que se adapte perfectamente a tus necesidades.

Figura 3 - ReceiveSms.pl

Cómo recibir SMS con el código Perl (Tutorial en video)

En este video, verás el código en acción. Te mostraremos cómo ejecutar el código y verificar sus resultados. Comenzará con una terminal abierta y el código abierto, y te llevará a leer los mensajes recibidos. El video solo dura 1 minuto y es fácil de seguir. No tendrás problemas para seguir los pasos.

Video 2 - Cómo recibir SMS con el código Perl anterior (Tutorial en video)

En resumen

Este artículo explicó cómo recibir mensajes SMS desde Perl usando la API HTTP REST de SMS integrada en Ozeki SMS Gateway. Si has seguido el tutorial cuidadosamente, ahora puedes crear un usuario HTTP en Ozeki SMS Gateway y usar el repositorio proporcionado para recibir mensajes SMS con la API de SMS en Perl. Esta biblioteca se te proporciona gratuitamente y puedes usarla y modificarla en cualquiera de tus proyectos.

Cuanto más conocimiento tengas, más eficiente podrás ser, así que sigue leyendo. Consulta el artículo Cómo descargar la última biblioteca de SMS en Perl desde Github y aprende a usar la API de SMS en Perl de manera más amplia.

¡Descarga Ozeki SMS Gateway ahora y que comience el trabajo!

More information