Добрый день, вопрос следующий: пытаюсь развернуть на Debian 9 Asterisk 13 (из его родных репозиториев) в связке с MariaDB из репозиториев mariadb (pjsip realtime).
~# mysql -Bse"select version();"
10.2.10-MariaDB-10.2.10+maria~stretch
~# asterisk -rx"core show version"
Asterisk 13.14.1~dfsg-2+deb9u2 built by buildd @ binet on a x86_64 running Linux on 2017-10-02 20:51:59 UTC
Realtime-базу импортировал из исходников с github, через alembic, переключившись на соответствующую ветку (13.14). Подключил её через odbc.
Вроде всё хорошо, инфа с базы подгружается, но в консоли астериска при попытке посмотреть вываливается следующая ошибка, причем для любых объектов (ps_aors
, ps_endpoints
и т.п.):
*CLI> pjsip show endpoints
Endpoint: 201 Unavailable 0 of inf
InAuth: 201/201
Aor: 201 1
Transport: transport-udp udp 0 0 0.0.0.0:5060
Endpoint: 202 Unavailable 0 of inf
InAuth: 202/202
Aor: 202 1
Transport: transport-udp udp 0 0 0.0.0.0:5060
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
[Nov 17 10:19:32] ERROR[4609] /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/utils.h: Memory Allocation Failure in function ast_str_make_space at line 822 of /build/asterisk-68Rwyd/asterisk-13.14.1~dfsg/include/asterisk/strings.h
На первый взгляд, на функциональность системы это не влияет, кроме того, что неудобно работать в CLI. Если выводить объекты, не из базы (например transports), то такой ошибки не возникает. Может кто сталкивался с подобным, как решили проблему? Или в какую сторону вообще копать?
UPD: Решилось заменой драйвера базы данных c MariaDB на MySQL
Было:
# /etc/odbcinst.ini
[MariaDB]
Description = ODBC for MariaDB
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
Стало:
# /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmy5S.so
FileUsage = 1
Ну и соответственно:
sed -i "s/MariaDB/MySQL/" /etc/odbc.ini
UPD2: на драйвере MySQL некорректно работает UTF-8, т.ч. перехал обратно на MariaDB но на версию постарше, кодировка корректно отображается, ошибки в консоль не сыпит.
был драйвер mariadb-connector-odbc-2.0.15 стал mariadb-connector-odbc-2.0.14
Задан: 2017-11-17 04:43:05 +0400
Просмотрен: 325 раз
Обновлен: Nov 29 '17
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
а еше pjsip повисает под нагрузкой(средней уже). забейте. ставьте chan_sip если нет необходимости редких фишек pjsip
meral ( 2017-11-17 07:13:21 +0400 )редактироватьА еще имеет смысл собрать * из исходников, у меня не на одном сервере 13 и 14 версия под stretch работают без этих проблем.
tesak89 ( 2017-11-17 11:31:33 +0400 )редактировать@meral это врядли дело в канальном драйвере, скорее проблема кроется в интеграции с odbc.
@tesak89 не хочется из исходников собирать, чтоб не ломать системные обновления.
kiba ( 2017-11-18 09:38:36 +0400 )редактироватьТо есть, если очереди перевести в реалтайм и сделать queue show, та же ошибка будет? А res_mysql юзать пробовали?
tesak89 ( 2017-11-19 03:20:08 +0400 )редактировать@tesak89 всё, решил проблему, решение в вопрос добавил.
kiba ( 2017-11-20 04:51:11 +0400 )редактировать@kiba вопрос закройте и решение в ответ внесите тогда, пожалуйста. Вдруг, кому поможет.
tesak89 ( 2017-11-20 12:57:13 +0400 )редактировать@tesak89 я бы с радостью, но кармы не хватает для закрытия )
kiba ( 2017-11-20 14:43:49 +0400 )редактироватьНа драйвере MySQL никаких проблем с UTF не испытывал. Настройте корректно базу, ODBC и asterisk
tesak89 ( 2017-11-29 12:55:22 +0400 )редактировать@tesak89 ну я столкнулся с проблемой, аналогичной описанной вот здесь https://community.freepbx.org/t/incorrect-handling-utf8mb4-with-cyrillic-in-sng7-fpbx-14-0-1rc1-11/41274/10 будет время, ещё поиграюсь с настройками драйверов. если вас не затруднит, посмотрел бы ваши настройки odbcinst.ini.
Подозреваю что надо было просто сделать
kiba ( 2017-12-05 10:45:26 +0400 )редактироватьsed -i s/libmyodbc5a/libmyodbc5w/ /etc/odbcinst.ini