Canal:
Kannel es una puerta de enlace WAP y SMS de código abierto para redes GSM. Además, Kannel puede enviar/recibir SMS usando un módem serial o USB GSM. Se puede acceder a través de la API HTTP y se puede utilizar para enviar SMS masivos, OTP, etc.
Entonces, Kannel tiene tres programas principales llamados cajas:bearerbox , buzón de sms , caja de transferencia .
- Interfaces Bearerbox hacia los teléfonos. Acepta mensajes WAP y SMS de los teléfonos y los envía al resto de buzones.
- SMSbox maneja la funcionalidad de puerta de enlace de SMS.
- WAPbox maneja la funcionalidad de puerta de enlace WAP.
Es posible tener varios SMSboxes y varios WAPboxes en diferentes hosts que le permitan manejar una carga más grande.
Kannel también admite la integración de bases de datos y admite mysql , pgsql , sdb , mssql , sqlite3 , oráculo , redis y casandra .
Kannel tiene una amplia gama de compatibilidad con módem GSM; además, cualquier módem GSM al que se pueda acceder a través del puerto serie o USB con el controlador adecuado y que admita el comando AT se usará con Kannel.
Prepárese para instalar Kannel SMS Gateway:
Aquí vamos a instalar la última versión estable 1.4.5 de Kannel SMS Gateway desde el archivo tar de origen en Debian 10 (buster) . Aquí configuraremos los componentes principales:bearerbox y smsbox el que se utiliza para SMS Gateway.
Compruebe la versión del sistema operativo
root@sms-gw:~# cat /etc/os-release
Salida:

Conecte el módem USB con el host Linux y verifique si detecta el módem emitiendo lsusb comando
root@sms-gw:~# lsusb
Salida:

El módem ha detectado en el bus 2.
Ahora tenemos que encontrar en qué TTY está conectado el módem
root@sms-gw:~# ls /dev/ttyUSB*
Salida:

Vemos que el módem está conectado en /dev/ttyUSB0 y /dev/ttyUSB1 .Por lo general, la velocidad en baudios de esos módems es 9600 o 115200.
Hay una herramienta útil wvdial , para identificar el TTY USB y la velocidad en baudios de un módem. dial wv generalmente se usa como un marcador PPP de línea de comando para usar Internet móvil.
Instale wvdial para encontrar el TTY USB y la velocidad en baudios del módem.
root@sms-gw:~# apt-get update
root@sms-gw:~# apt-get install -y wvdial
Problema wvdialconf comando para descubrir el TTY y la tasa de baudios del módem
root@sms-gw:~# wvdialconf
Salida:

