Yes, there is a time out. As I explained in the posts above: if a previous call is successfully received, the next call will be in 15 minutes; if a previous call is NOT successfully received within 30 seconds the next call will immediately issued. So as you can see, normally it should be every 15 minutes; but if it continues to fail it will be repeatedly called every 30 seconds.
I just thought about one possibility: because the server response may have been slow, and your additional network modules (which scan the incoming packets) can slow down it further, so if the overhead added up together exceeds 30 seconds every time, it will result in a call being issued every 30 seconds. I think this is the most feasible cause. For the server response part, we are already preparing to migrate the script to Amazon servers to reduce the load on our own server; also, I will modify the firmware to reduce the call frequency so that it won’t exceed the call limit even in the worst case.