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.

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.

Tableau 1. Attributs de la balise d'action vgwActCollectDTMF.
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 :

Lorsque la valeur est No, une collecte DTMF a échoué pour l'une des raisons suivantes :

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 :

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é.

{
  "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.

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.