Описание поможет разобраться в содержании полей cdr таблицы и написать свой вариант отчетности по звонкам в системе, если не устраивает бесплатный модуль CDR Reports в штатной установке FreePBX.
Установлен FreePBX 12, а версия модуля CRD Reports — 12.0.22
Имена полей в базе asteriskcdrdb таблицы cdr:
calldate
Дата и время вызова
clid
Полный callerid (caller identification, CID) звонящего. Callerid состоит из Caller Name и Caller Number: «Caller Name» <Caller Number>. При получении вызова из PSTN чаще всего присутствует только номер звонящего. Существуют различные сервисы для получения расширенной информации по Caller Number. В FreePBX есть модуль CID Superfecta, позволяющий использовать различные источники и схемы получения имени звонящего ( Caller Name ) по его номеру ( Caller Number ).
src
Номер звонящего. Фактически Caller Number составляющая из Caller ID
dst
Вызываемый extension в контексте dcontext на момент завершения звонка. В логике прохождения звонка Asterisk всё разделяется на контексты (context) и extension в этих контекстах, поэтому каждый вызов в любой момент времени находится в определенном контексте, «вызывая» определенный набор инструкций соответствующего extension ( чаще всего это номер ). В момент завершения звонка asterisk фиксирует последний контекст (dcontext) и вызываемый extension в нем (dst). В обычном варианте dst — это номер вызываемого. Но может быть номером группы, номером очереди, служебными и специальными расширениями (s, busy, h, t,i ) , а так же другими — заданными программистом контекста.
dcontext
Контекст в котором вызов был завершен. Наиболее часто используются, для FreePBX установки:
from-internal: контекст в который попадают все звонки инициированные внутренними абонентами системы или самой системой.
ext-group: контекст групп вызова. Сюда попадают вызовы, которые направляются в группу (applications -> ring groups в GUI)
ext-queues: контекст очередей вызова. Сюда попадают вызовы, которые направляются в очередь (applications -> queues)
channel
Канал принимающий вызов. Обозначение имеет вид: [Channel Drivers]/[Вызываемый ресурс]-[уникальный идентификатор]. Вид вызываемого ресурса зависит от типа канала (channel driver).
Чаще всего типы каналов:
SIP: Вызовы принимаемые по протоколу SIP. Формат ресурса: SIP узел, его обозначение в системе . Как правило это либо внутренний номер абонента (application -> extensions),
либо Trunk Name ( Connectivity -> Trunks )
Local: Вызовы инициированные внутри системы. Формат ресурса: extension@context. Что значит: вызов extension в контексте context.
Каждый звонок, как правило поднимает два канала: канал для вызывающего (caller channel) и канал для вызываемого (called channel).
Упрощенная схема: channel <-> Asterisk <-> dstchannel
dstchannel
Канал исходящего вызова. Обозначение так же как и для channel.
Каждый звонок, как правило поднимает два канала: канал для вызывающего (caller channel) и канал для вызываемого (called channel).
Упрощенная схема: channel <-> Asterisk <-> dstchannel .
lastapp
Последнее Dialplan Application обрабатывающее вызов. При стандартной схеме, для нормально завершенных звонков, это поле будет иметь значение Dial.
Другие случаи это, как правило, звонки завершенные до посыла вызова вызываемой стороне (например трубку положили на этапе прослушивания приветствия).
lastdata
Данные и параметры переданные в lastapp. В случае lastapp=Dial раскрывает детальные параметры вызова (вызываемый номер, таймаут вызова).
duration
Количество секунд от начала вызова до его завершения.
billsec
Фактическое время разговора. Если быть точнее: время от перехода вызывающего канала (channel) в состояние ANSWERED до закрытия канала.
Так или иначе — для вызывающего абонента это время которое ему насчитает провайдер связи за разговор.
disposition
Состояние вызова на момент его завершения.
ANSWERED: вызов был отвечен. Если в схеме приема вызова используется голосовое меню или приветствие, то вызов будет в этом состоянии практически всегда.
Поэтому это недостаточный критерий для отбора принятых человеком (а не роботом) вызовов.
NO ANSWER: На вызов не ответили.
CONGESTION и FAILED: Вызов завершился ошибкой или ответом о недоступности сделать вызов.
Бывает, например, если вызываемого абонента не существует или используемый вид связи недоступен.
BUSY: вызываемый абонент ответил сигналом «занято«
amaflags
AMA flags. Не используется
accountcode
Значение параметра acountcode. Можно прописать свой дополнительный код для каждого номера в Applications-> extensions.
Таким образом можно дополнительно что-то обозначить или сгруппировать, если стандартных свойств не хватает.
uniqueid
Уникальный идентификатор вызывающего канала (channel).
userfield
Параметры определяемые пользователем системы, ассоциированные с каналом. Если параметры определены и для вызывающей стороны (channel) и для вызываемой (dstchsnnel) то параметры будут записаны через «;». Если они будут совпадать, то будет записаны параметры только вызывающей стороны. В стандартном варианте не используется.
did
DID номер. Как правило используется для приема входящего вызова от оператора связи.
Может быть задан в настройках входящей маршрутизации: Connectivity -> Inbound Routes -> DID Number
Явный признак входящего, по отношению к системе, звонка.
recordingfile
имя файла записи разговора. Формат имеет вид: [сокращенное обозначение контекста]-[вызываемый extension]-[callid]-[время вызова]-[uniqueid].[формат записи].
Может иметь одинаковое значение для нескольких записей в таблице, если вызовы относились к одному разговору.
cnam
Caller Name часть от CallerID
cnum
Caller Number часть от CallerID
outbound_cnam
Caller Name часть от CallerID при вызове вызываемого абонента. В зависимости от настроек может отличаться от параметров, определенных на канале вызывающего абонента
outbound_cnum
Caller Number часть от CallerID при вызове вызываемого абонента. В зависимости от настроек может отличаться от параметров, определенных на канале вызывающего абонента
dst_cnam
На данный момент не используетя
Большое спасибо, помогли.