From: sungtae kim Date: Tue, 31 Aug 2021 07:50:58 +0000 (+0900) Subject: resource_channels.c: Fix wrong external media parameter parse X-Git-Tag: 16.21.0-rc1~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9b8a3a8c810dc4879b8e06bdde0e5bd969a9b92;p=thirdparty%2Fasterisk.git resource_channels.c: Fix wrong external media parameter parse Fixed ARI external media handler to accept body parameters. ASTERISK-29622 Change-Id: I49509c48a6cbc0fb4165bfa4f834b5e8b9ace20d --- diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c index 8b7cf96d0e..4854dca59e 100644 --- a/res/ari/resource_channels.c +++ b/res/ari/resource_channels.c @@ -2134,6 +2134,18 @@ void ast_ari_channels_external_media(struct ast_variable *headers, ast_assert(response != NULL); + /* Parse any query parameters out of the body parameter */ + if (args->variables) { + struct ast_json *json_variables; + + ast_ari_channels_external_media_parse_body(args->variables, args); + json_variables = ast_json_object_get(args->variables, "variables"); + if (json_variables + && json_to_ast_variables(response, json_variables, &variables)) { + return; + } + } + if (ast_strlen_zero(args->app)) { ast_ari_response_error(response, 400, "Bad Request", "app cannot be empty"); return; @@ -2168,17 +2180,6 @@ void ast_ari_channels_external_media(struct ast_variable *headers, args->direction = "both"; } - if (args->variables) { - struct ast_json *json_variables; - - ast_ari_channels_external_media_parse_body(args->variables, args); - json_variables = ast_json_object_get(args->variables, "variables"); - if (json_variables - && json_to_ast_variables(response, json_variables, &variables)) { - return; - } - } - if (strcasecmp(args->encapsulation, "rtp") == 0 && strcasecmp(args->transport, "udp") == 0) { external_media_rtp_udp(args, variables, response); } else {