Default jitsi installation gives error Bridge Channel send: no opened channel

Good-morning people of Jitsi,

First off all thank you for providing a open source solutions for video conferencing. I am trying to setup a server. This server will be used by my sons school. Who are all at home due to the corona virus. So it would be really amazing if you could help me!

I created a brand new Ubuntu(18.04 LTS) server azure. Follow the installation tutorial from https://jitsi.org/tutorial. So everything is running on a single server.

I added to following port mappings to the Azure firewall

80 TCP INBOUND ALLOWED
443 TCP INBOUND ALLOWED
10000-20000 UDP INBOUND ALLOWED

These are the rules from ufw

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
10000:20000/udp            ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
10000:20000/udp (v6)       ALLOW       Anywhere (v6)

The setup works fine with 2 participants(both using chrome)in the call but as soon as number 3 tries to enter the video connections drop and i get a error. The same if i try use one mobile app connection with a browser connection.

The error that i get in the browser log is: Bridge Channel send: no opened channel.

I have tried everything mentioned in the post here. https://community.jitsi.org/t/bridge-channel-send-no-opened-channel/18765/17

The browsers gives me the following log

2020-03-18T15:40:41.220Z [modules/xmpp/JingleSessionPC.js] addRemoteStream - OK, SDPs:  o {media: Array(3), raw: "v=0
↵o=- 8443171172730691639 2 IN IP4 127.0.0.1
↵s…trickle
↵a=sctpmap:5000 webrtc-datachannel 1024
↵", session: "v=0
↵o=- 8443171172730691639 2 IN IP4 127.0.0.1
↵s…c-53625295c4dc
↵a=group:BUNDLE audio video data
↵"} o {media: Array(3), raw: "v=0
↵o=- 8443171172730691639 3 IN IP4 127.0.0.1
↵s…trickle
↵a=sctpmap:5000 webrtc-datachannel 1024
↵", session: "v=0
↵o=- 8443171172730691639 3 IN IP4 127.0.0.1
↵s…c-53625295c4dc
↵a=group:BUNDLE audio video data
↵"}
16:40:41.221 Logger.js:154 2020-03-18T15:40:41.221Z [modules/xmpp/JingleSessionPC.js] <t.value>:  removal not necessary
16:40:41.222 Logger.js:154 2020-03-18T15:40:41.222Z [modules/xmpp/JingleSessionPC.js] <t.value>:  addition not necessary
16:40:41.374 Logger.js:154 2020-03-18T15:40:41.374Z [modules/statistics/RTPStatsCollector.js] <f.processAudioLevelReport>:  2176505446 not enough data
o @ Logger.js:154
f.processAudioLevelReport @ RTPStatsCollector.js:918
(anonymous) @ RTPStatsCollector.js:329
16:40:43.178 Logger.js:154 2020-03-18T15:40:43.178Z [modules/RTC/BridgeChannel.js] <e.value>:  Bridge Channel send: no opened channel.

I got the same situation (works for 2, breaks when 3rd participant enters the room) and the same errors:

jitsi modules/RTC/BridgeChannel.js] <e.value>:  Bridge Channel send: no opened channel.

I have used the official debian repository and installed jitsi-meet 1.0.4101-1 on a fresh Debian 10 (buster) amd64 VM on a public cloud.

I have tested UDP open ports with sudo nmap -sU jitsi.simevo.com (slow!):

