mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
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
This commit is contained in:
@@ -4577,6 +4577,7 @@ static int unload_pjsip(void *data)
|
||||
ast_sip_destroy_system();
|
||||
ast_sip_destroy_global_headers();
|
||||
internal_sip_unregister_service(&supplement_module);
|
||||
ast_sip_destroy_transport_events();
|
||||
}
|
||||
|
||||
if (monitor_thread) {
|
||||
@@ -4655,7 +4656,6 @@ static int load_pjsip(void)
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
|
||||
error:
|
||||
unload_pjsip(NULL);
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
}
|
||||
|
||||
@@ -4721,6 +4721,11 @@ static int load_module(void)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (ast_sip_initialize_transport_events()) {
|
||||
ast_log(LOG_ERROR, "Failed to initialize SIP transport monitor. Aborting load\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
ast_sip_initialize_dns();
|
||||
|
||||
ast_sip_initialize_global_headers();
|
||||
|
Reference in New Issue
Block a user