Как я могу использовать несколько приложений Kynetx в одном телефонном звонке с Twilio?
Вопрос
Я хочу иметь возможность использовать несколько приложений Kynetx (правила) в одном телефоне. Скажем, первое приложение - это меню телефона, а второе приложение предоставляет функциональность для опции меню. Как перенаправить от одного на другой?
Решение
Когда вы используете действие Twilio: redirect () или twill: gater_start (), предоставленный вами URL -адрес является относительным URL.
Все WebHooks Twilio предоставляется 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()
, это правило может перенаправить обратно в первое приложение.