Senden und Empfangen von DTMF
Dual Tone Multi Frequency (DTMF) ist eine Form der Signalisierung, die von Telefonsystemen zur Übertragung der Ziffern 0-9 und die * und # Zeichen. In der Regel drückt ein Anrufer diese Tasten auf seiner Telefontastatur, woraufhin das Telefon einen Ton erzeugt, der aus zwei gleichzeitig gespielten Frequenzen besteht (daher Dual Tone).
DTMF wird sowohl für die Wahl eines Ziels auf einem Festnetztelefon als auch für die Signalisierung an die Gegenstelle verwendet, sobald ein Anruf angenommen wurde. In der Regel wird dies verwendet, um ein interaktives Voice-Response-System (IVR) zu implementieren oder um Informationen wie eine PIN-Nummer oder einen Konferenzgesprächs-Pin einzugeben.
Diese Anleitung beschreibt, wie Sie mit dem Client SDK DTMF-Eingaben senden und empfangen können. Bevor Sie beginnen, stellen Sie sicher, dass Sie das SDK zu Ihrer App hinzugefügt haben und (Android, iOS, JS) und Sie sind in der Lage machen. oder erhalten Anrufe.
DTMF senden
Sie können DTMF-Töne in ein laufendes Gespräch senden.
// After creating a session
client.sendDTMF(callId, "1234")
.then(() => {
console.log("Success sending DTMF.");
})
.catch(error => {
console.error("Error sending DTMF: ", error);
});
client.sendDTMF(callID, "1234") {
error ->
when {
error != null -> {
// Handle DTMF error
}
}
}
client.sendDTMF(callID, "1234", callback: { error in
if error != nil {
// Handle DTMF error
}
})
Während eines laufenden Anrufs, bei dem Ihr Backend eine NCCO mit einer Eingabeaktionwird durch das Senden eines DTMF-Tons die definierte "eventUrl".
DTMF-Empfang
Immer wenn ein Teilnehmer eines Anrufs ein DTMF-Ereignis sendet, werden alle anderen Teilnehmer des Anrufs über dieses Ereignis informiert.
// After creating a session
client.on("dtmf", (callId, legId, digits) => {
console.log(`leg: ${legId}: has received DTMF digits ${digits}`);
});
client.setOnDTMFListener { callId, legId, digits ->
...
}
Hinzufügen der aktuellen ViewControllero.ä. als Delegierter für den Voice-Client:
client.delegate = self
ViewController müssen nun den folgenden Anforderungen entsprechen VGVoiceClientDelegatewerden die DTMF-Ereignisse auf dem Gerät empfangen. didReceiveDTMFForCall Methode delegieren:
extension ViewController: VGVoiceClientDelegate {
func voiceClient(_ client: VGVoiceClient, didReceiveDTMFForCall callId: String, withLegId legId: String, andDigits digits: String) {
...
}
...
}