Как использовать несколько приложений 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()Это правило может перенаправить обратно в первое приложение.

Другие вопросы по тегам