VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Distributed Device State: SUBSCRIBE между двумя Астерисками

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Pegasus
Сообщения: 20
Зарегистрирован: 30 янв 2013, 18:04

Distributed Device State: SUBSCRIBE между двумя Астерисками

Сообщение Pegasus »

День добрый.

Возник вопрос: может ли абонент одного Астериска подписаться на состояние абонента другого Астериска?
В теории я не вижу препятствий, возможно что-то не дочитал в RFC3265.
Установил два тестовых астера, на каждом по паре абонентов и транк между серваками. В диалплане имею строку:
exten => _XXXX,hint,SIP/{$EXTEN}
Абоненты одного сервера отлично видят состояние друг друга, а вот состояние абонентов соседнего астера недоступно.
Умные люди подсказали посмотреть https://wiki.asterisk.org/wiki/display/ ... vice+State , но что-то мне подсказывает что должно быть всё проще. Сервера должны обмениваться сообщениями subscribe, notify, publish.
Подскажите, пожалуйста, куда копать?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: SUBSCRIBE между двумя Астерисками

Сообщение Vlad1983 »

копать в сторону показанную умными людьми
ЛС: @rostel
Аватара пользователя
litnimax
Сообщения: 111
Зарегистрирован: 01 июн 2011, 22:13

litnimax

Сообщение litnimax »

Проблема не так просто решается.
На сегодня есть такие варианты (мне известные):
- Jabber сервер и res_xmpp для Asterisk: позволяет обмениваться состояниями, требует кучу времени на установку, жрет немерянно ресурсов (тяжелое Java приложение, зачем оно нужно на сервере телефонии?)
- PJSIP: в новом канале есть распределенные состояния (res_pjsip_pubsub.so), однако от примеров конфигов дымится моск.
- Ну и третий вариант - ØMQ модуль для астериск и скрипт ØMQ Asterisk Manager Interface (AMI) Broker - https://github.com/litnimax/zmq-ami-broker/

Автором третьего вариант является Ваш покорный слуга, который за#$% от того, что для связи двух и более серверов требуются какие-то индейские пляски.

Если будут вопросы по моему модулю, создавайте там на github тикеты.

Удачи!
Последний раз редактировалось litnimax 21 окт 2015, 15:06, всего редактировалось 1 раз.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: SUBSCRIBE между двумя Астерисками

Сообщение virus_net »

Так же подходил к данному вопросу и так же пошел по официальному пути - Jabber. Но не вышел каменный цветочек... нормально это у меня так и не заработало.

litnimax, спасибо за пост.
Вот так мысль ! И чего она мне в голову ранее не приходила.... :roll: Согласен, что официальные путь это реально пляски с бубном...
У меня же для реализации подобной схемы все есть и это все - Websocket (на PHP). Остается только команду соответствующую накалякать и все должно будет заработать.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: SUBSCRIBE между двумя Астерисками

Сообщение Zavr2008 »

litnimax, идея что надо!
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
Аватара пользователя
litnimax
Сообщения: 111
Зарегистрирован: 01 июн 2011, 22:13

litnimax

Сообщение litnimax »

Идея если честно не моя, мы со switch в chat.asterisk-support.ru обсуждали ØMQ (я рассказывал о том что он может), а свич сказал что у него есть задача состояния разделять как-то по-простому, вот я и решил запилить на  zeromq это дело.
Доволен как слон, так как ØMQ - это мощнейшая технология.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: SUBSCRIBE между двумя Астерисками

Сообщение virus_net »

Я проверил, у меня все РАБОТАЕТ через Websocket.

Код: Выделить всё

ASTERISK-01 AMI (Websocket client) <-> Websocket SERVER <-> (Websocket client)  AMI ASTERISK-02
АААААААА !!!! УРААААА !!!! И без бубна и без плясок с Jabber ! СПАСИБО !!!!!

P.S. Простите, не могу сдержать эмоций :)
P.S.S. Вот я олень что раньше до этого не допер... ну просто олень...
P.S.S.S. А самое приятное, что оно будет работать так как я хочу и так как я накодю :) КЛАСС ! Я счастлив :) и ушел кодить.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: SUBSCRIBE между двумя Астерисками

Сообщение virus_net »

litnimax писал(а):Алгоритм 1-в-1 как у меня в ZMQ Broker?
Да.
В моем случае Asterisk 1.8 и потому у меня есть несколько НО:
  • НО 1: у него нет штатного Websocket, писали сами, под задачу "отображение/управление вызовами из браузера"
    НО 2: у него в AMI нету "Event DeviceStateChange", у него есть "Event: ExtensionStatus", так же отсутствует presence state (оно появилось начиная с Asterisk 11)
    НО 3: "Event: ExtensionStatus" приходит только по тому номеру НА который звонят, а по тому КТО звонит ничего нет, но это решаемо, решаемо через "Event: Newstate"
Т.е. нужно немного помозговать, покодить и все будет. А в целом да, схема именно такая, но основана на Websocket и PHP.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH