如何在与Twilio的一个电话中使用多个Kynetx应用程序?

时间:2010-11-29 21:55:19

标签: twilio krl

我希望能够在一个电话中使用多个Kynetx应用程序(规则集)。假设第一个应用程序是电话菜单,第二个应用程序提供菜单选项的功能。如何从一个重定向到另一个?

1 个答案:

答案 0 :(得分:4)

当您使用twilio:redirect()或twill:gather_start()操作时,您提供的网址是相对网址。

所有twilio webhooks provided by Kynetx的完整网址为http://webhooks.kynetxapps.net/t/appid/eventname

如果传入相对于此的URL,它将相对于此进行解析。例如:

如果基本网址为http://webhooks.kynetxapps.net/t/myappid/callstart,则操作twilio:redirect("sayhello")将解析为http://webhooks.kynetxapps.net/t/myappid/sayhello

这会将新事件发送到同一个应用程序。

如果您想切换应用,可以提供完整的网址,包括新的appid,也可以使用以下相对网址:

使用基本网址: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(),此规则可以重定向回第一个应用。