Octo with 3 regions

#1

I’ve configured a single jicofo with 3 jvb in 3 regions, using Octo.

It works quite well when I join to 2 different regions (doesn’t matter which regions I use), but when I try to join to the 3rd region, the jicofo would fail to allocate the channel on the 3rd bridge (timeout) and the user would fail to join the conference.

I’m not sure if it’s due to the channel allocation request was slow or the thread lock failed due to multiple requests. Has joining to 3 or more region been tested in Octo? Is there a way to control the channel allocation timeout?

The relevant jicofo log:

Jicofo 2019-01-30 19:39:34.320 INFO: [46] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@4f7ca7ae member=ChatMember[room1@conference.jicofo-us.beta/6421-6de54f, jid: null]@195303974]
Jicofo 2019-01-30 19:39:34.320 INFO: [46] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member room1@conference.jicofo-us.beta/6421-6de54f joined.

Jicofo 2019-01-30 19:39:34.321 INFO: [46] org.jitsi.impl.protocol.xmpp.colibri.OperationSetColibriConferenceImpl.createNewConference().81 Conference created: org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl@e00ff1f
Jicofo 2019-01-30 19:39:34.321 INFO: [46] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Creating an Octo participant for Bridge[jid=jvb-la.jicofo-us.beta, relayId=204.141.98.188:9096, region=la] in JitsiMeetConferenceImpl[id=ffd598, name=room1@conference.jicofo-us.beta]
Jicofo 2019-01-30 19:39:34.321 INFO: [46] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Added participant jid= room1@conference.jicofo-us.beta/6421-6de54f, bridge=jvb-la.jicofo-us.beta

Jicofo 2019-01-30 19:39:34.322 INFO: [46] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Region info, conference=ffd598 octo_enabled= true: [[hk, hk][london, london][la, la]]

Jicofo 2019-01-30 19:39:34.322 INFO: [88] org.jitsi.jicofo.AbstractChannelAllocator.log() Using jvb-la.jicofo-us.beta to allocate channels for: OctoParticipant[relays=[207.176.32.140:9096, 154.62.130.140:9096]]@440565251
Jicofo 2019-01-30 19:39:34.323 FINE: [88] org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.acquire().1101 I'm the conference creator - pool-25-thread-1

Jicofo 2019-01-30 19:39:34.323 INFO: [49] org.jitsi.jicofo.Bridge.log() Adding 1 video streams on jvb-la.jicofo-us.beta video streams: 0 diff: 1 (estimated: 1)
Jicofo 2019-01-30 19:39:34.323 SEVERE: [88] impl.protocol.jabber.extensions.colibri.ColibriBuilder.addAllocateChannelsReq().479 Bundle requested, but no endpointId provided.
Jicofo 2019-01-30 19:39:34.324 FINE: [70] org.jitsi.jicofo.discovery.DiscoveryUtil.discoverParticipantFeatures().152 room1@conference.jicofo-us.beta/6421-6de54f, features: http://jabber.org/protocol/caps, urn:ietf:rfc:4588, urn:ietf:rfc:5761, urn:ietf:rfc:5888, urn:xmpp:jingle:1, urn:xmpp:jingle:apps:dtls:0, urn:xmpp:jingle:apps:rtp:1, urn:xmpp:jingle:apps:rtp:audio, urn:xmpp:jingle:apps:rtp:video, urn:xmpp:jingle:transports:dtls-sctp:1, urn:xmpp:jingle:transports:ice-udp:1, urn:xmpp:rayo:client:1
Jicofo 2019-01-30 19:39:34.324 FINE: [88] org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.createColibriChannels().310 Thread[pool-25-thread-1,5,main] sending alloc request

Jicofo 2019-01-30 19:39:34.324 INFO: [70] org.jitsi.jicofo.AbstractChannelAllocator.log() Using jvb-la.jicofo-us.beta to allocate channels for: Participant[endpointId=6421-6de54f]
Jicofo 2019-01-30 19:39:34.324 FINE: [88] org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.logRequest().548 Channel allocate request
Jicofo 2019-01-30 19:39:34.325 FINE: [70] org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.acquire().1111 Will have to wait until the conference is created - pool-15-thread-1

Jicofo 2019-01-30 19:39:34.325 INFO: [49] org.jitsi.jicofo.Bridge.log() Adding 3 video streams on jvb-la.jicofo-us.beta video streams: 0 diff: 4 (estimated: 4)
Jicofo 2019-01-30 19:39:34.458 INFO: [46] org.jitsi.jicofo.Bridge.log() Reset video stream diff on jvb-la.jicofo-us.beta video streams: 0 (estimation error: 4)

Jicofo 2019-01-30 19:39:43.728 FINE: [38] org.jitsi.xmpp.component.ComponentBase.run().575 Sending ping IQ: <iq to='jicofo-us.beta' from='focus.jicofo-us.beta' id='ixPnF-1044' type='get'><ping xmlns='urn:xmpp:ping'/></iq>
Jicofo 2019-01-30 19:39:43.729 FINE: [105] org.jitsi.jicofo.xmpp.FocusComponent.processIQ() (serving component 'Jitsi Meet Focus') Processing IQ (packetId ixPnF-1044): <iq type="result" id="ixPnF-1044" to="focus.jicofo-us.beta" from="jicofo-us.beta"/>
Jicofo 2019-01-30 19:39:43.729 FINE: [105] org.jitsi.xmpp.component.ComponentBase.gotResult().619 Got ping response for: ixPnF-1044
Jicofo 2019-01-30 19:39:43.729 FINE: [105] org.jitsi.xmpp.component.ComponentBase.verifyProcessingTime().546 It took 0ms to process packet: ixPnF-1044

Jicofo 2019-01-30 19:39:43.804 FINE: [44] org.jitsi.xmpp.component.ComponentBase.run().575 Sending ping IQ: <iq to='jicofo-us.beta' from='focus.jicofo-us.beta' id='ixPnF-1045' type='get'><ping xmlns='urn:xmpp:ping'/></iq>
Jicofo 2019-01-30 19:39:43.805 FINE: [107] org.jitsi.jicofo.xmpp.FocusComponent.processIQ() (serving component 'Jitsi Meet Focus') Processing IQ (packetId ixPnF-1045): <iq type="result" id="ixPnF-1045" to="focus.jicofo-us.beta" from="jicofo-us.beta"/>
Jicofo 2019-01-30 19:39:43.805 FINE: [107] org.jitsi.xmpp.component.ComponentBase.gotResult().619 Got ping response for: ixPnF-1045
Jicofo 2019-01-30 19:39:43.805 FINE: [107] org.jitsi.xmpp.component.ComponentBase.verifyProcessingTime().546 It took 0ms to process packet: ixPnF-1045

Jicofo 2019-01-30 19:39:49.325 FINE: [88] org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.logResponse().541 Channel allocate response
(timeout)
Jicofo 2019-01-30 19:39:49.325 FINE: [88] org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.release().1162 Conference creator is releasing the lock - pool-25-thread-1
Jicofo 2019-01-30 19:39:49.326 SEVERE: [88] org.jitsi.jicofo.AbstractChannelAllocator.log() Failed to allocate channels using bridge: jvb-la.jicofo-us.beta
net.java.sip.communicator.service.protocol.OperationFailedException: Failed to allocate colibri channels: response is null. Maybe the response timed out.
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.maybeThrowOperationFailed(ColibriConferenceImpl.java:454)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.createColibriChannels(ColibriConferenceImpl.java:322)
        at org.jitsi.jicofo.OctoChannelAllocator.doAllocateChannels(OctoChannelAllocator.java:121)
        at org.jitsi.jicofo.AbstractChannelAllocator.allocateChannels(AbstractChannelAllocator.java:254)
        at org.jitsi.jicofo.AbstractChannelAllocator.doRun(AbstractChannelAllocator.java:167)
        at org.jitsi.jicofo.AbstractChannelAllocator.run(AbstractChannelAllocator.java:141)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Jicofo 2019-01-30 19:39:49.327 SEVERE: [70] org.jitsi.jicofo.AbstractChannelAllocator.log() Failed to allocate channels using bridge: jvb-la.jicofo-us.beta
