你能在Twilio中一起使用Dial和Gather动词吗?

时间:2018-04-01 23:27:41

标签: twilio twilio-api

我正在构建一个应用程序,我让Twilio拨打电话,“收集”来自被叫方的响应并继续调用我的后端,因为<Gather>

但是,我也希望现场直播,以实时了解正在发生的事情。我想知道我是否可以通过结合使用Dial动词来做到这一点。

这就是我的流程:

  1. Twilio呼叫我的服务器获取TwiML以进行刚刚发出的呼叫
  2. 服务器返回<Gather>响应
  3. Twilio再次使用“聚集”的数据调用服务器
  4. 服务器返回另一个<Gather>作为响应 ......等等。
  5. 这就是我要做的事情:

    1. (NEW :)我使用webhooks拨入电话会议'C1'
    2. Twilio呼叫服务器为刚刚发出的呼叫获取TwiML
    3. 服务器返回<Dial>,然后返回前面的收集响应。我希望<Dial>将活动呼叫置于我已经从另一部电话加入的同一会议C1中,这样我就可以听取通话中发生的事情了。
    4. Twilio再次使用“聚集”的数据调用服务器
    5. 服务器返回另一个<Gather>作为响应 ......等等。
    6. 所以,我在这里要做的就是在发生任何这种情况之前参加会议,这样我就可以听到Twilio与被叫者的互动。

      但看看我是否尝试将<Gather>附加到TwiML响应中的<Dial>,Twilio不会从电话会议开始“收集”,而是等待电话会议结束首先,然后才执行'收集'。

      PS:我想要做的最接近的事情就是在Twilio向被叫方发出呼叫时事先设置记录标志,然后稍后听整个对话以确定发生了什么,但效率非常低。

      我该如何帮助自己?

      这就是我的代码:

      Gather g = new Gather.Builder().input("speech")
                          .action(BASE_URL + "/processSpeech?")
                          .timeout(4)
                          .build();
      Conference.Builder conferenceBuilder = new Conference
                              .Builder("confie")
                              .startConferenceOnEnter(true)
                              .endConferenceOnExit(true)
                              .waitUrl("");
                      tmlb.dial(new Dial.Builder().conference(conferenceBuilder.build()).build());
      
      VoiceResponse.Builder tmlb = new VoiceResponse.Builder();
      TwiML tml = tmlb.gather(g).build();
      

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

您无法在<Gather>的上下文中使用<Conference>,因此无法使用此流程。我建议您录制电话并收听,以了解发生了什么。虽然你说效率较低。

我想进一步提供帮助,但我不确定这里的具体用例是什么。也许你可以分享一些你想要实现的目标,我可以更新这个答案吗?