如何在星号中的dialplan和agi脚本之间传递变量

时间:2011-08-19 11:05:36

标签: asterisk telephony ivr agi

我希望能够将调用者输入的扩展名传递给agi脚本,并且在完成后我希望agi脚本将结果作为变量发送回拨号计划。任何人都可以给我一个如何用任何拨号方案语言实现这个的例子

1 个答案:

答案 0 :(得分:2)

如果您使用Asterisk dialplan(extensions.conf)输入AGI,则可以使用$ {EXTEN}频道变量获取扩展名。要将信息返回到拨号方案,您可以设置任何通道变量,但要小心避免使用Asterisk本身使用的通道变量。

以下是使用Adhearsion的简短示例:

在Asterisk extensions.conf中:

exten => s,1,Background(enter-your-extension-now)
exten => _X.,1,AGI(agi://localhost/stuff)
exten => _X.,n,NoOp(Returned new extension: ${NewExten})

在Adhearsion的dialplan.rb中:

stuff {
  exten = get_variable('EXTEN')
  # Do stuff to figure out what the new extension should be
  newexten = '12345'
  set_variable('NewExten', newexten)
}

上面的代码会将$ {NewExten}频道变量设置为“12345”并将其写入Asterisk控制台。