Как использовать несколько приложений Kynetx в одном телефонном звонке с Twilio? - PullRequest
5 голосов
/ 30 ноября 2010

Я хочу иметь возможность использовать несколько приложений Kynetx (наборы правил) в одном телефонном звонке.Скажем, первое приложение представляет собой меню телефона, а второе приложение предоставляет функциональность для пункта меню.Как мне перенаправить с одного на другое?

1 Ответ

4 голосов
/ 30 ноября 2010

Когда вы используете действие twilio: redirect () или twill: collect_start (), указанный вами URL является относительным 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(), это правило может перенаправить обратно в первое приложение.

...