Страница 1 из 1

Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 26 окт 2022, 16:43
AlexeyFatnev
Здравствуйте, все.

Не могу запустить функции CURL и SHELL.

Запускаю из диалплана:
same => n,Set(CALLERID(name)=${curl(http://192.169.0.23/telbook/${CALLERID(name)})})
same => n,Set(CALLERID(name)=${shell(curl 'http://192.169.0.23/telbook/${CALLERID(name)}')})

Пробовал и заглавными и строчными.

Ошибка на обеих:
[Oct 26 15:35:15] ERROR[97377][C-00000001]: pbx_functions.c:608 ast_func_read: Function shell not registered
[Oct 26 15:35:15] ERROR[97377][C-00000001]: pbx_functions.c:608 ast_func_read: Function SHELL not registered

В menuselect обе установлены, модуль res_curl.so загружен вручную, без ошибок.

ubuntu02*CLI> module load res_curl.so
Loaded res_curl.so
Loaded res_curl.so => (cURL Resource Module)
ubuntu02*CLI>


В списке функций ни одна не показывается.


live_dangerously=yes

Пробовал, но он не должен влиять.

Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 26 окт 2022, 19:27
ded

Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 27 окт 2022, 12:18
AlexeyFatnev
Здравствуйте, Ded.

В системе функции отсутствуют:

ubuntu02*CLI> core show functions like curl
Matching Custom Functions:
--------------------------------------------------------------------------------
0 matching custom functions installed.
ubuntu02*CLI> core show functions like shell
Matching Custom Functions:
--------------------------------------------------------------------------------
0 matching custom functions installed.

По присланным Вами ссылкам нет информации о моей проблеме.

Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 27 окт 2022, 13:28
Wapo
Должно быть так:

Код: выделить все
webserver*CLI> module show like curl
Module                         Description                              Use Count
func_curl.so                   Load external URL                        0
res_config_curl.so             Realtime Curl configuration              0
res_curl.so                    cURL Resource Module                     0
3 modules loaded

webserver*CLI> module show like shell
Module                         Description                              Use Count
func_shell.so                  Collects the output generated by a comma 0
1 modules loaded


Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 27 окт 2022, 14:40
ded
AlexeyFatnev, вы не поверите, но регистр букв функций имеет громадное значение!

Код: выделить все
*CLI> core show functions like CURL
Matching Custom Functions:
--------------------------------------------------------------------------------
CURL                  CURL(url[,post-data])                Retrieves the contents of a URL
CURLOPT               CURLOPT(<option>)                    Set options for use with the CURL() function
2 matching custom functions installed.
*CLI>
*CLI>                                                                                               
*CLI> core show functions like curl
Matching Custom Functions:
--------------------------------------------------------------------------------                       
0 matching custom functions installed. 

По присланным мною ссылкам полная информация по первоначальной проблеме. Только проблема теперь чуть по другому формулируется:
"Не вижу разницы между curl и CURL."

Можно было выполнить команду
*CLI> core show function CURL
и увидеть синтаксис.

Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 28 окт 2022, 14:34
AlexeyFatnev
Здравствуйте, Ded, Wapo.

Разницу в заглавных и строчных буквах понимаю, пробовал по разному.

Проблема решилась. У меня был загружен (вручную) только модуль res_curl.so, а модуль func_curl.so не был загружен.

Мой коллега выяснил это вчера (я не знаю как он нашел ссылку, где этот модуль упоминается). Сегодня увидел этот модуль в листинге в сообщении Wapo.

https://wiki.asterisk.org/wiki/display/AST/cURL

В ранних версиях Астериск эти модули загружались автоматически.

Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 31 окт 2022, 13:44
ded
Во всех версиях модули загружаются автоматически, параметр
autoload=yes
до тех пор, пока кто-нибудь из ваших коллег не начнёт это менеджировать,
autoload=no
и указывая ему понятную последовательность загрузки модулей.

Re: Asterisk 18 Функции CURL и SHELL

СообщениеДобавлено: 10 ноя 2022, 12:49
AlexeyFatnev
Здравствутйе, Ded.

Во всех версиях модули загружаются автоматически, параметр
autoload=yes


Это ценное замечание, у меня (из коробки) стояло "autoload=no".
Благодарю, учту на будущее.