SIP Video Gateway

Hello!

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 id=meet.brotel.cz hostname=meet.some.domain] connected
2020-05-08 16:14:03.797 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: jibribrewery@internal.auth.meet.some.domain
2020-05-08 16:14:03.802 INFO: [20] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: thesipbrewery@conference.meet.some.domain

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: thesipbrewery@conference.meet.some.domain/jibri-nickname
Jicofo 2020-05-08 15:27:15.088 INFO: [30] org.jitsi.jicofo.recording.jibri.JibriDetector.onInstanceStatusChanged().137 Received Jibri thesipbrewery@conference.meet.some.domain/jibri-nickname 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?

Michal

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@127.0.0.1 --config-file /home/jibri/pjsua.config --log-file /tmp/pjsua.out --max-calls=1 sip:servis@192.168.222.11 ([pjsua, --capture-dev=23, --playback-dev=24, --id, Servis sip:jibri@127.0.0.1, --config-file, /home/jibri/pjsua.config, --log-file, /tmp/pjsua.out, --max-calls=1, sip:servis@192.168.222.11])

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.

Michal

I was able to customize pjsua settings after upgrading jibri to latest unstable version that uses pjsua.sh 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?

Michal

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-4.15.0.99/x86_64/glibc-2.27 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 82.208.43.105:5060
06:08:21.396 udp0x55b03b4398d0 SIP UDP transport started, published address is 82.208.43.105:5060
06:08:21.396 pjsua_acc.c Adding account: id=sip:82.208.43.105:5060
06:08:21.396 pjsua_acc.c .Account sip:82.208.43.105:5060 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@127.0.0.1
06:08:21.396 pjsua_acc.c .Account Vojta sip:jibri@127.0.0.1 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@192.168.222.74
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@192.168.222.74
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 82.208.43.105:4000
06:08:21.397 pjsua_media.c …RTCP socket reachable at 82.208.43.105:4001
06:08:21.397 srtp0x55b03b3da390 …SRTP keying SDES created
06:08:21.397 pjsua_media.c …RTP socket reachable at 82.208.43.105:4002
06:08:21.397 pjsua_media.c …RTCP socket reachable at 82.208.43.105:4003
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 ‘192.168.222.74:0’ type=Unspecified resolved to ‘192.168.222.74:5060’ 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?

Michal