No audio/video for everyone in conference (only his own)

I’ve seen this problem here already but since nothing worked there for me, I’m reopening. Also this case seems a little bit unique and I spend days to make my jitsi instance functional (failed so far).
I try to put jitsi on a little debian server (Old celeron, 3 gigs ram, debian buster x86). Issues I managed to solve so far:

  1. Memory problem (set up 2 gigs limit for jicofo & jvb) - works!

  2. Architecture problem with libjnisctp.so (found 32bit version, replaced in jar file)

  3. Many of network problems from setting up right hosts entries to removing and re-installing the whole thing again! tried running on hostname domain com also on jitsi domain com, second option has best results so far

  4. Here I’m totally stuck. Jitsi “works”, meaning no (major) errors are seen in jicofo/jvb/prosody logs, I can load up jitsi and create a room and there the pain starts. I have two laptops and so far testing on them as two participants. Jitsi is installed on the remote site. I have forwarded ports 80/443 (running apache), 4443 (to be sure), UDP 10000-20000. However any participant which connects sees all the users, but can see only his video (maybe audio). I can get no data from anyone else, so everyone has black camera and can’t be heard. Also the conference timer always begins with 1 hour which is confusing but that is not the real pain.

First real obvious error I can read from the console:

2020-04-21T09:22:36.130Z [modules/RTC/BridgeChannel.js] <_send>:  Bridge Channel send: no opened channel. Logger.js:154:22
2020-04-21T09:22:36.130Z [JitsiConference.js] <se.prototype._init/this.e2eping<>:  Failed to send E2E ping request or response. undefined Logger.js:154:22

tried setting in /etc/jitsi/videobridge/sip-communicator.properties
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=Local_Adress
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=Public_Adress
or
org.jitsi.videobridge.NAT_HARVESTER_LOCAL_ADDRESS=Local_Adress
org.jitsi.videobridge.NAT_HARVESTER_PUBLIC_ADDRESS=Public_Adress

also from time to time (as troubleshooting went, maybe also at the begining this error):

ICE failed, add a STUN server and see about:webrtc for more details

This is error number

  1. on my list, because imho it told me the most from everything else I tried to get rid of that first - I installed coturn server. Here I got another problem because turn/stun needs to be configured twice - once in prosody and sencondly in jitsi meet. I have not found any simple uncomplicated way for all of them to talk, because in prosody I need to setup authentication with secret and in meet I need to give ready credentials which are two auth methods conflicting with each other in coturn. I don’t know how to enter username/password in prosody or secret formula into meet config which is very good so at the end I go with no auth. I’m also forwarding ports for coturn 5349 + some UDPs range for connections. Either way, even when I see some successes in coturn log / webrtc log, the data in jitsi are always same - blank…

Sorry for such a long text but I’ve invested a long long time without any success so far. Thanks for any hints.

jvb.log
https://pastebin.com/9bjfM18z

jicofo.log
MqFErgtH

prosody.err
mN0GfEaZ

prosody.log
nn2hGpy0

webrtc log
p4bjxfAy

Use this and make sure your udp port forwarding works and there is no firewall blocking it.

Well that’s what I’ve been using all the time, there should be no firewall in the way. Nmap shows this

PORT STATE SERVICE
10000/udp open|filtered ndmp

If I can verify better way, let me know.

In about:webrtc you can check remote descriptions whether you see bridges external ip address.

What exactly am I looking for ? On one laptop there is the log I pasted above, on one I get only this now (but I think it did not use to be).

