예제 #1
6
def main():
    print('Initializing modem...')
    #logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG)
    modem = GsmModem(PORT, BAUDRATE)
    modem.connect(PIN)
    modem.waitForNetworkCoverage(10)
    print('Sending USSD string: {0}'.format(USSD_STRING))
    response = modem.sendUssd(USSD_STRING) # response type: gsmmodem.modem.Ussd
    print('USSD reply received: {0}'.format(response.message))
    if response.sessionActive:
        print('Closing USSD session.')
        # At this point, you could also reply to the USSD message by using response.reply()
        response.cancel()
    else:
        print('USSD session was ended by network.')
    modem.close()
예제 #2
0
def main():
    print('Initializing modem...')
    #logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG)
    modem = GsmModem(PORT, BAUDRATE)
    modem.connect(PIN)
    modem.waitForNetworkCoverage(10)
    print('Sending USSD string: {0}'.format(USSD_STRING))
    response = modem.sendUssd(USSD_STRING) # response type: gsmmodem.modem.Ussd
    print('USSD reply received: {0}'.format(response.message))
    if response.sessionActive:
        print('Closing USSD session.')
        # At this point, you could also reply to the USSD message by using response.reply()
        response.cancel()
    else:
        print('USSD session was ended by network.')
    modem.close()
예제 #3
0
class phoneConnection:
    def __init__(self, handleSMSCallBack):
        self.port = '/dev/ttyUSB2'
        ports = list(serial.tools.list_ports.comports())
        for p in ports:
            if 'ZTE NMEA Device' in p.description:
                self.port = p.device
        self.baudRate = 115200
        self.pin = None  # SIM card PIN (if any)
        self.modem = GsmModem(self.port, self.baudRate, smsReceivedCallbackFunc=handleSMSCallBack\
            ,incomingCallCallbackFunc=handleCall)
        self.modem.smsTextMode = False
        self.modem.connect(self.pin)
        self.signalStrength = self.modem.waitForNetworkCoverage(10)
        self.response = None
        self.modem.ownNumber

    def sendUSSD(self, ussdString):
        if (self.response and self.response.sessionActive):
            self.response.reply(ussdString)
        else:
            self.response = self.modem.sendUssd(ussdString)
        ucs2Message = binascii.unhexlify(self.response.message)
        utf16Message = ucs2Message.decode('utf-16-be')
        return utf16Message

    def sessionActiveClose(self):
        if self.response.sessionActive:
            response.cancel()

    def getIrancellAccountBalance(self):
        try:
            message = self.sendUSSD('*141*1#')
            balance = int(message.split()[1])
            self.sessionActiveClose()
        except:
            balance = -1
        return balance

    def accountCharging(self):
        pass
        #'*780*2*1*0936XXX9014*10000*1*#')

    def __del__(self):
        if (self.modem):
            self.modem.close()