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
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev