RDemon писал(а):Используй ANSI ODBC драйвер. В Centos 7 из коробки только UNICODE, который, хоть и нелогично, но некорректно работает с UTF8.
Ставится так:
yum remove mysql-connector-odbc
wget
https://dev.mysql.com/get/Downloads/Con ... x86_64.rpm
rpm -ivh mysql-connector-odbc-5.3.9-1.el7.x86_64.rpm
Далее, в odbc.ini
[MySQL-asteriskcdrdb]
driver=MySQL ODBC 5.3 ANSI Driver
...
У меня так зароботало корректно, как и cel, так и cdr.
Проблема коробочной версии в том, что просто так не трогая зависимости снести коннектор не получится, т.к. yum предлагает грохнуть вместе сним весь астериск.
Как я сделал:
# rpm -qa | grep mysql-connector-odbc - узнал какой именно пакет установлен (у меня mysql-connector-odbc-5.2.5-6.el7.x86_64)
# rpm -e --nodeps "mysql-connector-odbc-5.2.5-6.el7.x86_64" - снёс только его
# wget
https://dev.mysql.com/get/Downloads/Con ... x86_64.rpm - скачал свежий пакет
# rpm -ivh mysql-connector-odbc-5.3.9-1.el7.x86_64.rpm - установил его
Далее в /etc/odbc.ini прописал driver=MySQL ODBC 5.3 ANSI Driver
# fwconsole restart - перезагрузил всё
С этого момента записи пошли на русском, но в CLI и логи начали валиться:
Код: Выделить всё
[2017-10-09 01:55:30] WARNING[1102]: cel_odbc.c:789 odbc_log: Insert failed on 'asteriskcdrdb:cel'. CEL failed: INSERT INTO cel (eventtype, eventtime, cid_name, cid_num, cid_ani, cid_rdnis, cid_dnid, exten, context, channame, appname, appdata, amaflags, accountcode, uniqueid, linkedid, peer, userdeftype, extra) VALUES .....
[2017-10-09 01:55:30] WARNING[8910]: cdr_adaptive_odbc.c:766 odbc_log: cdr_adaptive_odbc: Insert failed on 'asteriskcdrdb:cdr'. CDR failed: INSERT INTO cdr (calldate, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, uniqueid, cnum, cnam, linkedid, sequence) VALUES ......
Хотя если проверить БД, то записи туда помещаются. Пока не разобрался в чём причина.