Hacer una llamada
Para realizar una llamada, tendrás que utilizar el callButton en el CallViewController Interfaz de usuario. Primero tienes que añadir un destino a ambos botones.
class CallViewController: UIViewController {
...
override func viewDidLoad() {
...
self.client.delegate = self
hangUpButton.addTarget(self, action: #selector(endCall), for: .touchUpInside)
callButton.addTarget(self, action: #selector(makeCall), for: .touchUpInside)
}
}
Cuando el callButton Si se pulsa, se abrirá el makeCall función. Añádela al final del CallViewController clase.
class CallViewController: UIViewController {
...
@objc private func makeCall() {
setStatusLabelText("Calling \(user.callPartnerName)")
client.serverCall(["to": user.callPartnerName]) { error, callId in
if error == nil {
self.setHangUpButtonHidden(false)
self.callID = callId
} else {
self.setStatusLabelText(error?.localizedDescription)
}
}
}
}
Al realizar la llamada, el callServer Se invoca la función. Esto enviará la información contenida en el diccionario —en este caso, el nombre de usuario del destinatario de la llamada— a tu servidor de webhooks. Tu webhook responderá con un objeto de control de llamadas que indicará a Vonage con quién debe conectar tu llamada.
NOTA: Además, asegúrate de que el servidor de webhooks que has configurado en los pasos anteriores siga en funcionamiento.
Pulse Cmd + R para compilarla y ejecutarla de nuevo. ¡Ya tienes una aplicación de llamadas que funciona! Para probarla, puedes ejecutar la aplicación en dos simuladores o dispositivos diferentes y realizar llamadas entre los dos usuarios:

Webhooks
A medida que avance en la llamada, por favor, cambie al terminal y fíjese en el /voice/answer punto final al que se realiza la llamada para recuperar el NCCO:
NCCO request:
- caller: Bob
- callee: Alice
---
EVENT:
{
client_ref: 'F906B27D-2119-482F-A876-0E5354D555D3',
from: null,
to: 'Bob',
uuid: '8eaf4a3b-bed7-4316-88f1-fdee8ed34552',
conversation_uuid: 'CON-a5739d52-35f4-49e1-99c9-68ef9ef2529a',
status: 'started',
direction: 'inbound',
timestamp: '2021-03-26T13:47:14.624Z'
}
---
EVENT:
{
start_time: null,
headers: {},
client_reference: 'F906B27D-2119-482F-A876-0E5354D555D3',
rate: null,
from: null,
to: 'Bob',
uuid: '8eaf4a3b-bed7-4316-88f1-fdee8ed34552',
conversation_uuid: 'CON-a5739d52-35f4-49e1-99c9-68ef9ef2529a',
status: 'answered',
direction: 'inbound',
network: null,
timestamp: '2021-03-26T13:47:14.624Z'
}
---
EVENT:
{
from: 'Bob',
to: 'Alice',
uuid: '61935d7b-9290-4788-8439-1111ae7c9f24',
conversation_uuid: 'CON-a5739d52-35f4-49e1-99c9-68ef9ef2529a',
status: 'started',
direction: 'outbound',
timestamp: '2021-03-26T13:47:21.032Z'
}
---
EVENT:
{
start_time: null,
headers: {},
rate: null,
from: 'Bob',
to: 'Alice',
uuid: '61935d7b-9290-4788-8439-1111ae7c9f24',
conversation_uuid: 'CON-a5739d52-35f4-49e1-99c9-68ef9ef2529a',
status: 'answered',
direction: 'outbound',
network: null,
timestamp: '2021-03-26T13:47:21.032Z'
}
---
EVENT:
{
headers: {},
end_time: '2021-03-26T13:47:23.000Z',
uuid: '61935d7b-9290-4788-8439-1111ae7c9f24',
network: null,
duration: '3',
start_time: '2021-03-26T13:47:20.000Z',
rate: '0.00',
price: '0',
from: 'Bob',
to: 'Alice',
conversation_uuid: 'CON-a5739d52-35f4-49e1-99c9-68ef9ef2529a',
status: 'completed',
direction: 'outbound',
timestamp: '2021-03-26T13:47:23.709Z'
}
---
EVENT:
{
headers: {},
client_reference: 'F906B27D-2119-482F-A876-0E5354D555D3',
end_time: '2021-03-26T13:47:23.000Z',
uuid: '8eaf4a3b-bed7-4316-88f1-fdee8ed34552',
network: null,
duration: '9',
start_time: '2021-03-26T13:47:14.000Z',
rate: '0.00',
price: '0',
from: null,
to: 'Bob',
conversation_uuid: 'CON-a5739d52-35f4-49e1-99c9-68ef9ef2529a',
status: 'completed',
direction: 'inbound',
timestamp: '2021-03-26T13:47:23.762Z'
}
---
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