Message status, errorcodes and flow of a message

Message Status - Description

 

The “Message Status” are grouped into Categories and range of Code.

Category “Not Sent”
Message Status less than 100 means the message is not yet sent to mobile Providers.
When scheduling messages, the messages appear in the system with a Message Status equal to 0.

Category “Delivered”
This category contains only one message status (200) , this code means that the message, or part of the message, was successfully delivered to the end-user.

Category “Not Delivered”
This category contains 2 ranges of message status.
The range 300-399 (3xx) is used to classify messages that were not delivered by the mobile provider.
The range 800-899 (8xx) is used to define messages that were not correctly sent by The Ring Ring Company to the mobile provider (Internal Error).

Category “Unknown”
The range 400-499 (4xx) defines messages for which we never received a Message Status from the mobile provider. The message can be correctly delivered or not.

Category “Pending”
The Range 100-199 (1xx) is used for messages that were submitted to the mobile providers.
The range 900-999 (9xx) is used to classify messages that are in progress. This last range is the only temporary range and the message status will be updated to 2xx or a 3xx range or 8xx or 4xx.

 

Status codes

Message Status is representing an internal status code used to standardize the different
Delivery Notification Codes received by mobile providers

Message Status  Category  State  Reason  Detail
0

Not Sent

Temporary   Message scheduled to be sent in the future  The message has not been sent out yet.
10

Pending

Temporary The message is being submitted to the provider  The message is in the process of being sent to the provider
20

Pending

Temporary Message is scheduled to be sent in the future The message has been sent to a distributor, but that distributor has not sent it yet to a provider (like Proximus, Base, ...) Most likely, your message is in a queue and will be sent out later.
100

Pending

Temporary Acknowledgment received  The operator has received your message and sent an acknowledgement, but the recipient has not yet received the message.
101

Pending

Temporary Message is partially submitted  The message was submitted to the provider partially, it's still waiting on the other parts
200

Delivered

Final OK Delivered  The message was delivered
201

Delivered

Final OK Message is partially delivered  Some parts were delivered, but some parts could not be delivered.
300 Not Delivered   Final Error General Error We succesfully submitted the message to the provider.  However, the provider sent back an error.  Since we work with hundreds of providers and each provider has different errorcodes, we cannot be more specific.  If it concerns a vital message or you have this error multiple times with the same number, please contact support@ringring.be 
301 Not Delivered Final Error Subscriber absent (mobile device is switched off, ...) Your recipient has not turned on his phone in a while.
302 Not Delivered Final Error Subscriber cannot receive premium messages Your recepient may have asked his/her provider to block all premium messages, both outgoing and incoming
303 Not Delivered Final Error Subscriber cannot receive premium when roaming  Your recipient cannot receive premium message when roaming
305 Not Delivered Final Error No more credit on the prepaid sim card  Your recipient is using a depleted prepaid SIM card.  Since the amount of the Premium SMS will be subtracted from the amount of his prepaid card, we cannot deliver the message.
309 Not Delivered Final Error End-user doesn’t belong to a mobile provider  This number doesn't have a provider.  Sometimes this means the number is incorrect.  It's also possible that the recipient has changed provider and it can take up to a few days for this change to be implemented.
310 Not Delivered Final Error Validity Period expired or refused by mobile provider  The provider has tried to deliver this message several times, but gave up after a certain amount of time.
400 Unknown Final Unknown An unknown error occurred  When we don't receive any status updates from the provider, we cannot know if the message was delivered or not.  Unknown error does not necessarily mean it was not delivered, we just don't know.
501

Partial

Temporary Message is partially erroneous  One or more parts of your message has generated an error and we don't know the status of the other parts yet.
800 Not Delivered Final Error Message was canceled by RingRing  Sometimes our customer (you) ask us to cancel a mailing. 
801 Not Delivered Final Error Source address not available  If you are trying to send out a message with a source number that was not configured at our side, you will get this error.
802 Not Delivered Final Error The Validity Period of the message expired  When RingRing gets an error from the provider, we keep trying to send out the message.  After a certain time we stop trying.  This time is called the "validity period" and depends on your application.
803 Not Delivered Final Error

Wrong number

 The format of your number is not correct

804 Not Delivered Final Error

Fix Number not supported

 We cannot send messages to fix numbers.

805 Not Delivered Final Error

Blocked trial

Your trial credits are depleted or the trial period has expired.

806 Not Delivered Final Error

Message Content Length invalid

 Your message was either empty or too long.  If you are using Email to SMS, check if your signature is in the message.  Remember to use <end> tags.

808 Not Delivered Final Error The message is MSISDN is blacklisted  People that send "STOP" will appear in the blacklist.  Default, this list is ignored.  However, when you enable this option, people in that list cannot be contacted.
900 Pending Temporary Technical error, message will be sent later
(retry mechanism)
 We have encountered a technical error, but we are going to retry.  If we do not succeed in delivering the message, we will provide you the error message.
901 Pending Temporary Subscriber absent, message will be sent later
(retry mechanism)
 The recipient's phone is not on or he is not connected to a mobile network at the moment.  We will retry later.
902 Pending Temporary Bad mobile provider, message will be sent to
another mobile provider (retry mechanism)
 There are many roads to the same goal.  When one provider cannot deliver the message, we will ask another provider to deliver the message.
903 Pending Temporary Subscriber not able to receive message, message will be sent later (retry mechanism)  The same as 902, but instead of changing the provider, we will change the sender's number and try again.
905

Pending

Temporary Subscriber doesn't have enough Credit (retry mechanism)  The recipient is using a prepaid card and he does not have enough credit on it to receive your message.
906

Pending

Temporary The route of the message is unavailable (retry mechanism)  One of the operators is down and we will retry until we succeed in sending the message.
911

Pending

Temporary Message is partially buffered  Some parts of your message have been sent, but not all of them.  We will retry sending the remaining parts.
 

Flow : Checking Constraints

The first step in the process is to check if the message must be sent or not.
There are some checks on the Validity Period, shortcode... If the message cannot be handled, then the Message Status value will be set to 8xx.

This important check is performed whenever a message must be submitted.

 

Flow : Submitting Messages

When sending a message to the mobile provider, it is sending back a positive (ACK-Acknowledgment) or negative response (NACK -Negative Acknowledgment).

This operation is called “Submitting” the message.
When the ACK is received then the Message Status becomes 100 (Submitted).
When a NACK is received then the Message Status will change depending on the number of remaining retries: If the number of retries is exhausted then the Message Status will become 3XX.

If retries are still possible then the Message Status will become 9XX and the complete process will restart after a delay.
NACK means mainly that there is a technical issue at the mobile provider side or that the mobile subscriber cannot receive premium SMS (account blocked or prepaid card is empty: 302, 303, 305).

For Message Status equals to 302 or 303, the retries are not performed.
The delay between retries depends on the type of error received.

 

Receiving the Delivery Notification Codes

This step is asynchronous and is not linked to the sending of the message. The mobile
providers decide when the delivery notification is sent.
The Ring Ring Company translates all Delivery Notification Codes from mobile providers into a standardized list of Message Status. The Message Status will pass from 100 to 200 or 3XX.

 

Closing Message Status

This step is asynchronous and performed by the Ring Ring Company.
The Ring Ring Company “closes” the Message Status after 96 hours if the messages has not received a delivery notification code (for example, if the mobile provider has issues.
For all messages not having a Final State, the Message Status is put to 400 (Unknown).
Note that if for any reason, the mobile provider is sending the delivery notification code after 96 hours, The Ring Ring Company takes it into account and updates the Message Status.

 

Cautions on Delivery Time

Depending on the mobile providers, the timestamps used to determine the delivery time is subject to caution.
When timestamps are provided by mobile providers, the date & time depends on the clock synchronization of the mobile providers.
For information, clocks of servers owned by The Ring Ring Company are synchronized with the Network Time Protocol (NTP) every 30 minutes.

For non-premium message on Proximus(MT), the timestamp provided by Proximus doesn’t indicate the seconds.
A message can be sent at 10:55:26 and the delivery time will be 10:55:00, meaning that the message seems to be  delivered before it was sent.

For premium message on Proximus(MTR), the timestamp is not delivered.
The Ring Ring Company provides the timestamp when the report was received.

Based on these remarks, the time between the Message Sent and the Message Delivery cannot be taken into account to measure the performances of delivery; the information must be used as is.

These constraints are linked to mobile providers and all application service providers are facing the same issue and limitations.

 

SMS Service Level

The Service level cannot be measured from the creation to the delivery of SMS for the following reasons:

  • The phone number used by the customer to send the message can be inactive then the delivery will fail.
  • The GSM device can be off or simply out of range then first delivery attempt will fail.
  • The delivery notification received from mobile providers is asynchronous and the timestamp provided is not always accurate or present.

In conclusion, the guaranteed delivery percentage (or the speed to deliver) is not depending on the services of The Ring Ring Company but depends first on the end-user and mobile providers.

This statement is valid for ALL application service providers.

The Ring Ring Company can provide Service Level based on the availability of the tools (SMS Gateway, SMS mailer, web interface, SMS infrastructure ... ) and on the submit of messages to the mobile providers.
The submit process can be measured in term of quantity and speed between The Ring Ring Company and the mobile provider. The Service Level will exclude all issues related to the mobile providers (out of the scope of Ring Ring’s responsibility).

The Ring Ring Company provides information about the percentage of delivery, the reasons of non-delivery and performs also a close monitoring of the transactionsn enabling a faster reaction than mobile providers in case of issue.

These constraints are linked to mobile providers and all application service providers are facing the same issue and limitations.

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk