You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jul 12, 2023. It is now read-only.
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.
webrtcendpoint.generateOffer
v=0
o=- 3875948703 3875948703 IN IP4 0.0.0.0
s=Kurento Media Server
c=IN IP4 0.0.0.0
t=0 0
a=group:BUNDLE audio0
m=audio 1 RTP/SAVPF 96 0
a=setup:actpass
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=rtpmap:96 opus/48000/2
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=mid:audio0
a=ssrc:1753807169 cname:user760579686@host-334cc830
a=ice-ufrag:YSGY
a=ice-pwd:aafQId9sQ90XrwZjFIfp0H
a=fingerprint:sha-256 B4:DA:B0:47:CD:4E:A9:39:43:D9:4C:DC:3D:86:BB:8F:99:FE:55:48:A4:09:21:7B:C3:1E:E7:C3:AA:CB:D1:BB
When audio stream from answerer comes following printout appears in KMS logs:
0:01:47.728442100 1 0x7f7f640502d0 ERROR kmsbasertpsession kmsbasertpsession.c:375:rtp_ssrc_demux_new_ssrc_pad:<kmswebrtcsession1> Remote SSRC 3272874663 doesn't match any SDP media; DATA WILL BE DROPPED
0:01:47.728463200 1 0x7f7f640502d0 WARN basertpendpoint kmsbasertpendpoint.c:923:kms_base_rtp_endpoint_request_rtp_sink:<kmswebrtcendpoint1> Discarding all RTP from unknown media: '(NULL)'
0:01:47.728626100 1 0x7f7f640502d0 WARN basertpendpoint kmsbasertpendpoint.c:993:kms_base_rtp_endpoint_request_rtcp_sink:<kmswebrtcendpoint1> Discarding all RTCP from unknown media: '(NULL)'
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.
Pipeline1: PlayerEndpoint->WebrtcEndpoint, make sure only PCMU codec is enabled in KMS config
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
dpkg -l | grep -Pi 'kurento|kms-|gst.*1.5|nice'
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
The text was updated successfully, but these errors were encountered:
Hello @szcom! 👋 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.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
The text was updated successfully, but these errors were encountered: