Sip.js: DOMException: Falha ao executar 'setRemoteDescription' em 'RTCPeerConnection': Falha ao analisar SessionDescription. [objeto objeto] Linha esperada: v =

Criado em 12 out. 2018  ·  8Comentários  ·  Fonte: onsip/SIP.js

Descreva o bug
Não está funcionando libs corretamente.

DOMException: Falha ao executar 'setRemoteDescription' em 'RTCPeerConnection': Falha ao analisar SessionDescription. [objeto objeto] Linha esperada: v =
em http: //localhost/sip-0.11.4%20 (1) .js: 9733: 38

Tive problemas na mesma seção de código:

`/ **
* Defina a descrição remota para a implementação de mídia subjacente
* @param {String} sessionDescription A descrição fornecida por uma mensagem SIP a ser definida na implementação de mídia
* @param {Object} [options] Objeto de opções a ser usado por getDescription
* @param {MediaStreamConstraints} [options.constraints] MediaStreamConstraints https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
* @param {Object} [options.peerConnectionOptions] Se for definido, ele irá recriar a conexão de mesmo nível com as novas opções
* @param {Array} [modificadores] Matriz com modificadores de descrição de uso único
* @returns {Promise} Promessa que se resolve assim que a descrição for definida
* /
setDescription: {gravável: true, value: function setDescription (sessionDescription, options, modifiers) {
var _this = this;

    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 comentários

O código de inspeção js me mostrou que "modifyDescription.sdp" é um objeto de recursão para sdp

Por favor, poste logs completos em uma essência. Você está tentando modificar o SDP por conta própria ou está apenas tentando atualizar de uma versão anterior para a atual?

Logs do asterisco ou console do navegador? E precisa traceSip: true, no console do navegador?
Eu comecei a usar o sip.js a partir da versão 0.11.4. Não sou sdp modificado.

Console do navegador

[gist] (https://gist.github.com/kakabara/d39058805af90637a62931893900fb55) mas no firefox recebi o erro "Falha ao analisar SDP: Erro de análise de SDP na linha 1: Fim da linha além do fim do buffer." Veja em 326 linhas.
No Google CHrome, obtenha minhas exceções com falha na análise de setRemoteDescription

O Asterisk não está enviando candidatos ICE. O problema na essência não é o mesmo que você declarou acima.

Desculpe, pelo meu problema incorreto, é o primeiro. Entendi correto o que meu, chamador enviar candidato de gelo, mas asterisco não enviar para outro cliente isso?

Desculpa. Eu não entendo. WebRTC requer ICE e DTLS. Isso parece um problema do Asterisk, então vou encerrar isso. Acompanhe o projeto Asterisk sobre seus problemas.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

raphaelhovsepyan picture raphaelhovsepyan  ·  6Comentários

josephfrazier picture josephfrazier  ·  26Comentários

tm1000 picture tm1000  ·  12Comentários

diegoteixeir4 picture diegoteixeir4  ·  5Comentários

Fzwael picture Fzwael  ·  5Comentários