Collecte de chiffres DTMF
IBM® Voice Gateway prend en charge la norme RFC 4733, RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals. Les signaux deux-tons multifréquence (DTMF) sont convertis en énoncés texte à un seul chiffre qui sont envoyés à l'API Watson configurée.
Vous pouvez configurer Voice Gateway pour collecter les chiffres DTMF de la manière suivante.
- A l'aide d'une action permettant de collecter un nombre spécifié de chiffres DTMF
- A l'aide d'une action permettant de collecter une plage spécifiée de chiffres DTMF
- A l'aide d'une action permettant de collecter un nombre variable de chiffres et en terminant la session avec une touche de terminaison
- En collectant un chiffre DTMF unique sur chaque échange de conversation
Pour personnaliser les sessions de collecte DTMF, vous pouvez spécifier des séquences d'actions dans le dialogue Watson Assistant et personnaliser votre configuration de Voice Gateway.
A propos de l'action de collecte DTMF
Les sessions DTMF commencent pour Voice Gateway lorsqu'une séquence d'action est déclenchée dans Watson Assistant et commence avec la balise d'action vgwActCollectDTMF.
L'action suivante demande à Voice Gateway de lire le texte défini à l'appelant puis de commencer une session DTMF. La session se termine lorsque l'appelant appuie sur # ou lorsqu'un dépassement du délai de réponse se produit.
{
"output": {
"text": {
"values": [
"Please enter the extension you are trying to reach and then press #."
]
},
"vgwAction": {
"command": "vgwActCollectDTMF",
"parameters": {
"dtmfTermKey": "#",
}
}
}
}
Attribut de collecte DTMF
Lorsque vous configurez la balise d'action vgwActCollectDTMF, elle demande à Voice Gateway de collecter les entrées DTMF.
| Attribut | Description |
|---|---|
dtmfTermKey |
Touche de terminaison DTMF qui signale la fin de l'entrée DTMF. Par exemple, "#". |
dtmfCount |
Nombre de chiffres DTMF à collecter. |
dtmfMinCount |
Nombre minimum de chiffres DTMF à collecter lorsque vous configurez votre collecte DTMF pour accepter une plage d'entrées. |
dtmfMaxCount |
Nombre maximum de chiffres DTMF à collecter lorsque vous configurez votre collecte DTMF pour accepter une plage d'entrées. Lorsque ce nombre de chiffres est collecté, un échange de conversation est initié. |
dtmfInterDigitTimeoutCount |
Durée d'attente d'un nouveau chiffre DTMF après la réception d'un chiffre DTMF, en millisecondes. Durant une collecte DTMF active, cette durée s'active lorsque la première collecte DTMF est reçue. Lorsque le délai entre chiffres
est actif, il désactive le temporisateur vgwPostResponseTimeout. Si dtmfInterDigitTimeoutCount n'est pas spécifié, le délai après réponse est réinitialisé après chaque chiffre DTMF et reste actif jusqu'à
ce que vgwPostResponseTimeout soit atteint ou que la collecte se termine. |
dtmfIgnoreSpeech |
Si cet attribut est défini sur true, la parole est automatiquement désactivée à la réception d'un chiffre DTMF, jusqu'à ce que la collecte se termine ou que le délai d'attente soit dépassé. La valeur par défaut de
cet attribut est false. |
dtmfPauseAfterCollection |
Indique s'il faut désactiver l'entrée DTMF une fois la collecte DTMF terminée. Toute l'entrée DTMF est ignorée jusqu'à ce qu'elle soit réactivée par l'action vgwActUnPauseDTMF. La valeur par défaut de cet
attribut est false. |
Détermination du résultat de la collecte DTMF
La variable d'état vgwDTMFCollectionSucceeded indique si la collecte DTMF a réussi ou a échoué. Elle est transférée au moteur d'orchestration de service ou à l'espace de travail Watson Assistant avec les chiffres qui sont
recueillis durant la session après chaque échange de collecte DTMF.
Lorsque la valeur est Yes, une collecte DTMF a réussi pour l'une des raisons suivantes :
- L'appelant a appuyé sur une touche de terminaison
- Le nombre de chiffres collectés par l'appelant est le nombre qui est spécifié par
dtmfCountoudtmfMaxCount - Un dépassement du délai d'attente s'est produit et le nombre de chiffres collectés entre dans la plage spécifiée dans l'action de collecte.
Lorsque la valeur est No, une collecte DTMF a échoué pour l'une des raisons suivantes :
- Un délai d'attente s'est produit et aucune touche de terminaison n'a été activée.
- Un dépassement du délai d'attente s'est produit et le nombre de chiffres ne correspondait pas au nombre spécifié par
dtmfCount - Un dépassement du délai d'attente s'est produit et le nombre de chiffres collectés n'entre pas dans la plage spécifiée par
dtmfMinCountetdtmfMaxCount
Même si la valeur de vgwDTMFCollectionSucceeded est No, tous les chiffres collectés sont transmis au moteur d'orchestration de service ou à l'espace Watson Assistant dans la chaîne d'entrée de la demande d'échange.
Options de configuration DTMF
En plus de programmer comment les chiffres DTMF doivent être collectés, vous pouvez contrôler les comportements suivants :
- Quand DTMF est activé ou désactivé
- Comment la collecte DTMF affecte le traitement de la parole
- Comment DTMF interrompt la lecture à l'appelant
Désactivation de la reconnaissance vocale lors de la collecte DTMF
Durant une session DTMF, il est possible que vous souhaitiez uniquement collecter des informations issues de DTMF. Pour ignorer les bruits qui peuvent être reconnus comme parole par Voice Gateway, vous pouvez utiliser le paramètre dtmfIgnoreSpeech de la balise d'action vgwActCollectDTMF.
L'exemple suivant demande aux utilisateurs d'entrer le numéro d'une extension de téléphone via la parole ou DTMF. Dès la première réception d'un chiffre DTMF, cette action ignore les paroles de l'appelant jusqu'à ce que la collecte DTMF se termine.
Cette collecte se termine lorsque le nombre maximal de chiffres est collecté, si aucune parole ou aucun DTMF n'a été reçu de l'appelant ou après une pause du délai inter-chiffre de 1 seconde. Lorsque la collecte se termine, un événement d'échange est initié.
Rappel : dtmfIgnoreSpeech ignore les paroles une fois que les premiers chiffre DTMF est reçu et jusqu'à ce que la collecte se termine. De même, dtmfInterDigitTimeoutCount est activé après que Voice
Gateway reçoit le premier chiffre DTMF dans la collecte.
{
"output": {
"text": {
"values": [
"Please enter the extension you are trying to reach."
]
},
"vgwAction": {
"command": "vgwActCollectDTMF",
"parameters": {
"dtmfMinCount": "4",
"dtmfMaxCount": "6",
"dtmfIgnoreSpeech": "true",
"dtmfInterDigitTimeoutCount":"1000"
}
}
}
}
Désactivation des interruptions de fréquence vocale (DTMF)
Si vous voulez empêcher que les utilisateurs interrompent la lecture avec les interruptions DTMF, vous pouvez désactiver les interruptions DTMF en définissant la balise d'action vgwActDisableDTMFBargeIn dans la définition de noeud
JSON. Lorsque vgwActDisableDTMFBargeIn est initiée, Voice Gateway conserve son état pendant le reste de l'appel et ne collecte pas les DTMF tant que la lecture est active.
Pour ré-activer les interruptions, définissez la balise d'action vgwActEnableDTMFBargeIn dans le dialogue.
L'exemple suivant désactive les interruptions DTMF et la reconnaissance vocale, invite l'appelant à entrer l'extension et commence la session de collecte DTMF à la fin de la transaction de lecture.
{
"output": {
"text": {
"values": [
"Please enter the extension you are trying to reach."
]
},
"vgwActionSequence": [
{
"command": "vgwActDisableDTMFBargeIn"
},
{
"command": "vgwActPlayText"
},
{
"command": "vgwActCollectDTMF",
"parameters": {
"dtmfMinCount": "3",
"dtmfIgnoreSpeech": true,
"dtmfinterDigitTimeoutCount": "1000"
}
}
]
}
}
Utilisation d'une action pour collecter un nombre spécifique de chiffres DTMF
Vous pouvez utiliser un nombre exact ou une série d'entrées attendues pour votre collecte DTMF. Pour collecter un nombre spécifique de chiffres, configurez l'attribut dtmfCount.
Utilisation d'une action pour collecter une série spécifiée de chiffres DTMF
Pour configurer votre collecte DTMF pour accepter une série de chiffres, comme des codes confidentiels par exemple, vous pouvez utiliser les attributs dtmfMinCount et dtmfMaxCount. Ces attributs définissent le nombre de
chiffres minimum et maximum pouvant être entrés durant une session de collecte DTMF.
Dans l'exemple suivant, l'appelant est invité à saisir son code confidentiel et peut répondre avec un numéro compris entre 4 et 8 chiffres. Lorsque l'un des événements suivants se produit, un échange de conversation est initié.
- Un
vgwPostResponseTimeoutse produit car Voice Gateway ne reçoit aucune information de la part de l'appelant. - Un énoncé de parole est détecté
- Le nombre maximal de chiffres DTMF est collecté,
dtmfMaxCount - Ou, un délai entre chiffres se produit
{
"output": {
"text": {
"values": [
"Please enter your PIN."
]
},
"vgwAction": {
"command": "vgwActCollectDTMF",
"parameters": {
"dtmfMinCount": "4",
"dtmfMaxCount": "8",
"dtmfInterDigitTimeoutCount": "1000"
}
}
}
}
Utilisation d'une action pour collecter un nombre variable de chiffres et terminer la collecte avec une touche de terminaison
Vous pouvez définir la collecte DTMF pour qu'elle se termine lorsque les appelants appuient sur une touche de terminaison ou lorsqu'il ont fini une entrée DTMF.
dtmfTermKey- Touche de terminaison activée par un utilisateur pour indiquer qu'il a terminé son entrée DTMF.dtmfInterDigitTimeoutCount- Durée d'attente d'un nouveau chiffre DTMF après la réception d'un chiffre DTMF, en millisecondes.
Si vous n'utilisez pas les paramètres de balise d'action pour configurer le délai entre chiffres pour la collecte DTMF, Voice Gateway utilise la valeur de vgwPostResponseTimeout par défaut.
Evitez les problèmes : dtmfInterDigitTimeoutCount est uniquement activé et vgwPostResponseTimeout est désactivé après la réception du premier chiffre DTMF.
Collection d'un chiffre DTMF unique sur chaque échange de conversation
Vous pouvez configurer Voice Gateway pour activer ou désactiver la mise en pause d'une session de collecte DTMF à l'aide des balises d'action vgwActPauseDTMF et vgwActUnPauseDTMF. Si vous ne mettez pas en pause
la collecte DTMF, Voice Gateway initie un échange de conversation pour chaque chiffre DTMF qu'il reçoit. Voice Gateway met également en file d'attente tout chiffre DTMF reçu pendant qu'un échange de conversation est actif afin qu'aucun
chiffre DTMF ne se perde. Lorsque DTMF n'est pas mis en pause, vous pouvez utiliser DTMF pour que les bots vocaux se retirent immédiatement si une touche DTMF de 0 est reçue à un moment quelconque durant l'appel.
Si DTMF est mis en pause, votre collecte ne reçoit pas les DTMF.