diff --git a/include/asterisk/res_pjsip_session.h b/include/asterisk/res_pjsip_session.h index 0c2b1e326e6932f01ffd716151583e986d0f2143..e2d4fcd27f6ca73a9e420646cb05107e3c940ed5 100644 --- a/include/asterisk/res_pjsip_session.h +++ b/include/asterisk/res_pjsip_session.h @@ -533,10 +533,14 @@ void ast_sip_session_unregister_sdp_handler(struct ast_sip_session_sdp_handler * * a module could reject an incoming request if desired. * * \param supplement The supplement to register + * \param module Referenced module(NULL safe) * \retval 0 Success * \retval -1 Failure */ -int ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement); +int ast_sip_session_register_supplement_with_module(struct ast_module *module, struct ast_sip_session_supplement *supplement); + +#define ast_sip_session_register_supplement(supplement) \ + ast_sip_session_register_supplement_with_module(ast_module_info->self, supplement) /*! * \brief Unregister a an supplement to SIP session processing diff --git a/res/res_pjsip/pjsip_session.c b/res/res_pjsip/pjsip_session.c index 074ec4e0bc797601b102a3e1469f5e46a4e2266c..2002bbd4e5b6bdf8db238ed47a790c3dc7bbf6ed 100644 --- a/res/res_pjsip/pjsip_session.c +++ b/res/res_pjsip/pjsip_session.c @@ -56,10 +56,11 @@ void internal_sip_session_register_supplement(struct ast_sip_session_supplement } } -int ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement) +int ast_sip_session_register_supplement_with_module(struct ast_module *module, struct ast_sip_session_supplement *supplement) { internal_sip_session_register_supplement(supplement); internal_res_pjsip_ref(); + ast_module_shutdown_ref(module); return 0; } @@ -118,3 +119,11 @@ int ast_sip_session_add_supplements(struct ast_sip_session *session) return 0; } + +/* This stub is for ABI compatibility. */ +#undef ast_sip_session_register_supplement +int ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement); +int ast_sip_session_register_supplement(struct ast_sip_session_supplement *supplement) +{ + return ast_sip_session_register_supplement_with_module(NULL, supplement); +}