ussdcmd.py
780 Bytes
#!/usr/bin/env python
import sys
import ConfigParser
from gsmmodem.modem import GsmModem
from gsmmodem.exceptions import TimeoutException
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]
response = modem.sendUssd(ussd_command, TOPUP_USSD_TIMEOUT)
message = response.message.strip()
logging.info(u'USSD response: {0}'.format(message))
if response.sessionActive:
response.cancel()