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

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


astpanel:ast_miko_proxy:proxymiko_filter

Фильтрация оповещений с АТС

Обратно к инструкйии по прокси МИКО...

Функция позволяет гибко настроить получение только нужных оповещений с АТС.
Оповещения приходят в виде внешних событий 1С.
При использовании «SDK: Компонента связи 1C и Asterisk», для установки фильтра, необходимо использовать метод RawCommand.

В параметрах, передать «строку-фильтр» в формате XML.

Описание формата XML:

<ajam-filter>

<filter ИмяАтрибута0='ЗначениеАтрибута' />
<filter ИмяАтрибута1='ЗначениеАтрибута1' ИмяАтрибута2='ЗначениеАтрибута2'/>

</ajam-filter>

В блоке «ajam-filter» заключаются элементы-фильтры.

Пример #1

Фильтр по одному атрибуту.
Необходимо получить только events Hangup и Bridge:

<ajam-filter>
	<filter event='Hangup' />
	<filter event='Bridge' />
</ajam-filter>

При таком фильтре, конкретный «клиент» получит только перечисленные оповещения.

Пример #2

По соответствию двух атрибутов.

Оповещение «UserEvent» приходит в формате:

<generic event="UserEvent" privilege="user,all" userevent="Interception"
uniqueid="askozia-1380423468.269" callerid="201" 
channel="SIP/SIP-PROVIDER-4035187125240654b73576-0000008b" 
uniqueid="askozia-1380423468.269" />

Реализация фильтра:

<ajam-filter>
	<filter event='UserEvent' userevent='UserBuddyStatus'/>
	<filter event='UserEvent' userevent='Interception'/>
</ajam-filter>

Пример использования

НашКаналФильтр = "SIP/104";
Фильтр ="<ajam-filter>
		|	<filter event='Hangup' />
		|	<filter event='Bridge' />
		|	<filter event='ParkedCall' />
		|	<filter event='UnParkedCall' />
		|	<filter event='ParkedCallGiveUp' />
		|	<filter event='SendFAX' />
		|	<filter event='UserEvent' userevent='UserBuddyStatus'/>
		|	<filter event='UserEvent' userevent='Interception'/>
		|	<filter event='UserEvent'  channel='"+НашКаналФильтр+"'/>
		|	<filter event='Newchannel'/>
		|	<filter event='Cdr' />
		|	<filter event='ExtensionStatus' status='0'/>
		|	<filter event='ExtensionStatus' status='1'/>
		|	<filter event='ExtensionStatus' status='4'/>
		|	<filter event='ExtensionStatus' status='8'/>
		| 	<filter event='Pickup'/>
		|</ajam-filter>";
Результат = "";
Попытка
	Command = "Action=ajam_filter&xml=" + URLEncode(Фильтр);
	// SDK - компонента для связи с Asterisk
	SDK.RawCommand(Command, Результат);
Исключение
КонецПопытки;
astpanel/ast_miko_proxy/proxymiko_filter.txt · Последние изменения: 2015/03/02 09:47 — apor