根据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()显然不在列表中。
任何人都可以告诉我哪些模块,这些发现,或者可能是什么问题?
关键是理解应用程序和函数之间的区别。 应用程序是Dial(),Playback(),Background()之类的东西,可以直接在拨号scheme中使用。 必须在可用的应用程序中使用函数。 你引用的页面甚至给你一个例子。
Set(PUSH(array)=one,two,three)
对于上面的例子,这应该工作:
same => n,Set(PUSH(customer_codes)=1234,5678,9087)
您还可以运行以下命令来查看星号中的可用函数:
core show functions