SIP Video Gateway


I had a working setup of Jitsi Meet with AD authentication (cyrussasl), Jigasi and Jibri (for recording). Now I need to move further and test SIP video gateway functionality of Jibri.

Software list:
Ubuntu 18.04.4 LTS
jitsi-meet/stable,now 2.0.4548-1 all [installed]
jitsi-meet-prosody/stable,now 1.0.4074-1 all [installed,automatic]
jitsi-meet-tokens/stable,now 1.0.4074-1 all [installed]
jitsi-meet-web/stable,now 1.0.4074-1 all [installed,automatic]
jitsi-meet-web-config/stable,now 1.0.4074-1 all [installed,automatic]
jitsi-videobridge2/stable,now 2.1-197-g38256192-1 all [installed,automatic]
jibri/stable,now 8.0-14-g0ccc3f6-1 all [installed]
prosody/unknown,now 0.11.5-1~bionic6 amd64 [installed]

I did everything according to this guide:

All services are running.
Token authentication is working.
I can see “+” button in Jitsi Meet.
I can even find and select a room (of “type”: “videosipgw”).
But once I click Invite button, nothing happens. I see no network traffic in Chrome developer tools. Invite button just turns grey.

I can see in jibri log (log.0.txt):
2020-05-08 16:14:03.745 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() [MucClient hostname=meet.some.domain] connected
2020-05-08 16:14:03.797 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC:
2020-05-08 16:14:03.802 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC:

I can see i jicofo.log:
Jicofo 2020-05-08 15:27:15.088 INFO: [30] org.jitsi.jicofo.xmpp.BaseBrewery.processInstanceStatusChanged().330 Added brewery instance:
Jicofo 2020-05-08 15:27:15.088 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.onInstanceStatusChanged().137 Received Jibri status

I don’t see any reaction to Invite button being pressed.

There is no pjsua.X.log in /var/log/jitsi/jibri/

Can somebody point me to a right direction please?


I realized that the problem was in nod_auth_token module of Prosody. I missed some required dependecies.

Finally clicking the Invite button causes some action. I can see that Jibri launches pjsua but with strange defaults:
2020-05-08 18:16:22.022 INFO: [44] org.jitsi.jibri.util.JibriSubprocess.pjsua.launch() Starting pjsua with command pjsua --capture-dev=23 --playback-dev=24 --id Servis sip:jibri@ --config-file /home/jibri/pjsua.config --log-file /tmp/pjsua.out --max-calls=1 sip:servis@ ([pjsua, --capture-dev=23, --playback-dev=24, --id, Servis sip:jibri@, --config-file, /home/jibri/pjsua.config, --log-file, /tmp/pjsua.out, --max-calls=1, sip:servis@])

It seems to ignore both /home/jibri/pjsua.config and /etc/jitsi/jibri/pjsua.config files… I need to change capture device, playback device and log path. I have all appropriate options set in /home/jibri/pjsua.config but it looks like pjsua prefers options given on command line.


I was able to customize pjsua settings after upgrading jibri to latest unstable version that uses script for launching pjsua client. I am able to call to SIP phone, but neither side sees or hears anything. Was anybody able to make sipgw work and help me with some tips?


Here is my pjsusa.log:

