def send_sms_with_backend(domain, phone_number, text, backend_id): msg = SMSLog(domain = domain, phone_number = phone_number, direction = OUTGOING, date = datetime.utcnow(), text = text) if backend_id == "MOBILE_BACKEND_MACH": try: try: msg.backend_api = mach_api.API_ID except Exception: pass mach_api.send(msg) msg.save() return True except Exception: logging.exception("Exception while sending SMS to %s with backend %s" % (phone_number, backend_id)) return False elif backend_id == "MOBILE_BACKEND_UNICEL": try: try: msg.backend_api = unicel_api.API_ID except Exception: pass unicel_api.send(msg) msg.save() return True except Exception: logging.exception("Exception while sending SMS to %s with backend %s" % (phone_number, backend_id)) return False else: try: backend = MobileBackend.get(backend_id) except Exception: backend = None if backend is None: return False try: module = __import__(backend.outbound_module, fromlist=["send"]) try: msg.backend_api = module.API_ID except Exception: pass kwargs = backend.outbound_params module.send(msg, **kwargs) msg.save() return True except Exception as e: logging.exception("Exception while sending SMS to %s with backend %s" % (phone_number, backend_id)) return False
def send_sms_to_verified_number(verified_number, text): """ Sends an sms using the given verified phone number entry. verified_number The VerifiedNumber entry to use when sending. text The text of the message to send. return True on success, False on failure """ try: backend = verified_number.backend module = __import__(backend.outbound_module, fromlist=["send"]) kwargs = backend.outbound_params msg = SMSLog( couch_recipient_doc_type = verified_number.owner_doc_type, couch_recipient = verified_number.owner_id, phone_number = "+" + str(verified_number.phone_number), direction = OUTGOING, date = datetime.utcnow(), domain = verified_number.domain, text = text ) try: msg.backend_api = module.API_ID except Exception: pass module.send(msg, **kwargs) msg.save() return True except Exception as e: logging.exception("Exception while sending SMS to VerifiedNumber id " + verified_number._id) return False
def send_sms(domain, id, phone_number, text): """ Sends an outbound SMS. Returns false if it fails. """ if phone_number is None: return False if isinstance(phone_number, int) or isinstance(phone_number, long): phone_number = str(phone_number) logging.debug('Sending message: %s' % text) phone_number = clean_phone_number(phone_number) msg = SMSLog(domain=domain, couch_recipient=id, couch_recipient_doc_type="CouchUser", phone_number=phone_number, direction=OUTGOING, date = datetime.utcnow(), text = text) try: api = get_backend_api(msg) try: msg.backend_api = api.API_ID except Exception: pass api.send(msg) msg.save() return True except Exception: logging.exception("Problem sending SMS to %s" % phone_number) return False