使用Java在twilio中运行双重记录的代码时遇到问题

时间:2019-01-19 05:37:51

标签: java twilio-api

我正在尝试从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的拨号动词进行实时录制的解决方案。

2 个答案:

答案 0 :(得分:0)

我在录制时也遇到了问题,即使我检查了通话正在进行中,仍然出现错误21220。

我能够通过增加3秒的超时来纠正错误并记录电话。

setTimeout(function () {twilio_phone.recordPhoneCall (CallSid); }, 3000);

答案 1 :(得分:0)

另一种方法是检查callSid是否已加入会议。 Twilio的前端和后端都有API调用,可以获取正在进行的会议的参与者列表。如果呼叫已成功加入会议,则准备打开录音。