Open szcom opened 2 years ago
Hello @szcom! :wave: we're sorry you found a bug... so first of all, thank you very much for reporting it.
To know about progress, check in Triage. All issues are considered Backlog Candidates until work priorities align and the issue is selected for development. It will then become part of our official Backlog.
Prerequisites
These are MANDATORY, otherwise the issue will be automatically closed.
Issue description
WebRTCEndpoint (offerer) fails to handle incoming RTP audio stream when answer SDP does not include a=ssrc attribute. Result in audio is one way - offerer to answerer. Audio from answerer is dropped.
This sequence of events leads to the issue.
When audio stream from answerer comes following printout appears in KMS logs:
ICE and DTLS connected fine but in absence of the a=ssrc attribute in answer SDP KMS fails to build a functioning RTP source pad.
Context
I am trying to get WebRTCEndpoint to talk another WebRTC peer as an offerer but getting one way audio from KMS to external endpoint. RTP sent by external endpoint is dropped by WebRTCEndpoint.
Worth mentioning I don't see the same problem when KMS answers WebRTC SDP.
How to reproduce?
I think issue should be reproducible by creating 2 pipelines with a player and WebRTCEndpoint in each.
Expected & current behavior
KMS should correctly connect RTP source even though SDP does not have a=ssrc: parameter
(Optional) Possible solution
Info about your environment
KMS latest docker running on OSX
No STUN/TURN servers. Peer endpoint is on public internet. Local pipeline has WebRTCEndpoint connected to the peer.
About Kurento Media Server
About your Application Server
About end-user clients
N/A
Run these commands
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.7 LTS"
Kurento Media Server version: 6.18.0 Found modules: 'chroma' version 6.18.0 'core' version 6.18.0 'crowddetector' version 6.18.0 'elements' version 6.18.0 'filters' version 6.18.0 'markerdetector' version 6.18.0 'platedetector' version 6.18.0 'pointerdetector' version 6.18.0
ii gir1.2-gst-plugins-base-1.5 1.8.1-1kurento2.16.04 amd64 Description: GObject introspection data for the GStreamer Plugins Base library ii gir1.2-gstreamer-1.5 1.8.1-1kurento2.16.04 amd64 Description: GObject introspection data for the GStreamer library ii gir1.2-nice-0.1:amd64 0.1.18-0kurento2.16.04 amd64 ICE library (GObject introspection) ii gstreamer1.5-libav:amd64 1.8.1-1kurento1.16.04 amd64 libav plugin for GStreamer ii gstreamer1.5-nice:amd64 0.1.18-0kurento2.16.04 amd64 ICE library (GStreamer 1.5 plugin) ii gstreamer1.5-plugins-bad:amd64 1.8.1-1kurento5.16.04 amd64 GStreamer plugins from the "bad" set ii gstreamer1.5-plugins-base:amd64 1.8.1-1kurento2.16.04 amd64 GStreamer plugins from the "base" set ii gstreamer1.5-plugins-good:amd64 1.8.1-1kurento5.16.04 amd64 GStreamer plugins from the "good" set ii gstreamer1.5-plugins-ugly:amd64 1.8.1-1kurento1.16.04 amd64 GStreamer plugins from the "ugly" set ii gstreamer1.5-pulseaudio:amd64 1.8.1-1kurento5.16.04 amd64 GStreamer plugin for PulseAudio ii kms-chroma 6.18.0-0kurento1.16.04 amd64 Kurento Chroma filter ii kms-cmake-utils 6.18.0-0kurento1.16.04 all Kurento CMake utils ii kms-core 6.18.0-0kurento1.16.04 amd64 Kurento Core module ii kms-core-dev 6.18.0-0kurento1.16.04 amd64 Kurento Core module ii kms-crowddetector 6.18.0-0kurento1.16.04 amd64 Kurento Crowd Detector filter ii kms-elements 6.18.0-0kurento1.16.04 amd64 Kurento Elements module ii kms-elements-dev 6.18.0-0kurento1.16.04 amd64 Kurento Elements module ii kms-filters 6.18.0-0kurento1.16.04 amd64 Kurento Filters module ii kms-filters-dev 6.18.0-0kurento1.16.04 amd64 Kurento Filters module ii kms-jsonrpc 6.18.0-0kurento1.16.04 amd64 Kurento JSON-RPC library ii kms-jsonrpc-dev 6.18.0-0kurento1.16.04 amd64 Kurento JSON-RPC library ii kms-markerdetector 6.18.0-0kurento1.16.04 amd64 Kurento Augmented Reality marker detector ii kms-platedetector 6.18.0-0kurento1.16.04 amd64 Kurento Plate Detector filter ii kms-pointerdetector 6.18.0-0kurento1.16.04 amd64 Kurento Pointer Detector filter ii kmsjsoncpp 1.6.3-1kurento1.16.04 amd64 Kurento jsoncpp library ii kmsjsoncpp-dev 1.6.3-1kurento1.16.04 amd64 Kurento jsonrpc library ii kurento-media-server 6.18.0-0kurento1.16.04 amd64 Kurento Media Server ii kurento-media-server-dev 6.18.0-0kurento1.16.04 amd64 Kurento Media Server ii kurento-module-creator 6.18.0-0kurento1.16.04 all Kurento Module Creator ii libgstreamer-plugins-bad1.5-0:amd64 1.8.1-1kurento5.16.04 amd64 GStreamer development files for libraries from the "bad" set ii libgstreamer-plugins-base1.5-0:amd64 1.8.1-1kurento2.16.04 amd64 GStreamer libraries from the "base" set ii libgstreamer-plugins-base1.5-dev 1.8.1-1kurento2.16.04 amd64 GStreamer development files for libraries from the "base" set ii libgstreamer1.5-0:amd64 1.8.1-1kurento2.16.04 amd64 Core GStreamer libraries and elements ii libgstreamer1.5-dev 1.8.1-1kurento2.16.04 amd64 GStreamer core development files ii libnice-dev 0.1.18-0kurento2.16.04 amd64 ICE library (development files) ii libnice10:amd64 0.1.18-0kurento2.16.04 amd64 ICE library (shared library) ii libsrtp0:amd64 1.6.0-0kurento1.16.04 amd64 Secure RTP (SRTP) and UST Reference Implementations - shared library ii libusrsctp 0.9.2-1kurento1.16.04 amd64 sctp-refimpl library ii openh264 1.5.0-0kurento1.16.04 amd64 H.264 Video Codec provided by Cisco Systems, Inc. ii openh264-gst-plugins-bad-1.5:amd64 1.8.1-1kurento5.16.04 amd64 GStreamer plugins from openh264 ii openwebrtc-gst-plugins 0.10.0-1kurento1.16.04 amd64 OpenWebRTC specific GStreamer plugins ii openwebrtc-gst-plugins-dev 0.10.0-1kurento1.16.04 amd64 OpenWebRTC specific GStreamer plugins