6:08:21.344 sip_endpoint.c .Module “mod-pjsua-log” registered
06:08:21.345 sip_endpoint.c .Module “mod-tsx-layer” registered
06:08:21.345 sip_endpoint.c .Module “mod-stateful-util” registered
06:08:21.345 sip_endpoint.c .Module “mod-ua” registered
06:08:21.345 sip_endpoint.c .Module “mod-100rel” registered
06:08:21.345 sip_endpoint.c .Module “mod-pjsua” registered
06:08:21.345 sip_endpoint.c .Module “mod-invite” registered
06:08:21.374 alsa_dev.c …Added sound device amix
06:08:21.374 alsa_dev.c …Added sound device asnoop
06:08:21.374 alsa_dev.c …Added sound device aduplex
06:08:21.375 alsa_dev.c …Added sound device bmix
06:08:21.375 alsa_dev.c …Added sound device bsnoop
06:08:21.375 alsa_dev.c …Added sound device bduplex
06:08:21.376 alsa_dev.c …Added sound device pjsua
06:08:21.376 alsa_dev.c …Added sound device default
06:08:21.378 alsa_dev.c …Added sound device sysdefault:CARD=Loopback
06:08:21.378 alsa_dev.c …Added sound device front:CARD=Loopback,DEV=0
06:08:21.379 alsa_dev.c …Added sound device surround21:CARD=Loopback,DEV=0
06:08:21.379 alsa_dev.c …Added sound device surround40:CARD=Loopback,DEV=0
06:08:21.379 alsa_dev.c …Added sound device surround41:CARD=Loopback,DEV=0
06:08:21.379 alsa_dev.c …Added sound device surround50:CARD=Loopback,DEV=0
06:08:21.380 alsa_dev.c …Added sound device surround51:CARD=Loopback,DEV=0
06:08:21.380 alsa_dev.c …Added sound device surround71:CARD=Loopback,DEV=0
06:08:21.380 alsa_dev.c …Added sound device dmix:CARD=Loopback,DEV=0
06:08:21.381 alsa_dev.c …Added sound device dmix:CARD=Loopback,DEV=1
06:08:21.381 alsa_dev.c …Added sound device dsnoop:CARD=Loopback,DEV=0
06:08:21.382 alsa_dev.c …Added sound device dsnoop:CARD=Loopback,DEV=1
06:08:21.382 alsa_dev.c …Added sound device hw:CARD=Loopback,DEV=0
06:08:21.382 alsa_dev.c …Added sound device hw:CARD=Loopback,DEV=1
06:08:21.382 alsa_dev.c …Added sound device plughw:CARD=Loopback,DEV=0
06:08:21.382 alsa_dev.c …Added sound device plughw:CARD=Loopback,DEV=1
06:08:21.384 alsa_dev.c …Added sound device sysdefault:CARD=PCH
06:08:21.384 alsa_dev.c …Added sound device front:CARD=PCH,DEV=0
06:08:21.384 alsa_dev.c …Added sound device surround21:CARD=PCH,DEV=0
06:08:21.384 alsa_dev.c …Added sound device surround40:CARD=PCH,DEV=0
06:08:21.385 alsa_dev.c …Added sound device surround41:CARD=PCH,DEV=0
06:08:21.385 alsa_dev.c …Added sound device surround50:CARD=PCH,DEV=0
06:08:21.385 alsa_dev.c …Added sound device surround51:CARD=PCH,DEV=0
06:08:21.386 alsa_dev.c …Added sound device surround71:CARD=PCH,DEV=0
06:08:21.386 alsa_dev.c …ALSA driver found 32 devices
06:08:21.386 alsa_dev.c …ALSA initialized
06:08:21.386 pjlib …select() I/O Queue created (0x55b03b3f5508)
06:08:21.386 conference.c …Creating conference bridge with 254 ports
06:08:21.386 Master/sound …Using delay buffer with WSOLA.
06:08:21.388 pjsua_vid.c …Initializing video subsystem…
06:08:21.390 vid_conf.c …Created video conference bridge with 32 ports

I don’t see any video devices…

06:08:21.390 v4l2_dev.c …Video4Linux2 has 0 devices
06:08:21.395 sdl_dev.c !SDL_Init() error: No available video device
06:08:21.396 colorbar_dev.c !..Colorbar video src initialized with 2 device(s):
06:08:21.396 colorbar_dev.c … 0: Colorbar generator
06:08:21.396 colorbar_dev.c … 1: Colorbar-active
06:08:21.396 sip_endpoint.c .Module “mod-evsub” registered
06:08:21.396 sip_endpoint.c .Module “mod-presence” registered
06:08:21.396 evsub.c .Event pkg “presence” registered by mod-presence
06:08:21.396 sip_endpoint.c .Module “mod-mwi” registered
06:08:21.396 evsub.c .Event pkg “message-summary” registered by mod-mwi
06:08:21.396 sip_endpoint.c .Module “mod-refer” registered
06:08:21.396 evsub.c .Event pkg “refer” registered by mod-refer
06:08:21.396 sip_endpoint.c .Module “mod-pjsua-pres” registered
06:08:21.396 sip_endpoint.c .Module “mod-pjsua-im” registered
06:08:21.396 sip_endpoint.c .Module “mod-pjsua-options” registered
06:08:21.396 pjsua_core.c .1 SIP worker threads created
06:08:21.396 pjsua_core.c .pjsua version 2.10-jitsi1 for Linux- initialized
06:08:21.396 pjsua_core.c .PJSUA state changed: CREATED --> INIT
06:08:21.396 sip_endpoint.c Module “mod-default-handler” registered
06:08:21.396 pjsua_core.c SIP UDP socket reachable at
06:08:21.396 udp0x55b03b4398d0 SIP UDP transport started, published address is
06:08:21.396 pjsua_acc.c Adding account: id=sip:
06:08:21.396 pjsua_acc.c .Account sip: added with id 0
06:08:21.396 pjsua_acc.c Modifying account 0
06:08:21.396 pjsua_acc.c Acc 0: setting online status to 1…
06:08:21.396 pjsua_acc.c Adding account: id=Vojta sip:jibri@
06:08:21.396 pjsua_acc.c .Account Vojta sip:jibri@ added with id 1
06:08:21.396 pjsua_acc.c Acc 1: setting online status to 1…
06:08:21.396 pjsua_pres.c Adding buddy: sip:vojta@
06:08:21.396 pjsua_pres.c .Buddy 0 added.
06:08:21.396 pjsua_pres.c …Buddy 0: updating presence…

When I set capture=20, playback=21, the other end hears only himself and I don’t hear anything. So now I am trying to reverse both devices.

