Обратно к инструкйии по прокси МИКО...
Функция позволяет гибко настроить получение только нужных оповещений с АТС.
Оповещения приходят в виде внешних событий 1С.
При использовании «SDK: Компонента связи 1C и Asterisk», для установки фильтра, необходимо использовать метод RawCommand.
В параметрах, передать «строку-фильтр» в формате XML.
Описание формата XML:
<ajam-filter> <filter ИмяАтрибута0='ЗначениеАтрибута' /> <filter ИмяАтрибута1='ЗначениеАтрибута1' ИмяАтрибута2='ЗначениеАтрибута2'/> </ajam-filter>
В блоке «ajam-filter» заключаются элементы-фильтры.
Фильтр по одному атрибуту.
Необходимо получить только events Hangup и Bridge:
<ajam-filter> <filter event='Hangup' /> <filter event='Bridge' /> </ajam-filter>
При таком фильтре, конкретный «клиент» получит только перечисленные оповещения.
По соответствию двух атрибутов.
Оповещение «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, Результат); Исключение КонецПопытки;