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