Académique Documents
Professionnel Documents
Culture Documents
:
https://blog.api.rakuten.net/top-10-messaging-apis-whatsapp-slack-telegram/
Ultimate Guide to WhatsApp Business API :
https://respond.io/blog/category/ultimate-guide/
https://respond.io/blog/whatsapp-business-api/
Solution Messaging (Whatsapp Gateway Provider) :
https://www.facebook.com/business/partner-directory/search?
platforms=whatsapp&solution_type=messaging
PlaySMS 1.4.2 on Ubuntu 18.04 :
https://antonraharja.com/2018/06/25/playsms-1-4-2-on-ubuntu-18-04/
Free Whatsapp API in PHP | #Whatsapp API | Send Whatsapp Messages to Customers :
https://www.youtube.com/watch?v=06-DNQUU46w
WhatsApp Gateway API - Getting Started :
https://www.whatsmate.net/whatsapp-gateway-api.html
https://whatsmate.github.io/2016-02-20-send-whatsapp-message-php/
Telegram Gateway API - Getting Started :
https://www.whatsmate.net/telegram-gateway-api.html
https://whatsmate.github.io/2016-09-07-send-telegram-message-php/
SMS gateway for Dynamics 365 :
https://stackoverflow.com/questions/43135339/sms-gateway-for-dynamics-365
CRM 2015 / 2013 / 2011 - Send SMS Message :
https://www.youtube.com/watch?v=6LwZLoXS6jo
PowerApps: Sending Text Messages :
https://powerobjects.com/2019/01/02/powerapps-sending-text-messages/
1- Acheminement d'un SMS-MO : Mobile -> SMSC
1- Architecture de Kannel et la relation avec les entités externes telles que le serveur http, le
SMSC et le WAP phone.
Objectifs
Comprendre le rôle d’une passerelle SMS
Savoir mettre en place sa passerelle SMS
Savoir mettre en place des services à valeur ajoutés sur un proxy SMS
Généralité
Kannel est une passerelle WAP et SMS open source compacte et très puissante, largement
utilisée dans le monde entier pour la transmission de milliards de messages courts (SMS), les
indications du service WAP Push et la connectivité Internet mobile.
Avec des centaines de millions de téléphones mobiles utilisés dans le monde entier à l’heure
actuelle, le marché des services destinés aux utilisateurs mobiles est immense. Même les
services les plus simples trouvent beaucoup d’utilisateurs, tant qu’ils sont utiles ou amusants.
Pouvoir avoir des nouvelles, envoyer des courriels ou simplement se divertir où que vous
soyez est extrêmement attrayant pour beaucoup de gens.
Kannel peut fonctionner comme une passerelle SMS pour les réseaux GSM. Presque tous les
téléphones GSM peuvent envoyer et recevoir des SMS, ce qui permet de servir davantage de
clients que ceux utilisant un nouveau téléphone WAP.
Les SMS sont largement utilisés dans le monde entier. Kannel est principalement utilisé pour
lier des services HTTP à divers centres SMS utilisant des protocoles obscurs.
Le Bearerbox: Il joue le rôle de proxy et load balancer. Il est le point d’entrée vers
cannelle et redirige les requêtes vers le SMSBox ou le WAPBox.
Le WAPBox: Il est chargé de répondre au requêtes de type WAP.
Le SMSBox: Ile est chargé de répondre aux requêtes de type SMS.
Comme mentionné plus haut, Pour faciliter l’ajout des services sur Kannel, celui-ci peut
communiquer avec un serveur HTTP (tel que apache2) de manière bidirectionnelle.
Pour ce tutoriel, nous allons nous intéresser à la partie SMS dont l’architecture peut être
représentée comme ci-dessous.
Matériaux et méthodes
Matériaux
o Nous allons installer les paquets libXML2, wbdial et LAMP (si ce n’est pas
installé)
o Nous utiliserons particulièrement le fichier /etc/kannel/kannel.com
o Un modem (dans notre cas une clé internet avec carte SIM)
Méthodes
o Nous allons commencer par la configuration (éditer) des fichiers que nous
avons installés et ceux qui existent déjà en fonction de nos besoins, puis nous
allons effectuer des tests pour vérifier l’atteinte de nos objectifs.
o Dans un premier nous allons tester l’envoi et a réception d’SMS à partir de
notre passerelle SMS
o Dans un second temps nous allons voir comment relier notre passerelle à une
application web pour rendre un service
Application
o Installation des paquets et dépendances
Avant tout, nous allons procéder à une mise à niveau des paquets sur notre système par la
commande
Ensuite, nous allons installer le paquet wvdial qui nous permettra de vérifier que notre modem
(dans notre cas nous allons utiliserons une clé USB internet avec carte SIM dans laquelle nous
avons un forfait SMS) est bien monté sur l’ordinateur, mais aussi savoir sur quel port il est
intégré.
Nous allons à présent installer les paquets LAMP (Apache2, MySQL, PHP). Ceci n’est pas
obligatoire pour faire marcher notre passerelle SMS, mais une passerelle qui ne rend pas de
services à valeur ajoutée ne sert à rien. Nous installons donc ces paquets pour connecter
Kannel à une application web. Il faut noter qu’on aurait pu choisir python au autres langages
pour mettre en place notre application, mais ici nous avons choisi le langage PHP pour coder
notre petite application.
Les paquets que nous venons d’installer sont des dépendances, ils sont nécessaires pour le
fonctionnement mais ne sont pas ceux qui constituent Kannel. Maintenant nous allons
installer Kannel avec la commande
En effet cette façon d’installer est la plus simple mais n’installe pas nécessairement les
dernières mises à jour du paquet. Une autre méthode d’installation consiste à télécharger
manuellement la dernière version et faire soit même l’installation. Nous ne ferons pas cela
ici.
o Configuration
En premier lieu, nous allons visualiser et noter sur un papier le port sur lequel est monté notre
modem, car nous aurons besoin de le spécifier dans le fichier de configuration de Kannel.
Pour ce faire nous allons utiliser la commande
wvdialconf
sur cette image nous remarquons que le port utilisé est le port /dev/ttyUSB3. Nous
remarquons aussi sa vitesse 9600 que nous allons noter aussi.
Ayant cette information, nous allons ouvrir le fichier de configuration de kannel avec la
commande,
nano /etc/kannel/kannel.conf
Ce fichier est composé de plusieurs sections, nous ne les éditerons pas toutes.
La partie service est très importante lorsqu’on projette de mettre en place un service à valeur
ajoutée sur Kannel. Notamment le keyword et le get-url. Le keyword est comme son nom
l’indique la clé. C’est elle qui lance le service. En effet, plusieurs services peuvent être crées
dans le fichier de configuration. Chaque service pointe vers une application donnée grâce au
lien renseigné dans get-url. La chaîne de caractère renseignée dans keyword permettra de
choisir un service donné parmi les autres à partir du SMS.
Exemple: Disons que dans mon serveur web j’ai développé deux applications. la première
application permettant de renvoyer les résultats des matchs de football et l’autre permettant de
renvoyer les noms des hôtels d’une ville donnée. Pour permettre l’accès à ces applications par
SMS, je crée dans le fichier de configuration de Kannel deux services. la zone keyword du
premier service correspond à football, « keyword=football« , la zone keyword du deuxième
service correspond à hotel, « keyword=hotel« . Ainsi pour accéder au service des résultats de
football, le contenu du SMS devra commencer par « football ». ça pourrait être ‘football
resultat‘ pour obtenir les résultats, ‘football matchs‘ pour obtenir la liste des matchs, ‘football
championnat‘ pour obtenir la liste des championnats et ainsi de suite. De la même façon, pour
lancer le service des hotels, le contenu du SMS devra commencer par « hotel ».
Redémarrage du service
Après avoir configuré les fichiers nous allons redémarrer le service. La commande est la
suivante.
Utilisation
L’administration se fait par le port spécifié dans le fichier sms.conf soit via
navigateur graphique soit par ligne de commande, par exemple :
lynx -dump http://127.0.0.1:13000/restart pour redémarrer la passerelle
L’envoi de SMS se fait à partir d’un navigateur web (ligne de commande
ou graphique) : http://adresse_ip_du_serveur:port_sms/cgi-bin/sendsms?
username=utilisateur&password=mot_de_passe&to=téléphone_destinatai
re&text=contenu_du_message où : adresse_ip_du_serveur = adresse IP ou
nom FQDN du poste hébergeant Kannel
port_sms = port TCP défini dans sms.conf, ligne sendsms-port (section
SMSBOX SETUP)
utilisateur = login autorisé à envoyer un SMS, défini dans sms.conf, ligne
username (section SEND-SMS USERS)
mot_de_passe = mot de passe défini dans la ligne password (section
SEND-SMS USERS)
téléphone_destinaire = c’est vous qui voyez.
Contenu_du_message = encore à vous de voir.
Compléments
Fichiers journaux
Deux fichiers journaux sont générés dans /var/kannel (smsbox.log et
kannel.log) et correspondent aux informations de fonctionnement (ou
dysfonctionnement) des applications respectives smsbox et bearerbox.
L’activation et l’emplacement de journaux est définie dans sms.conf,
lignes log-file des sections CORE et SMSBOX SETUP.
Le fichier /var/kannel/access.log loggue tous les envois de SMS effectués
avec l’ensemble des paramètres de l’URL ainsi que l’adresse IP du client.
Améliorations à envisager
La première est de consulter la doc associée au produit, très riche.
Utilisez un port HTTP/SSL plutôt que du simple http.
Voir les options de log dans une base SQL pour facturation.
Lancer le processus sous l’identité d’un utilisateur protégé avec les
options en ligne de commande de lancement de bearerbox et smsbox.
Annexes
A – modèle de fichier de configuration principale : sms.conf
# Fichier de config pour Modem GSM connecte sur le port USB -
05/03/2005
group = core
admin-port = 13000
#smsbox-port = 13001
admin-password = 123456
#status-password = foo
#admin-deny-ip = ""
#admin-allow-ip = ""
log-file = "/tmp/kannel.log"
#log-level = 0
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1;192.168.0.10"
#unified-prefix = "+358,00358,0;+,00"
#access-log = "/tmp/access.log"
#store-file = "/tmp/kannel.store"
#ssl-server-cert-file = "cert.pem"
#ssl-server-key-file = "key.pem"
#ssl-certkey-file = "mycertandprivkeyfile.pem"
include = "/etc/kannel/modems.conf"
# SMSC CONNECTIONS
group = smsc
smsc = at
modemtype = auto
device = /dev/usb/tts/0
speed = 9600
# pin = 1234
# SMSBOX SETUP
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
global-sender = 13013
#sendsms-chars = "0123456789 +-"
#log-file = "/tmp/smsbox.log"
#log-level = 0
#access-log = "/tmp/access.log"
# SEND-SMS USERS
group = sendsms-user
username = user1
password = bidon
#user-deny-ip = ""
#user-allow-ip = ""
# SERVICES
group = sms-service
keyword = nop
text = "You asked nothing and I did it!"
# there should be default always
group = sms-service
keyword = default
text = "No service specified"
group = modems
id = wavecom
name = Wavecom
detect-string = "WAVECOM"
group = modems
id = premicell
name = Premicell
detect-string = "PREMICEL"
no-pin = true
no-smsc = true
group = modems
id = siemens_tc35
name = "Siemens TC35"
detect-string = "SIEMENS"
detect-string2 = "TC35"
init-string = "AT+CNMI=1,2,0,1,1"
speed = 19200
enable-hwhs = "AT\\Q3"
need-sleep = true
group = modems
id = siemens_m20
name = "Siemens M20"
detect-string = "SIEMENS"
detect-string2 = "M20"
speed = 19200
enable-hwhs = "AT\\Q3"
keepalive-cmd = "AT+CBC;+CSQ"
need-sleep = true
group = modems
id = siemens_sl45
name = "Siemens SL45"
detect-string = "SIEMENS"
detect-string2 = "SL45"
init-string = "AT+CNMI=1,2,2,2,1"
keepalive-cmd = "AT+CBC;+CSQ"
speed = 19200
enable-hwhs = "AT\\Q3"
need-sleep = true
message-storage = "SM"
group = modems
id = nokiaphone
name = "Nokia Phone"
detect-string = "Nokia Mobile Phone"
need-sleep = true
keepalive-cmd = "AT+CBC;+CSQ"
enable-mms = true
group = modems
id = falcom
name = "Falcom"
detect-string = "Falcom"
no-smsc = true
group = modems
id = ericsson_r520m
name = "Ericsson R520m"
detect-string = "R520m"
init-string = "AT+CNMI=3,2,0,0"
group = modems
id = ericsson_t68
name = "Ericsson T68"
detect-string = "T68"
init-string = "AT+CNMI=3,3"
keepalive-cmd = "AT+CBC;+CSQ"
broken = true
group = modems
id = alcatel
name = "Alcatel"
detect-string = "Alcatel"
init-string = "AT+CNMI=3,2,0,0"
Requirements
Difficulty
MEDIUM
Conventions
# - requires given linux commands to be executed with root privileges either directly as a root user or
by use of sudo command
$ - requires given linux commands to be executed as a regular non-privileged user
Setting up Kannel
Install Kannel
The installation of kannel is simply done through apt-get command:
# apt-get install kannel
Initial configuration
After having installed kannel, we will put in place an initial configuration before going further. Let's
backup the default configuration file and create ours.
$ cd /etc/kannel/
# mv kannel.conf kannel.conf.bak
# touch kannel.conf
# SMSBOX SETUP
group = smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13002
log-file = "/var/log/kannel/smsbox.log"
# SENDING SMS
group = sendsms-user
username = [username for sending sms]
password = [password for sending sms]
# SMSC
group = smsc
smsc = smpp
smsc-id = smsc1
system-type = "VMA"
host = xxxx.xxxx.xxxx.xxxx
port = xxxx
smsc-username = "username"
smsc-password = "password"
Please adapt the configuration, using the values that your provider has given to you.
Restart Kannel
When all the configurations are done, we need to restart Kannel:
# service kannel restart
Note:
Please adapt the values in the URL except $CONTACTPAGER, $HOSTNAME$, $HOSTSTATE$,
$HOSTALIAS$, $SERVICEDESC$ and $SERVICESTATE$
We have used curl, so if it's not available on your system, you need to install it
Platform Easy to
API API Features Popularity Price
Availability Use?
260 million
Send and receive text messages, Mobile and
Viber API monthly Free Yes
make video calls, get users’ details desktop
active users
Line API Send reply messages, send push Mobile, 200 million Free Yes
messages, group chat, get users’ Chrome web
monthly
profiles, send video or audio browser,
active users
messages desktop
Ref : http://d-maniac.blogspot.com/2008/12/sms-gateway-with-
huaweiplaysmsxamppkann.html
Hi all,
Now i want to share how to make sms gateway with huawei E220 modem and other
supporting tools. For the beginning we must to prepare tools, this the list:
Notes : If when execute the Bold Command and the output like in the top, your modem is detected in
linux
if do you want to run xampp when boot linux first you must create a symbolic link with this
command:
# ln -s /opt/lampp/lampp /etc/rc.d/init.d
after that activation deamon pass through VASM | services | services | 4. Graphical User Interface
Desktop | lampp
before you continue for instalation huawei E220 driver in linux you must to check again if huawei
E220 detected in linux.
xcore:/~
# tar xjvf huwei.tar.bz2
# cd huawei
xcore:/~/huawei
# make info
# make generic_install
udevcontrol reload_rules
Go ahead and replug your HUAWEI modem.
xcore:/~/huawei
# mkdir -p /etc/chatscripts/
# cp conf/wvdial-huawei.conf /etc/
# cp conf/huawei-e220.chat /etc/chatscripts/
# cp conf/huawei-e220 /etc/ppp/peers/
# cp files/99-huawei.rules /etc/udev/rules.d/
# cp files/huawei-mobile.sh /lib/udev/
xcore:/~
# tar xjvf he220stat.tar.bz2
# cd hestat-0×03
xcore:/~/hestat-0×03
# ./ configure
# make
# make install
- lalu eksekusi program tersebut ——
# xhe220stat
xcore:/~
# chmod +x huaweiAktBbo.out
# cp huaweiAktBbo-i386.out /bin
–coba jalankan file tersebut ——-
# huaweiAktBbo-i386.out
Hladam HUAWEI E220 a prepnem na modem - bbo 06
4 set feature request returned 0
Prepnute-OK, Mas ttyUSB0 ttyUSB1 (cez usbserial vendor=0×12d1 product=0×1003)
pozri /proc/bus/usb/devices
6. Instal Kannel
- Create directory kannel
xcore:/~
# mkdir /program
# cd /program
xcore://program
# mkdir kannel
# cd /var/log
xcore://var/log
# mkdir kannel
xcore:/~
# cp gateway-1.4.1.tar.gz /usr/local/src
# cd /usr/local/src
xcore://usr/local/src
# tar xzvf gateway-1.4.1.tar.gz
# cd gateway-1.4.1
xcore://usr/local/src/gateway-1.4.1
# ./configure –prefix=/program/kannel
# make
# make install
- Setting Kannel
xcore:/~
# cd /program/kannel/sbin ( Create file kannel.conf )
xcore://program/kannel/sbin
# medit kannel.conf
# CORE
group = core
admin-port = 13000
smsbox-port = 13001
admin-password = metalcore
status-password = password
log-level = 0
log-file = “/var/log/kannel/kannel.log”
access-log = “/var/log/kannel/access.log”
store-file = “/var/log/kannel/kannel.store”
# SMSC Fake
group = smsc
smsc = fake
host = localhost
port = 14013
my-number = +6285655549520
# SMSC MODEM GSM
group = smsc
smsc = at
host = localhost
port = 13013
smsc-id = smsserver
modemtype = vodafone
device = /dev/ttyUSB1
speed = 19200
sms-center = +62855000000
group = modems
id = vodafone
name = vodafone
detect-string = VODAFONE
init-string = “AT+CNMI=2,1,0,0,0;+CMEE=1″
# SMSBOX SETUP
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
sendsms-chars = “0123456789+”
#global-sender = sms center
global-sender = +62855000000
log-level = 0
log-file = “/var/log/kannel/smsbox.log”
access-log = “/var/log/kannel/access.log”
# SEND-SMS USERS
group = sendsms-user
username = xcore
password = metalcore
group = sms-service
keyword = default
accept-x-kannel-headers = true
max-messages = 0
assume-plain-text = true
catch-all = true
exec = /usr/local/bin/kannel_incoming
#%t %q %a
get-url = http://localhost/playsms #playsms directory
#group = mysql-connection
#id = mydlr
#host = localhost
#mysql-username =
#mysql-password =
#database = playsms
Note :
SMS Center :
Telkomsel: +6281100000
IM3 : +62855000000
XL: +62818445009
Satelindo: +62816124
# cd /program/kannel/sbin
xcore://program/kannel/sbin
# ./bearerbox -v kannel.conf&
2006-10-20 13:46:17 [2991] [6] DEBUG: AT2[huawei]: <– OK 2006-10-20 13:46:17 [2991] [6] INFO:
AT2[huawei]: AT SMSC successfully opened.
# ./smsbox -v kannel.conf&
Testing kannel application, with write this link in internet browser ex: firefox
http://localhost:13013/cgi-
bin/sendsmsuser=tester&password=password&to=085234128689&text=ujicoba&mclass=1
if in browser show the message like this "0: Accepted for deliver" it's correct
7. Instalation playSMS
xcore:/~
# cp playsms-0.9.3.tar.gz /usr/local/src
# cd /usr/local/src
xcore://usr/local/src
# tar xzvf playsms-0.9.3.tar.gz
# cd playsms-0.9.3
# adduser playsms
# passwd playsms
# mkdir /opt/lampp/htdocs/playsms# mkdir /var/log/playsms
# cp -rR web/* /opt/lampp/htdocs/playsms
# chmod 701 /opt/lampp/htdocs/playsms
create database with phpmyadmin and then impor playsms.sql file in directory
/usr/local/src/playsms-0.9.3/db/playsms.sql.
Rename file config-dist.php with config.php and thenwdit the file. like this:
# medit /opt/lampp/htdocs/playsms/config.php
Variabel2 yang perlu disesuaikan adalah :
$db_param['type'] = ‘mysql’; // database engine
$db_param['host'] = ‘localhost’; // database host/server
$db_param['port'] = ”; // database port - dikosongi aja
$db_param['user'] = ‘root’; // database username – root mysql
$db_param['pass'] = ‘root’; // database password - password root mysql
$db_param['name'] = ‘playsms’; // database name
$db_param['pref'] = ‘playsms’; // table’s prefix without trailing underscore
isi variabel $db_param['user'],$db_param['pass'] sesuai dengan security lampp
xcore://usr/local/src
# cp playsms-0.9.3/bin/kannel_incoming /usr/local/bin/
# cd /usr/local/src/playsms-0.9.3/bin
xcore://usr/local/src/playsms-0.9.3/bin
# cp playsmsd playsmsd.php playsmsd_start /usr/local/bin/
# cp playsms /etc/default/
Run kannel
xcore://program/kannel/sbin
# ./bearerbox -v kannel.conf&
# ./smsbox -v kannel.conf&
http://localhost/playsms
for username and password :
username : admin
password : admin
activation the kannel with gateway module, and then choose manage kannel, edit and fill the
form like this :
and then search and click the "click here" to activate. and for finaly go to Send sms and then
try it.
Good Luck.