Cómo enviar SMS con Kannel

Kannel es una pasarela WAP/SMS open source potente y ligera para entornos Unix. Permite recibir SMS en tu web y responder desde tu servidor sin programar desde cero. Requiere conocimientos básicos de Unix.

Instrucciones

  1. Descargue e instale Kannel: vaya a kannel.org, descargue la versión deseada, suba el archivo a su servidor y acceda por SSH/Telnet. Compile e instale con:

    # mkdir src
    cd src
    tar xfz ./downloads/(archivo_kannel)
    cd (archivo_kannel)
    configure --prefix=/usr/local/(carpeta_destino)
    make
    sudo make install
    password: ********
    Reemplace "(archivo_kannel)" por el nombre real (ej. gateway-1.4.1.tar.gz) y "(carpeta_destino)" por su carpeta. Ingrese su contraseña de servidor.

  2. Configure smskannel.conf en el directorio gw/ para el grupo core:

    group = core
    admin-port = 13000
    smsbox-port = 13001
    admin-password = **
    log-file = "/tmp/kannel.log"
    log-level = 0
    box-deny-IP = "*.*.*"
    box-allow-IP = "su_IP"
    Ingrese su contraseña en admin-password y su IP en box-allow-IP (si envía desde el mismo equipo).

  3. Configure grupo smsc para enviar SMS sobre HTTP:

    group = smsc
    smsc = at
    modemtype = auto
    device = /dev/ttyS0
    my-number = (número_SIM_GSM)
    connect-allow-IP = (su_IP)
    log-level = 0

  4. Configure smsbox y sendsms-user para manejo de envío/recepción:

    group = smsbox
    bearerbox-host = 127.0.0.1
    sendsms-port = 13013
    global-sender = (número_SIM_GSM)
    log-level = 0
    
    group = sendsms-user
    username = (su_usuario)
    password = (su_contraseña)
    concatenation = true
    max-messages = 10
    Usuario y contraseña son los que inventará para autenticar envíos.

  5. Configure sms-service para comunicación con su web:

    group = sms-service
    keyword =
    keyword-regex = .*
    catch-all = yes
    max-messages = 0
    get-URL = "(URL_página_para_SMS)"
    Indique la URL exacta de la página con el formulario de envío.

  6. Añada el código de envío en su página web (interfaz de usuario):

    function sendSmsText($in_phoneNumber, $in_message) {
        $URL = '/cgi-bin/sendsms?username=' . CONFIG_KANNEL_USER_NAME
             . '&password=' . CONFIG_KANNEL_PASSWORD
             . '&charset=UCS-2&coding=2'
             . "&to={$in_phoneNumber}"
             . '&text=' . urlencode(iconv('utf-8', 'ucs-2', $in_message));
        $results = file('https://'
             . CONFIG_KANNEL_HOST . ':'
             . CONFIG_KANNEL_PORT . $URL);
    }
    Guarde, vaya a la página y pruebe enviando un SMS.