Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

FreePBX 14. Не загружается модуль func_odbc.so

0

Добрый день. Есть система на настроенным frePBX 14. ODBC настроен и работает. логи пишутся. При попытке создать функцию в func_odbc.conf, увидел, что такого файла нет. Создал его вручную, прописал туда функцию в формате

[SET_CALLED]
dsn=MySQL-asterisk
writesql=UPDATE queue_log set called='1' where id='${ARG1}'

После чего попытался презагрузить модуль. Появилась ошибка о том, что модуль не загружен

pbx*CLI> module reload func_odbc.so
The module 'func_odbc.so' was not properly initialized. Before reloading the module, you must run "module load func_odbc.so" and fix whatever is preventing the module from being initialized.

После попытки загрузить модуль получил ошибку

pbx*CLI> module load func_odbc.so
Unable to load module func_odbc.so
Command 'module load func_odbc.so' failed.
[2018-01-15 13:33:28] ERROR[19284]: pbx_functions.c:394 __ast_custom_function_register: Function ODBC_FETCH already registered.
[2018-01-15 13:33:28] WARNING[19284]: pbx_app.c:117 ast_register_application2: Already have an application 'ODBCFinish'
  == Parsing '/etc/asterisk/func_odbc.conf': Found
  == Registered custom function 'ODBC_SET_CALLED'
[2018-01-15 13:33:28] ERROR[19284]: pbx_functions.c:394 __ast_custom_function_register: Function SQL_ESC already registered.
[2018-01-15 13:33:28] WARNING[19284]: cli.c:2263 __ast_cli_register: Command 'odbc write' already registered (the same ast_cli_entry)
[2018-01-15 13:33:28] WARNING[19284]: cli.c:2263 __ast_cli_register: Command 'odbc read' already registered (the same ast_cli_entry)

После чего такая функция в системе появляется

pbx*CLI> core show function ODBC_SET_CALLED 

  -= Info about function 'ODBC_SET_CALLED' =- 

[Synopsis]
Runs the referenced query with the specified arguments

[Description]
Runs the following query, as defined in func_odbc.conf, performing
substitution of the arguments into the query as specified by ${ARG1},
${ARG2}, ... ${ARGn}.  The values are provided either in whole as
${VALUE} or parsed as ${VAL1}, ${VAL2}, ... ${VALn}.
This function may only be set.

SQL:
UPDATE `queue_log` SET `called`='1' WHERE `id`='${ARG1}'

[Syntax]
ODBC_SET_CALLED(<arg1>[...[,<argN>]])

[Arguments]
Not available

[See Also]
Not available

Но при её вызове в диалплане появляется ошибка о том, что невозможно вызвать данныую функцию. При этом сам модуль func_odbc не запущен

pbx*CLI> module show like func_odbc.so
Module                         Description                              Use Count  Status      Support Level
func_odbc.so                   ODBC lookups                             0          Not Running          core
1 modules loaded

Не могу понять, в чем может быть ошибка и почему не запускается модуль. Подскажите, пожалуйста

удалить закрыть спам изменить тег редактировать

спросил 2018-01-15 15:41:41 +0400

A66aT Gravatar A66aT
19 7 4

обновил 2018-01-16 19:29:13 +0400

meral Gravatar meral flag of Ukraine
22867 24 20 173
http://pro-sip.net/

Comments

res_odbс.so где?

zzuz ( 2018-01-15 17:02:14 +0400 )редактировать

в чем угодно. почему вы заекранировали неревалентный вывод и не заекранировали реально нужный конфиг? почему у вас в конфиге одна строчка?каждая функция должна быть задекларирована минимум двумя.

meral ( 2018-01-16 19:28:31 +0400 )редактировать

Модуль res_odbc.so есть

pbx*CLI> module show like resodbc.so Module Description Use Count Status Support Level resodbc.so ODBC resource 0 Running core 1 modules loaded

meral, не уверен, что понял, какой именно конфиг я не написал ?

A66aT ( 2018-01-17 12:01:54 +0400 )редактировать

/etc/asterisk/resconfigodbc.conf

meral ( 2018-01-18 12:35:21 +0400 )редактировать

У меня FreePBX, так что конфиг хранится в /etc/asterisk/resodbcadditional.conf

[asteriskcdrdb] enabled=>yes dsn=>MySQL-asteriskcdrdb pre-connect=>yes max_connections=>5 username=>freepbxuser password=>password database=>asteriskcdrdb

Сам по себе ODBC работает, данные в таблицу CDR пишутся через него. У меня возникла проблема при попытке добавить кастомную функцию в Астериск

A66aT ( 2018-01-22 12:52:52 +0400 )редактировать

в freepbx нет такой проблемы. очевидно ваша проблема состоит в том, что вы не читаете документацию. попробуйте функцию из документации. Она неожиданно будет работать. Потом сравните со своей.

meral ( 2018-01-22 20:59:03 +0400 )редактировать

Будьте первым, кто ответит на этот вопрос!

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2018-01-15 15:41:41 +0400

Просмотрен: 250 раз

Обновлен: Jan 16

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.