Skip to main content

Forwards messages via SMS from and to instant messengers

Project description


This project is in Beta stage, so documentation is quite limited. Pull requests welcome!

The following instructions apply to a Raspberry PI running Ubuntu, but it should work similarly on other Linux distributions and platforms. Some commands might require to be invoked with sudo.

See SMSGateway-Android for an Android client.

SMS Tools

Install smstools:

apt install smstools

Edit /etc/smsd.conf, see Confiuration/smsd.conf for an example configuration. It uses to user smsd for the sms spooler at /var/spool/sms.


pip install smsgateway

Copy smsgateway/ to /home/smsd/.config/smsgateway/ and adapt it.

Handle incoming SMS

To handling incoming sms Scripts/smshandler needs to be copied to the eventhandler specified in smsd.conf. In the example it points to /usr/local/bin/smshandler.

Make sure to make it executable (chmod +x).


mkdir /var/log/smsgateway/ && chown -R smsd:smsd /var/log/smsgateway/

Permission to control systemctl, shutdown, etc.

Copy Configuration/010_smsd-nopasswd to /etc/sudoers.d/

Make sure that the file is correct, otherwise you might lock yourself out! If you're unsure, run visudo -f /etc/sudoers.d/010_smsd-nopasswd, enter the contents in the editor and save it.



Uses Telethon.

Run python3 -m smsgateway.sources.telegram to authorize for receiving messages, similarly run python3 -m smsgateway.sources.commands.send_telegram to authorize for sending messages.


Uses fbchat, see documentation

apt install python3-dev libxml2-dev libxslt-dev
pip install fbchat


Uses signal-cli

apt install openjdk-8-jre-headless
wget "$SGVER/signal-cli-$SGVER.tar.gz"
tar xvf "signal-cli-$SGVER.tar.gz" -C /opt
ln -svf "/opt/signal-cli-${SGVER}/bin/signal-cli" /usr/local/bin/
signal-cli link
# You can remove old versions at /opt/signal-cli-<version>


Go to Sign in, create a token and store it in your configuration at SL_TOKEN


Uses Yowsup

pip install yowsup

Tweaks and optimizations

Ramdisk for SMS

When lots of SMS are processed it can wear out SD cards (I destroyed one after several months). A workaround is to store the SMS messages in a ramdisk. The following is an entry in the fstab:

tmpfs   /var/spool/sms  tmpfs         nodev,nosuid,size=64M     0       0

To mount it simply call mount /var/spool/sms.

The downside is, that when the device restarts/crashed, currently processed SMS messages are lost. To work around that there are two scripts for saving&restoring the messages in Scripts/ and a oneshot-service, which can be enabled to restore the message when the device is starting.

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for SMSGateway, version
Filename, size File type Python version Upload date Hashes
Filename, size SMSGateway- (34.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size SMSGateway- (22.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page