Configuring region based bridge strategy

Ok did that and restarted everything.

Screenshot from 2022-04-20 15-27-52
:sob:

us-east-2c just won’t die, I changed its jvb.conf, its STOPPED, lol.

videobridge {
    http-servers {
        public {
            port = 9090
        }
    }
    websockets {
        server-id = "3.129.56.174"
        enabled = true
        domain = "meetbit.live:443"
        tls = true
    }
    octo {
      enabled=true
      region="us-east"
      relay-id="3991d944-5c42-474d-8ca0-1119f81c2e09"
      bind-address=0.0.0.0
      public-address=3.129.56.174
    }
}

It’s the one on the JMS:

Jicofo 2022-04-20 19:22:44.728 INFO: [36] JvbDoctor.bridgeRemoved#102: Stopping health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d, version=2.1.665-g3a90ccdc, relayId=3991d944-5c42-474d-8ca0-1119f81c2e09, region=us-east, stress=0.00]

Isn’t that coming from config.js? What do you have there?

    // Logs that should go be passed through the 'log' event if a handler is defined for it
    // apiLogLevels: ['warn', 'log', 'error', 'info', 'debug'],

    // Information about the jitsi-meet instance we are connecting to, including
    // the user region as seen by the server.
    deploymentInfo: {
        shard: "shard1",
        region: "us-east",
        userRegion: '<!--# echo var = "user_aws_region" default=""-->'
    },


What is user_aws_region? Is it coming from there? You can open your browser js console and execute config there and see the value that os used in your page.

Yes, from nginx.conf, my mistake.

Changed my nginx.conf

##
        # GeoIP
        ##
        geoip_country /usr/share/GeoIP/GeoIP.dat;
        geoip_proxy_recursive on;
        geoip_proxy 0.0.0.0/0;

        proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
        #proxy_set_header GEOIP_COUNTRY_CODE3 $geoip_country_code3;
        #proxy_set_header GEOIP_COUNTRY_NAME $geoip_country_name;
        #proxy_set_header GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
        #proxy_set_header GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
        #proxy_set_header GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
        #proxy_set_header GEOIP_REGION $geoip_region;
        #proxy_set_header GEOIP_CITY $geoip_city;
        #proxy_set_header GEOIP_POSTAL_CODE $geoip_postal_code;
        #proxy_set_header GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
        #proxy_set_header GEOIP_LATITUDE $geoip_latitude;
        #proxy_set_header GEOIP_LONGITUDE $geoip_longitude;

        map $geoip_country_code $user_aws_region {
                default us-east;
                SG us-west;
                KR us-west;
                EU us-east;
                AF us-east;
                NA us-east;
                SA us-east;
                AN us-east;
                AS us-west;
                OC us-west;
                VI us-east;
                US us-east;
        }

I get this error in console when I leave the JVB us-east in JMS open:

Screenshot from 2022-04-20 15-51-02

After I close it

Jicofo 2022-04-20 19:51:31.247 INFO: [35] JvbDoctor.bridgeRemoved#102: Stopping health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d, version=2.1.665-g3a90ccdc, relayId=3991d944-5c42-474d-8ca0-1119f81c2e09, region=us-east, stress=0.00]

the call works but everyone is connected to us-east (no from), us-west was added

Jicofo 2022-04-20 19:44:11.257 INFO: [35] JvbDoctor.bridgeAdded#129: Scheduled health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/c78d51d5-d57f-4deb-b483-8093984d9476, version=2.1.634-gff8609ad, relayId=54.193.8.165:4096, region=us-west, stress=0.00]

but not seeing it picked up.

In summary, the initial issue is still there even though the regions have shorter names.

And you see us-west in config that is served to the client?

You have a config problem with websockets not connecting to that bridge.

hmm, port 9090 is not open on my JMS, I’ll try that and report back.

Please test 2 JVBs and make it work first, then add more JVB later. As @damencho said, it is messy now.

Ok so opened the port and websocket error disappeared, then tested with just one jvb us-east and one us-west, both were picked on a conference. Now added a us-south and turned it on:

