Инструменты пользователя

Инструменты сайта


asterisk:cdr

Asterisk — CDR

(сокр. англ. CDR(Call Detail Record) — Подробная Запись о Вызове)

Можно работать одновременно с несколькими БД, например с CSV и MySQL

Формат полей:

ИмяНазначениеДлина
accountcodeкод учётной записи 20
srcномер Caller-ID источника звонка 80
dstномер Caller-ID получателя звонка 80
dcontextконтекст-получатель 80
clidCaller-ID, номер и текст 80
channelканал источника звонка 80
dstchannelканал получателя звонка 80
lastappпоследнее приложение 80
lastdataаргументы последнего приложения 80
startвремя начала звонка
answerвремя когда была поднята трубка
endвремя окончания звонка
durationпродолжительность звонка в секундах
billsecпродолжительность собственно разговора (с момента подъёма трубки)
dispositionрезультат обработки звонка (ANSWERED, NO ANSWER, BUSY)
amaflagsAMA-флаг (Automated Message Accounting)
uniqueidуникальный идентификатор канала
userfieldпользовательское поле

Статус в консоли:

cdr show status

Работа с CSV

FIXME

Файл cdr.conf должен содержать:

/etc/asterisk/cdr.conf
[general]
 
[csv]
usegmtime=no
loguniqueid=yes
loguserfield=yes
accountlogs=yes

Для отключения режима записи в CSV нужно закомментировать все строки в секции [csv], включая имя секции.

/etc/asterisk/cdr_custom.conf
[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

/etc/logrotate.d/asterisk_csv
/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
}

logrotate - VoIP-Info

Работа с MySQL

Для работы с информация о вызовах можно использовать Asterisk-CDR-Viewer

Создание БД

В данном примере использованы:

Имя БДasterisk
Имя пользователяasterisk
  1. Нужно создать файл asterisk_mysql.sql, в котором PASSWORD нужно заменить на реальный пароль.
  2. Для создания БД нужно выполнить команду:
    mysql -uroot -h127.0.0.1 -p <asterisk_mysql.sql

Импорт из CSV

  1. Создать файл import_cdr.php, в котором PASSWORD нужно заменить на реальный пароль.
  2. Выполнить
    php ./import_cdr.php /var/log/asterisk/cdr-csv/Master.csv

Проверка в консоли

cdr show status

cdr mysql status

Ссылки

asterisk/cdr.txt · Последние изменения: 2022-03-02 13:19 — GreyWolf