hi all,
i write a small client demo with libmediasoupclient using vs2017 on win10, using the server of mediasoup-demo https://github.com/versatica/mediasoup-demo, just change the https server to http server.
Thanks to your help so much, i finally make it to see each other (video ok) in communication, unfortunatelly no voice.
i refer to https://github.com/versatica/mediasoup-broadcaster-demo , create my video track and audio track as below.
- first create factory
networkThread = rtc::Thread::Create().release();
signalingThread = rtc::Thread::Create().release();
workerThread = rtc::Thread::Create().release();
networkThread->SetName("network_thread", nullptr);
signalingThread->SetName("signaling_thread", nullptr);
workerThread->SetName("worker_thread", nullptr);
factory = webrtc::CreatePeerConnectionFactory(
networkThread,
workerThread,
signalingThread,
nullptr,
webrtc::CreateBuiltinAudioEncoderFactory(),
webrtc::CreateBuiltinAudioDecoderFactory(),
webrtc::CreateBuiltinVideoEncoderFactory(),
webrtc::CreateBuiltinVideoDecoderFactory(),
nullptr /*audio_mixer*/,
nullptr /*audio_processing*/);
as video is ok , i just paste audio track
rtc::scoped_refptr<webrtc::AudioTrackInterface> createAudioTrack(/*const std::string& label*/)
{
if (!factory)
createFactory();
cricket::AudioOptions options;
options.auto_gain_control = true;
//options.highpass_filter = false;
options.echo_cancellation = true;
options.noise_suppression = true;
rtc::scoped_refptr<webrtc::AudioSourceInterface> source = factory->CreateAudioSource(options);
return factory->CreateAudioTrack("audio_track", source);
}
then produce
use this to check
_mediasoupDevice->CanProduce(“audio”)
it’s ok then call createAudioTrack() and produce audio
Json codecOptions =
{
{ "opusStereo", true },
{ "opusDtx", true }
};
auto* audioProducerListener = new MyProducerListener();
mediasoupclient::Producer *_micProducer = _sendTransport->Produce(
audioProducerListener,
audio_track,
nullptr,
&codecOptions);
sendTransport OnConnect ok, and OnProduce fires, server construct a producer for audio and return it’s id, everything seems ok. even Windows notifies my demo is using my microphone…this is trace of client:
[TRACE] Transport::mediasoupclient::SendTransport::Produce()
[TRACE] ortc::mediasoupclient::ortc::validateProducerCodecOptions()
[TRACE] Handler::mediasoupclient::SendHandler::Send()
[DEBUG] Handler::mediasoupclient::SendHandler::Send() | [kind:audio, track->id():audio_track]
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::GetNextMediaSectionIdx()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::AddTransceiver()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnRenegotiationNeeded()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::CreateOffer()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::CreateSessionDescriptionObserver::GetFuture()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::CreateSessionDescriptionObserver::OnSuccess()
[TRACE] Handler::mediasoupclient::Handler::SetupTransport()
[TRACE] Sdp::Utils::mediasoupclient::Sdp::Utils::extractDtlsParameters()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::UpdateDtlsRole()
[TRACE] Transport::mediasoupclient::Transport::OnConnect()
enter MySendTransportListener::OnConnect()
[TRACE] Transport::mediasoupclient::Transport::GetId()
"requestBy() [method:connectWebRtcTransport, id:4]"
[DEBUG] Handler::mediasoupclient::SendHandler::Send() | calling pc->SetLocalDescription():
v=0
o=- 7782735175858330809 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=msid-semantic: WMS 0
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:VcOi
a=ice-pwd:vBdq9gA0bglg/gr0D2LHXY7D
a=ice-options:trickle
a=fingerprint:sha-256 A6:91:A0:FE:30:12:AD:3A:C4:48:AE:5F:2A:59:6C:39:CB:C9:FA:C9:52:66:C8:1C:78:BD:78:70:CE:25:A3:D4
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly
a=msid:0 audio_track
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:2548515804 cname:2nMdXbhuOdFHfk0O
a=ssrc:2548515804 msid:0 audio_track
a=ssrc:2548515804 mslabel:0
a=ssrc:2548515804 label:audio_track
<Send> [EchoClient] {"data":{"dtlsParameters":{"fingerprints":[{"algorithm":"sha-256","value":"A6:91:A0:FE:30:12:AD:3A:C4:48:AE:5F:2A:59:6C:39:CB:C9:FA:C9:52:66:C8:1C:78:BD:78:70:CE:25:A3:D4"}],"role":"server"},"transportId":"c6e36077-acca-463a-9faf-495d369d2a2d"},"id":4,"method":"connectWebRtcTransport","request":true}
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetLocalDescription()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::GetFuture()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange() | [newState:have-local-offer]
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::OnSuccess()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange() | [newState:gathering]
[TRACE] PeerConnection::mediasoupclient::PeerConnection::GetLocalDescription()
[TRACE] Sdp::Utils::mediasoupclient::Sdp::Utils::getCname()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::Send()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceCandidate()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::MediaSection()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceCandidate() | [candidate:candidate:2131708102 1 udp 2122260223 192.168.0.100 63876 typ host generation 0 ufrag VcOi network-id 3]
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::SetIceParameters()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::AnswerMediaSection::AnswerMediaSection()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::AddMediaSection()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetMid()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetMid()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetObject()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::RegenerateBundleMids()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::IsClosed()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetMid()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::GetSdp()
[DEBUG] Handler::mediasoupclient::SendHandler::Send() | calling pc->SetRemoteDescription():
v=0
o=libmediasoupclient 10000 1 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-512 56:A5:EE:DB:CF:7F:B2:78:8E:6B:AC:43:39:17:7C:08:D1:48:BF:5F:48:BD:B5:59:D6:CC:02:3C:34:83:9A:A0:F3:06:29:A7:25:CD:79:48:C3:F1:36:52:04:35:86:AC:EF:D6:F3:EA:6A:91:69:D4:87:E9:BE:E2:10:AC:9E:CB
a=msid-semantic: WMS *
a=group:BUNDLE 0
m=audio 7 UDP/TLS/RTP/SAVPF 111
c=IN IP4 127.0.0.1
a=rtpmap:111 opus/48000/2
a=fmtp:111 stereo=1;usedtx=1
a=rtcp-fb:111 transport-cc
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=setup:active
a=mid:0
a=recvonly
a=ice-ufrag:ug5f1v6zw58s075w
a=ice-pwd:7l2si4bgxqd9lcqlc27tj5wxub6iatv6
a=candidate:udpcandidate 1 udp 1076302079 47.101.42.141 46608 typ host
a=end-of-candidates
a=ice-options:renomination
a=rtcp-mux
a=rtcp-rsize
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetRemoteDescription()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::GetFuture()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange() | [newState:stable]
[TRACE] Handler::mediasoupclient::Handler::OnIceConnectionChange()
[TRACE] Transport::mediasoupclient::Transport::OnConnectionStateChange()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::OnSuccess()
[TRACE] ortc::mediasoupclient::ortc::validateRtpParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpCodecParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtcpFeedback()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpEncodingParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtcpParameters()
enter MySendTransportListener::OnProduce()
[TRACE] Transport::mediasoupclient::Transport::GetId()
"requestBy() [method:produce, id:5]"
<Send> [EchoClient] {"data":{"appData":{},"kind":"audio","rtpParameters":{"codecs":[{"channels":2,"clockRate":48000,"mimeType":"audio/opus","parameters":{"minptime":10,"sprop-stereo":1,"usedtx":1,"useinbandfec":1},"payloadType":111,"rtcpFeedback":[{"parameter":"","type":"transport-cc"}]}],"encodings":[{"dtx":false,"ssrc":2548515804}],"headerExtensions":[{"encrypt":false,"id":4,"parameters":{},"uri":"urn:ietf:params:rtp-hdrext:sdes:mid"},{"encrypt":false,"id":2,"parameters":{},"uri":"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"},{"encrypt":false,"id":3,"parameters":{},"uri":"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{"encrypt":false,"id":1,"parameters":{},"uri":"urn:ietf:params:rtp-hdrext:ssrc-audio-level"}],"mid":"0","rtcp":{"cname":"","reducedSize":true}},"transportId":"c6e36077-acca-463a-9faf-495d369d2a2d"},"id":5,"method":"produce","request":true}
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange() | [newState:complete]
[EchoClient::onTextMessageReceived()] reqId = 5 produce data :
{"id":"50303383-3bc6-4322-a14a-866ab11c9615"}
[TRACE] Producer::mediasoupclient::Producer::Producer()
[TRACE] Producer::mediasoupclient::Producer::GetId()
_micProducer Ready
But when i stat audio producer,
cmd> sp 50303383-3bc6-4322-a14a-866ab11c9615 mediasoup:Producer getStats() +5m
mediasoup:Channel request() [method:producer.getStats, id:16] +57s
mediasoup:Channel request succeeded [method:producer.getStats, id:16] +1ms
producer.getStats():
[]
is this strange? (cos when i state a video producer, i get a lot of message)
i try to dump the audio producer
cmd> dp 50303383-3bc6-4322-a14a-866ab11c9615 mediasoup:Producer dump() +40s
mediasoup:Channel request() [method:producer.dump, id:17] +40s
mediasoup:Channel request succeeded [method:producer.dump, id:17] +1ms
producer.dump():
{
"id": "50303383-3bc6-4322-a14a-866ab11c9615",
"kind": "audio",
"paused": false,
"rtpMapping": {
"codecs": [
{
"mappedPayloadType": 100,
"payloadType": 111
}
],
"encodings": [
{
"mappedSsrc": 668661120,
"rid": null,
"ssrc": 2548515804
}
]
},
"rtpParameters": {
"codecs": [
{
"channels": 2,
"clockRate": 48000,
"mimeType": "audio/opus",
"parameters": {
"minptime": 10,
"sprop-stereo": 1,
"usedtx": 1,
"useinbandfec": 1
},
"payloadType": 111,
"rtcpFeedback": [
{
"type": "transport-cc"
}
]
}
],
"encodings": [
{
"codecPayloadType": 111,
"ssrc": 2548515804
}
],
"headerExtensions": [
{
"encrypt": false,
"id": 4,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"encrypt": false,
"id": 2,
"parameters": {},
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"encrypt": false,
"id": 3,
"parameters": {},
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"encrypt": false,
"id": 1,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
}
],
"mid": "0",
"rtcp": {
"cname": "8124465b",
"reducedSize": true
}
},
"rtpStreams": [],
"traceEventTypes": "",
"type": "simple"
}
when i consume, the request “newConsumer” with kind "kAudioKind"come indeed,
and i just consume, body is the message of the “newConsumer” request by server
auto* consumerListener = new MyConsumerListener(this);
Json rtpParameters = body["data"]["rtpParameters"];
mediasoupclient::Consumer *consumer = _recvTransport->Consume(
consumerListener,
body["data"]["id"],
body["data"]["producerId"],
body["data"]["kind"],
&rtpParameters
);
//and answer the server with id
responseNewConsumer(body["id"]);
here is the trace
"handleRequset [method:newConsumer]"
[TRACE] Transport::mediasoupclient::RecvTransport::Consume()
[TRACE] ortc::mediasoupclient::ortc::canReceive()
[TRACE] ortc::mediasoupclient::ortc::validateRtpParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpCodecParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpHeaderExtensionParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtpEncodingParameters()
[TRACE] ortc::mediasoupclient::ortc::validateRtcpParameters()
[TRACE] Handler::mediasoupclient::RecvHandler::Receive()
[DEBUG] Handler::mediasoupclient::RecvHandler::Receive() | [id:2e01fcec-13e5-41b5-a474-86f96451fd07, kind:audio]
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::Receive()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::MediaSection()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::SetIceParameters()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::OfferMediaSection::OfferMediaSection()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::AddMediaSection()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetMid()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetObject()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::RegenerateBundleMids()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::IsClosed()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetMid()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::IsClosed()
[TRACE] Sdp::MediaSection::mediasoupclient::Sdp::MediaSection::GetMid()
[TRACE] Sdp::RemoteSdp::mediasoupclient::Sdp::RemoteSdp::GetSdp()
[DEBUG] Handler::mediasoupclient::RecvHandler::Receive() | calling pc->setRemoteDescription():
v=0
o=libmediasoupclient 10000 2 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-512 56:A5:EE:DB:CF:7F:B2:78:8E:6B:AC:43:39:17:7C:08:D1:48:BF:5F:48:BD:B5:59:D6:CC:02:3C:34:83:9A:A0:F3:06:29:A7:25:CD:79:48:C3:F1:36:52:04:35:86:AC:EF:D6:F3:EA:6A:91:69:D4:87:E9:BE:E2:10:AC:9E:CB
a=msid-semantic: WMS *
a=group:BUNDLE 0 1
m=audio 7 UDP/TLS/RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;sprop-stereo=1;usedtx=1;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=setup:actpass
a=mid:0
a=sendonly
a=ice-ufrag:y4apajkjbrmcjakd
a=ice-pwd:n97e7o5448b5gzhesqc7otyhlt8yloy7
a=candidate:udpcandidate 1 udp 1076302079 47.101.42.141 44113 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:318123059 cname:850be139
a=ssrc:318123059 msid:850be139 af985bff-cd29-47ce-858b-d64a46066d2a
a=rtcp-mux
a=rtcp-rsize
m=audio 7 UDP/TLS/RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;sprop-stereo=1;usedtx=1;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=setup:actpass
a=mid:1
a=sendonly
a=ice-ufrag:y4apajkjbrmcjakd
a=ice-pwd:n97e7o5448b5gzhesqc7otyhlt8yloy7
a=candidate:udpcandidate 1 udp 1076302079 47.101.42.141 44113 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:211500355 cname:b23b5835
a=ssrc:211500355 msid:b23b5835 2e01fcec-13e5-41b5-a474-86f96451fd07
a=rtcp-mux
a=rtcp-rsize
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetRemoteDescription()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::GetFuture()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange() | [newState:have-remote-offer]
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnTrack()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnAddTrack()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnAddStream()
[TRACE] Handler::mediasoupclient::Handler::OnIceConnectionChange()
[TRACE] Transport::mediasoupclient::Transport::OnConnectionStateChange()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange() | [newState:gathering]
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::OnSuccess()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::CreateAnswer()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::CreateSessionDescriptionObserver::GetFuture()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::CreateSessionDescriptionObserver::OnSuccess()
[TRACE] Sdp::Utils::mediasoupclient::Sdp::Utils::applyCodecParameters()
[DEBUG] Handler::mediasoupclient::RecvHandler::Receive() | calling pc->SetLocalDescription():
v=0
o=- 1840767655638967227 3 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
a=group:BUNDLE 0 1
m=audio 49607 UDP/TLS/RTP/SAVPF 100
c=IN IP4 192.168.0.100
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1
a=rtcp:9 IN IP4 0.0.0.0
a=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:active
a=mid:0
a=recvonly
a=ice-ufrag:lo4E
a=ice-pwd:N8H54cAsScnLz0esIrSFdYLY
a=fingerprint:sha-256 1D:DD:1E:40:DB:29:2C:08:CF:E6:AE:A4:CA:59:75:E2:AB:2D:0B:0D:E3:A4:9A:3F:83:3A:AC:70:98:ED:4E:F0
a=candidate:2131708102 1 udp 2122260223 192.168.0.100 49607 typ host generation 0 network-id 3
a=ice-options:trickle
a=rtcp-mux
m=audio 9 UDP/TLS/RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1
a=rtcp:9 IN IP4 0.0.0.0
a=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:active
a=mid:1
a=recvonly
a=ice-ufrag:lo4E
a=ice-pwd:N8H54cAsScnLz0esIrSFdYLY
a=fingerprint:sha-256 1D:DD:1E:40:DB:29:2C:08:CF:E6:AE:A4:CA:59:75:E2:AB:2D:0B:0D:E3:A4:9A:3F:83:3A:AC:70:98:ED:4E:F0
a=ice-options:trickle
a=rtcp-mux
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetLocalDescription()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::GetFuture()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnSignalingChange() | [newState:stable]
[TRACE] Handler::mediasoupclient::Handler::OnIceConnectionChange()
[TRACE] Transport::mediasoupclient::Transport::OnConnectionStateChange()
[TRACE] Handler::mediasoupclient::Handler::OnIceConnectionChange()
[TRACE] Transport::mediasoupclient::Transport::OnConnectionStateChange()
[TRACE] Handler::mediasoupclient::Handler::OnIceConnectionChange()
[TRACE] Transport::mediasoupclient::Transport::OnConnectionStateChange()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange()
[DEBUG] PeerConnection::mediasoupclient::PeerConnection::PrivateListener::OnIceGatheringChange() | [newState:complete]
[TRACE] PeerConnection::mediasoupclient::PeerConnection::SetSessionDescriptionObserver::OnSuccess()
[TRACE] PeerConnection::mediasoupclient::PeerConnection::GetTransceivers()
[TRACE] Consumer::mediasoupclient::Consumer::Consumer()
[TRACE] Consumer::mediasoupclient::Consumer::GetId()
[TRACE] Consumer::mediasoupclient::Consumer::GetId()
[TRACE] Consumer::mediasoupclient::Consumer::GetKind()
[TRACE] Consumer::mediasoupclient::Consumer::GetKind()
[TRACE] Consumer::mediasoupclient::Consumer::GetTrack()
[TRACE] Consumer::mediasoupclient::Consumer::GetTrack()
"responseBy() [id:817747]"
<Send> [EchoClient] {"data":null,"id":817747,"ok":true,"response":true}
but no voice, just video shows
Is there anything i do wrong?
Any help would be greatly appreciated !