Business Messaging API

Messagerie d'affaires


(Table des matières)
Introduction
Authentification
Chiffrement
Abréviations et acronymes
Envoyer un message
Demandes d'échantillons
Messages groupés
Références
Unicode
Détection automatique de l'encodage
Multipartie
Regroupement personnalisé
Période de validité
Réponses et erreurs
Contenu riche
Canaux autorisés
Suggestions/Fonctionnalités
Messagerie hybride
Rapport d'état webhook
Configurer les rapports d'état
Paramètres
Erreurs
SMPP
Accusés de livraison
Description globale
Répartition des champs
Valeurs de l'état du message
Connexion simple
API de conversion  

INTRODUCTION

L'API de messagerie de CM vous permet d'envoyer des messages depuis votre système vers des téléphones portables du monde entier. Cette API prend en charge différents canaux - entre autres SMS, RCS et Viber. Nous acceptons des messages uniques, mais aussi des volumes très élevés. L'API de messagerie est l'interface principal entre votre application et la plateforme CM. C’est le protocole http qui est utilisé.

La documentation Swagger est publiée sur https://gw.cmtelecom.com/docs.json

Les collections Postman se trouvent sur Postman 1.0 et Postman 2.1.

Authentification

Toutes les demandes nécessitent votre token de produit, qui vous a été envoyé par e-mail après l'enregistrement, par exemple 0000000000-0000-0000-0000-0000-0000-0000-0000000000000000000000. Vous pouvez également aller sur https://gateway.cmtelecom.com si vous vous êtes inscrit sur la plateforme CM.

Chiffrement

La communication avec les serveurs CM doit se faire en utilisant le protocole cryptographique TLS, version 1.1 ou supérieure.

Les protocoles de sécurité plus anciens tels que TLSv1.0 et SSLv3 ne sont plus valables.

Abréviations et acronymes Terme Description MT Mobile Terminé - Terme désignant un message texte envoyé de votre application à un combiné. MO Mobile Originated - terme désignant un message texte envoyé d'un combiné à votre application. SMPP Short Message Peer-to-Peer - protocole standard de l'industrie des télécommunications pour transférer des données de messages courts.

  Envoyer un message

Notre API prend en charge l'envoi de messages texte via HTTP. Vous pouvez envoyer une requête POST contenant un fichier XML ou JSON ou une demande GET . Les réponses et la gestion des erreurs des passerelles XML et JSON sont différentes : voir réponses et erreurs pour plus de détails.

L'appel GET exige que toutes les valeurs soient codées en URL.

POST nécessite un document XML valide, encodé en UTF-8. Les valeurs doivent être codées en XML et les noms des éléments XML sont en majuscules. Les caractères suivants ne doivent pas apparaitre dans le corps XML :

Un POST contenant JSON doit être envoyé à une URL différente. Les touches JSON sont insensibles à la casse.

Demandes d'échantillons

HTTP POST XML

URL final : https://sgw01.cm.nl/gateway.ashx

HTTP POST JSON

URL du point d'extrémité : https://gw.cmtelecom.com/v1.0/message

Veuillez noter que les objets MSG et « A » sont des séries et peuvent contenir plusieurs valeurs se traduisant en plusieurs messages.

HTTP GET

Nous maintenons également une interface de passerelle qui peut être adressée à l'aide d'une méthode HTTP GET. Cet appel est limité dans ses fonctionnalités et ne prend en charge que les paramètres de base (DE, A, BODY et REFERENCE), les options telles que la concaténation (multipart), unicode et la messagerie hybride ne sont pas prises en charge. Nous vous conseillons d'utiliser notre appel HTTP POST si possible.

Paramètre Description TOKEN DEPRODUIT Requis. Il s'agit du Token de produit qui vous a été envoyé par e-mail. Exemple : 0000000000-0000-0000-0000-0000-0000-0000000000000000''.

MSG Requis. L'étiquette msg-tag signale le début d'un message et devrait comprendre au moins une étiquette « de », « à » et « body ». Un appel HTTP peut supporter jusqu'à 1000 éléments msg.

« DE » Requis. C'est le nom de l'expéditeur. La longueur maximale est de 11 caractères alphanumériques ou 16 chiffres. Exemple:'CM Telecom'.

« A » Requis. Il s'agit du numéro de portable du destinataire. Restrictions : cette valeur doit être au format international. Un seul numéro de téléphone mobile par demande. Exemple:'0044791111123456'.

BODY Requis. Ceci est le texte du message. Restrictions : la longueur maximale est de 160 caractères.

DCS HTTP POST seulement. Vous utilisez le paramètre DCS (Data Coding Scheme) pour indiquer le type de message que vous envoyez. Si vous réglez le DCS sur'0' ou n'incluez pas le paramètre, les messages utilisent l'encodage GSM standard. Si DCS est réglé sur'8', le message sera encodé en utilisant Unicode UCS2. Voir le paragraphe Unicode pour plus d'informations.

REFERENCE Ici, vous pouvez inclure la référence de votre message. Ces informations se retrouveront dans un rapport d'état afin que vous puissiez faire correspondre le message et son état. Il doit être inclus dans le XML lors de la publication. Restrictions : 1 - 32 caractères alphanumériques et la référence ne fonctionnera pas pour les comptes de démonstration.

MINIMUMNUMBEROFMESSAGEPARTS / MAXIMUMNUMBEROFMESSAGEPARTS Utilisé lors de l'envoi de messages SMS en plusieurs parties ou concaténés et toujours utilisé ensemble. Indiquez le minimum et le maximum de parties de message que vous autorisez la passerelle à envoyer pour ce message (voir aussi Multipart). Techniquement, la passerelle vérifiera d'abord si un message est plus grand que 160 caractères. Si c'est le cas, le message sera découpé en plusieurs parties de 153 caractères limitées par ces paramètres.

APPKEY Utilisez une APPKEY à des fins de messagerie hybride. Si une APPKEY est ajoutée, la passerelle livrera selon les paramètres définis dans le gestionnaire d'applications.   Messages groupés

Si vous souhaitez envoyer plusieurs messages avec une seule demande, veuillez suivre les exemples ci-dessous. Vous pouvez soit déclarer plusieurs numéros de téléphone pour envoyer le même message à chacun des numéros de téléphone donnés, soit déclarer plusieurs messages différents dans une même requête.

Les exemples suivants montrent les deux méthodes d'envoi de messages par groupes en XML et JSON.

Références

Pour chaque groupe de messages que vous envoyez, vous pouvez définir une référence. Pour ce faire, ajoutez <référence>votre_référence</référence>à tout élément dans un corps XML, ou "référence" : "your_reference" à n'importe quel objet "msg" dans un corps JSON. La référence donnée s'appliquera aux messages envoyés aux numéros du MSG correspondant.

La référence donnée sera utilisée dans les rapports d'état du message, de sorte que vous pouvez lier les rapports d'état au groipe envoyé. Pour plus d'informations sur les rapports d'état, voir le Webhooks de rapport d'état.

La référence donnée doit être comprise entre 1 et 32 caractères alphanumériques et ne fonctionnera pas avec les comptes de démonstration.

Les deux exemples suivants montrent comment implémenter une référence dans votre XML ou JSON.

Unicode

Par défaut, notre passerelle interprète les messages comme s'ils étaient envoyés avec l'encodage GSM standard 7 bits. Si vous voulez envoyer des messages en utilisant par exemple l'arabe, le cyrillique ou les caractères grecs, vous devrez utiliser l'encodage unicode UCS2. Pour configurer votre message pour la messagerie unicode, incluez 8 dans votre élément , ou si vous utilisez JSON "DCS" : incluez 8 dans un objet MSG. Voir les exemples ci-dessous.

Veuillez noter qu'il y a quelques limitations à l'utilisation des messages codés en unicode :

  • Les messages Unicode peuvent contenir jusqu'à 70 caractères. Dans le cas de messages en plusieurs parties, cela devient 66 caractères par partie.
  • Vous devrez envoyer le fichier XML ou JSON. Une requête HTTP GET ne peut pas gérer les caractères Unicode.
  • Note : tous les opérateurs dans le monde ne sont pas capables de gérer les messages Unicode, vous devrez donc tester pour quels opérateurs il fonctionne.   Détection automatique de l'encodage

Il est possible de laisser notre passerelle faire la détection d'encodage pour vous. S'il détecte des caractères qui ne font pas partie du jeu de caractères GSM, le message sera livré en Unicode. Toute valeur DCS existante sera ignorée. Si le message contient plus de 70 caractères au format Unicode, il sera divisé en un message en plusieurs parties. Vous pouvez limiter le nombre de parties en réglant le nombre maximum de parties du message (voir aussi la section Multipartie ci-dessous).

Multipartie

Pour envoyer des messages de plus de 160 caractères, vous devez les envoyer sous forme de message en plusieurs parties (également appelés messages concaténés). Nous couperons le message en messages plus petits et le téléphone les collera à nouveau ensemble. Vous devrez ajouter un minimum et un maximum de parties de messages en utilisant les paramètres et ou leur équivalent JSON.

Veuillez noter qu'il y a quelques limites à l'utilisation des messages en plusieurs parties :

Chaque partie d'un message ne peut contenir plus de 153 caractères.
Le standard SMS permet théoriquement jusqu'à 255 parties de message. Dans la pratique, vous devriez essayer de limiter votre message à 8 parties de message.
Note : tous les opérateurs dans le monde ne sont pas capables de traiter les messages en plusieurs parties, vous devrez effectuer des tests chez les opérateurs .

Regroupement personnalisé

Le champ de regroupement personnalisé est un champ facultatif qui peut être utilisé pour taguer les messages. Ces tags seront utilisés par les futurs produits CM, comme l'API Transactions et les campagnes SMS. Bien qu'ils ne soient pas encore immédiatement visibles pour vous, des groupes personnalisés peuvent déjà être affectés.

L'application de noms de groupe personnalisés aux messages aide à filtrer vos messages. Avec jusqu'à trois niveaux de champs de regroupement personnalisés qui peuvent être définis, des sous-ensembles de messages peuvent être décomposés. Le nom de regroupement personnalisé peut comporter jusqu'à 100 caractères de votre choix.

Il est recommandé de limiter le nombre de groupes personnalisés uniques à 1000. Veuillez contacter le service d'assistance si vous souhaitez dépasser ce nombre.

                "contenu" : "Ce message utilise des groupes personnalisés"

Période de validité

Si vous souhaitez spécifier une heure à laquelle un MT retardé peut être considéré comme non pertinent, vous pouvez fournir une date et une heure dans le champ "validité". Notre système considérera le MT comme un échec s'il n'a pas été livré avec succès avant cette heure.

La durée de validité par défaut est de 4 heures et la période de validité maximale est de 48 heures.

Vous pouvez fournir la plage horaire pour la période de validité à l'aide de l'un ou l'autre des formats suivants :

2017-04-20 11:50:50:05 GMT
2017-04-20 11:50:05+8
2017-04-20 11:55:05-07:00

Réponses et erreurs

Les passerelles XML et JSON ont des sorties différentes et réagissent très différemment aux erreurs.

Lors de l'envoi d'une demande avec une partie invalide à la passerelle XML, AUCUN MESSAGES n'est créé et la demande entière est rejetée. Vous recevrez une réponse en texte clair avec les raisons pour lesquelles la demande a été rejetée.

Lors de l'envoi d'une demande avec une partie invalide à la passerelle JSON, il continuera à vérifier les autres objets « A » et les objets MSG disponibles et enverra les valeurs correctement formatées. Dans la réponse JSON, vous pouvez trouver des détails par message. Avec chaque message vous recevez le MSISDN du message échoué (si présent), le statut accepté ou rejeté, votre référence pour le message (si présent), le nombre de parties de messages que nous avons créées pour ce message, et une description des raisons pour lesquelles le message a été rejeté (si présent).

Exemple de réponse d'une requête XML échouée :

Statut : 200 OK

Exemples de réponses de demandes JSON échouées :

Requête entière incorrecte : Statut : 400 Mauvaise demande

MSG incorrect et un message correct : Statut : 200 OK

Tous les Statuts incorrects : 400 mauvaise demande

Réponses GET

Statut HTTP Texte d'erreur Remarques 400 (aucun) Aucun HTTP GET ou POST n'a été utilisé pour envoyer votre demande.

200 Erreur : ERREUR Erreur inconnue Une erreur inattendue s'est produite. Vérifiez les valeurs fournies. Contactez CM pour obtenir de l'aide.

200 (vide) La demande a été acceptée.

200 Erreur : ERREUR Aucun compte trouvé pour l'authentification donnée Aucun compte trouvé pour le token produit fourni.

200 Erreur : ERREUR Solde insuffisant. Comptes d'essai uniquement : Vous n'avez plus de messages d'essai. Commandez de nouveaux messages via votre tableau de bord. Si vous êtes un client régulier prépayé, vous serez avisé que votre quota est épuisé dans un rapport d'état.

200 Erreur : ERROR Le message d'ERROR n'est pas acheminable. Votre demande n'a pas pu être acheminée. Contactez CM pour obtenir de l'aide.

200 Erreur : ERREUR Le paramètre'token de produit' contient une valeur invalide : ''token de produit » invalide ou manquant.

200 Erreur : ERREUR Aucun nom d'expéditeur si le paramètre 'de' est manquant ou si sa valeur était vide.

200 Erreur : ERREUR Le paramètre 'à' contient valeur invalide : La valeur du paramètre'à' n'est pas un MSISDNDN valide.

200 Erreur : ERREUR Le paramètre'body' est obligatoire La valeur du paramètre'body' est manquante.

Réponses XML POST

Statut HTTP Texte d'erreur Remarques 400 (aucun) Aucun HTTP GET ou POST n'a été utilisé pour envoyer votre demande..

200 Erreur : ERREUR Erreur inconnue Une erreur inattendue s'est produite. Vérifiez les valeurs fournies. Contactez CM pour obtenir de l'aide.

200 (vide) La demande a été acceptée.

200 Erreur : ERREUR Aucun compte trouvé pour l'authentification donnée. Aucun compte trouvé pour le token produit fourni.

200 Erreur : ERREUR Solde insuffisant. Comptes d'essai uniquement : Vous n'avez plus de messages d'essai. Commandez de nouveaux messages via votre tableau de bord. Si vous êtes un client régulier prépayé, vous serez avisé que votre quota est épuisé dans un rapport d'état.

200 Erreur : ERROR Le message d'ERROR n'est pas acheminable. Votre demande n'a pas pu être acheminée. Contactez CM pour obtenir de l'aide.

200 Erreur : ERREUR token de produit non valide. Token de produit invalide ou manquant 200 Erreur : ERREUR Aucune zone ‘DE’ trouvée dans un nœud MSG. L'élément 'DE' manque dans l'élément'MSG

200 Erreur : ERREUR Un « MESSAGES node « nécessite au moins un nœud MSG Un nœud MSG dans le nœud MESSAGE est requis et est manquant.

200 Erreur : ERREUR Aucun numéro de téléphone trouvé. Le message ne sera pas envoyé. Il manque la valeur MSISDN pour l'élément ‘A’.

200 Erreur : ERREUR Rejeté : « Gsm ' » n'est pas un nombre. La valeur de l'élément « A» n'est pas un MSISDN valide.

JSON POST réponses

Statut HTTP Texte d'erreur Remarques 405 (aucun) Aucun HTTP GET ou POST n'a été utilisé pour envoyer votre demande.

500 "détails" : "Erreur inconnue" Une erreur inattendue s'est produite. Vérifiez les valeurs fournies. Contactez CM pour obtenir de l'aide.

400 "détails" : "Aucun compte trouvé pour l'authentification donnée" Aucun compte trouvé pour le token de produit fourni.

400 "détails" : "Solde insuffisant." Comptes d'essai uniquement : Vous n'avez plus de messages d'essai. Commandez de nouveaux messages via votre tableau de bord. Si vous êtes un client régulier prépayé, vous serez avisé que votre quota est épuisé dans un rapport d'état 400 "détails" : "Le message n'est pas acheminable." Votre demande n'a pas pu être acheminée. Contactez CM pour obtenir de l'aide. 400 "détails" : "Token de produit non valable." Token de produit invalide ou manquant

400 "détails" : "Un objet MESSAGES nécessite au moins un objet MSG" Un objet MSG dans l'objet MESSAGE est requis et est manquant.

400 "détails" : "Invalid JSON" Le JSON donné est malformé. Veuillez valider votre syntaxe JSON et réessayer.

200 "détails" : "Créé[x] message(s)" Un nombre[x] de messages a été accepté. Voir les objets de messages pour plus de détails.

  • "messageDetails" : "Aucun champ DE trouvé dans un objet MSG." L'élément 'DE' manque dans l'élément'MSG

  • "messageDetails" : " : "Champ de numéro de mobile vide, MT ignoré" "La valeur MSISDN pour l'élément ‘A’ est manquante.

  • "messageDetails" : "Rejeté : Gsm '[msisdn]' n'est pas un nombre." La valeur de l'élément ‘A’ n'est pas un MSISDN valide.

  • "messageDetails" : "L'objet[Objet] est un type invalide, doit être une serie "(Arry) Le[Objet] déclaré devrait être un tableau. Même si elle contient un élément.

  • "messageDetails" : "L'élément'BODY' est manquant dans l'élément'MSG'.

  • "messageDetails" : "Un « BODY » sans contenu a été trouvé" L'élément'BODY' est manquant'CONTENT'.

JSON POST Codes d'erreur

Code d'erreur Description 0 Ok 999 Erreur inconnue, veuillez contacter le support CM. 101 L'authentification de la requête a échoué. 102 Le compte utilisant cette authentification a un solde insuffisant. 103 Le token de produit est incorrect. 201 Cette demande comporte une ou plusieurs erreurs dans ses messages. Certains ou tous les messages n'ont pas été envoyés. Voir MSG pour plus de détails. 202 Cette demande est malformée, veuillez confirmer le JSON et que les types de données utilisés sont corrects. 203 Le tableau MSG de la requête est incorrect. 301 Ce MSG a un champ « DE » invalide (par msg). 302 Ce MSG a un champ « A » invalide (par msg). 303 Ce MSG a un MSISDN invalide dans le champ « A » (par msg). 304 Ce MSG a un champ Corps invalide (par msg) 305 Ce MSG a un champ non valide. Veuillez confirmer avec la documentation (par msg) 401 Le message a été filtré contre les spam. 402 Le message a été mis sur liste noire. 403 Le message a été rejeté 500 Une erreur interne s'est produite   Contenu riche

Un message peut contenir un objet RichContent. Cet objet RichContent peut contenir une conversation, des suggestions ou les deux.

Conversation

Une conversation peut contenir jusqu'à 5 messages qui seront envoyés au lieu d'un seul message SMS. Quand aucun objet de conversation n'est ajouté, nous utilisons le corps du SMS.

Un message a les possibilités suivantes :

Terme Description Texte Un simple message texte. Lorsqu'il est utilisé en combinaison avec un en-tête et/ou un média, il sera défini comme le texte d'une carte riche. En-tête Texte d'en-tête, disponible uniquement pour les cartes riches. Média Objet contenant des informations sur une image, une vidéo ou un fichier audio.

Ceci peut être utilisé pour une image autonome ou pour une carte riche. |

L'objet média contient les zones suivantes : Terme Description MediaName Nom de l'image, du son ou de la vidéo. MediaUri L'emplacement de l'image, de l'audio ou de la vidéo. MimeType Le mimetype de l'image, audio ou vidéo.

Lorsque vous envoyez une image, elle sera recadrée au centre (zoom avant ou arrière pour l'ajuster, puis recadrée) pour s'adapter à la fenêtre du téléphone mobile. Il est préférable d'expérimenter avec différentes tailles pour voir quelles images fonctionnent le mieux dans votre propre cas. En ce moment, nous conseillons une largeur maximale de 1440px et une hauteur de 1600px. En pratique, nous avons vu que pour une carte autonome qui s'étend sur la largeur de l'écran, un fichier d'environ ~120KB fonctionne bien lorsqu'il est combiné avec la compression JPEG.

Canaux autorisés

Le champ des canaux autorisés force un message à n'utiliser que certains itinéraires. Dans ce champ, vous pouvez définir une liste des canaux que vous voulez que votre message utilise. Le fait de ne pas définir de canaux sera interprété comme autorisant tous les canaux. Veuillez noter que pour les canaux autres que les SMS, CM doit configurer les flux sortants. Pour que ces flux fonctionnent, nous devons être contactés.

Les canaux disponibles sont :

SMS
WhatsApp
WeChat
Push
RCS
Viber
Voice

L'exemple de demande ci-dessous définit le canal "Push" autorisé et ne contient pas de "SMS". Cela signifie que le message sera limité aux seuls itinéraires "Push".

Suggestions/Fonctionnalités

Un message peut contenir jusqu'à 11 suggestions à un utilisateur. La façon dont ils sont utilisés dépend du scénario que vous voulez construire. Habituellement, seuls 2 ou 3 sont vus par l'utilisateur final lors de l'ouverture du message.

Label Le texte que l'utilisateur final verra. Action OpenUrl ; CreateCalendarEvent ; Dial ; ViewLocation ; Reply ; Reply

Selon l'action, certains champs sont censés compléter le flux de l’utilisateur.

OpenUrl

Ceci est utilisé pour donner à l'utilisateur une option pour ouvrir un lien. Il peut s'agir d'un lien in-app, qui ne s'affichera que lorsque l'application sera installée.

URL L'url que l'utilisateur final peut ouvrir.

Créer un Evénement Calendrier

Lorsque l'utilisateur clique sur cette icône, il ouvre l'application calendrier de l'utilisateur pour ajouter un nouveau rendez-vous.

Calendrier Un objet calendrier

L'objet calendrier contient les zones suivantes.

StartTime Début du rendez-vous. Par exemple "2018-02-05T07:00:00:00:00 EndTime La fin du rendez-vous, par exemple "2018-02-05T08:00:00:00". Description La description qui apparaîtra dans l'application calendrier. Titre Le titre du rendez-vous qui apparaîtra dans l'application calendrier.

Composer

Lorsque vous voulez faire en sorte que l'utilisateur puisse vous appeler, ou écouter un message vocal enregistré, cette suggestion peut être appliquée. Lorsque vous cliquez sur ce bouton, un nouvel appel est lancé.

Composer Un objet d’appel

L'objet appel contient la zone suivante.

Numéro de téléphone Le numéro à appeler (au format international)

Répondre

Envoie un message de réponse sous forme de message MO à l'expéditeur.

Postbackdata - Renvoyer ceci à la place de l'étiquette de la suggestion.

ViewLocation

Ouvre l'application de navigation de l'utilisateur avec un pin à l'emplacement spécifié.

ViewLocation – Un objets de localisation visuelle

Les objets de localisation visuelle contiennent les champs suivants :

Latitude (facultatif) - La latitude en degrés Longitude (facultatif1) - La longitude en degrés SearchQuery (optionnel1) - Rechercher cet emplacement au lieu d'utiliser la latitude/longitude. Étiquette (en option) - L'étiquette à afficher au niveau du pin.

  1. La recherche ou la latitude et la longitude sont obligatoires !

  Messagerie hybride

La Messagerie hybride est un moyen intelligent d'envoyer des messages basés sur les numéros de téléphone par SMS ou Push à travers la passerelle CM Messaging existante. Conditions préalables :

  • Assurez-vous d'implémenter le Hybrid SDK dans votre application.

  • Créez l'application dans le gestionnaire d'applications, sélectionnez le type de messagerie, téléchargez les certificats Apple et/ou les clés Android dans le gestionnaire d'applications.

  • Le gestionnaire d'applications vous donnera une clé d'application et un secret d'application, la clé d'application est nécessaire dans la demande à la passerelle.   Rapport d'état webhook

La plateforme SMS a la possibilité de communiquer avec un serveur web chaque fois qu'un message a un statut mis à jour. Ce rapport d'état appelé webhook peut être configuré sur la page de configuration. Les rapports d'état seront communiqués à l'aide d'une requête HTML GET.

Configurer les rapports d'état

Vous pouvez configurer votre rapport d’état Webhook dans l'application'Messaging Gateway'. Veuillez-vous référer à cet article auprès de notre centre d'aide pour plus d'informations. Lors de la configuration de l'URL du Webhook, vous devez vous assurer que cet URL renvoie le code d'état HTTP 200(OK) lors de l'appel test que nous effectuons. Si notre appel au Webhook échoue, nous n'utiliserons pas l'URL fourni.

Paramètres

Nom Format Description CREATED_S Datetime Le moment où le rapport d'état a été enregistré dans le système (aaaaa-mm-jjjdThhh:ii:ss) DATETIME_S Datetime Le moment où le rapport d'état a été envoyé au point final du client (aaaaa-mm-jjjdThh:ii:ss) GSM String Le numéro de téléphone du destinataire du message. REFERENCE String La référence du message fournie par le client. STANDARDERRORTEXT String La description de l'erreur si le message est dans un état d'erreur. STATUS Integer Code décrivant l'état actuel du message. 0=accepté par l'opérateur, 1=rejeté par CM ou l'opérateur,2=livré, 3=échec (le message n'a pas été livré et ne sera pas livré).

STATUSDESCRIPTION String La description de l'état actuel du message. +GSM String Le numéro de téléphone du destinataire commençant par + au lieu de 00 EXTERNALSTATUSDESCRIPTION String La description de statut que notre système a reçu du fournisseur. ID Integer L'identifiant du message dans le système. OPERATOR String Le MCCMNC de l'opérateur pour le destinataire. RECIPIENT String Le numéro de téléphone du destinataire du message. SRCREATED Datetime Heure à laquelle le rapport d'état a été enregistré dans le système (mm/dd/yyy hh:ii:ss P) SRCREATED_S Date Heure Le moment où le rapport d'état a été enregistré dans le système (yyyy-mm-ddThh:ii:ss) STATUSCODESTRING String La même valeur que[STANDARDERRORTEXT], mais en minuscules. STATUSISSUCCESS Integer L'état de réussite du code d'état, 1 sur le succès, 0 sur l'erreur. TIME Time Heure à laquelle le rapport d'état a été envoyé au point final du client (hh:ii:ss P). CUSTOMGROUPING string Le groupement personnalisé défini pour ce MT par l'utilisateur. Voir Groupement personnalisé CUSTOMGROUPING2 string Le deuxième regroupement personnalisé défini pour ce MT par l'utilisateur. Voir Groupement personnalisé CUSTOMGROUPING3 string Le troisième ensemble de regroupement personnalisé défini pour ce MT par l'utilisateur. Voir Groupement personnalisé

Erreurs

Code d'erreur Courte description Description complète 5 Message non livré à un tiers Le message a été confirmé comme non livré, mais aucune information détaillée relative à l'échec n'est connue. 7 Message non délivré à l'opérateur parce que le destinataire n'a pas suffisamment de crédit Temporaire - Utilisé pour indiquer au client que le message n'a pas encore été délivré en raison d'un crédit d'abonné insuffisant mais qu'il est en train d'être réessayé au sein du réseau. 8 Message expiré chez un tiers Temporaire - Utilisé lorsqu'un message expiré (n'a pu être délivré pendant la durée de vie du message) au sein du SMSC de l'opérateur mais n'est pas associé à un motif d'échec. 20 Message non livré en raison d'une demande malformée Utilisé lorsqu'un message sous sa forme actuelle n'est pas livrable. 21 Message expiré chez l'opérateur Temporaire - Se produit uniquement lorsque l'opérateur accepte le message avant d'effectuer la vérification de crédit de l'abonné. Si le crédit est insuffisant, l'opérateur réessaiera d’envoyer le message jusqu'à ce que l'abonné recharge ou que le message expire. Si le message expire et que le dernier motif d'échec est lié au crédit, ce code d'erreur sera utilisé. 22 Message non transmis à l'opérateur parce que le destinataire ne dispose pas d'un crédit suffisant Temporaire - Ne se produit que lorsque l'opérateur effectue la vérification de crédit de l'abonné avant d'accepter le message et rejette les messages si les fonds disponibles sont insuffisants. 23 Message non livré en raison d'un numéro de destinataire incorrect (invalide / liste noire / barré) Utilisé lorsque le message n'est pas livrable en raison d'un MSISDN incorrect / invalide / liste noire / barré de façon permanente pour cet opérateur. Ce MSISDN ne devrait pas être utilisé de nouveau pour la soumission de messages à cet opérateur. 24 Message non délivré parce que le destinataire n'était pas joignable Temporaire - Utilisé lorsqu'un message n'est pas livrable parce que l'abonné est temporairement absent, par exemple, son téléphone est éteint, il ne peut pas être localisé sur le réseau. 25 Message non livré à un tiers Temporaire - Utilisé lorsque le message a échoué en raison d'une condition temporaire sur le réseau de l'opérateur. Cela peut être lié à la couche SS7, SMSC ou passerelle. 26 Message non délivré en raison d'un problème temporaire de combiné (carte SIM pleine/mémoire dépassée/SME occupé) Temporaire - Utilisé lorsqu'un message a échoué en raison d'une erreur temporaire liée au téléphone, par exemple : carte SIM pleine, SME occupé, mémoire dépassée, etc. Cela ne signifie pas que le téléphone n'est pas en mesure de recevoir ce type de message/contenu (se référer au code erreur 27). 27 Message non délivré en raison d'un problème permanent de combiné (impossibilité de recevoir des SMS) Permanent - Utilisé lorsqu'un combiné est incompatible de façon permanente ou incapable de recevoir ce type de message. 28 Message non délivré parce que la vitesse de soumission est trop élevée (erreurs d'étranglement) Utilisé si un message échoue ou est rejeté en raison d'une suspicion de SPAM sur le réseau de l'opérateur. Cela pourrait indiquer dans certaines régions géographiques que l'exploitant n'a aucune trace du mode opératoire (MO) obligatoire requis pour un MT. 29 Message non délivré parce que le contenu n'est pas autorisé Permanent - Utilisé lorsque ce contenu spécifique n'est pas autorisé sur le réseau / shortcode. 30 Message non délivré parce que la limite de dépenses définie est atteinte Temporaire - Utilisé lorsque le message échoue ou est rejeté parce que l'abonné a atteint la limite de dépenses prédéterminée pour la période de facturation en cours. 31 Message non livré parce que le destinataire a été suspendu des services premium Utilisé lorsque le MSISDN est pour un abonné valide sur l'opérateur mais que le message échoue ou est rejeté parce que l'abonné ne peut pas être facturé, par exemple, le compte de l'abonné est suspendu (volontairement ou involontairement), l'abonné n'est pas activé pour les services de téléphonie par facturation, l'abonné n'est pas éligible pour les services de facturation, l'abonné n'est pas éligible pour les services de facture à téléphone, etc. 33 Message non délivré en raison du verrouillage parental Utilisé lorsque l'abonné ne peut pas recevoir de contenu pour adultes en raison d'un verrouillage parental. 34 Message non délivré parce que le contrôle de l'âge a échoué – Permanent -Utilisé lorsque l'abonné ne peut pas recevoir de contenu pour adultes parce qu'il n'a pas réussi le processus de vérification de l'âge. 35 Message non transmis parce que la vérification de l'âge est manquante Temporaire - Utilisé lorsque l'abonné ne peut pas recevoir de contenu pour adultes parce qu'il n'a pas déjà terminé la vérification de l'âge. 36 Message non délivré parce que la vérification de l'âge n'est pas disponible Temporaire - Utilisé lorsque l'abonné ne peut pas recevoir de contenu pour adultes parce qu'une erreur de communication temporaire empêche la vérification de son statut sur la plateforme de vérification de l'âge. 37 Message non livré parce que le destinataire est dans le registre national des numéros de télécommunication exclus (par exemple, le DienstenFilter de SMS néerlandais et la liste DnD chinoise) Le MSISDN figure sur la liste noire nationale.

SMPP

