static int unload_module(void) { ao2_callback(unsolicited_mwi, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, unsubscribe, NULL); ao2_ref(unsolicited_mwi, -1); ast_sorcery_observer_remove(ast_sip_get_sorcery(), "contact", &mwi_contact_observer); ast_sip_unregister_subscription_handler(&mwi_handler); return 0; }
static int unload_module(void) { ast_cli_unregister_multiple(cli_pjsip, ARRAY_LEN(cli_pjsip)); ast_sip_unregister_service(&logging_module); ast_sorcery_observer_remove( ast_sip_get_sorcery(), "global", &global_observer); return 0; }
int ast_sip_destroy_sorcery_location(void) { ast_sorcery_observer_remove(ast_sip_get_sorcery(), "aor", &aor_observer); ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands)); ast_sip_unregister_cli_formatter(contact_formatter); ast_sip_unregister_cli_formatter(aor_formatter); internal_sip_unregister_endpoint_formatter(&endpoint_aor_formatter); return 0; }
void ast_res_pjsip_cleanup_options_handling(void) { ast_cli_unregister_multiple(cli_options, ARRAY_LEN(cli_options)); ast_manager_unregister("PJSIPQualify"); internal_sip_unregister_endpoint_formatter(&contact_status_formatter); ast_sorcery_observer_remove(ast_sip_get_sorcery(), "aor", &observer_callbacks_options); pjsip_endpt_unregister_module(ast_sip_get_pjsip_endpoint(), &options_module); ao2_cleanup(sched_qualifies); sched_qualifies = NULL; }
static int unload_module(void) { RAII_VAR(struct ao2_container *, mwi_subscriptions, ao2_global_obj_ref(unsolicited_mwi), ao2_cleanup); if (mwi_subscriptions) { ao2_callback(mwi_subscriptions, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, unsubscribe, NULL); ao2_global_obj_release(unsolicited_mwi); ast_sorcery_observer_remove(ast_sip_get_sorcery(), "contact", &mwi_contact_observer); } ast_sip_unregister_subscription_handler(&mwi_handler); return 0; }
static int unload_module(void) { ast_vm_unregister(vm_table.module_name); #if defined(MWI_DEBUG_CLI) ast_cli_unregister_multiple(mwi_cli, ARRAY_LEN(mwi_cli)); #endif /* defined(MWI_DEBUG_CLI) */ ast_sorcery_observer_remove(mwi_sorcery, MWI_MAILBOX_TYPE, &mwi_observers); ast_sorcery_unref(mwi_sorcery); mwi_sorcery = NULL; return 0; }
static int unload_module(void) { ast_sorcery_observer_remove(ast_sip_get_sorcery(), "contact", &contact_expiration_observer); if (sched) { ao2_callback(contact_autoexpire, OBJ_MULTIPLE | OBJ_NODATA | OBJ_UNLINK, unload_observer_delete, NULL); ast_sched_context_destroy(sched); sched = NULL; } ao2_cleanup(contact_autoexpire); contact_autoexpire = NULL; return 0; }
static pj_bool_t options_stop(void) { ast_sorcery_observer_remove(ast_sip_get_sorcery(), "contact", &contact_observer); if (sched) { ast_sched_context_destroy(sched); sched = NULL; } /* Empty the container of scheduling data refs. */ ao2_callback(sched_qualifies, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, sched_qualifies_empty, NULL); return PJ_SUCCESS; }
void ast_sip_destroy_distributor(void) { ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands)); ast_sip_unregister_cli_formatter(unid_formatter); ast_sip_unregister_service(&auth_mod); ast_sip_unregister_service(&endpoint_mod); ast_sip_unregister_service(&distributor_mod); ao2_global_obj_release(artificial_auth); ao2_cleanup(artificial_endpoint); ast_sorcery_observer_remove(ast_sip_get_sorcery(), "global", &global_observer); if (prune_context) { ast_sched_context_destroy(prune_context); } distributor_pool_shutdown(); ao2_cleanup(dialog_associations); ao2_cleanup(unidentified_requests); }