Jami on Linux: incoming call uses 100% CPU and does not ring

Jami 202512222233 on Devuan Excalibur (i.e. Debian Trixie) does not respond to incoming calls and pegs CPU usage at 100%:

######################### CPU AT 0% #########################

[1767008475.313|4904|manager.cpp             :930 ] ############## START MONITORING ##############
[1767008475.313|4904|manager.cpp             :931 ] Using PJSIP version: 2.15.1 for x86_64-pc-linux-gnu
[1767008475.313|4904|manager.cpp             :932 ] Using GnuTLS version: 3.8.9
[1767008475.313|4904|manager.cpp             :933 ] Using OpenDHT version: 3.6.2
[1767008475.313|4904|manager.cpp             :939 ] Opened files: 45
[1767008475.313|4904|manager.cpp             :948 ] ############## END MONITORING ##############

######################### PLACING CALL #########################

[1767008486.115|4920|sipvoiplink.cpp         :351 ] Received a SIP INVITE request
[1767008486.115|4920|sip_utils.cpp           :271 ] Message headers:
Record-Route: <sip:217.10.79.23;lr>
Record-Route: <sip:172.20.40.7;lr;did=6d7.a861>
Record-Route: <sip:217.10.68.137;lr>
Via: SIP/2.0/UDP 217.10.79.23;received=217.10.79.23;branch=z9hG4bK7a66.0a3ee6ffee1bbec2e2f97ea843e6d9dd.0
Via: SIP/2.0/UDP 172.20.40.7;branch=z9hG4bK7a66.6105e7d63b55688bfdeaa8334c474920.0
Via: SIP/2.0/UDP 217.10.68.137;branch=z9hG4bK7a66.b33f13b8820a8c8a6b933a3e550ea536.0
Via: SIP/2.0/UDP 212.9.44.94:5060;branch=z9hG4bK63c966eb
Max-Forwards: 67
From: "0123456789" <sip:0123456789@sipgate.co.uk>;tag=as349d373e
To: <sip:1234567e0@sipgate.co.uk>
Contact: <sip:0123456789@212.9.44.94:5060>
Call-ID: 7e3a6a8a66b7eb822936afee27ea0eec@sipgate.co.uk
CSeq: 103 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces
Content-Type: application/sdp
Content-Length: 441

[1767008486.115|4920|ringbuffer.cpp          :44  ] Create new RingBuffer 2602240973801855_audio_0
[1767008486.115|4920|sipcall.cpp             :446 ] [call:2602240973801855] Setting transport to [0x557847146f20]
[1767008486.115|4920|call.cpp                :237 ] [call:2602240973801855] state change 0/0, cnx 0/2, code 0
[1767008486.115|4920|call.cpp                :271 ] [call:2602240973801855] emit client call state change CONNECTING, code 0
[1767008486.115|4920|sipcall.cpp             :724 ] [call:2602240973801855] Set new invite session [0x7fb0200e7398]
[1767008486.116|4920|sipvoiplink.cpp         :827 ] [call:2602240973801855] INVITE@0x7fb0200e7398 state changed to 2 (INCOMING): cause=0, tsx@0x7fb0200946a8 status 100 (Trying)
[1767008486.116|4920|call.cpp                :237 ] [call:2602240973801855] state change 0/0, cnx 2/1, code 0
[1767008486.116|4920|call.cpp                :271 ] [call:2602240973801855] emit client call state change INACTIVE, code 0
[1767008486.116|4920|sipvoiplink.cpp         :827 ] [call:2602240973801855] INVITE@0x7fb0200e7398 state changed to 3 (EARLY): cause=0, tsx@0x7fb0200946a8 status 180 (Ringing)
[1767008486.116|4920|sipcall.cpp             :1750] [call:2602240973801855] Peer ringing
[1767008486.116|4920|call.cpp                :237 ] [call:2602240973801855] state change 0/0, cnx 1/3, code 0
[1767008486.116|4920|call.cpp                :95  ] Scheduling call timeout in 30 seconds
[1767008486.116|4920|call.cpp                :271 ] [call:2602240973801855] emit client call state change INCOMING, code 0
[1767008486.116|4920|call.cpp                :237 ] [call:2602240973801855] state change 0/0, cnx 3/3, code 0
[1767008486.116|4920|call.cpp                :237 ] [call:2602240973801855] state change 0/0, cnx 3/3, code 0
[1767008486.129|4920|media_decoder.cpp       :168 ] Attempting to open input /usr/share/jami/ringtones/default.opus with format , pixel format , size 0x0, rate 0
[1767008486.129|4920|media_decoder.cpp       :193 ] Opened input Using format  and resolution 0x0
[1767008486.130|4920|media_decoder.cpp       :569 ] Using libopus Opus (libopus) decoder for audio
[1767008486.130|4920|media_decoder.cpp       :580 ] Not using hardware decoding for opus
[1767008486.241|4920|audiofile.cpp           :103 ] AudioFile: loaded 1785901 samples (37.2063s) as {s16, 1 channels, 48000Hz} in 112 ms from /usr/share/jami/ringtones/default.opus

