====== 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}}