Anrufe entgegennehmen
In dieser Anleitung wird beschrieben, wie Sie mit dem Vonage Client SDK einen Anruf entgegennehmen können. Bevor Sie beginnen, stellen Sie sicher, dass Sie das SDK zu Ihrer App hinzugefügt haben und (Android, iOS, JS).
HINWEIS: Unter iOS wird erwartet, dass Sie CallKit für eingehende und ausgehende Anrufe verwenden. Bitte befolgen Sie die Leitfaden für Push-Benachrichtigungen.
Eine Anrufeinladung erhalten
Um einen eingehenden In-App-Anruf zu erhalten, sollten Sie auf eingehende Anrufeinladungen achten:
Um einen eingehenden In-App-Anruf zu erhalten, hören Sie auf die callInvite Veranstaltung:
// After creating a session
client.on("callInvite", (callId, from, channelType) => {
// Answer / Reject Call
console.log( { callId, from, channelType } );
});
client.setCallInviteListener { callId, from, channelType ->
// Handling incoming call invite
}
Hinzufügen der aktuellen ViewControllero.ä. als Delegierter für den Voice-Client:
client.delegate = self
ViewController müssen nun den folgenden Anforderungen entsprechen VGVoiceClientDelegatedie didReceiveInviteForCall Funktion wird aufgerufen, wenn ein Anruf eingeht. Behalten Sie den Verweis auf die callId da diese für die Durchführung weiterer Operationen benötigt wird:
extension ViewController: VGVoiceClientDelegate {
func voiceClient(_ client: VGVoiceClient, didReceiveInviteForCall callId: String, from caller: String, withChannelType type: VGVoiceChannelType) {
// Handling incoming callId
}
...
}
Dann können Sie die Einladung annehmen oder ablehnen.
Antwort
// After creating a session
client.answer(callId)
.then(() => {
console.log("Success answering call.");
})
.catch(error => {
console.error("Error answering call: ", error);
});
client.answer(callID) {
err ->
when {
err != null -> {
// Handle invite answer error
}
else -> {
// Handle active call
}
}
}
client.answer(callID) { error in
if error == nil {
self.callID = callID
} else {
// Handle answer error
}
}
Ablehnen
// After creating a session
client.reject(callId)
.then(() => {
console.log("Success rejecting call.");
})
.catch(error => {
console.error("Error rejecting call: ", error);
});
client.reject(callID) {
err ->
when {
err != null -> {
// Handle inviate reject error
}
}
}
client.reject(callID) { error in
if error != nil {
// Handle invite reject error
}
}
Auflegen
Für ein laufendes call:
// After creating a session
client.hangup(callId)
.then(() => {
console.log("Success hanging up call.");
})
.catch(error => {
console.error("Error hanging up call: ", error);
});
client.hangup(callID) {
err ->
when {
err != null -> {
// Handle hang up error
}
}
}
client.hangup(callID) { error in
if error != nil {
// Handle hang up error
}
}
Auf Anrufereignisse achten
Um den aktuellen Status eines Anrufs zu erfahren, z. B. ob der andere Teilnehmer den Anruf entgegengenommen oder aufgelegt hat, sollten Sie die Ereignisse zum Beinstatus abhören.
Aktuelle Informationen über den Stand des Aufrufs und seine Mitglieder:
// After creating a session
client.on("legStatusUpdate", (callId, legId, status) => {
console.log({callId, legId, status});
});
client.setOnLegStatusUpdate { callId, legId, status ->
// Call leg updates
}
Die didReceiveLegStatusUpdateForCall wird Sie über Änderungen an den Gesprächsabschnitten des aktiven Gesprächs informieren:
extension ViewController: VGVoiceClientDelegate {
func voiceClient(_ client: VGVoiceClient, didReceiveLegStatusUpdateForCall callId: String, withLegId legId: String, andStatus status: String) {
// Call leg updates
}
...
}