Introdução
Este documento descreve a capacidade de mover participantes de uma reunião para outra pelo Cisco Meeting Management (CMM). O administrador do CMM pode mover participantes do aplicativo Web entre reuniões da mesma ponte de chamadas ou de pontes de chamadas diferentes.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Conhecimento Básico do Cisco Meeting Server (CMS).
- CMM Basic Knowledge (Conhecimento básico do CMM).
- Conhecimento Básico do aplicativo Web do CMS.
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- CMS Versão 3.2.
- CMM Versão 3.2.
- Aplicativo Web do CMS versão 3.2.
- Navegador web chrome 91.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Configurar
Informações de Apoio
A capacidade de mover participantes de uma reunião para outra pelo CMM é apresentada originalmente no CMS 2.6, mas com algumas restrições, ou seja, os participantes do aplicativo de reunião, do aplicativo Web e do Skype for Business (SfB) não podem ser movidos. Comece com o CMS 3.2, o administrador do CMM pode mover os participantes do aplicativo Web entre reuniões da mesma ponte de chamadas ou de pontes de chamadas diferentes.
Note: Este recurso não significa que os participantes do aplicativo Web possam chamar uma movimentação de outros participantes. Anteriormente, ao tentar mover participantes do aplicativo Web, o CMM evitaria isso com um alerta. Essa restrição é detectada automaticamente pelo CMM quando a reunião é hospedada no CMS 3.2 e pode ser movida.
Diagrama de Rede

Configurações
Etapa 1. O CMM faz a chamada da API (Application Programaming Interface) para o Callbridge B com o método POST /calls/<call_X_id>/participant/ com "moveParticipant"=participant_A_guid.
Etapa 2. O Callbridge B envia solicitações de movimentação de participantes para o Callbridge A.
Etapa 3. Callbridge A responde com a solicitação de movimentação de volta para Callbridge B.
Etapa 4. O Callbridge B faz o balanceamento de carga e decide colocar o novo participante no Callbridge C.
Etapa 5. O Callbridge B envia uma solicitação ao Callbridge C para criar uma nova instância e um novo participante. Para convidado, uma nova ID de convidado é criada. A nova instância de participante tem um novo JWT (JASON Web Tokens).
Etapa 6. O Callbridge C envia a mensagem API move web socket pelo Call Bridge para o Web Bridge (C2W) para o Webbridge A.
Etapa 7. Webbridge A envia a mensagem move web socket para o cliente Webbridge (WC3) no navegador.
Etapa 8. WC3 no navegador envia a mensagem end web socket para Webbridge A.
Etapa 9. Webbridge A encaminha a mensagem de encerramento da sessão para Callbridge A.
Etapa 10. O Callbridge A destrói a instância do participante e o JWT antigo.
Etapa 11. O cliente WC3 no navegador autentica uma nova mensagem de soquete da Web para a Webbridge A e usa um novo JWT.
Verificar
Abaixo estão as mensagens de log de exemplo em que o participante da Web convidado é movido do espaço Espaço 1 (webapp.com) para o espaço Espaço 2 (webapp.com). Para simplificar o fluxo, a mudança para um espaço diferente permanece na mesma ponte de chamada cbcms2 (o cluster tem balanceamento de carga).
Primeiro, o fluxo de movimentação começa com API POST /calls/<call id>/participantes.
2021-03-04 15:50:03.915 Info API trace 42003: POST for "/api/v1/calls/ae778701-7fed-410c-b3e6-c2860907a3f4/participants" (from 172.19.233.174)
2021-03-04 15:50:03.915 Info API trace 42003: content data size 75, type "application/x-www-form-urlencoded":
2021-03-04 15:50:03.915 Info API trace 42003: movedParticipant=26de0160-30b5-4d7b-8a05-304472a
2021-03-04 15:50:03.915 Info API trace 42003: f284a&
2021-03-04 15:50:03.915 Info API trace 42003: needsActivation=false
Mova o participante para outra chamada, primeiro cria uma nova conta de convidado (guest2316075499).
2021-03-04 15:50:03.915 Info move participant operation: moving WC3 participant 26de0160-30b5-4d7b-8a05-304472af284a (guest921953266) (homed on this callbridge) to call ae778701-7fed-410c-b3e6-c2860907a3f4
2021-03-04 15:50:03.915 Info guest login request 0: credential storage scheduled (queue length: 1)
2021-03-04 15:50:03.915 Info created guest account with user ID "guest2316075499"
2021-03-04 15:50:03.915 Info guest login request 0: credential storage executed
2021-03-04 15:50:03.915 Info guest login request 0: credential storage in progress
2021-03-04 15:50:03.921 Info guest login request 0: successfully stored credentials
2021-03-04 15:50:03.921 Info replace query for conference c3958a89-3007-4959-99e7-f6ea84609aac: response from 'cbcms2' (priority: 0, load level: 0, conference is running: 1)
2021-03-04 15:50:03.921 Info replace query for conference c3958a89-3007-4959-99e7-f6ea84609aac: using local server 'cbcms2' (priority: 0, load level: 0, conference is running: 1)
2021-03-04 15:50:03.921 Info API call leg dd2bc8c6-fa80-495f-9a20-1da19010cfab in call c0cc4e15-bb74-4af3-948b-672c9571c7fc (API call ae778701-7fed-410c-b3e6-c2860907a3f4)
2021-03-04 15:50:03.922 Info 172.19.233.174: API user "admin" created new participant dd2bc8c6-fa80-495f-9a20-1da19010cfab, call ae778701-7fed-410c-b3e6-c2860907a3f4
2021-03-04 15:50:03.922 Info API trace 42003: sending 200 response, size 0
2021-03-04 15:50:03.922 Info API trace 42003: Location: /api/v1/participants/dd2bc8c6-fa80-495f-9a20-1da19010cfab
2021-03-04 15:50:03.923 Info new session created for user "guest2316075499"
2021-03-04 15:50:03.923 Info instantiating user "guest2316075499"
Exclua o usuário antigo guest921953266 e remova a chamada anterior, call 19.
2021-03-04 15:50:03.947 Info user "guest921953266": deactivating due to session resource teardown
2021-03-04 15:50:03.948 Info call 19: tearing down ("guest921953266" conference media)
2021-03-04 15:50:03.948 Info participant "guest921953266" left space 89eae70d-5b67-41fc-97f7-38a655fa6467 (Space 1 (webapp.com))
2021-03-04 15:50:03.948 Info call 19: destroying API call leg 26de0160-30b5-4d7b-8a05-304472af284a
2021-03-04 15:50:03.948 Info removing guest account 'guest921953266' (name 'User X') on call drop
2021-03-04 15:50:03.948 Info destroying guest account with user ID "guest921953266"
Êxito ao configurar sessão de mídia para a nova chamada, chamada 20.
2021-03-04 15:50:04.106 Info call 20: allocated for guest2316075499 / "User X" conference participation (Chrome)
2021-03-04 15:50:04.106 Info call 20: removing h264 from video codec bitmask, because it's Chrome web client and we're using a compatibility profile
2021-03-04 15:50:04.106 Info call 20: configured - API call leg dd2bc8c6-fa80-495f-9a20-1da19010cfab
2021-03-04 15:50:04.107 Info call 20: setting up combined RTP session for DTLS (combined media and control)
2021-03-04 15:50:04.108 Info participant "guest2316075499" joined space 59b9e43e-b277-4d33-a244-e896d20f2049 (Space 2 (webapp.com))
2021-03-04 15:50:04.108 Info participant "guest2316075499" (dd2bc8c6-fa80-495f-9a20-1da19010cfab) joined conference c0cc4e15-bb74-4af3-948b-672c9571c7fc via WB3
Quando o aplicativo Web recebe uma solicitação de movimentação, ele desconecta a chamada atual e inicia o processo de ingresso novamente com o novo JWT. Após a movimentação, o participante vê a mensagem Você foi movido para uma nova chamada no canto inferior direito, que indica que a chamada agora está em uma nova reunião, como mostrado na imagem seguinte. O texto após a mensagem Now in é o nome do espaço neste caso Space 2.

