kalkun

kalkun est une solution d’envoi et de réception de sms ; son utilisation permet de réduire les coûts d’envoi de SMS en nombre. L’installation est difficile pour un néophyte mais aisée pour un technicien habitué aux technologies de type LAMP.

Article mis en ligne le 21 juin 2019
dernière modification le 23 septembre 2020

par NV

L’utilisation de KALKUN permet de réduire les coûts d’envoi de SMS en nombre.
L’installation est difficile pour un néophyte mais aisée pour un technicien habitué aux technologies de type LAMP.

Prérequis

Coté serveur

Un ordinateur (poste de travail ou serveur)
Une clé 3G (cas présenté) ou un téléphone mobile
OS : Linux (cas présenté dans ce document), Windows ou MacOS
apache
PHP (mysql, json, php-cli)
MySQL version 5.x ou supérieure (ou SQLite3 ou PostgreSQ)
gammu-smsd
https://github.com/back2arie/Kalkun/
http://kalkun.sourceforge.net/
Flashplayer n’est pas indispensable

Coté client

Un navigateur moderne comme FIREFOX.

Préparation

Nous partirons d’une machine installée avec ubuntu serveur 14.04.

sudo apt-get -y install libapache2-mod-php5
sudo apt-get -y install mysql-server
sudo apt-get -y install php5-mysql
sudo apt-get -y install php5-json
sudo apt-get -y install php5-cli
sudo apt-get -y install usb-modeswitch gsm-utils
sudo apt-get -y install gammu
sudo apt-get -y install gammu-smsd

GAMMU

Détection de la clé 3G

sudo tail -f /var/log/syslog|grep -i ttyus

puis connecter la clé 3G avec une carte SIM active

kernel: [19588.142867] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
ModemManager[836]:   (ttyUSB0): port attributes not fully set

la première ligne nous indique qu’un modem GSM est détecté.

Fichier de configuration de GAMMU

Ce fichier nous permettra de tester la clé 3G

gammu-detect > ~/gammurc

on obtient le fichier /gammurc

; Fichier de configuration généré par gammu-detect.
; Please check The Gammu Manual for more information.
[gammu]
device = /dev/ttyUSB0
name = Téléphone sur le port USB série Vodafone_Group__Huawei_Vodafone_Mobile_Broadband__Huawei_
connection = at

La section importante est celle portant le nom [gammu] les autres sections ne seront pas utilisées et peuvent être supprimées.

sudo gammu -c gammurc getsecuritystatus
[sudo] password for user:
En attente du PIN.

GAMMU est dans l’attente de la saisie du code PIN. Le paramètre entersecuritycode permet de saisir le code PIN.

sudo gammu -c gammurc entersecuritycode PIN 0000

ou

sudo gammu -c gammurc entersecuritycode PIN -
Enter PIN code :
sudo gammu -c gammurc getsecuritystatus
Rien à faire entrer.

Test de l’envoi d’un SMS

sudo gammu -c gammurc sendsms TEXT +33612345678 -text "test"
If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=132

Si vous recevez un SMS sur votre téléphone votre clé 3G est correctement configurée.
Cette première étape a permis de tester le bon fonctionnement de la clé 3G. Nous allons reprendre une partie des paramètres de GAMMU dans GAMMU-SMSD.

GAMMU-SMSD

GAMMU-SMSD est le service qui permet d’envoyer et de recevoir des SMS. Il utilise GAMMU pour la connexion à la clé 3G (ou téléphone mobile) c’est pourquoi il est très important d’avoir réalisé l’étape précédente avec succès.
GAMMU-SMSD enregistre l’ensemble des SMS envoyés et reçus dans la base de données choisie .
Fichier de configuration GAMMU-SMSD (/etc/gammu-smsdrc)

#Configuration file for Gammu SMS Daemon
#Gammu library configuration, see gammurc(5)
[gammu]

Please configure this!
port = /dev/ttyUSB0
connection = at

Debugging
#logformat = textall
gammucoding = utf8
[smsd]
PIN=0000
SMSC = +33689004000
runonreceive = /var/www/html/kalkun/scripts/daemon.sh
logfile = /var/log/gammu.log
commtimeout = 10
sendtimeout = 20
deliveryreport = sms
phoneid = mdsms
transmitformat = auto
inboxformat = standard
service = SQL
driver = native_mysql
database = kalkun
user = Utilisateur
password = MotDePAssMysql
pc = localhost
logfile = syslog

Increase for debugging information
debuglevel = 0

Paths where messages are stored
#inboxpath = /var/spool/gammu/inbox/
#outboxpath = /var/spool/gammu/outbox/
#sentsmspath = /var/spool/gammu/sent/
#errorsmspath = /var/spool/gammu/error/

Le SMSC change selon l’opérateur.

sudo service gammu-smsd stop
Stopping Gammu SMS Daemon gammu-smsd         [fail]

sudo service gammu-smsd start
Starting Gammu SMS Daemon gammu-smsd        [ OK ]

sudo service gammu-smsd status
gammu-smsd is running

Si le message « * gammu-smsd is not running » apparaît, vérifiez le fichier de configuration.

KALKUN

Installation

Si ce n’est pas déjà fait, configurez le PROXY du service

export http_proxy=http://proxyduservice:port

Puis téléchargez le code source de KALKUN dans

wget https://github.com/back2arie/Kalkun/archive/master.zip
sudo mv master.zip /var/www/html
cd /var/www/html/
sudo unzip master.zip
sudo mv Kalkun-master kalkun

Configuration de la base de données

Cette étape consiste a créer la base de données qui sera utilisée par GAMMU-SMSD et par KALKUN.
Connectez vous à MYSQL

mysql -uroot -p

Si le prompt « mysql> » apparaît, vous pouvez créer et configurer la base de données.

CREATE DATABASE kalkun
CREATE USER 'Utilisateur'@'localhost' IDENTIFIED BY 'MotDePAssMysql';
GRANT USAGE ON * . *
TO 'Utilisateur'@'localhost'
IDENTIFIED BY 'MotDePAssMysql'
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON kalkun . * TO 'Utilisateur'@'localhost';

Adaptez utilisateur, localhost et MotDePassMysql suivant vos besoins. Il est impératif que ces paramètres soient correctement saisis dans /etc/gammu-smsdrc

Configuration de l’application KALKUN

sudo nano application/config/database.php

Si la base de données choisie est de type MYSQL, la section correspondante du fichier de configuration devrait ressembler à l’exemple suivant

// MySQL
$db['default']['username'] = "Utilisateur";
$db['default']['password'] = "MotDePassMysql";
$db['default']['database'] = "kalkun";
$db['default']['dbdriver'] = "mysql";

Il ne reste plus qu’à se connecter en mode WEB à l’application
http://IpduServeur/kalkun
suivre les instructions pour finaliser l’installation.

Interface web

Connexion

http://IpduServeur/kalkun

Interface

Etat du serveur

Si le serveur apparaît avec l’état Déconnecté, en rouge sur la page WEB , il faut le relancer.

sudo gammu -c gammurc entersecuritycode PIN -
sudo service gammu-smsd start
sudo service gammu-smsd status

Résultat

gammu-smsd is running

Format de fichier

Number
+33682977682
+33670432345
+33601042994
+33601058043
+33601082638
Insérer en début et en fin de fichier les numéros des personnes que l’on souhaites informer du bon déroulement de la procédure (SIDSIC, service concerné, ...)

Composition

Fichiers journaux

sudo tail -f   /var/log/syslog |grep "Delivery report:"

Résultat :

Sep 13 09:10:16 sidsic-kalkun gammu-smsd[3592]: Delivery report: Pending to +33676728489
Sep 13 09:11:13 sidsic-kalkun gammu-smsd[3592]: Delivery report: Delivered to +33648278518
Sep 13 09:11:14 sidsic-kalkun gammu-smsd[3592]: Delivery report: Failed to +33647755077

Pending : en attente
Delivered : délivré
Failed : erreur