es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema de Quickblox WebRTC: onCallListener no está funcionando dentro de mi aplicación de React.

Básicamente, estoy intentando recibir una llamada de un proveedor en mi aplicación. Para ese propósito, Quickblox nos ofrece un listener para recibir las llamadas entrantes onCallListener. Aquí está mi fragmento de código que debería funcionar pero no lo hace.

const calleesIds = [4104]
const sessionType = QB.webrtc.CallType.VIDEO
const additionalOptions = {}
let callSession = QB.webrtc.createNewSession(calleesIds, sessionType, null, additionalOptions)
console.log(callSession, "SESSION")

const mediaParams = {
  audio: true,
  video: true,
  options: {
    muted: true,
    mirror: true,
  },
  elemId: "myVideoStream"
}

QB.webrtc.onCallListener = function(session: any, extension: object) {
  callSession = session
  console.log('asdasd')
  // si vas a tomar una llamada
  session.getUserMedia(mediaParams, function (error: object, stream: object) {
    if (error) {
      console.error(error)
    } else {
      session.accept(extension)
      session.attachMediaStream("videoStream", stream)
    }
  })
}

P. D. ¡También integré el chat que funciona perfectamente!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que la función onCallListener no se activa cuando hay una llamada entrante. El fragmento de código proporcionado muestra que la función onCallListener está definida, pero puede que no esté registrada correctamente como la escucha de llamadas.

    Para asegurarte de que la función onCallListener se registre correctamente, puedes usar la función QB.webrtc.onCallCallback. Aquí tienes un fragmento de código actualizado que usa la función QB.webrtc.onCallCallback:

    const calleeIds = [4104]
    const sessionType = QB.webrtc.CallType.VIDEO
    const additionalOptions = {}
    let callSession = QB.webrtc.createNewSession(calleeIds, sessionType, null, additionalOptions)
    console.log(callSession, "SESIÓN")
    
    const mediaParams = {
      audio: true,
      video: true,
      options: {
        muted: true,
        mirror: true,
      },
      elemId: "myVideoStream"
    }
    
    QB.webrtc.onCallCallback = function(session: any, extension: object) {
      callSession = session
      console.log('asdasd')
      // si vas a atender una llamada
      session.getUserMedia(mediaParams, function (error: object, stream: object) {
        if (error) {
          console.error(error)
        } else {
          session.accept(extension)
          session.attachMediaStream("videoStream", stream)
        }
      })
    }
    

    Además, es importante asegurarse de que las credenciales de Quickblox WebRTC estén configuradas correctamente y que el SDK de Quickblox WebRTC esté inicializado correctamente antes de hacer o recibir llamadas. Puedes consultar la documentación de Quickblox WebRTC para obtener más información sobre cómo configurar y usar el SDK.

Comments are closed.