######################### CPU AT 100% #########################

[1767008487.821|4920|sipvoiplink.cpp         :720 ] username = 1234567, server = 217.10.79.23, from = sipgate.de
[1767008487.868|4920|sipaccount.cpp          :1513] Matching account ID in request is a fullmatch 1234567@217.10.79.23
[1767008487.868|4920|sipvoiplink.cpp         :108 ] Processing out-of-dialog option request
[1767008487.868|4920|sipvoiplink.cpp         :147 ] Sent out-of-dialog response for option request

[1767008502.130|4920|sipvoiplink.cpp         :720 ] username = 1234567, server = 217.10.79.23, from = sipgate.de
[1767008502.177|4920|sipaccount.cpp          :1513] Matching account ID in request is a fullmatch 1234567@217.10.79.23
[1767008502.177|4920|sipvoiplink.cpp         :108 ] Processing out-of-dialog option request
[1767008502.177|4920|sipvoiplink.cpp         :147 ] Sent out-of-dialog response for option request

######################### HANGING UP #########################

[1767008506.963|4920|sipvoiplink.cpp         :1307] [INVITE:0x7fb0200e7398] RX SIP method 1 (CANCEL)
[1767008506.963|4920|sipvoiplink.cpp         :827 ] [call:2602240973801855] INVITE@0x7fb0200e7398 state changed to 6 (DISCONNECTED): cause=487, tsx@0x7fb0200946a8 status 487 (Request Terminated)
[1767008506.963|4918|manager.cpp             :1977] [call:2602240973801855] Peer hung up
[1767008506.963|4918|sipcall.cpp             :2189] [call:2602240973801855] Stopping all media
[1767008506.963|4918|sipcall.cpp             :736 ] [call:2602240973801855] Terminate SIP session
[1767008506.963|4918|sipcall.cpp             :712 ] [call:2602240973801855] Delete current invite session
[1767008506.963|4918|call.cpp                :237 ] [call:2602240973801855] state change 0/0, cnx 3/0, code 111
[1767008506.963|4918|call.cpp                :271 ] [call:2602240973801855] emit client call state change INACTIVE, code 111
[1767008506.963|4918|ringbufferpool.cpp      :261 ] Unbind ringbuffer 2602240973801855_audio_0 from all bound ringbuffers
[1767008506.963|4918|sipcall.cpp             :1533] [call:2602240973801855] removeCall()
[1767008506.963|4918|call_factory.cpp        :68  ] Removing call 2602240973801855
[1767008506.963|4918|call_factory.cpp        :71  ] Remaining 0 call
[1767008506.963|4918|call.cpp                :237 ] [call:2602240973801855] state change 0/6, cnx 0/0, code 0
[1767008506.963|4918|call.cpp                :271 ] [call:2602240973801855] emit client call state change OVER, code 0
[1767008506.963|4918|sipcall.cpp             :446 ] [call:2602240973801855] Setting transport to [(nil)]
[1767008506.963|4918|ringbuffer.cpp          :49  ] Destroy RingBuffer 2602240973801855_audio_0

######################### CPU AT 0% #########################

I can place outgoing calls without issue.

I found that the “Enable custom ringtone” was enabled on the account, which I do not recall doing:

After switching that option off I can now hear the ring signal on incoming calls, and the CPU usage stays low. But I do not get any notification message and I see no way to answer the call! I also do not get any notification of a missed incoming call in the chat (missed outgoing calls do appear). The log now looks like this:

######################### PLACING CALL #########################

[1767025806.676|21006|sipvoiplink.cpp         :351 ] Received a SIP INVITE request
[1767025806.676|21006|sip_utils.cpp           :271 ] Message headers:
Record-Route: <sip:217.10.79.23;lr>
Record-Route: <sip:172.20.40.7;lr;did=67c.0bb2>
Record-Route: <sip:217.10.68.137;lr>
Via: SIP/2.0/UDP 217.10.79.23;received=217.10.79.23;branch=z9hG4bK74b2.553d3b4a4d62919d19e858fad8493535.0
Via: SIP/2.0/UDP 172.20.40.7;branch=z9hG4bK74b2.13fc0608229efcddb70653dde6d9d354.0
Via: SIP/2.0/UDP 217.10.68.137;branch=z9hG4bK74b2.e7e57461d3f395070d50f1f7b22f79db.0
Via: SIP/2.0/UDP 212.9.44.98:5060;branch=z9hG4bK4bd6c7e8
Max-Forwards: 67
From: "0123456789" <sip:0123456789@sipgate.co.uk>;tag=as54e8719d
To: <sip:1234567e0@sipgate.co.uk>
Contact: <sip:0123456789@212.9.44.98:5060>
Call-ID: 390278473e7dc34c76029961721cc3ae@sipgate.co.uk
CSeq: 103 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces
Content-Type: application/sdp
Content-Length: 439

