Ни кто не сталкивался?
ps: cenoto 5.2
asterisk 1.4.21.1
asterisk-addons 1.4.7
mysql 5.0.22
тоже самое и на centos 4.6 и msql 4X
_________________
Когда меня принес аист, родители смеялись и хотели взять аиста
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
bind-address=10.0.0.111 127.0.0.1
default-character-set=utf8
skip-character-set-client-handshake
init-connect="SET CHARACTER SET cp1251"
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
set |grep LANG
LANG=ru_RU.UTF-8
но это не важно, так как я же говорю что первые пару дней всё нормально работает, а потом слетает само по себе
| Цитата: |
| cp1251 |
му-ха-ха!!?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
а кодировка сбивается во время работы! тоесть пол для пишется норально, а потом кракозябры
[client]
default-character-set=Кодировка клиента
character-sets-dir = /bla/bla/bla/charsets
[mysqld]
collation_server=utf8_unicode_ci
character_set_server=utf8
default-character-set=utf8
character-sets-dir = /bla/bla/bla/charsets
а вообще тебе сюда
_________________
Когда меня принес аист, родители смеялись и хотели взять аиста
победил тем что перешёл на cdr pgsql уже дня 4-5 всё ок
default-character-set = utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
bind-address=10.0.0.111 127.0.0.1
init-connect = "SET NAMES utf8"
collation-server = utf8_unicode_ci
character-set-server = utf8
default-character-set = utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
no-auto-rehash
default-character-set = utf8
понял в чём причина, глюк cdr_mysql
после реконекта(например после перезапуска mysql) или через пару дней почему-то разрывается слетает кодировка
show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
вот что стало после перезапуска mysql
select * from cdr.cdr;
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------+---------+-------------+------------------------+-----------------------------------------+ dstchannel | lastapp | lastdata | duration | billsec | disposition | amaflags | accountcode | uniqueid | userfield |
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------+---------+-------------+------------------------+-----------------------------------------+ IAX2/don-6041 | IAX2/stachki-16385 | Dial | IAX2/stachki/477|120|tT | 21 | 0 | NO ANSWER | 3 | | | Call from 340 to 477 |
| 2008-08-24 13:41:33 | "Сборщики отдел Лес" | 417 | 89081945087 | GLOBAL_OFFICE_AND_VOIP | SIP/417-b7a37118 | SIP/sipnet-don-092907a0 | Dial | SIP/89081945087@sipnet-don|120|tT | 8 | 0 | FAILED | 3 | | | |
| 2008-08-24 13:41:44 | "Михеев Олег отдел Отдел Серви�а" | 400 | 437 | GLOBAL_OFFICE_AND_VOIP | SIP/400-b7b55938 | SIP/437-09251420 | Dial | SIP/437|15|tT | 40 | 32 | ANSWERED
я думаю что это вовсе вина не crd а самой mysql (или кривости его конфигов)
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
load cdr_addon_mysql.so
и снова всё ок, до первого перезапуска mysql или реконекта
предлагаю полностью mysql на utf8 перевести целиком. тоесть если есть еще базы то конвертнуть их в utf тоже.
и потом уже поглядеть.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
Версия протокола: 10
Сервер: Localhost via UNIX socket
Пользователь: root@localhost
MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: utf8_general_ci
cdr 34 MyISAM utf8_unicode_ci 9.4 КБ
Поле Тип Сравнение Атрибуты Null По умолчанию Дополнительно Действие
calldate datetime Нет 0000-00-00 00:00:00
clid varchar(80) utf8_unicode_ci Нет
src varchar(80) utf8_unicode_ci Нет
dst varchar(80) utf8_unicode_ci Нет
dcontext varchar(80) utf8_unicode_ci Нет
channel varchar(80) utf8_unicode_ci Нет
dstchannel varchar(80) utf8_unicode_ci Нет
lastapp varchar(80) utf8_unicode_ci Нет
lastdata varchar(80) utf8_unicode_ci Нет
duration int(11) Нет 0
billsec int(11) Нет 0
disposition varchar(45) utf8_unicode_ci Нет
amaflags int(11) Нет 0
accountcode varchar(20) utf8_unicode_ci Нет
uniqueid varchar(32) utf8_unicode_ci Нет
userfield varchar(255) utf8_unicode_ci Нет
всё и так в utf8
ну так вот и проблема где, чтож тут нее понятно?!
ps: у меня уже пару лет крутится все в utf8, на оригинальной версии а не неизвестно кем пересобранной и никаких проблем. никогда не любил руссифицированный софт, так как по опыту давно мной замечено что все эти руссификации вносят дополнительные баги в софт.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
это просто я вял из phpmyadmin, не знал как получить эту информацию из коммандной строки
решил пока таким способом
в cdr_addon_mysql.c добавил строки
mysql_real_query(&mysql, "charset utf8", strlen("charset utf8"));
mysql_real_query(&mysql, "SET NAMES utf8", strlen("SET NAMES utf8"));
следующие после 247 строки
if (option_debug)
ast_log(LOG_DEBUG, "cdr_mysql: SQL command as follows: %s\n", sqlcmd);
if (connected) {
хоть решение и не красивое, так как выполянется 2 команды перед каждой записью в бд, но в помент подключения почему-то не сработало, хотя не сильно разбирался
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
и только если перегрузить mssql , тоесть сделать разрыв соединения то всё слетает
и опять же если после этого перезагрузить cdr mysql в астерике, то опять становится всё ок
апдейт не должен затронуть ваши базы, так что это вполне безопасно.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
пришлось правда попотеть работая с поиском.
ведь это ваше?
http://asteriskforum.ru/viewtopic.php?t=2150
я думаю ваши глюки от корявых скриптов какихто на самом деле..
и два часа у вас потому что видимо он по крону это делает...
в любом случае моя версия про корявые конфиги таки косвенно но подтвердилась. гдето у вас коряво локали настроены наверняка в системе.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
а перед диал, выполняется комманда Set(callerid(name)= name from ad)
так же берётся samsaccauntname добавляется домем и получаем jid
и отправка сообщения о звонке
в консоли астериска всегда всё(что поменял) пишется на русском!!
и уже эту инцу в бд пишет сдр
попробуте ради прикола выставить русское имя и посмотреть что пишется в бд и потом рестартить mysql и посмотреть что будет писаться потом
Видимо, проблема в этом. Есть предложение после mysql_init дописать соответствующие mysql_options и проверить, вылечилось ли
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
| aven @ Сб Май 25, 2013 18:49 писал(а): |
| Не использовать deprecated модуль. |
настройка много времени не займет.