我正在尝试从twilio双通道记录中创建记录,但出现错误
严重:Servlet [dispatcher]中的Servlet.service() 路径[/ control-api-explorer]抛出异常[请求处理 失败嵌套的异常是com.twilio.exception.ApiException: 所请求的资源不符合记录条件],其根本原因是
我尝试调试代码并收到错误错误-21220无效 通话状态您尝试对未进行的通话进行实时操作 进行中。已完成的呼叫无法记录或 重定向。
Twilio.init(account,auth);
System.out.println("Recording....");
Recording recording = Recording.creator(callSid)
.setRecordingStatusCallback(URI.create("https://api.twilio.com/2010-04-01/Accounts/"+account+"/Calls/"+callSid+"/Recordings.json"))
.setRecordingStatusCallbackEvent(Promoter.listOfOne(CALL_STATUS_CALLBACK_EVENTS.get(0).toString()))
.setRecordingChannels("dual").create();
System.out.println("Recording Completed....");
帮助提供了一种使用双通道而不用twiml的拨号动词进行实时录制的解决方案。
答案 0 :(得分:0)
我在录制时也遇到了问题,即使我检查了通话正在进行中,仍然出现错误21220。
我能够通过增加3秒的超时来纠正错误并记录电话。
setTimeout(function () {twilio_phone.recordPhoneCall (CallSid); }, 3000);
答案 1 :(得分:0)
另一种方法是检查callSid是否已加入会议。 Twilio的前端和后端都有API调用,可以获取正在进行的会议的参与者列表。如果呼叫已成功加入会议,则准备打开录音。