Starting Nmap 7.70 ( https://nmap.org ) at 2020-03-19 08:36 CET
Nmap scan report for jitsi.simevo.com (80.211.234.253)
Host is up (0.024s latency).
Not shown: 991 closed ports
PORT      STATE         SERVICE
123/udp   open          ntp
135/udp   open|filtered msrpc
136/udp   open|filtered profile
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
139/udp   open|filtered netbios-ssn
389/udp   open|filtered ldap
445/udp   open|filtered microsoft-ds
10000/udp open|filtered ndmp

Nmap done: 1 IP address (1 host up) scanned in 1083.31 seconds

and TCP ports with nmap jitsi.simevo.com:

Starting Nmap 7.70 ( https://nmap.org ) at 2020-03-19 08:56 CET
Nmap scan report for jitsi.simevo.com (80.211.234.253)
Host is up (0.019s latency).
Not shown: 989 closed ports
PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   open     http
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
443/tcp  open     https
445/tcp  filtered microsoft-ds
4443/tcp open     pharos
5222/tcp open     xmpp-client
5269/tcp open     xmpp-server
5280/tcp open     xmpp-bosh
8888/tcp open     sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 1.61 seconds

Also as per Bridge Channel send: no opened channel cat /etc/jitsi/videobridge/sip-communicator.properties now returns:

org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.jitsi.simevo.com/.*
org.jitsi.videobridge.NAT_HARVESTER_LOCAL_ADDRESS=127.0.0.1
org.jitsi.videobridge.NAT_HARVESTER_PUBLIC_ADDRESS=80.211.234.253

Any idea ?

I got it working :partying_face:

You shouldn’t use 127.0.0.1 as local address but the address ifconfig shows

I added these lines to /etc/jitsi/videobridge/sip-communicator.properties

org.jitsi.videobridge.NAT_HARVESTER_LOCAL_ADDRESS=10.1.1.4
org.jitsi.videobridge.NAT_HARVESTER_PUBLIC_ADDRESS=<PUBLIC IP>
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=10.1.1.4
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<PUBLIC IP>

and rebooted the following services

sudo service jicofo restart
sudo service jitsi-videobridge restart
1 Like

for me, ipconfig reports the same IP address as the public address so I ended up with this:

cat /etc/jitsi/videobridge/sip-communicator.properties
org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.jitsi.simevo.com/.*
org.jitsi.videobridge.NAT_HARVESTER_LOCAL_ADDRESS=80.211.234.253
org.jitsi.videobridge.NAT_HARVESTER_PUBLIC_ADDRESS=80.211.234.253
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=80.211.234.253
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=80.211.234.253

which sounds silly; I restart the services with systemd as in:

systemctl restart jitsi-videobridge.service
systemctl restart jicofo.service

but still no luck, the chromium inspector console is full of:

2020-03-19T15:33:37.594Z [modules/RTC/BridgeChannel.js] <e.value>:  Bridge Channel send: no opened channel.

Following Bridge Channel send: no opened channel, I stopped the jitsi-videobridge.service, purged the log and restarted the service:

systemctl stop jitsi-videobridge.service 
rm /var/log/jitsi/jvb.log
systemctl start jitsi-videobridge.service

then restarted both test clients; the jvb.log contains a few notable messages:

  1. Error string:
JVB 2020-03-19 15:30:43.571 INFO: [73] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:53511/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:43.617 INFO: [73] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:57111/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:43.704 INFO: [88] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:44173/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:43.704 INFO: [73] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:44173/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
  1. error string:
JVB 2020-03-19 15:30:40.810 FINE: [60] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Responding to IQ (packetId dZDte-463) with: <iq to="focus@auth.jitsi.simevo.com/focus76847608141580" from="jitsi-videobridge.jitsi.simevo.com" id="dZDte-463" type="error"><error type="modify"><bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></bad-request><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Conference not found for ID: efb9f5346aa2bb26</text></error></iq>
JVB 2020-03-19 15:30:42.783 FINE: [62] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Responding to IQ (packetId dZDte-469) with: <iq to="focus@auth.jitsi.simevo.com/focus76847608141580" from="jitsi-videobridge.jitsi.simevo.com" id="dZDte-469" type="error"><error type="modify"><bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></bad-request><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Conference not found for ID: efb9f5346aa2bb26</text></error></iq>
JVB 2020-03-19 15:30:42.931 FINE: [64] org.jitsi.videobridge.xmpp.ComponentImpl.processIQ() (serving component 'JitsiVideobridge') Responding to IQ (packetId dZDte-474) with: <iq to="focus@auth.jitsi.simevo.com/focus76847608141580" from="jitsi-videobridge.jitsi.simevo.com" id="dZDte-474" type="error"><error type="modify"><bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></bad-request><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Conference not found for ID: efb9f5346aa2bb26</text></error></iq>
  1. failing string:
JVB 2020-03-19 15:30:43.571 INFO: [73] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:53511/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:43.617 INFO: [73] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:57111/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:43.704 INFO: [88] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:44173/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:43.704 INFO: [73] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:44173/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)
JVB 2020-03-19 15:30:50.030 INFO: [101] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:55408/udp/prflx (stream.RTP), failing.
JVB 2020-03-19 15:30:50.091 INFO: [101] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:59659/udp/prflx (stream.RTP), failing.
JVB 2020-03-19 15:30:50.233 INFO: [101] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:55408/udp/prflx (stream.RTP), failing.
JVB 2020-03-19 15:30:50.274 INFO: [101] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:59659/udp/prflx (stream.RTP), failing.
JVB 2020-03-19 15:30:50.417 INFO: [101] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:55408/udp/prflx (stream.RTP), failing.
JVB 2020-03-19 15:30:50.458 INFO: [101] org.ice4j.ice.ConnectivityCheckClient.log() timeout for pair: 80.211.234.253:10000/udp/host -> 94.36.96.240:59659/udp/prflx (stream.RTP), failing.
  1. Exception string:
JVB 2020-03-19 15:30:34.962 WARNING: [19] org.jitsi.videobridge.IceUdpTransportManager.log() Failed to initialize TCP harvester on port 443: java.net.BindException: Address already in use. Retrying on port 4443.
JVB 2020-03-19 15:30:34.963 INFO: [19] org.ice4j.ice.harvest.AbstractTcpListener.addLocalAddresses() Not using link-local address /fe80:0:0:0:250:56ff:fe82:918%eth0 for TCP candidates.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.ice4j.socket.jdk8.DelegatingServerSocketChannel (file:/usr/share/jitsi-videobridge/lib/ice4j-2.0.0-20190607.184546-36.jar) to method sun.nio.ch.SelChImpl.translateInterestOps(int)
WARNING: Please consider reporting this to the maintainers of org.ice4j.socket.jdk8.DelegatingServerSocketChannel
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
...
JVB 2020-03-19 15:30:43.654 SEVERE: [70] util.UtilActivator.uncaughtException().122 An uncaught exception occurred in thread=Thread[IceUdpTransportManager connect thread,5,main] and message was: java.net.UnknownHostException: jitsi: jitsi: Name or service not known
java.lang.RuntimeException: java.net.UnknownHostException: jitsi: jitsi: Name or service not known
	at javax.media.rtp.rtcp.SourceDescription.generateCNAME(SourceDescription.java:40)
	at net.sf.fmj.media.rtp.RTPSessionMgr.initialize(RTPSessionMgr.java:1430)
	at org.jitsi.impl.neomedia.rtp.translator.RTPTranslatorImpl.initialize(RTPTranslatorImpl.java:913)
	at org.jitsi.impl.neomedia.rtp.StreamRTPManager.initialize(StreamRTPManager.java:226)
	at org.jitsi.impl.neomedia.MediaStreamImpl.getRTPManager(MediaStreamImpl.java:2081)
	at org.jitsi.impl.neomedia.MediaStreamImpl.createSendStreams(MediaStreamImpl.java:966)
	at org.jitsi.impl.neomedia.MediaStreamImpl.startSendStreams(MediaStreamImpl.java:3175)
	at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:3064)
	at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:3027)
	at org.jitsi.videobridge.RtpChannel.maybeStartStream(RtpChannel.java:1121)
	at org.jitsi.videobridge.Channel.transportConnected(Channel.java:947)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.jitsi.videobridge.IceUdpTransportManager.onIceConnected(IceUdpTransportManager.java:1960)
	at org.jitsi.videobridge.IceUdpTransportManager.lambda$startConnectivityEstablishment$5(IceUdpTransportManager.java:2175)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.UnknownHostException: jitsi: jitsi: Name or service not known
	at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1642)
	at javax.media.rtp.rtcp.SourceDescription.generateCNAME(SourceDescription.java:37)
	... 14 more
