没有应用程序“推”

根据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