Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
astpanel:ast_miko_proxy:proxymiko_filter [2015/03/02 09:35] apor создано |
astpanel:ast_miko_proxy:proxymiko_filter [2015/03/02 09:46] apor [Фильтрация оповещений с АТС] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
[[astpanel:ast_miko_proxy|Обратно к инструкйии по прокси МИКО...]] | [[astpanel:ast_miko_proxy|Обратно к инструкйии по прокси МИКО...]] | ||
- | Функция позволяет гибко настроить получение только **нужных** оповещений с АТС. | + | Функция позволяет гибко настроить получение только **нужных** оповещений с АТС. Оповещения приходят в виде внешних событий 1С. |
- | Для установки фильтра необходимо использовать метод "[[astpanel:doc:1cajam|SDK: Компонента связи 1C и Asterisk]]" **[[doc:1cajam:api:rawcommand|RawCommand]]**. | + | Для установки фильтра необходимо использовать метод "[[doc:1cajam|SDK: Компонента связи 1C и Asterisk]]" **[[doc:1cajam:api:rawcommand|RawCommand]]**. |
В параметрах, передать "**строку-фильтр**" в формате XML. | В параметрах, передать "**строку-фильтр**" в формате XML. | ||
+ | Описание формата XML: | ||
<code> | <code> | ||
<ajam-filter> | <ajam-filter> | ||
- | <filter ИмяАтрибута='ЗначениеАтрибута' /> | + | <filter ИмяАтрибута0='ЗначениеАтрибута' /> |
+ | <filter ИмяАтрибута1='ЗначениеАтрибута1' ИмяАтрибута2='ЗначениеАтрибута2'/> | ||
</ajam-filter> | </ajam-filter> | ||
+ | </code> | ||
+ | |||
+ | В блоке "ajam-filter" заключаются элементы-фильтры. | ||
+ | ===== Пример #1 ===== | ||
+ | |||
+ | Фильтр по одному атрибуту.\\ | ||
+ | Необходимо получить только events **Hangup** и **Bridge**: | ||
+ | <code> | ||
+ | <ajam-filter> | ||
+ | <filter event='Hangup' /> | ||
+ | <filter event='Bridge' /> | ||
+ | </ajam-filter> | ||
+ | </code> | ||
+ | |||
+ | При таком фильтре, конкретный "клиент" получит только перечисленные оповещения. | ||
+ | |||
+ | ===== Пример #2 ===== | ||
+ | По соответствию **двух** атрибутов.\\ | ||
+ | |||
+ | Оповещение "UserEvent" приходит в формате: | ||
+ | <code><generic event="UserEvent" privilege="user,all" userevent="Interception" | ||
+ | uniqueid="askozia-1380423468.269" callerid="201" | ||
+ | channel="SIP/SIP-PROVIDER-4035187125240654b73576-0000008b" | ||
+ | uniqueid="askozia-1380423468.269" /> | ||
+ | </code> | ||
+ | |||
+ | Реализация фильтра: | ||
+ | <code> | ||
+ | <ajam-filter> | ||
+ | <filter event='UserEvent' userevent='UserBuddyStatus'/> | ||
+ | <filter event='UserEvent' userevent='Interception'/> | ||
+ | </ajam-filter> | ||
+ | </code> | ||
+ | |||
+ | ===== Пример использования ===== | ||
+ | <code 1c>НашКаналФильтр = "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, Результат); | ||
+ | Исключение | ||
+ | КонецПопытки; | ||
+ | |||
</code> | </code> |