Processing DRs via HTTP

Processing DRs via HTTP SearchSearch
Author Message
Alex Kaiser
Frequent Contributor
Username: Alex_k

Post Number: 196
Registered: 07-2006
Posted on Tuesday, April 19, 2011 - 11:29 am:   

Hi Des,

We have a SMSC connected over HTTP but there's no option to put DRs "inside" NowSMS once we receive them. It works fine if we don't use callbacks and updating statistics directly with our DRs handler. Is there any way to generate DRs for SMPP users? Updating statistics via our handler cost effort and complicated.

Our solution is to create ".rct" files in "IN" folder, recently NowSMS processes them then generates callbacks and passes DRs to SMPP users. Maybe there's any "legal" way to create DR and pass it through all stages? It would be perfect to make it like HTTP request. Sometimes it's necessary to resend DRs to SMPP users.

Regards,
Alex K.
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 3111
Registered: 08-2008
Posted on Tuesday, April 19, 2011 - 10:20 pm:   

Hi Alex,

Yes, there is a way to do this via HTTP.

However, before I get to this ...

The most difficult part of this tends to be the message ID tracking and conversion so that the receipt can be automatically delivered back to the correct user.

There are two ways to handle this.

1.) NowSMS passes its Message ID as one of the parameters in the HTTP SMSC URL template. The delivery receipt that comes back specifies this Message ID so that no conversion is necessary.

2.) NowSMS parses the upstream Message ID from the HTTP response it receives back when submitting the message. The delivery receipt contains a matching receipt and NowSMS converts it back to the previously assigned message ID to deliver to the client.

How to configure #1:

Edit SMSGW.INI ... under [HTTP - server:port] section header add TrackHTTPReceipts=Yes

Include @@MessageID@@ somewhere in the HTTP SMSC URL template.

How to configure #2:

Edit SMSGW.INI ... under [HTTP - server:port] section header add TrackHTTPReceipts=Yes and MessageIDResponsePrefix=xxxxx

NowSMS looks for xxxxx in the HTTP response, and assumes that the text that follows is an upstream message ID. Characters that are assumed to indicate the end of a message ID are white space, ">", "<" (so it works well with XML responses), ".", "," and ";".

Now ... to generate a delivery report back via HTTP:

Define an SMS User account to be used for the submitting entity.

Then use the following format to submit a delivery receipt.

http://ip:8800?User=x&Password=x&ReceiptMessageID=xxxxx&ReceiptDelivered=yes

Instead of ReceiptDelivered, you can specified ReceiptFailed or ReceiptIntransit (for a generic in-transit receipt).

Note that there is no support for a delivery timestamp, NowSMS will apply the current time of HTTP submission.

And there is no support for a failure status code in the case of ReceiptFailed=Yes.


--
Des
NowSMS Support
Alex Kaiser
Frequent Contributor
Username: Alex_k

Post Number: 197
Registered: 07-2006
Posted on Wednesday, April 20, 2011 - 09:15 am:   

Hi Des,

Our SMSC receive segmented messages only in single request (SendLongMessages=Yes) and we see that NowSMS transmits MessageID for the 1st part of message. As far as i understand ".DB" file also contains that id. Could be there a problem with segmneted messages? We generate report for 1st part only and other parts will be without DRs. How can we resolve that issue?

Regards,
Alex K.
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 3125
Registered: 08-2008
Posted on Thursday, April 21, 2011 - 07:54 pm:   

Hi Alex,

Unfortunately this is a somewhat common problem with long messages.

In addition to HTTP message segment combining, we have configurations where the same is done over SMPP. Multiple segmented message become one message submitted upstream, and as a result only one delivery report is received.

Conversely, NowSMS can accept a single large message from a client, and segment it for outbound delivery, resulting in extra delivery receipts that the client did not expect.

It's an area that we may need to focus some attention in the future. But at present, if a segmented message is combined when routing upstream, a delivery receipt will only come back for the first segment of the message.

--
Des
NowSMS Support