Kannel

Interfacer kannel avec drupal

Pour terminer l’année en beauté on va montrer comment interfacé Kannel avec Drupal.L’objectif de cet article est de permettre l’envoi d’un simple SMS à partir d’une interface web en utilisant un CMS Open-source ( Drupal )   😉  .Techniquement on fera du Push et cela suppose que vous avez déjà configurer votre Kannel et que vous avez aussi bien installer votre drupal.Enfin il existe un petit nombre de module déjà existant pour interfacer kannel et drupal mais cet article va tenter de vous apportez quelques connaissances  nécessaire pour  la création de votre propre module répondant à un besoin spécifique.Et j’espère qu’il  répondra à vos besoins 😉

Prérequis

        • Installer Drupal 6.22
        • Serveur Kannel Fonctionnel
        • Quelques connaissances en PHP 🙂
        • Systeme d’exploitation Linux ou Windows

Création du module

Notre module s’appellera drupalsms vous pouvez mettre un nom arbitraire cela dépend uniquement de vous 😉

Première Étape

      • Créer un dossier drupalsms dans le dossier de  Drupal
      • mkdir sites/all/modules/drupalsms
      • Créer deux fichiers dans le dossier drupalsms
      • Touch drupalsms.info drupalsms.module

dans le premier fichier  on mettra le nom ,la description du module et on définira ainsi le version du drupal qu’il utilise et dans la deuxième on mettra le code.pour plus d’information sur comment créer un module veillez consulter la documentation fourni par le site officiel: creer un module drupal

Deuxième Étape

    • Editez le fichier drupalsms.info
name = drupalsms
description = push sms with drupal
core = 6.22
  • Editez le fichier drupalsms.module
<?php
//Créer un petit menu qui va gérer notre application
function drupalsms_menu() {
$items=array();
$items['admin/drupalsms']= array(
'title' => 'Drupal SMS',
'description' => 'Push SMS service',
'page callback' => 'drupal_get_form',
'page arguments' => array ('drupalsms_send'),
'access arguments' => array('drupalsms send '),
);
return $items;
}
//le formulaire pour recuper le numéro du destinataire et le texte a envoyé
function drupalsms_send() {
//Champ pour recuperer le Numero
$form['user_num']=array(
'#type' => 'textfield',
'#title' => t('Numero'),
'#description'  => 'Numero  du users',
'#required' => TRUE,
);
//Champ Pour ecrire le message
$form['texte_sms']=array(
'#type' => 'textarea',
'#title' => t('Message'),
'#description' => 'Champ texte pour envoi du message',
'#required' => TRUE,
);
//creer le boutton submit
$form['envoi_sms']=array(
'#type' => 'submit',
'#value' => t('Envoi'),
);
return $form;
}
Function drupalsms_send_submit($form,&$form_state){
//récupérer le Numero du formulaire
$Num=$form_state['values']['user_num'];
//récupérer le texte à envoyer en remplaçant les espaces par des ”+”
$Text=str_replace(' ','+',$form_state['values']['texte_sms']);
//definition du login et du password
$login="tester";
$pass="foobar";
//envoi du message à partir de kannel
$url="http://localhost:13013/cgi-bin/sendsms?username=$login&password=$pass&to=$Num&text=$Text";
file($url);
}
?>

Troisiéme Etape

Si tout se passe bien jusqu’à cette étape donc on peut aller activer notre chère module qui doit être prêt à l’utilisation :). Allez consulter la liste des modules de votre drupal et vous devez avoir quelque chose qui ressemble à cette image

On peut activer et enregistrer … Et si tout est ok on peut aller visualiser notre petit module  🙂

Bon voila le travail  est fait 😉 la balle est dans votre camp maintenant :-p   alors à vos éditeurs et à vos imaginations 🙂 .vous pouvez télécharger aussi le dossier drupalsms ici .Bonne fête de fin d’année à tous 😉
PS:en bonus je vous suggère d’utiliser Geany c’est un  “couteaux suisse”  pour un développeur 😉 .

Quelques liens utiles

Tester Kannel avec un Fakesmsc

Bon kannel c’est compliqué  il n’y a  pas beaucoup de modèle de téléphone compatible pour faire des testes voilà la chanson que j’attends tous les jours( venant des utilisateurs de rapidsms )  et maintenant c’est révolue 🙂 . Ce billet s’adresse à ceux qui ont déjà installer kannel, si ce n’est pas le cas alors suiver ce lien installation de kannel .bon a l’attaque!!!! 😉

