从命令行执行dialplan上下文

时间:2014-07-17 11:45:38

标签: asterisk ami

我正在尝试从上下文执行命令行扩展(通过asterisk -rx“命令”),该上下文使得基于AGI的查询确定需要拨打哪个扩展(这些扩展在数据库上更新)

这是这样的:

[autodialer]
exten => 2,1,Answer()
exten => 2,n,AGI(database_query.php); Makes a database query and generates vars
exten => 2,n,Set(CALLERID(name)=${db_customer_name}); Sets callerid from DB data
exten => 2,n,Dial(SIP/${db_customer_extension}); Also, extensions are stored on DB
exten => 2,n,Playback(custom/important_message)
exten => 2,n,SayDigits(${important_numbers}); The message, stored on DB too.
exten => h,1,Hangup()

在这里,我需要从命令行执行上下文,而不必从任何扩展名拨打它(它应该每隔X次用crontab执行)。

我尝试使用 originate 命令,但我认为我误解了命令语法并且无效。

我认为它应该是这样的: asterisk -rx“channel originate 2 @ autodialer”然后Asterisk执行该上下文,我们都对我们的重要数字感到满意。

我知道这不是正确的语法,只是试图解释我的想象它可以起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

没有办法只发起一条腿。你有第二个参数(其他通道dest)

如果您不需要其他频道,请创建这样的上下文

[wait]

exten =>s,1,Wait(10000)

并使用

asterisk -rx "channel originate 2@autodialer s@wait" 

阅读这篇文章:

http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out

注意:建议不要为具有不到5年专用星号经验的人员提供拨号应用程序。如果您需要,请使用vicidial.org或其他拨号程序。