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

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

Добавлено: 23 окт 2015, 07:34
Pegasus
День добрый всем.

Очень хорошо, что вопрос мною не надуман и люди данным направлением интересуются. Но есть небольшое НО: появляется дополнительная сущность - брокер.
У меня мысль была проще. (Абонент1 зареган на астер1, абонент2 зареган на астер2, между астерами транк.) Абонент1 подписывается на состояние абонента2. Астериск1 видит что у него прописано exten => 222,hint,SIP/222@астериск2 и сам как клиент подписывается на состояние абонента2. При изменениях состояния абонента2 астериск2 рассылает notify, астериск1 в свою очередь рассылает notify всем подписавшимся на абонента2. Получается что-то типа проксирования.
Как мне кажется, проблем быть не должно и реализуется достаточно просто (поэтому и думал что оно уже есть в астере).
Может кто-то что-то подобное встречал???

ps ушел писать свой брокер :-)

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

Добавлено: 23 окт 2015, 08:03
virus_net
Если бы такое было, то это сразу бы и посоветовали. Но такого нет.

P.S.
Pegasus писал(а):exten => 222,hint,SIP/222@астериск2
1. А если 222 будет и на этом сервере в нужном тебе контексте ? ;)
2. Символ @ в названии ext не стоит использовать, т.к. у парсера Asterisk`а сносит крышу от этого, т.к. в строке появляется две @ ;)
Я, для начала, выбрал такой формат: НОМЕР*DNS_ИМЯ_СЕРВЕРА

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

[externalStates]
exten => _XXX*[a-z].,hint,Custom:${EXTEN}
exten => _XXX*[a-z].,1,NoOp(Call to ${CUT(EXTEN,*,1)} on ${CUT(EXTEN,*,2)})
....
Пока работает так, ну а потом посмотрим.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

*CLI> core show hints

    -= Registered Asterisk Dial Plan Hints =-
   345*macs.domain.ru@externalStates      : Custom:345*macs.doma  State:Idle            Watchers  1
....

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

  == Extension Changed 345*macs.domain.ru[externalStates] new state InUse for Notify User 6003
   345*macs.domain.ru@externalStates      : Custom:345*macs.doma  State:InUse           Watchers  1

  == Extension Changed 345*macs.gold-telecom.com[externalStates] new state Busy for Notify User 6003
   345*macs.domain.ru@externalStates      : Custom:345*macs.doma  State:Busy            Watchers  1

  == Extension Changed 345*macs.domain.ru[externalStates] new state Idle for Notify User 6003
   345*macs.domain.ru@externalStates      : Custom:345*macs.doma  State:Idle            Watchers  1

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

Добавлено: 23 окт 2015, 09:37
virus_net
ddkprog писал(а):конечно есть
И в какой же версии ? Пруф линк пожалуйста.

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

Добавлено: 23 окт 2015, 16:54
virus_net
virus_net писал(а):ушел кодить
Накодил, работает как часики :) Лампочки моргают, кнопочки нажимаются, красотааааааааа. И никаких тебе тяжелых надстроек из XMPP или второго аккаунта на других серверах.

Ещё раз спасибо switch за идею, а litnimax за размещение поста с этой идеей. Готов проставить вам пива, если вы в МСК :!: ;)

litnimax

Добавлено: 23 окт 2015, 18:10
litnimax
Я как-бы не только пост разместил с идеей, а готовый скрипт это реализующий :-)
Ну да ладно, понятно что свое кодить прикольнее.
За пиво спасибо, буду мимо пролетать - наберу ;-)

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

Добавлено: 23 окт 2015, 18:58
virus_net
litnimax писал(а):свое кодить прикольнее
Это так, но дело не только в этом. Зачем мне городить:
Requirements

Python 2.7.
System libs libzmq and libzmq-dev.
Python extension pyZMQ (python-zmq system packages or installed via pip).
Asterisk headers to compile res_zmq_manager (asterisk-dev package or sources).
Asterisk modules res_manager_devicestate.so and res_manager_presencestate.so.
С учетом того что у меня 1.8 и там res_manager_devicestate.so, res_manager_presencestate.so вообще нет.
Да и когда у меня у самого уже есть полностью готовая структура и схема, в которую нужно было просто новую команду добавить и усё.
Да и тем более, что ну не люблю я Python. PHP мне гораздо ближе.
litnimax писал(а):буду мимо пролетать - наберу
You are welcome ;) Пиши как что и когда :)

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

Добавлено: 09 дек 2015, 15:46
virus_net
Наконец дошли руки и я набросал статейку о своем пути в решении данного вопроса.

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

Добавлено: 14 дек 2015, 08:02
awsswa
я правильно понял что ØMQ модуль только для asterisk для 12 и 13 версии ?

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

Добавлено: 15 дек 2015, 08:02
virus_net
awsswa писал(а):я правильно понял что ØMQ модуль только для asterisk для 12 и 13 версии ?
В описании модуля и чуть выше в этом топике приведены Requirements. Соответственно он для той версии где есть необходимое.