====== 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|Обратно к основной инструкции...]]