Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jitsi docker stable-10078-1 PCMA error #584

Open
uholeschak opened this issue Mar 4, 2025 · 31 comments
Open

jitsi docker stable-10078-1 PCMA error #584

uholeschak opened this issue Mar 4, 2025 · 31 comments

Comments

@uholeschak
Copy link

This Issue tracker is only for reporting bugs and tracking code related issues.

Before posting, please make sure you check community.jitsi.org to see if the same or similar bugs have already been discussed. General questions, installation help, and feature requests can also be posted to community.jitsi.org.

Description

In jitsi docker stable-10078-1 there is no sound transmitted in the outgoing direction. In the logs there is the error message:

Unable to handle format: LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed

Full log:

2025-03-04 15:11:00 2025-03-04 14:11:00.357 INFO: [146] SipGatewaySession$CallPeerListener.peerStateChanged#1577: [ctx=1741097456460611153864] SIP peer state: Connecting*
2025-03-04 15:11:00 2025-03-04 14:11:00.406 INFO: [170] net.java.sip.communicator.impl.protocol.sip.SipLogger.logInfo: Info from the JAIN-SIP stack: Setting SIPMessage peerPacketSource to: /212.227.124.130:5060
2025-03-04 15:11:00 2025-03-04 14:11:00.407 INFO: [170] SipGatewaySession$SipCallStateListener.handleCallState#1504: [ctx=1741097456460611153864] Sip call IN_PROGRESS: Call: id=17410974564352141923083 peers=1
2025-03-04 15:11:00 2025-03-04 14:11:00.407 INFO: [170] SipGatewaySession$SipCallStateListener.handleCallState#1506: [ctx=1741097456460611153864] SIP call format used: rtpmap:8 PCMA/8000
2025-03-04 15:11:00 2025-03-04 14:11:00.408 INFO: [170] SipGatewaySession$CallPeerListener.peerStateChanged#1577: [ctx=1741097456460611153864] SIP peer state: Connected
2025-03-04 15:11:00 2025-03-04 14:11:00.410 INFO: [170] net.java.sip.communicator.service.protocol.media.CallPeerMediaHandler.start: Starting
2025-03-04 15:11:00 2025-03-04 14:11:00.518 INFO: [130] JvbConference$JvbCallChangeListener.callStateChangedInternal#1794: [ctx=1741097456460611153864] JVB conference call IN_PROGRESS.
2025-03-04 15:11:00 2025-03-04 14:11:00.538 SEVERE: [215] net.sf.fmj.media.Log.error:   Unable to handle format: LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed
2025-03-04 15:11:00 2025-03-04 14:11:00.538 SEVERE: [215] net.sf.fmj.media.Log.error: Failed to prefetch: net.sf.fmj.media.ProcessEngine@7864a9f2
2025-03-04 15:11:00 2025-03-04 14:11:00.539 SEVERE: [211] net.sf.fmj.media.Log.error: Error: Unable to prefetch net.sf.fmj.media.ProcessEngine@7864a9f2
2025-03-04 15:11:00 
2025-03-04 15:11:00 2025-03-04 14:11:00.544 INFO: [170] net.java.sip.communicator.service.protocol.media.TransportManager.sendHolePunchPacket: Send NAT hole punch packets
2025-03-04 15:11:00 2025-03-04 14:11:00.571 INFO: [153] JitsiOpenSslProvider.<clinit>#52: jitsisrtp successfully loaded for OpenSSL 3
2025-03-04 15:11:00 2025-03-04 14:11:00.996 INFO: [153] Aes.benchmark#367: AES benchmark (of execution times expressed in nanoseconds): OpenSSL 769, SunJCE 3971, BouncyCastle 10711 for AES/CTR/NoPadding

The outgoing RTP data is send, but contains only constant values (silence). Checked with Wireshark.

Current behavior

Outgoing RTP data contains only constant data.

Expected Behavior

Outgoing RTP data contains valid data.

Possible Solution

No solution found.

Steps to reproduce

Create a SIP connection with PCMA LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed

Environment details

jitsi docker stable-10078-1 in Windows11.

