====== 10000444. Настройка Asterisk для получения истории факсов в панели 1С ====== [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] **В этой статье описан алгоритм работы**. Пример реализации описан в [[http://wiki.miko.ru/astpanel:dialplan_miko_ajam | статье]] ===== "Динамическое" обновление истории факсов ===== Оповещение о добавлении CDR записи через AJAM интерфейс. Для “**динамического**” обновления истории звонков в 1С следует произвести настройки: ;/etc/asterisk/cdr_manager.conf ; Asterisk Call Management CDR [general] enabled = yes ===== Получение истории факсов по запросу ===== В плане набора должен быть описан контекст **miko_ajam**.\\ В контексте miko_ajam определяется extension с номером **10000444**.\\ [miko_ajam] exten => 10000444,1,NoOP(Settings Asterisk) При необходимости, **“Панель телефонии Asterisk”** выполняет AMI команду [[:kb:asterisk:ami:originate|originate]].\\ **Параметры originate**\\ * channel - Local/10000444@miko_ajam * Application - NoCDR **Переменные канала** \\ * v1 - канал пользователя в формате "Технология/Номер", который инициировал originate * v2 - начало периода в формате 'yyyy-mm-dd' * v3 - конец периода в формате 'yyyy-mm-dd' История факсов отправляется средствами **UserEvent**: exten => 10000444,n,UserEvent(FaxFromCDR,chan1c: ${chan},Date: ${date1},Lines: ${Lines}) * **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) * **${date1}** - начало периода * **${Lines}** - история звонков. **Пример Lines:** calldate@.@src@.@dst@.@lastdata@.@uniqueid@.@lastapp@.@clid@.@linkedid.....calldate@.@src@.@dst@.@lastdata@.@uniqueid@.@lastapp@.@clid@.@linkedid На параметр Lines накладывается ограничение в 1024 символов. Если величина пакета превышает лимит, то следует выслать пакеты истории в нескольких UserEvent. Lines не должен содержать символов перевода строки и возврат каретки (CRLF). Лучше если пробельных символов не будет. Когда вся история отправлена следует оповестить об этом exten => 10000444,n,UserEvent(Refresh1CFAXES, chan1c: ${chan},Date: ${date1}) * **${chan}** - номер канала, запросившего историю (он же ${v1}) * **${date1}** - начало периода ===== Проверка ===== ====== 10000555. Настройка Asterisk для получения истории звонков в панели 1С ====== [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] ===== "Динамическое" обновление истории звонков ===== Оповещение о добавлении 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 команду [[:kb:asterisk:ami:originate|originate]].\\ **Параметры originate**\\ * channel - Local/10000555@miko_ajam * Application - NoCDR **Переменные канала** \\ * v1 - канал пользователя в формате "Технология/Номер", который инициировал originate * v2 - начало периода в формате 'yyyy-mm-dd' * v3 - конец периода в формате 'yyyy-mm-dd' * v4 - номера телефонов в формате "НОМЕР1-НОМЕР2-НОМЕР3..." (разделитель "тире") История звонков отправляется средствами **UserEvent**: exten => 10000555,n,UserEvent(FromCDR,chan1c: ${chan},Date: ${date1},Lines: ${Lines}) * **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) * **${date1}** - начало периода * **${Lines}** - история звонков. ==== Формат “Lines” ==== Переменная **Lines** - тип “строка” содержит строки таблицы истории звонков. \\ * Cтроки разлелены комбинацией “**.....**”.\\ * Cтолбцы истории разделены комбинацией “**@.@**”.\\ **Обязательный набор и порядок полей в строке:** calldate,src,dst,channel,dstchannel,billsec,disposition,uniqueid **Пример Lines:** calldate@.@src@.@dst@.@channel@.@dstchannel@.@billsec@.@disposition@.@uniqueid.....calldate@.@src@.@dst@.@channel@.@dstchannel@.@billsec@.@disposition,@.@uniqueid На параметр Lines накладывается ограничение в 1024 символов. Если величина пакета превышает лимит, то следует выслать пакеты истории в нескольких UserEvent. Lines не должен содержать символов перевода строки и возврат каретки (CRLF). Лучше если пробельных символов не будет. Когда вся история отправлена следует оповестить об этом exten => 10000555,n,UserEvent(Refresh1CHistory,chan1c: ${chan},Date: ${date1}) * **${chan}** - номер канала, запросившего историю (он же ${v1}) * **${date1}** - начало периода ===== Проверка ===== **Для проверки можно использовать следующий скрипт:** * Звонок с SIP/104 (Телефон должен быть подключен) на 10000444 #!/bin/sh dir_script='/tmp/'; # каталог из asterisk.conf astspooldir='/var/spool/asterisk'; # call_text="Channel: SIP/104 Context: miko_ajam Extension: 10000444 Callerid: Alexey<104> Setvar: v1=SIP/104 Setvar: v2=2013-11-01 Setvar: v3=2013-12-01 "; echo "$call_text" > /tmp/file.call; mv '/tmp/file.call' "$astspooldir/outgoing/"; asterisk -rvvv; **Вывод в AMI** Event: UserEvent Privilege: user,all UserEvent: Refresh1CFAXES Uniqueid: 1412878640.21 Channel:SIP/104 Date:2013-11-01 [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]]