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.

Tableau 1. Actions que vous pouvez initier à partir de Watson Assistant
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.
  • url
  • workspaceID
  • username
  • password
  • convApiVersion
  • apikey
  • tokenAuthEnabled
  • tokenServiceProviderURL
  • conversationFailedReplyMessage
  • convConnectTimeout
  • convReadTimeout
  • convMaxRetryNo
  • convRetryInterval
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.

Tableau 2. Variables contextuelles envoyées par SMS Gateway
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.

Tableau 3. Valeurs texte envoyées par SMS Gateway
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.

Tableau 4. Variables définies dans le dialogue Watson Assistant
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