Pre-requis

  • Installer kannel et bien configurer 😉

Ajouter la configuration de fakesmsc a kannel.conf

Ajouter un groupe au fichier kannel.conf

group=smsc
smsc = fake
smsc-id=smsctest
port =1000
connect-allow-ip =127.0.0.1

Démarrer le teste

Démarrer d’ abord votre Bearerbox et votre smsbox ensuite avec un autre terminal aller dans le dossier Gateway

Format: test/fakesmsc [-H host] [-r port] [-i interval] [-m max] <msg>

Exemple:

sudo  test/fakesmsc -r 1000 -i 0.1 -m 1 "1 2 text test"

comme vous le voyez on a des options avec fakesmsc

  • Host : c’est l’adresse du serveur définie au niveau du fichier de configuration par défaut c’est 100.100.100.100
  • Port : c’est le numéro de port définie au niveau du fichier de configuration part défaut c’est egale a 10000
  • Intervall :c’est le temps en seconde d’une génération de message
  • Max :c’est le nombre de message qu’on peut envoyer  par défaut c’est égal a -1 qui veut dire l’infinie 🙂
  • <msg> dans le message on définie deux numeros arbitraires le premier vas representer le recpeteur et l’autre l’emetteur  et ensuite on definie le type du message dans notre cas c’est text et enfin le mot cle du service suivie de ces options.

Source

Configuration de Kannel

Configuration et installation de Kannel
On va installer kannel et le configurer dans un but pédagogique. Donc ceci consiste à mettre en place un serveur qui permettra d’envoyer et de répondre à un sms automatiquement.
L’aspect théorique est laissé au soin du lecteur des liens seront mis en annexes pour les utilisateurs désirant approfondir leurs connaissances. Ce qui veut dire que seul l’aspect pratique sera  mise en exergue!
I.Installation
Allez sur le site de kannel et télécharger le paquet gateway (dans ce tutos le version 1.4.3 est utilisé)
et décompresse en tapant la commande «sudo tar xzvf Téléchargements/gateway-1.4.3.tar.gz »,compiler et installer
pour les novices voici les différentes commandes à taper
==>récupérer le paquet avec la commande wget

sudo wget http://kannel.org/download/1.4.3/gateway-1.4.3.tar.gz

==>décompresse le paquet avec la commande tar

 sudo tar xzvf  gateway-1.4.3.tar.gz

==>Se déplacer dans le répertoire de gateway-1.4.3

cd  gateway-1.4.3/

==> installons les dépendances de kannel les deux paquets libxml2 et libxml2-dev

sudo aptitude install libxml2-dev libxml2

==>maintenant nous pouvons compiler notre cher gateway

sudo ./configure

si tout est OK on continue

 sudo ./configure && sudo make

si tout est OK on continue et on l’installe

sudo make bindir=/usr/bin/kannel install

voilà ca devrait faire l’affaire notre serveur SMS est installé sans problème reste maintenant la configuration
II.Configuration
La configuration est assez simplement il nous faut un modem GSM(on utilisera un téléphone portable de marque NOKIA série 6230i comme modem GSM) et  également une clé bluetooth pour relier notre modem à l’ordinateur(vous pouvez aussi utiliser un câble ca ne gène pas)
en première lieu nous allons essayer d’établir une liaison série entre le modem et l’ordinateur en utilisant La technologie RFCOMM.
Ouvrons un terminal et lançons nous à la recherche de notre cher ami le modem mais avant tout veillez penser à activé le bluetooth sur votre portable
==>heureusement qu’on a des outils comme hcitools lançons la recherche !

 sudo hcitool scan

Scanning …
00:1E:E2:69:F4:5C €lw@n$
hohé suis la  !!!
si vous ne voyez pas le « hohé suis la »   redemander votre machine !
vous n ‘êtes pas sérieux quand même c’était une blague :-p
continuons notre …
==>notre cher modém est la tout heureux maintenant relions le à notre machine en utilisant RFCOMM

 sudo rfcomm connect 0 00:1E:E2:69:F4:5C 1

