def __init__(self, user): dispgsm._user=user self.logger = logging.getLogger(user.user_code+'.dispgsm') self.logger.info('Initializing GSM device %s',user.user_code) self._config = ConfigParser.ConfigParser() self._config.read('./config.cfg') self._msisdn = ast.literal_eval(self._config.get('GSM_CREDENTIALS',user.user_code))['msisdn'] self._pin = ast.literal_eval(self._config.get('GSM_CREDENTIALS',user.user_code))['pin'] self._port = ast.literal_eval(self._config.get('GSM_CREDENTIALS',user.user_code))['port'] self._baudrate = ast.literal_eval(self._config.get('GSM_CREDENTIALS',user.user_code))['baudrate'] self._modem = GsmModem(self._port, int(self._baudrate), incomingCallCallbackFunc=dispgsm.handleIncomingCall, smsReceivedCallbackFunc=dispgsm.handleSms, smsStatusReportCallback=dispgsm.handleSmsDeliveryReport)
def run(self): # initialize modem modem = GsmModem(self._modem_device, self._modem_baud, smsReceivedCallbackFunc=self._handleSms) modem.connect(self._modem_pin) # try to sycn clock with GSM network time self.set_clock_from_network(modem) # handle SMS self._pon_requested = False modem.smsTextMode = False modem.processStoredSms() # wait for completion try: modem.rxThread.join(1) finally: modem.close() # handle asynchronous sms request if self._pon_requested: self._pon_requested = False self.setup_connection()
def initModem(port='/dev/ttyUSB0', baud=460800): global modem modem = GsmModem(port, baud) # Uncomment the following line to see what the modem is doing: # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) print('Connecting to GSM modem on {0}...'.format(port)) try: modem.connect() except PinRequiredError: sys.stderr.write( 'Error: SIM card PIN required. Please specify a PIN. \n') sys.exit(1) except IncorrectPinError: sys.stderr.write('Error: Incorrect SIM card PIN entered.\n') sys.exit(1) print('Checking for network coverage...') try: modem.waitForNetworkCoverage(5) except TimeoutException: print( 'Network signal strength is not sufficient, please adjust modem position/antenna and try again.' ) modem.close() sys.exit(1)
def main(): # sendsms("+972549766158", "Hello") print('Initializing modem...') # Uncomment the following line to see what the modem is doing: # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) # modem = GsmModem(PORT) # modem.connect() # modem.smsc = "+972586279099" # modem.sendSms("+972549766158", "before") # modem.close() numOfSeats = 4 message = "זוהי הודעה מגבאי בית הכנסת : נשמח אם תוכל להחזיר הודעה עם מספר המושבים הפנויים שמוקצים לך ולמשפחתך בשבת הקרובה." + "\nמקסימום: " + str( numOfSeats) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) # modem.smsc = "+972586279099" #golan telecom modem.smsc = "+972521100059" #cellcom # modem.sendSms("+972549766158", "שלום מדבר אמיתי מלכה תוכל להגיב לי בבקשה?") modem.sendSms("+972587766185", message) # modem.smsc = "+972586279099" print('Waiting for SMS message...') try: modem.rxThread.join( 2**31 ) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def getUnreadText(key): if key.strip() == '9703BB8D5A': modem = GsmModem('/dev/ttyUSB0', 9600) try: print "Connecting mode" modem.connect() except: return "Error connecting" try: messages = modem.listStoredSms(status=Sms.STATUS_RECEIVED_UNREAD) except Exception as e: return str(e) modem.close() retString = "" print "Got %d messages" % len(messages) for message in messages: retString = retString + "%s : %s" % (message.number, message.text) return retString else: return "Incorrect key"
def text(number, message, key): if key.strip() == '9703BB8D5A': print "Creating modem instance" modem = GsmModem('/dev/ttyUSB0', 9600) try: print "Connecting modem" modem.connect() except PinRequiredError: print "Pin required" try: print "Waiting for Network coverage info" modem.waitForNetworkCoverage(5) except TimeoutException: print "Signal strength not strong enough" return "No signal" else: try: print "Sending %s to %s" % (message, number) sms = modem.sendSms(number, message) except TimeoutException: print "Failed to send message" return 'Error encountered' print "Closing modem" modem.close() return True else: return 'Key is not correct'
def send_sms(phone_num, context): modem = GsmModem(port=PORT) modem.connect(PIN) for i in range(len(phone_num)): modem.sendSms(phone_num[i], context) # modem.smsTextMode = False modem.close()
def getAllText(key): if key.strip() == '9703BB8D5A': modem = GsmModem('/dev/ttyUSB0', 9600) try: print "Connecting modem" modem.connect() except Exception as e: return str(e) try: messages = modem.listStoredSms() except Exception as e: return str(e) modem.close() retString = "" print "Got %d messages" % len(messages) for message in messages: retString = retString + "%s : %s" % (message.number, message.text) + "\n" return retString else: return "Incorrect key"
def main(): print("Iniciando modem...") logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.smsTextMode = True modem.connect(PIN) modem.sendSms('638070483', text())
def main(): print("Iniciando modem...") logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.smsTextMode = False modem.connect(PIN) sms = text() modem.sendSms('649886178', sms)
def main(): # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) try: modem.rxThread.join(2**31) finally: modem.close()
def main(): global modem global phonebook config.read('config.ini') # Create the phonebook tmpPhonebook = config.items('phonebook') for row in tmpPhonebook: phonebook[row[0]] = row[1] # Initialize the modem print('Initializing modem...') modem = GsmModem(config.get('modem', 'port'), config.getint('modem', 'baudrate'), smsReceivedCallbackFunc=on_gsm_handleSms) modem.smsTextMode = True # Connect to the modem try: modem.connect(config.get('modem', 'pin')) except PinRequiredError: print('Pin required') sys.exit(1) except IncorrectPinError: print('Wrong pin') sys.exit(1) # Print information about modem and network print(u'Connected to modem: {0} {1}'.format(modem.manufacturer, modem.model)) print(u'Connected to network: {0}'.format(modem.networkName)) print(u'Signal strenght: {0}'.format(str(modem.signalStrength))) print('Ready!') print('===') # Make sure to empty incoming sms bucket modem.processStoredSms() # Initialize MQTT client.on_connect = on_mqtt_connect client.on_message = on_mqtt_message client.username_pw_set(config.get('mqtt', 'user'), config.get('mqtt', 'pass')) client.connect(config.get('mqtt', 'server'), config.getint('mqtt', 'port'), 60) client.loop_start() # Keep running forever try: modem.rxThread.join( 2**31 ) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def send_sms(args): modem = GsmModem(args.port, args.baud, AT_CNMI=args.CNMI) if args.debug: # enable dump on serial port logging.basicConfig(format="%(levelname)s: %(message)s", level=logging.DEBUG) print("Connecting to GSM modem on {0}...".format(args.port)) try: modem.connect(args.pin, waitingForModemToStartInSeconds=args.wait) except PinRequiredError: sys.stderr.write( "Error: SIM card PIN required. Please specify a PIN with the -p argument.\n" ) sys.exit(1) except IncorrectPinError: sys.stderr.write("Error: Incorrect SIM card PIN entered.\n") sys.exit(1) print("Checking for network coverage...") try: modem.waitForNetworkCoverage(5) except TimeoutException: print( "Network signal strength is not sufficient, please adjust modem position/antenna and try again." ) modem.close() sys.exit(1) else: if args.message is None: print("\nPlease type your message and press enter to send it:") text = raw_input("> ") else: text = args.message if args.deliver: print("\nSending SMS and waiting for delivery report...") else: print("\nSending SMS message...") try: sms = modem.sendSms( args.destination, text, waitForDeliveryReport=args.deliver ) except TimeoutException: print("Failed to send message: the send operation timed out") modem.close() sys.exit(1) else: modem.close() if sms.report: print( "Message sent{0}".format( " and delivered OK." if sms.status == SentSms.DELIVERED else ", but delivery failed." ) ) else: print("Message sent.")
def main(): print('Initializing modem...') logging.basicConfig(filename='/var/log/gsm.log', format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, incomingCallCallbackFunc=handleIncomingCall) modem.connect() print('Waiting for incoming calls...') try: modem.rxThread.join(2**31) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def reinitializeModem(): try: print('Reinitializing modem...') global modem modem = GsmModem(config.PORT, config.BAUDRATE, smsReceivedCallbackFunc=smsCommands.handleSms) modem.connect(config.PIN) print("Modem IMEI: ", modem.imei) except: print("Failed to reinitialize modem")
def initializeModem(): print('Initializing modem...') global modem modem = GsmModem(config.PORT, config.BAUDRATE, smsReceivedCallbackFunc=smsCommands.handleSms) # logging.basicConfig(format='%(levelname)s: %(message)s', # level=logging.DEBUG) modem.connect(config.PIN) print("Modem IMEI: ", modem.imei) testMessageRequest()
def main(): print('Initializing modem...') # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.connect(PIN) number = modem.ownNumber print("The SIM card phone number is:") print(number)
def main(): args = parseArgsPy26( ) if sys.version_info[0] == 2 and sys.version_info[1] < 7 else parseArgs() if args.port == None: sys.stderr.write( 'Error: No port specified. Please specify the port to which the GSM modem is connected using the -i argument.\n' ) sys.exit(1) modem = GsmModem(args.port, args.baud, AT_CNMI=args.CNMI) # Uncomment the following line to see what the modem is doing: #logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) print('Connecting to GSM modem on {0}...'.format(args.port)) try: modem.connect(args.pin, waitingForModemToStartInSeconds=args.wait) except PinRequiredError: sys.stderr.write( 'Error: SIM card PIN required. Please specify a PIN with the -p argument.\n' ) sys.exit(1) except IncorrectPinError: sys.stderr.write('Error: Incorrect SIM card PIN entered.\n') sys.exit(1) print('Checking for network coverage...') try: modem.waitForNetworkCoverage(5) except TimeoutException: print( 'Network signal strength is not sufficient, please adjust modem position/antenna and try again.' ) modem.close() sys.exit(1) else: print('\nPlease type your message and press enter to send it:') text = raw_input('> ') if args.deliver: print('\nSending SMS and waiting for delivery report...') else: print('\nSending SMS message...') try: sms = modem.sendSms(args.destination, text, waitForDeliveryReport=args.deliver) except TimeoutException: print('Failed to send message: the send operation timed out') modem.close() sys.exit(1) else: modem.close() if sms.report: print('Message sent{0}'.format( ' and delivered OK.' if sms.status == SentSms.DELIVERED else ', but delivery failed.')) else: print('Message sent.')
def main(): global modem print('Initializing modem...') logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, incomingCallCallbackFunc=handleIncomingCall, smsReceivedCallbackFunc=handleSms, gpsStatusReportCallbackFunc=handleIncomingGPS) modem.connect() print('Waiting for incoming calls or SMS messages') try: modem.rxThread.join(2**31) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def main(): print('Initializing modem...') # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) print('Waiting for SMS message...') try: modem.rxThread.join(2**10) finally: modem.close()
def main(): print('Initializing modem...') # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) print('Waiting for SMS message...') try: modem.rxThread.join(2**31) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close();
def main(): print('Initializing modem...') modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=sms_catcher, incomingCallCallbackFunc=call_catcher) modem.smsTextMode = False modem.connect() print('Waiting for SMS or Call...') try: modem.rxThread.join() finally: modem.close()
def main(): print('Initializing modem...') modem = GsmModem(PORT, BAUDRATE) modem.connect(PIN) modem.waitForNetworkCoverage(10) print('Sending SMS to: {0}'.format(SMS_DESTINATION)) response = modem.sendSms(SMS_DESTINATION, SMS_TEXT, True) if type(response) == SentSms: print('SMS Delivered.') else: print('SMS Could not be sent') modem.close()
def runModem(): print('Initializing modem...') #logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False modem.connect(PIN) modem.deleteMultipleStoredSms() #modem.sendSms('+44740000000','asdsdefed',False) print('Waiting for SMS message...') try: modem.rxThread.join( 2**31 ) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close()
def main(): print('Initializing modem...') modem = GsmModem(PORT, SPEED) modem.smsTextMode = False modem.connect(PIN) try: number_request = '+79372219943' #number_request = '+79179812832' #number_request = '+79272294597' message = "/00000 INS OUTS" modem.sendSms(number_request, message) #modem.status() finally: modem.close()
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 __init__(self): print('Initializing modem...') fHelper = FileHandler() contents = fHelper.readSmsSettings() arr = contents.split(",") PORT = arr[0] BAUDRATE = int(arr[1]) PIN = None print(PORT, BAUDRATE) # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) self.modem = GsmModem(PORT, BAUDRATE) self.modem.smsTextMode = False self.modem.connect(PIN)
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()
def main(): if NUMBER == None or NUMBER == "00000": print( "Error: Please change the NUMBER variable's value before running this example." ) sys.exit(1) print("Initializing modem...") # logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE) modem.connect(PIN) print("Waiting for network coverage...") modem.waitForNetworkCoverage(30) print("Dialing number: {0}".format(NUMBER)) call = modem.dial(NUMBER) print("Waiting for call to be answered/rejected") wasAnswered = False while call.active: if call.answered: wasAnswered = True print("Call has been answered; waiting a while...") # Wait for a bit - some older modems struggle to send DTMF tone immediately after answering a call time.sleep(3.0) print("Playing DTMF tones...") try: if ( call.active ): # Call could have been ended by remote party while we waited in the time.sleep() call call.sendDtmfTone("9515999955951") except InterruptedException as e: # Call was ended during playback print("DTMF playback interrupted: {0} ({1} Error {2})".format( e, e.cause.type, e.cause.code)) except CommandError as e: print("DTMF playback failed: {0}".format(e)) finally: if call.active: # Call is still active print("Hanging up call...") call.hangup() else: # Call is no longer active (remote party ended it) print("Call has been ended by remote party") else: # Wait a bit and check again time.sleep(0.5) if not wasAnswered: print("Call was not answered by remote party") print("Done.") modem.close()
def main(): args = parseArgsPy26( ) if sys.version_info[0] == 2 and sys.version_info[1] < 7 else parseArgs() print('args:', args) modem = GsmModem(args.port, args.baud) print('Connecting to GSM modem on {0}...'.format(args.port)) try: modem.connect(args.pin, waitingForModemToStartInSeconds=args.wait) except PinRequiredError: sys.stderr.write( 'Error: SIM card PIN required. Please specify a PIN with the -p argument.\n' ) sys.exit(1) except IncorrectPinError: sys.stderr.write('Error: Incorrect SIM card PIN entered.\n') sys.exit(1) if args.debug: # Print debug info print('\n== MODEM DEBUG INFORMATION ==\n') print('ATI', modem.write('ATI', parseError=False)) print('AT+CGMI:', modem.write('AT+CGMI', parseError=False)) print('AT+CGMM:', modem.write('AT+CGMM', parseError=False)) print('AT+CGMR:', modem.write('AT+CGMR', parseError=False)) print('AT+CFUN=?:', modem.write('AT+CFUN=?', parseError=False)) print('AT+WIND=?:', modem.write('AT+WIND=?', parseError=False)) print('AT+WIND?:', modem.write('AT+WIND?', parseError=False)) print('AT+CPMS=?:', modem.write('AT+CPMS=?', parseError=False)) print('AT+CNMI=?:', modem.write('AT+CNMI=?', parseError=False)) print('AT+CVHU=?:', modem.write('AT+CVHU=?', parseError=False)) print('AT+CSMP?:', modem.write('AT+CSMP?', parseError=False)) print('AT+GCAP:', modem.write('AT+GCAP', parseError=False)) print('AT+CPIN?', modem.write('AT+CPIN?', parseError=False)) print('AT+CLAC:', modem.write('AT+CLAC', parseError=False)) print() else: # Print basic info print('\n== MODEM INFORMATION ==\n') print('Manufacturer:', modem.manufacturer) print('Model:', modem.model) print('Revision:', modem.revision if modem.revision != None else 'N/A') print('\nIMEI:', modem.imei if modem.imei != None else 'N/A') print('IMSI:', modem.imsi if modem.imsi != None else 'N/A') print('\nNetwork:', modem.networkName) print('Signal strength:', modem.signalStrength) print()