aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_sip.c')
-rwxr-xr-xchannels/chan_sip.c5
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(&regl, 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)
);