HTTP and DLR

HTTP and DLR SearchSearch
Author Message
Yaser Yavari
New member
Username: Afeyavari

Post Number: 1
Registered: 10-2012
Posted on Monday, October 22, 2012 - 10:50 pm:   

Hi

i want to setup nowsms with http service , how can i get DLR via http? i searched forum and i understood this information :

1- nowsms send sms via http with messageID (nowsms ID)
2- http page write a messageID
3- another http service send a request to now sms with messageid and delivery status

right?

in step 1 : is messageID required?

in step 2 : in asp.net if we use response.write to return messageID is ok?

in step 3 : we have to send request with smpp username&password or only messageID is enough ? and we have to return nowsms ID or messageID to nowsms server?

thanks
Yaser Yavari
New member
Username: Afeyavari

Post Number: 2
Registered: 10-2012
Posted on Tuesday, October 23, 2012 - 10:00 am:   

anyone can help me?
sam
Frequent Contributor
Username: Samdsouza

Post Number: 96
Registered: 08-2006
Posted on Tuesday, October 23, 2012 - 11:25 am:   

check the following details

http://support.nowsms.com/discus/messages/1/15186.html

http://support.nowsms.com/discus/messages/1/24921.html

http://support.nowsms.com/discus/messages/1/69962.html
Yaser Yavari
New member
Username: Afeyavari

Post Number: 3
Registered: 10-2012
Posted on Tuesday, October 23, 2012 - 01:00 pm:   

thanks sam , but can you give answer for my 4 question?

thanks a lot
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 4168
Registered: 08-2008
Posted on Tuesday, October 23, 2012 - 11:41 pm:   

Hi Yaser,

The links that Sam gave you are pretty good ... the first one in particular is a history of when we first added support for delivery reports with an HTTP service.

I'll summarise how it works after answering your questions.

To answer your questions...

1. There are two options for how this works (pick one):

a.) NowSMS passes its messageID to the HTTP service and the service uses that messageID when returning the delivery receipt.

b.) The HTTP service generates its own messageID and passes it back to NowSMS in the HTTP response. The service uses its own messageID when returning the delivery receipt.

2. Yes, that is fine. You just want to make it easy for NowSMS to parse this ID from your service's response. Something like MessageID=xxxx followed by a line break is a good idea. (More clarification below in my explanation.)

3. Only the messageID is required. This messageID will either be the one assigned by NowSMS or your messageID depending on whether you chose a or b above.

The following explanation should add further clarity:

The most difficult part of supporting delivery reports when interfacing with an HTTP based service is message ID tracking, which must be tracked to allow the receipt to be automatically delivered back to the correct user.

There are two ways to support the required message ID tracking. Choose one of the following:

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

2.) NowSMS parses the upstream Message ID from the HTTP response it receives back from the HTTP service when submitting the message. The delivery receipt contains a matching service generated Message ID and NowSMS converts it back to the NowSMS assigned message ID to deliver the receipt to the correct 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 so that the NowSMS assigned message ID will be forwarded to the HTTP service.

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 ";".

For example, to parse the following response:

MessageID=xxxxxxxxx

Use:

MessageIDResponsePrefix=MessageID=

Or, to parse the following response:

<MessageID>xxxxxxxxx</MessageID>

Use:

MessageIDResponsePrefix=<MessageID>


Next ... to generate a delivery report from the HTTP service back via HTTP:

Define an SMS User account to be used for the submitting entity. (This user account can have a quota enabled with a quota limit of 0, which allows it only to deliver messages to local user accounts.)

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. (Although in a recent update, we did allow the service to supply the timestamp if desired. See http://support.nowsms.com/discus/messages/1/71232.html)

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

--
Des
NowSMS Support
Yaser Yavari
New member
Username: Afeyavari

Post Number: 4
Registered: 10-2012
Posted on Wednesday, October 24, 2012 - 09:41 am:   

Thanks for your great help
sam
Frequent Contributor
Username: Samdsouza

Post Number: 98
Registered: 08-2006
Posted on Sunday, October 28, 2012 - 08:49 am:   

This should be added to Tech Support Bulletins in my opinion.

Regards
Sam
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 4178
Registered: 08-2008
Posted on Monday, October 29, 2012 - 04:04 pm:   

Thanks for the input Sam. I'll see if we can get the text cleaned up a little better and do that.