[asterisk-dev] Possible chan_sip problem with new scheduler
Steve Davies
davies147 at gmail.com
Tue Nov 10 12:42:27 CST 2015
Hi,
I have a randomly occurring de-registration of SIP devices since 11.20.0,
and I believe that the new scheduler is indirectly the cause. The following
assumes that the new scheduler can (and will reasonably regularly) re-use
the sched-id of 0, which never used to be possible.
Scenario:
- chan_sip is up and running, and several registrations are current.
- one of these registrations has a peer->expire sched_id value of 0
- SIP RELOAD is called, resulting in a call to set_peer_defaults(peer)
set_peer_defaults(peer) contains the following code:
if (peer->expire == 0) {
/* Don't reset expire or port time during reload
if we have an active registration
*/
peer->expire = -1;
peer->pokeexpire = -1;
peer->keepalivesend = -1;
set_socket_transport(&peer->socket, SIP_TRANSPORT_UDP);
}
At which point we leak a scheduled expire_register call. The knock on
effect of this is an hourly line de-registration that is only resolved by
stopping the phone for an hour to let the leaked event trickle out.
Help? Should we:
1) Change the above test to 'peer->expire < 0'
2) always initialise sched_id values to -1 as soon as the peer is created.
Thanks,
Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20151110/8b58f45b/attachment.html>
More information about the asterisk-dev
mailing list