ussdcmd.py
882 Bytes
#!/usr/bin/env python
import logging
import sys
import ConfigParser
from gsmmodem.modem import GsmModem
from gsmmodem.exceptions import TimeoutException
logging.basicConfig(level=logging.INFO)
config = ConfigParser.RawConfigParser()
config.read('config.ini')
PORT = config.get('globals','PORT')
BAUDRATE = config.getint('globals', 'BAUDRATE')
PIN = None # SIM card PIN (if any)
logging.info('Initializing modem...')
modem = GsmModem(PORT, BAUDRATE)
modem.smsTextMode = True
modem.connect(PIN)
logging.info('Waiting for network coverage...')
modem.waitForNetworkCoverage(10)
logging.info('Modem ready')
ussd_command = sys.argv[1]
logging.info(u'Executing USSD command: {0}'.format(ussd_command))
response = modem.sendUssd(ussd_command)
message = response.message.strip()
logging.info(u'USSD response: {0}'.format(message))
if response.sessionActive:
response.cancel()