diff options
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index ad52a1da3..3efc7c5a1 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -10128,9 +10128,12 @@ static void sip_poke_all_peers(void) /*--- sip_send_all_registers: Send all known registrations */ static void sip_send_all_registers(void) { + int ms = (rand() >> 12) & 0x1fff; ASTOBJ_CONTAINER_TRAVERSE(®l, 1, do { ASTOBJ_WRLOCK(iterator); - __sip_do_register(iterator); + if (iterator->expire > -1) + ast_sched_del(sched, iterator->expire); + iterator->expire = ast_sched_add(sched, ms, sip_reregister, iterator); ASTOBJ_UNLOCK(iterator); } while (0) ); |