Can NowSms modify a message after a failure, but before a retry?

Can NowSms modify a message after a failure, but before a retry? SearchSearch
Author Message
marcia piccione
New member
Username: Mpiccione

Post Number: 5
Registered: 01-2012
Posted on Sunday, June 03, 2012 - 03:31 am:   

Apologies in advance if this posts twice.

2 questions:

If the smsc rejects an sms due to an invalid carrier id, can NowSms catch that specific error, remove the carrier id (TLV parameter) and then resend?

Related to that is, can NowSms receive an smpp request from an application bind, modify the smpp request and then send on to the SMSC (in other words is there an interceptor for outbound messages? I have only come across that for inbound/2-way processing.)

Thanks!
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 3981
Registered: 08-2008
Posted on Monday, June 04, 2012 - 09:30 pm:   

Hi Marcia,

The "carrier id" parameter that you refer to is a service provider specific parameter. And any error code that results from an invalid value of this parameter is also service provider specific.

(For others who would like background information on this parameter, see http://support.nowsms.com/discus/messages/1/71024.html)

The scenario that you describe is interesting, but somewhat difficult to deal with.

Accounting callbacks (http://www.nowsms.com/understanding-sms-accounting-callbacks) can tell you that a submission error has occurred. The status parameter in the SMSOut accounting callback will also tell you the SMPP error code that occurred. It is likely that your service provider has defined an error code on their system that indicates invalid carrier id, and you should configure NowSMS to understand this error code as a permanent error and not one that triggers a retry (http://www.nowsms.com/smpp-error-code-handling-in-nowsms).

The SMSOut Accounting Callback will provide you with details about the message that failed, but it does not provide a mechanism to modify message parameters and resubmit. (Some message parameters can be modified on submission during the SMSSend accounting callback, which might help with your second question, but does not help with the first question.)


quote:

Related to that is, can NowSms receive an smpp request from an application bind, modify the smpp request and then send on to the SMSC (in other words is there an interceptor for outbound messages? I have only come across that for inbound/2-way processing.)




In NowSMS 2011.06.20 and later versions, an accounting callback processing an SMSSend Accounting Callback can modify some parameters regarding the message being submitted.

This callback is triggered when an SMPP client makes a message submission.

Message parameters that can be changed at this time by such a callback include source and destination address, service type, validity period, and any SMPP TLV parameters (SMPPOptions) that have been defined.

There is limited documentation for this capability, but it is described with the following text in the release notes:

* Accounting callbacks now have the ability to change sender/recipient values (useful for source address translation when routing messages), and the ability to modify service type, validity and defined SMPP TLV parameters. This capability is enabled in the "SMSSend" and "SMSIN" accounting callbacks when SMSAccountingAllowChanges=Yes is defined in the [SMSGW] section of SMSGW.INI. When this setting is present, NowSMS will parse the HTTP response for "SMSSend" and "SMSIN" accounting callbacks looking for "To=", "Sender=", "ServiceType=", "Validity=" and "SMPPOption_xxxx=" settings. If any of these text strings are present, the value that follows will be used to replace the existing value. (In the case of SMPPOption_xxxx=, a blank value will completely remove the parameter.) It is recommended that the HTTP response terminate the value with a new line to act as an end of value string delimiter.

There is some discussion of it here: http://support.nowsms.com/discus/messages/1/70053.html

And a simple example that just modifies destination address (changes + to 00) here: http://support.nowsms.com/discus/messages/1/70303.html


--
Des
NowSMS Support