Connected /dev/rfcomm0 to 00:1E:E2:69:F4:5C on channel 1
Press CTRL-C for hangup
cela veut dire qu’on c’est connecté sur le device rfcomm0 dans le canal 1
tout se passe bien alors? bah oui! 🙂
Alors on a relié notre périphérie en liaison série avec notre machine il nous reste à configurer notre serveur.
Avant d’y aller faisons un petit tour au niveau des commandes AT et regardons si on peut testé notre chér modeme.
Installons minicom vous savez installer maintenant sinon on s’arrête là! 😉  bon pas de soucis pour les fainéants copier et coller!

sudo aptitude install minicom et attendre la fin de l’installation

toujours dans notre terminal tapez

sudo minicom -s pour configurer minicom avec notre modem

=>Aller dans configuration du port série tapez A
=>changer le Port série :/dev/xxx en /dev/rfcomm0
=>appuyer sur Entrer pour sauvegarder
=>sur Entre a nouveau pour sortir
=>aller dans Enregistrer config. sous dfl pour sauvegarder la configuration par défaut
=> Puis sortir
si tout est OK vous devriez avoir quelques du genre
Bienvenue avec minicom 2.4
OPTIONS: I18n
Compilé le Jan 25 2010, 06:49:09.
Port /dev/rfcomm0
Tapez CTRL-A Z pour voir l’aide concernant les touches spéciales
OK
Maintenant voyons si notre SIM est bien en place
tapez toujours de le même terminal AT+CPIN ? Entrer
AT+CPIN?
+CPIN: READY
OK
Voilà le résultat attendu donc tout est OK ! Je vous encourage à lire la documentation sur les commandes AT ils sont intéressantes et permettes de faire des choses extra…. si vous maitrisez python ou C/C++ je vous assure que leur combinaison fait des ravages!à bon entendeur …..  🙂
Revenons à nos moutons!c’était quoi encore ……haa OK!la fameuse configuration de kannel! 😉
Ouvrons un autre terminal et créer d’ abord le répertoire /etc/kannel

sudo mkdir /etc/kannel

Créons le fichier /etc/kannel/kannel.conf

sudo vim etc/kannel/kannel.conf

bon chacun y vas avec son éditeur favori  😉
le fichier de configuration se compose de 5 groupe voir 6
=>le premier est le groupe core
=>le second le groupe smsc
=>le troisième est le smsbox
=>le quatrième est le sendsms-user
=>le cinquième est le sms-service
=>le sixième est le modems
voilà notre fichier de configuration toute préte

#-------------------------------------------------------

#CORE
group = core
admin-port = 13000
admin-password = bar
smsbox-port = 13001
log-file = “/var/log/kannel/bearerbox.log”
log-level=1
access-log = “access.log”
log-level=1
unified-prefix = “00221,+221,00”
bearerbox-host = localhost
#———————————————
# SMSBOX SETUP
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
sendsms-url = “/cgi-bin/sendsms”
global-sender = 13013
sendsms-chars = “0123456789 +-”
log-file = “/tmp/smsbox.log”
log-level = 0
access-log = “access.log”
#———————————————
# SMSC CONNECTIONS
group = smsc
smsc=at
modemtype=nokiaphone
host = localhost
device=/dev/rfcomm0
speed=9600
validityperiod =167
#———————————————-
#MODEM
group = modems
id = nokiaphone
name = “Nokia Phone”
detect-string = “Nokia Mobile Phone”
need-sleep = true
enable-mms = true
#———————————————
# SEND-SMS USERS
group = sendsms-user
username = tester
password = foobar
max-messages = 3
concatenation = true
#user-deny-ip = “*.*.*.*”
user-allow-ip = “*.*.*.*”
#———————————————
# SERVICES
group = sms-service
keyword = test
text = “test kannel is valide!”
******FIN DU FICHIER DE CONFIGURATION******
Telecharger le fichier ici
III.Test
maintenant tout est fin prés démarrons notre serveur!;)
++ouvrons un terminal

sudo /usr/local/sbin/bearerbox  /etc/kannel/kannel.conf

++ouvrir un autre terminal

 sudo /usr/local/sbin/smsbox  /etc/kannel/kannel.conf



Envoyer un sms depuis votre navigateur
ouvrer votre navigateur favori et go ahead...;-)

http://localhost:13013/cgi-bin/sendsms?username=tester&password=foobar&to=xxxxxxxxxxx&text=test+kannel+configuration
remplacer le “x” par le numéro de destinataire
en partant de la on peut s’imaginer une interface propre écrite dans votre langage préféré(python,php,java…..) pour envoyer des messages