Delivery Receipt callback changed?

Delivery Receipt callback changed? SearchSearch
Author Message
Alex Kaiser
New member
Username: Alex_k

Post Number: 11
Registered: 07-2006
Posted on Wednesday, March 11, 2009 - 07:07 pm:   

Hello!

I've tested your latest RC patch 2009.01.12 and relalized that NowSMS submits "SMSCReceiptMsgId" parameter local message id instead of smsc message id like it was before. Is that normal way of things or just a bug?

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

Post Number: 574
Registered: 08-2008
Posted on Thursday, March 12, 2009 - 12:47 pm:   

Hi Alex,

I don't think this has changed. If it has, then perhaps there were some problems before.

The SMSCMsgId= parameter when a message is sent out would contain the message id assigned by the upstream provider.

However, the SMSCReceiptMsgId= parameter should specify the locally assigned message id, after conversion.

Over the past year, we went through several different logic changes in how delivery receipt message ids were resolved. At one point, we were receiving the delivery receipts in, and then queueing them for message id resolution. Maybe there was a bug in some versions that was issuing the callback for these messages when they were originally queued, before id conversion.

The performance of delivery receipt resolving has now been improved to the point that this separate queue is no longer necessary. (The queue is still used in some very limited situations, but the callback still appears to be fine, with the local message id.)

I'd have to investigate further ... but if it was different before, then that would have been a bug.

--
Des
NowSMS Support
Alex Kaiser
New member
Username: Alex_k

Post Number: 12
Registered: 07-2006
Posted on Thursday, March 12, 2009 - 03:58 pm:   

Hello Des!

We have compared 2 versions 2008.06.03 and 2009.01.12.
2008.06.03 returns message id assigned by SMSC
2009.01.12 returns message id assigned by NowSMS
in DR callback "SMSCReceiptMsgId" parameter.

I think, that message id assigned by SMSC is more logial, inner message id repeat like 4A5A4496.req repeats from time to time and we can't track DR properly.

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

Post Number: 582
Registered: 08-2008
Posted on Thursday, March 12, 2009 - 05:56 pm:   

Hi Alex,

I will need to do further investigation.

Right now, SMPP is the only interface where we log the SMSCMsgId.

So the intent is always to resolve it before we log it or include it in a callback.

I can see that during the period of time when NowSMS was using a separate queue for SMPP message id resolution, the accounting callback had the id from the SMSC.

I will see if there is a way that we can include both.

Local IDs would take a long time to repeat, unless you are using multiple servers without the MessageIdPrefix setting. Would that setting possibly help?

We will investigate the other approach of including both ids in the received receipt. I just mention the other as an aside.

--
Des
NowSMS Support
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 604
Registered: 08-2008
Posted on Wednesday, March 18, 2009 - 07:00 pm:   

Hi Alex,

We did some more checking on this, and apparently there have been some inconsistencies between the log files and the accounting callbacks.

Updates during 2008 have sometimes returned the receipt message id from the upstream SMSC, and sometimes the local NowSMS message id. In a few cases, the callback reported one, while the log file returned another.

In a few instances, with some messages the callback would return the upstream id, and other times the local id.

Unfortunately, as we optimised the performance for processing the delivery receipts, the callbacks were not updated to reflect the new optimised logic.

The behaviour that you are seeing is what is intended. The SMSCReceiptMsgId parameter is intended to be the local NowSMS message id, so that the callback can be used to directly match up the receipt with the originally submitted message. (To avoid confusion, it should have been labeled as ReceiptMsgId, but was not.)

However, we do agree that there is value in providing both message ids in the callback. Especially as the SMSOUT callback gives you the upstream message id in SMPP environments.

So we're adding an additional parameter to the callback, "SMSCReceiptMsgIdOrig", which will contain the receipt message id from the upstream SMSC.

For the moment, this update is included only in a test release at http://www.nowsms.com/download/nowsms20090317.zip.

--
Des
NowSMS Support