正确的方法是使用持久变量。应用程序变量是一种选择,但您可能想要的是实体变量。Kynetx Webhooks 与 Twilio 的 cookie jar 一起使用,从而产生一个在 kynetx 应用程序中维护实体变量的会话。
每个电话都有自己的会话,因此您无需担心多个同时通话会相互影响。
应用程序持久变量(使用app:myvar
而不是ent:myvar
)将起作用,但对于应用程序来说是全局的,因此它们应该仅在变量作用于应用程序时使用。
这里有一些规则可以证明这一点:
rule firstquestion {
select when twilio firstquestion
{
twilio:gather_start("firstanswer");
twilio:say("Question One");
twilio:gather_stop();
}
}
rule firstanswer {
select when twilio firstanswer
pre {
firstchoice = event:param("Digits");
}
{
twilio:gather_start("secondanswer");
twilio:say("Question Two");
twilio:gather_stop();
}
fired {
set ent:firstchoice firstchoice;
}
}
rule secondanswer {
select when twilio secondanswer
pre {
firstchoice = ent:firstchoice;
secondchoice = event:param("Digits");
}
noop();
}