Twilio звонит пользователю, воспроизводит аудио и получает ответный звонок - PullRequest
0 голосов
/ 17 мая 2018

Мне нужна помощь в достижении функциональности с помощью twilio API. Я хочу позвонить пользователю и воспроизвести предварительно записанный аудиофайл и получить статус / событие обратного вызова.

Вот чего я достиг.

Twilio.init(TWILIO_SID, TWILIO_AUTH_TOKEN);

Call call = Call.creator(new PhoneNumber(callDetailModel.getToNumber()),
                         new PhoneNumber(FROM_TWILIO_NUMBER),
                         new URI(API_URL + "/call/twilio/voice/demo-voice")).create();

Сейчас в "/ call / twilio / voice / demo-voice" я создаю TwiML.

Play play = new Play.Builder(
                "demo-play.wav")
                .loop(1).build();

Number number = new Number.Builder(request.getParameter("Caller"))
                .statusCallback(API_URL + "/call/twilio/events-demo")
                .statusCallbackMethod(Method.POST).statusCallbackEvents(Arrays
                .asList(Event.INITIATED, Event.RINGING, Event.ANSWERED, Event.COMPLETED)).build();
Dial dial = new Dial.Builder()
                .timeLimit(60)
                .callerId(request.getParameter("Called"))
                .record(Dial.Record.DO_NOT_RECORD)
                .number(number).build();
VoiceResponse twiml = new VoiceResponse.Builder().dial(dial).play(play).build();
return (twiml.toXml());

А теперь в обратном вызове события мы проверяем, получал ли получатель вызов или нет, завершен он или нет и т. Д.

Теперь проблема в том, что когда пользователь получает вызов, автоматически воспроизводится голосовая почта Twilio, и после этого воспроизводится мой demo-play.wav . Мы хотим удалить эту голосовую почту twilio и хотим воспроизводить только demo-play.wav , который мы прошли через TwiML.

UPDATE:

Воспроизводимое аудио находится здесь. https://vocaroo.com/i/s0KNEhHxUKX5

Также генерируется twiml что-то вроде этого

<Response>
    <Dial timeLimit="7200" callerId="+1xxxxx" record="record-from-answer-dual">
        <Number statusCallbackEvent="initiated ringing answered completed" statusCallback="http://38c5cb01.ngrok.io/call/twilio/events-demo" statusCallbackMethod="POST">+1zzzzzzzz</Number>
    </Dial>
    <Play loop="1">https://aws.xxx.H1OAOec30bbc5-bc3a-4251-a27c-2e4e41b386061521208641292FOIZ1.wav</Play>
</Response>

Я что-то упустил? Нужно ли передавать глагол Play в Dial? Если тогда как?

...