Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


astpanel:ats:asterisk:callhistory_v6

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
astpanel:ats:asterisk:callhistory_v6 [2013/11/26 07:10]
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** - тип “строка” содержит строки таблицы истории звонков. \\ 
 +  * Cтроки разлелены комбинацией “**.....**”.\\ 
 +  * Cтолбцы истории разделены комбинацией “**@.@**”.\\ 
 + 
 +**Обязательный набор и порядок полей в строке:​** 
 +<​code>​calldate,​src,​dst,​channel,​dstchannel,​billsec,​disposition,​uniqueid</​code>​  
 + 
 +**Дополнительный набор полей** 
 +<​code>​file_name,​peer,​lastapp,​linkedid</​code>​ 
 + 
 +Эти поля следует добавить при использовании таблицы **CEL**.  
 +При использовании соединения двух таблиц,​ CDR и CEL, позможно добиться более широкой аналитики - "​**Участники звонка**"​.\\  
 +В этом случае,​ на одну запись таблицы CDR, может быть несколько записей таблицы CEL c значением **`eventtype`='​BRIDGE_START'​**.\\ 
 +Записи имеют один и тот же **linkedid** - уникальный идентификатор.\\ 
 +Если CEL не используется,​ то эти поля передавать не следует.\\ 
 + 
 +**Пример 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 (Телефон должен быть подключен) на 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|Обратно к основной инструкции...]]
astpanel/ats/asterisk/callhistory_v6.1385449845.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)