De la salida encontramos que el módem está conectado en /dev/ttyUSB0 y velocidad de transmisión id 9600. wvdialconf también escribe la configuración básica del módem en /etc/wvdial.conf archivo.
Ahora instale las dependencias necesarias para Kannel
root@sms-gw:~# apt-get install -y linux-headers-$(uname -r) build-essential make gcc cpp wget curl libxml2 libxml2-dev bison flex byacc zlib1g-dev libiconv-hook1 libtool
Instalando Kannel SMS Gateway:
Descargue el código fuente desde https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gz
root@sms-gw:~# wget --no-check-certificate https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gz
Descomprima el archivo e ingrese al directorio de origen
root@sms-gw:~# tar -zxf gateway-1.4.5.tar.gz
root@sms-gw:~# cd gateway-1.4.5/
Ejecute configurar archivo con el prefijo del directorio de inicio de kannel y start-stop-deamon, aquí estamos usando /usr/local/kannel como directorio de inicio de kannel
root@sms-gw:~/gateway-1.4.5# ./configure --enable-start-stop-daemon --prefix=/usr/local/kannel
También podemos deshabilitar el wapbox ya que no lo usaremos
root@sms-gw:~/gateway-1.4.5# ./configure --enable-start-stop-daemon --prefix=/usr/local/kannel --disable-wap
Después de completar con éxito configure ejecutar el script, compilar el paquete
root@sms-gw:~/gateway-1.4.5# make
Instalar los programas con archivos de datos y documentación
root@sms-gw:~/gateway-1.4.5# make install
Instalará los binarios, bibliotecas y documentos necesarios en diferentes directorios en /usr/local/kannel/ ubicación.
Ahora crea etc , correr y registrar directorios
root@sms-gw:~# mkdir /usr/local/kannel/etc
root@sms-gw:~# mkdir /usr/local/kannel/run
root@sms-gw:~# mkdir /var/log/kannel/
Cree el archivo de configuración de kannel /usr/local/kannel/etc/kannel.conf con los siguientes contenidos
##CORE
group = core
admin-port = 13000
smsbox-port = 13001
admin-password = sms-gw-admin-passwd
status-password = sms-gw-status-passwd
admin-deny-ip = "*.*.*.*"
admin-allow-ip = "*.*.*.*"
box-deny-ip = "*.*.*.*"
box-allow-ip = "*.*.*.*"
log-level = 0
log-file = "https://1118798822.rsc.cdn77.org/var/log/kannel/kannel.log"
dlr-storage = internal
sms-resend-retry = 1
##SMSC
group = smsc
smsc = at
smsc-id = smsc01
allowed-smsc-id = smsc01
preferred-smsc-id = smsc01
modemtype = Huawei
device = /dev/ttyUSB0
speed = 9600
alt-charset = "GSM"
sim-buffering = true
log-file = /var/log/kannel/smsc01-gsm1.log
log-level = 0
##MODEMS
group = modems
id = Huawei
enable-mms = true
init-string = "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0;+CNMI=1,3,2,2,1;+CMEE=1;+CPMS=\"SM\",\"SM\",\"SM\";+CMGF=0;+CSCS=GSM
speed = 9600
detect-string = "huawei"
##SMSBOX
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
global-sender = 13013
mo-recode = true
sendsms-chars = "0123456789 +-"
log-file = "https://1118798822.rsc.cdn77.org/var/log/kannel/smsbox.log"
log-level = 0
access-log = "https://1118798822.rsc.cdn77.org/var/log/kannel/access.log"
##SMS-USER
group = sendsms-user
user-deny-ip = "*.*.*.*"
user-allow-ip = "*.*.*.*"
username = kannel
password = kannelpasswd
default-smsc = smsc01
concatenation = 1
max-messages = 10
##SMS-SERVICE
group = sms-service
keyword = default
get-url = " "http://%S"
accept-x-kannel-headers = true
max-messages = 10
concatenation = true
catch-all = true
omit-empty = true
get-url = "http://PLAYSMS-SERVER-IP/playsms/plugin/gateway/kannel/geturl.php?t=%t&q=%q&a=%aQ=%Q&smsc=%i"
Crear inicio script para iniciar/detener los cuadros de kannel como /etc/init.d/kannel
#!/bin/bash
# Start/stop the Kannel boxes: One bearer box and one SMS box.
BOXPATH=/usr/local/kannel/sbin
PIDFILES=/usr/local/kannel/run
CONFDIR=/usr/local/kannel/etc
CONF=$CONFDIR/kannel.conf
USER=kannel
VERSION=""
RB=$BOXPATH/run_kannel_box$VERSION
BB=$BOXPATH/bearerbox$VERSION
WB=$BOXPATH/wapbox$VERSION
SB=$BOXPATH/smsbox$VERSION
SSD=$BOXPATH/start-stop-daemon$VERSION
PATH=$BOXPATH:$PATH
case "$1" in
start)
echo -n "Starting WAP gateway: bearerbox"
$SSD --start --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_bearerbox.pid $BB -- $CONF
echo -n " smsbox"
$SSD --start --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_smsbox.pid $SB -- $CONF
sleep 3
echo "."
;;
stop)
echo -n "Stopping WAP gateway: "
echo -n " smsbox"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB
echo -n " bearerbox"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB
echo "."
;;
status)
CORE_CONF=$(grep -r 'group[[:space:]]*=[[:space:]]*core' $CONFDIR | cut -d: -f1)
ADMIN_PORT=$(grep '^admin-port' $CORE_CONF | sed "s/.*=[[:space:]]*//")
ADMIN_PASS=$(grep '^admin-password' $CORE_CONF | sed "s/.*=[[:space:]]*//")
STATUS_URL="http://127.0.0.1:${ADMIN_PORT}/status.txt?password=${ADMIN_PASS}"
curl $STATUS_URL
;;
reload)
# We don't have support for this yet.
exit 1
;;
restart|force-reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {start|stop|status|reload|restart|force-reload}"
exit 1
esac
exit 0

Haga el /etc/init.d/kannel archivo ejecutable
root@sms-gw:~# chmod +x /etc/init.d/kannel
Iniciar canal
root@sms-gw:~# /etc/init.d/kannel start
Salida:

Comprobar canal bearerbox y smsbox estado de escucha

