Raspberry Pi · 10 min read · Dec 08, 2025

Comment installer un serveur SMS Raspberry Pi

Avant de commencer

Ce tutoriel vous montrera comment configurer un serveur SMS sur un Raspberry Pi 2 Model B, fonctionnant sous Raspbian.

Nous utiliserons playsms et smstools. Dans mon exemple, j’ai utilisé un modem 3G Huawei E3131.

Raspbian

Tout d’abord, nous devons télécharger Raspbian, vous pouvez obtenir la dernière version sur https://www.raspberrypi.org/downloads/

URL directe : http://downloads.raspberrypi.org/raspbian_latest

Maintenant, nous devons décompresser le fichier : 2015-05-05-raspbian-wheezy.zip :

unzip 2015-05-05-raspbian-wheezy.zip

Vous obtiendrez un fichier nommé 2015-05-05-raspbian-wheezy.img, ce fichier doit être écrit sur votre carte micro-SD.

Si vous avez besoin de connaître quelques bases sur la façon de travailler avec Raspberry Pi, et d’écrire l’image sur micro-SD, vous pouvez commencer par lire ce tutoriel :

https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/

Écrivez le fichier image sur la carte micro-SD, sur mon PC, la carte micro-SD est vue comme /dev/mmcblk0 sur Linux, vous pouvez utiliser dd :

dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0
  • Veuillez noter que la taille de bloc réglée à 4M fonctionnera la plupart du temps ; si ce n’est pas le cas, veuillez essayer 1M, bien que cela prenne considérablement plus de temps.
  • De plus, notez que si vous n’êtes pas connecté en tant que root, vous devrez préfixer cela avec sudo.

Lorsque l’image est écrite, insérez la carte micro-SD dans votre Raspberry Pi et allumez-le.

Lorsque le Raspberry Pi est démarré, vous devriez voir un écran comme celui-ci, lors du premier démarrage.

Maintenant, je sélectionne les options suivantes :

1 Étendre le système de fichiers  
3 Activer le démarrage sur le bureau/Scratch -> Sélectionner Console Texte Console, nécessitant une connexion (par défaut)  
8 Options avancées -> A4 SSH -> Activer  
8 Options avancées -> A0 Mettre à jour   
Terminer -> Redémarrer

Maintenant, vous pouvez vous connecter avec le nom d’utilisateur suivant : pi et le mot de passe : raspberry.

Tout d’abord, nous configurons la configuration réseau pour notre serveur en éditant

sudo nano /etc/network/interfaces

Mon fichier /etc/network/interfaces ressemble à ceci (changez la configuration selon vos besoins) :

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 10.255.50.30
        netmask 255.255.255.0
        gateway 10.255.50.1
        dns-nameservers 8.8.8.8 8.8.4.4

Maintenant, nous redémarrons le service réseau sur le Pi :

sudo /etc/init.d/networking restart

Ensuite, nous désactivons DHCP au démarrage avec cette commande :

sudo update-rc.d -f dhcpcd remove

Si vous souhaitez l’activer à nouveau plus tard, il suffit d’exécuter la commande suivante :

sudo update-rc.d dhcpcd defaults

Maintenant, nous pouvons utiliser un client SSH tel que PuTTY pour nous connecter de notre PC au Raspberry Pi.

Maintenant, nous mettons à jour Raspbian avec la commande suivante :

sudo apt-get update &&  apt-get upgrade -y && apt-get dist-upgrade -y

PlaySMS

Téléchargez et installez playsms 1.1 :

sudo -s  
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl  
php5enmod mcrypt  
service apache2 restart

Lorsque vous êtes invité à entrer le nouveau mot de passe pour l’utilisateur MySQL “root”, utilisez un mot de passe fort, dans cet exemple, j’ai utilisé MyP@$$w0rd

Maintenant, nous pouvons aller sur http://your-ip, dans mon cas http://10.255.50.30 , et nous verrons une page affichant : “ Ça fonctionne ! “.

cd /tmp/  
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%201.1/playsms-1.1.tar.gz  
tar -zxf playsms-1.1.tar.gz -C /usr/local/src  
ls -l /usr/local/src/  
cd /usr/local/src/playsms-1.1/  
cp install.conf.dist install.conf  
nano install.conf

Copiez install.conf.dist dans install.conf et éditez install.conf

Lisez install.conf et apportez des modifications pour adapter votre configuration système.

J’ai modifié le fichier, donc il ressemble à ceci :

# DONNÉES D'INSTALLATION
# ============


# Veuillez changer les DONNÉES D'INSTALLATION ci-dessous pour correspondre à vos configurations système

# Veuillez ne pas changer le nom de la variable, vous pouvez seulement changer la valeur

# Nom d'utilisateur de la base de données MySQL
DBUSER="root"

# Mot de passe de la base de données MySQL
DBPASS="MyP@$$w0rd"

