Pubsub в Asterisk с использованием Tigase и res_xmpp

Я установил и настроил сервер Tigase для распределения состояния устройства между несколькими серверами Asterisk. Сервер работает нормально. Его конфигурационный файл выглядит следующим образом:

--cluster-mode = true
config-type = --gen-config-def
--debug = server,xmpp,net
--user-db = mysql
--admins = admin@localhost
--user-db-uri = jdbc:mysql://localhost/tigasedb?user=root&password=no
--virt-hosts = localhost
--comp-name-3 = message-archive
--comp-class-3 = tigase.archive.MessageArchiveComponent
--comp-class-2 = tigase.socks5.Socks5ProxyComponent
--comp-name-2 = proxy
--comp-class-1 = tigase.muc.MUCComponent
--comp-name-1 = muc
--sm-plugins = +message-archive-xep-0136
#--ssl-container-class=tigase.extras.io.PEMSSLContextContainer
#--ssl-container-class=tigase.io.SSLContextContainer
--comp-name-1=pubsub
--comp-class-1=tigase.pubsub.PubSubComponent

Я установил два сервера Asterisk в двух разных системах. Я также скомпилировал res_xmpp на обоих и настроил его, используя следующий файл конфигурации:

[general]
debug=yes
autoregister=yes
collection_nodes=yes
pubsub_autocreate=yes

[tigase]
type=client
serverhost=192.168.20.105
username=server1@localhost/voip1
pubsub_node=pubsub.192.168.20.105
secret=123456
priority=25
port=5222
usetls=yes
usesasl=yes
status=available
statusmessage="I am available"
timeout=5
buddy=server2@localhost/voip2
distribute_events=yes

имя пользователя для одного из моих серверов - server1 @ localhost / voip1, а для другого - server2 @ localhost / voip2. Теперь модуль xmpp работает корректно. Но события pubsub не распределяются правильно. Как видите, я использовал IP-адрес, чтобы отличить свой сервер Tigase. Если я использую тот же IP-адрес в опции pubsub_node модуля res_xmpp, сервер вернет ошибку «Функция не реализована» с кодом ошибки 501; из-за этого я использовал pubsub.192.168.20.105 и установил это в / etc / hosts обоих серверов, нет сообщения об ошибке, но я тоже не получу событий !!! Как я могу это исправить?


person user278740    schedule 07.12.2013    source источник


Ответы (3)


У меня была такая же проблема с сервером Tigase и Asterisk; ваша проблема в том, что вы установили:

pubsub_autocreate=yes

config в вашем xmpp.conf. Эта опция вызывает автоматическое создание множества узлов; если вы посмотрите на tig_nodes в базе данных Tigase, вы увидите, что было создано много узлов. Вы должны прокомментировать этот вариант. После этого вы должны повторно развернуть вашу схему Tigase SQL или удалить все эти узлы; Тогда все будет хорошо. Посмотрев на отладочный вывод модуля res_xmpp в интерфейсе командной строки Asterisk, вы увидите, что res_xmpp будет пытаться подписаться сразу на множество узлов, и это вызывает путаницу, поскольку существует много узлов с одинаковым именем; и сервер вернет ошибки 409 и 501.

person gst    schedule 08.12.2013

Вероятно, проблема в конфигурации Tigase. У вас есть:

--comp-class-1 = tigase.muc.MUCComponent
--comp-name-1 = muc
--comp-name-1=pubsub
--comp-class-1=tigase.pubsub.PubSubComponent

Как видите, вы присвоили один и тот же номер как компоненту MUC, так и компоненту PubSub. Учитывая другую конфигурацию для других компонентов, правильной конфигурацией для PubSub будет:

--comp-name-4=pubsub
--comp-class-4=tigase.pubsub.PubSubComponent
person Artur Hefczyc    schedule 07.12.2013
comment
Я сделал это, но это не решило мою проблему, которую я получаю: Функция еще не поддерживается - person user278740; 08.12.2013

config-type=--gen-config-def
#config-type= --gen-config-all
--admins=admin@localhost
--virt-hosts=tigase.lc
--debug=server
--user-db=mysql
--user-db-uri = jdbc:mysql://localhost/tigasedb?user=root&password=no
--comp-name-1=pubsub
--comp-class-1=tigase.pubsub.PubSubComponent
--comp-class-2 = tigase.muc.MUCComponent
--comp-name-2 = muc
--sm-plugins = +message-archive-xep-0136
--comp-name-3 = message-archive
--comp-class-3 = tigase.archive.MessageArchiveComponent
--comp-class-4 = tigase.socks5.Socks5ProxyComponent
--comp-name-4 = proxy

Теперь моя конфигурация выглядит так, но она снова дает мне ошибку, которая не реализована.

person user278740    schedule 08.12.2013