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()