根据https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Function_PUSH,该命令Push()
应该完全有效。但是,在我的 Asterisk 13.6 安装中:
same => n, Push(customer_codes,1234,5678,9087)
生成:
[Nov 6 11:19:07] WARNING[24966][C-00000002]: pbx.c:4972 pbx_extension_helper: No application 'Push' for extension
当我执行 时asterisk -x 'core show applications'
,我注意到Push()
、Pop()
、Shift()
明显不在列表中。
谁能告诉我这些是在哪个模块中发现的,或者可能是什么问题?
答案1
关键在于理解应用程序和函数之间的区别。应用程序包括 Dial()、Playback()、Background() 等,可以直接在拨号计划中使用。函数必须在可用的应用程序中使用。您引用的页面甚至还为您提供了一个例子。
Set(PUSH(array)=one,two,three)
对于上面的例子,这应该有效:
same => n,Set(PUSH(customer_codes)=1234,5678,9087)
您还可以通过运行以下命令查看星号中的可用功能:
core show functions