【发布时间】: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