microsoft / MixedReality-WebRTC

MixedReality-WebRTC is a collection of components to help mixed reality app developers integrate audio and video real-time communication into their application and improve their collaborative experience
https://microsoft.github.io/MixedReality-WebRTC/
MIT License
913 stars 283 forks source link

Unity - Creating one offer or two offers? #702

Open Mt-Perazim opened 3 years ago

Mt-Perazim commented 3 years ago

Describe the bug I'm running the VideoChatDemo from the sample package in unity on two different computers in the same network. So my setup looks like this: -MyNetwork --PC A ----Node-dss ----Unity in play mode --PC B ----Unity in play mode

1. Variant: If I hit the "CreateOffer"-Btn for the first time on A, B gets an offer and A an answer. But there is no stream getting established. So If I hit a second time "CreateOffer" on A, B gets two Offers and A an answer. Now the stream works. 2. Variant: If I hit the "CreateOffer"-Btn for the first time on A and then once on B, stream gets established. 3. Variant: If I do what I did in the second variant and then disconnect for example B. Then reconnect and press "CreateOffer" once, the stream gets establised.

My Question: So what is the right way? In the documentation I read the following quote and thought that doing "CreateOffer" once should be enough: "The VideoChatDemo sample contains an example of creating a button and using the NodeDssSignalerUI.cs script to do that, but the task essentially boils down to one of the two peers, and one only, calling PeerConnection.StartConnection()." I would understand if only one request is needed or a request is sent from computer A and computer B has to actively accept it. But since it seems that you can send a request from computer A twice and then a stream is established, I am confused.

To Reproduce Steps to reproduce the behavior:

  1. Create 2 new projects
  2. Import WebRTC and Samples
  3. Set them up with right peed Ids
  4. Start node-dss
  5. Hit play in project 1/PC A and 2/PC B
  6. Try the variants from above

Expected behavior Show stream after first CreateOffer.

SDP messages So this is message I get from 1.variant, when clicking the first time

