virus_net, да дело в том, что не забанили, а то что нашел, не работает
cdr_mysql не использую, пишу через odbc. Сейчас на тестовой поставил дебаг всей системы. Но записи цдр все-равно нет.
Вот когда очередь отрабатывает, то запись в базу queue_log в дебаге есть:
Код: Выделить всё
root@testvoip:~# tailf /var/log/asterisk/full | grep res_config_odbc
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Skip: 0; SQL: INSERT INTO queue_log (time, callid, queuename, agent, event, data1, data2, data3, data4, data5) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 1 ('time') = '2014-08-11 18:02:17.378818'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 2 ('callid') = '1407765732.112'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 3 ('queuename') = 'sop'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 4 ('agent') = 'NONE'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 5 ('event') = 'ENTERQUEUE'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 6 ('data1') = ''
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 7 ('data2') = '442'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 8 ('data3') = '1'
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 9 ('data4') = ''
[2014-08-11 18:02:17.379] DEBUG[9528][C-00000018] res_config_odbc.c: Parameter 10 ('data5') = ''
[2014-08-11 18:02:24.404] DEBUG[9528][C-00000018] res_config_odbc.c: Skip: 0; SQL: INSERT INTO queue_log (time, callid, queuename, agent, event, data1, data2, data3, data4, data5) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Такого типа, а вот логов записи цдр - нет. По этому и спросил как его увидеть-то?
Samael28, читал, познавательно, спасибо. Я так понимаю, Вы переименовываете файл просто в конце, так как Вам нужно?
У меня проблема в том, что имя файла генерится во время разговора (старт макроса), но в базу не записывается.
Сейчас уже вроде нагородил, что в екстеншене h имею уже название файла через внутреннюю базу используя как ключ имя канала. (Спасибо Samael28, Вашу идею использовал) Но остался вопрос с трансферами которые существуют в 90% случаев - агент принимает звонок из входящей очереди и переводи на специалиста. Тогда в макросе и конечный канал имеют разные имена и получение имени файла становится невозможным под данной схеме.
При этом задаю CDR(filename) и в завершении звонка вызывая NoOp(${CDR(filename)}) он мне показывает содержимое переменной, но в базе поле не заполняется. Как бы заявленно, что цдр без пробле пишет кастомные поля, лишь бы в базе такое было, но не хочет он писать.
Если объявить в cdr_managers.conf в мапингах filename => filename, то начинет писать поля, но дублируются записи, т.е. по одному звонку в таблице две идентичные записи, что тоже не очень хорошо.
В общем я уже сам запутался, что есть как оно работает и зачем это все..
Может пнете в нужном направлении? Мне не надо расписаного решения, мне просто задайте направление движения.
Задача в том, что надо писать звонки из очереди. Звонок пришел - зашел в очередь - агент взял трубку, запустилась запись разговора (как получить имя файла и запихнуть в базу) - звонок перевели (надо запихнуть имя файла в новую запись цдр уже для переведенного человека). Как-то так.
Спасибо.
Плюс