Это старая версия документа!
Оповещение о добавлении CDR записи через AJAM интерфейс. Для “динамического” обновления истории звонков в 1С следует произвести настройки:
;/etc/asterisk/cdr_manager.conf ; Asterisk Call Management CDR [general] enabled = yes
В плане набора должен быть описан контекст miko_ajam.
В контексте miko_ajam определяется extension с номером 10000555.
[miko_ajam] exten => 10000555,1,NoOP(Settings Asterisk)
При необходимости, “Панель телефонии Asterisk” выполняет AMI команду originate.
Параметры originate
Переменные канала
История звонков отправляется средствами UserEvent:
exten => 10000555,n,UserEvent(FromCDR,Channel: ${chan},Date: ${date1},Lines: ${Lines})
Переменная Lines - тип “строка” содержит строки таблицы истории звонков.
Обязательный набор и порядок полей в строке:
calldate,src,dst,channel,dstchannel,billsec,disposition,uniqueid
Дополнительный набор полей
file_name,peer,lastapp,linkedid
Эти поля следует добавить при использовании таблицы CEL.
При использовании соединения двух таблиц, CDR и CEL, позможно добиться более широкой аналитики - «Участники звонка».
В этом случае, на одну запись таблицы CDR, может быть несколько записей таблицы CEL c значением `eventtype`='BRIDGE_START'.
Записи имеют один и тот же linkedid - уникальный идентификатор.
Если CEL не используется, то эти поля передавать не следует.
Пример Lines:
calldate@.@src@.@dst@.@channel@.@dstchannel@.@billsec@.@disposition@.@uniqueid.....calldate@.@src@.@dst@.@channel@.@dstchannel@.@billsec@.@disposition,@.@uniqueid
Когда вся история отправлена следует оповестить об этом
exten => 10000555,n,UserEvent(Refresh1CHistory,Channel: ${chan},Date: ${date1})
Для проверки можно использовать следующий скрипт:
#!/bin/sh dir_script='/tmp/'; # каталог из asterisk.conf astspooldir='/var/spool/asterisk'; # call_text="Channel: SIP/104 Context: miko_ajam Extension: 10000555 Callerid: Alexey<104> Setvar: v1=SIP/104 Setvar: v2=2013-11-01 Setvar: v3=2013-12-01 Setvar: v4=104 "; echo "$call_text" > /tmp/file.call; mv '/tmp/file.call' "$astspooldir/outgoing/"; asterisk -rvvv;
Вывод в консоли Asterisk
-- AGI Script Executing Application: (UserEvent) Options: (FromCDR,Channel:SIP/104,Date:2013-11-01,Lines:2013-11-25 16:05:20@.@104@.@106@.@SIP/104-0000000e@.@SIP/106-0000000f@.@20.4669@.@ANSWERED@.@1385413520.14@.@exten-106-104-20131125-160520-1385413520.14.wav@.@SIP/106-0000000f@.@Dial@.@1385413520.14@.@.....) -- AGI Script Executing Application: (UserEvent) Options: (Refresh1CHistory,Channel:SIP/104,Date:2013-11-01)