def set_domain_default_backend_to_test_backend(domain): """ Pass in the name of the domain to set the domain's default sms backend to be the test backend. """ from corehq.apps.sms.models import SQLMobileBackend, SQLMobileBackendMapping test_backend = SQLMobileBackend.get_global_backend_by_name( SQLMobileBackend.SMS, 'MOBILE_BACKEND_TEST') if not test_backend: raise Exception("Expected MOBILE_BACKEND_TEST to be created") SQLMobileBackendMapping.set_default_domain_backend(domain, test_backend)
def set_domain_default_backend_to_test_backend(domain): """ Pass in the name of the domain to set the domain's default sms backend to be the test backend. """ from corehq.apps.sms.models import SQLMobileBackend, SQLMobileBackendMapping test_backend = SQLMobileBackend.get_global_backend_by_name(SQLMobileBackend.SMS, "MOBILE_BACKEND_TEST") if not test_backend: raise Exception("Expected MOBILE_BACKEND_TEST to be created") SQLMobileBackendMapping.set_default_domain_backend(domain, test_backend)
def get_ivr_backend(recipient, verified_number=None, unverified_number=None): if verified_number and verified_number.ivr_backend_id: return SQLMobileBackend.load_by_name(SQLMobileBackend.IVR, verified_number.domain, verified_number.ivr_backend_id) else: phone_number = (verified_number.phone_number if verified_number else unverified_number) phone_number = strip_plus(str(phone_number)) prefixes = settings.IVR_BACKEND_MAP.keys() prefixes = sorted(prefixes, key=lambda x: len(x), reverse=True) for prefix in prefixes: if phone_number.startswith(prefix): return SQLMobileBackend.get_global_backend_by_name( SQLMobileBackend.IVR, settings.IVR_BACKEND_MAP[prefix]) return None
def ivr(request): """ Kookoo invokes this view for its main communication with HQ. Point Kookoo's 'url' parameter here. """ # Retrieve all parameters called_number = request.GET.get("called_number", None) outbound_sid = request.GET.get("outbound_sid", None) cid = request.GET.get( "cid", None) # This is the caller id, format being 0..., not 91... sid = request.GET.get("sid", None) operator = request.GET.get("operator", None) circle = request.GET.get("circle", None) event = request.GET.get("event", None) data = request.GET.get("data", None) total_call_duration = request.GET.get("total_call_duration", None) phone_number = cid if phone_number is not None and phone_number.startswith("0"): phone_number = "91" + phone_number[1:] gateway_session_id = "KOOKOO-" + sid # Process the event if event == "NewCall": ivr_event = IVR_EVENT_NEW_CALL elif event == "GotDTMF": ivr_event = IVR_EVENT_INPUT elif event == "Disconnect": ivr_event = IVR_EVENT_DISCONNECT else: ivr_event = IVR_EVENT_DISCONNECT backend = SQLMobileBackend.get_global_backend_by_name( SQLMobileBackend.IVR, 'MOBILE_BACKEND_KOOKOO') with CriticalSection([gateway_session_id], timeout=300): result = incoming(phone_number, gateway_session_id, ivr_event, backend=backend, input_data=data, duration=total_call_duration) return result
def get_ivr_backend(recipient, verified_number=None, unverified_number=None): if verified_number and verified_number.ivr_backend_id: return SQLMobileBackend.load_by_name( SQLMobileBackend.IVR, verified_number.domain, verified_number.ivr_backend_id ) else: phone_number = (verified_number.phone_number if verified_number else unverified_number) phone_number = strip_plus(str(phone_number)) prefixes = settings.IVR_BACKEND_MAP.keys() prefixes = sorted(prefixes, key=lambda x: len(x), reverse=True) for prefix in prefixes: if phone_number.startswith(prefix): return SQLMobileBackend.get_global_backend_by_name( SQLMobileBackend.IVR, settings.IVR_BACKEND_MAP[prefix] ) return None
def ivr(request): """ Kookoo invokes this view for its main communication with HQ. Point Kookoo's 'url' parameter here. """ # Retrieve all parameters called_number = request.GET.get("called_number", None) outbound_sid = request.GET.get("outbound_sid", None) cid = request.GET.get("cid", None) # This is the caller id, format being 0..., not 91... sid = request.GET.get("sid", None) operator = request.GET.get("operator", None) circle = request.GET.get("circle", None) event = request.GET.get("event", None) data = request.GET.get("data", None) total_call_duration = request.GET.get("total_call_duration", None) phone_number = cid if phone_number is not None and phone_number.startswith("0"): phone_number = "91" + phone_number[1:] gateway_session_id = "KOOKOO-" + sid # Process the event if event == "NewCall": ivr_event = IVR_EVENT_NEW_CALL elif event == "GotDTMF": ivr_event = IVR_EVENT_INPUT elif event == "Disconnect": ivr_event = IVR_EVENT_DISCONNECT else: ivr_event = IVR_EVENT_DISCONNECT backend = SQLMobileBackend.get_global_backend_by_name( SQLMobileBackend.IVR, 'MOBILE_BACKEND_KOOKOO' ) with CriticalSection([gateway_session_id], timeout=300): result = incoming(phone_number, gateway_session_id, ivr_event, backend=backend, input_data=data, duration=total_call_duration) return result