sms

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

Envoyer un sms avec votre ordinateur via bluetooth

Ceci est un script python qui permet d’envoyer un sms depuis son ordinateur via une connexion bluetooth avec un téléphone portable.Ceci ne représente pas grand chose…. mais je juge utile de le partager pour l’améliorer  😉
Donc avant toute chose sachez qu’on a deux méthodes d’envoi de sms avec les Commandes AT:
-Le mode Texte(140 caracteres)
-Le mode PDU(160 caracteres)
dans ce tuto le mode Texte sera utilise pour en savoir plus sur les sms suivez ce lien…. en anglais  😛

Prerequis

    • système d’exploitation Linux(Ubuntu)

 

  • Installer Python

 
 

  • Installer les Modules  python-bluetooth  python-bluez

 
 

  • Un téléphone Portable compatible mode texte

 
 

  • Une clé bluetooth a défaut d’un périphérie natif sur votre ordinateur

 
 

  • Un tout petit peu de connaissance en Python 🙂

 
 

Script

 #!/usr/bin/python # -*- encoding: utf-8 -*- import bluetooth #entrer le nom du peripherie bluetooth target_name =raw_input("entrer le nom de votre periphérie:\n") target_address = None #recherche des périphéries bluetooth disponibles nearby_devices = bluetooth.discover_devices() #recherche le nom de votre périphérie dans la liste des adresses disponibles for bdaddr in nearby_devices: if target_name == bluetooth.lookup_name( bdaddr ): target_address = bdaddr break #si la périphérie est trouvée on se lance dans le processus de connexion au téléphone grâce au protocole RFCOMM #on a besoin d'un canal de communication et de l'adresse du périphérie if target_address is not None: bt_addr = target_address channel =  bluetooth.find_service(address=bt_addr, uuid=bluetooth.DIALUP_NET_CLASS)[0]['port'] #channel = 1 #si la connexion est établie on entre le numéro du destinataire et le message a envoye(max 140 caracteres) dest =raw_input("Entrer le numéro du destinataire:\n") text =raw_input("Entrer votre message:\n") #connection au périphérie via RFCOMM sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM) sock.connect((bt_addr, channel)) # passe le modem en mode texte pour l'envoi de sms sock.send("AT+CMGF=1\r") sock.send("AT+CMGS=\"%s\"\r" % dest) # chr(032) -> ctrl + Z, séparateur de fin de sms sock.send("%s%s" % (text,chr(032))) #fermer la connexion sock.close() print "message bien envoyer" else: print 'aucun périphérie trouver'

Voila j’espere que vous y trouverais votre compte toutes remarques et améliorations du scripts est la bienvenue
🙂
be free be linux!!!

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