sip-communicator.properties:

net.java.sip.communicator.impl.protocol.SingleCallInProgressPolicy.enabled=false

# Adjust opus encoder complexity
net.java.sip.communicator.impl.neomedia.codec.audio.opus.encoder.COMPLEXITY=10

# Disables packet logging
net.java.sip.communicator.packetlogging.PACKET_LOGGING_ENABLED=false

# Control REST Shutdown
org.jitsi.jigasi.ENABLE_REST_SHUTDOWN=false

org.jitsi.jigasi.BREWERY_ENABLED=true
org.jitsi.jigasi.MUC_JOIN_TIMEOUT=10

org.jitsi.jigasi.HEALTH_CHECK_SIP_URI=
org.jitsi.jigasi.HEALTH_CHECK_INTERVAL=30000
org.jitsi.jigasi.HEALTH_CHECK_TIMEOUT=600000

org.jitsi.jigasi.xmpp.acc.IS_SERVER_OVERRIDDEN=true
org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS=xmpp.meet.jitsi
org.jitsi.jigasi.xmpp.acc.SERVER_PORT=5222
org.jitsi.jigasi.xmpp.acc.VIDEO_CALLING_DISABLED=true
org.jitsi.jigasi.xmpp.acc.JINGLE_NODES_ENABLED=false
org.jitsi.jigasi.xmpp.acc.AUTO_DISCOVER_STUN=false
org.jitsi.jigasi.xmpp.acc.IM_DISABLED=true
org.jitsi.jigasi.xmpp.acc.SERVER_STORED_INFO_DISABLED=true
org.jitsi.jigasi.xmpp.acc.IS_FILE_TRANSFER_DISABLED=true

# Activate this property if you are using self-signed certificates or other
# type of non-trusted certicates. In this mode your service trust in the
# remote certificates always.
net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true



org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME=hauskreis


org.jitsi.jigasi.MUC_SERVICE_ADDRESS=muc.meet.jitsi

# when checking other participants whether they are jibri/jigasi we can also check the the domain they use for connecting


org.jitsi.jigasi.JVB_INVITE_TIMEOUT=30000





# XMPP account used for control


net.java.sip.communicator.impl.protocol.jabber.acc-0=acc-0
net.java.sip.communicator.impl.protocol.jabber.acc-0.ACCOUNT_UID=Jabber:[email protected]@0
net.java.sip.communicator.plugin.reconnectplugin.ATLEAST_ONE_SUCCESSFUL_CONNECTION.Jabber\:[email protected]=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.USER_ID=jigasi@auth.meet.jitsi
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_SERVER_OVERRIDDEN=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.SERVER_ADDRESS=xmpp.meet.jitsi
net.java.sip.communicator.impl.protocol.jabber.acc-0.SERVER_PORT=5222
net.java.sip.communicator.impl.protocol.jabber.acc-0.ALLOW_NON_SECURE=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.PASSWORD=ZDYzNTk2YTA2NDEwYjIwZjY3MGM5ODA1MTQ0OWYxNmQ=
net.java.sip.communicator.impl.protocol.jabber.acc-0.AUTO_GENERATE_RESOURCE=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.RESOURCE_PRIORITY=30
net.java.sip.communicator.impl.protocol.jabber.acc-0.KEEP_ALIVE_METHOD=XEP-0199
net.java.sip.communicator.impl.protocol.jabber.acc-0.KEEP_ALIVE_INTERVAL=20
net.java.sip.communicator.impl.protocol.jabber.acc-0.CALLING_DISABLED=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.JINGLE_NODES_ENABLED=false
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_CARBON_DISABLED=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.DEFAULT_ENCRYPTION=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_USE_ICE=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_ACCOUNT_DISABLED=false
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_PREFERRED_PROTOCOL=false
net.java.sip.communicator.impl.protocol.jabber.acc-0.AUTO_DISCOVER_JINGLE_NODES=false
net.java.sip.communicator.impl.protocol.jabber.acc-0.PROTOCOL=Jabber
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_USE_UPNP=false
net.java.sip.communicator.impl.protocol.jabber.acc-0.IM_DISABLED=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.SERVER_STORED_INFO_DISABLED=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.IS_FILE_TRANSFER_DISABLED=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.USE_DEFAULT_STUN_SERVER=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.ENCRYPTION_PROTOCOL.DTLS-SRTP=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.ENCRYPTION_PROTOCOL_STATUS.DTLS-SRTP=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.VIDEO_CALLING_DISABLED=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.OVERRIDE_ENCODINGS=true
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.G722/8000=705
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.GSM/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.H263-1998/90000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.H264/90000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.PCMA/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.PCMU/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.SILK/12000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.SILK/16000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.SILK/24000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.SILK/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.VP8/90000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.iLBC/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.opus/48000=750
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.speex/16000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.speex/32000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.speex/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.telephone-event/8000=0
net.java.sip.communicator.impl.protocol.jabber.acc-0.BREWERY=jigasibrewery@internal-muc.meet.jitsi
net.java.sip.communicator.impl.protocol.jabber.acc-0.DOMAIN_BASE=meet.holeschak.de
org.jitsi.jigasi.ALLOWED_JID=jigasibrewery@internal-muc.meet.jitsi
org.jitsi.jigasi.ENABLE_SIP=true

# SIP account
net.java.sip.communicator.impl.protocol.sip.acc1=acc1

net.java.sip.communicator.impl.protocol.sip.acc1.PROXY_ADDRESS=sip.1und1.de
net.java.sip.communicator.impl.protocol.sip.acc1.PROXY_AUTO_CONFIG=false
net.java.sip.communicator.impl.protocol.sip.acc1.PROXY_PORT=5060
net.java.sip.communicator.impl.protocol.sip.acc1.PREFERRED_TRANSPORT=UDP


net.java.sip.communicator.impl.protocol.sip.acc1.ACCOUNT_UID=SIP\:[email protected]
net.java.sip.communicator.impl.protocol.sip.acc1.PASSWORD=Sm9oYW5uZXMxMSEkPw==
net.java.sip.communicator.impl.protocol.sip.acc1.PROTOCOL_NAME=SIP
net.java.sip.communicator.impl.protocol.sip.acc1.SERVER_ADDRESS=sip.1und1.de
net.java.sip.communicator.impl.protocol.sip.acc1.USER_ID=4962132697243@sip.1und1.de
net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_INTERVAL=25
net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_METHOD=OPTIONS
net.java.sip.communicator.impl.protocol.sip.acc1.VOICEMAIL_ENABLED=false
net.java.sip.communicator.impl.protocol.sip.acc1.JITSI_MEET_ROOM_HEADER_NAME=X-Room-Name
net.java.sip.communicator.impl.protocol.sip.acc1.JITSI_MEET_DOMAIN_BASE_HEADER_NAME=X-Domain-Base
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.AMR-WB/16000=750
# Temporarily disable G722, see: https://github.com/jitsi/docker-jitsi-meet/issues/1357
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.G722/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.GSM/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.H263-1998/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.H264/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=600
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMU/8000=650
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/12000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/16000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/24000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.SILK/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.VP8/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.iLBC/8000=10
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.opus/48000=1000
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.red/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/16000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/32000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.speex/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.telephone-event/8000=1
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.ulpfec/90000=0
net.java.sip.communicator.impl.protocol.sip.acc1.OVERRIDE_ENCODINGS=true
net.java.sip.communicator.impl.protocol.sip.acc1.DOMAIN_BASE=meet.jitsi



[email protected]
org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=true

org.jitsi.jigasi.xmpp.acc.PASS=d63596a06410b20f670c98051449f16d
org.jitsi.jigasi.xmpp.acc.ALLOW_NON_SECURE=true


# forces sending presence on sip call hangup
net.java.sip.communicator.impl.protocol.jabber.FORCE_PRESENCE_ON_LEAVE=true
@damencho
Copy link
Member

damencho commented Mar 4, 2025

Try changing the codec, does it work with something else? PCMU for example?

@uholeschak
Copy link
Author

uholeschak commented Mar 4, 2025

