Vous êtes sur la page 1sur 26

 Top 10 Messaging APIs including WhatsApp, Slack, and Telegram 

:
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

2- Acheminement d'un SMS - MT : SMSC -> Mobile

3- La passerelle, vue par rapport au modèle OSI


4- Liaison du serveur SMS à travers un modem GSM
5- Liaison du serveur SMS à travers une liaison spécialisée

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.

L’architecture interne de Kannel se compose de 3 grand éléments:

 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

sudo apt-get update

Puis nous installons la librairie libXML2 par la commande

sudo apt-get install libXML2-doc

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. 

La commande nécessaire sera donc la suivante

apt-get install apache2 php5 mysql-server php5-mysql libapache2-mod-php5

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  

apt-get install kannel

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.

sudo service kannel restart

Passerelle SMS basée sur Kannel


Objet :
Description
Mise en place d’une passerelle d’envoi de SMS à partir d’un téléphone
mobile relié à l’ordinateur. Les moyens utilisés reviennent à un téléphone
portable fonctionnel, un ordinateur, une distribution Linux et Kannel.
Prérequis
Les explication suivantes sont faites sur une plate-forme Mandrake 10
Apache : non
MySQL (ou PostgreSQL ou Orcale) : non, encore que….
Un téléphone mobile (+ carte SIM) avec un câble de liaison série ou USB
pour le relier à l’ordinateur si connection par USB : mettre à jour le noyau
en 2.6.10 qui corrige quelques problèmes pénibles avec le convertisseur
PL2303 intégré au câble USB.
Installez LIBXML2 (ftp://fr.rpmfind.net/pub/libxml/libxml2-2.6.17-
1.i386.rpm)
Un petit test avant de commencer s’embourber
1. Connectez votre portable au port choisi (USB ou COMx). Si le port est en
USB (et que c’est le seul), le port Linux sera /dev/usb/tts/0 sinon /dev/tts0
pour le port série COM1 et ainsi de suite….
2. Démarrez sous Windows XX puis lancer un hyperterminal sur le port
COM (9600N,8,1), puis tapez ATI0, le téléphone (si il est allumé) doit vous
renvoyer son modèle de téléphone. Sous Linux, installez Gnokii
(http://www.gnokii.org/) , modifiez le fichier /etc/gnokiirc (notamment le
champ port = /Dev/xx, model = AT-HW,
connection = serial). Lancez gnokii –identify . Vous devez alors voir une
config très détaillée de votre portable en retour.
3. Passez à l’installation…
Installation
La version présentée ici est 1.4.0 de Kannel dispo ici :
http://www.kannel.org/download/1.4.0/gateway-1.4.0.tar.gz
Tar xzvf gateway-1.4.0.tar.gz
./configure
make
make bindir=/usr/kannel install
Configuration des fichiers de configuration
Créez un répertoire dans /etc/kannel et mettez-y ce fichier sous le nom de
sms.conf (cf Annexe A ou pour les fainéants, les fichiers sont
téléchargeables ici : http://www.e-watching.net/projets/kannel.zip )
Modifiez au moins sur le fichier ci-dessus les champs suivants :
Device = encore une fois le périphérique (USB ou série)
Pin = code pin de votre portable, si nécessaire
Username et password = nom d’utilisateur et mot de passe requis pour
l’envoi de sms
Box-allow-ip et box-deny-ip = adresses ip qui seront acceptées ou
refusées en connexion. Séparer les IP par un point-virgule. Les adresses IP
explicitement autorisées prévalent sur les refus.
Placez ensuite le fichier modems.conf dans /etc/kannel (également dispo
via le fichier Zip ou dans l’archive gateway de Kannel ou dans l’annexe B).
Démarrage des programmes nécessaires
Pour fonctionner, il faut lancer : /usr/kannel/bearerbox-v 1
/etc/kannel/sms.conf Puis
/usr/kannel/smsbox -v 1 /etc/kannel/sms.conf

Je vous laisse le soin de mettre tout ceci au démarrage de votre poste !


En cas de problèmes : modifiez le paramètre –v 1 en –v 0 pour ces deux
applis, le mode déboguage rendra votre dépannage plus facile. Sinon, -v 3
ne logue que les erreurs.

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"

B – modèle de fichier des modems gsm : modems.conf


# Modems configuration
#
# Example and default values
#
# group = modems
# id = "my-id"
# name = "my-name"
# detect-string = "MODEM"
# detect-string2 = "" [Default]
# init-string = "AT+CNMI=1,2,0,0,0" [Default]
# speed = 9600 [Default]
# enable-hwhs = "AT+IFC=2,2" [Default]
# need-sleep = false [Default]
# no-pin = false [Default]
# no-smsc = false [Default]
# sendline-sleep = 100 [Default, miliseconds]
# keepalive-cmd = "AT" [Default]
# broken = false [Default]
# message-storage = "SM"
# enable-mms = false [Default]

# If modemtype=auto, try everyone and defaults to this one


group = modems
id = generic
name = "Generic Modem"

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"

How to install kannel sms gateway on


Debian Linux for nagios SMS notifications
What you will learn
In this article, you will learn how to install kannel server on Debian and integrate it to a Nagios server
for sms notifications. We asume that the reader already has a working Nagios server and we will
focus on Kannel installation and its integration with Nagios.

Requirements

 Privileged access to your Debian server


 SMPP account or USB modem
 A Nagios server
 Privileged access to your Nagios server

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

Now let's open the configuration file


# vi /etc/kannel/kannel.conf
And fill it with the following content
# CORE
group = core
admin-port = 13000
admin-password = [password for kannel admin]
status-password = [password to get kannel status]
wdp-interface-name = "*"
log-file = "/var/log/kannel/kannel.log"
log-level = 0
access-log = "/var/log/kannel/access.log"
smsbox-port = 13001

# 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]

Switch Kannel to smsbox mode


By default Kannel works as a wapbox, but in our case we want it to function as smsbox. To do so, we
will edit /etc/default/kannel
# vi /etc/default/kannel

Comment START_WAPBOX=1 and uncomment START_SMSBOX=1


#START_WAPBOX=1
START_SMSBOX=1
Create a SMSC
For Kannel to be able to send text messages, it must use a SMSC (Short Message Service Center).
Thus we need to create a SMSC configuration.

Using a SMPP account


If we want to send sms via a SMPP account, then we will add the following lines to
/etc/kannel/kannel.conf:

# 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.

Using a USB modem


If we want to send sms via a USB modem, then we need to install wvdial:
# apt-get install wvdial
After installation, we will run wvdialconf to detect the USB modem and generate its suitable
configuration.
# wvdialconf

Now we will add these lines to /etc/kannel/kannel.conf:


# USB MODEM DEFINITION
group = modems
id = myusbmodem
init-string = "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
message-storage = "SM"
need-sleep = true

# SMSC USING USB MODEM


group = smsc
smsc = at
smsc-id = smsc2
my-number = [SIM card]
sms-center = [sms center number]
device = /dev/ttyUSB1
speed = 9600
sim-buffering = true

Restart Kannel
When all the configurations are done, we need to restart Kannel:
# service kannel restart

Useful Kannel URLs


To send SMS:
http://kannel_server_ip_address:13002/cgi-bin/sendsms?
username=username_for_sending_sms&password=password_for_sending_sms&smsc=sm
sc-id_to_use&to=phone_number_1 phone_number_2&text=message_content

To check Kannel status:


http://kannel_server_ip_address:13000/status?
password=password_for_kannel_status
To open Kannel admin page:
http://kannel_server_ip_address:13000/status?
password=password_for_kannel_admin
Integrating Kannel with Nagios
The Kannel server is ready and now we need to tell Nagios to use it for sms alert.

Create nagios commands for sms alert


Edit commands.cfg
# vi /usr/local/nagios/etc/objects/commands.cfg
And add this:
define command{
command_name notify-host-by-sms
command_line /usr/bin/curl http://kannel_server_ip_address:13002/cgi-
bin/sendsms?
username=username_for_sending_sms&password=password_for_sending_sms&smsc=sm
sc-id_to_use&to=$CONTACTPAGER&text=$HOSTNAME$ is $HOSTSTATE$
}
define command{
command_name notify-service-by-sms
command_line /usr/bin/curl http://kannel_server_ip_address:13002/cgi-
bin/sendsms?
username=username_for_sending_sms&password=password_for_sending_sms&smsc=sm
sc-id_to_use&to=$CONTACTPAGER&text=$HOSTALIAS$/$SERVICEDESC$ is
$SERVICESTATE$
}

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

# apt-get install curl

Add notification commands to contacts


Edit commands.cfg
# vi /usr/local/nagios/etc/objects/commands.cfg

And in the contact section, add this:


service_notification_commands notify-service-by-sms
host_notification_commands notify-host-by-sms
pager [phone_number]
Réf : https://community.dynamics.com/crm/f/microsoft-dynamics-
crm-forum/187800/sms-gateway-integration-with-crm-2013-
2015/473254
SMS Gateway Integration With CRM 2013/2015
1. Create a WCF (you can search as there are many blogs on how to create a WCF service) service
which will call the SMS Gateway API. The method to send a SMS will accept 3 parameters. Subject,
Mobile Number and Message.
2. Host this service on the same server or another server on the same network in which CRM is
hosted.
3. Now you have to create a custom workflow step (code activity) to call your web service and pass 3
parameters (Subject, Mobile Number and Message).
4. Register this custom step using plugin registration tool and use it in a background workflow where
you want to send a SMS.

Top 10 Best Messaging APIs

Platform Easy to
API API Features Popularity Price
Availability Use?

Create a business profile, chat with 1.5 billion


Mobile, web,
WhatsApp API customers, send images, make monthly Free Yes
desktop
video and voice calls active users

Free and paid


Send messages, join or leave Mobile, web, 8 million
plans from $6.67
Slack API channels, track mentions, create desktop, monthly Yes
per active user
files Apple Watch active users
per month

Create bots, send and receive 200 million


Mobile, web,
Telegram API messages, check messages, create monthly Free Yes
desktop
groups active users

Send and receive various content, 1.3 billion


Facebook Mobile and
accept payments, discover users, monthly Free Yes
Messenger API web
get profiles, monitor performance. active users

Mobile, web, 300 million


Create bots, perform interviews,
Skype API desktop, monthly Free Yes
make video call and chats
smart devices active users

260 million
Send and receive text messages, Mobile and
Viber API monthly Free Yes
make video calls, get users’ details desktop
active users

Send and receive messages, get 1 billion


Mobile, web,
WeChat API users’ details, make voice and video monthly Free Yes
desktop
calls, send images 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

Get list of companies, register new Free trial and paid


Web and 150 million
LiveAgent API users, get reports, engage in plans from $9 / Yes
desktop end users
conversations month

Free and paid


BrainShop.AI Create AI-powered chat bot, Mobile, web,
Low plans from $99 Yes
API engage in human-like conversations desktop
per month

Ref : http://d-maniac.blogspot.com/2008/12/sms-gateway-with-
huaweiplaysmsxamppkann.html

Wednesday, December 3, 2008


SMS Gateway with (Huawei+PlaySMS+Xampp+kannel) in Vector Linux
at 1:07 PM ·

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:

1. Modem Huawei E220


2. Vector Linux 5.9 OS series with STD-GOLD kernel 2.6.22.14
3. Gateway modules exp: we used kannel with version Gateway-1.4.1.tar.gz
4. File huawei.tar.bz2
5. Files he220stat.tar.bz2. files for show statistic in huawei E220. (Optional)
6. Xampp for Linux
7. Files huaweiAktBbo.out
8. Files Playsms-0.9.3.tar.gz

Ok now we start, ready ??

1. Open shell console with root user


2. Identification your huawei e220 modem with this command :

xcore:/~# dmesg | tail


option 4-2:1.1: GSM modem (1-port) converter detected
usb 4-2: GSM modem (1-port) converter now attached to ttyUSB1
scsi5 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi 5:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
sr0: scsi3-mmc drive: 370x/372x cd/rw xa/form2 cdda
sr 5:0:0:0: Attached scsi CD-ROM sr0
sr 5:0:0:0: Attached scsi generic sg1 type 5
usb-storage: device scan complete
or
xcore:/~#dmesg | grep usb
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Floppy drive(s): fd0 is unknown type 15 (usb?), fd1 is unknown type 15 (usb?)
usbmon: debugfs is not available
usb usb1: configuration #1 chosen from 1 choice
usb usb2: configuration #1 chosen from 1 choice
usb usb3: configuration #1 chosen from 1 choice
usb usb4: configuration #1 chosen from 1 choice
usb usb5: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver libusual
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
usb 4-2: new full speed USB device using uhci_hcd and address 2
usb 4-2: configuration #1 chosen from 1 choice
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core
drivers/usb/serial/usb-serial.c: USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
drivers/usb/serial/option.c: USB Driver for GSM modems: v0.7.1
usb 4-2: reset full speed USB device using uhci_hcd and address 2
usb-storage: device scan complete
usb 4-2: USB disconnect, address 2
usb 4-2: new full speed USB device using uhci_hcd and address 3
usb 4-2: configuration #1 chosen from 1 choice
usb 4-2: GSM modem (1-port) converter now attached to ttyUSB0
usb 4-2: GSM modem (1-port) converter now attached to ttyUSB1
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete

Notes : If when execute the Bold Command and the output like in the top, your modem is detected in
linux

3. Instal Xampp in linux

xcore:/~# tar -xvf xampp-linux-1.6.7.tar.gz -C /opt


# /opt/lampp/lampp start
# /opt/lampp/lampp security

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

4. Instal huawei E220 driver for linux

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/

5. Instal Huawei E220 Status (Optional)

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

if like up there, you success instal.

6. Instal Kannel
- Create directory kannel

xcore:/~
# mkdir /program
# cd /program
xcore://program
# mkdir kannel
# cd /var/log
xcore://var/log
# mkdir kannel

- Copy the kannel file to /usr/local/src

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

For the contents like this :

# 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

Testing with run bearerbox & smsbox

# 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.

if the out put like the up there, it's correct.

# ./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&

Run PlaySMS in your browser with url :

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 :

( Same with kannel.conf )


Username : xcore
Password : metalcore
Global sender : +62855000000
Bearerbox IP : 127,0,0,1
Send SMS Port : 13013
Playsms Url : //localhost/playsms
Kannel Incoming Path : /usr/local/bin/kannel_incoming

and then search and click the "click here" to activate. and for finaly go to Send sms and then
try it.

Good Luck.