Control an attached GSM modem: send/receive SMS messages, handle calls, etc
Project description
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.
How to use this package
Go to examples/ directory in this repo.
Requirements
Python 3.3 or later
pySerial
How to install this package
There are multiple ways to install python-gsmmodem-new package:
Automatic installation of the latest “stable” release from PyPI
pip install python-gsmmodem-new
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-new 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.
Manual installation of the latest “stable” release from PyPI
Download a python-gsmmodem-new archive from PyPI, extract it and install the package with command:
python setup.py install
Note that python-gsmmodem-new package relies on pySerial for serial communications: https://github.com/pyserial/pyserial
Installation of the latest commit from GitHub
Clone from GitHub:
git clone https://github.com/babca/python-gsmmodem.git cd python-gsmmodem/ python setup.py install
Note that python-gsmmodem-new package relies on pySerial for serial communications: https://github.com/pyserial/pyserial
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.
Building documentation
This package contains Sphinx-based documentation. To manually build or test the documentation locally, do the following:
git clone https://github.com/babca/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.
License information
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.
FAQ
List all modem ports
You can simply list all ttyUSB devices before and after pluging the modem in.
ls /dev/ttyUSB*
Device or resource busy error
Check running processes. The device could be occupied by another program or another instance of gsmmodem which is still running in the background. Run sudo lsof | grep tty, try to locate the problematic process and sudo kill <PID>.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python-gsmmodem-new-0.13.0.tar.gz
.
File metadata
- Download URL: python-gsmmodem-new-0.13.0.tar.gz
- Upload date:
- Size: 118.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a991b3f1b2a78b2c2ebf70c46ec399c241dbaafeb84c22e5583dfcb92238194b |
|
MD5 | 92037aee4427bd646aa35c686950360f |
|
BLAKE2b-256 | de10f22815db197cc85c05e815091cc56aa6886c6775a207b35e4298a6a4370b |
File details
Details for the file python_gsmmodem_new-0.13.0-py3-none-any.whl
.
File metadata
- Download URL: python_gsmmodem_new-0.13.0-py3-none-any.whl
- Upload date:
- Size: 70.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 369d33c2763fd0046f671a827e7d28c5955a82a48bc8abf408b7c65b68774c45 |
|
MD5 | 21dfc0cc2c1c42a2b227620c0dd468f1 |
|
BLAKE2b-256 | 47ccc04ee73f8b226326fbb62ef70fb4f45c5f8759f521023ea54b593df1098a |