Utilisation de l'API REST pour le contrôle des sessions SMS

SMS Gateway fournit une API REST que vous pouvez utiliser dans les applications de votre centre d'appel pour que les agents puissent initier des sessions SMS entre un client et l'agent SMS. Vous pouvez incorporer l'API REST dans les applications à l'aide de ses commandes cURL. A des fins de test, vous pouvez également interagir avec l'API REST directement via son interface utilisateur Swagger.

A propos de l'API REST

L'API REST vous permet de contrôler les sessions SMS en exécutant les opérations disponibles, telles que la création d'une session ou le test d'une configuration. L'API REST contrôle les sessions SMS en transmettant deux types de données JSON à SMS Gateway :

Vous pouvez tester chaque opération directement au moyen de l'interface utilisateur Swagger de l'API REST, ou utiliser les commandes cURL pour chaque opération dans l'application de votre centre d'appel.

Opérations possibles

L'API REST vous permet de réaliser les opérations suivantes.

Si l'une des opérations échoue, consultez les journaux de SMS Gateway pour connaître l'origine du problème.

Accès à l'interface utilisateur Swagger de l'API REST

Après avoir déployé SMS Gateway, vous pouvez accéder à l'interface utilisateur Swagger de l'API REST aux adresses URL suivantes :

Sur la page API de SMS Gateway qui s'affiche, cliquez sur List operations pour afficher les opérations disponibles pour les sessions SMS.

Test d'une opération

  1. Sous la colonne Data type, cliquez sur l'exemple pour préremplir la zone Value.
  2. Modifiez les données JSON dans la zone Value, par exemple en entrant le numéro de téléphone de l'utilisateur et du titulaire. Important : Le numéro de téléphone du titulaire doit correspondre exactement au numéro de téléphone du titulaire spécifié dans la configuration de SMS Gateway.
  3. Cliquez sur Try it out! pour exécuter l'opération.
  4. Si vous y êtes invité, entrez le nom d'utilisateur et le mot de passe. Vous êtes invité à vous authentifier uniquement si vous avez activé l'authentification pour l'API REST.

Après avoir essayé l'opération, l'interface affiche les informations suivantes :

Utilisation des commandes cURL

Vous pouvez effectuer des opérations d'API REST à l'aide des commandes cURL, sur la ligne de commande ou en les incorporant dans une application. Les systèmes basés sur Linux incluent généralement des commandes cURL, mais si elles ne sont pas incluses dans votre système d'exploitation, vous pouvez télécharger et installer le package correspondant à votre système d'exploitation depuis curl.haxx.se.

Les commandes d'envoi de demandes sont spécifiées dans le format suivant :

curl -X <HTTP request> --header 'Content-Type: application/json' --header 'Accept: application/json' -d <JSON data>

Vous pouvez également spécifier les options suivantes. Pour obtenir des détails sur chaque option, veuillez vous référer à la documentation curl.

Exemples de commandes

Les exemples de commandes curl suivantes montrent les différentes opérations que vous pouvez réaliser avec l'API REST. Lorsque vous exécutez les exemples de commandes, assurez-vous de remplacer les valeurs smsUserPhoneNumber et smsTenantPhoneNumber par vos propres valeurs.

Important : Le numéro de téléphone du titulaire doit correspondre exactement au numéro spécifié dans la configuration de SMS Gateway. Le numéro de téléphone de l'utilisateur doit être spécifié dans un format adéquat, requis par votre fournisseur SMS. Par exemple, les numéros de téléphone Twilio nécessitent un signe plus (+), alors que les numéros de téléphone RestcommONE doivent être spécifiés sans le signe plus (+).

Gestion des sessions

Gérez des sessions à l'aide des commandes suivantes.

Création d'une session
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsUserPhoneNumber": "+18765554321", \
   "smsTenantPhoneNumber": "+12345556789", \
   "smsUserData": { "data": "Data"}, \
   "smsSessionTimeoutCount": 600 \
}' 'http://host:9080/sms.gateway/session'
Suppression d'une session
curl -X DELETE --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsUserPhoneNumber": "+18765554321", \
   "smsTenantPhoneNumber": "+12345556789" \
}' 'http://host:9080/sms.gateway/session'

Test de configuration

Testez votre configuration à l'aide des commandes suivantes.

