GSM modem module for Python
python-gsmmodem is a module that allows easy control of a GSM modem attached to the system. It also includes a couple of useful commandline utilities for interacting with a GSM modem.
Its features include:
- simple methods for sending SMS messages, checking signal level, etc
- easy-to-use API for starting and responding to USSD sessions and making voice calls
- handling incoming phone calls and received SMS messages via callback methods
- support for SMS PDU and text mode
- support for tracking SMS status reports
- wraps AT command errors into Python exceptions by default
- modular design; you easily issue your own AT commands to the modem (with error checking), or read/write directly from/to the modem if you prefer
- comprehensive test suite
- GSMTerm: an easy-to-use serial terminal for communicating with an attached GSM modem. It features command completion, built-in help for many AT commands, history, context-aware prompt, etc.
- sendsms.py: a simple command line script to send SMS messages
- identify-modem.py: simple utility to identify attached modem. Can also be used to provide debug information used for development of python-gsmmodem.
- Python 2.6 or later
How to install this package
There are two ways to install
pip install python-gsmmodem
pip will automatically download and install
all dependencies, as required. You can also utilise
easy_install in the
same manner as using
If you are utilising
python-gsmmodem as part of another project,
add it to your
install_requires section of your
setup.py file and
upon your project's installation, it will be pulled in automatically.
python setup.py install
python-gsmmodem relies on
pyserial for serial communications:
Testing the package
To run all unit tests, do:
python setup.py test
Unit test code coverage information may be generated by using coverage. You can execute it directly from setup.py by doing:
python setup.py coverage
This will run all unit tests and report on code coverage statistics.
This package contains Sphinx-based documentation. To manually build or test the documentation locally, do the following:
git clone https://github.com/faucamp/python-gsmmodem.git cd python-gsmmodem pip install .[doc] cd doc make html
For true isolation, you may wish to run the above commands within a virtualenv, which will help you manage this development installation.
Copyright (C) 2013 Francois Aucamp See AUTHORS for all authors and contact information.
- License: GNU Lesser General Public License, version 3 or later; see COPYING
- included in this archive for details.