Menu

#398 Keep-Alive option not taken in to account

WontFix
nobody
None
Medium
Defect
2010-12-20
2010-11-19
Anonymous
No

Originally created by: Bessa1...@gmail.com

What steps will reproduce the problem?
1.Configure keep-alive to 15 sec
2.Register to sip proxy
3.wait more 20sec and try to call device

What is the expected output? What do you see instead?
The incoming call should succeed
The call is automatically redirected to voicemail

What version of the product are you using? On what operating system?
0.00-15-13 with TLS to HTC DESIRE HD (ACE _android 2.2)

Please provide any additional information below.
Keyyo VOIP

Related

Tickets: #522

Discussion

  • Anonymous

    Anonymous - 2010-11-19

    Originally posted by: r3gis...@gmail.com

    Are you in mode available for incoming call for the current connection?

    Anyway, keep alive is a different settings from re-registration :
    Keep alive is a parameter that is used to send a couple of data to the server each x seconds in order to ensure the udp or tcp link is not break by routeur behind you and the server.
    It's slightly different from the re-registration time param : this one is used to announce send a new registration after its expiration (and announce expiration time), but can be overridden by the server if it doesn't support the proposed time.

    So to ensure you keep your connection :
    * You have to be sure you properly configured the application to receive call over 3G and/or wifi (in easy settings -> always available).
    * If your network has equipments that stop connections, you should increase keep alive time out and maybe also re-registration time. (You could also try TCP it's less killed by routers).
    Adjusting ka & re-registration can solve network issues but will also have an impact on your battery consumption.

    What sounds really strange in your issue is that 20 seconds is really really really short. Are you sure you even receive when try to call directly after registration?

     
  • Anonymous

    Anonymous - 2010-11-25

    Originally posted by: tobias.p...@gmail.com

    I just tested this yesterday on a Froyd 1.6.0 with CSIP 0.00-15.14 and I got the same result. CSIP registers for the first time but doesn't send the keep alive packages over TCP.
    UDP works perfectly fine even with ka intervals of 240s.

     
  • Anonymous

    Anonymous - 2010-12-19

    Originally posted by: r3gis...@gmail.com

    Ok after a closer look, absolutely normal that no keep alive is sent over TCP : pjsip disable that : there is a comment in the code saying that on TCP keep alive is useless.

    My observations confirm that. If really needed I can try to tweak the pjsip code (which I usually resent to do cause it's more difficult to maintain things then ;) ).

    Status: WontFix

     
  • Anonymous

    Anonymous - 2010-12-19

    Originally posted by: tobias.p...@gmail.com

    Well, the TCP keep alive, as far as I understand has a lower power consumption then the UDP keep alive. I don't know why they are saying this is useless, but when I was using Sipdroid, it made a hell of a difference, but then again in Sipdroid one wasn't able to control the keep alive timings. Furthermore I think TCP doesn't have to use HSDP to transmit the keep alive packages whether UDP will always activate it.
    It is also true that most of the Sip Providers only offer UDP connections, but PBeX or Sipsorcery do allow TCP.
    If you are interested I could try it out in a test version.

     
  • Anonymous

    Anonymous - 2010-12-20

    Originally posted by: r3gis...@gmail.com

    The comment say that on TCP *keep alive* is useless (and not on UDP).
    I don't say that TCP is useless. It's all the contrary if on TCP keep alive is useless, you have not to wake up your cpu to send packets and you'll save a lot of battery !

    I think that the TCP protocol layer already ensure the aliveness of the socket (there is ACKs to packets and it's more robust than UDP).
    So the comment of pjsip guys make sense regarding my old network courses. I think that the fact that the connection is kept alive is already ensure by the fact it is TCP. So useless to send keep alive.
    The only doubt I have is the fact that some carrier could cut TCP connections by a bad way (without informing that at TCP layer) but recent equipment should not.

    So the fact to not send keep alive packets over TCP is probably a good thing since it will save even more battery.

    For info the fact that in SipDroid using tcp reduce the battery consumption is due to the fact in TCP mode keep alive packets are sent much less frequently than on UDP. And what seems to be possible with pjsip (which has a better hand on low level network protocol layer) is that TCP is handled a better way so that it's useless to send keep alive packets at all.

     
  • Anonymous

    Anonymous - 2010-12-20

    Originally posted by: tobias.p...@gmail.com

    I think we are talking about 2 different issues here, or maybe I simply have not enough knoledge about it.
    I thought in order to be able to receive calls the sip client must verify the connection to the sipprovider every now and then with packages beeing sent. In case it fails to do so, the sipclient simply won't be able to receive the calls. Which means even if the socket is alive, the sipprovider won't realize it.
    Which is in my opinion the problem everyone is experiencing right now.

     

Log in to post a comment.