Raspberry Pi · 9 min read · Dec 08, 2025
Come installare un server SMS Raspberry Pi
Prima di iniziare
Questo tutorial ti mostrerà come impostare un server SMS su un Raspberry Pi 2 Model B, che esegue Raspbian.
Useremo playsms e smstools. Nel mio esempio, ho utilizzato un modem 3G Huawei E3131.
Raspbian
Prima dobbiamo scaricare raspbian, puoi prendere l’ultima versione su https://www.raspberrypi.org/downloads/
Url diretto: http://downloads.raspberrypi.org/raspbian_latest
Ora dobbiamo estrarre il file: 2015-05-05-raspbian-wheezy.zip:
unzip 2015-05-05-raspbian-wheezy.zipOtterrai un file chiamato 2015-05-05-raspbian-wheezy.img, questo file deve essere scritto sulla tua scheda micro-sd.
Se hai bisogno di conoscere alcune nozioni di base su come lavorare con raspberry pi e scrivere l’immagine sulla micro-sd, puoi iniziare leggendo questo tutorial:
https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/
Scrivi il file immagine sulla scheda micro-sd, sul mio PC la scheda micro-sd è vista come /dev/mmcblk0 su Linux puoi usare dd:
dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0- Si prega di notare che la dimensione del blocco impostata su 4M funzionerà la maggior parte delle volte; se non funziona, prova 1M, anche se questo richiederà notevolmente più tempo.
- Inoltre, nota che se non sei loggato come root dovrai anteporre questo con sudo.
Quando l’immagine è scritta, inserisci la scheda micro-sd nel tuo Raspberry Pi e accendilo.
Quando il Raspberry Pi è avviato, dovresti vedere uno schermo come questo, al primo avvio.

Ora seleziono le seguenti opzioni:
1 Espandi filesystem
3 Abilita avvio su desktop/Scratch -> Seleziona Console Testo Console, richiedendo login (predefinito)
8 Opzioni avanzate -> A4 SSH -> Abilita
8 Opzioni avanzate -> A0 Aggiorna
Fine -> RiavviaOra puoi accedere con il seguente nome utente: pi e password: raspberry.
Prima configuriamo la configurazione di rete per il nostro server modificando
sudo nano /etc/network/interfacesIl mio file /etc/network/interfaces appare così (cambia la configurazione secondo le tue esigenze):
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.4Ora riavviamo il servizio di rete sul Pi:
sudo /etc/init.d/networking restartPoi disabilitiamo DHCP all’avvio con questo comando:
sudo update-rc.d -f dhcpcd removeSe in qualche modo desideri abilitarlo di nuovo in seguito, esegui semplicemente il seguente comando:
sudo update-rc.d dhcpcd defaultsOra possiamo usare un client SSH come PuTTY per connetterci dal nostro PC al Raspberry Pi.
Ora aggiorniamo raspbian con il seguente comando:
sudo apt-get update && apt-get upgrade -y && apt-get dist-upgrade -yPlaySMS
Scarica e installa 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 restartQuando ti viene chiesto di inserire la nuova password per l’utente MySQL “root”, usa una password forte, in questo esempio ho usato MyP@$$w0rd
Ora possiamo andare su http://your-ip, nel mio caso http://10.255.50.30 ,e vedremo una pagina che mostra: “Funziona!”.
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.confCopia install.conf.dist in install.conf e modifica install.conf
Leggi install.conf e apporta modifiche per adattarle alla configurazione del tuo sistema.
Ho modificato il file, quindi appare così:
# INSTALL DATA
# ============
# Si prega di cambiare INSTALL DATA qui sotto per adattarsi alle configurazioni del tuo sistema
# Si prega di non cambiare il nome della variabile, puoi cambiare solo il valore
# Nome utente del database MySQL
DBUSER="root"
# Password del database MySQL
DBPASS="MyP@$$w0rd"
# Nome del database MySQL
DBNAME="playsms"
# Host del database MySQL
DBHOST="localhost"
# Porta del database MySQL
DBPORT="3306"
# Utente del server web, ad esempio l'utente apache2 di default è www-data
# nota: assicurati che l'utente del tuo server web
WEBSERVERUSER="www-data"
# Gruppo del server web, ad esempio il gruppo apache2 di default è www-data
# nota: assicurati che il gruppo del tuo server web
WEBSERVERGROUP="www-data"
# Percorso ai file sorgente estratti di playSMS
PATHSRC="$(pwd)"
# Percorso ai file web di playSMS
# nota: assicurati che il percorso della tua radice web, in questo esempio è /var/www/html
PATHWEB="/var/www/html/playsms"
# Percorso ai file aggiuntivi di playSMS
PATHLIB="/var/lib/playsms"
# Percorso ai file binari e daemon di playSMS
PATHBIN="/usr/local/bin"
# Percorso ai file di log di playSMS
PATHLOG="/var/log/playsms"
# FINE DEI DATI DI INSTALLAZIONE
# ===================
Ora esegui:
./install-playsms.shPremi Y se tutto sembra OK.
Ora vogliamo assicurarci che playsms si avvii all’avvio aggiungendo una riga nel file rc.local.
nano /etc/init.d/rc.localAggiungi quanto segue al file: /usr/local/bin/playsmsd start
sul fondo del file (prima di exit se c’è un comando exit).
In questo modo playsmsd si avvierà automaticamente all’avvio.
..
/usr/local/bin/playsmsd startModifica il file vhost di apache:
nano /etc/apache2/sites-available/defaultIl mio file vhost appare così:
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
# I valori possibili includono: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Ora ricarica la configurazione di Aapache2 per applicare le modifiche.
service apache2 reloadPoi dovresti essere in grado di accedere al sito web playsms al seguente url:
Vai su http://your-ip ecc. http://10.255.50.30
Puoi accedere con:
nome utente: admin
password: admin
Gateway - SMS Server Tools 3
Prima installiamo gli strumenti di build per costruire l’ultima versione. Esegui:
apt-get install build-essential libusb-1.0 libusb-1.0-0-devOra ho collegato il modem Huawei E3131 e posso vederlo elencato con 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.Vorremmo che fosse con ID: 12d1:1506, ma attualmente è rilevato con 12d1:14fe.
Per cambiare questo, installiamo usb_modeswitch nel sistema, puoi prendere l’ultima versione da qui:
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 installOra scollega il modem e ricollegalo, quindi esegui:
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/NetworkcardOra abbiamo ottenuto la modalità desiderata: 12d1:1506.
Successivamente procediamo con SMS Server Tools 3.
Prima lo scarichiamo, poi lo estraiamo e lo installiamo.
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
makeSe vedi un errore come nel mio caso, quando esegui 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 2Allora fai quanto segue:
nano src/MakefileIl problema è una mancanza di tabulazione, ora cerca:
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endifE sposta la riga override LFLAGS += -lsocket -lnsl con un TAB
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endifE prova a eseguire di nuovo make:
make
make installOra creiamo alcune cartelle necessarie:
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/smsE poi sposta il file di configurazione originale e scarica un campione da 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/Per assicurarmi di utilizzare sempre il dispositivo corretto, utilizzerò un file di dispositivo dinamico. Leggi di più sui file di dispositivo dinamici al seguente URL: 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;
}
}Ora scollega e ricollega il tuo modem, e dovrebbe trovarsi in /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 -> ttyUSB0Ho apportato alcune modifiche al file, quindi ecco la mia configurazione, il mio modem si trova in /dev/gsm1-1 sostituisci quello con la tua posizione.
# Configurazione globale
#devices = modem1, modem2
devices = modem1
loglevel = 5
# file di log
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log
# Directory della coda predefinita = /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
# non impostare la cartella di report, lascia che i file di report di stato siano salvati in incoming
#report = /var/spool/sms/report
delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes
# Configurazioni della coda
[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2
# Configurazioni del modem
# Nome del modem: modem1
# Tipo di 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
# Nome del modem: modem2
# Tipo di modem: Wavecom USB
#[modem2]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#device = /dev/ttyUSB1
#baudrate = 115200
#incoming = yes
#report = yes
#queues = modem2Riavvia gli SMS Server Tools 3:
/etc/init.d/sms3 restartVerifica se SMS Server Tools 3 è in esecuzione:
ps ax | grep -v grep | grep smsdMonitora il file di log di SMS Server Tools 3:
tail -f /var/log/smsd.logAccedi e configura smstools nel pannello web di playsms
Accedi alla tua installazione di playsms il mio indirizzo è http://10.255.50.30/
Il nome utente è admin
La password è admin
Ora vai su Impostazioni => Gestisci gateway e SMSC.
Dovresti vedere uno schermo come questo:
Ora fai clic per modificare il gateway smstools.
E assicurati che sia impostato in questo modo:
Fai clic su Salva, e quando è salvato fai clic su indietro.
Ora devi configurare l’SMSC, quindi seleziona il segno + su SMSTools.
Dovresti compilare i dettagli dell’SMSC in questo modo, nel numero del ricevente scrivi il numero di telefono del tuo modem.
Quando hai finito fai clic su salva.
Ora vai su Impostazioni => Configurazione principale
E compila i seguenti campi:
ID mittente predefinito
Prefisso predefinito o codice paese
E imposta SMSC predefinito su smstools, come mostrato nell’immagine qui sotto.
Fai clic su salva, siamo pronti per inviare il primo SMS.
Invia un SMS
Ora vai su Il mio account => Componi messaggio
Scrivi il tuo numero di cellulare in Invia a, e un messaggio ecc. Ciao Mondo! nel campo messaggio, e fai clic su invia.
Se il messaggio viene messo in coda, puoi seguire la transazione qui:
Vai su Report => Tutti i messaggi inviati
I messaggi in arrivo che non vengono gestiti vengono mantenuti in sandbox, lo vedrai in Report => Sandbox
E il log se qualcosa non si trova in Report => Visualizza log
Se hai problemi con la tua configurazione, un buon posto per cercare aiuto è il forum di playsms.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.