Kotlin

Fazer uma ligação

Por fim, vamos configurar a função de fazer chamadas a partir deste aplicativo.

No onCreate função, adicione o ouvinte de desligamento do RTC:

client.setOnCallHangupListener { callId, callQuality, isRemote ->
  onGoingCall = null
  hideUI()
  startCallButton.visibility = View.VISIBLE
  waitingForIncomingCallTextView.visibility = View.VISIBLE
}

Este ouvinte de chamada irá lidar com a situação em que a outra pessoa na chamada desligar. Quando isso acontecer, reinicializamos o aplicativo para seu estado original.

Adicione o código do ouvinte de clique para iniciar a chamada em onCreate também:

startCallButton.setOnClickListener { startCall() }

Para iniciar a chamada após pressionar start call botão “Adicionar o” startCall método interno Mainctivity classe:

@SuppressLint("MissingPermission")
fun startCall() {
  client.serverCall(mapOf("to" to otherUser)) {
      err, outboundCall ->
    when {
      err != null -> {
        connectionStatusTextView.text = err.localizedMessage
      }
      else -> {
        onGoingCall = outboundCall
        hideUI()
        endCallButton.visibility = View.VISIBLE
      }
    }
  }
}

O método acima inicia a chamada.

Webhooks

À medida que você for realizando a ligação, por favor, mude para o terminal e observe o /voice/answer endpoint chamado para recuperar o NCCO:

NCCO request:
  - callee: 447700900000

Além disso, à medida que a chamada passa por várias etapas, /voice/event está recebendo eventos:

...
---
VOICE EVENT:
{
  from: null,
  to: 'Alice',
  uuid: '2da93da3-bcac-47ee-b48e-4a18fae7db08',
  conversation_uuid: 'CON-1a28b1f8-0831-44e6-8d58-42739e7d4c77',
  status: 'started',
  direction: 'inbound',
  timestamp: '2021-03-10T10:36:21.285Z'
}
---
VOICE EVENT:
{
  headers: {},
  from: 'Alice',
  to: '447700900000',
  uuid: '8aa86e22-8d45-4201-b8d8-3dcd76e76429',
  conversation_uuid: 'CON-1a28b1f8-0831-44e6-8d58-42739e7d4c77',
  status: 'started',
  direction: 'outbound',
  timestamp: '2021-03-10T10:36:27.080Z'
}
---
...
---
VOICE EVENT:
{
  start_time: null,
  headers: {},
  rate: null,
  from: 'Alice',
  to: '447700900000',
  uuid: '8aa86e22-8d45-4201-b8d8-3dcd76e76429',
  conversation_uuid: 'CON-1a28b1f8-0831-44e6-8d58-42739e7d4c77',
  status: 'answered',
  direction: 'outbound',
  network: null,
  timestamp: '2021-03-10T10:36:31.604Z'
}
---
VOICE EVENT:
{
  headers: {},
  end_time: '2021-03-10T10:36:36.000Z',
  uuid: '8aa86e22-8d45-4201-b8d8-3dcd76e76429',
  network: '23433',
  duration: '5',
  start_time: '2021-03-10T10:36:31.000Z',
  rate: '0.10000000',
  price: '0.00833333',
  from: 'Unknown',
  to: '447700900000',
  conversation_uuid: 'CON-1a28b1f8-0831-44e6-8d58-42739e7d4c77',
  status: 'completed',
  direction: 'outbound',
  timestamp: '2021-03-10T10:36:35.585Z'
}
---
VOICE EVENT:
{
  headers: {},
  end_time: '2021-03-10T10:36:35.000Z',
  uuid: '2da93da3-bcac-47ee-b48e-4a18fae7db08',
  network: null,
  duration: '15',
  start_time: '2021-03-10T10:36:20.000Z',
  rate: '0.00',
  price: '0',
  from: null,
  to: 'Alice',
  conversation_uuid: 'CON-1a28b1f8-0831-44e6-8d58-42739e7d4c77',
  status: 'completed',
  direction: 'inbound',
  timestamp: '2021-03-10T10:36:36.187Z'
}

NOTA: Assim que a chamada for concluída, os eventos também conterão informações sobre a duração e o preço.

O end call O botão foi exibido para refletir o estado atual da chamada:

End call

Fazendo uma chamada de voz de aplicativo para aplicativo

Faça uma chamada de voz a partir de um aplicativo Android para o mesmo aplicativo Android instalado em outro dispositivo usando o Client SDK.

Etapas
1
Introdução a esta tarefa
2
Prerequisites
3
Criar um servidor de webhooks
4
Criar uma aplicação da Vonage
5
Criar os usuários
6
Gerar JWTs
7
Criar um projeto Android
8
Adicionar permissões
9
Criar a tela principal
10
Inicializar o cliente
11
Receber chamada
12
Fazer uma ligação
13
E agora?