我需要一些帮助才能使用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
?如果那么怎么样?