WebRTC connection failed due to DTLS error

Vladimir Tyutin vladimir.tyutin at gmail.com
Tue Dec 29 13:06:57 UTC 2020


I can collect it from the moment when webrtc offer is generating. 

My architecture is:
1. Remote client (iOS, Android, Web) send MQTT request to camera device to generate SDP offer
2. Offer is generating on camera and sent to client. 
3. Client responds with SDP answer and webrtc session starts

I can collect log at the moment offer is generating on camera device.

> On 29 Dec 2020, at 15:56, Anton Pryima <zingfrid at gmail.com> wrote:
> 
> if it is possible, it will be better to have GST_DEBUG=*:7, but cut only the connection state (you know, when it will be.... :)
> 
> Best regards,
> Anton
> 
> On Tue, Dec 29, 2020 at 2:52 PM Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
> Sure Anton,
> I will collect it once again and attach it to the next email. 
> 
> I use the following command to activate logging:
> “export GST_DEBUG=2,webrtc*:6,*dtls*:7”
> 
> Let me know if I need to include any other plugins to logging that might assist to analyse the issue. 
> 
> Thanks,
> Vladimir 
> 
>> On 29 Dec 2020, at 15:22, Anton Pryima <zingfrid at gmail.com <mailto:zingfrid at gmail.com>> wrote:
>> 
>> Hello Vladimir,
>> 
>> I've tried to google your errors and it looks like that dtls is not the reason. Can you please attach the full connection log from the beginning?
>> 
>> Best regards,
>> Anton.
>> 
>> On Tue, Dec 29, 2020 at 10:02 AM Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
>> Anton, 
>> It's difficult to do on opponent side because there I have:
>> 1. iOS application with webrtc
>> 2. Android application with webrtc
>> 3. JS application with webrtc
>> 
>> Can you advise how to check openssl there?
>> But all three applications worked well when I used gstreamer version 1.16.0 on my Linux camera device. 
>> Once I updated gstreamer version to 1.18.2 on camera device something broke. 
>> So I'm pretty sure issue on camera side but I have no idea how to understand this log with dtls error and what should I fix.
>> 
>> Moreover on my linux camera device I have gnutls and openssl. What is used by dtls plugin? Is it openssl or gnutls?
>> 
>> Thanks,
>> Vladimir  
>> 
>> 
>> 
>> On Tue, Dec 29, 2020 at 10:49 AM Anton Pryima <zingfrid at gmail.com <mailto:zingfrid at gmail.com>> wrote:
>> Hello Vladimir.
>> 
>> Try to execute 'openssl version' at the both sides and provide output.
>> 
>> Best regards,
>> Anton.
>> 
>> On Mon, Dec 28, 2020, 22:03 Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
>> I still can't resolve the issue. 
>> Can someone with dtls plugin experience analyze the log attached and tell me what is wrong and how to fix it?
>> 
>> DTLS plugin exists. Openssl is available on my camera device:
>> root at tina:~# openssl version
>> OpenSSL 1.1.0i  14 Aug 2018
>> 
>> So why webrtc can't connect due to dtls issue?
>> 
>> Same code was working on gstreamer version 1.16.0. The issue appeared when I migrated to gstreamer version 1.18.2.
>> 
>> I have also updated libnice to the latest version. 
>> 
>> Please help me.
>> 
>> Thanks,
>> Vladimir
>> 
>> On Thu, Dec 24, 2020 at 10:48 AM Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
>> Thanks Anton,
>> Do you know if there any command in Linux to verify OpenSSL exists and running well?
>> In my build for openwrt Linux OpenSSL is included. 
>> 
>>> On 24 Dec 2020, at 10:25, Anton Pryima <zingfrid at gmail.com <mailto:zingfrid at gmail.com>> wrote:
>>> 
>>> 
>>> Hello Vladimir.
>>> 
>>> According to both logs provided, I see an issue with OpenSSL. Please ensure that both ends have correct and working versions of OpenSSL.
>>> 
>>> Best regards,
>>> Anton
>>> 
>>> On Thu, Dec 24, 2020, 08:40 Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
>>> Hello everyone,
>>> Can someone help me with issue below?
>>> Please review the log from previous mail and suggest what is the issue with dtls and how to fix it. 
>>> 
>>> Thanks,
>>> Vladimir 
>>> 
>>>> On 20 Dec 2020, at 09:53, Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
>>>> 
>>>> 
>>>> Please find the log attached with dtls log level set to 7. 
>>>> Please help me to understand what is wrong and why peer connection is failing. 
>>>> 
>>>> Thanks,
>>>> Vladimir
>>>> 
>>>> On Sun, Dec 20, 2020 at 8:56 AM Vladimir Tyutin <vladimir.tyutin at gmail.com <mailto:vladimir.tyutin at gmail.com>> wrote:
>>>> Hi Sean,
>>>> Thanks for your reply. Could you please advise how better to collect DTLS pcaps?
>>>> I can activate log for DTLS element like this:
>>>> export GST_DEBUG=2,dtls*:7
>>>> Is it enough?
>>>> 
>>>> By the way I'm trying to get webrtc working between Lindenis V536 camera and iOS app. 
>>>> They have already worked before together. On iOS side nothing is changed. 
>>>> in camera side I have migrated from gstreamer version 1.16.0 to version 1.18.2. 
>>>> So is there any changes in dtls side between these versions. 
>>>> Any suggesting how better to debug this issue I would appreciate.
>>>> 
>>>> Thanks,
>>>> Vladimir
>>>> 
>>>> PS. I will share DTLS element logs once I collect it.
>>>> 
>>>> On Sun, Dec 20, 2020 at 1:19 AM Sean DuBois <sean at siobud.com <mailto:sean at siobud.com>> wrote:
>>>> Hey Vladimir,
>>>> 
>>>> Would you mind getting a pcap of your DTLS traffic? I assume you are
>>>> getting a Close because the clients are incompatible. These are the big
>>>> ones I have seen with DTLS.
>>>> 
>>>> * One side doesn't have use_srtp
>>>> * DTLS v1.0 and v1.2 mismatch
>>>> * One side requiring Extended Master Secret, other side not supporting
>>>> * .... lots of other crazy stuff :)
>>>> 
>>>> thanks
>>>> 
>>>> On Sat, Dec 19, 2020 at 04:54:58PM +0300, Vladimir Tyutin wrote:
>>>> > Please assist me to solve the issue below.
>>>> > I observe WebRTC peer connection can't be established.
>>>> > In log I see some errors related to dtls. Please help me understand the log
>>>> > below and get the issue resolved:
>>>> >
>>>> > 0:01:21.644288173  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1073:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1ab0f08 DTLS state: 0x0
>>>> > 0:01:21.644405214  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1086:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1ab0f08 ICE state: 0x1
>>>> > 0:01:21.644569089  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1073:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1bed050 DTLS state: 0x3
>>>> > 0:01:21.644678631  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1086:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1bed050 ICE state: 0x2
>>>> > 0:01:21.644764381  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1131:_collate_peer_connection_states:<webrtc>
>>>> > ICE connection state: 0x6. DTLS connection state: 0x9
>>>> > 0:01:21.644837673  1090  0x1b401b0 FIXME              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1189:_collate_peer_connection_states:<webrtc>
>>>> > Undefined situation detected, returning old state
>>>> > 0:01:21.762102246  1090  0x1f1b7b0 WARN           dtlssrtpdemux
>>>> > gst-plugins-bad-1.18.2/ext/dtls/gstdtlssrtpdemux.c:134:sink_chain:<dtlssrtpdemux2>
>>>> > received invalid buffer: 1
>>>> > 0:01:21.769914036  1090  0x1f1b7b0 ERROR         dtlsconnection
>>>> > gst-plugins-bad-1.18.2/ext/dtls/gstdtlsconnection.c:985:handle_error:<GstDtlsConnection at 0x1da56f0>
>>>> > Fatal SSL error
>>>> > 0:01:21.770157620  1090  0x1f1b7b0 ERROR         dtlsconnection
>>>> > gst-plugins-bad-1.18.2/ext/dtls/gstdtlsconnection.c:968:ssl_err_cb:<GstDtlsConnection at 0x1da56f0>
>>>> > ssl error:
>>>> > 2947169560:error:14102410:lib(20):func(258):reason(1040):NA:0:SSL alert
>>>> > number 40
>>>> >
>>>> > 0:01:21.770551453  1090  0x1f1b7b0 ERROR                dtlsdec
>>>> > gst-plugins-bad-1.18.2/ext/dtls/gstdtlsdec.c:502:process_buffer:<dtlsdec2>
>>>> > Error processing buffer: Fatal SSL error
>>>> > 0:01:21.770553453  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1073:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1ab0f08 DTLS state: 0x0
>>>> > 0:01:21.770745245  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1086:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1ab0f08 ICE state: 0x1
>>>> > 0:01:21.770861286  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1073:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1bed050 DTLS state: 0x2
>>>> > 0:01:21.770951120  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1086:_collate_peer_connection_states:<webrtc>
>>>> > transceiver 0x1bed050 ICE state: 0x2
>>>> > 0:01:21.771039203  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1131:_collate_peer_connection_states:<webrtc>
>>>> > ICE connection state: 0x6. DTLS connection state: 0x5
>>>> > 0:01:21.771119036  1090  0x1b401b0 TRACE              webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1145:_collate_peer_connection_states:<webrtc>
>>>> > returning failed
>>>> > 0:01:21.771230036  1090  0x1b401b0 INFO               webrtcbin
>>>> > gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1295:_update_peer_connection_state_task:<webrtc>
>>>> > Peer connection state change from connecting(1) to failed(4)
>>>> > [CAMERA_DEBUG] Peer connection state: failed
>>>> > 0:01:21.770664245  1090  0x1f1b7b0 WARN                 dtlsdec
>>>> > gst-plugins-bad-1.18.2/ext/dtls/gstdtlsdec.c:503:process_buffer:<dtlsdec2>
>>>> > error: Fatal SSL error
>>>> > 0:01:21.772238245  1090  0x1f1b7b0 ERROR                dtlsdec
>>>> > gst-plugins-bad-1.18.2/ext/dtls/gstdtlsdec.c:618:sink_chain:<dtlsdec2>
>>>> > Failed to process buffer: error
>>>> > 0:01:21.808121366  1090  0x1f1ba90 WARN                 basesrc
>>>> > gstreamer-1.18.2/libs/gst/base/gstbasesrc.c:3127:gst_base_src_loop:<nicesrc2>
>>>> > error: Internal data stream error.
>>>> > 0:01:21.808266866  1090  0x1f1ba90 WARN                 basesrc
>>>> > gstreamer-1.18.2/libs/gst/base/gstbasesrc.c:3127:gst_base_src_loop:<nicesrc2>
>>>> > error: streaming stopped, reason error (-5)
>>>> > 0:01:21.809681158  1090  0x1f1ba90 WARN                   queue
>>>> > gstreamer-1.18.2/plugins/elements/gstqueue.c:990:gst_queue_handle_sink_event:<queue8>
>>>> > error: Internal data stream error.
>>>> > 0:01:21.809811158  1090  0x1f1ba90 WARN                   queue
>>>> > gstreamer-1.18.2/plugins/elements/gstqueue.c:990:gst_queue_handle_sink_event:<queue8>
>>>> > error: streaming stopped, reason error (-5)
>>>> 
>>>> > _______________________________________________
>>>> > gstreamer-devel mailing list
>>>> > gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>>> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>> 
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>> <log_v536.txt>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201229/9b7508d7/attachment-0001.htm>


More information about the gstreamer-devel mailing list