[jitsi-users] Docker & Jitsi anyone? No audio nor video :-(


#1

Hello fellow Jitsers

I'm trying to get jitsi running inside a docker container. As my I'm
going a bit crazy with this and my head is about to explode, I would
appreciate if you would be kind enough to help your eyeballs see if
I'm missing something...

I've had a look at various existing repos, but can't use them as we
use a special BGP Daemon in our containers which basically binds an IP
address to the loopback interface in our container. The effect of this
is that each of our containers get their own IP address, much like so:

    root@77091e43927d:/etc# ip address

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state
UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet 185.63.140.103/32 scope global lo
           valid_lft forever preferred_lft forever
        inet 194.0.210.102/32 scope global lo
           valid_lft forever preferred_lft forever

    450: eth0@if451: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UP group default
        link/ether 02:42:ac:11:00:0f brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 172.17.0.15/16 scope global eth0
            valid_lft forever preferred_lft forever

So, I ended up having to work out our own container image.

I managed to get jitsi "working" but when we try to start a conference
or a P2P call, we have no audio or video. Seems ICE is failing
somehow.

My sip-communicator.properties looks like this:

    org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.jitsi.simwood.com/.*
    org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
    org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
    org.jitsi.videobridge.STUN_MAPPING_HARVESTER_ADDRESSES=stun.l.google.com:19302
    org.jitsi.videobridge.NAT_HARVESTER_PUBLIC_ADDRESS=185.63.140.103
    org.jitsi.videobridge.TCP_HARVESTER_SSLTCP=false

Somehow, we noticed that some services insist on binding to the
container IP on eth0, when they should be binding on either
185.63.140.103 or 0.0.0.0...

    tcp 0 0 172.17.0.15:4443 0.0.0.0:*
LISTEN -
    udp 0 0 172.17.0.15:10000 0.0.0.0:*

···

-

Here's some of the errors I see in the logs when starting our jitsi container.

    ==> /var/log/jitsi/jicofo.log <==

    Jicofo 2018-03-02 10:21:32.946 SEVERE: [62]
org.jivesoftware.smack.AbstractXMPPConnection.run() Exception in async
packet listener
    java.lang.NullPointerException
    at java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1106)
    at java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097)
    at net.java.sip.communicator.impl.protocol.jabber.extensions.caps.EntityCapsManager.removeUserCapsNode(EntityCapsManager.java:362)
    at net.java.sip.communicator.impl.protocol.jabber.extensions.caps.EntityCapsManager$CapsPacketListener.processStanza(EntityCapsManager.java:941)
    at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1199)
    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)

When I try to join a conference with two browsers, i get these
warnings, and no audio / video...

    JVB 2018-03-02 10:28:54.811 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() SCTP connection
with 3fe9357c not ready yet.
    JVB 2018-03-02 10:28:54.811 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() No available
transport channel, can't send a message
    JVB 2018-03-02 10:28:54.811 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() SCTP connection
with c165a58e not ready yet.
    JVB 2018-03-02 10:28:54.812 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() No available
transport channel, can't send a message

    ==> /var/log/nginx/access.log <==

    178.22.140.254 - - [02/Mar/2018:10:28:55 +0000] "POST
/http-bind?room=foobar HTTP/1.1" 200 360
"https://jitsi.simwood.com/foobar" "Mozilla/5.0 (Macintosh; Intel Mac
OS X 10.13; rv:58.0) Gecko/20100101 Firefox/58.0"

    ==> /var/log/jitsi/jvb.log <==

    JVB 2018-03-02 10:28:55.311 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() SCTP connection
with 3fe9357c not ready yet.

    JVB 2018-03-02 10:28:55.311 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() No available
transport channel, can't send a message

    JVB 2018-03-02 10:28:55.311 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() SCTP connection
with c165a58e not ready yet.

    JVB 2018-03-02 10:28:55.312 WARNING: [25]
org.jitsi.videobridge.EndpointMessageTransport.log() No available
transport channel, can't send a message

If you have any insights, it's highly appreciated...

Kind Regards
JM