[Solved] OCTO Minor Issue [Regular Installation]

Hi, I have a few questions around OCTO. I request the experts to help me with this

I did a regular jitsi installation, as seen in the image below, my

Machine 1 contains the four components and a Public IP which is NAT’ed to the Private IP
Machine 2-5 contains only jvb2 and a Private IP

What is happening is, when I connect to my public instance, all the meeting participants for that particular meeting are landed in a single JVB

The next meeting that I create gets created on some other JVB and all the participants for that meeting get placed on the same JVB

What I am expecting is, the participants in the meeting should be placed on different JVB’s. This will allow the meeting participants to cross the 100+ mark

How can I configure jitsi to place/ loadbalance the participants on different jvb’s ?

From the help I got in the community, apparently, every JVB needs a PUBLIC IP. Is this true ?

Any help on this is highly appreciated.

Yes, how will clients reach them? Another option is to use different ports and your nat to keep track of mapping between port and internal address.

Thank you for the quick reply @damencho

So what is happening is, in my dev environment, OCTO works just as expected ( Participants are placed on different JVB’s )

But in my Public IP machine, where I am configuring the same thing, the meetings are scheduled on different jvb’s and not the participants.

Do I need to do anything else ?

As you mentioned → Yes, how will clients reach them? >> Correct me if I am wrong, arent they already connecting ? When the meetings are scheduled on different JVB’s, the clients are connecting right ?

Sorry for the questions, need to setup OCTO

So when jicofo open new channel in a jvb and in the response jvb says to jicofo hey for this channel send traffic on this public address and on this port, then jicofo sends a message over the signaling channel to the client saying: hey client with the browser now you can start sending your media data to this IP and this port (the values jicofo got from the jvb).

Which selection strategy do you use?
RegionBasedBridgeSelectionStrategy?

Hi @damencho

The selection strategy is SplitBasedBridgeSelectionStrategy

Isn’t the name SplitBridgeSelectionStrategy or I am missing something …

1 Like

@damencho

DAMN, that was such a small issue.

I corrected the same and that resolved the issue for me. I can see that the participants are placed on different different JVB’s

As of now, still, the stack remains the same with one Public IP for the JMS stack and private ( lan ) IP for the 2-5 machines

Participants successfully join the meeting and are placed on different JVB’s

Just a small issue, that will be the last one

  1. Participants placed on different JVB’s cannot see/ hear participants from different JVB’s

Example,

Participant 1 from JVB1 cannot hear or see what Participant 2, who is placed on JVB2

How can I resolve this issue ?

So you have a single public IP and every jvb is using a different port? And you had set up the port forwarding correctly for every jvb and its corresponding port?

@damencho

  1. Single public IP - Just for machine 1, I have NAT’ed it

  2. Every JVB is using different port >>

Do you mean this setting ?

org.jitsi.videobridge.octo.BIND_PORT=4096

  1. And you had set up the port forwarding correctly for every jvb and its corresponding port? >> I am sorry I didn’t this.

If the machines 2, 3, 4 and 5 contain only jvb2 installations, the ports need to be different ?

Yes, the clients need to be able to directly access jvb, if you are using same public address this is the only solution that I see.

No. There is a property for the single port the bridge uses, by default it is 10000. Port 4096 should be accessible between bridges for octo to work, should not be publicly accessible

@damencho

Where do I find the setting to change the 10000 port in regular vanilla installation ?

Inside the bridge’s sip-communicator.properties, set the port to use as follows:

org.jitsi.videobridge.SINGLE_PORT_HARVESTER_PORT=10001

The default port used is 10000, but with the property above, you can specify a different port for each bridge.

1 Like

And make sure you do the port-forwarding from the public address to the correct internal IP address for every port.

1 Like

@damencho @Freddie

This is my Network Setup

After Correctly portmapping the Public IP to the different JVB ports of every machine, still I see that participants cannot see video of the other participant from other JVB

The participants are getting placed on different JVB’s but unable to see/ hear others.

What do I do next ?

How do you set

org.jitsi.videobridge.octo.BIND_ADDRESS

and

org.jitsi.videobridge.octo.PUBLIC_ADDRESS

@emrah - in my /etc/jitsi/videobridge/sip-communicator.properties

I have this

org.jitsi.videobridge.octo.BIND_ADDRESS=0.0.0.0
org.jitsi.videobridge.octo.PUBLIC_ADDRESS=172.17.2.4

172.17.2.4 is the machine LAN IP ( Not Public )

Are you sure org.jitsi.videobridge.octo.PUBLIC_ADDRESS set correctly for each JVB? It should be the LAN IP which is accessable from the other JVBs. I cannot reproduce the same error, it works with a very similar scenario in my case.

@emrah - Yes, I have set the LAN IP

JVB 1 ( Main JMS Stack )

org.jitsi.videobridge.octo.BIND_ADDRESS=0.0.0.0
org.jitsi.videobridge.octo.PUBLIC_ADDRESS=172.17.2.3
org.jitsi.videobridge.octo.BIND_PORT=4096
org.jitsi.videobridge.REGION=Region1

JVB 2

org.jitsi.videobridge.octo.BIND_ADDRESS=0.0.0.0
org.jitsi.videobridge.octo.PUBLIC_ADDRESS=172.17.2.4
org.jitsi.videobridge.octo.BIND_PORT=4096
org.jitsi.videobridge.REGION=Region2

JVB 3

org.jitsi.videobridge.octo.BIND_ADDRESS=0.0.0.0
org.jitsi.videobridge.octo.PUBLIC_ADDRESS=172.17.2.5
org.jitsi.videobridge.octo.BIND_PORT=4096
org.jitsi.videobridge.REGION=Region3

JVB 4

org.jitsi.videobridge.octo.BIND_ADDRESS=0.0.0.0
org.jitsi.videobridge.octo.PUBLIC_ADDRESS=172.17.2.6
org.jitsi.videobridge.octo.BIND_PORT=4096
org.jitsi.videobridge.REGION=Region4

JVB 5

org.jitsi.videobridge.octo.BIND_ADDRESS=0.0.0.0
org.jitsi.videobridge.octo.PUBLIC_ADDRESS=172.17.2.7
org.jitsi.videobridge.octo.BIND_PORT=4096
org.jitsi.videobridge.REGION=Region5

All the machines (vms) are in the same data center

I can reproduce the same problem when I broke the colilbri websocket config. So check your websocket config for JVBs

@damencho

Considering my architecture, are these settings needed ?

Advanced configuration

If the installation is on a machine behind NAT jitsi-videobridge should configure itself automatically on boot. If three way calls do not work, further configuration of jitsi-videobridge is needed in order for it to be accessible from outside.

Provided that all required ports are routed (forwarded) to the machine that it runs on. By default these ports are (TCP/443 or TCP/4443 and UDP/10000).

The following extra lines need to be added to the file /etc/jitsi/videobridge/sip-communicator.properties :

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>