может у кого нибудь рабочая таблица есть ?
| Код: |
| CREATE TABLE `queue_log` ( `callid` char(64) default NULL, `queuename` char(64) default NULL, `agent` char(64) default NULL, `event` char(64) default NULL, `data1` char(64) default NULL, `data2` char(64) default NULL, `data3` char(64) default NULL, `data4` char(64) default NULL, `data5` char(64) default NULL, `time` varchar(32) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
Обращаю внимание что еще не исправили баг с необходимостью перезапуска логгера
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
изменил поле с datetime на char, и добавил data с char..
1. обращайте внимание во всех RT таблицах на формат времени, поскольку в базе он может не совпадать с тем, который используется в данном конкретном модуле *. не знаю как с MySQL, но в oracle, решается с помощью триггера на логин.
2. разные модули могут использовать разный формат времени при обращениях к базе, решается как предыдущий способ, но с использованием отдельной схемы под особо корявый модуль. (возможно, что недочеты устранены, но в ветке 1.6.2 была разница в cdr_odbc и meetme.
3. судя по всему * ругается на регистр названия полей в таблице, но при этом спокойно добавляет и изменяет данные. замечено в 1.6.2.20 модуль meetme.
не подскажете, в 1.6.2.20 есть запись data сразу по полям? уж очень там длинный триггер на разбор единого поля.
_________________
e=mc^2
_________________
www.telb.kz
Обновился тут до 1.8.7.0 и появились проблемы с queue_log в MySQL
В начале модифицировал БД как описано здесь
http://www.voip-info.org/wiki/view/Aster ... g+on+MySQL
В логах появилось следующее
| Код: |
| [Sep 30 10:04:49] WARNING[26888] res_config_mysql.c: Table queue_log_processed requires a column 'data4' of size '0', but no such column exists. [Sep 30 10:04:49] WARNING[26888] res_config_mysql.c: Table queue_log_processed requires a column 'data5' of size '0', but no such column exists. [Sep 30 10:04:49] WARNING[26888] res_config_mysql.c: Table queue_log_processed requires a column 'time' of size '0', but no such column exists. [Sep 30 10:04:49] WARNING[26888] res_config_mysql.c: Table queue_log_processed requires a column 'agent' of Хороsize '0', but no such column exists. |
При этом данные заносились в поля data1,data2,data3
Затем я решил добавить недостающие поля data4 и data5. Добавил.
Пявилось следующее
| Код: |
| [Sep 30 13:28:27] WARNING[28382] res_config_mysql.c: Realtime table queue_log_new@general: Column time cannot be a datetime [Sep 30 13:28:27] WARNING[28382] res_config_mysql.c: Table queue_log_new requires a column 'data' of size '0', but no such column exists. [Sep 30 13:28:27] WARNING[28382] res_config_mysql.c: MySQL RealTime: Failed to insert into database: Unknown column 'data' in 'field list' |
Вот ведь думаю, незадача...
Причём данные в поля data1,data2,data3 заноситься перестали..
Добавил поле data.
Деперь данные кладуться в поле data, причём почти в том-же формате, что был раньше, т.е. с разделителем "|". Остальные поля datax - пустые.
В логах осталось
| Код: |
| [Oct 4 11:22:53] WARNING[25889] res_config_mysql.c: Realtime table queue_log_new@general: Column time cannot be a datetime [Oct 4 11:22:53] WARNING[25889] res_config_mysql.c: Table queue_log_new requires a column 'data' of size '0', but no such column exists. |
Я так понимаю, что в астериск пытаются сунуть автоматическое определение формата БД?
Или я не прав где-то?
И вообще, какой формат БД должен быть?
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
| aven писал(а): |
| Все там работает, нужно просто правильную структуру таблицы сделать. |
Ну я как-бы об этом и спрашиваю. Это тайна?
Если не трудно, ткните носом.
| Код: |
| Table "public.queue_log_testpbx18" Column | Type | Modifiers -----------+-----------------------------+------------------------------------------------------------------ id | integer | not null default nextval('queue_log_testpbx18_id_seq'::regclass) time | timestamp without time zone | callid | character varying(100) | queuename | character varying(100) | agent | character varying(100) | event | character varying(50) | data1 | character varying(100) | data2 | character varying(100) | data3 | character varying(100) | data4 | character varying(100) | data5 | character varying(100) | Indexes: "queue_log_testpbx18_pkey" PRIMARY KEY, btree (id) |
как то так. Это пример на PostgreSQL, для мускуля думаю адаптируете
| Код: |
| ./asterisk-1.8.5.0/contrib/realtime/mysql/queue_log.sql |
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
Вот в contrib я то и не посмотрел.
Создал скриптом, никакого результата.
| Код: |
| [Oct 4 22:23:08] WARNING[28760]: res_config_mysql.c:1252 require_mysql: Realtime table queue_log_1@general: Column time cannot be a datetime [Oct 4 22:23:08] WARNING[28760]: res_config_mysql.c:1289 require_mysql: Table queue_log_1 requires a column 'data' of size '0', but no such column exists. [Oct 4 22:23:08] WARNING[28760]: res_config_mysql.c:842 store_mysql: MySQL RealTime: Failed to insert into database: Unknown column 'data' in 'field list' |
Added after 1 hours 32 minutes:
Посмотрел в базу - в базе пусто.
Подцепил обратно старую - исчезла строчка с ошибкой
| Код: |
| WARNING[28760]: res_config_mysql.c:1289 require_mysql: Table queue_log_new requires a column 'data' of size '0', but no such column exists. |
сейчас осталась только такая ошибка
| Код: |
| [Oct 4 23:22:29] WARNING[29105]: res_config_mysql.c:1263 require_mysql: Realtime table queue_log_new@general: Column time cannot be a datetime |
Причем данные в базу попадают. В поле data.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
| Код: |
| `id` int(10) unsigned NOT NULL auto_increment, `time` datetime NOT NULL default '0000-00-00 00:00:00', `callid` varchar(32) NOT NULL, `queuename` varchar(32) NOT NULL, `agent` varchar(32) NOT NULL, `event` varchar(32) NOT NULL default '', `data1` varchar(128) NOT NULL, `data2` varchar(128) NOT NULL, `data3` varchar(128) NOT NULL, `data4` varchar(128) NOT NULL default '', `data5` varchar(128) NOT NULL default '', `data` varchar(128) NOT NULL, PRIMARY KEY (`id`), KEY `data1` (`data1`), KEY `data2` (`data2`), KEY `data3` (`data3`), KEY `data4` (`data4`), KEY `data5` (`data5`), KEY `event` (`event`), KEY `queuename` (`queuename`), KEY `callid` (`callid`), KEY `agent` (`agent`), KEY `time` (`time`) |
Ещё раз по порядку.
1. Обновил asterisk
2. Модифицировал БД, как описано на voip-info.org
3. Хотя поначалу хоть и были предупреждения в логах об отсутствии data4, data5, данные ложились в data1, data2, data3.
4.Добавил data4, data5 - появилась строчка об отсутствии поля data. Данные в data1, data2, data3 ложиться перестали.
5.Добавил data - данные ложатся в поле data, разделитель "|". Остальные поля dataX - пустые. В логах осталось предупреждение об несоответствии поля calldate.
6.Создал БД из скрипта в contrib/realtime. Появилась строчка об отсутствии поля data. Данные ложиться перестали. Совсем.
7. Откатился на старую БД. Теперь ситуация как в п.5. Формат БД привёл выше.
Но пишет все равно в поле data
| Код: |
| [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:1263 require_mysql: Realtime table rt_queue_log@general: Column time cannot be a datetime [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:1252 require_mysql: Realtime table rt_queue_log@general: Column time cannot be a datetime [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:1289 require_mysql: Table rt_queue_log requires a column 'data' of size '0', but no such column exists. [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:842 store_mysql: MySQL RealTime: Failed to insert into database: Unknown column 'data' in 'field list' [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:1252 require_mysql: Realtime table rt_queue_log@general: Column time cannot be a datetime [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:1289 require_mysql: Table rt_queue_log requires a column 'data' of size '0', but no such column exists. [Oct 16 11:05:13] WARNING[5621]: res_config_mysql.c:842 store_mysql: MySQL RealTime: Failed to insert into database: Unknown column 'data' in 'field list' |
Таблица взята из исходников:
| Код: |
| +-----------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------+------+-----+---------+-------+ | time | datetime | YES | MUL | NULL | | | callid | char(50) | YES | | NULL | | | queuename | char(50) | YES | MUL | NULL | | | agent | char(50) | YES | | NULL | | | event | char(20) | YES | | NULL | | | data1 | char(20) | YES | | NULL | | | data2 | char(20) | YES | | NULL | | | data3 | char(20) | YES | | NULL | | | data4 | char(20) | YES | | NULL | | | data5 | char(20) | YES | | NULL | | +-----------+----------+------+-----+---------+-------+ |
В 1.8.6 ставил заглушку в исходниках на проверку. Писало по полям data1, data2 и тд
Но с каждым новым дистром не накомпилишься.
Хотелось бы найти корень зла
Не хочу парсить data|
Может кто-нибудь решил проблему?