Test de la configuration de fournisseur SMS
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsTenantPhoneNumber": "+18765554321", \
   "smsUserPhoneNumber": "+12345556789" \
 }' 'http://host:9080/sms.gateway/testConfig/SMSProvider'
Test de la configuration de service Watson Assistant
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsTenantPhoneNumber": "+18765554321", \
   "smsUserPhoneNumber": "+12345556789", \
   "smsUserData": { "data": "Data" }, \
   "smsSessionTimeoutCount": 600 \
}' 'http://host:9080/sms.gateway/testConfig/WCS'
Test de la configuration de serveur de mise en cache XSLD
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsTenantPhoneNumber": "+18765554321" \
}' 'http://host:9080/sms.gateway/testConfig/XS'

Intégration de la prise en charge de SMS Gateway pour des exemples de commande Voice Gateway

Les exemples de commande curl ci-après illustrent les commandes utilisées par SMS Gateway pour prendre en charge l'envoi et la réception de messages SMS par les clients vers/depuis Voice Gateway durant un appel. Lorsque vous exécutez les exemples de commande, remplacez les valeurs smsUserPhoneNumber et smsTenantPhoneNumber par vos propres valeurs. Pour que les exemples de commande fonctionnent correctement, vous devez également configurer les valeurs host et port dans votre URL de serveur SMS Gateway pour l'envoi de demandes. Votre URL de serveur SMS Gateway peut être http:// ou https://, selon le moment où le port sécurisé est configuré, mais doit toujours inclure la valeur /sms.gateway/smsPipe.

Vous trouverez des descriptions des variables de demande et de réponse sur l'interface utilisateur Swagger de l'API REST. Voir Accès à l'interface utilisateur Swagger de l'API REST.

Important : Le numéro de téléphone du titulaire doit correspondre exactement au numéro spécifié dans la configuration de SMS Gateway. Le numéro de téléphone de l'utilisateur doit être spécifié dans un format adéquat, requis par votre fournisseur SMS. Par exemple, les numéros de téléphone Twilio nécessitent un signe plus (+), alors que les numéros de téléphone RestcommONE doivent être spécifiés sans le signe plus (+).

Création du canal de communication SMS

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsUserPhoneNumber": "+18765554321", \
   "smsTenantPhoneNumber": "+12345556789", \
   "smsResponseURL": "https://vgwServer:port/smsRecv", \
   "smsToken": "tokenID",\
   "smsMediaURL": [ "https://media.com/media/l4JyRqcDU93S334KQ/first.gif", \
        "https://media.com/media/l4JyRqcDU93S334KQ/second.gif" ], \
   "smsMessage": "Hello this is a chat message sent from Voice Gateway.",\
   "smsOpaqueData": { "data": "Data"} ,\
   "smsPipeTimeoutCount": 1200 \
}' 'http://host:port/sms.gateway/smsPipe'

Envoi d'un message SMS ou MMS à l'aide de l'ID de canal de communication SMS

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsMessage": "Hello this is a chat message sent from Voice Gateway.",\
   "smsMediaURL": [ "https://media.com/media/l4JyRqcDU93S334KQ/first.gif", \
           "https://media.com/media/l4JyRqcDU93S334KQ/second.gif" ], \
   "smsOpaqueData": { "data": "Data"}
 }' 'http://host:port/sms.gateway/smsPipe/pipeID/KzE1MTAzMzAyNTgyOisxOTE5Njk5MjYwzJjZmNhZC1lMzc/sms'

Envoi d'un message SMS ou MMS sans l'ID de canal de communication SMS

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
   "smsUserPhoneNumber": "+18765554321", \
   "smsTenantPhoneNumber": "+12345556789", \
   "smsMessage": "Hello this is a chat session starting from Voice Gateway."\
   "smsMediaURL": [ "https://media.com/media/l4JyRqcDU93S334KQ/first.gif", \
           "https://media.com/media/l4JyRqcDU93S334KQ/second.gif" ]
 }' 'http://host:port/sms.gateway/smsPipe/sms'

Suppression du canal de communication SMS

curl -X DELETE --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{}' 'http://host:port/sms.gateway/smsPipe/pipeID/KzE1MTAzMzAyNTgyOisxOTE5Njk5MjYwzJjZmNhZC1lMzc'