Qu'est-ce que le DTMF ? Tonalités et agents vocaux

Rene, Kabir Goel 
Qu'est-ce que le DTMF ? Tonalités et agents vocaux

Le DTMF, c’est le son d’une touche de téléphone. Chaque touche joue deux tonalités en même temps, l’une d’un groupe grave et l’autre d’un groupe aigu, et le système en face décode la paire en chiffre. Le nom dit exactement cela : dual-tone multi-frequency, fréquences doubles. Bell l’a lancé sous le nom Touch-Tone en 1963, et la Recommandation UIT-T Q.23 en définit toujours les fréquences.

Plus de soixante ans plus tard, le DTMF sert aux appelants à saisir un numéro de compte, sauter un menu ou taper un code PIN, et aux logiciels à parcourir les serveurs vocaux d’autres logiciels. C’est aussi une source régulière de tickets « hier les chiffres passaient », parce que sur un appel VoIP les tonalités peuvent voyager de trois façons différentes. Ce guide couvre les tonalités, les trois transports, les causes de chiffres perdus et ce qui change quand c’est un agent vocal IA qui répond ou qui compose. Il s’adresse aux ingénieurs et aux équipes de centre de contact qui gèrent un parcours téléphonique.

(Vous cherchiez « DtMF » de Bad Bunny ? C’est un titre de DeBÍ TiRAR MáS FOToS. Mauvaise page, excellent album.)

Fréquences DTMF

Le clavier est une grille de quatre sur quatre. Chaque ligne a une fréquence grave, chaque colonne une fréquence aiguë, et une touche joue sa ligne et sa colonne ensemble.

1209 Hz1336 Hz1477 Hz1633 Hz
697 Hz123A
770 Hz456B
852 Hz789C
941 Hz*0#D

La touche 5 joue 770 Hz et 1336 Hz. La touche # joue 941 Hz et 1477 Hz. La quatrième colonne, de A à D, servait sur des équipements militaires et réseau et n’apparaît presque jamais sur un téléphone grand public : en pratique, vous gérerez douze touches, de 0 à 9, étoile et dièse.

L’astuce, c’est d’utiliser deux tonalités au lieu d’une. La voix et la musique placent rarement de l’énergie exactement sur une fréquence grave et une fréquence aiguë de ces ensembles au même instant, donc un décodeur distingue une touche d’une voix. La norme fixe aussi des limites de durée et d’écart de volume entre les deux tonalités, ce qui rend les fausses détections rares même quand quelqu’un parle sur la ligne.

Comment le DTMF voyage sur un appel moderne

Sur une ligne cuivre, le DTMF n’était que de l’audio sur le fil. Sur un appel IP, il existe trois options, et les deux extrémités doivent s’accorder sur l’une d’elles.

MéthodeComment le chiffre voyageOù ça casse
Audio dans la bandeLes tonalités sont mélangées à l’audio de l’appel comme n’importe quel sonLes codecs compressés et la perte de paquets déforment les tonalités ; le décodeur rate ou double des chiffres
Événements RTP (RFC 4733 / 2833)Un paquet telephone-event dans le flux RTP indique le chiffre et sa duréeUn côté envoie des événements et l’autre n’écoute que l’audio
SIP INFOUn message SIP INFO sur le chemin de signalisation porte le chiffre, hors audioProxys et opérateurs qui ne relaient pas INFO, et un horodatage qui dérive de l’audio

La RFC 4733 a remplacé la RFC 2833 en 2006, mais beaucoup de réglages de PBX et d’opérateurs affichent encore « RFC 2833 ». C’est la même option. La RFC explique en une phrase pourquoi elle existe : les codecs vocaux à bas débit « ne peuvent pas garantir de reproduire ces tonalités assez fidèlement pour une reconnaissance automatique ». G.711, le codec à 8 kHz de la plupart des appels, transporte bien les tonalités. Les codecs à bas débit comme G.729 souvent non.

Les événements RTP sont le choix sûr par défaut. Ils survivent à n’importe quel codec, portent le chiffre exact plutôt qu’un son à décoder, et la plupart des opérateurs et des plateformes les prennent en charge. La pile téléphonique de LiveKit, par exemple, envoie le DTMF sous forme d’événements telephone-event/8000.

Pourquoi des chiffres DTMF se perdent

Quand les touches échouent sur un appel VoIP, la cause est en général l’une de celles-ci :

  • Méthodes incompatibles. L’opérateur envoie des événements RFC 4733 et le système en face ne décode que l’audio dans la bande, ou l’inverse. Vérifiez le mode DTMF dans l’offre et la réponse SDP des deux tronçons de l’appel.
  • Audio compressé. Un tronçon qui transcode vers un codec bas débit abîme les tonalités dans la bande. Passez ce tronçon aux événements RTP, ou gardez-le en G.711.
  • Chiffres doublés. Une passerelle envoie la tonalité en audio et en événement, et le récepteur compte les deux. « 1234 » arrive en « 11223344 ».
  • Un flux média qui ne fait qu’écouter. Certaines API de streaming ne transmettent les touches que dans certains modes. Twilio Media Streams, par exemple, n’envoie de message dtmf que sur les flux bidirectionnels.
  • Délais d’attente. L’appelant marque une pause entre deux chiffres, et le système envoie une saisie incomplète. Le <Gather> de Twilio attend 5 secondes par défaut et valide sur #. Demandez aux appelants de terminer par dièse, et fixez le nombre de chiffres quand vous le connaissez.

Le test le plus rapide reste un vrai téléphone sur le vrai opérateur. Appelez, appuyez sur chaque touche et tapez un numéro avec des chiffres répétés. Les softphones de navigateur et les clients SIP de test négocient souvent une autre méthode qu’un mobile sur le réseau public.

DTMF et agents vocaux IA

Les agents vocaux remplacent beaucoup de menus « tapez 1 pour la facturation », mais le clavier ne va nulle part. Un agent gère le DTMF dans deux directions : l’appelant qui appuie sur des touches face à l’agent, et l’agent qui appuie sur des touches face au système de quelqu’un d’autre.

Recevoir les touches de l’appelant

Certains appelants préfèrent taper que parler, et certains numéros se tapent plus facilement qu’ils ne se disent. Un numéro de compte de 16 chiffres dicté sur une ligne bruyante est un test de reconnaissance vocale ; le même numéro au clavier, ce sont seize touches sans ambiguïté. Un bon agent accepte les deux dans la même conversation, sans menu.

Quelques règles font fonctionner la saisie au clavier avec un agent :

  • Attendez la saisie complète. Un appelant tape un numéro d’adhérent d’une traite. Si l’agent répond après le premier chiffre, il parle par-dessus le reste. Cartesia Managed Agents regroupe les chiffres jusqu’à ce que l’appelant fasse une pause, puis transmet la saisie au modèle comme un seul tour clavier, étiqueté pour que le modèle sache que l’appelant l’a tapée et non dite.
  • Laissez une touche interrompre. Un appelant qui commence à taper en pleine phrase veut que l’agent se taise. Sur Managed Agents, une touche coupe la réponse de l’agent comme la voix.
  • Gardez les secrets loin du modèle. Ne collectez ni numéros de carte ni codes PIN complets via l’agent. Transférez vers une ligne de paiement qui reste dans votre périmètre PCI et ne renvoyez qu’un jeton ou un résultat. Le guide bancaire détaille ce point.
  • Dites quoi taper. « Tapez votre numéro d’adhérent puis dièse » marche mieux que « Veuillez indiquer votre numéro d’adhérent », parce que l’appelant sait que les deux options existent.

Sur Managed Agents, les touches parviennent à l’agent sur les appels via Twilio et via le WebSocket de l’agent. Si vous connectez votre propre client au WebSocket, transmettez chaque touche sous forme d’événement dtmf_input :

{ "type": "dtmf_input", "digit": "5" }

Les chiffres valides sont 0 à 9, * et #. Sur tout autre chemin téléphonique, y compris un trunk SIP, passez un appel de test et vérifiez que l’agent entend les touches avant de construire un parcours qui en dépend.

Envoyer des tonalités pour parcourir un autre menu

L’autre direction, c’est l’agent qui appuie sur les touches. Les agents sortants qui appellent des assureurs, des pharmacies ou des fournisseurs passent la première minute de chaque appel dans le serveur vocal de quelqu’un d’autre. SuperDial, qui gère les appels aux organismes payeurs pour des structures de santé avec Cartesia, a intégré la navigation IVR à ses agents précisément pour cela.

Sur Managed Agents, activez l’outil système send_dtmf (Send keypad tones dans la page Tools du Playground). L’agent peut alors envoyer une ou plusieurs tonalités, comme 12#, quand un menu les demande.

{
	"config": {
		"system_tools": {
			"send_dtmf": {}
		}
	}
}

Les menus téléphoniques sont conçus pour des humains patients, alors dites à l’agent comment s’y comporter :

  • Écoutez le message en entier avant d’appuyer. Beaucoup de menus ignorent la saisie tant que le message n’est pas fini, et l’option voulue est souvent la dernière.
  • Mettez les chemins connus dans le prompt. « Pour Acme Health, tapez 2, puis 4, puis le numéro NPI du praticien suivi de dièse. » Les variables dynamiques peuvent remplir les identifiants à chaque appel.
  • Ne parlez pas pendant la navigation. La voix sur la ligne peut troubler un menu qui écoute des tonalités ou de la parole. L’outil envoie les tonalités sans que l’agent les commente.
  • Prévoyez l’humain. Quand un conseiller décroche, l’agent doit passer du mode menu à la conversation. Écrivez cette transition dans le prompt.

Pour vérifier l’ensemble, lancez les mêmes scénarios que pour n’importe quel parcours téléphonique. Le guide de test IVR couvre les chemins clavier scénarisés et l’évaluation d’un agent sur le résultat.

La place de Cartesia

Cartesia conçoit les modèles vocaux sur lesquels tournent les agents : Sonic pour la synthèse vocale et Ink pour la transcription. Managed Agents les réunit dans un agent hébergé qui répond aux appels sur des numéros Cartesia, Twilio ou votre propre trunk SIP, avec send_dtmf et les transferts intégrés. Les appels d’agent coûtent 0,06 $ par minute, et vous pouvez en créer un dans le playground et l’appeler depuis votre téléphone.

Si vous n’avez besoin que d’un menu clavier fixe, un CPaaS comme Twilio ou votre PBX le font déjà bien. Un agent devient rentable quand les appelants mélangent parole et clavier, ou quand vos propres appels doivent franchir le menu de quelqu’un d’autre.

Guides associés

FAQ

Qu'est-ce que le DTMF ?

DTMF signifie dual-tone multi-frequency, ou fréquences vocales. C'est la signalisation qu'utilise un téléphone quand on appuie sur une touche : chaque touche joue deux tonalités à la fois, une grave et une aiguë, et le système en face décode la paire en chiffre. Bell l'a lancé sous le nom Touch-Tone en 1963, et la Recommandation UIT-T Q.23 en normalise les fréquences.

Quelles sont les fréquences DTMF ?

Les lignes du clavier utilisent 697, 770, 852 et 941 Hz. Les colonnes utilisent 1209, 1336, 1477 et 1633 Hz. La touche 5, par exemple, joue 770 Hz et 1336 Hz ensemble. La colonne à 1633 Hz porte les touches A, B, C et D, absentes de la plupart des téléphones.

Pourquoi le DTMF ne fonctionne-t-il pas sur mon appel VoIP ?

Le plus souvent, les deux extrémités ne s'accordent pas sur la façon de le transporter. Le DTMF peut voyager comme audio dans l'appel, comme événements téléphoniques RTP (RFC 4733) ou comme messages SIP INFO. Les codecs compressés déforment les tonalités dans la bande, et si un côté envoie des événements pendant que l'autre écoute l'audio, les chiffres disparaissent. Vérifiez que les deux côtés négocient la même méthode et préférez les événements RFC 4733.

Quelle est la différence entre RFC 2833 et RFC 4733 ?

Elles décrivent la même chose. RFC 4733 a remplacé RFC 2833 en 2006 et définit l'envoi des chiffres DTMF sous forme d'événements nommés dans le flux audio RTP. Beaucoup d'équipements et d'opérateurs appellent encore l'option « RFC 2833 » : considérez les deux noms comme une seule option.

Un agent vocal IA peut-il détecter et envoyer des tonalités DTMF ?

Oui, si la plateforme le permet. Sur Cartesia Managed Agents, l'outil système send_dtmf permet à l'agent d'appuyer sur des touches pour naviguer dans le menu téléphonique d'une autre entreprise, avec les tonalités 0 à 9, étoile et dièse. Sur les appels Twilio et le WebSocket de l'agent, l'agent lit aussi la saisie au clavier de l'appelant et y répond. Testez les touches entrantes sur votre propre chemin opérateur avant de vous appuyer dessus.