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 :
- Données de session SMS : les données de session SMS définissent la session, comme par exemple le numéro de téléphone du titulaire obtenu du fournisseur SMS, le numéro de téléphone de l'utilisateur, et la valeur du délai d'attente de session facultatif.
- Données utilisateur : ces données facultatives sont un contexte défini par l'application qui est transmis sous forme de données opaques au moteur ou directement au service Watson Assistant.
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.
- Gestion des sessions
- Création d'une session : crée une session SMS entre l'utilisateur spécifié et les numéros de téléphone des titulaires.
- Suppression d'une session : termine et élimine une session SMS existante.
-
Tests de configuration
- Test de la configuration du fournisseur SMS : envoie un message SMS indiquant "
Test Connection message from SMS Gateway". Si le message peut être envoyé, le test a réussi. -
Test de la configuration du service Watson Assistant : envoie la demande à l'espace de travail Watson Assistant configuré. Si une réponse non nulle est reçue, le test a réussi.
Rappel : Pour obtenir une réponse, votre dialogue doit inclure un noeud avec la condition
conversation_startet un noeud avec une réponse par défaut. Vous pouvez réaliser le test avec l'exemple de conversation ou créer votre propre dialogue. - Test de la configuration du serveur de mise en cache XSLD : envoie la demande aux points de terminaison configurés du catalogue XSLD. La demande crée une entrée avec une valeur test dans la grille de données XSLD, récupère la valeur et supprime l'entrée. Si toutes ces actions sont effectuées, le test a réussi.
- Test de la configuration du fournisseur SMS : envoie un message SMS indiquant "
- Intégration de SMS Gateway durant les appels vocaux Durant une conversation avec un appelant, IBM® Voice Gateway peut avoir besoin d'interagir avec l'appelant via des messages SMS. Les opérations suivantes prennent
en charge l'intégration de SMS Gateway à Voice Gateway :
- Création du canal de communication SMS : crée une session de canal de communication SMS entre Voice Gateway et SMS Gateway, le canal de communication SMS, et crée et déchiffre l'ID de canal de communication SMS qui contient le numéro de téléphone de l'utilisateur et le numéro de téléphone du titulaire. Cela active la messagerie SMS entre un agent vocal et l'appelant via SMS Gateway.
- Envoi d'un message SMS à l'aide de l'ID de canal de communication SMS : une fois que la session de canal de communication SMS entre Voice Gateway et SMS Gateway est créée, Voice Gateway uses utilise cette opération pour envoyer des messages SMS à un appelant.
- Envoi d'un message SMS sans l'ID de canal de communication SMS : cette opération envoie uniquement le message SMS sortant à l'appelant. L'utilisateur fournit le numéro de téléphone du titulaire, le numéro de téléphone de l'utilisateur, et le message.
- Suppression du canal de communication SMS : arrête et retire la session de canal de communication SMS créée par Voice Gateway.
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 :
-
Connexion sécurisée :
https://<host-address:secured-port>/publicURL/apis/explorer/Exemple :
https://123.4.5.67:9443/publicURL/apis/explorer/ # Single instance deployment https://123.4.5.67:30043/publicURL/apis/explorer/ # Highly available deployment -
Connexion non sécurisée :
http://<host-address:unsecured-port>/publicURL/apis/explorer/Exemple :
http://123.4.5.67:9080/publicURL/apis/explorer/ # Single-instance deployment http://123.4.5.67:30080/publicURL/apis/explorer/ # Highly available deployment
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
- Sous la colonne Data type, cliquez sur l'exemple pour préremplir la zone Value.
- 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.
- Cliquez sur Try it out! pour exécuter l'opération.
- 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 :
- Commande cURL utilisée pour effectuer l'opération
- URL de la demande
- Information de réponse de SMS Gateway
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.
-k: ignorer le chiffrement SSL/TLS pour une connexion non sécurisée-u <user name:password>: : envoyer le nom d'utilisateur et le mot de passe si vous avez activé l'authentification pour l'API REST
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'