function 'CDR'

Функция Asterisk CDR: Устанавливает или получает переменную CDR.

Описание Все поля CDR имеют статус «только для чтения», за исключением полей:

  • 'accountcode'
  • 'userfield'
  • 'amaflags'
  • 'recordingfile'

Однако вы можете создать собственные переменные и записать в CDR.

CDR может быть модифицирован только до завершения вызова. Например, CDR запись не может быть изменена, после того, как приложение Dial выполнено.

Пример - установить значение: exten ⇒ 1,1,Set(CDR(userfield)=test)

Пример - получить значение: exten ⇒ 1,1,Set(test=${CDR(dst)})

синтаксис
CDR(name[,options])

Аргументы

  • name - наименование поля CDR.
  • clid - Caller ID.
  • lastdata - Последнее приложение обработки вызова.
  • disposition - Финальное состояние обработки вызова (hangup не в счет).
    • 0 - 'NO ANSWER'
    • 1 - 'NO ANSWER' (NULL record)
    • 2 - 'FAILED'
    • 4 - 'BUSY'
    • 8 - 'ANSWERED'
    • 16 - 'CONGESTION'
  • src - Источник вызова.
  • start - Время получения вызова.
  • amaflags - R/W the Automatic Message Accounting (AMA) flags on thechannel. When read from a channel, the integer value will always be returned. When written to a channel, both the string format or integer value is accepted.
    • 1 - 'OMIT'
    • 2 - 'BILLING'
    • 3 - 'DOCUMENTATION'

Устарело. Используйте вместо amaflags функцию CHANNEL.

  • dst - Назначение вызова (принимающая сторона).
  • answer - Время ответа на вызов.
  • accountcode - Аккаунт код канала.

Устарело. Используйте вместо accountcode функцию CHANNEL.

  • dcontext - Контекст обработки вызова.
  • end - Время завершения вызова.
  • uniqueid - Уникальный идентификатор канала.
  • dstchannel - Канал назначения.
  • duration - Общая продолжительность вызова.
  • userfield - Поле для назначения пользователем.
  • lastapp - Последнее приложение, обработавшее вызов.

Например, в приведенном ниже контектсе, это будет Queue:

exten => s,1,Answer
    same => n,set(CALLERID(name)=from-perdu)
    same => n,Queue(perdu)
exten => h,1,Hangup
  • billsec - Продолжительность вызова с момента ответа.
  • channel - Имя канала.
  • sequence - CDR sequence number.

Опции

  • f: Возвращает billsec или duration поля, как значения с плавающей точкой.
  • u: Извлекает сырое, необработанное значение. Например значения, 'start', 'answer' и 'end' с параметром 'u' будут представлены как UNIX время(кол-во секунд прошедшее с полуночи (00:00:00 UTC) 1 января 1970 года), а не в формате YYYY-MM-DD HH:MM:SS.

См. также

Asterisk CDR - Статистика звонков

Пример
Поля CDR записей могут быть назначены в диалплане Asterisk функцией CDR (). Функция CDR () также может быть использована для установки полей, которые определяются пользователем.

 exten => 177,1,Verbose(Call start time: ${CDR(start)})
       same => n,Set(CDR(userfield)=red_eyes)

Также можно добавить собственные поля:

   exten => 177,1,NoOp()
       same => n,Set(CDR(mycustomfield)=greentea)
       same => n,Verbose(I need some more ${CDR(mycustomfield)})

cdr_custom

Asterisk: функции диалплана

~~socialite~~

  • asterisk/func/cdr.txt
  • Последние изменения: 2016/12/17