Chamadas em enxame

Objetivos

Esta página visa descrever como a chamada funcionará com grupos. Este método permitirá que os clientes forneçam chamadas para vários participantes com um histórico de texto compartilhado. O protocolo deve ser flexível, manter a compatibilidade com a pilha SIP, o adn deve trabalhar em um ambiente distribuído. Este ambiente distribuído também traz alguns desafios, como possíveis condições de corrida (onde várias partes podem iniciar uma chamada ao mesmo tempo). Finalmente, como o Swarm pode ser com membros usando apenas móveis, ou por empresas com servidores dedicados para misturar o vídeo, ele também deve ser capaz de trabalhar com a melhor experiência possível em um ambiente heterogêneo.

Definições

  • Um Rendezvous mistura todas as chamadas recebidas autorizadas numa conferência.

  • Dois novos URIs serão usados para esse recurso:

    • swarm:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    • rdv:accountUri/deviceId/conversationId/confId

  • Perfil do enxame é o perfil do enxame armazenado em um vCard (profile.vcf, consulte developer/swarm:Conversation’s profile synchronization e Sincronização de perfil)

    • rdvUri é o URI padrão para um swarm, definido no perfil do swarm*

Nota: estes dois URIs permitem ao cliente fazer uma chamada para participar de um Rendezvous ou iniciar uma chamada a um enxame, resultando na lógica descrita na seção seguinte.

Faça uma chamada para um Enxame

Fluxo proposto:

  • a: Se for definido rdvUri:

    • Chame-o

      • Se falhar, vá para b:

  • b: caso exista uma chamada ativa em curso:

    • Chame-o

      • Se falhar, vá para c:

  • c: caso contrário, organize um novo encontro e participe dele.

    • Também pergunte aos usuários se querem ser o anfitrião das próximas chamadas.

Diagrama: como fazer uma chamada em um enxame

Para cada chamada, são adicionados dois commits pelo anfitrião da chamada no enxame. Um primeiro para anunciar que uma nova chamada está a começar e dar informações sobre quem é o anfitrião e o ID da conferência. E um segundo para anunciar que a chamada terminou (para que outros pares possam calcular quantas chamadas estão atualmente ativas) e para obter a duração da chamada a mostrar.

Chamadas de enxame

Quando recebe uma nova chamada recebida, o URI DEVE ser analisado. Se a chamada recebida for para um Rendezvous que está atualmente hospedado pelo dispositivo e o chamador está autorizado a participar, a chamada DEVE ser respondida e adicionada ao atual Rendezvous

Definir um hospedeiro para um Enxame

Para definir um URI padrão, o membro que deseja ser o host deve atualizar o perfil da conversa, e isso será sincronizado e validado por pares. No entanto, o host deve ser capaz de aceitar ou não ser o host e um membro com permissões suficientes DEVE ser capaz de pedir a um dispositivo para ser o host.

Por enquanto, apenas o administrador pode adicionar um dos seus dispositivos como hospedeiro predefinido.

Futuro

Notificações de adesão?

Os membros do enxame que não estão em uma chamada DEVEM saber quem está nas chamadas ativas.

Ponte SIP?

Como as conferências ainda são chamadas SIP mistas, uma ponte SIP ainda é possível. No perfil do enxame, deve ser possível adicionar uma entrada SIP, como em alguns sistemas VoIP populares)

Definir o dispositivo de outro membro como hospedeiro