# Nom de la base de données MySQL
DBNAME="playsms"

# Hôte de la base de données MySQL
DBHOST="localhost"

# Port de la base de données MySQL
DBPORT="3306"

# Utilisateur du serveur web, par exemple l'utilisateur apache2 par défaut est www-data
# note : veuillez vous assurer que votre utilisateur de serveur web
WEBSERVERUSER="www-data"

# Groupe du serveur web, par exemple le groupe apache2 par défaut est www-data
# note : veuillez vous assurer que votre groupe de serveur web
WEBSERVERGROUP="www-data"

# Chemin vers les fichiers sources extraits de playSMS
PATHSRC="$(pwd)"

# Chemin vers les fichiers web de playSMS
# note : veuillez vous assurer que votre chemin racine web, dans cet exemple c'est /var/www/html
PATHWEB="/var/www/html/playsms"

# Chemin vers les fichiers supplémentaires de playSMS
PATHLIB="/var/lib/playsms"

# Chemin vers le démon playSMS et d'autres fichiers binaires
PATHBIN="/usr/local/bin"

# Chemin vers les fichiers journaux de playSMS
PATHLOG="/var/log/playsms"


# FIN DES DONNÉES D'INSTALLATION
# ===================

Maintenant, exécutez :

./install-playsms.sh

Appuyez sur Y si tout semble correct.

Maintenant, nous voulons nous assurer que playsms démarre au démarrage en ajoutant une ligne dans le fichier rc.local.

nano /etc/init.d/rc.local

Ajoutez ce qui suit au fichier : /usr/local/bin/playsmsd start
au bas du fichier (avant exit s’il y a une commande exit).
De cette façon, playsmsd démarrera automatiquement au démarrage.

..
/usr/local/bin/playsmsd start

Éditez le fichier vhost apache :

nano /etc/apache2/sites-available/default

Mon fichier vhost ressemble à ceci :

        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html/playsms
        
                Options FollowSymLinks
                AllowOverride None
        
                
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Les valeurs possibles incluent : debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

Maintenant, rechargez la configuration d’Apache2 pour appliquer les modifications.

service apache2 reload

Ensuite, vous devriez pouvoir accéder au site web playsms à l’URL suivante :

Allez sur http://your-ip etc. http://10.255.50.30

Vous pouvez vous connecter avec :

nom d’utilisateur : admin
mot de passe : admin

Passerelle - Outils de serveur SMS 3

Tout d’abord, nous installons les outils de construction pour construire la dernière version. Exécutez :

apt-get install build-essential libusb-1.0 libusb-1.0-0-dev

Maintenant, j’ai branché le modem Huawei E3131, et je peux le voir listé avec lsusb :

lsusb
lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd.

Nous aimerions qu’il soit avec l’ID : 12d1:1506, mais il est détecté avec 12d1:14fe en ce moment.

Pour changer cela, nous installons usb_modeswitch dans le système, vous pouvez obtenir la dernière version ici :

http://www.draisberghof.de/usb_modeswitch/#download

cd /tmp  
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2  
tar jxvf usb-modeswitch-2.2.5.tar.bz2  
cd usb-modeswitch-2.2.5  
make install  
cd /tmp  
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2  
tar xjvf usb-modeswitch-data-20150627.tar.bz2  
cd usb-modeswitch-data-20150627  
make install

Maintenant, débranchez le modem, et rebranchez-le, puis exécutez :

lsusb
 lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

Maintenant, nous avons le mode désiré : 12d1:1506.

Ensuite, nous procédons avec SMS Server Tools 3.

Tout d’abord, nous le téléchargeons, puis le décompressons et l’installons.

cd /usr/local/src  
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz  
tar -zxvf smstools3-3.1.15.tar.gz  
cd smstools3  
make

Si vous voyez une erreur comme dans mon cas, lorsque vous exécutez make :

 make
cd src && make -
make[1]: Entering directory '/usr/local/src/smstools3/src'
Makefile:51: * recipe commences before first target.  Stop.
make[1]: Leaving directory '/usr/local/src/smstools3/src'
Makefile:10: recipe for target 'compile' failed
make: * [compile] Error 2

Alors faites ce qui suit :

nano src/Makefile

Le problème est un onglet manquant, maintenant cherchez :

ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endif

Et déplacez la ligne override LFLAGS += -lsocket -lnsl avec un ONGLET

ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
        override LFLAGS += -lsocket -lnsl
endif

Et essayez d’exécuter make à nouveau :

make  
make install

Maintenant, nous créons quelques dossiers requis :

mkdir -p /var/log/sms/stats  
mkdir -p /var/spool/sms/{checked,failed,incoming,outgoing,sent}  
mkdir /var/spool/sms/modem1  
chown www-data:www-data -R /var/spool/sms  
chmod 777 -R /var/spool/sms