Jicofo 2022-04-21 01:08:51.632 INFO: [35] JvbDoctor.bridgeAdded#129: Scheduled health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/b18e62e6-8d58-467d-bda9-860450e5ad00, version=2.1.634-gff8609ad, relayId=3.17.157.236:4096, region=us-south, stress=0.00]

started a new meeting with 4 people but us-south was not picked. Always us-west from us-east.

 bridge: {
    brewery-jid: "JvbBrewery@internal.auth.meetbit.live"
    selection-strategy: SplitBridgeSelectionStrategy
  }

All 4 browsers show this https://my.domain/config.js :

deploymentInfo: {
        shard: "shard1",
        region: "us-east",
        userRegion: 'us-east'
    },

I thought SplitBridgeSelectionStrategy was supposed to ignore region anyway and pick all jvb’s at random.

Now I turned off us-west so only us-east and us-south are active, started conference, only thing I see is connected to: us-east. At this point I now turn off us-east so only us-south is active, started conference and now see connected to us-south from us-east on all participants, but the only active bridge is us-south , I’m confused. It’s like us-east its a priority no matter what (but why, I never specifed that in octo and that jvb is off), unless its a naming mistake and connected to X from Y means something else, or SplitBridgeSelectionStrategy is bugged.

Now turned on us-west and off us-east so only us-west and us-south are active, still get connected to us-south from us-east on all participants.

Whats going on, where is connected to us-south from us-west? Why is us-east always present even though that jvb is off? Is connected to us-south from us-west actually happening but since region is us-east then from userRegion becomes from region? How can I check actual network traffic being transmitted by a bridge?

Cause your users are reporting userRegion us-east, as you have pointed:

That’s fine but I also see connected to us-south from us-east for example, so that config.js does get overwritten at least on connected to X, the from Y is always us-east, so my guess is that’s region not userRegion. Obviously I can’t rely on that to tell me if a certain bridge to brgide communcation is happening in octo.

Yep, I described it earlier this is region of the shard and region of the client, which are passed to jicofo which then make the decision based on its configuration. Monitor jicofo logs and see its selection (I think on startup it also prints what is configured).
Also if you have stats published from the bridges you will be seeing the number f participants reported from the bridge.

Ok so to enable stats for jvb’s, looking at this jitsi-videobridge/statistics.md at master · jitsi/jitsi-videobridge · GitHub

I added to the jvb.conf :

  apis {
      jvb-api {
            enabled = true
      }
      xmpp-client {
            presence-interval = 5 seconds
      }
    }

Is there anything else I need to do? I started a conference but don’t see the stats on the Jicofo logs.

<stats xmlns=' http://jitsi.org/protocol/colibri'>
	<stat value='value' name='key'/>
</stats>

Used the private http method, added to jvb.conf :

Added

apis {
        rest {
            enabled = true
        }
    }

and started a conference with 3 people, all show connected to us-west from us-east, now I curl http://localhost:8080/colibri/stats

{
	"inactive_endpoints": 0,
	"inactive_conferences": 0,
	"total_ice_succeeded_relayed": 0,
	"colibri2": true,
	"total_loss_degraded_participant_seconds": 0,
	"bit_rate_download": 3927.746,
	"local_active_endpoints": 3,
	"muc_clients_connected": 1,
	"total_participants": 3,
	"total_packets_received": 0,
	"rtt_aggregate": 69.38346399999999,
	"packet_rate_upload": 431,
	"p2p_conferences": 0,
	"total_aimd_bwe_expirations": 0,
	"total_loss_limited_participant_seconds": 0,
	"preemptive_kfr_suppressed": 0,
	"local_endpoints": 3,
	"octo_send_bitrate": 0.0,
	"total_dominant_speaker_changes": 0,
	"endpoints_with_spurious_remb": 0,
	"receive_only_endpoints": 1,
	"total_colibri_web_socket_messages_received": 127,
	"octo_receive_bitrate": 0.0,
	"version": "2.1.634-gff8609ad",
	"total_ice_succeeded": 3,
	"total_colibri_web_socket_messages_sent": 241,
	"total_bytes_sent_octo": 0,
	"total_data_channel_messages_received": 0,
	"total_conference_seconds": 0,
	"num_eps_oversending": 0,
	"bit_rate_upload": 3384.363,
	"total_conferences_completed": 0,
	"octo_conferences": 0,
	"num_eps_no_msg_transport_after_delay": 0,
	"region": "us-west",
	"endpoints_sending_video": 2,
	"packet_rate_download": 498,
	"muc_clients_configured": 1,
	"outgoing_loss": 0.0,
	"overall_loss": 1.8498649598579304E-4,
	"conference_sizes": [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"total_packets_sent_octo": 0,
	"total_layering_changes_received": 0,
	"total_relays": 0,
	"conferences_by_video_senders": [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"endpoints_with_high_outgoing_loss": 0,
	"stress_level": 0.01856,
	"jitter_aggregate": 3.926675377320721,
	"drain": false,
	"total_video_stream_milliseconds_received": 0,
	"total_ice_succeeded_tcp": 0,
	"octo_endpoints": 0,
	"current_timestamp": "2022-04-21 16:54:31.151",
	"total_packets_dropped_octo": 0,
	"num_relays_no_msg_transport_after_delay": 0,
	"conferences": 1,
	"participants": 3,
	"total_keyframes_received": 0,
	"average_participant_stress": 0.01,
	"largest_conference": 3,
	"total_packets_sent": 0,
	"endpoints": 3,
	"total_data_channel_messages_sent": 0,
	"incoming_loss": 8.536793580331228E-4,
	"total_bytes_received_octo": 0,
	"octo_send_packet_rate": 0,
	"conferences_by_audio_senders": [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"total_conferences_created": 1,
	"total_ice_failed": 0,
	"preemptive_kfr_sent": 0,
	"threads": 61,
	"videochannels": 3,
	"total_packets_received_octo": 0,
	"graceful_shutdown": false,
	"octo_receive_packet_rate": 0,
	"total_bytes_received": 0,
	"total_loss_controlled_participant_seconds": 0,
	"total_partially_failed_conferences": 0,
	"endpoints_sending_audio": 0,
	"dtls_failed_endpoints": 0,
	"total_bytes_sent": 0,
	"mucs_configured": 1,
	"total_failed_conferences": 0,
	"mucs_joined": 1,
	"relay_id": "54.193.8.165:4096"
}

"octo_send_bitrate": 0.0
"octo_receive_bitrate": 0.0
"octo_conferences": 0
"region": "us-west"
"octo_endpoints": 0
"octo_send_packet_rate": 0
"octo_receive_packet_rate": 0
"relay_id": "54.193.8.165:4096"

videobridge {
    http-servers {
        public {
            port = 9090
        }
    }
    websockets {
        server-id = "54.193.8.165"
        enabled = true
        domain = "meetbit.live:443"
        tls = true
    }
    octo {
      enabled=true
      region="us-west"
      relay-id="0a8e79df-3e4d-40ae-a0a4-bd1ec5e82313"
      bind-address=0.0.0.0
      public-address=54.193.8.165
    }
    apis {
        rest {
            enabled = true
        }
    }
}

Why is octo not working?

What does jicofo says in the logs?

Can you stick to one use case, as I’m lost about what you are doing and what you are asking at the moment.

Can you do the following:

  1. I have user A, B, C …
    user A has region: 1 and userRegion:2 in config.js
    user B …region… userRegion:… in config.js
    user C …region:… userRegion… in config.js

  2. I have two jvbs
    jvb1: region X1 in config
    jvb2: region X2 in config

  3. Restart jicofo, do a test case you want and attach the whole jicofo log here.

  4. Explain what do you see and what do you expect to see

What I’m testing right now is even simpler than that, just want to verify octo is working before testing what you just described.

As noted here jitsi-videobridge/octo.md at master · jitsi/jitsi-videobridge · GitHub,

The SplitBridgeSelectionStrategy can be used for testing. It tries to select a new bridge for each client, regardless of the regions. This is useful while testing, because you can verify that Octo works before setting up the region configuration for the clients.

So I start 3 people on a conference, I have 3 jvb’s with 3 different regions, I expect that when I curl http://jvb-X:8080/colibri/stats I see octo working and passing data because SplitBridgeSelectionStrategy picks up different bridges regardless of regions.

So I did
systemctl restart nginx
systemctl restart prosody
systemctl restart jicofo
restart jitsi-videobridge2 ( all 3 with different regions )

Jicofo Log:

icofo 2022-04-21 17:25:20.967 INFO: [34] BridgeSelector.addJvbAddress#94: Added new videobridge: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d, version=null, relayId=null, region=null, stress=0.00]
Jicofo 2022-04-21 17:25:20.968 INFO: [35] JvbDoctor.bridgeAdded#129: Scheduled health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d, version=2.1.665-g3a90ccdc, relayId=3991d944-5c42-474d-8ca0-1119f81c2e09, region=us-east, stress=0.00]
Jicofo 2022-04-21 17:25:21.036 INFO: [20] [type=bridge brewery=jvbbrewery] BaseBrewery.start#171: Joined the room.
Jicofo 2022-04-21 17:25:21.037 INFO: [20] [xmpp_connection=client] XmppProviderImpl.fireRegistrationStateChanged#314: Set replyTimeout=PT15S
Jicofo 2022-04-21 17:25:21.066 WARNING: [1] org.glassfish.jersey.server.wadl.WadlFeature.configure: JAXBContext implementation could not be found. WADL feature is disabled.
Jicofo 2022-04-21 17:25:21.141 WARNING: [1] org.glassfish.jersey.internal.inject.Providers.checkProviderRuntime: A provider org.jitsi.rest.Version registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.jitsi.rest.Version will be ignored.
Jicofo 2022-04-21 17:25:21.297 INFO: [1] org.eclipse.jetty.server.handler.ContextHandler.doStart: Started o.e.j.s.ServletContextHandler@479ac2cb{/,null,AVAILABLE}
Jicofo 2022-04-21 17:25:21.305 INFO: [1] org.eclipse.jetty.server.AbstractConnector.doStart: Started ServerConnector@6ee8dcd3{HTTP/1.1, (http/1.1)}{0.0.0.0:8888}
Jicofo 2022-04-21 17:25:21.305 INFO: [1] org.eclipse.jetty.server.Server.doStart: Started @1436ms
Jicofo 2022-04-21 17:25:23.053 INFO: [34] [type=bridge brewery=jvbbrewery] BaseBrewery.addInstance#341: Added brewery instance: jvbbrewery@internal.auth.meetbit.live/c78d51d5-d57f-4deb-b483-8093984d9476
Jicofo 2022-04-21 17:25:23.054 INFO: [34] BridgeSelector.addJvbAddress#94: Added new videobridge: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/c78d51d5-d57f-4deb-b483-8093984d9476, version=null, relayId=null, region=null, stress=0.00]
Jicofo 2022-04-21 17:25:23.054 INFO: [35] JvbDoctor.bridgeAdded#129: Scheduled health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/c78d51d5-d57f-4deb-b483-8093984d9476, version=2.1.634-gff8609ad, relayId=54.193.8.165:4096, region=us-west, stress=0.00]
Jicofo 2022-04-21 17:25:30.604 INFO: [34] [type=bridge brewery=jvbbrewery] BaseBrewery.removeInstance#353: Removed brewery instance: jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d
Jicofo 2022-04-21 17:25:30.604 INFO: [34] BridgeSelector.removeJvbAddress#111: Removing JVB: jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d
Jicofo 2022-04-21 17:25:30.605 INFO: [35] JvbDoctor.bridgeRemoved#102: Stopping health-check task for: Bridge[jid=jvbbrewery@internal.auth.meetbit.live/19e0d6ad-f760-4574-a85a-cd666c50d49d, version=2.1.665-g3a90ccdc, relayId=3991d944-5c42-474d-8ca0-1119f81c2e09, region=us-east, stress=0.00]
Jicofo 2022-04-21 17:28:48.521 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onMemberJoined#601: Member joined:f5da9d5e
Jicofo 2022-04-21 17:28:48.522 INFO: [98] DiscoveryUtil.discoverParticipantFeatures#159: Doing feature discovery for 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e
Jicofo 2022-04-21 17:28:48.840 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a]@258872221 with transport=null, sources={01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a=[audio=[], video=[311959051, 1202562860, 2071847333, 2262052453, 2836716249, 3191638178], groups=[FID[2262052453, 311959051], SIM[2262052453, 3191638178, 2071847333], FID[3191638178, 2836716249], FID[2071847333, 1202562860]]]}
Jicofo 2022-04-21 17:28:49.136 INFO: [98] DiscoveryUtil.discoverParticipantFeatures#199: Successfully discovered features for 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e in 614
Jicofo 2022-04-21 17:28:49.137 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#251: Allocating for f5da9d5e
Jicofo 2022-04-21 17:28:49.137 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#276: Selected 19e0d6ad-f760-4574-a85a-cd666c50d49d, session exists: true
Jicofo 2022-04-21 17:28:49.146 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b participant=f5da9d5e] ParticipantInviteRunnable.doInviteOrReinvite#415: Sending session-initiate to: 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e
Jicofo 2022-04-21 17:28:49.358 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAccept#928: Receive session-accept from 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e
Jicofo 2022-04-21 17:28:49.358 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAcceptInternal#1283: Accepted initial sources from f5da9d5e: {01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e=[audio=[], video=[3314289912, 3719586566, 748913254, 1734625233, 688551845, 2892838974], groups=[FID[3314289912, 3719586566], FID[748913254, 1734625233], FID[688551845, 2892838974], SIM[3314289912, 748913254, 688551845]]]}
Jicofo 2022-04-21 17:28:49.358 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e]@1970706817 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@2663ff24, sources={01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e=[audio=[], video=[3314289912, 3719586566, 748913254, 1734625233, 688551845, 2892838974], groups=[FID[3314289912, 3719586566], FID[748913254, 1734625233], FID[688551845, 2892838974], SIM[3314289912, 748913254, 688551845]]]}
Jicofo 2022-04-21 17:28:49.359 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b participant=f5da9d5e] Participant.sendQueuedRemoteSources#591: Sending a queued source-add, sources:{}
Jicofo 2022-04-21 17:28:49.554 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e]@1970706817 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@23cda8f8, sources=null

