Llamadas en el grupo

Objetivos

Este método permite a los clientes proporcionar llamadas para múltiples participantes con un historial de texto compartido. El protocolo debe ser flexible, mantener la compatibilidad con la pila SIP, adn debe trabajar en un entorno distribuido. Este entorno distribuido también trae algunos desafíos, como posibles condiciones de carrera (donde múltiples partes pueden iniciar una llamada al mismo tiempo). Finalmente, debido a que el Swarm puede estar con miembros que solo usan móviles, o por empresas con servidores dedicados para mezclar el video, también debe ser capaz de trabajar con la mejor experiencia posible en entornos heterogéneos.

Definiciones

  • Un Rendezvous mezclará todas las llamadas entrantes autorizadas en una conferencia.

  • Se utilizarán dos nuevos URI para esta función:

    • `swarm:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    • `rdv:accountUri/dispositivoId/conversaciónId/confId]]

  • El perfil de swarm es el perfil del enjambre almacenado en una vCard (profile.vcf, ver developer/swarm:Conversación de perfil sincronización y Sincronización de perfil)

    • rdvUri es el URI predeterminado de un grupo, establecido en el perfil del grupo*

Nota: estos dos URI permiten al cliente realizar una llamada para unirse a un Rendezvous o iniciar una llamada a un enjambre, lo que resulta en la lógica descrita en la siguiente sección.

Haga una llamada en un grupo

Flujo propuesto:

  • a: Si se establece rdvUri:

    • Llámenlo.

      • Si no lo ha hecho, vaya a b:

  • b: en caso de que haya una llamada activa actual:

    • Llámenlo.

      • Si no lo ha hecho, vaya a c:

  • Si no, organice un nuevo «Rendezvous» y únete a él.

    • También, pregúntale a los usuarios si quieren ser el anfitrión para las próximas llamadas.

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

For each calls, two commits are added by the host of the call in the swarm. A first one to announce that a new call is starting and give information about who is hosting and the conference id. And a second to announce that the call is finished (so other peers can compute how many calls are currently active) and to get the duration of the call to show.

Llamadas de entorno para el enjambre

Cuando se recibe una nueva llamada entrante, el URI DEBE ser analizado. Si la llamada entrante es para un Rendezvous que actualmente está alojado por el dispositivo y el llamador está autorizado a unirse, la llamada DEBE ser contestada y añadida al actual Rendezvous

Definir un anfitrión para un cúmulo

Para definir un URI predeterminado, el miembro que quiera ser el anfitrión debe actualizar el perfil de la conversación, y esto será sincronizado y validado por pares. Sin embargo, el anfitrión DEVE ser capaz de aceptar o no ser el anfitrión y un miembro con suficientes permisos DEVE ser capaz de pedir a un dispositivo que sea el anfitrión. Este proceso no se ha decidido por ahora.

For now, only the administrator can add one of its device as the default host.

El futuro

¿Asociarse a las notificaciones?

Los miembros del enjambre que no están en una llamada DEVEN ser capaces de saber quién está en las llamadas activas.

¿Puente de la SIP?

Debido a que las conferencias siguen siendo llamadas mixtas SIP, un puente SIP sigue siendo posible. En el perfil de Swarm debería ser posible añadir una entrada SIP, como algunos sistemas VoIP populares)

Set another member’s device as a host