INSTRUCTIVO
DE INSTALACIÓN DE KANNEL
INTRODUCCIÓN
En este
documento se tratará la instalación del SMS Gateway Kannel, en el documento se
podrán encontrar tanto los requisitos como los pasos para la instalación del
mismo.
Tabla de Contenido
Instructivo de Instalación
de Kannel
1.1
Se requieren 2 servidores
(aunque se puede solo en uno), la instalación se realizó sobre 2 servidores con
Sistema operativo Linux CENTOS 6.2. x86_64
1.2
En uno de los servidores se debe instalar
MySQL en su versión 5.1.61 y para la correcta instalación se deben instalar los
siguientes como usuario root paquetes
(se puede encontrar una guía detallada en: http://www.alcancelibre.org/staticpages/index.php/como-mysql-quickstart):
mysql y mysql-server
1.2.1
El Comando de instalación es:
yum -y install mysql mysql-server libssl-dev openssl
(las ultimas 2 librerias es por si se desea agregar soporte para ssl)
1.3
Para que SELinux permita el inicio del servicio se usa:
setsebool -P mysqld_disable_trans 1
1.4
Para poder iniciar el cliente se usa:
setsebool -P allow_user_mysql_connect 1
1.5
Se debe comprobar el manejo del servicio
con:
/sbin/service mysqld start
/sbin/service mysqld restart
/sbin/service mysqld stop
1.6
Para agregar el inicio de MySQL al arranque
del sistema se usa:
/sbin/chkconfig mysqld on
1.7
Ahora para configurar la clave de usuario root
(se debe tener el iniciado el servidor de MySQL “paso 1.5 de esta guia”) se
usa:
mysqladmin
-u root password nueva-clave-de-acceso
1.8.1 Posterior
a la asignación de clave se debe
comprobar el ingreso del usuario root con el comando:
mysql
–u root –p
(clave)
Aparecerá
el promt de mysql y para efectos de pruebas se usará:
show tables;
1.8.2
Se debe crear la base de
datos (kannel) junto con la tabla necesaria (dlr) y sus campos, las sentencias
SQL serán incluidas a continuación:
CREATE DATABASE kannel;
USE kannel;
CREATE TABLE dlr (
smsc varchar(40),
ts varchar(40),
destination varchar(40),
source varchar(40),
service varchar(40),
url varchar(255),
mask int(10),
status int(10),
boxc varchar(40)
);
1.8.3
Se debe crear un usuario y otorgar resposabilidades sobre la tabla (dlr)
para eso se usa:
Aclaraciones:
El campo (xxx.xxx.xxx.xxx) es la ip del servidor donde quedarán los scripts de
kannel (el servidor que se configurará en el siguiente paso de la guía).
CREATE USER 'usuario_kannel'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'Clave';
GRANT ALL PRIVILEGES ON kannel.dlr TO 'usuario_kannel'@'xx.xx.xx.xx' WITH GRANT OPTION;
exit;
1.8.4
Ahora se debe abrir el puerto en el firewall editando el archivo
(iptables) con el siguiente comando:
vi
/etc/sysconfig/iptables
1.8.4.1
Se debe agregar la siguiente línea(preferiblemente después de la regla
de apertura del puerto de 22 “ssh”):
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
“Se
presiona la tecla (Esc) y se escribe (wq) sin los () o sea wq que quiere decir escribir
y salir. Cabe aclarar que todos los pasos anteriores se deben realizar o
desarrollar como usuario root.”
1.8.5
Se
debe reiniciar el firewall (como usuario root)
con el objetivo de poner en funcionamiento la regla anteriormente creada en el
archivo (iptables), para eso se usa:
/sbin/service iptables restart
Con
lo anterior se da por terminada la parte de instalación y configuración de
MySQL. Creo que aun se preguntarán para que se está haciendo esto, bueno pues
en la base de datos anterior es donde se realiza el registro de las “delivery”
entregas de los mensajes.
1.10
Se debe ingresar al otro
servidor (o sea donde no esté
instalado mysql, se debe ingresar como root)
y se deben instalar los paquetes necesarios para poder proceder a instalar
kannel, para eso se usa:
yum install libxml2 libxml2-devel make posix bison
zlib zlib-devel wget gcc mysql-devel
1.11
Para mayor orden se debe
crear un usuario (kannel), se le debe asignar una clave y se debe ingresar a su
directorio, para eso se usa:
useradd kannel123
passwd kannel123
cd /home/kannel
1.12
Se debe crear la
estructura de directorios para poder almacenar el spool y los logs, para eso se
usa:
mkdir
logs
mkdir
spool
cd
spool
mkdir destino
1.13
Se debe descargar la
version de kannel, para eso se usa:
wget
http://www.kannel.org/download/kannel-snapshot.tar.gz
1.13.1
Se debe descomprimir el
archive descargado y se debe ingresar a la nueva carpeta, para eso se usa:
tar xzf kannel-snapshot.tar.gz
cd kannel-snapshot
1.14
En este momento se
comienza la configuración e instalación de kannel, para eso se usa:
./configure --disable-wap --prefix=/home/kannel
--with-suffix="-test" --with-mysql
make
chmod 0755
gw-config
make install
1.15
Se debe ingresar al
directorio donde están los ejecutables de kannel (bearerbox, smsbox) para eso
se usa:
cd
..
cd
sbin
1.16.1
Para crear smpp.conn se
usa: si se desa agregar el soporte para ssl, se deben agregar las siguientes lineas (
group = core
...
ssl-server-cert-file = "path/filename" ssl-server-key-file = "path/filename" group = smsbox ... sendsms-port-ssl = true)
vi
smpp.conn
Pegar
el siguiente contenido:
group = core
admin-port = 42424
smsbox-port = 42425
admin-password = xyxyxyx
status-password = algo
#admin-deny-ip = ""
#admin-allow-ip = ""
log-level = 0
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1"
access-log =
"/home/kannel/logs/access-destino.log"
store-type = "spool"
store-location = "/home/kannel/spool/destino"
dlr-storage = mysql
include = "/home/kannel/sbin/mysql-dlr.conf"
group = smsc
smsc = smpp
smsc-id = CARLOSCAV
host = 109.239.230.44
receive-port = 12586
port = 12586
smsc-username = usuarioxxx
smsc-password = XXXXXXXX (Solicitar la clave de conexion)
#smsc-username =
"usuario"
#smsc-password = "yyyyyyy"
system-type = "premium"
enquire-link-interval = 120
throughput = 80
msg-id-type = 1
log-file =
"/home/kannel/logs/smpp-destino.log"
log-level = 0
# MO routing towards smppbox
#group = smsbox-route
#smsbox-id = "CELUSMSC"
#shortcode = "4242"
# SMSBOX SETUP
group = smsbox
#smsbox-id = "UDO_HTTP"
bearerbox-host = localhost
sendsms-port = 14243
immediate-sendsms-reply = true
sendsms-chars = "0123456789
+-"
log-file = "/home/kannel/logs/smsbox-destino.log"
log-level = 0
http-request-retry = 10
http-queue-delay = 60
# SEND-SMS USERS
group = sendsms-user
username = usuario_lejos
password = password_lejos
user-deny-ip = "*"
user-allow-ip =
"127.0.0.1;190.71.190.100;190.71.190.50;100.230.230.40"
max-messages = 5
concatenation = true
# SERVICES
# there should be default always
group = sms-service
keyword = nop
text = "You asked nothing and I did
it!"
#group = sms-service
#keyword = default
#post-url="http://ustele.semefue.com/la/ruta.php?sms=%a&mobilnummer=%p&konto=%P&operator=500-molestar&land=500"
#max-messages = 5
#concatenation = true
#accept-x-kannel-headers = true
#omit-empty = true
“Se
presiona la tecla (Esc) y se escribe (wq) sin los () o sea wq que quiere decir
escribir y salir. Cabe aclarar que todos los pasos anteriores se deben realizar
o desarrollar como usuario root.”
1.16.2
Ahora se debe crear el
archivo mysql-dlr.conf (recuerde que los archivos deben estar ubicados en el
direcorio /home/kannel/sbin ) para eso se usa:
vi
mysql-dlr.conf
1.16.2.1
Se debe incluir el
contenido, (se debe tener especial cuidado en el cambio de la ip del servidor a
donde se va a conectar) el que es el siguiente:
group = mysql-connection
id = mydlr
host = 102.138.0.25
port=3306
username = usuario_kannel
password = usuario_kannel
database = kannel
max-connections = 1
group = dlr-db
id = mydlr
table = dlr
field-smsc = smsc
field-timestamp = ts
field-destination = destination
field-source = source
field-service = service
field-url = url
field-mask = mask
field-status = status
field-boxc-id = boxc
cualquier duda adicional, ir a:
http://www.kannel.org/download/kannel-userguide-snapshot/userguide.html#SSL-ENABLING
“Se
presiona la tecla (Esc) y se escribe (wq) sin los () o sea wq que quiere decir
escribir y salir. Cabe aclarar que todos los pasos anteriores se deben realizar
o desarrollar como usuario root.”
1.17
Ahora se debe abrir el puerto en el firewall editando el archivo
(iptables) con el siguiente comando:
vi
/etc/sysconfig/iptables
1.17.1
Se debe agregar la siguiente línea(preferiblemente después de la regla
de apertura del puerto de 22 “ssh”):
-A INPUT -m state
--state NEW -m tcp -p tcp --dport 14243 -j ACCEPT
“Se
presiona la tecla (Esc) y se escribe (wq) sin los () o sea wq que quiere decir
escribir y salir. Cabe aclarar que todos los pasos anteriores se deben realizar
o desarrollar como usuario root.”
1.17.2
Se
debe reiniciar el firewall (como usuario root)
con el objetivo de poner en funcionamiento la regla anteriormente creada en el
archivo (iptables), para eso se usa:
/sbin/service
iptables restart
1.18.1 Ahora se pone correr el bearerbox, para eso
se usa:
/home/kannel/sbin/bearerbox-test
-P /home/kannel/sbin/smpp.conn &
1.18.2 Ahora se pone correr el smsbox, para eso se
usa:
/home/kannel/sbin/smsbox-test
-P /home/kannel/sbin/smpp.conn &
excelente tutoria!.. podrias explicar tambien como hacer para guardar en mysql los sms recibidos y como lo hago en ubuntu server todo esto?..Gracias!
ResponderEliminarhola Anonimo, te puedes remitir al item 1.16 Creación de archivos de configuración (smpp.conn, mysql-dlr.conf) y exactamente al 1.16.2 de este tutorial. Bueno, aunque sse pueden ver los DLR (deliveries) en la base de datos que hemos creado en MySQL, por otro lado se puede verificar el trafico en el fichero de logs en /home/kannel/logs/access-...log, espero haya sido de ayuda.
EliminarHola!. Bacano el tutorial. Lo monté en debian, y falta una cosa, saber si funciona. En uno de los pasos dice que necesito una clave de conexión, ¿dónde la consigo? Agradecería mucho su respuesta. Mi correo es: thaednevol AT gmail DOT com
ResponderEliminarbueno, se puede probar con la siguiente URL:
Eliminarwget http://localhost:14245/cgi-bin/sendsms?username=eurobate&password=carrot&mclass=1&from=3007194031&to=3162267180&text=Prueba&priority=1
en donde localhost es la ip de tu servidor, y el puerto es el configurado en tu servidor para escuchar las peticiones.
con un tail -f puedes verificar el archivo en logs
en /home/kannel/logs/access-...log, espero haya sido de ayuda.
Hola excelente tutorial!..seria posible que hicieras uno con la configuracion de kannel+smpp+bearebox+smsbox+sqlbox, para enviar y recibir sms por mysql. Gracias!.
ResponderEliminarhola, este tutorial es lo que me solictas exactamente, cualquier cosa primero intenta instalarlo con las instrucciones que se tienen en este tutorial solo debes "copiar y pegar" ejecutar cada uno de los comandos y al final si revisas te daras cuenta que eso es lo que me solicitas, esto al final monta: kannel+smpp+bearebox+smsbox+sqlbox
Eliminarkannel
smpp-box
bearer-box
y por ultimo mysql (sqlbox) para los DLR
despues de arrancar el kannel das un "ps aux | grep smpp" y verás que tienes todo lo que me solicitas.
Hola, excelente tutorial, se puede hacer la instalación en un mismo servidor, ya que me fije que tienes dos servidores uno con el mysql y el otro donde tienes el kannel, o habrá algún inconveniente si se instalan los dos programas en un mismo servidor?? gracias de antemano por tu ayuda
ResponderEliminarLo único que se puede hacer es a la ruta que se redirecciona el mensaje se realiza el registro en la base de datos de tu preferencia.
Eliminartenes algun tutorial como correr kannel el windows lo corro un pedazo y se tranca gracias
ResponderEliminarhola mi estimado, lastimosamente no tengo esa información, debo disculparme por revisar los comentarios hasta mas de un año después, lo siento.
EliminarEsta muy bueno, pero tengo una duda, con respecto a la url #post-url="http://ustele.semefue.com/la/ruta.php?sms=%a&mobilnummer=%p&konto=%P&operator=500-
ResponderEliminaren general tengo que crear algo, o como se define esa ruta?
solo es usar la ip local o la ip del servidor o el nombre del serivor donde has instalado el kannel "reemplazar ustele.seefue.com con 127.0.0.1 o la ip del servidor o nombre". me disculpo por responder casi un año despues.
EliminarMuy buen tutorial, ya tengo lo tengo instalado :) tendras algun ejemplo de como hacer para enviar un sms de prueba?
ResponderEliminaren el tutorial se encuentra, pero te adjunto la linea así:
Eliminarhttp://localhost:14245/cgi-bin/sendsms?username=eurobate&password=carrot&mclass=1&from=3007194031&to=3162267180&text=Prueba&priority=1
pido disculpas por la tardanza.
Que tal, he estado revisando tu tutorial, muy completo por cierto. En tu experiencia puedo conectar Kannel a un carrier para servicios de sms de dos vias y sms push?
ResponderEliminaren respuesta tardia a tu pregunta, te comento que en mi experiencia no lo he realizado, pero si tengo claro que se puede, quien me enseño esto sé que lo hizo, pero lastimosamente no tengo idea de como, le preguntaré y ampliaré la respuesta.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarDespues de casi 4 años este tutorial sigue ayudandonos a muchos, se te agradece el tiempo que diste para realizarlo, el empeño que pusiste en crear estas configuraciones, y por compartir el conocimiento que lograste obtener... no se te puede pedir mas mi estimado.... MUCHAS GRACIAS Y FELIZ AÑO NUEVO...
ResponderEliminarSaludos, una consulta se puede en vez de usar mysql, usar sqlite??
ResponderEliminarExcellent tutorial! Could you also explain how to save received SMS in MySQL and how to do all this in Ubuntu Server? Thanks!
ResponderEliminardigital marketing course in coimbatore