Я хочу иметь возможность использовать несколько приложений (наборов правил) Kynetx за один телефонный звонок. Скажем, первое приложение - это меню телефона, а второе приложение предоставляет функции для этого пункта меню. Как мне перенаправить с одного на другой?
Как использовать несколько приложений Kynetx во время одного телефонного звонка с Twilio?
Ответы (1)
Когда вы используете действие twilio: redirect () или twill: gather_start (), предоставляемый вами URL является относительным.
Все twilio webhooks, предоставляемые Kynetx, имеют полный URL http://webhooks.kynetxapps.net/t/appid/eventname
Если вы передадите URL-адрес относительно this, он будет разрешен относительно this. Пример:
При базовом 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()
, это правило может перенаправить обратно в первое приложение.