Kotlin

Encerrar uma chamada

A chamada pode ser encerrada por qualquer uma das duas partes:

  • aplicativo ao chamar o hangup método no call instância
  • chamar o destinatário desligando o aparelho físico

Encerrar a chamada quando o destinatário desligar

Para encerrar a chamada (desligar), é necessário armazenar a referência ao objeto da chamada em andamento. Adicione onGoingCallID propriedade no topo do MainActivity:

private var onGoingCallID: CallId? = null

Você precisa armazenar a referência da chamada em andamento no onGoingCallID propriedade e adicionar setOnRTCHangupListener para avisá-lo quando a ligação terminar.

No MainActivity atualizar o corpo do onCreate método para incluir o ouvinte abaixo no final do método.

client.setOnCallHangupListener { callId, callQuality, isRemote ->
    onGoingCallID = null
    startCallButton.visibility = View.VISIBLE
    endCallButton.visibility = View.INVISIBLE
}

No MainActivity atualizar o corpo do startCall método. Certifique-se de substituir PHONE_NUMBER abaixo, com o número de telefone que você deseja ligar, no E.164 formato (por exemplo, 447700900000):

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

Quando a chamada é encerrada (independentemente de quem a encerra — o aplicativo de chamadas ou o destinatário), a interface do usuário é atualizada para refletir o estado atual da chamada (make a call button é mostrado e END CALL (o botão está oculto).

Encerrar a chamada no aplicativo

No MainActivity preencha o corpo do hangup método:

private fun hangup() {
    onGoingCallID?.let {
        client.hangup(it) {
            err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    onGoingCallID = null
                }
            }
        }
    }
}

Observe que, após encerrar a ligação com sucesso, você define o valor do onGoingCallID redefinir a propriedade para null.

Compilar e executar

Pressione o Ctrl + R teclas para criar e executar o aplicativo. Inicie e encerre a chamada para ver as mudanças na interface do usuário.