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 en la parte superior del archivo.
Añadir un VGVoiceClient y una instancia User debajo de la propiedad 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, vincule las dos funciones a sus respectivos botones al final del botón 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 en la configuración del cliente y el isUsingCallKit no debe utilizarse en producción. Active las notificaciones push para asegurarse de que recibe las llamadas entrantes incluso cuando su aplicación está en segundo plano utilizando CallKit. Ver el notificaciones push para 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:

Hacer 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