Olá! Excelente análise, e sim - o comportamento desse endpoint pode gerar confusão pela forma como está descrito na documentação.
O que este endpoint realmente faz
Apesar da descrição mencionar "Add participants on behalf of a user", este endpoint não adiciona um novo participante à chamada.
Ele é usado apenas para atuar sobre um participante que já está na conversa, por exemplo:
-
Mutar / desmutar
-
Colocar em espera
-
Atualizar estado
-
Encerrar participação
Se o userId informado não estiver presente na conversa, a API retorna:
Ou seja:
Este endpoint só funciona para participantes já existentes.
Endpoint correto para adicionar um novo participante
Para adicionar um novo participante (interno ou externo), use:
Exemplo – adicionando um usuário interno à chamada:
Exemplo – adicionando um número externo:
Observação: conference: true garante que os participantes atuais permaneçam na chamada ao incluir o novo participante.
Resumindo
| Ação desejada |
Endpoint correto |
Observação |
| Adicionar novo participante (interno ou externo) |
POST /participants |
Cria um novo participante |
| Atuar sobre um participante existente |
POST /participants/user/{userId} |
Só funciona se o usuário já estiver na conversa |
📝 Sobre o texto da documentação
Você está certo em observar que a frase "add participants" nesta rota é ambígua.
O "add" se refere ao conjunto de operações de participantes, mas esta rota especificamente não cria participantes. Vale abrir um doc feedback caso queira reportar o ponto - é algo que aparece para outros devs também.
------------------------------
Fernando Sotto dos Santos
Consultor Grupo Casas Bahia
------------------------------