====== Asterisk — CDR ====== (сокр. англ. CDR(Call Detail Record) — Подробная Запись о Вызове) Можно работать одновременно с несколькими БД, например с ''CSV'' и [[mysql:mysql|MySQL]] Формат полей: ^Имя^Назначение^Длина^ |''accountcode''|код учётной записи| 20 | |''src''|номер Caller-ID источника звонка| 80 | |''dst''|номер Caller-ID получателя звонка| 80 | |''dcontext''|контекст-получатель| 80 | |''clid''|Caller-ID, номер и текст| 80 | |''channel''|канал источника звонка| 80 | |''dstchannel''|канал получателя звонка| 80 | |''lastapp''|последнее приложение| 80 | |''lastdata''|аргументы последнего приложения| 80 | |''start''|время начала звонка|| |''answer''|время когда была поднята трубка|| |''end''|время окончания звонка|| |''duration''|продолжительность звонка в секундах|| |''billsec''|продолжительность собственно разговора (с момента подъёма трубки)|| |''disposition''|результат обработки звонка (ANSWERED, NO ANSWER, BUSY)|| |''amaflags''|AMA-флаг (Automated Message Accounting)|| |''uniqueid''|уникальный идентификатор канала|| |''userfield''|пользовательское поле|| Статус в консоли: cdr show status ====== Работа с CSV ====== FIXME Файл ''cdr.conf'' должен содержать: [general] [csv] usegmtime=no loguniqueid=yes loguserfield=yes accountlogs=yes Для отключения режима записи в CSV нужно закомментировать все строки в секции ''[csv]'', включая имя секции. [mappings] Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})},${CDR(sequence)} Simple.csv => ${CSV_QUOTE(${EPOCH})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})} ===== logrotate ===== Работа с [[logrotate:logrotate|]] /var/log/asterisk/cdr-csv/Master.csv { monthly missingok nocompress rotate 12 create 0640 asterisk asterisk sharedscripts postrotate /usr/sbin/invoke-rc.d asterisk logger-reload > /dev/null 2> /dev/null endscript } ---- [[https://www.voip-info.org/logrotate/|logrotate - VoIP-Info]] ====== Работа с MySQL ====== Для работы с информация о вызовах можно использовать [[asterisk-cdr-viewer:asterisk-cdr-viewer|Asterisk-CDR-Viewer]] ===== Создание БД ===== В данном примере использованы: ^Имя БД|''asterisk''| ^Имя пользователя|''asterisk''| - Нужно создать файл ''{{:asterisk:asterisk_mysql.sql|asterisk_mysql.sql}}'', в котором ''PASSWORD'' нужно заменить на реальный пароль. - Для создания БД нужно выполнить команду: mysql -uroot -h127.0.0.1 -p ===== Импорт из CSV ===== - Создать файл ''{{:asterisk:import_cdr.php|import_cdr.php}}'', в котором ''PASSWORD'' нужно заменить на реальный пароль. - Выполнить php ./import_cdr.php /var/log/asterisk/cdr-csv/Master.csv ===== Проверка в консоли ===== cdr show status cdr mysql status ====== Ссылки ====== http://asterisk.ru/knowledgebase/Asterisk+cdr+mysql http://www.voip-info.org/wiki/view/Asterisk+CDR+csv+mysql+import {{tag>Asterisk}}