On Fri, December 15, 2006 19:31, Juha Heinanen said: > in case registrar module tcp_persistent_flag is set, openser keeps tcp > connection open to the registered UA for the duration of the > registration by setting lifetime of tcp connection to suitable value. > does this mean that the such connection remains idle and that no tcp > keepalive probes are send to the the registered phone? > > if there are no keepalives isn't there possibility that nat binding from > tcp UA will expire and requests to the UA will fail?
this will happen if there is no keep-alive. > looking at tcp(7) man page, there are tcp socket related variables such > as: > > tcp_keepalive_intvl (integer; default: 75) > The number of seconds between TCP keep-alive probes. > > tcp_keepalive_probes (integer; default: 9) > The maximum number of TCP keep-alive probes to send before > giv- > ing up and killing the connection if no response is > obtained > from the other end. > > tcp_keepalive_time (integer; default: 7200) > The number of seconds a connection needs to be idle before > TCP > begins sending out keep-alive probes. Keep-alives are only > sent > when the SO_KEEPALIVE socket option is enabled. The > default > value is 7200 seconds (2 hours). An idle connection is > termi- > nated after approximately an additional 11 minutes (9 > probes an > interval of 75 seconds apart) when keep-alive is enabled. I think there was a discussion on sip-implementors discussing this topic and the conclusion was, that this is different an every OS and often not configurable (or least only per system, not per application/connection). Thus it is to unreliable. > i didn't find openser tcp source code using them, however. is there > some other strategy in place for keeping nat bindings open to tcp UAs? If the client sends keep-alive (like eyebeam) there wont be a problem. IMO a client should do this. Of course there should be also an option at the server. One workaround would be to set expire to small values forcing keep-alive with REGISTER. I wonder if the keep-alive from nathelper module can be used to send keep alive (CRLF or OPTIONS). I have not tested it yet - maybe it already works. IMO there is no reason why the UDP mechanisms should not work with TCP/TLS too. regards klaus _______________________________________________ Devel mailing list [email protected] http://openser.org/cgi-bin/mailman/listinfo/devel