net.java.sip.communicator.service.protocol.OperationFailedException: Creator thread has failed to allocate channels on: jvb-la.jicofo-us.beta, msg: Failed to allocate colibri channels: response is null. Maybe the response timed out.
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl$ConferenceCreationSemaphore.acquire(ColibriConferenceImpl.java:1135)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.acquireCreateConferenceSemaphore(ColibriConferenceImpl.java:477)
        at org.jitsi.impl.protocol.xmpp.colibri.ColibriConferenceImpl.createColibriChannels(ColibriConferenceImpl.java:291)
        at org.jitsi.protocol.xmpp.colibri.ColibriConference.createColibriChannels(ColibriConference.java:115)
        at org.jitsi.jicofo.ParticipantChannelAllocator.doAllocateChannels(ParticipantChannelAllocator.java:145)
        at org.jitsi.jicofo.AbstractChannelAllocator.allocateChannels(AbstractChannelAllocator.java:254)
        at org.jitsi.jicofo.AbstractChannelAllocator.doRun(AbstractChannelAllocator.java:167)
        at org.jitsi.jicofo.AbstractChannelAllocator.run(AbstractChannelAllocator.java:141)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Jicofo 2019-01-30 19:39:49.327 INFO: [49] org.jitsi.jicofo.Bridge.log() Removing 3 video streams on jvb-la.jicofo-us.beta video streams: 0 diff: -3 (estimated: -3)
Jicofo 2019-01-30 19:39:49.328 INFO: [49] org.jitsi.jicofo.Bridge.log() Removing 1 video streams on jvb-la.jicofo-us.beta video streams: 0 diff: -4 (estimated: -4)
Jicofo 2019-01-30 19:39:49.475 INFO: [46] org.jitsi.jicofo.Bridge.log() Reset video stream diff on jvb-la.jicofo-us.beta video streams: 0 (estimation error: -4)
0 Likes

#2

meet.jit.si is deployed in 6 regions and for example in the last edition of TheCall I saw we were on 4 bridges.

0 Likes

#3

That’s good to know. Any guidance on what I should check/test to figure out the problem?

btw, I’m running the latest stable release from 2 days ago.

Thanks!

0 Likes

#4

Hi Jerry,

As Damencho mentioned we’ve been using Octo with more than 2 regions and haven’t seen any problems so far.

Unfortunately I don’t see anything obvious that would pinpoint the issue. One difference I notice: you seem to be using XMPP components for the bridges, while we use XMPP clients/MUX. I don’t think this should have any effect, but it hasn’t been tested.

Perhaps you’re allocating channels on the 3 bridges at nearly the same time? I think in our case we add them one by one as participants join.

You can debug further by looking at the logs on the bridge that failed to respond – did it receive the request? Did it throw any exceptions or print anything interesting?

Boris

0 Likes

#5

Hi Boris,

Is it correct that I should first set things up as load-balance (jicofo/doc) then turn on octo (jvb/doc)? That’s what I had done.

I’ve tried several times using stables (3508 and 3186), running 1 full meet, and 3 jvb in VMs (Debian Stretch) but still can’t get it to go more than 2 reliably.

I found that if I restart jvb#3, then 3-region octo would work, but only for one conference.

I then compared the jvb logs for the working and non-working cases.

Working jvb#3

44.403 INFO: [94] org.jitsi.videobridge.Videobridge.log() CAT=stat create_conf,conf_id=e277122bff17f94 conf_name=test123,logging=true,conf_count=1,ch_count=0,v_streams=0
44.413 INFO: [94] org.jitsi.videobridge.Conference.log() CAT=stat create_content,conf_id=e277122bff17f94,content=audio conf_count=1,ch_count=0,v_streams=0
44.434 INFO: [94] org.jitsi.videobridge.RtpChannel.log() CAT=stat create_stream,conf_id=e277122bff17f94,content=audio,ch_id=a6d7bbfac7dcf017,endp_id=null,stream=1968919027
44.434 INFO: [94] org.jitsi.videobridge.Channel.log() CAT=stat transport_connected,conf_id=e277122bff17f94,content=audio,ch_id=a6d7bbfac7dcf017,endp_id=null,stream=1968919027
44.471 FINE: [94] org.jitsi.impl.neomedia.RTPConnectorOutputStream.log() Initialized configuration. Send thread: true. Pool capacity: 100. Queue capacity: 1024. Avg bitrate window: 5000
44.497 FINE: [94] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format ALAW/rtp, 8000.0 Hz, 8-bit, Mono, Signed with RTPManager
44.498 FINE: [94] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format g722/rtp, 8000.0 Hz, Mono with RTPManager
44.553 FINE: [94] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format ALAW/rtp, 8000.0 Hz, 8-bit, Mono, Signed with RTPManager
44.554 FINE: [94] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format g722/rtp, 8000.0 Hz, Mono with RTPManager
44.554 INFO: [94] org.jitsi.videobridge.Content.log() CAT=stat create_channel,conf_id=e277122bff17f94,content=audio,ch_id=a6d7bbfac7dcf017,endp_id=null,stream=1968919027 transport=octo,bundle=null,initiator=null,media_type=audio,relay_type=null
44.563 FINE: [94] org.jitsi.impl.neomedia.AbstractRTPConnector.log() setDirection sendrecv

