Chamadas no aplicativo
O recurso de Chamadas no Aplicativo permite incorporar comunicação de voz em tempo real diretamente em seus aplicativos móveis ou web usando a Voice API. Baseado na tecnologia WebRTC, ele oferece os recursos essenciais necessários para criar experiências de chamada ricas e interativas entre usuários dentro do seu aplicativo, ao mesmo tempo em que permite que as chamadas se conectem a terminais externos quando necessário.
A função “Chamadas no aplicativo” permite que os usuários do seu aplicativo façam e recebam chamadas de voz sem sair da interface do aplicativo. Ela oferece suporte tanto a conversas individuais quanto em grupo e fornece controles e eventos que ajudam você a criar uma experiência de comunicação integrada.
Esse recurso é viabilizado pela Voice API e pelos SDKs do lado do cliente, que, juntos, gerenciam o streaming de mídia, a sinalização de chamadas e o gerenciamento do ciclo de vida das chamadas.
Competências Essenciais
Controles do usuário
Os aplicativos podem oferecer controles de áudio integrados para que os usuários possam gerenciar sua experiência durante as chamadas em tempo real. Os controles mais comuns incluem:
- Silenciar e ativar o microfone
- Funcionalidade de “Earmuff” para silenciar o áudio recebido sem encerrar a chamada
Esses controles permitem uma interação flexível e melhoram a usabilidade durante as chamadas.
Notificações de chamadas
Você pode notificar os usuários sobre chamadas recebidas por meio de notificações push. Isso garante que os usuários continuem acessíveis mesmo quando o aplicativo estiver em execução em segundo plano ou o dispositivo estiver bloqueado.
Chamadas individuais e em grupo
O recurso de chamadas no aplicativo oferece suporte tanto a chamadas diretas entre dois usuários quanto a chamadas em grupo dinâmicas. É possível configurar as chamadas para que os participantes possam ser adicionados ou removidos em tempo real, possibilitando conferências e casos de uso colaborativos.
Suporte a DTMF
O recurso permite o envio de tons DTMF durante uma chamada, possibilitando a interação com sistemas IVR ou outros serviços de telefonia.
Continuidade da chamada
É possível melhorar a confiabilidade e a experiência do usuário com recursos como:
- Reconexão automática em caso de chamadas interrompidas
- Transferência de uma chamada ativa entre diferentes dispositivos para o mesmo usuário
Esses recursos ajudam a manter a comunicação ininterrupta mesmo com mudanças na rede ou trocas de dispositivos.
Extensibilidade por meio da Voice API
As chamadas no aplicativo fazem parte da plataforma mais ampla de Voice API da Vonage. Essa integração permite ampliar as chamadas no aplicativo para além da comunicação entre aplicativos e conectar-se a serviços externos de telefonia e em tempo real.
A Voice API possui os seguintes recursos:
- Chamadas para telefones (PSTN)
- Chamadas para dispositivos compatíveis com SIP
- Conexão com outros serviços por meio de WebSockets
- Gerenciamento de chamadas
- Configurações complexas de fluxo de chamadas
- Gravação de fluxo de voz
- Teleconferência
- Mensagens de conversão de texto em fala
Essa flexibilidade permite combinar a comunicação dentro do aplicativo com a telefonia tradicional e fluxos de trabalho de voz automatizados.
Retenção e armazenamento de dados
Por padrão, as conversas criadas por chamadas e seus trechos de chamada associados são armazenados por 2 dias. É possível modificar esse período de retenção configurando o TTL das conversas ou o tempo de persistência dos trechos de chamada no Painel da API, nas configurações avançadas do recurso de voz.
O ajuste desses valores permite que você adapte o armazenamento de dados aos requisitos operacionais e de conformidade do seu aplicativo.
Criar um usuário
Crie um usuário que fará login no Vonage Client e utilizará os recursos de chamadas no aplicativo: conversas, chamadas e assim por diante.
Execute o seguinte comando no seu terminal para criar uma usuária chamada Alice:
vonage users create `
--name='Alice'
✅ Creating User
User ID: USR-00000000-0000-0000-0000-000000000000
Name: Alice
Display Name: Not Set
Image URL: Not Set
Time to Live: Not Set
Channels:
None Set
vonage users create ^
--name='Alice'
✅ Creating User
User ID: USR-00000000-0000-0000-0000-000000000000
Name: Alice
Display Name: Not Set
Image URL: Not Set
Time to Live: Not Set
Channels:
None Set
O ID do usuário é utilizado pelo SDK para realizar tarefas, como fazer login, iniciar uma chamada e outras.
Gerar um JWT de usuário
JWTs são usados para autenticar um usuário no Client SDK.
Para gerar um JWT para a Alice, execute o seguinte comando (substituindo pelos seus dados):
# A command with parameters
vonage jwt create `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key `
--sub='Alice' `
--acl='{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}'
# Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ
REM A command with parameters
vonage jwt create ^
--app-id='00000000-0000-0000-0000-000000000000' ^
--private-key=./private.key ^
--sub='Alice' ^
--acl="{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}"
REM Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ
O comando acima define o prazo de validade do JWT como 24 horas por padrão. Você pode alterar o prazo de validade para um período mais curto usando o --exp bandeira.
NOTA: Em aplicativos em produção, espera-se que seu backend exponha um endpoint que gere um JWT de acordo com a solicitação do seu cliente.