Caused by: java.net.UnknownHostException: jitsi: Name or service not known
	at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
	at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:929)
	at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1515)
	at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848)
	at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505)
	at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1637)
	... 15 more
...
JVB 2020-03-19 15:30:58.112 SEVERE: [125] util.UtilActivator.uncaughtException().122 An uncaught exception occurred in thread=Thread[IceUdpTransportManager connect thread,5,main] and message was: null
java.lang.NullPointerException
	at net.sf.fmj.media.rtp.RTPSessionMgr.getAllParticipants(RTPSessionMgr.java:1144)
	at net.sf.fmj.media.rtp.RTPSessionMgr.getReceiveStreams(RTPSessionMgr.java:1323)
	at org.jitsi.impl.neomedia.rtp.translator.RTPTranslatorImpl.getReceiveStreams(RTPTranslatorImpl.java:762)
	at org.jitsi.impl.neomedia.rtp.StreamRTPManager.getReceiveStreams(StreamRTPManager.java:209)
	at org.jitsi.impl.neomedia.MediaStreamImpl.getReceiveStreams(MediaStreamImpl.java:1904)
	at org.jitsi.impl.neomedia.MediaStreamImpl.startReceiveStreams(MediaStreamImpl.java:3138)
	at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:3100)
	at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:3027)
	at org.jitsi.videobridge.RtpChannel.maybeStartStream(RtpChannel.java:1121)
	at org.jitsi.videobridge.Channel.transportConnected(Channel.java:947)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.jitsi.videobridge.IceUdpTransportManager.onIceConnected(IceUdpTransportManager.java:1960)
	at org.jitsi.videobridge.IceUdpTransportManager.lambda$startConnectivityEstablishment$5(IceUdpTransportManager.java:2175)
	at java.base/java.lang.Thread.run(Thread.java:834)

