Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

113
Vistas
Propiedad indefinida en la ventana de la llamada entrante

Tengo un caso de uso con Twilio en el que debe poder recibir llamadas entrantes en cualquier lugar, siempre y cuando la extensión esté instalada, así que pensé que crear una instancia en segundo plano funcionaría. Utilicé la biblioteca webext-redux para acomodar el paso del mensaje para poder pasar el estado de la llamada a los componentes de la interfaz de usuario mientras mantengo Twilio en segundo plano.

Usé async thunk para llamar a una API a mi backend, así que tengo que enviarla desde un React FC, pero como necesito que la instancia exista en segundo plano, usé el middleware de alias de webext-redux para ejecutar esa acción en segundo plano ( al menos eso es lo que entendí al leer los documentos en github). Aunque no estoy del todo seguro de si la instancia de Twilio existe en segundo plano o no.

Estoy seguro de que la biblioteca funciona porque redux-logger inicia sesión en la consola de fondo, lo cual es bueno. Sin embargo, la carga útil de la acción, cuando se registra, está en la ventana de la interfaz de usuario (genero una ventana flotante después de iniciar sesión) de la consola. ¿Está bien, supongo?

Cuando hago una llamada desde mi teléfono a mi número de Twilio, se dispara un evento entrante, genial. Ese evento devuelve un objeto Call que reasigno a la propiedad del objeto Twilio. Aparentemente, este evento se activa en el componente de la interfaz de usuario. También crea una nueva ventana donde se supone que debo manejar la llamada. Desafortunadamente, no puedo responder porque el objeto Call que pensé que reasigné no está definido.

Entrante.ts

 const OnDeviceIncoming = (call: Call) => { this.twilio.status = setEventState(OnDeviceIncoming.name, true); logInfo(this.twilio._status); // reassign the instance prop with the newly returned Call object // logs a legit Call object in the first UI window this.twilio.twilioCall = call; const from = call.parameters.From; } acceptCall(acceptOptions?: acceptOptionsInterface) { console.log(this.twilio.twilioCall); //this logs undefined in the newly created window acceptOptions ? this.twilio.twilioCall?.accept(acceptOptions) : this.twilio.twilioCall?.accept(); }

Sé que me estoy confundiendo con algo, pero no sé qué es exactamente esa confusión. ¿Está el Twilio realmente en el fondo? Yo creo que no. ¿Cómo puedo estar seguro? Si no es así, ¿cómo paso ese objeto de Call para poder aceptar la llamada entrante en la ventana recién creada?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que estás llamando a this.twilio.twilioCall en la ventana emergente? Pero en una ventana diferente que no será la this , por lo que no tendrá los mismos objetos.

Puede comunicarse entre las dos ventanas. En su ventana emergente, puede acceder a window.opener , que es la página que abrió la ventana emergente. Si configura el objeto twilioCall en el objeto de window en la ventana original, puede acceder a él con window.opener.twilioCall en la ventana emergente.

Sin embargo, incluso si lo hizo, la ventana original sigue siendo la propietaria del objeto twilioCall . Supongo que desea abrir la ventana emergente para poder navegar o actualizar la ventana original, pero permanecer en la llamada en la ventana emergente. Esto no funcionará, porque la ventana original posee el objeto de llamada y, que yo sepa, no puede transferirse.

Si desea utilizar la ventana emergente para responder la llamada y poseer el objeto de la llamada, deberá crear una nueva instancia del dispositivo Twilio en la ventana emergente y aceptar la llamada desde esa instancia.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda