Twilio呼叫用户,播放音频并接收回叫

时间:2018-05-17 10:16:25

标签: java twilio twilio-api

我需要一些帮助才能使用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语音邮件,并且只想播放我们通过TwiML传递的 demo-play.wav

更新

播放的音频在这里。 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?如果那么怎么样?

0 个答案:

没有答案