[1767025806.677|21006|ringbuffer.cpp          :44  ] Create new RingBuffer 3696024310841011_audio_0
[1767025806.677|21006|sipcall.cpp             :446 ] [call:3696024310841011] Setting transport to [0x7f8e64002b70]
[1767025806.677|21006|call.cpp                :237 ] [call:3696024310841011] state change 0/0, cnx 0/2, code 0
[1767025806.677|21006|call.cpp                :271 ] [call:3696024310841011] emit client call state change CONNECTING, code 0
[1767025806.677|21006|sipcall.cpp             :724 ] [call:3696024310841011] Set new invite session [0x7f8e64051418]
[1767025806.677|21006|sipvoiplink.cpp         :827 ] [call:3696024310841011] INVITE@0x7f8e64051418 state changed to 2 (INCOMING): cause=0, tsx@0x7f8e64027fb8 status 100 (Trying)
[1767025806.677|21006|call.cpp                :237 ] [call:3696024310841011] state change 0/0, cnx 2/1, code 0
[1767025806.677|21006|call.cpp                :271 ] [call:3696024310841011] emit client call state change INACTIVE, code 0
[1767025806.677|21006|sipvoiplink.cpp         :827 ] [call:3696024310841011] INVITE@0x7f8e64051418 state changed to 3 (EARLY): cause=0, tsx@0x7f8e64027fb8 status 180 (Ringing)
[1767025806.677|21006|sipcall.cpp             :1750] [call:3696024310841011] Peer ringing
[1767025806.677|21006|call.cpp                :237 ] [call:3696024310841011] state change 0/0, cnx 1/3, code 0
[1767025806.677|21006|call.cpp                :95  ] Scheduling call timeout in 30 seconds
[1767025806.677|21006|call.cpp                :271 ] [call:3696024310841011] emit client call state change INCOMING, code 0
[1767025806.677|21006|call.cpp                :237 ] [call:3696024310841011] state change 0/0, cnx 3/3, code 0
[1767025806.677|21006|call.cpp                :237 ] [call:3696024310841011] state change 0/0, cnx 3/3, code 0
[1767025806.677|21006|alsalayer.cpp           :83  ] Alsa: Opening playback device 'default'
[1767025806.678|21006|alsalayer.cpp           :339 ] Buffer size range from 2048 to 16384
[1767025806.678|21006|alsalayer.cpp           :340 ] Period size range from 1024 to 1024
[1767025806.678|21006|alsalayer.cpp           :355 ] Was set period_size = 1024
[1767025806.678|21006|alsalayer.cpp           :356 ] Was set buffer_size = 2048
[1767025806.678|21006|alsalayer.cpp           :365 ] playback using format {s16, 2 channels, 48000Hz}
[1767025806.678|21006|audiolayer.cpp          :68  ] Hardware audio format available: {s16, 2 channels, 48000Hz} 0
[1767025818.455|21006|sipvoiplink.cpp         :720 ] username = 1234567, server = 217.10.79.23, from = sipgate.de
[1767025818.509|21006|sipaccount.cpp          :1513] Matching account ID in request is a fullmatch 1234567@217.10.79.23
[1767025818.509|21006|sipvoiplink.cpp         :108 ] Processing out-of-dialog option request
[1767025818.509|21006|sipvoiplink.cpp         :147 ] Sent out-of-dialog response for option request

######################### HANGING UP #########################