Not sure which one is relevant.

Can you try this: https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md#add-the-domain-name-to-etchosts
And restart jvb.

1 Like

@damencho many thanks for the tip; actually I had followed that guide, interpreting a bit, so I had this in /etc/hosts:

127.0.0.1       localhost
127.0.1.1       debian9

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

80.211.234.253 jitsi.simevo.com

(i.e. FQDN associated with public IP address), now I commented out the last line and changed the first one to:

127.0.0.1       localhost jitsi.simevo.com
...

(i.e. FQDN associated to 127.0.0.1), then systemctl restart jitsi-videobridge.service; result: 2020-03-19T16:10:28.642Z [modules/RTC/BridgeChannel.js] <e.value>: Bridge Channel send: no opened channel.

while we’re at it, I disabled the IPv6 stuff and systemctl restart jitsi-videobridge.service, result: 2020-03-19T16:12:30.642Z [modules/RTC/BridgeChannel.js] <e.value>: Bridge Channel send: no opened channel

Anyway the tip about checking /etc/hosts made me attentive to this error in /var/log/jitsi/jvb.log (looking for Exception string):

JVB 2020-03-19 15:30:43.654 SEVERE: [70] util.UtilActivator.uncaughtException().122 An uncaught exception occurred in thread=Thread[IceUdpTransportManager connect thread,5,main] and message was: java.net.UnknownHostException: jitsi: jitsi: Name or service not known
java.lang.RuntimeException: java.net.UnknownHostException: jitsi: jitsi: Name or service not known

so I double checked /etc/hostname and that contained just:

jitsi

and not the FQDN; so I put there the FQDN, restarted the VPS machine just to make sure it’s picked up, and magic ! :fireworks: the error is gone ! and videoconferences with 2+ participants work !

IMHO this should be made clear in the docs, see: https://github.com/jitsi/jitsi-meet/issues/5260

thanks for all the tips !

1 Like

I omitted to note that i added the FQDN to the host file. Sorry about that :thinking:

Thanks mate, you made my day!!!

So. I’m going down this same road. However, because the guy who controls the purse strings says we aren’t able to budget for two, we’re running the Jitsi Meet stuff on the same system as something we’ve already got running and are invested in. Right now, two different URLs point to the same machine: One for our long-running stuff and now, newly, the Jitsi Meet URL.

My question then is:

$ sudo hostname {old,stable FQDN | new Jitsi FQDN}

(and ditto for the contents of /etc/hosts)

I am not using any hostname for now, can it be public ip? and to I have to add the localhost to that ip also? as I get the same bridge error problem

also I tried using my laptop a and laptop b same wifi network, it can take on video and voice, but when other participant out of my network join, it fails for all video and sound, for all participants, including my 2 laptop and error came up in console :

Logger.js:154 2020-04-18T16:20:54.933Z [modules/RTC/BridgeChannel.js] <l._send>:  Bridge Channel send: no opened channel.
s @ Logger.js:154
Logger.js:154 2020-04-18T16:20:54.935Z [JitsiConference.js] <h.sendMessage>:  Failed to send E2E ping request or response. undefined

jitsi is installed in aws also with inbound set to udp 10000 and 4443 to any already… :frowning: