我正在使用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 bin:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>{{Welcome}}</Say>
<Dial>{{Dial}}</Dial>
<Hangup/>
</Response>
问题是当第一个“人”是呼叫中心时。它没有听到TwiML bin欢迎消息。 我的猜测是,当有人到达电话之前,当呼叫到达呼叫中心调度队列时,就会执行TwiML bin。
所以,我的想法是循环欢迎消息,并使用Gather等待人类进行交互,然后再调用另一个垃圾箱进行拨号。
<?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>
这里的问题是
按下键#时是否可以中断循环? 如何在垃圾箱之间传递Dial参数?
谢谢
答案 0 :(得分:1)
这里是Twilio开发人员的传播者。
在numDigits="1"
上设置<Gather>
时,您实际上可以使用任何按钮来中断循环并触发操作。我建议删除finishOnKey="#"
,然后让用户按下任意按钮。