Offer message o=- 6081369092971484585 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 1 a=msid-semantic: WMS 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:R9SD a=ice-pwd:0ncCtR6OGzSwuHsGFIN5P8Ml a=ice-options:trickle a=fingerprint:sha-256 9C:57:61:6B:AC:B5:3E:99:05:73:48:2A:40:BB:A2:A8:EC:48:71:D5:97:F5:79:57:09:2A:3F:10:99:48:AD:52 a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:- 4d84d339-20a1-4506-89a0-dbd0ebea5e50 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:1957108142 cname:SqqBEUZX6zc2d6h+ a=ssrc:1957108142 msid: 4d84d339-20a1-4506-89a0-dbd0ebea5e50 a=ssrc:1957108142 mslabel: a=ssrc:1957108142 label:4d84d339-20a1-4506-89a0-dbd0ebea5e50 m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:R9SD a=ice-pwd:0ncCtR6OGzSwuHsGFIN5P8Ml a=ice-options:trickle a=fingerprint:sha-256 9C:57:61:6B:AC:B5:3E:99:05:73:48:2A:40:BB:A2:A8:EC:48:71:D5:97:F5:79:57:09:2A:3F:10:99:48:AD:52 a=setup:actpass a=mid:1 a=extmap:2 urn:ietf:params:rtp-hdrext:toffset a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:4 urn:3gpp:video-orientation a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing a=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07 a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:- e1af43fc-a90e-41b1-92c0-8b6a28012594 a=rtcp-mux a=rtcp-rsize a=rtpmap:96 VP8/90000 a=rtcp-fb:96 goog-remb a=rtcp-fb:96 transport-cc a=rtcp-fb:96 ccm fir a=rtcp-fb:96 nack a=rtcp-fb:96 nack pli a=rtpmap:97 rtx/90000 a=fmtp:97 apt=96 a=rtpmap:98 VP9/90000 a=rtcp-fb:98 goog-remb a=rtcp-fb:98 transport-cc a=rtcp-fb:98 ccm fir a=rtcp-fb:98 nack a=rtcp-fb:98 nack pli a=fmtp:98 x-google-profile-id=0 a=rtpmap:99 rtx/90000 a=fmtp:99 apt=98 a=rtpmap:100 multiplex/90000 a=rtcp-fb:100 goog-remb a=rtcp-fb:100 transport-cc a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=fmtp:100 acn=VP9;x-google-profile-id=0 a=rtpmap:101 rtx/90000 a=fmtp:101 apt=100 a=rtpmap:127 red/90000 a=rtpmap:124 rtx/90000 a=fmtp:124 apt=127 a=rtpmap:125 ulpfec/90000 a=ssrc-group:FID 2526988004 1987002857 a=ssrc:2526988004 cname:SqqBEUZX6zc2d6h+ a=ssrc:2526988004 msid: e1af43fc-a90e-41b1-92c0-8b6a28012594 a=ssrc:2526988004 mslabel: a=ssrc:2526988004 label:e1af43fc-a90e-41b1-92c0-8b6a28012594 a=ssrc:1987002857 cname:SqqBEUZX6zc2d6h+ a=ssrc:1987002857 msid: e1af43fc-a90e-41b1-92c0-8b6a28012594 a=ssrc:1987002857 mslabel: a=ssrc:1987002857 label:e1af43fc-a90e-41b1-92c0-8b6a28012594
Answer message o=- 4381708066323527232 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 1 a=msid-semantic: WMS 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:ge74 a=ice-pwd:UP1WjPiiGHQKEZwK65EyNlcw a=ice-options:trickle a=fingerprint:sha-256 11:89:04:4C:1B:57:9B:26:52:22:F5:3D:20:3F:AB:28:97:C2:01:36:1C:BA:61:BC:DA:AF:40:B2:0D:38:14:F4 a=setup:active a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:- 4d2e006a-044f-4c78-b34e-79a70f4dd871 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:2562680978 cname:3xHd24GAm0H3VsJ4 m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:ge74 a=ice-pwd:UP1WjPiiGHQKEZwK65EyNlcw a=ice-options:trickle a=fingerprint:sha-256 11:89:04:4C:1B:57:9B:26:52:22:F5:3D:20:3F:AB:28:97:C2:01:36:1C:BA:61:BC:DA:AF:40:B2:0D:38:14:F4 a=setup:active a=mid:1 a=extmap:2 urn:ietf:params:rtp-hdrext:toffset a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:4 urn:3gpp:video-orientation a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing a=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07 a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:- 74ff09f8-d59d-43ab-92f4-f531bc50d1ba a=rtcp-mux a=rtcp-rsize a=rtpmap:96 VP8/90000 a=rtcp-fb:96 goog-remb a=rtcp-fb:96 transport-cc a=rtcp-fb:96 ccm fir a=rtcp-fb:96 nack a=rtcp-fb:96 nack pli a=rtpmap:97 rtx/90000 a=fmtp:97 apt=96 a=rtpmap:98 VP9/90000 a=rtcp-fb:98 goog-remb a=rtcp-fb:98 transport-cc a=rtcp-fb:98 ccm fir a=rtcp-fb:98 nack a=rtcp-fb:98 nack pli a=fmtp:98 x-google-profile-id=0 a=rtpmap:99 rtx/90000 a=fmtp:99 apt=98 a=rtpmap:100 multiplex/90000 a=rtcp-fb:100 goog-remb a=rtcp-fb:100 transport-cc a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=fmtp:100 acn=VP9;x-google-profile-id=0 a=rtpmap:101 rtx/90000 a=fmtp:101 apt=100 a=rtpmap:127 red/90000 a=rtpmap:124 rtx/90000 a=fmtp:124 apt=127 a=rtpmap:125 ulpfec/90000 a=ssrc-group:FID 2319012957 4196421515 a=ssrc:2319012957 cname:3xHd24GAm0H3VsJ4 a=ssrc:4196421515 cname:3xHd24GAm0H3VsJ4

Environment