Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
astpanel:ats:asterisk:callhistory_v6 [2013/11/26 07:24] apor [Получение истории звонков по запросу] |
astpanel:ats:asterisk:callhistory_v6 [2018/06/08 09:17] apor [Формат “Lines”] |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
[[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] | ||
+ | <note important>**В этой статье описан алгоритм работы**. Пример реализации описан в [[http://wiki.miko.ru/astpanel:dialplan_miko_ajam | статье]] </note> | ||
===== "Динамическое" обновление истории звонков ===== | ===== "Динамическое" обновление истории звонков ===== | ||
Строка 7: | Строка 8: | ||
Для “**динамического**” обновления истории звонков в 1С следует произвести настройки: | Для “**динамического**” обновления истории звонков в 1С следует произвести настройки: | ||
<code>;/etc/asterisk/cdr_manager.conf | <code>;/etc/asterisk/cdr_manager.conf | ||
+ | ; | ||
; Asterisk Call Management CDR | ; Asterisk Call Management CDR | ||
+ | ; | ||
[general] | [general] | ||
- | enabled = yes</code> | + | enabled = yes |
+ | [mappings] | ||
+ | ; В AMI event CDR будем возвращать дополнительную информацию | ||
+ | ; Имя файла записи разговора ${CDR(recordingfile)} - переменная dialplan, нужно ее определить | ||
+ | recordingfile => recordingfile | ||
+ | ; Идентификатор звонка | ||
+ | ; Имя файла записи разговора ${CDR(linkedid)} - переменная dialplan, определена в Asterisk 1.8+ | ||
+ | linkedid => linkedid | ||
+ | </code> | ||
===== Получение истории звонков по запросу ===== | ===== Получение истории звонков по запросу ===== | ||
В плане набора должен быть описан контекст **miko_ajam**.\\ | В плане набора должен быть описан контекст **miko_ajam**.\\ | ||
Строка 28: | Строка 39: | ||
История звонков отправляется средствами **UserEvent**: | История звонков отправляется средствами **UserEvent**: | ||
- | <code>exten => 10000555,n,UserEvent(FromCDR,Channel: ${chan},Date: ${date1},Lines: ${Lines})</code> | + | <code>exten => 10000555,n,UserEvent(FromCDR,chan1c: ${chan},Date: ${date1},Lines: ${Lines})</code> |
* **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) | * **${chan}** - канал в формате "Технология/Номер", запросившего историю (он же ${v1}) | ||
* **${date1}** - начало периода | * **${date1}** - начало периода | ||
* **${Lines}** - история звонков. | * **${Lines}** - история звонков. | ||
- | |||
==== Формат “Lines” ==== | ==== Формат “Lines” ==== | ||
Строка 59: | Строка 69: | ||
Когда вся история отправлена следует оповестить об этом | Когда вся история отправлена следует оповестить об этом | ||
- | <code>exten => 10000555,n,UserEvent(Refresh1CHistory,Channel: ${chan},Date: ${date1})</code> | + | <code>exten => 10000555,n,UserEvent(Refresh1CHistory,chan1c: ${chan},Date: ${date1})</code> |
* **${chan}** - номер канала, запросившего историю (он же ${v1}) | * **${chan}** - номер канала, запросившего историю (он же ${v1}) | ||
* **${date1}** - начало периода | * **${date1}** - начало периода | ||
+ | ===== Проверка ===== | ||
+ | |||
+ | **Для проверки можно использовать следующий скрипт:** | ||
+ | * Звонок с SIP/104 (Телефон должен быть подключен) на 10000555 | ||
+ | <code>#!/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; | ||
+ | </code> | ||
+ | |||
+ | **Вывод в консоли Asterisk** | ||
+ | |||
+ | <code> -- 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) | ||
+ | </code> | ||
+ | |||
+ | **Вывод в AMI** | ||
+ | |||
+ | <code>Event: UserEvent | ||
+ | Privilege: user,all | ||
+ | UserEvent: FromCDR | ||
+ | Uniqueid: 1412529473.6 | ||
+ | Channel: | ||
+ | Date:2014-10-05 | ||
+ | Lines:2014-10-05 08:24:16@.@1001@.@1000@.@SIP/1001-00000000@.@SIP/1000-00000001@.@1.05052@.@ANSWERED@.@1412522656.0@.@@.@SIP/1000-00000001@.@Dial@.@1412522656.0@.@.....2014-10-05 10:17:06@.@1001@.@1000@.@SIP/1001-00000001@.@SIP/1000-00000002@.@1.49662@.@ANSWERED@.@1412529426.1@.@@.@SIP/1000-00000002@.@Dial@.@1412529426.1@.@..... | ||
+ | |||
+ | Event: UserEvent | ||
+ | Privilege: user,all | ||
+ | UserEvent: Refresh1CHistory | ||
+ | Uniqueid: 1412529473.6 | ||
+ | Channel: | ||
+ | Date:2014-10-05</code> | ||
+ | |||
+ | |||
+ | [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] |