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.zipVous 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émarrerMaintenant, 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/interfacesMon 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.4Maintenant, nous redémarrons le service réseau sur le Pi :
sudo /etc/init.d/networking restartEnsuite, nous désactivons DHCP au démarrage avec cette commande :
sudo update-rc.d -f dhcpcd removeSi vous souhaitez l’activer à nouveau plus tard, il suffit d’exécuter la commande suivante :
sudo update-rc.d dhcpcd defaultsMaintenant, 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 -yPlaySMS
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 restartLorsque 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.confCopiez 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.shAppuyez 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.localAjoutez 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/defaultMon 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 reloadEnsuite, 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-devMaintenant, j’ai branché le modem Huawei E3131, et je peux le voir listé avec lsusb :
lsusblsusb
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 installMaintenant, 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/NetworkcardMaintenant, 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
makeSi 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 2Alors faites ce qui suit :
nano src/MakefileLe problème est un onglet manquant, maintenant cherchez :
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endifEt déplacez la ligne override LFLAGS += -lsocket -lnsl avec un ONGLET
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endifEt essayez d’exécuter make à nouveau :
make
make installMaintenant, 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/smsEt 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.rulesACTION=="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 -> ttyUSB0J’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 = modem2Redémarrez les Outils de serveur SMS 3 :
/etc/init.d/sms3 restartVérifiez si les Outils de serveur SMS 3 fonctionnent :
ps ax | grep -v grep | grep smsdSurveillez le fichier journal des Outils de serveur SMS 3 :
tail -f /var/log/smsd.logConnectez-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.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.