Страница 1 из 1

AMI сгенерировать собственный Event

СообщениеДобавлено: 10 июн 2015, 20:44
svd
Ситуация следующая...

Написал небольшую програмулину... работает через ами интерфейс... слушает некоторые события...
создал пользователя, настроил фильтр... долетают только нужные, но...
программа запущена на нескольких ПК...
и во в некоторый момент времени появляется необходимость, по клику пользователя, оповестить других подключенных клиентов, об этом действии.
так как программа подключена только к AMI интерфейсу городить другие каналы взаимодействия не хочется. Хочу сгенерировать Event с парой параметров, которые получат другие подключенные программы.

грубо говоря, в стеке программы накапливаются события которые надо обработать, но при обработке этого события пользователем 1, надо чтоб у остальных пользователей эта задача снялась... как то так.

подскажите как это сделать правильно

в догонку... использую AsterNET библиотеку

Re: AMI сгенерировать собственный Event

СообщениеДобавлено: 11 июн 2015, 08:08
virus_net
Не согласен с подобными реализациями и не считаю их правильными.
На мой взгляд предоставление прямого подключения пользователя к AMI не правильно и небезопасно.
ИМХО правильно:
AMI <-> Свой собственный сервер <-> Пользователи.
В кач-ве клиента может выступать браузер пользователя и общаться с ним через Websocket.

В вашем случае и варианте реализации можно попробовать использовать:
Asterisk manager API UserEvent
UserEvent: Send an arbitrary event (Priv: user,all)

Asterisk cmd UserEvent

Re: AMI сгенерировать собственный Event

СообщениеДобавлено: 11 июн 2015, 10:20
ded
Поддерживаю.
Чем больше, оказывается, свободы выбора (в случае с Open Source software), тем более нелепые комбинации придумываются.

Re: AMI сгенерировать собственный Event

СообщениеДобавлено: 11 июн 2015, 20:56
svd
про промежуточный сервер - согласен...
но данное решение задумывалось как однопользовательское или 2 пользовательское...
а начало разрастаться.

если проект получит развитие, собственный промежуточный сервер предусмотрю, а пока
попробую предложенное virus_net

http://www.voip-info.org/wiki/view/Asterisk+cmd+UserEvent

Re: AMI сгенерировать собственный Event

СообщениеДобавлено: 24 июн 2015, 22:13
svd
собственно пользовательский эвент генерировать так


Action: UserEvent
Privilege: user,all
UserEvent: MyEvent
DID=vasya


увидим в AMI

Event: UserEvent
Privilege: user,all
UserEvent: MyEvent
Action: UserEvent
Privilege: user,all
DID=vasya

а дальше те кто нуно пущай получают сообщение типа UserEvent: MyEvent с параметром DID=vasya параметры можно менять и пополнять
обязательное только начало

Action: UserEvent
Privilege: user,all
UserEvent: MyEvent

Re: AMI сгенерировать собственный Event

СообщениеДобавлено: 21 июл 2016, 00:31
svd
virus_net -у респект, работает схема. ответ в кассу, считаю + в карму :D
virus_net писал(а):Не согласен с подобными реализациями и не считаю их правильными.
На мой взгляд предоставление прямого подключения пользователя к AMI не правильно и небезопасно.
ИМХО правильно:
AMI <-> Свой собственный сервер <-> Пользователи.
В кач-ве клиента может выступать браузер пользователя и общаться с ним через Websocket.

В вашем случае и варианте реализации можно попробовать использовать:
Asterisk manager API UserEvent
UserEvent: Send an arbitrary event (Priv: user,all)

Asterisk cmd UserEvent