Alguns estados de reunião do aplicativo Web local, como mudo e layout, são transferidos da chamada anterior. Por exemplo, se o participante silenciar localmente, ele permanecerá silenciado na nova chamada.
Os próximos recursos não serão transferidos para a nova chamada:
- Apresentação - Quando o participante é movido, a apresentação ativa é descartada. Na nova reunião após a movimentação, o participante não compartilha.
- Mensagens de bate-papo - As mensagens de bate-papo anteriores são removidas do bate-papo e não são transferidas para a nova reunião.
Troubleshooting
Problema: O participante do aplicativo Web não é movido.
Pode significar muitas coisas:
- Nada aconteceu. A chamada ainda está conectada à primeira chamada.
- Descartado, mas não reconectado. A chamada é descartada, mas não se conecta à segunda chamada.
- Conecte-se à reunião errada.
Para o cenário a. Nada aconteceu:
- Certifique-se de que a ponte de chamada receba a solicitação de movimentação do CMM. Consulte as Mensagens de Log do CMS para obter palavra-chave específica, como operação de movimentação de participantes. Se o CMS não receber a API do CMM, faça a identificação e solução de problemas básicos entre o CMM e o CMS incluem rastreamento de API habilitado em ambos os lados, verificações de DNS (Domain Name Service) e verificação de conectividade.
- Veja se o parâmetro canMove em /participantes/<id do participante> ou /callLegs/<id de callLeg> está definido como true.
Para o cenário b. Descartado, mas não reconectado:
- Certifique-se de que a desconexão ocorre devido a uma movimentação, ou seja, procure a operação de movimentação de participantes no log.
- Nos registros do CMS, procure por erros/bloqueio de recurso na ponte de chamada que poderiam impedir o processo de criação do participante.
- O participante tem permissão para ingressar no novo espaço conjunto?
- Existe um erro com o JWT?
- Tente ingressar manualmente na reunião.
Para o cenário c. Conecte-se à reunião errada:
No arquivo HAR (Formato de Arquivo) do Hyper Text Transport Protocol (HTTP), observe o soquete da Web da primeira chamada, os dados do método de acesso para POST /api/call/session/move mostram a ID numérica usada para conectar à nova chamada. Certifique-se de que essa ID numérica é a que se destina à reunião.