Non-working jvb#3

50.720 INFO: [81] org.jitsi.videobridge.Videobridge.log() CAT=stat create_conf,conf_id=12ce13169a073125 conf_name=test123,logging=true,conf_count=1,ch_count=0,v_streams=0
50.720 INFO: [81] org.jitsi.videobridge.Conference.log() CAT=stat create_content,conf_id=12ce13169a073125,content=audio conf_count=1,ch_count=0,v_streams=0
50.720 INFO: [81] org.jitsi.videobridge.RtpChannel.log() CAT=stat create_stream,conf_id=12ce13169a073125,content=audio,ch_id=e1813c487f8f7f8d,endp_id=null,stream=835711465
50.720 INFO: [81] org.jitsi.videobridge.Channel.log() CAT=stat transport_connected,conf_id=12ce13169a073125,content=audio,ch_id=e1813c487f8f7f8d,endp_id=null,stream=835711465
50.721 FINE: [81] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format ALAW/rtp, 8000.0 Hz, 8-bit, Mono, Signed with RTPManager
50.721 FINE: [81] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format g722/rtp, 8000.0 Hz, Mono with RTPManager
50.723 FINE: [81] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format ALAW/rtp, 8000.0 Hz, 8-bit, Mono, Signed with RTPManager
50.723 FINE: [81] org.jitsi.impl.neomedia.AudioMediaStreamImpl.log() registering format g722/rtp, 8000.0 Hz, Mono with RTPManager
50.723 INFO: [81] org.jitsi.videobridge.Content.log() CAT=stat create_channel,conf_id=12ce13169a073125,content=audio,ch_id=e1813c487f8f7f8d,endp_id=null,stream=835711465 transport=octo,bundle=null,initiator=null,media_type=audio,relay_type=null
50.727 FINE: [81] org.jitsi.impl.neomedia.AbstractRTPConnector.log() setDirection sendrecv

I can see that the non-working log is missing a line with RTPConnectorOutputStream.log() Initialized configuration

In any case, I suspect my configuration is wrong, but I just followed the steps in load-balance (to get all jvb connect to the same jicofo) and then octo, I’m not sure what else I need to do.

Thanks,
Jerry

0 Likes

#6

Hi Boris and Damian, any insight for the way I set up the octo?

Thanks,
Jerry

0 Likes

#7

I don’t really have any ideas on this one. You say that 3-region octo works once after restarting jvb3. Does a 2-region conference involving jvb3 work afterwards (which would indicate that jvb3 is in a broken state)?

Can you post the configuration (sip-communicator.properties) of your bridges? Privately is fine if you don’t want to post it here.

Boris

0 Likes

#8

Hi Boris,

Thanks for taking a look.

I can see the nodes working by using RegionBasedBridgeSelectionStrategy and setting the jitsi meet config to any 2 out of 3 jvb. I still get Failed to allocate channels using bridge when trying to add the 3rd.

I did try meet.jit.si and indeed the multi-region works well (I tried with 4). To match as close to that as possible, I installed jicofo 455 and jvb 1106.

Here are my dev env (1 meet, 2 jvb), hopefully with your help, this becomes a sample for the community to build octo easily.

Jicofo (domain tv-dev-1.local)

~# cat /etc/prosody/conf.d/tv-dev-1.local.cfg.lua
VirtualHost "tv-dev-1.local"
        authentication = "anonymous"
        admins = {
                "tvb1.tv-dev-1.local",
                "tvb2.tv-dev-1.local",
                "tvb3.tv-dev-1.local",
        }
        modules_enabled = {
            "bosh";
            "pubsub";
            "ping";
        }
        c2s_require_encryption = false

Component "conference.tv-dev-1.local" "muc"
    storage = "null"
admins = { "focus@auth.tv-dev-1.local" }

Component "tvb1.tv-dev-1.local"
    component_secret = "u5Q1D4Be"
Component "tvb2.tv-dev-1.local"
    component_secret = "I44y6tuO"
Component "tvb3.tv-dev-1.local"
    component_secret = "WOMmiqvv"

VirtualHost "auth.tv-dev-1.local"
    authentication = "internal_plain"

Component "focus.tv-dev-1.local"
    component_secret = "43njFF99"
~# cat /etc/jitsi/jicofo/config
JICOFO_HOST=tv-dev-1.local
JICOFO_HOSTNAME=tv-dev-1.local
JICOFO_SECRET=43njFF99
JICOFO_PORT=5347
JICOFO_AUTH_DOMAIN=auth.tv-dev-1.local
JICOFO_AUTH_USER=focus
JICOFO_AUTH_PASSWORD=XmsHb1KF
JICOFO_OPTS=""
JAVA_SYS_PROPS="..."

~# cat /etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.BridgeSelector.BRIDGE_SELECTION_STRATEGY=SplitBridgeSelectionStrategy
org.jitsi.focus.pubsub.ADDRESS=tv-dev-1.local
org.jitsi.jicofo.STATS_PUBSUB_NODE=sharedStatsNode
~# cat /etc/jitsi/videobridge/config
JVB_HOSTNAME=tv-dev-1.local
JVB_HOST=tv-dev-1.local
JVB_PORT=5347
JVB_SECRET=u5Q1D4Be
JVB_OPTS="--apis=rest,xmpp --subdomain=tvb1"
JAVA_SYS_PROPS="..."
AUTHBIND=yes

~# cat /etc/jitsi/videobridge/sip-communicator.properties
org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.tv-dev-1.local/.*
org.jitsi.videobridge.rest.private.jetty.host=127.0.0.1
org.jitsi.videobridge.rest.private.jetty.port=8080
org.jitsi.videobridge.rest.jetty.host=127.0.0.1
org.jitsi.videobridge.rest.jetty.port=8088
org.jitsi.videobridge.octo.BIND_ADDRESS=192.168.100.81
org.jitsi.videobridge.octo.BIND_PORT=9096
org.jitsi.videobridge.REGION=main
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=pubsub
org.jitsi.videobridge.PUBSUB_SERVICE=tv-dev-1.local
org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode

jvb2 (jvb3 has the same, except for the region name)

~# cat /etc/jitsi/videobridge/config
JVB_HOSTNAME=tv-dev-1.local
JVB_HOST=tv-dev-1.local
JVB_PORT=5347
JVB_SECRET=I44y6tuO
JVB_OPTS="--apis=rest,xmpp --subdomain=tvb2"
JAVA_SYS_PROPS="..."

~# cat /etc/jitsi/videobridge/sip-communicator.properties
org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.tv-dev-1.local/.*
org.jitsi.videobridge.rest.private.jetty.host=127.0.0.1
org.jitsi.videobridge.rest.private.jetty.port=8080
org.jitsi.videobridge.rest.jetty.host=127.0.0.1
org.jitsi.videobridge.rest.jetty.port=8088
org.jitsi.videobridge.octo.BIND_ADDRESS=192.168.100.82
org.jitsi.videobridge.octo.BIND_PORT=9096
org.jitsi.videobridge.REGION=tvb2
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=pubsub
org.jitsi.videobridge.PUBSUB_SERVICE=tv-dev-1.local
org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode

Thanks,
Jerry

0 Likes

#9

Hi Boris and Damian,

When you get a chance, please take a look at the config files. I suspect I missed some settings in there somewhere.

Thanks,
Jerry

0 Likes

#10

@Boris_Grozev when you have time, please take a look at the config files I posted and see if you can find anything obvious.

