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
Bundled utilities:
- 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
- pyserial
There are two ways to install python-gsmmodem
:
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 pip
above.
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.
Download and extract the python-gsmmodem
archive from PyPI for the current release
version, or clone from GitHub.
Next, do this:
python setup.py install
Note that python-gsmmodem
relies on pyserial
for serial communications:
http://pyserial.sourceforge.net
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.