* nua/outbound.c: calculate the keepalive timer interval with regard to the maximum defer interval
The point is not to miss the keepalive deadlines.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11861
d0543943-73ff-0310-b7d9-
9358b9ac24b2
-Wed Feb 11 11:19:42 CST 2009
+Wed Feb 11 11:20:46 CST 2009
su_timer_destroy(ob->ob_keepalive.timer), ob->ob_keepalive.timer = NULL;
if (interval) {
+ su_duration_t max_defer;
+
+ max_defer = su_root_get_max_defer(ob->ob_root);
+ if ((su_duration_t)interval >= max_defer) {
+ interval -= max_defer - 100;
+ }
+
ob->ob_keepalive.timer =
su_timer_create(su_root_task(ob->ob_root), interval);
+
su_timer_deferrable(ob->ob_keepalive.timer, 1);
}