Thanks,
Jerry

1 Like

#11

@Jerry_Hu. Hi did you get some answers or findings on this configuration?

Thanks

0 Likes

#12

I didn’t get any answers, so I did debug on my own and made a fix. It’s working for me well enough right now - I still don’t understand how meet.jit.si manages to make it work out of the box, I must have missed something.

0 Likes

#13

@Jerry_Hu. Thanks for the update. I have kind of same problem but it probably more related to a network level: I have the same kind of configuration (Prosody/ jifoco / videobridge) on server 1. Trying to add server2 (only videobridge). but prosody log show:
Mar 21 16:49:16 jvb2.<xmppdomain>:component warn Component not connected, bouncing error for: <iq id=‘Vq7ni-111843’ type=‘get’ to='jvb2.<xmppdomain>’ from=‘focus@auth.<xmppdomain>/focus1233799357609’>
@damencho. In which case can we have a failure to register a component videobridge on another server/machine? besides the secret ?
Tcpdump shows both servers request and response on port 5347 on prosody machine…with apparently tcp reset sent by prosody to videobridge in response to a SYN message.
Thanks

0 Likes

#14

you need to add the new jvb component to prosody, while prosody should listen on the non-localhost IP. Or, as I just redid the setup using muc to register jvb, as detailed in Octo with 3 regions which makes adding jvb a much easier process.

0 Likes

#15

Thanks @Jerry_Hu! I did add the JVB component in prosody config. I assume this is why I have this message from prosody log. I am going to recheck network config, IPs:Ports listening.
Regarding “MUC to register jvbs” I did not see anything in this post (which is the one you mentioned).
However, I am going to try to find more details about using MUC to register JVBs. And see if it is compliant with my attempt to deploy cascading briges

0 Likes

#16

oops, I pasted the wrong link should be How to add the secondary jvb to main jitsi-server

0 Likes

#17

Yes @Jerry_Hu. I found this link too. Which is interesting. However I fix the problem of having additional jvb connected to prosody by simply reread your initial response Prosody should listen to a non-local ip.
So in the prosody doc i found the way to do it (as prosody only listen to local ip for components):

component_ports = { 5347, XXXX } -- Listen on 5347 as well as XXXX
component_interfaces = { "192.168.0.1", "::1", "127.0.0.1" } -- Listen only on these interfaces

Now everything is connected … Next step have this working on 2 regions at least

0 Likes

#18

@Jerry_Hu, I now will try the options with MUCs as it seems to be the official way to go. However I am still confused about the JVBs configuration.
So to connect each JVBs to a muc component configured in Prosody I need to add this in /etc/jitsi/config
org.jitsi.videobridge.xmpp.user.jvb2.HOSTNAME=xmpp-server-ip-address
org.jitsi.videobridge.xmpp.user.jvb2.DOMAIN=auth.jitmeet.example.com
org.jitsi.videobridge.xmpp.user.jvb2.USERNAME=jvb
org.jitsi.videobridge.xmpp.user.jvb2.PASSWORD=some_pass
org.jitsi.videobridge.xmpp.user.jvb2.MUC_JIDS=JvbRoom@internal.jitmeet.example.com
org.jitsi.videobridge.xmpp.user.jvb2.MUC=JvbRoom@internal.jitmeet.example.com
org.jitsi.videobridge.xmpp.user.jvb2.MUC_NICKNAME=jvb-2
org.jitsi.videobridge.xmpp.user.jvb2.DISABLE_CERTIFICATE_VERIFICATION=true
and comment everything else as there is no more external component JVB declared, right??
and repeat this in the config file for every shard (prosody/jicofo) I want this JVB to be connect to?

Also each prosody/jicofo (shards) has a different xmpp domain or not?

0 Likes

#19

@Jerry_Hu. I finally made some changes in my sip-communicator.properties for videobridge, but I am struggling to check if jvb is connecting to my internal MUC. If i just have the jvb configured to connect to the internal MUC only and add an internal MUC in prosody but no external components, I got no bridge available when staring a conference. Do you have some hints about how to manage JVB and this internal MUC and JVB? Also my JVB is trying to connect to prosody as an external component. how did you handle it?

Thanks

0 Likes