Message Rejection

Message Rejection SearchSearch
Author Message
Shiby Varghese
New member
Username: Shiby

Post Number: 4
Registered: 01-2007
Posted on Wednesday, January 17, 2007 - 11:01 am:   

Sir,
Can you tell me how to handle the following scenario..
Verify that if a message is answered with a submit_sm_response with some other error besides a throttling error, said message shall be discarded by ESME. It shall not be resent.

thanks and regards
Shiby

Malcolm - Now Support
Moderator
Username: Malcolm

Post Number: 127
Registered: 12-2006
Posted on Tuesday, January 23, 2007 - 09:25 pm:   

The default behaviour for NowSMS with an SMPP connection is as follows:

For most SMPP error codes, NowSMS will assume that the error is temporary, and retry message delivery.

The exceptions to this are detailed below.

The following error conditions cause NowSMS to record a failure and NOT retry sending:

ESME_RINVDSTADDR (0x0B, invalid destination/recipient address)
ESME_RINVSRCADDR (0x0A, invalid source/sender address)
ESME_RX_R_APPN (0x66, receiver reject message)

The following error codes cause NowSMS to retry more times than the RetryMaxAttempts setting (default=20) allows:

ESME_RTHROTTLED (0x58, throttle error, slow down)
ESME_RMSGQFUL (0x14, message queue full)

For all other errors, NowSMS will retry sending the message up to RetryMaxAttempts times (default=20).

However, if you have particular error codes from your SMS provider that you need to treat as failure, you can add them to the SMPPRejectErrorCodes setting.

For example, to treat the 0xFE error as a permanent error, you would edit SMSGW.INI, and under the [SMSGW] header, add:

SMPPRejectErrorCodes=FE


The above is a general reply (cut & paste) regarding how NowSMS handles SMPP error conditions, not necessarily a direct reply to your query.

If your SMPP provider does not want you to retry message submission for any conditions other than a throttling error, then you would do the following:

[SMSGW]
RetryMaxAttempts=0
SMPPRejectErrorCodes=14

Why would I recommend those settings?

RetryMaxAttempts=0 tells NowSMS that it should not retry any message submissions if there is an error.

However, NowSMS will still perform retries for the following two conditions:

ESME_RTHROTTLED (0x58, throttle error, slow down)
ESME_RMSGQFUL (0x14, message queue full)


So, SMPPRejectErrorCodes=14 tells NowSMS that error 0x14 (ESME_RMSGQFUL) should be treated as a permanent error rather than an infinite retry error.

Please note that I do not recommend the above settings for general use. I only recommend them for the specific requirement outlined by the SMPP provider as detailed in the first posting in this thread.

--
Malcolm
Now Wireless Support