Navigation Menu

Skip to content
This repository has been archived by the owner on Mar 29, 2018. It is now read-only.

Latest libjitsi.jar throws DTLS exception while jvb's libjitsi.jar is OK #7

Open
southerncross opened this issue Aug 11, 2014 · 6 comments

Comments

@southerncross
Copy link
Contributor

If I use libjitsi.jar copied from videobridge(https://download.jitsi.org/jitsi-videobridge/linux/jitsi-videobridge-linux-x64-202.zip), everything is OK, no exception appears.
But if I use libjitsi.jar built from latest version of libjitsi repo, there will be some DTLS exceptions:
BTW, libjitsi and bouncycastle(bcpkix-jdk15on-151.jar, bcprov-jdk15on-151.jar) have been updated to latest version.

Here are DTLS exceptions:

SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Aug 11, 2014 2:39:18 PM org.jitsi.util.Logger info
INFO: Starting, format=audio 1542631196
Aug 11, 2014 2:39:18 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Exception in thread "Thread-15" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Aug 11, 2014 2:39:19 PM net.sf.fmj.media.Log info
INFO: Resetting queue, last seq added: 9223372036854775806, current seq: 10734
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Exception in thread "Thread-19" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set incoming payload type 116
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set outgoing payload type -1
Aug 11, 2014 2:39:19 PM net.sf.fmj.media.Log info
INFO: Growing packet queue to 300
Exception in thread "Thread-20" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more
Aug 11, 2014 2:39:19 PM net.sf.fmj.media.Log info
INFO: Resetting queue, last seq added: 9223372036854775806, current seq: 20862
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Starting, format=video 1462519656
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set incoming payload type 116
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set outgoing payload type -1
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: New FECReceiver for SSRC=3113195556
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: New FECReceiver for SSRC=1110375454
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Recording task of MUC ixjftw0vgdz8semi@conference.example.com started.
Exception in thread "Thread-16" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more

@Haerezis
Copy link

I'm using libjitsi from the commit a119d268467bfdbb9e3c07796bf3f7d3e6fda704 and I don't have any problem.
I see that you still use the beta version of bouncycastle lib, maybe you should update them to the stable version 1.51 (it was released).

You also need to use a version of videobridge that use a version of libjitsi with the dtls change made by lyubomir.
For example I was using the Hammer on meet.jit.si but it wasn't working, but it does with beta.meet.jit.si

@southerncross
Copy link
Contributor Author

Thanks for your advice : )
I have updated bouncycastle in my environment, but haven't upload it into github yet.
The last sentence you mentioned sounds interesting, how can you do that? I mean, how to use beta.meet.jit.si?

@Haerezis
Copy link

mmmh sorry. With the Hammer, I can connect to every Jitsi-Meet server I want, and beta.meet.jit.si work because it has libjitsi updated and not meet.jit.si .
I don't think you can "use" beta.meet.jit.si with Jirecon because it's a XMPP server component (if I'm not mistaken). Sorry for the confusion.

What version of videobridge do you use to test your Jirecon? It has to be one of the latest, because it need to have a libjitsi version with the dtls change made by Lyubomir (for example up to date to the commit I've mentionned before).

@southerncross
Copy link
Contributor Author

Oh, the version of my videobridge is b7787a4deb91416c60c2855eb15bccf45d242cfd, I think it has contained your commit. That's pretty weird, fortunately, if I copy videobridge's libjitsi.jar to Jirecon, the problem will disappear.

@Haerezis
Copy link

For libjitsi, did you pull/merge the latest commit to the version where you've applied the patch given when DTLS wasn't working?
If that's the case, maybe it merge correctly, and you disabled cipher that should not have been disabled for the latest version to work ?

@southerncross
Copy link
Contributor Author

Well, I just cleared my environment and cloned a new libjitsi repo, so I actually didn't use that patch on bouncycastle library anymore. I also used to try that patch, but it didn't work..

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

No branches or pull requests

2 participants