как набрать несколько клиентов в конференц-связи?

Я пытаюсь дозвониться до нескольких клиентов, используя Twilio python API, но у меня это не работает.

Scanario: когда клиенты звонят нам по номеру службы поддержки Twilio, мы хотим набрать несколько агентов одновременно, и следующий доступный агент (первый агент) ответит на звонок клиента (это работает, как ожидалось).

def handle_voice():
    call_sid = form.get("CallSid")
    call_log = client.calls(call_sid).fetch()
    xml_res = VoiceResponse()
    settings = get_settings()
    dial = Dial(caller_id=form.get("Caller"))

    # dialing multiple client when customer call support team
    dial.client("client1")
    dial.client("client2")
    
    # converting the normal call to conference call.
    dial.conference(call_log.get("sid"),
             start_conference_on_enter=True,
             end_conference_on_exit=False,
             wait_url="{base_url}/{resources}".format(
             base_url=settings.base_url,
             resources="api/wait"))

    xml_res.append(dial)
    
    return Response(xml_res.to_xml(), mimetype="application/xml")

Но когда мы пытаемся выполнить теплый перевод вызова из браузера, он звонит следующему доступному агенту, но когда он / она принимает вызов, агент не может разговаривать с клиентом и может только слушать музыку ожидания.

линия конференц-связи = CallSid

добавление агента (клиента) из браузера

def add_agent(conference_line, agent):
    doc = db.get_value("Call Log", conference_line)
    #. doc.mobile_no is Twilio mobile number
    settings = get_settings()
    call = client.calls.create(agent, doc.get("mobile_no"),
                    url="{base_url}/{resources}{params}".format(
                        base_url = settings.base_url,
                        resources = "<api-path-here>",
                        params="?conference_line=%s"%(conference_line)),
                    method="GET")

Теперь, когда первый агент отключает вызов (или отключает трубку) от браузера, клиент также отключается.

def conference_line(conference_line):
    conference_line_info = db.get_value("Call Log", conference_line)

    res = VoiceResponse()
    dial = Dial()
    dial.conference(conference_line, start_conference_on_enter=True)

    res.append(dial)
    return Response(res.to_xml(), mimetype="application/xml")

https://github.com/TwilioDevEd/warm-transfer-flask/blob/master/warm_transfer_flask

0 ответов

Другие вопросы по тегам