Et ensuite, déplacez le fichier de configuration original et téléchargez un exemple depuis PlaySMS :

mv /etc/smsd.conf /etc/smsd.conf.dist  
cd /tmp   
wget -c https://raw.githubusercontent.com/antonraharja/playSMS/master/contrib/smstools/smsd.conf  
cp smsd.conf /etc/

Pour m’assurer que j’utiliserai toujours le bon appareil, j’utiliserai un fichier de périphérique dynamique.

Lisez-en plus sur les fichiers de périphérique dynamiques à l’URL suivante : http://antonraharja.com/2015/05/14/persistent-paths-for-dynamic-device-file/

nano /etc/udev/rules.d/80-ttyusb-map.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", PROGRAM="/etc/udev/rules.d/ttyusb-map.sh %p", SYMLINK+="gsm%c"
touch /etc/udev/rules.d/ttyusb-map.sh   
chmod 755 /etc/udev/rules.d/ttyusb-map.sh   
nano /etc/udev/rules.d/ttyusb-map.sh
#!/usr/bin/perl -w

@items = split("/", $ARGV[0]);
for ($i = 0; $i < @items; $i++) {
    if ($items[$i] =~ m/^usb[0-9]+$/) {
        print $items[$i + 1] . "\n";
        last;
    }
}

Maintenant débranchez et rebranchez votre modem, et il devrait être situé à /dev/gsm* :

ls -l /dev/gsm*   
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsm1-1 -> ttyUSB0   
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsmmodem -> ttyUSB0

J’ai apporté quelques modifications au fichier, donc voici ma configuration, mon modem est situé à /dev/gsm1-1 remplacez cela par votre emplacement.

# Configuration globale

#devices = modem1, modem2
devices = modem1

loglevel = 5

# fichiers journaux
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log

# Répertoire de la file d'attente par défaut = /var/spool/sms
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent

# ne pas définir le dossier de rapport, laisser les fichiers de rapport de statut enregistrés dans incoming
#report = /var/spool/sms/report

delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes

# Configurations de la file d'attente

[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2

# Configurations du modem

# Nom du modem : modem1
# Type de modem : Wavecom USB
[modem1]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#init = AT+CPMS="ME","ME","ME"
device = /dev/gsm1-1
baudrate = 19200
incoming = yes
pin = 3391
report = yes
queues = modem1
decode_unicode_text = yes
cs_convert = yes

# Nom du modem : modem2
# Type de modem : Wavecom USB
#[modem2]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#device = /dev/ttyUSB1
#baudrate = 115200
#incoming = yes
#report = yes
#queues = modem2

Redémarrez les Outils de serveur SMS 3 :

/etc/init.d/sms3 restart

Vérifiez si les Outils de serveur SMS 3 fonctionnent :

ps ax | grep -v grep | grep smsd

Surveillez le fichier journal des Outils de serveur SMS 3 :

tail -f /var/log/smsd.log

Connectez-vous et configurez smstools dans le panneau web playsms

Connectez-vous à votre installation playsms, mon adresse est http://10.255.50.30/

Le nom d’utilisateur est admin
Le mot de passe est admin

Maintenant, allez dans Paramètres => Gérer la passerelle et SMSC.

Vous devriez voir un écran comme ceci :

Maintenant, cliquez pour éditer la passerelle smstools.

Et assurez-vous qu’elle est configurée comme ceci :

Cliquez sur Enregistrer, et lorsque c’est enregistré, cliquez sur retour.

Maintenant, vous devez configurer le SMSC, alors veuillez sélectionner le signe + à SMSTools.

Vous devriez remplir les détails du SMSC comme ceci, dans le numéro de récepteur, écrivez votre numéro de téléphone de modem.

Lorsque vous avez terminé, cliquez sur enregistrer.

Maintenant, allez dans Paramètres => Configuration principale

Et remplissez les champs suivants :

ID d’expéditeur par défaut
Préfixe ou code de pays par défaut

Et définissez SMSC par défaut sur smstools, comme montré sur l’image ci-dessous.

Cliquez sur enregistrer, nous sommes prêts à envoyer le premier SMS.

Envoyer un SMS

Maintenant, allez dans Mon compte => Composer un message

Écrivez votre numéro de téléphone portable dans Envoyer à, et un message etc. Bonjour le monde ! dans le champ de message, et cliquez sur envoyer.

Si le message est mis en file d’attente, vous pouvez suivre la transaction ici :

Allez dans Rapports => Tous les messages envoyés

Les messages entrants qui ne sont pas traités sont conservés dans le bac à sable, vous le verrez dans Rapports => Bac à sable

Et le journal si quelque chose ne se trouve pas dans Rapports => Voir le journal

Si vous avez des problèmes avec votre configuration, un bon endroit pour demander de l’aide est le forum playsms.

https://forum.playsms.org/

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.