Как использовать несколько приложений Kynetx за один телефонный звонок с Twilio?
Я хочу иметь возможность использовать несколько приложений Kynetx (наборы правил) в одном телефонном звонке. Скажем, первое приложение представляет собой меню телефона, а второе приложение предоставляет функциональность для пункта меню. Как мне перенаправить с одного на другое?
1 ответ
Когда вы используете действие twilio:redirect() или twill: collect_start(), указанная вами ссылка является относительным URL.
Все twilio webhooks, предоставленные Kynetx, имеют полный URL http://webhooks.kynetxapps.net/t/appid/eventname
Если вы передадите URL-адрес относительно этого, он будет разрешен относительно этого. Пример:
С базовым URL http://webhooks.kynetxapps.net/t/myappid/callstart
Действие twilio:redirect("sayhello")
будет разрешать http://webhooks.kynetxapps.net/t/myappid/sayhello
Это отправит новое событие в то же приложение.
Если вы хотите переключать приложения, вы можете предоставить полный URL-адрес, включая новый appid, или использовать относительный URL-адрес, например:
С базовым URL: http://webhooks.kynetxapps.net/t/myappid/callstart
Действие twilio:redirect("../newappid/sayhello")
решает: http://webhooks.kynetxapps.net/t/newappid/sayhello
Вот пример приложения, которое использует другое приложение для выбора меню.
ruleset firstappid {
meta {
name "Phone Menu App"
description <<
Provides the Phone Menu
>>
author "Sam Curren"
logging off
}
dispatch {}
global {}
rule menu {
select when twilio givemenu
{
twill:gather_start("../secondappid/menuchoice") with numDigits = 1;
twilio:say("Press 1 to speak do whatever.");
twilio:gather_stop();
}
}
}
И приложение, которое получает выбор меню.
ruleset secondappid {
meta {
name "Phone Menu Option"
description <<
Provides the menu functionality
>>
author "Sam Curren"
logging off
}
dispatch {}
global {}
rule speak {
select when twilio menuchoice Digits "1"
{
twilio:say("This is what you get when you press 1.");
twilio:hangup();
}
}
}
Используя действие twilio:redirect('../firstappid/givemenu')
вместо twilio:hangup()
Это правило может перенаправить обратно в первое приложение.