Recibir una llamada
Esta guía explica cómo recibir una llamada con el Vonage Client SDK. Antes de comenzar, asegúrate de haber agregado el SDK a tu aplicación y (Android, iOS, JS).
NOTA: En iOS se espera que utilice CallKit para las llamadas entrantes y salientes. Siga las instrucciones de guía de notificaciones push.
Recibir una invitación de llamada
Para recibir una llamada entrante dentro de la aplicación, debes escuchar las invitaciones de llamada entrante:
Para recibir una llamada entrante dentro de la aplicación, escuche el sonido callInvite evento:
Añade el ViewControllero similar, como delegado del cliente de voz:
client.delegate = self
ViewController ahora tendrán que ajustarse a VGVoiceClientDelegateEl didReceiveInviteForCall será llamada cuando haya una invitación de llamada entrante. Mantenga la referencia a la función callId ya que será necesario para realizar otras operaciones:
extension ViewController: VGVoiceClientDelegate {
func voiceClient(_ client: VGVoiceClient, didReceiveInviteForCall callId: String, from caller: String, withChannelType type: VGVoiceChannelType) {
// Handling incoming callId
}
...
}
A continuación, podrás responder o rechazar la invitación.
Respuesta
client.answer(callID) { error in
if error == nil {
self.callID = callID
} else {
// Handle answer error
}
}
Rechazar
client.reject(callID) { error in
if error != nil {
// Handle invite reject error
}
}
Colgar
Para un call:
client.hangup(callID) { error in
if error != nil {
// Handle hang up error
}
}
Escuchar eventos de llamada
Para ver actualizaciones sobre el estado de una llamada, por ejemplo, para saber si el otro miembro respondió o colgó la llamada, debes escuchar los eventos de estado de tramo.
Para ver información actualizada sobre el estado de la convocatoria y sus miembros:
En didReceiveLegStatusUpdateForCall le informará de los cambios en los tramos de llamada de la llamada activa:
extension ViewController: VGVoiceClientDelegate {
func voiceClient(_ client: VGVoiceClient, didReceiveLegStatusUpdateForCall callId: String, withLegId legId: String, andStatus status: String) {
// Call leg updates
}
...
}