Sip.js: DOMException: Fehler beim Ausführen von 'setRemoteDescription' auf 'RTCPeerConnection': Fehler beim Parsen von SessionDescription. [Objekt Objekt] Erwarte Zeile: v=

Erstellt am 12. Okt. 2018  ·  8Kommentare  ·  Quelle: onsip/SIP.js

Beschreibe den Fehler
Libs funktionieren nicht richtig.

DOMException: Fehler beim Ausführen von 'setRemoteDescription' auf 'RTCPeerConnection': Fehler beim Parsen von SessionDescription. [Objekt Objekt] Erwarte Zeile: v=
unter http://localhost/sip-0.11.4%20 (1).js:9733:38

Ich habe Probleme im gleichen Codeabschnitt:

` /**
* Legen Sie die Remote-Beschreibung auf die zugrunde liegende Medienimplementierung fest
* @param {String} sessionDescription Die von einer SIP-Nachricht bereitgestellte Beschreibung, die für die Medienimplementierung festgelegt werden soll
* @param {Object} [options] Optionsobjekt, das von getDescription verwendet werden soll
* @param {MediaStreamConstraints} [options.constraints] MediaStreamConstraints https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
* @param {Object} [options.peerConnectionOptions] Wenn dies gesetzt ist, wird die Peer-Verbindung mit den neuen Optionen neu erstellt
* @param {Array} [modifiers] Array mit einmaligen Beschreibungsmodifizierern
* @returns {Promise} Versprechen, das sich auflöst, sobald die Beschreibung festgelegt ist
*/
setDescription: { schreibbar: true, value: Funktion setDescription(sessionDescription, options, modifiers) {
var _this = dies;

    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);
    });
  } },`

Alle 8 Kommentare

Inspect js-Code hat mir gezeigt, dass "modifiedDescription.sdp" ein Rekursionsobjekt für sdp ist

Bitte posten Sie vollständige Protokolle in einer Zusammenfassung. Versuchen Sie, SDP selbst zu ändern, oder versuchen Sie nur, von einer früheren Version auf die aktuelle Version zu aktualisieren?

Protokolle von Asterisk oder Browser-Konsole? Und Sie müssen traceSip: true, in der Browser-Konsole?
Ich starte gebrauchte sip.js ab Version 0.11.4. Ich bin nicht sdp modifiziert.

Browserkonsole

[gist] (https://gist.github.com/kakabara/d39058805af90637a62931893900fb55) aber in Firefox habe ich die Fehlermeldung "SDP konnte nicht analysiert werden: SDP-Parserfehler in Zeile 1: Zeilenende über Pufferende hinaus." Sehen Sie es auf 326 Zeilen.
Erhalten Sie in Google CHrome meine Ausnahmen mit fehlgeschlagener Analyse setRemoteDescription

Asterisk sendet keine ICE-Kandidaten. Das Problem im Kern ist nicht das gleiche Problem, das Sie oben angegeben haben.

Entschuldigung, für mein falsches Problem ist es das erste. verstehe ich richtig was mein anrufer schickt, aber asterisk schickt dies nicht an andere client?

Es tut uns leid. Ich verstehe nicht. WebRTC erfordert ICE und DTLS. Dies sieht nach einem Asterisk-Problem aus, daher werde ich dies schließen. Bitte wenden Sie sich an das Asterisk-Projekt zu Ihren Problemen dort.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Fzwael picture Fzwael  ·  5Kommentare

seanbright picture seanbright  ·  3Kommentare

diegoteixeir4 picture diegoteixeir4  ·  5Kommentare

Juli0GT picture Juli0GT  ·  5Kommentare

tm1000 picture tm1000  ·  12Kommentare