Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
astpanel:ats:asterisk:faxhistory_v6 [2013/11/26 10:52] apor |
astpanel:ats:asterisk:faxhistory_v6 [2018/06/08 09:16] (текущий) apor [Формат “Lines”] |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
[[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | ||
+ | <note important>**В этой статье описан алгоритм работы**. Пример реализации описан в [[http://wiki.miko.ru/astpanel:dialplan_miko_ajam | статье]] </note> | ||
===== "Динамическое" обновление истории факсов ===== | ===== "Динамическое" обновление истории факсов ===== | ||
Строка 10: | Строка 11: | ||
[general] | [general] | ||
enabled = yes</code> | enabled = yes</code> | ||
- | |||
===== Получение истории факсов по запросу ===== | ===== Получение истории факсов по запросу ===== | ||
В плане набора должен быть описан контекст **miko_ajam**.\\ | В плане набора должен быть описан контекст **miko_ajam**.\\ | ||
Строка 27: | Строка 27: | ||
История факсов отправляется средствами **UserEvent**: | История факсов отправляется средствами **UserEvent**: | ||
- | <code>exten => 10000444,n,UserEvent(FaxFromCDR,Channel: ${chan},Date: ${date1},Lines: ${Lines})</code> | + | <code>exten => 10000444,n,UserEvent(FaxFromCDR,chan1c: ${chan},Date: ${date1},Lines: ${Lines})</code> |
* **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) | * **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) | ||
* **${date1}** - начало периода | * **${date1}** - начало периода | ||
Строка 40: | Строка 40: | ||
Когда вся история отправлена следует оповестить об этом | Когда вся история отправлена следует оповестить об этом | ||
- | <code>exten => 10000444,n,UserEvent(Refresh1CFAXES,Channel: ${chan},Date: ${date1})</code> | + | <code>exten => 10000444,n,UserEvent(Refresh1CFAXES, chan1c: ${chan},Date: ${date1})</code> |
* **${chan}** - номер канала, запросившего историю (он же ${v1}) | * **${chan}** - номер канала, запросившего историю (он же ${v1}) | ||
* **${date1}** - начало периода | * **${date1}** - начало периода | ||
+ | ===== Проверка ===== | ||
+ | ====== 10000555. Настройка Asterisk для получения истории звонков в панели 1С ====== | ||
+ | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | ||
+ | |||
+ | ===== "Динамическое" обновление истории звонков ===== | ||
+ | |||
+ | Оповещение о добавлении CDR записи через AJAM интерфейс. | ||
+ | Для “**динамического**” обновления истории звонков в 1С следует произвести настройки: | ||
+ | <code>;/etc/asterisk/cdr_manager.conf | ||
+ | ; Asterisk Call Management CDR | ||
+ | [general] | ||
+ | enabled = yes</code> | ||
+ | |||
+ | ===== Получение истории звонков по запросу ===== | ||
+ | В плане набора должен быть описан контекст **miko_ajam**.\\ | ||
+ | В контексте miko_ajam определяется extension с номером **10000555**.\\ | ||
+ | <code>[miko_ajam] | ||
+ | exten => 10000555,1,NoOP(Settings Asterisk)</code> | ||
+ | |||
+ | При необходимости, **“Панель телефонии 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**: | ||
+ | <code>exten => 10000555,n,UserEvent(FromCDR,chan1c: ${chan},Date: ${date1},Lines: ${Lines})</code> | ||
+ | * **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) | ||
+ | * **${date1}** - начало периода | ||
+ | * **${Lines}** - история звонков. | ||
+ | |||
+ | ==== Формат “Lines” ==== | ||
+ | |||
+ | Переменная **Lines** - тип “строка” содержит строки таблицы истории звонков. \\ | ||
+ | * Cтроки разлелены комбинацией “**.....**”.\\ | ||
+ | * Cтолбцы истории разделены комбинацией “**@.@**”.\\ | ||
+ | |||
+ | **Обязательный набор и порядок полей в строке:** | ||
+ | <code>calldate,src,dst,channel,dstchannel,billsec,disposition,uniqueid</code> | ||
+ | |||
+ | **Пример Lines:** | ||
+ | <code>calldate@.@src@.@dst@.@channel@.@dstchannel@.@billsec@.@disposition@.@uniqueid.....calldate@.@src@.@dst@.@channel@.@dstchannel@.@billsec@.@disposition,@.@uniqueid</code> | ||
+ | |||
+ | <note important>На параметр Lines накладывается ограничение в 1024 символов. Если величина пакета превышает лимит, то следует выслать пакеты истории в нескольких UserEvent.</note> | ||
+ | |||
+ | <note important>Lines не должен содержать символов перевода строки и возврат каретки (CRLF). Лучше если пробельных символов не будет.</note> | ||
+ | |||
+ | Когда вся история отправлена следует оповестить об этом | ||
+ | <code>exten => 10000555,n,UserEvent(Refresh1CHistory,chan1c: ${chan},Date: ${date1})</code> | ||
+ | * **${chan}** - номер канала, запросившего историю (он же ${v1}) | ||
+ | * **${date1}** - начало периода | ||
+ | ===== Проверка ===== | ||
+ | |||
+ | **Для проверки можно использовать следующий скрипт:** | ||
+ | * Звонок с SIP/104 (Телефон должен быть подключен) на 10000444 | ||
+ | |||
+ | <code>#!/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; | ||
+ | </code> | ||
+ | |||
+ | **Вывод в AMI** | ||
+ | <code>Event: UserEvent | ||
+ | Privilege: user,all | ||
+ | UserEvent: Refresh1CFAXES | ||
+ | Uniqueid: 1412878640.21 | ||
+ | Channel:SIP/104 | ||
+ | Date:2013-11-01</code> | ||
+ | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] |