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: 19.0.0-rc1~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c31b6aaa28fa869f5728f847419a835c586a762;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 a3d0f31eb9..e792a2a8d1 100644 --- a/res/ari/resource_channels.c +++ b/res/ari/resource_channels.c @@ -2188,6 +2188,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; @@ -2222,17 +2234,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 if (strcasecmp(args->encapsulation, "audiosocket") == 0 && strcasecmp(args->transport, "tcp") == 0) {