Sip.js: DOMException: no se pudo ejecutar 'setRemoteDescription' en 'RTCPeerConnection': no ​​se pudo analizar SessionDescription. [objeto Objeto] Línea esperada: v =

Creado en 12 oct. 2018  ·  8Comentarios  ·  Fuente: onsip/SIP.js

Describe el error
No funcionan las bibliotecas correctamente.

DOMException: no se pudo ejecutar 'setRemoteDescription' en 'RTCPeerConnection': no ​​se pudo analizar SessionDescription. [objeto Objeto] Línea esperada: v =
en http: //localhost/sip-0.11.4%20 (1) .js: 9733: 38

Tengo problemas en la misma sección de código:

`/ **
* Establecer la descripción remota a la implementación de medios subyacente
* @param {String} sessionDescription La descripción proporcionada por un mensaje SIP que se configurará en la implementación de medios
* @param {Object} [opciones] Objeto de opciones para ser utilizado por getDescription
* @param {MediaStreamConstraints} [options.constraints] MediaStreamConstraints https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
* @param {Object} [options.peerConnectionOptions] Si se establece, volverá a crear la conexión entre pares con las nuevas opciones
* @param {Array} [modificadores] Arreglo con modificadores de descripción de uso único
* @returns {Promise} Promesa que se resuelve una vez que se establece la descripción
* /
setDescription: {escribible: verdadero, valor: función setDescription (sessionDescription, opciones, modificadores) {
var _this = esto;

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

Todos 8 comentarios

Inspeccionar el código js me mostró que "modifiedDescription.sdp" es un objeto de recursividad para sdp

Publique registros completos en resumen. ¿Está intentando modificar el SDP usted mismo o simplemente está intentando actualizar desde una versión anterior a la versión actual?

¿Registros de asterisco o de la consola del navegador? ¿Y necesita traceSip: cierto, en la consola del navegador?
Empiezo a usar sip.js desde la versión 0.11.4. No soy sdp modificado.

Consola del navegador

[gist] (https://gist.github.com/kakabara/d39058805af90637a62931893900fb55) pero en Firefox recibí el error "No se pudo analizar SDP: Error de análisis de SDP en la línea 1: Fin de línea más allá del final del búfer". Véalo en 326 líneas.
En Google CHrome, obtengo mis excepciones con un conjunto de análisis fallido

Asterisk no envía candidatos de ICE. El problema en esencia no es el mismo que mencionaste anteriormente.

Lo siento, por mi problema incorrecto, es el primero. Entiendo, ¿es correcto lo que mi llamante envía al candidato de hielo, pero el asterisco no envía a otro cliente esto?

Perdón. No comprendo. WebRTC requiere ICE y DTLS. Esto parece un problema de Asterisk, así que voy a cerrarlo. Haga un seguimiento con el proyecto Asterisk sobre sus problemas allí.

¿Fue útil esta página
0 / 5 - 0 calificaciones