VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кириллица

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
NickCool
Сообщения: 6
Зарегистрирован: 07 май 2017, 12:29

cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кириллица

Сообщение NickCool »

Приветствую всех присутствующих!!

Имею ввиду несчастного случая (версия ОС) следующую конфигурацию:
ubuntu 16.04 x32
asterisk certified/13.8-cert2
freepbx 13
MySQL 5.7
PHP 5.6

С учётом проблем с php и ODBC (первый только 7 версии, а второй отсутствует в системе), которые были преодолены осталась последняя: в cdr через ODBC кириллица записывается в latin1, в то время как cdr_mysql (да, @depricated, но поставил) - пишет красиво в utf8.

По ODBC:
ставил с https://dev.mysql.com/downloads/connector/odbc/ - Connector/ODBC 5.3.8 for Ubuntu 16.04 32-bit
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
charset=utf8
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: /etc/odbcinst.ini
Description = ODBC for MySQL
Driver=/usr/lib/i386-linux-gnu/odbc/libmyodbc5w.so
FileUsage = 1
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: echo 'show variables like "char%";' | isql -v MySQL-asteriskcdrdb
| Variable_name | Value |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/
Уже и в /etc/mysql/mysql.conf.d/mysqld.cnf добавлял в секцию [general]
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
character_set_server=utf8
collation_server=utf8_unicode_ci
character-set-server=utf8
collation-server=utf8_unicode_ci
init_connect='SET collation_connection = utf8_unicode_ci, character_set_results = utf8_unicode_ci'
init_connect='SET NAMES utf8'
А система всё сопротивляется и пишет от cdr_ODBC ""Николай Михайлович" <103>", а cdr_mysql '"Николай Михайлович" <103>'.
И вот у меня не сходится в итоге.

Буду благодарен за пинок в верном направлении.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кирил

Сообщение virus_net »

Поле в базе какой CHARSET имеет ?
Нужно utf8_general_ci
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
NickCool
Сообщения: 6
Зарегистрирован: 07 май 2017, 12:29

Re: cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кирил

Сообщение NickCool »

Поле в базе какой CHARSET имеет ?
Нужно utf8_general_ci
Как я заметил по 13 freePBX, то ему больше utf_unicode_ci по вкусу - в такой кодировке какие-то таблицы от него создавали (если не напутал).

А решение (источник проблемы) вот какое нашёл:
https://blogs.oracle.com/mysqlconnector ... takes_when

Нужно было в /etc/odbcinst.ini выбрать не "w" (UNICODE), а "a" (ANSI) для UTF8:
Driver=/usr/lib/i386-linux-gnu/odbc/libmyodbc5a.so

Выкинул всё добавленное из /etc/mysql/mysql.conf.d/mysqld.cnf - результат по прежнему положительный, кириллицу пишет в подобающем виде, как и в UCP.


Но при работе (и входе) в UCP отваливается * - приходится его поднимать снова. В логах ещё не копался, но отпишусь, что найду.
Выглядит это так через rasterisk (все логи в консоль включены):
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
ubuntu*CLI>
[2017-05-09 05:27:54] SECURITY[5800]: res_security_log.c:116 security_event_stasis_cb: SecurityEvent="SuccessfulAuth",EventTV="2017-05-09T05:27:54.104+0300",Severity="Informational",Service="AMI",EventVersion="1",AccountID="admin",SessionID="0xb4f4c53c",LocalAddress="IPV4/TCP/0.0.0.0/5038",RemoteAddress="IPV4/TCP/127.0.0.1/54744",UsingPassword="0",SessionTV="2017-05-09T05:27:54.104+0300"
ubuntu*CLI>
Disconnected from Asterisk server
Asterisk cleanly ending (0).
Executing last minute cleanups
* запущен от пользователя asterisk, апач пересажен на него же. Коряво, но сильно облегчило жизнь, чем пытаться запускать хосты апача от разных пользователей, с учётом того, что сервер не чисто под * и php 5.6, что не даёт возможность поставить модуль для апача The Apache 2 ITK MPM (т.к. он требует отключения того, которым я переключаюсь между php 5.6 и php 7.0). Вот.
Но от нормального админства и телекоммуникаций я довольно далёк, потому могу делать всё не так, как принято )
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кирил

Сообщение ded »

логи в консоль включены - это хорошо. Но смотреть лучше в /var/log/asterisk/full чтобы узнать причину падения.

Ещё метод - запустить Астериск в консоли (а не демоном)
asterisk -vvvvvgc
и попытаться воспроизвести ситуацию, когда вываливается.
bestann
Сообщения: 38
Зарегистрирован: 13 янв 2012, 01:03

Re: cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кирил

Сообщение bestann »

Очень актуальная тема. Та же проблема на CentOS 7, MariaDB, Asterisk 13.14.0. Тоже вроде все везде прописала, а крякозябры. Попробую завтра по вашему рецепту поменять букву.
bestann
Сообщения: 38
Зарегистрирован: 13 янв 2012, 01:03

Re: cdr-odbc @ ubuntu 16.04 freepbx 13 + asterisk 13 - кирил

Сообщение bestann »

Коннектор пришлось поставить другой, т.к. в текущем не было с буквой а. Та же ситуация, отваливается астериск. Если использовать родной коннектор мариядб, соединение создается, после окончания первого разговора отваливается.
И при этом диск еще забился на 100 % дампами в каталоге tmp
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH