API de SMS Gateway
Vous pouvez contrôler le comportement de SMS Gateway et le flux d'une session SMS en échangeant des actions et des variables d'état avec le service IBM Watson™ Assistant. Les balises d'action initient des actions que SMS Gateway effectue durant une session de conversation et des variables d'état sont envoyées par SMS Gateway pour indiquer les caractéristiques de la session.
Balises d'action
Pour initier des actions dans SMS Gateway, vous pouvez définir des balises d'action dans un noeud du dialogue Watson Assistant au format JSON sur la propriété output. Pour chaque action, définissez une propriété smsAction contenant deux parties : une propriété command et une propriété facultative parameter où vous pouvez définir des attributs pour les commandes qui en ont besoin.
Par exemple, lorsqu'un noeud contenant l'action suivante est déclenché, il définit le délai d'attente de session sur 200 secondes.
{
"output": {
"smsAction": {
"command": "setSessionTimeoutCount",
"parameters":{
"count": 200
}
}
}
}
Lorsqu'un noeud contenant smsActSendMedia est déclenché, la messagerie MMS est activée.
{
"output": {
"smsAction": {
"command": "smsActSendMedia",
"parameters":{
"mediaURL": [
"https://exampleonly.com/media/l4JyRqcDU93S334KQ/first.gif",
"https://exampleonly.com/media/tK9wGsGc72LcznCSeU/second.gif"
]
}
}
}
}
Le tableau suivant affiche une liste des actions que vous pouvez spécifier dans le dialogue Watson Assistant ainsi que les attributs que vous pouvez définir pour chaque action.
| Commande d'action | Description | Attributs |
|---|---|---|
setSessionTimeoutCount |
Met à jour le délai d'attente de session | count : Temps en secondes |
smsActForceNoInputTurn |
Force un nouvel échange dans la conversation sans attendre l'entrée de l'utilisateur. SMS Gateway envoie une demande de message avec smsNoInputTurn dans la zone de texte de façon à vous permettre de mapper cette demande
à une intention dans votre dialogue. |
Aucune |
smsActSetConversationConfig |
Applique un ensemble de paramètres pour configurer un espace de travail ou un moteur d'orchestration de service Watson Assistant. Pour en savoir plus : Configuration dynamique du service ou du moteur d'orchestration de service Watson Assistant. | Tous les paramètres ci-après sont pris en charge. Pour plus d'informations, voir Propriétés de configuration JSON avancées de SMS Gateway.
tokenServiceProviderURL
|
terminateSession |
Termine la session associée | N/A |
smsActSendMedia |
Active la messagerie MMS | mediaURL : spécifie un tableau JSON d'URL de support publiques envoyées à l'utilisateur. |
Variables d'état envoyées par SMS Gateway
Pour indiquer un changement d'état dans la session SMS, SMS Gateway envoie des variables contextuelles dans chaque demande de message adressée
à Watson Assistant. Comme le dialogue Watson Assistant n'a pas d'état, tout état est conservé dans SMS Gateway entre les échanges avec Watson Assistant. Cela signifie que pour chaque échange de Watson Assistant au sein d'une discussion,
la section context est transmise à Watson Assistant, traitée ou mise à jour par le dialogue puis reçue en retour par Watson Assistant.
Par exemple, pour un échange de base dans la session SMS utilisant uniquement les valeurs requises, SMS Gateway envoie l'objet context suivant.
{
"context": {
"smsTenantPhoneNumber": "+12345556789",
"smsUserPhoneNumber": "+18765554321",
"smsSessionID": "a23de67h-e527-40d5-a867-5c0ce9e72d0d"
}
}
Les variables d'état suivantes sont envoyées par SMS Gateway dans la demande de message. Les valeurs smsTenantPhoneNumber, smsUserPhoneNumber, smsUserData et smsSessionTimeoutCount sont extraites
directement de l'API REST de session.
| Variable d'état | Description |
|---|---|
smsTenantPhoneNumber |
Numéro de téléphone du titulaire SMS Gateway que l'utilisateur envoie par message. |
smsUserPhoneNumber |
Numéro de téléphone de l'utilisateur qui échange des messages avec SMS Gateway. |
smsUserData |
Données au format JSON à transmettre mot pour mot au moteur d'orchestration de service ou à Watson Assistant. Cette variable est uniquement envoyée si la session est démarrée par le titulaire SMS Gateway et si les données sont envoyées via l'API REST. |
smsSessionTimeoutCount |
Valeur du délai d'attente de session. Cette variable est uniquement envoyée si la valeur de délai d'attente est définie via l'API REST. |
smsError |
Lorsque SMS Gateway ne parvient pas à envoyer un message SMS, cette variable contient des détails sur l'erreur qui s'est produite. |
smsSessionID |
GUID de la session associée de SMS Gateway. |
smsMedia |
arraylist de mediaURL et mediaContentType correspondant. Cette variable contextuelle est effacée à la fin de chaque échange de conversation. |
Mots-clés du texte
Certains événements déclenchent l'envoi par SMS Gateway d'un mot-clé texte dans la demande de message envoyée à Watson Assistant. Vous pouvez utiliser ces mots-clés texte pour un traitement ultérieur dans un moteur d'orchestration de service ou une analyse.
Le tableau suivant répertorie la valeur texte exacte envoyée par SMS Gateway et l'événement qui la déclenche.
| Valeur texte | Evénement |
|---|---|
smsError |
Envoyé si une erreur se produit lorsqu'un message SMS sortant est envoyé au fournisseur SMS. |
smsResponseTimeout |
Envoyé en cas de dépassement du délai d'attente de session lorsque l'utilisateur ne répond pas dans les délais définis par smsSessionTimeoutCount. |
Variables définies dans le dialogue Watson Assistant
Vous pouvez définir les variables d'état suivantes dans le dialogue Watson Assistant pour modifier le comportement de SMS Gateway. Si une variable associée à une variable d'environnement de configuration n'est pas définie, la valeur de la variable d'environnement associée est utilisée.
| Nom de la variable d'état | Valeur attendue | Description | Variable d'environnement associée |
|---|---|---|---|
smsConversationResponseTimeout |
Temps en ms | Durée en millisecondes durant laquelle SMS Gateway attend une réponse du service Watson Assistant. Lorsque cette durée est dépassée, SMS Gateway tente de contacter le service Watson Assistantà nouveau. Si le service n'est toujours pas joignable, la réponse SMS échoue. Version 1.0.0.5a et ultérieures. | WATSON_CONVERSATION_READ_TIMEOUT |