Verifique el estado de Kannel desde el interior de la caja de Linux
root@sms-gw:~# /etc/init.d/kannel status

Utilice http://192.168.10.38:13000/status?password=sms‑gw‑admin‑passwd URL del navegador de la máquina cliente de Windows para comprobar el estado

Enviar SMS usando Kannel SMS Gateway:
Podemos enviar SMS desde el navegador de cualquier máquina cliente usando URL. Ejemplo:
http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000&text=SMS+from+kannel+01

La página web muestra el código de respuesta SMS Push 0:Aceptado para entrega , que indica que Kannel ha aceptado el SMS para su entrega al destinatario
Envío de SMS desde el cuadro de Linux usando curl
root@host1:~# curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000&text=SMS+from+kannel+02"
Salida:

Enviar SMS usando texto SMS desde un archivo usando curl
root@host1:~# echo "SMS from file using curl" > smsfile.txt
root@host1:~# curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000" -G --data-urlencode text@smsfile.txt
Envío de SMS por tubería salida a curl
root@host1:~# printf "SMS from output" | curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000" -G --data-urlencode text@-
SMS recibidos por el dispositivo móvil

IP de host de SMS-GW | 192.168.10.38 |
IP del host del cliente de Windows | 192.168.10.31 |
IP del host del cliente Linux | 192.168.10.37 |
Modelo de módem GSM | Módem USB Huawei E303 3G/GSM |
Comprobación de registros:
/var/log/kannel/access.log El archivo registra las solicitudes de acceso exitosas de los clientes.
Registro de ejemplo:

/var/log/kannel/smsbox.log registra la solicitud del cliente y las comunicaciones con bearerbox.
Los registros relacionados con el módem GSM se encontrarán en /var/log/kannel/smsc01-gsm1.log archivo.
Niveles de gravedad del registro:
nivel de registro directiva de configuración en cada grupo de configuración en kannel.conf El archivo define el nivel de gravedad del registro para ese grupo y registra en consecuencia en archivo de registro dado en ese grupo . Los niveles de registro son:
0> depurar
1> información
2> advertencia
3> error
4> pánico
Consejos de seguridad:
- administrador-denegar-ip y admin-permitir-ip Las directivas definen la lista de direcciones IP permitidas o prohibidas para acceder al portal de administración de kannel. Cada lista puede tener varias direcciones separadas por “;” , “*” representa todos los números en un octeto. Ejemplo:si queremos permitir 192.168.10.31 y localhost puede acceder al portal de administración y todas las demás direcciones IP deben bloquearse, las directivas de configuración serán como se muestra a continuación
administrador-denegar-ip =“*.*.*.*”
administrador-permitir-ip =“127.*.*.*; 192.168.10.31”
- Del mismo modo box-deny-ip y box-allow-ip Las directivas definen una lista de direcciones IP a las que se les permite acceder a bearerbox . Es útil cuando usamos múltiples smsbox . Listaremos el smsbox Direcciones IP en box-allow-ip para acceder a bearerbox programa.
- usuario-denegar-ip y usuario-permitir-ip se utilizan para permitir/denegar la dirección IP del usuario.
- Es mejor usar la directiva de denegación y luego permitir una dirección IP selectiva para cada tipo de control de acceso.
- Utilice un nombre de usuario/contraseña muy seguro para todas las opciones de nombre de usuario/contraseña que se muestran en kannel.conf archivo.
Referencias:
- https://www.kannel.org/download/kannel-userguide-snapshot/userguide.html
Cómo instalar el último PHP 8.1 en Debian 11/10
Cómo instalar la herramienta de administración de Webmin en Debian 10/11
Cómo instalar varias versiones de PHP con Apache en Debian 11/10
Cómo instalar el servidor SVN en Debian 11/10
Integración de PlaySMS Kannel SMS Gateway en NGINX+Debian
Cómo instalar la herramienta de monitoreo Zabbix en Debian 11/10
Código de estado | Cuerpo del mensaje | Significado |
202 | 0:Aceptado para entrega | El SMS ha sido aceptado y se envía a un conductor de SMSC |
202 | 3:En cola para entrega posterior | La caja del portador aceptó y almacenó el mensaje en una cola para entregarlo más tarde |
4xx | (varía) | Hubo algo mal en la solicitud o configuración de Kannel, verifique la solicitud y la configuración de Kannel. |
503 | Error temporal, vuelva a intentarlo más tarde | Hubo un error temporal, inténtelo de nuevo más tarde. |