Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Send SMS messages via REST api using Gammu

Project Description

.. image::


Send SMS messages via REST api using Gammu as backend.


* The following program works both on Linux and OSX.

* You must already have `Gammu <>`_ installed and configured on the right device.
Note it's obvious that your device must manage SMS sending/receiving with Gammu perfectly.


* Install the package into your project's virtual environment :

``pip install smsgateway-gammu``


* Modify the ``/etc/smsgateway.yml`` configuration file with your favorite text editor.

.. code-block:: yaml

# Server settings
# Listen address, put to listen on all interfaces
host: ""

# Listen port
port: 1234

# Gammu settings
# PIN code, enter pin code there to unlock directly from application
pin: 1234

# Configuration : instead of a .gammurc file you can give configuration there
# config:
# Device: /dev/tty.HUAWEIMobile-Modem
# Connection: at

# General settings
# Phone numbers that doesn't want to receive messages from gateway
send_blacklist: ["+33689898989", "+33652525252"]

# Phone numbers that are allowed to send messages to gateway
receive_whitelist: ["+33638383838", "+33614141414"]


Start the gateway

* To start the gateway, just type the command :


* Or if configuration file is elsewhere than ``/etc/smsgateway.yml`` :

``smsgateway --config <your_configuration_file>``

Sending a text message

There are different ways to send a message :

**GET method**

``GET /sms?number=mynumbers&message=mymessage``

Where **mynumbers** are phone numbers, comma separated.

For instance : ``GET /sms?number=+33565656565,+33689898989&message=Hello``

Will send "Hello" message to the 2 phone numbers and return the JSON : ``{"status": "ok", "message": "messages sent"}``.

**POST method**


POST /sms?number=mynumbers
"message": "Hello World"

Where POST data is JSON containing the field string "message".


POST /sms?number=mynumbers
"messages": [

Where JSON contains the field "messages" which is a list for multiple messages.

User interaction

Users allowed to send SMS messages to the gateway (receive_whitelist in config) can interact with the system.

**Keywords are :**

* **PING** : to check if the gateway works correctly, returns PONG if all is good.
* **PAUSE** : temporary pause messages coming from the gateway. It's worth to have this feature when a monitoring system spams you. To enable again just resend **PAUSE**.

Prometheus Alertmanager

The gateway was primary designed to work with Prometheus `Alertmanager <>`_, allowing sending alerts with SMS messages.

To configure it, create a new **receiver** entry in the alertmanager configuration file :

.. code-block:: yaml


- name: sms
- url: http://localhost:9876/sms?number=+33623232323,+33690909090

Release History

This version
History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(5.6 kB) Copy SHA256 Hash SHA256
Source None Jul 15, 2017

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting