SMS

Qu'est-ce qu'un SMSC ?

Un SMSC est un service réseau qui stocke les textos et les transmet pour livraison.

Un texto peut arriver après la reconnexion d'un téléphone même si l'expéditeur l'a soumis plus tôt.

Que signifie « stocker et transmettre » ?

Le centre de messagerie enregistre un texto avant de tenter de le livrer au téléphone.

L'acceptation par le réseau ne garantit pas que le téléphone a reçu le texto. Un téléphone éteint ou injoignable peut laisser un message en attente. Reconnecter le téléphone rend possible une nouvelle tentative de livraison. Le message doit rester éligible à cette tentative.

La spécification 3GPP 23.040 décrit le rôle du centre dans SMS.

Combien de temps un message peut-il attendre ?

Le réseau peut effectuer d'autres tentatives de livraison tant que la fenêtre de livraison du message reste ouverte. Cette fenêtre s'appelle la période de validité.

Le standard SMS permet aux expéditeurs de fournir une période de validité. Votre fournisseur décide si vous pouvez la définir via son API.

La livraison peut se terminer par une expiration lorsque cette fenêtre se ferme. Un rapport d'expiration ne signifie pas que la requête d'envoi initiale a échoué.

Pour un flux sensible au temps, votre application doit tout de même appliquer sa propre échéance. Si un code de vérification est valide pendant dix minutes et arrive après quatre heures, votre serveur doit le rejeter. Un texto tardif ne doit pas prolonger la durée de vie de l'action qu'il décrit.

Où se situe le centre par rapport à mon application ?

Votre application peut atteindre un centre de messagerie via un fournisseur de messagerie, plutôt que de gérer elle-même la connexion opérateur.

Les fournisseurs utilisent SMPP pour transmettre les textos aux centres de messagerie, directement ou via d'autres services de routage. La référence SMPP décrit ces connexions.

Votre fournisseur peut accuser réception d'une requête avant que le service réseau suivant ne l'accepte. Le centre de messagerie peut ensuite accepter le texto avant que le téléphone ne le reçoive. Chaque accusé de réception décrit une étape du parcours.

Accepté mais non livré explique comment ces étapes apparaissent dans une application.

Que puis-je observer via Bird ?

Vous pouvez inspecter le transfert à l'opérateur et la livraison signalée sans vous connecter vous-même à un centre de messagerie.

Le champ sent_at de la réponse du message enregistre le moment où Bird transmet le message à l'opérateur. delivered_at enregistre la livraison confirmée. Les deux champs contiennent un horodatage ou null. L'absence d'heure de livraison ne signifie pas que le téléphone a rejeté le texto.

Le point de terminaison d'envoi de Bird rejette validity_period avec HTTP 422 SMSUnsupportedFeature. Vous ne pouvez pas définir la fenêtre de rétention de l'opérateur via ce champ. La réponse ne renvoie pas ce champ.

Bird émet sms.expired lorsque l'opérateur signale une expiration. Un accusé de réception mis en mémoire tampon, c'est-à-dire que l'opérateur conserve le texto, ne produit aucun changement de statut public. Accusés de réception de livraison explique quels rapports réseau atteignent votre application.

Qu'est-ce que cela change dans un flux d'envoi ?

Votre application doit traiter la livraison comme un événement ultérieur dont le résultat est distinct de la soumission.

Gardez un résultat en attente distinct d'un échec. Appliquez des échéances pour les codes de vérification et les autres actions sensibles au temps dans votre application. Utilisez un accusé de réception de livraison comme rapport de livraison du réseau. Il ne prouve pas que quelqu'un a lu le texto.

En bref

  1. Acceptation et livraison sont distinctes.

    Un centre de messagerie peut accepter un texto avant que le téléphone du destinataire soit joignable.

  2. Le stockage offre une nouvelle possibilité de livraison.

    Un texto en attente peut arriver après la reconnexion du téléphone, à condition que la fenêtre de livraison soit encore ouverte.

  3. La fenêtre de livraison est limitée.

    Le réseau peut signaler une expiration lorsque sa période d'attente prend fin.

  4. Votre intégration n'a pas besoin de se connecter directement.

    Un fournisseur de messagerie peut gérer la connexion entre votre application et le réseau opérateur.

Développez sur le même réseau.

Une clé API de test est disponible immédiatement. La production est activée dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Votre prochaine idée.
Prête à se connecter.