In custom-sip-communicator.properties I have tried to disable PCMA:

net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=0
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMU/8000=0

Then ist uses iLBC, what is extremely delayed, but still the same error message, and no sound in the outgoing direction.
Or is the error message related to the XMPP connection?
Is this related to #378 ?
Docker also uses Java 17

@damencho
Copy link
Member

damencho commented Mar 4, 2025

Have you tested a 3-way call (withot jigasi) on your deployment?

@uholeschak
Copy link
Author

uholeschak commented Mar 4, 2025

Yes video conferences with multiple users are working correctly.
The SIP connection is also created correctly and packets are send in both direction.
The only problem is there are constant values in the outgoing stream (silence).
Is the message the source of the problem?

Unable to handle format: LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed

@damencho
Copy link
Member

damencho commented Mar 4, 2025

I guess so.

@damencho
Copy link
Member

damencho commented Mar 4, 2025

Yeah, don't use ilbc. But ulaw should be working fine.

@uholeschak
Copy link
Author

uholeschak commented Mar 4, 2025

You mean setting only?

net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=0

I also tested this, same result ...
The strange thing is, the error message is always the same or does it come form the internal XMPP connection?

@damencho
Copy link
Member

damencho commented Mar 4, 2025

Nop, this is disabling it. Set every one else to 0 and just leave That one enabled.
Not sure what happens when you have a double setting in the props file is it the first or the last value used.

@uholeschak
Copy link
Author

uholeschak commented Mar 4, 2025

In the docker settings the default values are:

net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=600
net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMU/8000=650

So I if overwrite it with:

net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=0

PCMU is left over, which is ulaw I expect ...
Or what should I write in custom-sip-communicator.properties ?
The values of custom-sip-communicator.properties are simply copied at the end of sip-communicator.properties

@damencho
Copy link
Member

damencho commented Mar 4, 2025

So I if overwrite it with:

net.java.sip.communicator.impl.protocol.sip.acc1.Encodings.PCMA/8000=0

When you do this, is it trying to use pcmu?

@uholeschak
Copy link
Author

uholeschak commented Mar 4, 2025

Yes but the error message is the same ...
This is the strange thing. Also with iLBC I get this message, which I did not expect.
The error message is not related to the selected codec.
A the moment I have simply no idea what causes the error message.
I also tried to change:

net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.PCMA/8000=600
net.java.sip.communicator.impl.protocol.jabber.acc-0.Encodings.PCMU/8000=650

Same result.

@damencho
Copy link
Member

damencho commented Mar 4, 2025

What codecs does the remote side support?
Yeah, I'm not sure about the problem. We do not use jigasi in this mode and we are not testing the transcoding case. I remember though there was a problem with alaw at some point ... ilbc is not something you should use at all. If that is enabled by default, we should turn it off.
We use jigasi in translator mode, basically the opus packets it receives from the bridge are being routed to the sip side, but in this mode you need to make sure your sip backend can handle multiple ssrc streams for the same call and is mixing them if needed.
We test though opus decoding with the transcriber mode, and that for sure works. So if your sip backend supports opus, just switch off everything and leave opus.

@uholeschak
Copy link
Author

uholeschak commented Mar 4, 2025

Opus is not supported, but you could see there is still the same error later.
The cause of the error must be something else.

2025-03-04 17:52:12 2025-03-04 16:52:12.915 INFO: [83] JvbConference$JvbCallListener.incomingCallReceivedInternal#1685: [ctx=1741107129290481575445] Got invite from focus
2025-03-04 17:52:12 2025-03-04 16:52:12.921 SEVERE: [100] net.java.sip.communicator.impl.protocol.sip.CallPeerSipImpl.answer: Failed to create an SDP description for an OK response to an INVITE request!
2025-03-04 17:52:12 net.java.sip.communicator.service.protocol.OperationFailedException: Offer contained no valid media descriptions.
2025-03-04 17:52:12 at net.java.sip.communicator.impl.protocol.sip.CallPeerMediaHandlerSipImpl.createMediaDescriptionsForAnswer(CallPeerMediaHandlerSipImpl.java:845)
2025-03-04 17:52:12 at net.java.sip.communicator.impl.protocol.sip.CallPeerMediaHandlerSipImpl.processFirstOffer(CallPeerMediaHandlerSipImpl.java:469)
2025-03-04 17:52:12 at net.java.sip.communicator.impl.protocol.sip.CallPeerMediaHandlerSipImpl.processOffer(CallPeerMediaHandlerSipImpl.java:432)
2025-03-04 17:52:12 at net.java.sip.communicator.impl.protocol.sip.CallPeerSipImpl.answer(CallPeerSipImpl.java:1339)
2025-03-04 17:52:12 at net.java.sip.communicator.impl.protocol.sip.OperationSetBasicTelephonySipImpl.answerCallPeer(OperationSetBasicTelephonySipImpl.java:1953)
2025-03-04 17:52:12 at org.jitsi.jigasi.CallManager$AnswerCallThread.run(CallManager.java:356)
2025-03-04 17:52:12 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
2025-03-04 17:52:12 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2025-03-04 17:52:12 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
2025-03-04 17:52:12 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
2025-03-04 17:52:12 at java.base/java.lang.Thread.run(Thread.java:840)
2025-03-04 17:52:12 2025-03-04 16:52:12.928 INFO: [100] SipGatewaySession$SipCallStateListener.handleCallState#1516: [ctx=1741107129290481575445] SIP call ended: CallPeerChangeEvent: type=CallPeerStatusChange oldV=net.java.sip.communicator.service.protocol.CallPeerState:Incoming Call newV=net.java.sip.communicator.service.protocol.CallPeerState:Failed for peer=4962112286112 <[email protected]>;status=Failed reason=Offer contained no valid media descriptions. reasonCode=-1
2025-03-04 17:52:12 2025-03-04 16:52:12.929 INFO: [100] SipGatewaySession$CallPeerListener.peerStateChanged#1577: [ctx=1741107129290481575445] SIP peer state: Failed
2025-03-04 17:52:12 2025-03-04 16:52:12.934 INFO: [104] net.java.sip.communicator.impl.protocol.sip.SipLogger.logInfo: Info from the JAIN-SIP stack: Setting SIPMessage peerPacketSource to: /212.227.124.129:5060
2025-03-04 17:52:13 2025-03-04 16:52:13.023 INFO: [101] net.java.sip.communicator.service.protocol.media.MediaHandler.registerDynamicPTsWithStream: Dynamic PT map: 126=rtpmap:-1 telephone-event/8000; 111=rtpmap:-1 opus/48000/2 fmtp:useinbandfec=1;minptime=10; 
2025-03-04 17:52:13 2025-03-04 16:52:13.023 INFO: [101] net.java.sip.communicator.service.protocol.media.MediaHandler.registerDynamicPTsWithStream: PT overrides []
2025-03-04 17:52:13 2025-03-04 16:52:13.042 INFO: [101] net.java.sip.communicator.service.protocol.media.CallPeerMediaHandler.start: Starting
2025-03-04 17:52:13 2025-03-04 16:52:13.216 INFO: [83] JvbConference$JvbCallChangeListener.callStateChangedInternal#1794: [ctx=1741107129290481575445] JVB conference call IN_PROGRESS.
2025-03-04 17:52:14 2025-03-04 16:52:14.213 INFO: [112] JitsiOpenSslProvider.<clinit>#52: jitsisrtp successfully loaded for OpenSSL 3
2025-03-04 17:52:14 2025-03-04 16:52:14.568 INFO: [112] Aes.benchmark#367: AES benchmark (of execution times expressed in nanoseconds): OpenSSL 655, SunJCE 563, BouncyCastle 9571 for AES/CTR/NoPadding
2025-03-04 17:52:14 2025-03-04 16:52:14.568 INFO: [112] Aes.createCipher#433: Will employ AES implemented by SunJCE for AES/CTR/NoPadding.
2025-03-04 17:52:14 2025-03-04 16:52:14.608 SEVERE: [152] net.sf.fmj.media.Log.error:   Unable to handle format: LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed
2025-03-04 17:52:14 2025-03-04 16:52:14.608 SEVERE: [152] net.sf.fmj.media.Log.error: Failed to prefetch: net.sf.fmj.media.ProcessEngine@5804d448
2025-03-04 17:52:14 2025-03-04 16:52:14.609 SEVERE: [151] net.sf.fmj.media.Log.error: Error: Unable to prefetch net.sf.fmj.media.ProcessEngine@5804d448

@damencho
Copy link
Member

damencho commented Mar 4, 2025

2025-03-04 17:52:12 2025-03-04 16:52:12.921 SEVERE: [100] net.java.sip.communicator.impl.protocol.sip.CallPeerSipImpl.answer: Failed to create an SDP description for an OK response to an INVITE request!
2025-03-04 17:52:12 net.java.sip.communicator.service.protocol.OperationFailedException: Offer contained no valid media descriptions.

Yep, this is because opus is not supported.

@uholeschak
Copy link
Author

But why is there still the message?

2025-03-04 17:52:14 2025-03-04 16:52:14.608 SEVERE: [152] net.sf.fmj.media.Log.error:   Unable to handle format: LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed

This seems a general error ...

@damencho
Copy link
Member

damencho commented Mar 4, 2025

Mind that these are two calls though, on one side is the jvb call and on the other side it the sip call. So I suspect this is probably coming from the jvb call. The real reason for that is buried somewhere in the fmj, but I have been seeing errors like that on a working transcoding jigasi, so I don't know if this is an indication of something.
So the dependency chain is jigais -> jitsi-desktop -> libjitsi -> fmj.

@uholeschak
Copy link
Author

At startup there is this error, but this seems to be normal:

2025-03-04 15:01:13 2025-03-04 14:01:13.399 SEVERE: [19] DeviceConfiguration.registerCustomRenderers#1010: Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.audio.PulseAudioRenderer with JMF.
2025-03-04 15:01:13 java.lang.IllegalStateException: audioSystem

At least I have no idea at the moment what to try next ...

@damencho
Copy link
Member

damencho commented Mar 4, 2025

You can ignore this on startup.

@damencho
Copy link
Member

damencho commented Mar 4, 2025

What is your sip backend? Is it using latching?

@uholeschak
Copy link
Author

Its' simply my provider: sip.1und.de
https://hilfe-center.1und1.de/konfigurationsdaten-internettelefonie
I don't know if latching is supported. I expect you could only find out by trying ...

@damencho
Copy link
Member

damencho commented Mar 4, 2025

That is the problem. They require having a stun server. This will not work with jigasi. Most of the SIP providers rely on latching, they send media from where they receive it, and this is the only mode supported by jigasi.

@uholeschak
Copy link
Author

I also tried to use the local SIP gateway in my network.
But there was the problem that registration failed. Simply no registration response ...

@damencho
Copy link
Member

damencho commented Mar 4, 2025

Is it using some custom port or anything?

@uholeschak
Copy link
Author

No basically not. I have used a FritzBox for that. Maybe they require special settings.
With the same account I am at least able to use https://www.microsip.org this is working without any problems.
But there is also a problem with the docket network. The jigasi telegrams are send only once out after creating the container.
After that there is not route to host ...
Deleting the container and creating is new one does not help.
I have to shut down docker and restart it. Then sending is working again, once for the new container.

@uholeschak
Copy link
Author

When using the local server, it's responding, but the packet seems to reach the docker container (timeout):

2025-03-04 21:41:14 2025-03-04 20:41:14.587 INFO: [37] SipGateway.registrationStateChanged#120: REG STATE CHANGE ProtocolProviderServiceSipImpl(SIP:fritzphone2@fritz2) -> RegistrationStateChangeEvent[ oldState=Unregistered; newState=RegistrationState=Registering; userRequest=false; reasonCode=-1; reason=null]
2025-03-04 21:41:14 2025-03-04 20:41:14.875 INFO: [44] net.java.sip.communicator.impl.protocol.jabber.ProtocolProviderServiceJabberImpl$JabberConnectionListener.authenticated: Authenticated: false
2025-03-04 21:41:14 2025-03-04 20:41:14.878 INFO: [53] CallControlMucActivator.joinCommonRoom#289: Joining call control room: [email protected] pps:ProtocolProviderServiceJabberImpl(Jabber:[email protected]@0), id:acc-0
2025-03-04 21:41:14 2025-03-04 20:41:14.930 INFO: [57] net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl$MemberListener.joined: [email protected]/focus has joined the [email protected] chat room.
2025-03-04 21:41:14 2025-03-04 20:41:14.933 INFO: [58] net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl$MemberListener.joined: [email protected]/jitsi-2eia1se has joined the [email protected] chat room.
2025-03-04 21:41:14 2025-03-04 20:41:14.934 INFO: [53] CallControlMucActivator.joinCommonRoom#327: Joined call control room: [email protected] pps:ProtocolProviderServiceJabberImpl(Jabber:[email protected]@0), id:acc-0 nickname:jitsi-2eia1se sessionId:null
2025-03-04 21:41:49 2025-03-04 20:41:49.625 INFO: [35] SipGateway.registrationStateChanged#120: REG STATE CHANGE ProtocolProviderServiceSipImpl(SIP:fritzphone2@fritz2) -> RegistrationStateChangeEvent[ oldState=Registering; newState=RegistrationState=Connection Failed; userRequest=false; reasonCode=-1; reason=A timeout occurred while trying to connect to the server.]
2025-03-04 21:41:49 2025-03-04 20:41:49.636 INFO: [35] net.java.sip.communicator.impl.protocol.sip.SipLogger.logInfo: Info from the JAIN-SIP stack: the sip stack timer gov.nist.javax.sip.stack.timers.DefaultSipTimer has been stopped
2025-03-04 21:41:50 2025-03-04 20:41:50.638 INFO: [35] net.java.sip.communicator.impl.protocol.sip.SipLogger.logInfo: Info from the JAIN-SIP stack: the sip stack timer gov.nist.javax.sip.stack.timers.DefaultSipTimer has been stopped

Wireshark:

Frame 461: 560 bytes on wire (4480 bits), 560 bytes captured (4480 bits) on interface \Device\NPF_{5F9CF387-207A-463B-ABB1-75B4182CA1C6}, id 0
Ethernet II, Src: EliteGroupCo_6f:77:1d (1c:69:7a:6f:77:1d), Dst: AVMAudiovisu_a0:ad:73 (98:9b:cb:a0:ad:73)
Internet Protocol Version 4, Src: 192.168.150.11, Dst: 192.168.150.14
User Datagram Protocol, Src Port: 58802, Dst Port: 5060
Session Initiation Protocol (REGISTER)
    Request-Line: REGISTER sip:fritz2.local.holeschak.de SIP/2.0
        Method: REGISTER
        Request-URI: sip:fritz2.local.holeschak.de
        [Resent Packet: True]
        [Suspected resend of frame: 177]
    Message Header
        Call-ID: 3888b49a5b6e3e47c0775eba06e97d43@0:0:0:0:0:0:0:0
        [Generated Call-ID: 3888b49a5b6e3e47c0775eba06e97d43@0:0:0:0:0:0:0:0]
        CSeq: 1 REGISTER
            Sequence Number: 1
            Method: REGISTER
        From: "fritzphone2" <sip:fritzphone2@fritz2>;tag=dd05d3e9
            SIP from display info: "fritzphone2"
            SIP from address: sip:fritzphone2@fritz2
                SIP from address User Part: fritzphone2
                SIP from address Host Part: fritz2
            SIP from tag: dd05d3e9
        To: "fritzphone2" <sip:fritzphone2@fritz2>
            SIP to display info: "fritzphone2"
            SIP to address: sip:fritzphone2@fritz2
                SIP to address User Part: fritzphone2
                SIP to address Host Part: fritz2
        Via: SIP/2.0/UDP 172.18.0.5:5060;branch=z9hG4bK-323437-c426d4e584862c1ef9f2f09ea344c6f9
            Transport: UDP
            Sent-by Address: 172.18.0.5
            Sent-by port: 5060
            Branch: z9hG4bK-323437-c426d4e584862c1ef9f2f09ea344c6f9
        Max-Forwards: 70
        User-Agent: Jigasi1.1.374-g0ab957cLinux
        Expires: 600
        Contact: "fritzphone2" <sip:[email protected]:5060;transport=udp;registering_acc=fritz2>;expires=600
            SIP C-URI display info: "fritzphone2"
            Contact URI: sip:[email protected]:5060;transport=udp;registering_acc=fritz2
            Contact parameter: expires=600
        Content-Length: 0

Frame 462: 495 bytes on wire (3960 bits), 495 bytes captured (3960 bits) on interface \Device\NPF_{5F9CF387-207A-463B-ABB1-75B4182CA1C6}, id 0
Ethernet II, Src: AVMAudiovisu_a0:ad:73 (98:9b:cb:a0:ad:73), Dst: EliteGroupCo_6f:77:1d (1c:69:7a:6f:77:1d)
Internet Protocol Version 4, Src: 192.168.150.14, Dst: 192.168.150.11
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
Session Initiation Protocol (401)
    Status-Line: SIP/2.0 401 Unauthorized
        Status-Code: 401
        [Resent Packet: True]
        [Suspected resend of frame: 178]
    Message Header
        Via: SIP/2.0/UDP 172.18.0.5:5060;branch=z9hG4bK-323437-c426d4e584862c1ef9f2f09ea344c6f9;received=192.168.150.11
            Transport: UDP
            Sent-by Address: 172.18.0.5
            Sent-by port: 5060
            Branch: z9hG4bK-323437-c426d4e584862c1ef9f2f09ea344c6f9
            Received: 192.168.150.11
        From: "fritzphone2" <sip:fritzphone2@fritz2>;tag=dd05d3e9
            SIP from display info: "fritzphone2"
            SIP from address: sip:fritzphone2@fritz2
                SIP from address User Part: fritzphone2
                SIP from address Host Part: fritz2
            SIP from tag: dd05d3e9
        To: "fritzphone2" <sip:fritzphone2@fritz2>;tag=15462397736F68C3
            SIP to display info: "fritzphone2"
            SIP to address: sip:fritzphone2@fritz2
                SIP to address User Part: fritzphone2
                SIP to address Host Part: fritz2
            SIP to tag: 15462397736F68C3
        Call-ID: 3888b49a5b6e3e47c0775eba06e97d43@0:0:0:0:0:0:0:0
        [Generated Call-ID: 3888b49a5b6e3e47c0775eba06e97d43@0:0:0:0:0:0:0:0]
        CSeq: 1 REGISTER
            Sequence Number: 1
            Method: REGISTER
        WWW-Authenticate: Digest realm="fritz.box", nonce="1E02E29F42B125FE"
            Authentication Scheme: Digest
            Realm: "fritz.box"
            Nonce Value: "1E02E29F42B125FE"
        User-Agent: FRITZ!OS
        Content-Length: 0

@uholeschak
Copy link
Author

The registration on the local server is working if JIGASI_SIP_TRANSPORT=TCP is selected.
Something is still not working after registration, but the docker routing bug is only for UDP.

@felipeavilis
Copy link

I'm facing a similar issue trying to use Twilio for SIP. By default, Twilio uses PCMU and PCMA codecs for Elastic SIP Trunking.

@uholeschak
Copy link
Author

When using JIGASI_SIP_TRANSPORT=TCP its registering correctly, but SIP connection is not working afterwards ...

@damencho
Copy link
Member

I just tested pcmu and pcma all works good. Transcoding from opus to any of those codecs.

@damencho
Copy link
Member

So there is no issue at the jigasi side. Seems something else, maybe something blocking media to reach jigasi.
Make a tcpdump and look at the sip and rtp traffic, check does everything looks good.

@uholeschak
Copy link
Author

I think there is a problem in docker. Outgoing UDP packets are only visible once after container creation, but the responses are not received. To make sending work a second time you have to shut down docker completely and restart it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants