Пример #1
0
def ivr(request):
    # 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)
    
    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

    with CriticalSection([gateway_session_id]):
        result = incoming(phone_number, backend_module, gateway_session_id,
            ivr_event, input_data=data)
    return result
Пример #2
0
def ivr(request):
    # 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)
    
    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
    
    return incoming(phone_number, backend_module, gateway_session_id, ivr_event, input_data=data)
Пример #3
0
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
Пример #4
0
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