06:08:21.396 pjsua_aud.c Set sound device: capture=21, playback=20
06:08:21.396 pjsua_app.c .Turning sound device 21 20 ON
06:08:21.396 pjsua_aud.c .Opening sound device (speaker + mic) PCM@16000/1/20ms
06:08:21.396 alsa_dev.c …open_playback: Open playback device ‘hw:CARD=Loopback,DEV=0’
06:08:21.396 alsa_dev.c …Opened device alsa(hw:CARD=Loopback,DEV=0) for playing, sample rate=16000, ch=1, bits=16, period size=320 frames, latency=140 ms
06:08:21.396 alsa_dev.c …open_capture: Open capture device ‘hw:CARD=Loopback,DEV=1’
06:08:21.396 alsa_dev.c …Opened device alsa(hw:CARD=Loopback,DEV=1) for capture, sample rate=48000, ch=1, bits=16, period size=320 frames, latency=100 ms
06:08:21.396 pjsua_core.c PJSUA state changed: INIT --> STARTING
06:08:21.396 sip_endpoint.c .Module “mod-unsolicited-mwi” registered
06:08:21.396 pjsua_core.c .PJSUA state changed: STARTING --> RUNNING
06:08:21.396 main.c Ready: Success
06:08:21.396 pjsua_call.c Making call with acc #1 to sip:vojta@
06:08:21.396 dlg0x55b03b4407e8 .UAC dialog created
06:08:21.396 dlg0x55b03b4407e8 …Session count inc to 2 by mod-pjsua
06:08:21.396 pjsua_media.c .Call 0: initializing media…
06:08:21.396 alsa_dev.c !ca_thread_func(7469): Set thread priority for audio capture thread.
06:08:21.396 alsa_dev.c Unable to increase thread priority, root access needed.
06:08:21.397 pjsua_media.c !..RTP socket reachable at
06:08:21.397 pjsua_media.c …RTCP socket reachable at
06:08:21.397 srtp0x55b03b3da390 …SRTP keying SDES created
06:08:21.397 pjsua_media.c …RTP socket reachable at
06:08:21.397 pjsua_media.c …RTCP socket reachable at
06:08:21.397 srtp0x55b03b448d90 …SRTP keying SDES created
06:08:21.397 pjsua_media.c …Media index 0 selected for audio call 0
06:08:21.397 pjsua_media.c …Call 0: media transport initialization complete: Success
06:08:21.397 dlg0x55b03b4407e8 …Session count dec to 2 by mod-pjsua
06:08:21.397 dlg0x55b03b4407e8 .Module mod-invite added as dialog usage, data=0x55b03b44b9a8
06:08:21.397 dlg0x55b03b4407e8 …Session count inc to 4 by mod-invite
06:08:21.397 dlg0x55b03b4407e8 .Module mod-100rel added as dialog usage, data=0x55b03b44e7c0
06:08:21.397 dlg0x55b03b4407e8 .100rel module attached
06:08:21.397 inv0x55b03b4407e8 .UAC invite session created for dialog dlg0x55b03b4407e8
06:08:21.397 endpoint .Request msg INVITE/cseq=14702 (tdta0x55b03b45dda8) created.
06:08:21.397 inv0x55b03b4407e8 …Sending Request msg INVITE/cseq=14702 (tdta0x55b03b45dda8)
06:08:21.397 dlg0x55b03b4407e8 …Sending Request msg INVITE/cseq=14702 (tdta0x55b03b45dda8)
06:08:21.397 tsx0x55b03b460d18 …Transaction created for Request msg INVITE/cseq=14701 (tdta0x55b03b45dda8)
06:08:21.397 tsx0x55b03b460d18 …Sending Request msg INVITE/cseq=14701 (tdta0x55b03b45dda8) in state Null
06:08:21.397 sip_resolve.c …Target ‘’ type=Unspecified resolved to ‘’ type=UDP (UDP transport)
06:08:21.397 endpoint …Request msg INVITE/cseq=14701 (tdta0x55b03b45dda8) exceeds UDP size threshold (1300), sending with TCP
06:08:21.397 tsx0x55b03b460d18 …Temporary failure in sending Request msg INVITE/cseq=14701 (tdta0x55b03b45dda8), will try next server: Unsupported transport (PJSIP_EUNSUPTRANSPORT)

I can see dump of invite messages then and pjsua crashes soon:
06:08:28.831 tsx0x55b03b460d18 .Incoming Response msg 200/INVITE/cseq=14701 (rdata0x7efd000091e8) in state Proceeding
06:08:28.831 tsx0x55b03b460d18 …State changed from Proceeding to Terminated, event=RX_MSG
06:08:28.831 dlg0x55b03b4407e8 …Received Response msg 200/INVITE/cseq=14701 (rdata0x7efd000091e8)
06:08:28.831 dlg0x55b03b4407e8 …Route-set updated
06:08:28.831 dlg0x55b03b4407e8 …Route-set frozen
06:08:28.831 dlg0x55b03b4407e8 …Transaction tsx0x55b03b460d18 state changed to T

Does anybody have any suggestions please?