I am using the latest version of Version 1 of Frontlinesms forwarding messages to my website and then my website sends messages back to users with the HttpTrigger module. This is on a computer running Linux. It works great, except there is a consistent delay.
If I am in the same room as my colleagues, using our personal phones we can send each other SMS messages and the delay is just a couple of seconds.
If I send an SMS to a modem being used by FrontlineSMS in the same room, it takes at least 30 seconds for the message to be received by my website. The connection between the computer running FrontlineSMS and my website has a very low latency and has never gone down.
If I send an SMS from the website using the HttpTrigger module it takes at least 30 seconds for the message to be received on a cell phone. If I use wget or curl from the command line to send a message via the HttpTrigger module instead of my website, I get the same problem.
The delays in both directions are sometimes _very_ consistent. I have had trouble narrowing down what the cause is. I have tried multiple modems, multiple providers, and multiple people/handsets on the 'user' end. They all behave the same. So maybe there is some delay in FrontlineSMS?
Any thoughts on what the source of the delay is?
- The modems? (Tested with: Huawei K3520, Huawei E173, Wavecom) Is there some setting which causes the modem to hold on to the message for a bit?
- The providers? (This is in Indonesia and we tested with: Telkomsel, XL, Indosat, Axis) Can the carriers determine that this is a modem and be introducing a delay to prevent spam?
- FrontlineSMS? Could FrontlineSMS have a delay for some reason builtin?
The next thing I will try is to get an actual phone connected to FLSMS instead of a modem to see if that narrows it down any more.
I use a phone and there is also this 30 second delay, sometimes even longer. I don't know what could be the reason because I know it's possible to make it real time. I was using MyPhoneExplorer for Sony Ericsson phone before and the messages appear there the moment I receive it in my phone. The messages are sent out as well the moment I click send.
I'm just saying this to save you the trouble of trying an actual phone for FrontlineSMS. I do hope that we can change this delay in one of the configuration files or that future versions will have an almost real-time sending/receiving messages. That would be great!
Thanks for the information! We did try a phone and the delay decreased, but not by much. It was down to about 20 seconds.
Can you describe the reason for the delay? What do you mean by standard? The communication between the HTTP Trigger module and my website is very fast. Does FLSMS hold on the message for some reason?
When my website (or when I initiate an HTTP GET from the command line) sends a message to the HTTP Trigger module, it module shows the message right away and it looks like it sends it.
Thanks for your response!
I figured out what the problem was... or at least I figured out a solution.
The problem started getting worse. Sometimes there were delays of 15-20 mintues and many many messages just seemed to get lost.
After a few hours of playing around with pygsm to see the raw serial communication and also setup kannel. With both of these, the delays were completely gone, but after a while only sending messages worked and neither could receive messages.
I remembered that when inserting the modem it created more than one serial device. The Huawei E173 creates three serial ports: /dev/ttyUSB0, /dev/ttyUSB1, /devttyUSB2 ... this is on ubuntu/natty ... FrontlineSMS detects all three, connects to USB0, does not know what to do with USB1, and declared USB2 as a duplicate.
Disabling USB0 through frontline made it select USB2... and everything started working. Kannel and pygsm also worked flawlessly when pointed at USB2.