В соответствии с 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 (), и их можно использовать непосредственно в диалплане. Функции должны использоваться в доступных приложениях. Страница, на которую вы ссылались, даже дает вам пример.
Set(PUSH(array)=one,two,three)
Для вашего примера выше это должно работать:
same => n,Set(PUSH(customer_codes)=1234,5678,9087)
Вы также можете увидеть доступные функции в звездочке, запустив:
core show functions