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

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

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

Модератор: april22

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

Сообщение Pegasus » 21 окт 2015, 08:46

День добрый.

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

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

Сообщение Vlad1983 » 21 окт 2015, 08:47

копать в сторону показанную умными людьми
Мобильные РФ 1.2 руб./мин. + НДС с посекундной тарификацией, CLI
Telegram: @rostel
Vlad1983
 
Сообщений: 4175
Зарегистрирован: 09 авг 2011, 11:51

litnimax

Сообщение litnimax » 21 окт 2015, 15:56

Проблема не так просто решается.
На сегодня есть такие варианты (мне известные):
- 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, 16:06, всего редактировалось 1 раз.
Аватар пользователя
litnimax
 
Сообщений: 108
Зарегистрирован: 01 июн 2011, 22:13


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

Сообщение virus_net » 22 окт 2015, 10:09

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

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

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

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

Сообщение Zavr2008 » 22 окт 2015, 14:09

litnimax, идея что надо!
Asterisk-совместимые Российские SIP/E1 шлюзы Alvis. Для форумчан скидки, В цены входит настройка связи с Asterisk! Помогаем в настройке TDM АТС: TDA/TDE/LDK и др.
Аватар пользователя
Zavr2008
 
Сообщений: 1382
Зарегистрирован: 27 янв 2011, 01:35

litnimax

Сообщение litnimax » 22 окт 2015, 14:19

Идея если честно не моя, мы со switch в chat.asterisk-support.ru обсуждали ØMQ (я рассказывал о том что он может), а свич сказал что у него есть задача состояния разделять как-то по-простому, вот я и решил запилить на  zeromq это дело.
Доволен как слон, так как ØMQ - это мощнейшая технология.
Аватар пользователя
litnimax
 
Сообщений: 108
Зарегистрирован: 01 июн 2011, 22:13

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

Сообщение virus_net » 22 окт 2015, 15:57

Я проверил, у меня все РАБОТАЕТ через 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
 
Сообщений: 2273
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва


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

Сообщение virus_net » 22 окт 2015, 17:46

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 - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2273
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

© 2008 — 2019 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH