diff --git a/pjsip/src/pjsip-simple/evsub.c b/pjsip/src/pjsip-simple/evsub.c index c393470c8..aa2498c4d 100644 --- a/pjsip/src/pjsip-simple/evsub.c +++ b/pjsip/src/pjsip-simple/evsub.c @@ -32,6 +32,7 @@ #include #include #include +#include #include @@ -1749,6 +1750,10 @@ static void on_tsx_state_uac( pjsip_evsub *sub, pjsip_transaction *tsx, unsigned timeout = (sub->expires->ivalue > TIME_UAC_REFRESH) ? sub->expires->ivalue - TIME_UAC_REFRESH : sub->expires->ivalue; + /* Reduce timeout by about 1 - 10 secs (randomized) */ + if (timeout > 10) + timeout += -10 + (pj_rand() % 10); + PJ_LOG(5,(sub->obj_name, "Will refresh in %d seconds", timeout)); set_timer(sub, TIMER_TYPE_UAC_REFRESH, timeout);