SMS

Wat is een SMSC?

Een SMSC is een netwerkdienst die sms-berichten opslaat en doorstuurt voor bezorging.

Een bericht kan aankomen nadat een telefoon opnieuw verbinding maakt, ook al heeft de afzender het eerder ingediend.

Wat betekent store and forward?

De berichtencentrale slaat een bericht op voordat ze het probeert te bezorgen op de telefoon.

De acceptatie door het netwerk bevestigt niet dat de telefoon het bericht heeft ontvangen. Een uitgeschakelde of onbereikbare telefoon kan een bericht in de wacht laten staan. Wanneer de telefoon opnieuw verbinding maakt, wordt een nieuwe bezorgpoging mogelijk. Het bericht moet in aanmerking blijven komen voor die poging.

De 3GPP-specificatie 23.040 beschrijft de rol van de centrale in SMS.

Hoe lang kan een bericht wachten?

Het netwerk kan verdere bezorgpogingen doen zolang het bezorgvenster van het bericht open is. Dat venster heet de geldigheidsperiode.

De SMS-standaard laat afzenders een geldigheidsperiode meegeven. Je provider bepaalt of je die via de API kunt instellen.

Bezorging kan eindigen in verval wanneer dat venster sluit. Een vervalmelding betekent niet dat het oorspronkelijke verzendverzoek is mislukt.

Bij een tijdgevoelig proces moet je applicatie een eigen deadline handhaven. Als een verificatiecode tien minuten geldig is en na vier uur aankomt, moet je server hem weigeren. Een laat bericht mag de levensduur van de actie die het beschrijft niet verlengen.

Waar zit de centrale ten opzichte van mijn applicatie?

Je applicatie kan een berichtencentrale bereiken via een berichtenprovider, in plaats van zelf de carrierverbinding te beheren.

Providers gebruiken SMPP om berichten door te geven aan berichtencentrales, rechtstreeks of via andere routeringsdiensten. De SMPP-referentie beschrijft deze verbindingen.

Je provider kan een verzoek bevestigen voordat de volgende netwerkdienst het accepteert. De berichtencentrale kan het bericht vervolgens accepteren voordat de telefoon het ontvangt. Elke bevestiging beschrijft één fase van het traject.

Geaccepteerd maar niet bezorgd legt uit hoe die fasen zichtbaar zijn in een applicatie.

Wat kan ik zien via Bird?

Je kunt de overdracht aan de carrier en de gemelde bezorging inspecteren zonder zelf verbinding te maken met een berichtencentrale.

Het veld sent_at in het berichtantwoord registreert wanneer Bird het bericht aan de carrier overdraagt. delivered_at registreert bevestigde bezorging. Beide velden bevatten een tijdstempel of null. Een ontbrekende bezorgtijd betekent niet dat de telefoon het bericht heeft geweigerd.

Het verzendendpoint van Bird weigert validity_period met HTTP 422 SMSUnsupportedFeature. Je kunt het bewaarvenster van de carrier niet via dat veld instellen. Het antwoord retourneert dat veld niet.

Bird produceert sms.expired wanneer de carrier verval meldt. Een gebufferde ontvangstbevestiging, wat betekent dat de carrier het bericht vasthoudt, veroorzaakt geen publieke statuswijziging. Bezorgbevestigingen legt uit welke netwerkmeldingen je applicatie bereiken.

Wat verandert dit in een verzendworkflow?

Je applicatie moet bezorging behandelen als een latere gebeurtenis met een uitkomst die losstaat van het indienen.

Houd een wachtend resultaat gescheiden van een fout. Handhaaf deadlines voor verificatiecodes en andere tijdgevoelige acties in je applicatie. Gebruik een bezorgbevestiging als het bezorgrapport van het netwerk. Het bewijst niet dat iemand het bericht heeft gelezen.

Kort gezegd

  1. Acceptatie en bezorging zijn gescheiden.

    Een berichtencentrale kan een bericht accepteren voordat de telefoon van de ontvanger bereikbaar is.

  2. Opslag geeft bezorging een extra kans.

    Een wachtend bericht kan aankomen nadat de telefoon opnieuw verbinding maakt, zolang het bezorgvenster nog open is.

  3. Het bezorgvenster is eindig.

    Het netwerk kan verval melden wanneer de wachtperiode afloopt.

  4. Je integratie hoeft niet rechtstreeks te verbinden.

    Een berichtenprovider kan de verbinding tussen je applicatie en het carriernetwerk verzorgen.

Breng het in de praktijk.

Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.

Probeer de oefening en ontvang een implementatieoverzicht

Bouw op hetzelfde netwerk.

Een test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra u een betaalmethode toevoegt en een afzender verifieert.

Jouw volgende idee.
Klaar om te verbinden.