SMSCSendLimit does not appear to be working correctly

SMSCSendLimit does not appear to be working correctly SearchSearch
Author Message
Sean Swift
New member
Username: Sswift

Post Number: 3
Registered: 10-2008
Posted on Monday, November 10, 2008 - 04:33 pm:   

Hello!

I have configured one of my SMSC connections with the config parameter:
SMSCSendLimit=8/1

I have restarted the software. However, in doing packet captures, I still see submits occurring more frequently than 1 every .125 seconds.

Does this option evenly distribute the messages across the interval, or does it simply process serially until it's over the threshold?

Example 1:
With 8/1 setting, submits are sent every .125 seconds, assuming there are sufficient messages to send.

Example 2:
With the 8/1 setting, 8 submits are sent as quickly as they come in (say 8 submits only take .25 seconds), then there is a pause of .75 seconds until the next submission period.

Thanks,
Sean Swift
sean.swift@zoombak.com
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 224
Registered: 08-2008
Posted on Monday, November 10, 2008 - 06:31 pm:   

Hi Sean,

I'm not sure that I follow you with the examples.

Example 1 is the way that it works. They are evenly distributed.

I'm not aware of any bugs or quirks with this setting, or version specific issues (this setting has existed for quite some time).

I can only guess that something isn't quite right with the way that the setting is configured.

Make sure it is under the correct [SMPP - server:port] header for the SMSC to which you are trying to apply the setting. And make sure that the particular [SMPP - server:port] header isn't repeated more than once in the SMSGW.INI file, as that could cause confusion.

If you're still not getting anywhere, and want me to take a look at your SMSGW.INI file, e-mail it to nowsms@nowsms.com with "Attention: Des" in the subject line.

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

Post Number: 228
Registered: 08-2008
Posted on Tuesday, November 11, 2008 - 04:08 pm:   

Follow-up.

I took a look at Sean's logs and a capture trace of traffic between NowSMS and the SMSC.

While I might have missed something, there didn't appear to be any instances where NowSMS was submitting SMS messages to that particular SMSC more frequently than every 125ms (.125 seconds), which would be the rate for 8 messages per second.

However, the SMS provider was still returning throttling errors indicating that NowSMS was submitting messages too quickly ... even though the provider was claiming to allow submission rates of 8 messages per second.

So Sean needs to go back to his provider for further clarification.

My guess is that the provider's timing is simply not very precise.

While you always want to try to get the maximum allowed throughput ... in this case it might be prudent to try slowing it down just a little bit in order to avoid throttling errors.

Here's some more advice offered in reply to his e-mail with the log files:

Instead of SMSCSendLimit=8/1 ... you might want to try 7/1 ... or 15/2. I'd try 7/1 first ... then if throttling errors go away, try 15/2.

The speed limit fraction is used to build a millisecond delay period between message submissions. As examples: 8/1 means 1/8 second = 125ms ... 7/1 means 1/7 second = 142ms .. 15/2 means 2/15 second = 133ms. The rounding is perfect for 8/1 ... and you should never see more than 8 messages submitted in 1 second. The rounding is not as perfect for the other examples. If for some reason you actually wanted to specify a ms delay, you could specify it as 1000/130 ... 1000 messages every 130 seconds would equate to a minimum delay between messages of 130ms.

Also, something that I didn't mention in my e-mail reply, but that just crossed my mind ...

In a situation like this, you also want to explicitly configure the throttle delay period in NowSMS. If NowSMS receives a throttle error in response to an SMPP message submission, the default behaviour is to wait 5 seconds before attempting another submission. In a case like this, you do not want to do this! To change this behaviour, edit SMSGW.INI and under the [SMSGW] header, set SMPPThrottleErrorDelay=##, where ## is the number of seconds. You can set it to 0 for no delay.

For more background information, see http://blog.nowsms.com/2008/06/smsc-speed-limits.html.

--
Des
NowSMS Support