From 0de033c9c6ebd42ef82adf036721d138cd7294f0 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Fri, 28 Jul 2017 18:26:17 -0500 Subject: res_pjsip: PJSIP Transport state monitor refactor. The fix for the issue is broken up into three parts. This is part one which refactors the transport state monitor code to allow more modules to be able to monitor transports. * Pull the management of PJPROJECT's transport state callback code from res_pjsip_transport_management.c into res_pjsip. Now other modules can dynamically add and remove themselves from transport monitoring without worrying about breaking PJPROJECT's callback chain. * Add the ability for other modules to get a callback whenever a specific transport is shutdown. ASTERISK-27147 Change-Id: I7d9a31371eb1487c9b7050cf82a9af5180a57912 --- res/res_pjsip/include/res_pjsip_private.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'res/res_pjsip/include') diff --git a/res/res_pjsip/include/res_pjsip_private.h b/res/res_pjsip/include/res_pjsip_private.h index 0bdb63325..2969f0e40 100644 --- a/res/res_pjsip/include/res_pjsip_private.h +++ b/res/res_pjsip/include/res_pjsip_private.h @@ -133,6 +133,29 @@ int ast_sip_initialize_distributor(void); */ void ast_sip_destroy_distributor(void); +/*! + * \internal + * \brief Initialize the transport events notify module + * \since 13.18.0 + * + * The transport events notify module is responsible for monitoring + * when transports die and calling any registered callbacks when that + * happens. It also manages any PJPROJECT transport state callbacks + * registered to it so the callbacks be more dynamic allowing module + * loading/unloading. + * + * \retval -1 Failure + * \retval 0 Success + */ +int ast_sip_initialize_transport_events(void); + +/*! + * \internal + * \brief Destruct the transport events notify module. + * \since 13.18.0 + */ +void ast_sip_destroy_transport_events(void); + /*! * \internal * \brief Initialize global type on a sorcery instance -- cgit v1.2.3