Столкнулся с такой же как и у ТС проблемой.
FreePBX Distro последней версии.
Тоже везде все настроено, кодировки правильные, проверил по всем что нашел руководствам - все равно в базу CDR русские имена пишутся с ошибочной кодировкой.
После пары часов возни обнаружил
- Код: выделить все
localhost*CLI> module show like cdr
Module Description Use Count
app_cdr.so Tell Asterisk to not maintain a CDR for 0
app_forkcdr.so Fork The CDR into 2 separate entities 0
cdr_adaptive_odbc.so Adaptive ODBC CDR backend 0
cdr_csv.so Comma Separated Values CDR Backend 0
cdr_custom.so Customizable Comma Separated Values CDR 0
cdr_manager.so Asterisk Manager Interface CDR Backend 0
cdr_odbc.so ODBC CDR Backend 0
cdr_syslog.so Customizable syslog CDR Backend 0
func_cdr.so Call Detail Record (CDR) dialplan functi 0
9 modules loaded
А где собственно cdr_mysql.so в настройках которого писалось charset = utf8 ?
Подтянул его вручную:
- Код: выделить все
localhost*CLI> module load cdr_mysql.so
Loaded cdr_mysql.so
После этого имена в CDR стали заносится по русски в правильной кодировке.
Задался вопросом - а почему собственно модуль есть а не стартует?
Оказалось вырублен авторами сборки, чтобы не задваивались записи
- Код: выделить все
[root@localhost ~]# cat /etc/asterisk/modules.conf|grep cdr_mysql
noload => cdr_mysql.so
Поискал почему - оказалось авторы FreePBX Distro не применяют cdr_mysql.so
http://community.freepbx.org/t/autoload ... ript/22626А применяют res_odbc
Которому чтобы он начал писать CDR'ы по русски надо параметр charset=utf8 добавить в файл /etc/odbc.ini
viewtopic.php?f=3&t=4543#p49583Добавил этот параметр и вуаля, в CDR имена на русском.