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.
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)