Colibri stats for JVB 1:

{
	"inactive_endpoints": 0,
	"inactive_conferences": 0,
	"total_ice_succeeded_relayed": 0,
	"colibri2": true,
	"total_loss_degraded_participant_seconds": 0,
	"bit_rate_download": 0.0,
	"local_active_endpoints": 0,
	"muc_clients_connected": 1,
	"total_participants": 0,
	"total_packets_received": 0,
	"rtt_aggregate": 0.0,
	"packet_rate_upload": 0,
	"p2p_conferences": 0,
	"total_aimd_bwe_expirations": 0,
	"total_loss_limited_participant_seconds": 0,
	"preemptive_kfr_suppressed": 0,
	"local_endpoints": 0,
	"octo_send_bitrate": 0.0,
	"total_dominant_speaker_changes": 0,
	"endpoints_with_spurious_remb": 0,
	"receive_only_endpoints": 0,
	"total_colibri_web_socket_messages_received": 0,
	"octo_receive_bitrate": 0.0,
	"version": "2.1.634-gff8609ad",
	"total_ice_succeeded": 0,
	"total_colibri_web_socket_messages_sent": 0,
	"total_bytes_sent_octo": 0,
	"total_data_channel_messages_received": 0,
	"total_conference_seconds": 0,
	"num_eps_oversending": 0,
	"bit_rate_upload": 0.0,
	"total_conferences_completed": 0,
	"octo_conferences": 0,
	"num_eps_no_msg_transport_after_delay": 0,
	"region": "us-west",
	"endpoints_sending_video": 0,
	"packet_rate_download": 0,
	"muc_clients_configured": 1,
	"outgoing_loss": 0.0,
	"overall_loss": 0.0,
	"conference_sizes": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"total_packets_sent_octo": 0,
	"total_layering_changes_received": 0,
	"total_relays": 0,
	"conferences_by_video_senders": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"endpoints_with_high_outgoing_loss": 0,
	"stress_level": 0.0,
	"jitter_aggregate": 0.0,
	"drain": false,
	"total_video_stream_milliseconds_received": 0,
	"total_ice_succeeded_tcp": 0,
	"octo_endpoints": 0,
	"current_timestamp": "2022-04-21 17:34:26.199",
	"total_packets_dropped_octo": 0,
	"num_relays_no_msg_transport_after_delay": 0,
	"conferences": 0,
	"participants": 0,
	"total_keyframes_received": 0,
	"average_participant_stress": 0.01,
	"largest_conference": 0,
	"total_packets_sent": 0,
	"endpoints": 0,
	"total_data_channel_messages_sent": 0,
	"incoming_loss": 0.0,
	"total_bytes_received_octo": 0,
	"octo_send_packet_rate": 0,
	"conferences_by_audio_senders": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"total_conferences_created": 0,
	"total_ice_failed": 0,
	"preemptive_kfr_sent": 0,
	"threads": 36,
	"videochannels": 0,
	"total_packets_received_octo": 0,
	"graceful_shutdown": false,
	"octo_receive_packet_rate": 0,
	"total_bytes_received": 0,
	"total_loss_controlled_participant_seconds": 0,
	"total_partially_failed_conferences": 0,
	"endpoints_sending_audio": 0,
	"dtls_failed_endpoints": 0,
	"total_bytes_sent": 0,
	"mucs_configured": 1,
	"total_failed_conferences": 0,
	"mucs_joined": 1,
	"relay_id": "54.193.8.165:4096"
}

Colibri stats for JVB 2:

{
	"inactive_endpoints": 0,
	"inactive_conferences": 0,
	"total_ice_succeeded_relayed": 0,
	"colibri2": true,
	"total_loss_degraded_participant_seconds": 0,
	"bit_rate_download": 0.0,
	"local_active_endpoints": 0,
	"muc_clients_connected": 1,
	"total_participants": 0,
	"total_packets_received": 0,
	"rtt_aggregate": 0.0,
	"packet_rate_upload": 0,
	"p2p_conferences": 0,
	"total_aimd_bwe_expirations": 0,
	"total_loss_limited_participant_seconds": 0,
	"preemptive_kfr_suppressed": 0,
	"local_endpoints": 0,
	"octo_send_bitrate": 0.0,
	"total_dominant_speaker_changes": 0,
	"endpoints_with_spurious_remb": 0,
	"receive_only_endpoints": 0,
	"total_colibri_web_socket_messages_received": 0,
	"octo_receive_bitrate": 0.0,
	"version": "2.1.634-gff8609ad",
	"total_ice_succeeded": 0,
	"total_colibri_web_socket_messages_sent": 0,
	"total_bytes_sent_octo": 0,
	"total_data_channel_messages_received": 0,
	"total_conference_seconds": 0,
	"num_eps_oversending": 0,
	"bit_rate_upload": 0.0,
	"total_conferences_completed": 0,
	"octo_conferences": 0,
	"num_eps_no_msg_transport_after_delay": 0,
	"region": "us-south",
	"endpoints_sending_video": 0,
	"packet_rate_download": 0,
	"muc_clients_configured": 1,
	"outgoing_loss": 0.0,
	"overall_loss": 0.0,
	"conference_sizes": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"total_packets_sent_octo": 0,
	"total_layering_changes_received": 0,
	"total_relays": 0,
	"conferences_by_video_senders": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"endpoints_with_high_outgoing_loss": 0,
	"stress_level": 0.0,
	"jitter_aggregate": 0.0,
	"drain": false,
	"total_video_stream_milliseconds_received": 0,
	"total_ice_succeeded_tcp": 0,
	"octo_endpoints": 0,
	"current_timestamp": "2022-04-21 17:35:50.076",
	"total_packets_dropped_octo": 0,
	"num_relays_no_msg_transport_after_delay": 0,
	"conferences": 0,
	"participants": 0,
	"total_keyframes_received": 0,
	"average_participant_stress": 0.01,
	"largest_conference": 0,
	"total_packets_sent": 0,
	"endpoints": 0,
	"total_data_channel_messages_sent": 0,
	"incoming_loss": 0.0,
	"total_bytes_received_octo": 0,
	"octo_send_packet_rate": 0,
	"conferences_by_audio_senders": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	"total_conferences_created": 0,
	"total_ice_failed": 0,
	"preemptive_kfr_sent": 0,
	"threads": 35,
	"videochannels": 0,
	"total_packets_received_octo": 0,
	"graceful_shutdown": false,
	"octo_receive_packet_rate": 0,
	"total_bytes_received": 0,
	"total_loss_controlled_participant_seconds": 0,
	"total_partially_failed_conferences": 0,
	"endpoints_sending_audio": 0,
	"dtls_failed_endpoints": 0,
	"total_bytes_sent": 0,
	"mucs_configured": 1,
	"total_failed_conferences": 0,
	"mucs_joined": 1,
	"relay_id": "3.17.157.236:4096"
}
jicofo {
  xmpp: {
    client: {
      client-proxy: focus.meetbit.live
    }
    trusted-domains: [ "recorder.meetbit.live" ]
  }
  bridge: {
    brewery-jid: "JvbBrewery@internal.auth.meetbit.live"
    selection-strategy: SplitBridgeSelectionStrategy
  }
  authentication: {
    enabled: true
    type: XMPP
    login-url: meetbit.live
    enable-auto-login: false
  }
}

Example JVB conf :

videobridge {
    http-servers {
        public {
            port = 9090
        }
    }
    websockets {
        server-id = "54.193.8.165"
        enabled = true
        domain = "meetbit.live:443"
        tls = true
    }
    octo {
      enabled=true
      region="us-west"
      relay-id="0a8e79df-3e4d-40ae-a0a4-bd1ec5e82313"
      bind-address=0.0.0.0
      public-address=54.193.8.165
    }
    apis {
        rest {
            enabled = true
        }
    }
}

Latest Jicofo logs:

Jicofo 2022-04-21 17:28:42.729 INFO: [84] DiscoveryUtil.discoverParticipantFeatures#199: Successfully discovered features for 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8 in 330
Jicofo 2022-04-21 17:28:42.729 INFO: [98] DiscoveryUtil.discoverParticipantFeatures#199: Successfully discovered features for 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a in 330
Jicofo 2022-04-21 17:28:42.747 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#251: Allocating for e9d14f1a
Jicofo 2022-04-21 17:28:42.748 INFO: [84] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#251: Allocating for df0357a8
Jicofo 2022-04-21 17:28:42.757 INFO: [84] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#276: Selected 19e0d6ad-f760-4574-a85a-cd666c50d49d, session exists: false
Jicofo 2022-04-21 17:28:42.763 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#276: Selected 19e0d6ad-f760-4574-a85a-cd666c50d49d, session exists: true
Jicofo 2022-04-21 17:28:43.353 INFO: [84] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b participant=df0357a8] ParticipantInviteRunnable.doInviteOrReinvite#415: Sending session-initiate to: 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8
Jicofo 2022-04-21 17:28:43.389 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b participant=e9d14f1a] ParticipantInviteRunnable.doInviteOrReinvite#415: Sending session-initiate to: 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a
Jicofo 2022-04-21 17:28:43.608 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAccept#928: Receive session-accept from 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8
Jicofo 2022-04-21 17:28:43.609 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAcceptInternal#1283: Accepted initial sources from df0357a8: {01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8=[audio=, video=, groups=]}
Jicofo 2022-04-21 17:28:43.609 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8]@660828229 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@74cb0b4, sources={01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8=[audio=, video=, groups=]}
Jicofo 2022-04-21 17:28:43.758 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/df0357a8]@660828229 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@4c2074b2, sources=null
Jicofo 2022-04-21 17:28:43.792 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAccept#928: Receive session-accept from 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a
Jicofo 2022-04-21 17:28:43.795 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAcceptInternal#1283: Accepted initial sources from e9d14f1a: {01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a=[audio=, video=[2262052453, 311959051, 3191638178, 2071847333, 2836716249, 1202562860], groups=[FID[2262052453, 311959051], SIM[2262052453, 3191638178, 2071847333], FID[3191638178, 2836716249], FID[2071847333, 1202562860]]]}
Jicofo 2022-04-21 17:28:43.795 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a]@258872221 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@5c8df93f, sources={01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a=[audio=, video=[2262052453, 311959051, 3191638178, 2071847333, 2836716249, 1202562860], groups=[FID[2262052453, 311959051], SIM[2262052453, 3191638178, 2071847333], FID[3191638178, 2836716249], FID[2071847333, 1202562860]]]}
Jicofo 2022-04-21 17:28:43.899 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a]@258872221 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@7fafd730, sources=null
Jicofo 2022-04-21 17:28:44.144 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a]@258872221 with transport=null, sources={}
Jicofo 2022-04-21 17:28:48.474 INFO: [98] ConferenceIqHandler.handleConferenceIq#63: Focus request for room: 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live
Jicofo 2022-04-21 17:28:48.521 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onMemberJoined#601: Member joined:f5da9d5e
Jicofo 2022-04-21 17:28:48.522 INFO: [98] DiscoveryUtil.discoverParticipantFeatures#159: Doing feature discovery for 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e
Jicofo 2022-04-21 17:28:48.840 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a]@258872221 with transport=null, sources={01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/e9d14f1a=[audio=, video=[311959051, 1202562860, 2071847333, 2262052453, 2836716249, 3191638178], groups=[FID[2262052453, 311959051], SIM[2262052453, 3191638178, 2071847333], FID[3191638178, 2836716249], FID[2071847333, 1202562860]]]}
Jicofo 2022-04-21 17:28:49.136 INFO: [98] DiscoveryUtil.discoverParticipantFeatures#199: Successfully discovered features for 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e in 614
Jicofo 2022-04-21 17:28:49.137 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.allocate#251: Allocating for f5da9d5e
Jicofo 2022-04-21 17:28:49.146 INFO: [98] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b participant=f5da9d5e] ParticipantInviteRunnable.doInviteOrReinvite#415: Sending session-initiate to: 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e
Jicofo 2022-04-21 17:28:49.358 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAccept#928: Receive session-accept from 01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e
Jicofo 2022-04-21 17:28:49.358 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] JitsiMeetConferenceImpl.onSessionAcceptInternal#1283: Accepted initial sources from f5da9d5e: {01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e=[audio=, video=[3314289912, 3719586566, 748913254, 1734625233, 688551845, 2892838974], groups=[FID[3314289912, 3719586566], FID[748913254, 1734625233], FID[688551845, 2892838974], SIM[3314289912, 748913254, 688551845]]]}
Jicofo 2022-04-21 17:28:49.358 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e]@1970706817 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@2663ff24, sources={01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e=[audio=, video=[3314289912, 3719586566, 748913254, 1734625233, 688551845, 2892838974], groups=[FID[3314289912, 3719586566], FID[748913254, 1734625233], FID[688551845, 2892838974], SIM[3314289912, 748913254, 688551845]]]}
Jicofo 2022-04-21 17:28:49.359 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b participant=f5da9d5e] Participant.sendQueuedRemoteSources#591: Sending a queued source-add, sources:{}
Jicofo 2022-04-21 17:28:49.554 INFO: [34] [room=01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live meeting_id=3a14162e-7404-4038-be30-0ce750ed9d0b] ColibriV2SessionManager.updateParticipant#432: Updating Participant[01ef9447-787e-4cb2-b941-e50b9a08865d@conference.meetbit.live/f5da9d5e]@1970706817 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@23cda8f8, sources=null

Expected to see octo active and sending data on JVB V1 and JVB V2 with SplitBridgeSelectionStrategy