【问题标题】:Twilio: loop message and wait human interaction before dialingTwilio:循环消息并在拨号前等待人工交互
【发布时间】:2019-04-08 13:06:45
【问题描述】:

我正在使用 Twilio 在两个人之间建立电话呼叫。 我使用 Twilio C# API 从我的号码呼叫第一个人,并调用一个 TwiML bin,其中包含欢迎消息并向第二个人拨打电话。

var from = myNumber;
var to = firstPeson;
var templateUrl = $"{config.template_url}?Dial={secondPerson}&Welcome={welcome}";
CallResource.Create(new PhoneNumber(to), new PhoneNumber(from), url: new Uri(templateUrl), client: restClient);

和 TwiML 箱:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say>{{Welcome}}</Say>    
  <Dial>{{Dial}}</Dial>
  <Hangup/>
</Response>

问题是当第一个“人”是呼叫中心时。它不会听到 TwiML bin 欢迎消息。 我的猜测是 TwiML bin 是在呼叫到达呼叫中心调度队列时执行的,在人类拿起电话之前。

所以,我的想法是循环欢迎消息并使用 Gather 等待人类进行交互,然后再调用另一个 bin 进行拨号。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
 <Gather numDigits="1" finishOnKey="#" timeout="60" action="https://handler.twilio.com/twiml/123456789123456?Dial={{Dial}}">
    <Say loop="0">{{Welcome}}</Say>    
  </Gather>
</Response>

这里的问题是

  • 按下键 # 时循环不会结束。使用 loop="10",# 不会中断循环。
  • 我们无法将要拨打的号码作为操作方法的参数传递,因为 url 中的 {{Dial}} 会导致错误。

按下#键时是否可以中断循环? 如何在 bin 之间传递 Dial 参数?

谢谢

【问题讨论】:

    标签: twilio


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    当您在&lt;Gather&gt; 上设置numDigits="1" 时,您实际上可以使用任何按钮来中断循环并触发操作。我建议删除 finishOnKey="#" 并让用户按任意按钮。

    【讨论】:

    • 您好,感谢您的回答。删除 finishOnKey="#" 有效,我可以打破循环并调用一个操作 url。现在,如何将 Dial 参数传递给此操作 url?将其添加为查询字符串时出现错误:action="https://handler.twilio.com/twiml/123456789123456?Dial={{Dial}}"
    • 你的错误是什么?如果您接受这个答案作为您提出的问题的正确答案,然后要求一个新的答案来处理新的错误,这可能是最好的。
    • 一个声音说按下按钮后发生错误,即在调用操作时。它没有给出精确度。这是我最初的问题的一部分(如何在 bin 之间传递参数)但是很好,我将创建另一个问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多