def process_incoming_message(*args, **kwargs): try: from corehq.apps.telerivet.views import TELERIVET_INBOUND_FIELD_MAP fields = {a: kwargs[a] for (a, b) in TELERIVET_INBOUND_FIELD_MAP} log = IncomingRequest(**fields) log.save() except Exception as e: notify_exception(None, "Could not save Telerivet log entry") pass backend = TelerivetBackend.by_webhook_secret(kwargs["secret"]) if backend is None: # Ignore the message if the webhook secret is not recognized return if kwargs["from_number_e164"]: from_number = strip_plus(kwargs["from_number_e164"]) else: from_number = strip_plus(kwargs["from_number"]) if kwargs["event"] == EVENT_INCOMING: if kwargs["message_type"] == MESSAGE_TYPE_SMS: incoming_sms(from_number, kwargs["content"], TelerivetBackend.get_api_id()) elif kwargs["message_type"] == MESSAGE_TYPE_CALL: incoming_ivr(from_number, None, "TELERIVET-%s" % kwargs["message_id"], None)
def sms_in(request): """ Handles tropo messaging requests """ if request.method == "POST": data = json.loads(request.body) session = data["session"] # Handle when Tropo posts to us to send an SMS if "parameters" in session: params = session["parameters"] if ("_send_sms" in params) and ("numberToDial" in params) and ("msg" in params): numberToDial = params["numberToDial"] msg = params["msg"] t = Tropo() t.call(to=numberToDial, network="SMS") t.say(msg) return HttpResponse(t.RenderJson()) # Handle incoming SMS phone_number = None text = None if "from" in session: phone_number = session["from"]["id"] if "initialText" in session: text = session["initialText"] if phone_number is not None and len(phone_number) > 1: if phone_number[0] == "+": phone_number = phone_number[1:] incoming_sms(phone_number, text, TropoBackend.get_api_id()) t = Tropo() t.hangup() return HttpResponse(t.RenderJson()) else: return HttpResponseBadRequest("Bad Request")
def obj_create(self, bundle, request=None, **kwargs): bundle = self.full_hydrate(bundle) if bundle.obj.is_complete: incoming_sms(bundle.obj.phonenumber, bundle.obj.text, GrapevineBackend.get_api_id()) return bundle
def sms_in(request): """ Handles tropo messaging requests """ if request.method == "POST": data = json.loads(request.body) session = data["session"] # Handle when Tropo posts to us to send an SMS if "parameters" in session: params = session["parameters"] if ("_send_sms" in params) and ("numberToDial" in params) and ("msg" in params): numberToDial = params["numberToDial"] msg = params["msg"] t = Tropo() t.call(to = numberToDial, network = "SMS") t.say(msg) return HttpResponse(t.RenderJson()) # Handle incoming SMS phone_number = None text = None if "from" in session: phone_number = session["from"]["id"] if "initialText" in session: text = session["initialText"] if phone_number is not None and len(phone_number) > 1: if phone_number[0] == "+": phone_number = phone_number[1:] incoming_sms(phone_number, text, SQLTropoBackend.get_api_id()) t = Tropo() t.hangup() return HttpResponse(t.RenderJson()) else: return HttpResponseBadRequest("Bad Request")
def process_incoming_message(*args, **kwargs): try: from corehq.messaging.smsbackends.telerivet.views import TELERIVET_INBOUND_FIELD_MAP fields = {a: kwargs[a] for (a, b) in TELERIVET_INBOUND_FIELD_MAP} log = IncomingRequest(**fields) log.save() except Exception as e: notify_exception(None, "Could not save Telerivet log entry") pass backend = SQLTelerivetBackend.by_webhook_secret(kwargs["secret"]) if backend is None: # Ignore the message if the webhook secret is not recognized return if kwargs["from_number_e164"]: from_number = strip_plus(kwargs["from_number_e164"]) else: from_number = strip_plus(kwargs["from_number"]) if kwargs["event"] == EVENT_INCOMING: if kwargs["message_type"] == MESSAGE_TYPE_SMS: domain_scope = backend.domain if not backend.is_global else None incoming_sms(from_number, kwargs["content"], SQLTelerivetBackend.get_api_id(), domain_scope=domain_scope, backend_id=backend.couch_id) elif kwargs["message_type"] == MESSAGE_TYPE_CALL: incoming_ivr(from_number, "TELERIVET-%s" % kwargs["message_id"], None)
def post(self, request, api_key, *args, **kwargs): request_body = json.loads(request.body) media_urls = [] for message in request_body.get('results'): message_sid = message.get('messageId') from_ = message.get('from') message_content = message.get('message') if message_content.get('type') == 'TEXT': body = message_content.get('text', '') elif message_content.get('type') in ['IMAGE', 'AUDIO', 'VIDEO', 'DOCUMENT']: body = message_content.get('caption', '') media_url = message_content.get('url', None) if media_url: media_urls.append(media_url) incoming_sms( from_, body, InfobipBackend.get_api_id(), backend_message_id=message_sid, domain_scope=self.domain, backend_id=self.backend_couch_id, media_urls=media_urls ) return HttpResponse("")
def obj_create(self, bundle, request=None, **kwargs): bundle = self.full_hydrate(bundle) if bundle.obj.is_complete: incoming_sms(bundle.obj.phonenumber, bundle.obj.text, SQLGrapevineBackend.get_api_id()) return bundle
def process_incoming_message(*args, **kwargs): backend = TelerivetBackend.by_webhook_secret(kwargs["secret"]) if backend is None: # Ignore the message if the webhook secret is not recognized return if kwargs["event"] == EVENT_INCOMING: if kwargs["message_type"] == MESSAGE_TYPE_SMS: incoming_sms(kwargs["from_number"], kwargs["content"], TelerivetBackend.get_api_id())
def sms_in(request): pid = request.GET.get("pid", None) msg = request.GET.get("msg", None) cel = request.GET.get("cel", None) tcs = request.GET.get("tcs", None) phone_number = "%s%s" % ("63", cel) incoming_sms(phone_number, msg, SQLMegamobileBackend.get_api_id()) return HttpResponse("")
def sms_in(request, backend_id=None): dest = request.GET.get("dest") sender = request.GET.get("sender") message = request.GET.get("message") incoming_sms(sender, message, SQLYoBackend.get_api_id(), backend_id=backend_id) return HttpResponse("OK")
def sms_in(request): pid = request.GET.get("pid", None) msg = request.GET.get("msg", None) cel = request.GET.get("cel", None) tcs = request.GET.get("tcs", None) megamobile_attrs = {"megamobile_pid": pid, "megamobile_tcs": tcs} phone_number = "%s%s" % ("63", cel) incoming_sms(phone_number, msg, MegamobileBackend.get_api_id(), backend_attributes=megamobile_attrs) return HttpResponse("")
def sms_in(request): if request.method == "POST": message_sid = request.POST.get("MessageSid") account_sid = request.POST.get("AccountSid") from_ = request.POST.get("From") to = request.POST.get("To") body = request.POST.get("Body") incoming_sms(from_, body, TwilioBackend.get_api_id(), backend_message_id=message_sid) return HttpResponse(EMPTY_RESPONSE) else: return HttpResponseBadRequest("POST Expected")
def post(self, request, api_key, *args, **kwargs): message_sid = request.POST.get('MessageSid') from_ = SQLTwilioBackend.convert_from_whatsapp( request.POST.get('From')) body = request.POST.get('Body') incoming_sms(from_, body, SQLTwilioBackend.get_api_id(), backend_message_id=message_sid, domain_scope=self.domain, backend_id=self.backend_couch_id) return HttpResponse(EMPTY_RESPONSE)
def post(self, request, api_key, *args, **kwargs): message_sid = request.POST.get('MessageSid') account_sid = request.POST.get('AccountSid') from_ = request.POST.get('From') to = request.POST.get('To') body = request.POST.get('Body') incoming_sms(from_, body, SQLTwilioBackend.get_api_id(), backend_message_id=message_sid, backend_id=self.backend_couch_id) return HttpResponse(EMPTY_RESPONSE)
def sms_in(request): pid = request.GET.get("pid", None) msg = request.GET.get("msg", None) cel = request.GET.get("cel", None) tcs = request.GET.get("tcs", None) phone_number = "%s%s" % ("63", cel) incoming_sms( phone_number, msg, SQLMegamobileBackend.get_api_id() ) return HttpResponse("")
def sms_in(request): """ sender - the number of the person sending the sms receiver - the number the sms was sent to msgdata - the message """ sender = request.GET.get("sender", None) receiver = request.GET.get("receiver", None) msgdata = request.GET.get("msgdata", None) if sender is None or msgdata is None: return HttpResponse(status=400) else: incoming_sms(sender, msgdata, "SISLOG") return HttpResponse()
def post(self, request, api_key, *args, **kwargs): message_sid = request.POST.get('MessageSid') account_sid = request.POST.get('AccountSid') from_ = request.POST.get('From') to = request.POST.get('To') body = request.POST.get('Body') incoming_sms( from_, body, SQLTwilioBackend.get_api_id(), backend_message_id=message_sid, backend_id=self.backend_couch_id ) return HttpResponse(EMPTY_RESPONSE)
def sms_in(request): """ sender - the number of the person sending the sms receiver - the number the sms was sent to msgdata - the message """ sender = request.GET.get("sender", None) receiver = request.GET.get("receiver", None) msgdata = request.GET.get("msgdata", None) if sender is None or msgdata is None: return HttpResponse(status=400) else: cleaned_text = convert_raw_string(msgdata) incoming_sms(sender, cleaned_text, "SISLOG", raw_text=msgdata) return HttpResponse()
def sms_in(request, backend_id=None): """ sender - the number of the person sending the sms receiver - the number the sms was sent to msgdata - the message """ sender = request.GET.get("sender", None) receiver = request.GET.get("receiver", None) msgdata = request.GET.get("msgdata", None) if sender is None or msgdata is None: return HttpResponse(status=400) else: cleaned_text = convert_raw_string(msgdata) incoming_sms(sender, cleaned_text, SQLSislogBackend.get_api_id(), raw_text=msgdata, backend_id=backend_id) return HttpResponse()
def sms_in(request): if request.method == "POST": message_sid = request.POST.get("MessageSid") account_sid = request.POST.get("AccountSid") from_ = request.POST.get("From") to = request.POST.get("To") body = request.POST.get("Body") incoming_sms( from_, body, TwilioBackend.get_api_id(), backend_message_id=message_sid ) return HttpResponse(EMPTY_RESPONSE) else: return HttpResponseBadRequest("POST Expected")
def post(self, request, api_key, *args, **kwargs): request_body = json.loads(request.body) for message in request_body.get('results'): message_sid = message.get('messageId') from_ = message.get('from') message_content = message.get('message') if message_content.get('type') == 'TEXT': body = message_content.get('text', {}) # TODO: Add other message types here incoming_sms(from_, body, SQLInfobipBackend.get_api_id(), backend_message_id=message_sid, domain_scope=self.domain, backend_id=self.backend_couch_id) return HttpResponse("")
def sms_in(request): pid = request.GET.get("pid", None) msg = request.GET.get("msg", None) cel = request.GET.get("cel", None) tcs = request.GET.get("tcs", None) megamobile_attrs = { "megamobile_pid": pid, "megamobile_tcs": tcs, } phone_number = "%s%s" % ("63", cel) incoming_sms(phone_number, msg, MegamobileBackend.get_api_id(), backend_attributes=megamobile_attrs) return HttpResponse("")
def process_incoming_message(*args, **kwargs): backend = TelerivetBackend.by_webhook_secret(kwargs["secret"]) if backend is None: # Ignore the message if the webhook secret is not recognized return from_number = strip_plus(kwargs["from_number"]) if backend.country_code: if not from_number.startswith(backend.country_code): from_number = "%s%s" % (backend.country_code, from_number) if kwargs["event"] == EVENT_INCOMING: if kwargs["message_type"] == MESSAGE_TYPE_SMS: incoming_sms(from_number, kwargs["content"], TelerivetBackend.get_api_id()) elif kwargs["message_type"] == MESSAGE_TYPE_CALL: incoming_ivr(from_number, None, "TELERIVET-%s" % kwargs["message_id"], None)
def post(self, request, api_key, *args, **kwargs): request_body = json.loads(request.body) for message in request_body.get('messages', []): message_id = message.get('id') from_ = message.get('from') if message.get('type') == 'text': body = message.get('text', {}).get('body') elif message.get('type') == 'image': body = message.get('image', {}).get( 'caption') # this doesn't seem to work yet incoming_sms(from_, body, SQLTurnWhatsAppBackend.get_api_id(), backend_message_id=message_id, domain_scope=self.domain, backend_id=self.backend_couch_id) return HttpResponse("")
def post(self, request, api_key, *args, **kwargs): request_body = json.loads(request.body) message = request_body.get('Message') subscribe_url = request_body.get('SubscribeURL') if subscribe_url: urlopen(subscribe_url) elif message: message = json.loads(message) message_sid = message.get('inboundMessageId') from_ = message.get('originationNumber') body = message.get('messageBody') incoming_sms(from_, body, PinpointBackend.get_api_id(), backend_message_id=message_sid, domain_scope=self.domain, backend_id=self.backend_couch_id) return HttpResponse("")
def incoming_message(request): event = request.POST.get("event") message_id = request.POST.get("id") message_type = request.POST.get("message_type") from_number = request.POST.get("from_number") contact_id = request.POST.get("contact_id") phone_id = request.POST.get("phone_id") to_number = request.POST.get("to_number") time_created = request.POST.get("time_created") time_sent = request.POST.get("time_sent") content = request.POST.get("content") project_id = request.POST.get("project_id") secret = request.POST.get("secret") backend = TelerivetBackend.by_webhook_secret(secret) if backend is None: return HttpResponse(status=404) if event == EVENT_INCOMING: if message_type == MESSAGE_TYPE_SMS: incoming_sms(from_number, content, TelerivetBackend.get_api_id()) return HttpResponse()
def sms_in(request): dest = request.GET.get("dest") sender = request.GET.get("sender") message = request.GET.get("message") incoming_sms(sender, message, "YO") return HttpResponse("OK")
def incoming_sms_async(phone_number, text, backend_api): incoming_sms(phone_number, text, backend_api)