Sip.js: DOMException: 'RTCPeerConnection' рдкрд░ 'setRemoteDescription' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: рд╕рддреНрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред [рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ] рд▓рд╛рдЗрди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ: v=

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдЕрдХреНрддреВре░ 2018  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: onsip/SIP.js

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
libs рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

DOMException: 'RTCPeerConnection' рдкрд░ 'setRemoteDescription' рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: рд╕рддреНрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред [рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ] рд▓рд╛рдЗрди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ: v=
http://localhost/sip-0.11.4%20 (1).js:9733:38 . рдкрд░

рдореБрдЭреЗ рдЙрд╕реА рдХреЛрдб рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ:

`/**
* рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореАрдбрд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рд╡рд┐рд╡рд░рдг рд╕реЗрдЯ рдХрд░реЗрдВ
* @рдкрд░рдо {рд╕реНрдЯреНрд░рд┐рдВрдЧ} рд╕рддреНрд░ рд╡рд┐рд╡рд░рдг рдореАрдбрд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрд╕рдЖрдИрдкреА рд╕рдВрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рд╡рд░рдг
* @рдкрд░рдо {рдСрдмреНрдЬреЗрдХреНрдЯ} [рд╡рд┐рдХрд▓реНрдк] рд╡рд┐рдХрд▓реНрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ getDescription рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ
* @рдкрд░рдо {MediaStreamConstraints} [options.constraints] MediaStreamConstraints https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
* @рдкрд░рдо {рдСрдмреНрдЬреЗрдХреНрдЯ} [options.peerConnectionOptions] рдЕрдЧрд░ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдирдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдкреАрдпрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдЧрд╛
* @рдкрд░рдо {рдРрд░реЗ} [рд╕рдВрд╢реЛрдзрдХ] рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╡рд░рдг рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА
* @returns {рд╡рд╛рджрд╛} рд╡рд╛рджрд╛ рдЬреЛ рд╡рд┐рд╡рд░рдг рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
*/
рд╕реЗрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди: {рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп: рд╕рддреНрдп, рдорд╛рди: рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди (рд╕рддреНрд░ рд╡рд┐рд╡рд░рдг, рд╡рд┐рдХрд▓реНрдк, рд╕рдВрд╢реЛрдзрдХ) {
рд╡рд░ _рдпрд╣ = рдпрд╣;

    var self = this;

    options = options || {};
    if (options.peerConnectionOptions) {
      this.initPeerConnection(options.peerConnectionOptions);
    }

    modifiers = modifiers || [];
    if (!Array.isArray(modifiers)) {
      modifiers = [modifiers];
    }
    modifiers = modifiers.concat(this.modifiers);

    var description = {
      type: this.hasOffer('local') ? 'answer' : 'offer',
      sdp: sessionDescription
    };

    return SIP.Utils.Promise.resolve().then(function () {
      // Media should be acquired in getDescription unless we need to do it sooner for some reason (FF61+)
      if (this.shouldAcquireMedia && this.options.alwaysAcquireMediaFirst) {
        return this.acquire(this.constraints).then(function () {
          this.shouldAcquireMedia = false;
        }.bind(this));
      }
    }.bind(this)).then(function () {
      return SIP.Utils.reducePromises(modifiers, description);
    }).catch(function (e) {
      if (e instanceof SIP.Exceptions.SessionDescriptionHandlerError) {
        throw e;
      }
      var error = new SIP.Exceptions.SessionDescriptionHandlerError("setDescription", e, "The modifiers did not resolve successfully");
      _this.logger.error(error.message);
      self.emit('peerConnection-setRemoteDescriptionFailed', error);
      throw error;
    }).then(function (modifiedDescription) {
      self.emit('setDescription', modifiedDescription);
      return self.peerConnection.setRemoteDescription(modifiedDescription);
    }).catch(function (e) {
      if (e instanceof SIP.Exceptions.SessionDescriptionHandlerError) {
        throw e;
      }
      // Check the original SDP for video, and ensure that we have want to do audio fallback
      if (/^m=video.+$/gm.test(sessionDescription) && !options.disableAudioFallback) {
        // Do not try to audio fallback again
        options.disableAudioFallback = true;
        // Remove video first, then do the other modifiers
        return _this.setDescription(sessionDescription, options, [SIP.Web.Modifiers.stripVideo].concat(modifiers));
      }
      var error = new SIP.Exceptions.SessionDescriptionHandlerError("setDescription", e);
      _this.logger.error(error.error);
      _this.emit('peerConnection-setRemoteDescriptionFailed', error);
      throw error;
    }).then(function setRemoteDescriptionSuccess() {
      if (self.peerConnection.getReceivers) {
        self.emit('setRemoteDescription', self.peerConnection.getReceivers());
      } else {
        self.emit('setRemoteDescription', self.peerConnection.getRemoteStreams());
      }
      self.emit('confirmed', self);
    });
  } },`

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирд┐рд░реАрдХреНрд╖рдг рдЬреЗ рдПрд╕ рдХреЛрдб рдиреЗ рдореБрдЭреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ "modifiedDescription.sdp" sdp рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддрди рд╡рд╕реНрддреБ рд╣реИ

рдХреГрдкрдпрд╛ рдПрдХ рд╕рд╛рд░ рдореЗрдВ рдкреВрд░реНрдг рд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдХреНрдпрд╛ рдЖрдк рд╕реНрд╡рдпрдВ SDP рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рддрд╛рд░рдХ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рд╕реЗ рд▓реЙрдЧ? рдФрд░ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕рдЪ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ?
рдореИрдВрдиреЗ 0.11.4 рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рд┐рдк.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдореИрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдПрд╕рдбреАрдкреА рдирд╣реАрдВ рд╣реВрдБред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓

[рдЬрд┐рд╕реНрдЯ] (https://gist.github.com/kakabara/d39058805af90637a62931893900fb55) рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА "рдПрд╕рдбреАрдкреА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: рд▓рд╛рдЗрди 1 рдкрд░ рдПрд╕рдбреАрдкреА рдкрд╛рд░реНрд╕ рддреНрд░реБрдЯрд┐: рдмрдлрд░ рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд░реЗ рд▓рд╛рдЗрди рдХрд╛ рдЕрдВрддред" рдЗрд╕реЗ 326 рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рджреЗрдЦреЗрдВред
Google рдХреНрд░реЛрдо рдореЗрдВ рдЕрд╕рдлрд▓ рдкрд╛рд░реНрд╕ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЕрдкрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рд░рд┐рдореЛрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди

рддрд╛рд░рд╛рдВрдХрди ICE рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рднреЗрдЬ рд░рд╣рд╛ рд╣реИред рд╕рд╛рд░ рдореЗрдВ рдореБрджреНрджрд╛ рд╡рд╣реА рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдКрдкрд░ рдХрд╣рд╛ рдерд╛ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдЧрд▓рдд рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╣рд▓реЗ рд╣реИред рдореИрдВ рд╕рд╣реА рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛, рдХреЙрд▓рд░ рдмрд░реНрдл рдЙрдореНрдореАрджрд╡рд╛рд░ рднреЗрдЬрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рд░рд╛рдВрдХрди рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИ?

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ред WebRTC рдХреЛ ICE рдФрд░ DTLS рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рддрд╛рд░рдХреАрдп рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рд╡рд╣рд╛рдВ рдЕрдкрдиреЗ рдореБрджреНрджреЛрдВ рдкрд░ рддрд╛рд░рд╛рдВрдХрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