[asterisk-dev] PJSIP module reload
Steve Murphy
murf at parsetree.com
Thu Jun 1 07:37:46 CDT 2017
Hello--
I'm looking at another upgrade done to chan_sip, and how we might do the
same for pjsip.
Namely, an upgrade was performed on chan_sip, to skip the "poking" of all
the phones when a reload of chan_sip was done via the CLI. The reason for
this: the GUI we have would trigger reloads whenever the configuration was
changed. Since we are multi-tenanted, this could potentially mean several
reloads per second at times. Since chan_sip scheduled these OPTIONS
packets, it could results in several thousands being scheduled many times,
resulting in a temporarily overloaded channel driver.
I see similar code in chan_pjsip... (in the module load function):
/* since endpoints are loaded before the channel driver their device
states get set to 'invalid', so they need to be updated */
if ((endpoints = ast_sip_get_endpoints())) {
ao2_callback(endpoints, OBJ_NODATA, update_devstate, NULL);
ao2_ref(endpoints, -1);
}
Wrapping this in an "if" would be trivial, but what are the conditions?
"pjsip reload" as a CLI command is aliased in
configs/samples/cli_aliases.conf via:
pjsip reload=module reload res_pjsip.so res_pjsip_authenticator_digest.so
res_pjsip_endpoint_identifier_ip.so res_pjsip_mwi.so res_pjsip_notify.so
res_pjsip_outbound_publish.so res_pjsip_publish_asterisk.so
res_pjsip_outbound_registration.so
The chan_sip conditional we used was based on the difference between
being called by the CLI, or via a module load. There is no such difference
as far as I can tell in the chan_pjsip world. Is there any way to get
equivalent results in the pjsip world? And, really, do I need to worry
about the same "piling on" happening in the pjsip environment?
murf
--
Steve Murphy
✉ murf at parsetree dot com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20170601/87b2ec48/attachment.html>
More information about the asterisk-dev
mailing list