ARI: Added new functionality to unload a single module.

An http request can be sent to unload an Asterisk module. If the
module can not be unloaded or is already unloaded, an error response
will be returned.

The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
/ari/asterisk/modules/{moduleName}'" (or something similar, depending
on configuration) can be run in the terminal to access this new
functionality.

For more information, see:
https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource

* Added new ARI functionality
* Asterisk modules can be unloaded through http requests

ASTERISK-25173

Change-Id: I535a95f5676deb02651522761ecbdc0b00b5ac57
This commit is contained in:
Benjamin Ford
2015-07-14 08:55:14 -05:00
committed by Benjamin Keith Ford
parent aa5707b889
commit f64f1c2772
5 changed files with 130 additions and 1 deletions

View File

@@ -295,6 +295,34 @@ void ast_ari_asterisk_load_module(struct ast_variable *headers,
ast_ari_response_no_content(response);
}
void ast_ari_asterisk_unload_module(struct ast_variable *headers,
struct ast_ari_asterisk_unload_module_args *args,
struct ast_ari_response *response)
{
int unload_result;
enum ast_module_unload_mode unload_mode = AST_FORCE_FIRM;
ast_assert(response != NULL);
if (!ast_module_check(args->module_name)) {
ast_ari_response_error(
response, 404, "Not Found",
"Module not found in running modules");
return;
}
unload_result = ast_unload_resource(args->module_name, unload_mode);
if (unload_result != 0) {
ast_ari_response_error(
response, 409, "Conflict",
"Module could not be unloaded");
return;
}
ast_ari_response_no_content(response);
}
void ast_ari_asterisk_get_global_var(struct ast_variable *headers,
struct ast_ari_asterisk_get_global_var_args *args,
struct ast_ari_response *response)