[1767025821.176|21006|sipvoiplink.cpp         :1307] [INVITE:0x7f8e64051418] RX SIP method 1 (CANCEL)
[1767025821.176|21006|sipvoiplink.cpp         :827 ] [call:3696024310841011] INVITE@0x7f8e64051418 state changed to 6 (DISCONNECTED): cause=487, tsx@0x7f8e64027fb8 status 487 (Request Terminated)
[1767025821.176|21004|manager.cpp             :1977] [call:3696024310841011] Peer hung up
[1767025821.176|21004|sipcall.cpp             :2189] [call:3696024310841011] Stopping all media
[1767025821.176|21004|sipcall.cpp             :736 ] [call:3696024310841011] Terminate SIP session
[1767025821.176|21004|sipcall.cpp             :712 ] [call:3696024310841011] Delete current invite session
[1767025821.176|21004|call.cpp                :237 ] [call:3696024310841011] state change 0/0, cnx 3/0, code 111
[1767025821.176|21004|call.cpp                :271 ] [call:3696024310841011] emit client call state change INACTIVE, code 111
[1767025821.198|21004|alsalayer.cpp           :265 ] Alsa: Closing playback stream
[1767025821.198|21004|ringbufferpool.cpp      :261 ] Unbind ringbuffer 3696024310841011_audio_0 from all bound ringbuffers
[1767025821.198|21004|sipcall.cpp             :1533] [call:3696024310841011] removeCall()
[1767025821.198|21004|call_factory.cpp        :68  ] Removing call 3696024310841011
[1767025821.198|21004|call_factory.cpp        :71  ] Remaining 0 call
[1767025821.198|21004|call.cpp                :237 ] [call:3696024310841011] state change 0/6, cnx 0/0, code 0
[1767025821.198|21004|call.cpp                :271 ] [call:3696024310841011] emit client call state change OVER, code 0
[1767025821.198|21004|sipcall.cpp             :446 ] [call:3696024310841011] Setting transport to [(nil)]
[1767025821.198|21004|ringbuffer.cpp          :49  ] Destroy RingBuffer 3696024310841011_audio_0

Furthermore, pressing the place call icon on the contact for the incoming call does not answer it, but tries to place a new call instead.

Running a debug session I see some potentially relevant bits:

$ jami -d

client	[1767027685972][INF][7f146be3fb00]: Using Qt runtime version: 6.8.3
client	[1767027685979][INF][7f146be3fb00]: "notify server name: Xfce Notify Daemon, vendor: Xfce, version: 0.9.7, spec: 1.2"
client	[1767027685986][INF][7f146be3fb00]: "Using locale: en_GB"

...

[1767027686.259|23208|sipaccount.cpp          :936 ] Registrar returned EXPIRE value [600 s] different from the requested [3600 s]
qml	[1767027686261][INF][7f146be3fb00]:[qrc:/MainApplicationWindow.qml:147] Initializing main view
default	[1767027686261][WRN][7f146be3fb00]: qrc:/MainApplicationWindow.qml:33:1: QML MainApplicationWindow: Conflicting properties 'visible' and 'visibility'
client	[1767027686599][INF][7f146be3fb00]: Main window loaded using "OpenGLRhi"
default	[1767027686599][WRN][7f146be3fb00]: Loaded existing settings for account: "583b8e2e0e07e3a5"

...

[1767027891.179|23208|sipcall.cpp             :141 ] [call:3980468691617792] Create a new [INCOMING] SIP call with 1 media
[1767027891.179|23208|audio_rtp_session.cpp   :57  ] Created Audio RTP session: 0x7f1408009480 - stream id 3980468691617792_audio_0
[1767027891.179|23208|ringbuffer.cpp          :44  ] Create new RingBuffer 3980468691617792_audio_0
[1767027891.179|23208|sipcall.cpp             :1937] [call:3980468691617792] Added media @0: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [] secure [NO]
[1767027891.179|23208|sipcall.cpp             :1947] [call:3980468691617792] Created 1 media stream(s)
[1767027891.179|23208|sipcall.cpp             :446 ] [call:3980468691617792] Setting transport to [0x7f1408002bf0]
[1767027891.179|23208|call.cpp                :237 ] [call:3980468691617792] state change 0/0, cnx 0/2, code 0
[1767027891.179|23208|call.cpp                :271 ] [call:3980468691617792] emit client call state change CONNECTING, code 0
[1767027891.179|23208|sipcall.cpp             :724 ] [call:3980468691617792] Set new invite session [0x7f1408013518]
[1767027891.179|23208|sipvoiplink.cpp         :827 ] [call:3980468691617792] INVITE@0x7f1408013518 state changed to 2 (INCOMING): cause=0, tsx@0x7f140800c6e8 status 100 (Trying)
[1767027891.180|23208|call.cpp                :237 ] [call:3980468691617792] state change 0/0, cnx 2/1, code 0
[1767027891.180|23208|call.cpp                :271 ] [call:3980468691617792] emit client call state change INACTIVE, code 0
[1767027891.180|23208|sipvoiplink.cpp         :827 ] [call:3980468691617792] INVITE@0x7f1408013518 state changed to 3 (EARLY): cause=0, tsx@0x7f140800c6e8 status 180 (Ringing)
[1767027891.180|23208|sipcall.cpp             :1750] [call:3980468691617792] Peer ringing

...