VGVoiceClient
Antes de que puedas iniciar un chat, el Client SDK necesita autenticarse en los servidores de Vonage. Las siguientes adiciones son necesarias para ViewController.swift.
NOTA: Tenga en cuenta que ya ha importado VGVoiceClient al principio del archivo.
Añade un VGVoiceClient y una instancia User propiedad, debajo de la connectionStatusLabel.
class ViewController: UIViewController {
...
let connectionStatusLabel = UILabel()
var client = VGVoiceClient()
var user: User? {
didSet {
login()
}
}
}
Objetivos de los botones
Para que los botones de inicio de sesión funcionen, es necesario añadirles objetivos que ejecuten una función al pulsarlos. En los botones ViewController.swift añade estas dos funciones.
class ViewController: UIViewController {
...
override func viewDidLoad() {
...
}
...
@objc func setUserAsAlice() {
self.user = User.Alice
}
@objc func setUserAsBob() {
self.user = User.Bob
}
}
A continuación, vincula las dos funciones a sus respectivos botones al final del viewDidLoad función.
override func viewDidLoad() {
...
loginAliceButton.addTarget(self, action: #selector(setUserAsAlice), for: .touchUpInside)
loginBobButton.addTarget(self, action: #selector(setUserAsBob), for: .touchUpInside)
}
Añadir la función de inicio de sesión
Al final de ViewController.swiftañada el login que necesita la propiedad de usuario. Esta función crea una sesión cuando la propiedad de usuario se establece en un nuevo valor.
class ViewController: UIViewController {
...
override func viewDidLoad() {
...
}
func login() {
guard let user = self.user else { return }
VGVoiceClient.isUsingCallKit = false
let config = VGClientConfig(region: .US)
config.enableWebsocketInvites = true
client.setConfig(config)
client.createSession(user.jwt) { error, sessionId in
DispatchQueue.main.async { [weak self] in
guard let self else { return }
if error == nil {
self.connectionStatusLabel.text = "Connected"
} else {
self.connectionStatusLabel.text = error?.localizedDescription
}
}
}
}
}
Si se produce un error, se mostrará el icono connectionStatusLabel se actualiza con el estado de la conexión correspondiente.
NOTA: En enableWebsocketInvites opción de configuración del cliente y el isUsingCallKit Esta configuración no debe utilizarse en entornos de producción. Activa las notificaciones push para asegurarte de recibir las llamadas entrantes incluso cuando la aplicación esté en segundo plano utilizando CallKit. Consulta el notificaciones push Consulta la guía para obtener más información.
Construir y ejecutar
Pulse Cmd + R para construir y ejecutar de nuevo. Si pulsa sobre uno de los botones de inicio de sesión, el cliente iniciará sesión con el usuario correspondiente:

Realizar una llamada de voz de aplicación a aplicación
Realizas una llamada de voz desde una aplicación iOS a otra aplicación iOS