insert ‘ice’ (registry) succeeded: ice
insert ‘ice.pref’ (registry) succeeded: ice.pref
insert ‘ice.pref.type’ (registry) succeeded: ice.pref.type
insert ‘ice.pref.type.srv_rflx’ (UCHAR) succeeded: 0x64
insert ‘ice.pref.type.peer_rflx’ (UCHAR) succeeded: 0x6e
insert ‘ice.pref.type.host’ (UCHAR) succeeded: 0x7e
insert ‘ice.pref.type.relayed’ (UCHAR) succeeded: 0x05
insert ‘ice.pref.type.srv_rflx_tcp’ (UCHAR) succeeded: 0x63
insert ‘ice.pref.type.peer_rflx_tcp’ (UCHAR) succeeded: 0x6d
insert ‘ice.pref.type.host_tcp’ (UCHAR) succeeded: 0x7d
insert ‘ice.pref.type.relayed_tcp’ (UCHAR) succeeded: 0x00
insert ‘stun’ (registry) succeeded: stun
insert ‘stun.client’ (registry) succeeded: stun.client
insert ‘stun.client.maximum_transmits’ (UINT4) succeeded: 7
insert ‘ice.trickle_grace_period’ (UINT4) succeeded: 5000
insert ‘ice.tcp’ (registry) succeeded: ice.tcp
insert ‘ice.tcp.so_sock_count’ (INT4) succeeded: 0
insert ‘ice.tcp.listen_backlog’ (INT4) succeeded: 10
insert ‘ice.tcp.disable’ (char) succeeded: \000
ICE(PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test)): relay/proxy only option results in ICE TCP being disabled
ICE(PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test)): couldn’t create any valid candidates
ICE(PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test)): peer (PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test):default) has no stream matching stream PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test) transport-id=transport_0 - 2d3bcf10:75f789d54261450741a745333fb36d4c
ICE(PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test)): local addresses already set, no work to do
ICE(PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test)): relay/proxy only option results in ICE TCP being disabled
ICE(PC:1587476769574882 (id=30064771075 url=https://jitsi.cv-brno.cz/test)): couldn’t create any valid candidates
+++++++ END ++++++++

I just tested it and it seems to work for me. You have an error in config.js where you have specified a turnserver, the turnserver should be coming from prosody as there are credentials that needs to be set.

I am having the same issue,
quick installation
just for a LAN, without domain; just the URL to connect, just for the LAN users (even without internet access, but now they can access to internet)
I have made the quick install, and put my local address: 192.168.0.11
I have created at: /etc/ssl both: 192.168.0.11.crt and 192.168.0.11.key

When I connect from the devices of the network, it only shows my own video, not the other ones. I mean, clients only see thereselfves. The other ones appears as if the had they camera and micro set off (but they hadn´t)

Installation is on a ubuntu client (18) that I have downloaded this morning
I also tried on an ubuntu server (18)

The chat and createRoom works perfectly between all the clients connected

the ufw has been disabled, they are on the same LAN, just conected together with a switch (a router with wifi and eth, but just only a router to allow them access to internet, I have try with just a switch (maybe the same but just for case)

OK, that might explain the turn server auth method conflict, however, why are the turnservers even specified in config.js by default? All I’ve done is that I just used my own. Before that there were some jitsi / google ones and in prosody there was turnserver which did not even exist by that time (probably counting that I would have installed turn with jitsi at first place which I wouldn’t). So just delete all turns in config.js and let them specified in prosody with secret auth ? Am I correct ?

OK, I tried it. Have commented stun/turn in config.js and inserted them into prosody conf with secret auth. It’s still not working, I believe we’re going somewhere in the circle. Although in the webrtc there are some 401 turn errors and so, it looks healthier / more similar to the real jitsi log when a successfull conference is established. Take a look.

https://pastebin.com/GzvxrkAR

ok, finally I kicked its butt! I was going through logs which looked almost perfect, could not find anything wrong. Today I found 2 suspicious things, not in logs but in the router’s settings. It was set to serve its clients (therefore jitsi server) as IPv4 only. I switched this to Dual-Stack, restarted the services and the picture in the conference in both members started working with the mic echo too. I know that ppl were describing issues with jitsi when they disabled the IPv6 on the server, I tried it too with no good or bad result because it was not working for me anyway. I also read that it does not matter, that the services are listening on the IPv4 for good anyway, well for no reason! Because obviously without IPv6 it just won’t work. And the issue does not have to even be on the server at all. But that was not all. When I simply exited the conference with one client, I could not reconnect it back with working audio/vid. Then I realized that I use Cookie AutoDelete which wipes off any cookies of the pages I just left, same with firefox Privacy settings, so I added my jitsi address to the exception list on both places and voilá, I can even leave and enter back with everything working. Anyway how does the official server handle this successfully even WITHOUT these exceptions in the list, I would be kind of curious to know. Well what a hard piece of work. I gotta continue testing with people from other locations / not from one network, I think other issues may appear but I hope not this kind of stubborn-donkey like as this.

P.S. I also figured out the time issue.

Well, the joy was premature as I see a little bit. Even with the cookies in the exception list the conference may just simply break back to the one participant video state after reconnecting. The conference may restart itself after a moment (You have been disconnected… Reconnecting) back to working state but this is really something I’ve not seen on the official server where everything works (except speed as the servers are hosted far away) well.

GREAT! good invest!
I will try.
Where you enable the IPv6? at the router or just at the server?
because I have just a switch for my LAN…

Well I had IPv6 enabled on the server all the time. As I said, I’ve read that jitsi may break without it. However my router did not have IPv6 support on for the LAN. You do not have to be directly connected to the IPv6 internet, cause your provider is supposed to be handling it to your dmarc. But your subnet with the server needs to handle it, that’s how I understand it.

I’m afraid you don’t do much just with the switch, you need to have access to the device which controls your subnet - router, gateway… whatever. If you’re connected directly to the provider’s one without the access, there is nothing easier than replacing the switch with your own router, if you need the server to be accessible from your local lan only…

But also remember that your issue may be different. Common solutions for my problem did not work, I had everything setup well - at least on the server. This time, it was IPv6 on my router, any time any place it can be something different, this is very specific, network to network, server to server and jitsi proved to be hell of a piece of setup demanding app. I should call it good luck or God’s mercy that I found out what was wrong at the end. It took me days…

Hi again,

thank you very much for your answer. I am still dealing with it.
As you say I have put my own switch. Tomorrow I will have a switch in which I can sniffer the network.

I will review this, and someone suggest me to check the newtwork configuration on the virtual machine (I have the server on a virtual machine (VMWARE), but I have put my network connection as bridge…)

I will tell you more after the sniffer (I hope so)

Hi @damencho @saghul @emrah

Same error, but I am able to join the conference with two mobile phone browser or nearby phone on same network.

Issue:- No audio or video ,When joining through two laptops or phone, when device connected through different network
browser type: Google Chrome,

browser console error Logs :- WebSocket connection to ‘wss://jitcore.connectlane.co.in/colibri-ws/10.244.2.189/fc3b6fefeec33c6/934b79cd?pwd=3ev7fbclqsmvo2k9vhjauqaou8’ failed: Error during WebSocket handshake: Unexpected response code: 403

Second error log when 2nd person left the meeting:-
2021-01-03T11:37:31.930Z [conference.js] <ee._onConferenceFailed>: CONFERENCE FAILED: conference.focusLeft

Is this a local domain? I couldn’t connect it

sorry, connected now.

Could you paste your Nginx site config?

hi @emrah

@sunilkumarjena21 and me deployed jitsi on Kubernetes which is running on AKS .
Currently we deplyed Nginx ingress controller ( 80,443) with Azure LB and Cert-manager on kubernetes to expose jitsi web.

If you are asking Jitsi web site.conf ( which is basically meet.conf by default ) we using standard one no any custom changes we made .

Regards,
Vikrant

According to the log, the client can’t establish a websocket connection through Nginx. It’s tring to connect to the JVB’s TCP/9090 which is on the IP 10.244.2.189 through Nginx.

          wss to 443         TCP/9090
client  ------------> nginx ----------> JVB (10.244.2.189)

I know that what you want to make things clearer for beginners, but I can’t resist to a bit of nitpicking… wss (websocket) is a TCP protocol. And JVB is listening on port 9090 for the websocket (wss) protocol.
So while traditionally the browser is talking to a server using the HTTP (tcp) protocol, in this case it is talking with wss to the server (nginx), in this case being a websocket proxy than a pure “web” server, to forward to JVB. BTW, happy new year.

1 Like