RTC re-registration errors

I installed a WebRTC application that works as follows: (Starting from step 5, I stop using CALLER / CALLEE, because either CALLER or CALLEE can initiate a stream)

  • CALLER creates a peer-to-peer connection only to the data channel, creates a sentence, sets up a local description, and sends a CALLEE sentence.
  • CALLEE establishes a remote description, creates a response, sets a local description, and sends a response to CALLER.
  • CALLER sets the remote description.
  • CALLER and CALLEE can successfully communicate through the data channel.
  • PEERA adds audio and / or video stream to a peer-to-peer connection.
  • PEERA onnegotiationneeded event fire.
  • PEERA creates the offer, sets the local description, and sends the PEERB offer.
  • PEERB receives a proposal, establishes a remote description, creates a response, sets a local description, and sends a PEERA response.

If PEERA and PEERB use Chrome: If PEERA is CALLER, then everything behaves normally and the stream is successfully accepted by PEERB. If PEERA is CALLEE, PEERB explodes in step 8 when setting LOCAL. The stream is accepted by PEERB, but appears only as a black box when sent to an element <video>.
Logged error: Failed to set local sdp response: Failed to send transport description: Failed to set ssl role for channel.

When PEERA and PEERB use FireFox: PEERA can be either CALLER or CALLEE, and everything behaves normally and the stream is successfully received by PEERB.

CALLEE Firefox, CALLER Chrome: PEERA CALLER (Chrome), CALLEE (Firefox), , PEERB.

CALLEE Chrome, CALLER Firefox: PEERA CALLER (FireFox), , PEERB (Chrome). PEERA CALLEE (Chrome), PEERB (FireFox) 8 REMOTE. : DOMException [InvalidSessionDescriptionError: " ICE ( ) ice-ufrag (): a59T34ixyZjsTUuJice-ufrag (): rsCN1ugVKHJQzmMbice-pwd ( ): KqOHtqdzFp6VwG + 3hxbjcQFcice-pwd (): uVvowvgsKIwuCq/bDmcGbSPA" : 0 nsresult: 0x0]

+4
1

Chrome ↔ Chrome

, PEERA , , , Chrome DTLS, am . , JSFiddle , Chrome 47.

, a=setup: SDP, /, /. , , CALLER a=setup:actpass , CALLEE a=setup:active . , CALLER "" DTLS, CALLEE "" DTLS.

, , PEERA a=setup:actpass. PEERB, a=setup:passive, a=setup:active, DTLS. , Chrome DTLS .

google chrome bug tracker, , : - , , + .

, , "munge" () SDP setLocalDescription, . , , , , DTLS, ,

answer.sdp = answer.sdp.replace('a=setup:active','a=setup:passive');
pc.setLocalDescription(answer).then(...);

Firefox ↔ Firefox

, ! , Firefox " " DTLS , . SDP Chrome SDP.

Firefox

I am , , InvalidSessionDescriptionError, Firefox. .

. .

, , . interop!

+2

Source: https://habr.com/ru/post/1618634/


All Articles