Les clients peuvent utiliser SMPP pour livrer et recevoir des messages mobiles terminés (MT), des messages provenant d'un mobile (MO) et des rapports de livraison (messages DLR) vers et depuis la passerelle SMS de CM. CM supporte le protocole SMPP version 3.4.

Accusés de livraison

Les récépissés de livraison sont envoyés dans le champ short_message d'un deliver_sm ou le message_payload TLV d'un PDU data_sm, selon la configuration du compte. Dans les deux cas, l'état du message est disponible sous la forme d'un message_state TLV attaché à la PDU ainsi que dans la réception réelle. Utilisez ce qui est le plus pratique.

Description globale

Le format suivant est utilisé :

id:IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII date de soumission:yyyyMMddHHmmss done date:yyyyMMddHHmmss stat:SSSSSSS err:EEE

Le nombre et l'ordre des champs est fixe, et ils sont séparés par un seul espace ASCII. Il n'est cependant pas prudent de dépendre de cela ; pour l'extensibilité, vous ne devriez pas présumer un nombre ou un ordre de champs et accepter des espaces blancs arbitraires comme séparateur.

De même, bien que les tailles soient spécifiées, les chaînes de caractères dont la longueur n'est pas fixe peuvent varier en taille -- la taille spécifiée ne reflète que la taille maximale reproduite telle qu'elle est actuellement mise en œuvre. En aucun cas, la longueur totale du message ne dépassera 255 caractères.

Répartition des champs Cham Taille Type Description id 32 string ID du message attribué au message par le SMSC lors de sa soumission initiale. Stat 7 Fixed length string Etat final du message tel que spécifié dans le tableau Valeurs de l'état du message ou ENROUTE pour les réceptions de messages en attente. submit date 14 Fixed length string L'heure et la date à laquelle le message court a été envoyé. Formaté : yyyyyyMMddHHmmss

done date 14 Fixed length string L'heure et la date à laquelle le message court a atteint son état final. Formaté : yyyyyMMddHHmmss

Valeurs de l'état du message

État du message État du message final Description (à partir du standard SMPP) Description spécifique CM LIVRÉ LIVRÉ Le message est livré à destination. Le message a été livré sur le combiné. EXPIRÉ EXPIRÉ La période de validité du message a expiré.
EFFAC É EFFAC É Le message a été effacé. Non utilisé. NON LIVRABLE NON LIVRABLE Le message n'est pas livrable. Le message n'a pas été livré sur le combiné. ACCEPT É ACCEPT É Le message est à l'état ‘accepté’ (c.-à-d. qu'il a été lu manuellement au nom de l'abonné par le service à la clientèle). Le message a été mis en mémoire tampon sur le réseau de l'opérateur. INCONNU INCONNU Le message est dans un état non valide. Non utilisé. REJETÉ REJETÉ Le message est dans un état rejeté. Le message n'a pas été accepté par le serveur.

Différences notables avec le format d'exemple donné dans la norme :

Les ‘Strings’ ne sont pas terminés par zéro, mais séparés par des espaces. Ainsi, aucun ‘String’ne contient d'espace blanc.
L'id du message n'est pas une décimale de 10 chiffres mais un ‘String’ de 32 caractères.
La date spécifie une année à 4 chiffres, et non à 2 chiffres, et inclut les secondes

Les champs'sub','dlvrd' et'text' ne sont pas disponibles.

Connexion simple

Afin d'utiliser une seule connexion pour envoyer des messages pour tous les opérateurs et les tarifs, les TLV propriétaires suivants sont pris en charge pour les DELIVER_SM PDU et les SUBMIT_SM PDU (veuillez noter que le tarif TLV n'est pas encore utilisé pour les DELIVER_SM PDU). L'unité de base du champ tarifaire est actuellement le centime pour tous les comptes. Champ Taille octets Type Description Parameter tag 2 Integer 0x140101 Length 2 Integer Longueur de la partie de la valeur Value 1-7 C-Octet string (décimale)

MCC/MNC de l'opérateur. Champ Tailleoctets Type Description Parameter tag 2 Integer 0x140A Lengthr 2 Integer Longueur de la partie de la valeur Value 1-6 C-Octet string(Decimal)

Tarif en unité de base

API de conversion

L'ajout de détails de conversion pour chaque message vous aide à garder un aperçu des conversions en utilisant Analytics et cela aide CM à améliorer la qualité de son service. Nous avons recommandé d'examiner l'utilisation de l'API Web de conversion.

Une conversion est une confirmation qu'un utilisateur final a utilisé le contenu du message sms/voice/push qui a été traité par CM.

Si vous souhaitez démarrer avec l'API de conversion, cliquez ici.

Business Messaging API | CM Help Center

Dernière modification :12/10/2018
Cet article vous a aidé ?