diff options
Diffstat (limited to 'res/ari')
-rw-r--r-- | res/ari/ari_model_validators.c | 16 | ||||
-rw-r--r-- | res/ari/ari_model_validators.h | 1 | ||||
-rw-r--r-- | res/ari/resource_bridges.c | 1 | ||||
-rw-r--r-- | res/ari/resource_channels.c | 1 |
4 files changed, 19 insertions, 0 deletions
diff --git a/res/ari/ari_model_validators.c b/res/ari/ari_model_validators.c index 88cfc2697..5c24b9c41 100644 --- a/res/ari/ari_model_validators.c +++ b/res/ari/ari_model_validators.c @@ -1026,6 +1026,7 @@ int ast_ari_validate_live_recording(struct ast_json *json) int has_format = 0; int has_name = 0; int has_state = 0; + int has_target_uri = 0; for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) { if (strcmp("cause", ast_json_object_iter_key(iter)) == 0) { @@ -1067,6 +1068,16 @@ int ast_ari_validate_live_recording(struct ast_json *json) res = 0; } } else + if (strcmp("target_uri", ast_json_object_iter_key(iter)) == 0) { + int prop_is_valid; + has_target_uri = 1; + prop_is_valid = ast_ari_validate_string( + ast_json_object_iter_value(iter)); + if (!prop_is_valid) { + ast_log(LOG_ERROR, "ARI LiveRecording field target_uri failed validation\n"); + res = 0; + } + } else { ast_log(LOG_ERROR, "ARI LiveRecording has undocumented field %s\n", @@ -1090,6 +1101,11 @@ int ast_ari_validate_live_recording(struct ast_json *json) res = 0; } + if (!has_target_uri) { + ast_log(LOG_ERROR, "ARI LiveRecording missing required field target_uri\n"); + res = 0; + } + return res; } diff --git a/res/ari/ari_model_validators.h b/res/ari/ari_model_validators.h index c299724eb..7214a5875 100644 --- a/res/ari/ari_model_validators.h +++ b/res/ari/ari_model_validators.h @@ -1146,6 +1146,7 @@ ari_validator ast_ari_validate_application_fn(void); * - format: string (required) * - name: string (required) * - state: string (required) + * - target_uri: string (required) * StoredRecording * - format: string (required) * - name: string (required) diff --git a/res/ari/resource_bridges.c b/res/ari/resource_bridges.c index 9f6562b50..a8f2c3c04 100644 --- a/res/ari/resource_bridges.c +++ b/res/ari/resource_bridges.c @@ -462,6 +462,7 @@ void ast_ari_bridges_record(struct ast_variable *headers, return; } + ast_string_field_build(options, target, "bridge:%s", args->bridge_id); options->max_silence_seconds = args->max_silence_seconds; options->max_duration_seconds = args->max_duration_seconds; options->terminate_on = diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c index 97d9bb3cf..35520702a 100644 --- a/res/ari/resource_channels.c +++ b/res/ari/resource_channels.c @@ -468,6 +468,7 @@ void ast_ari_channels_record(struct ast_variable *headers, response, 500, "Internal Server Error", "Out of memory"); } + ast_string_field_build(options, target, "channel:%s", args->channel_id); options->max_silence_seconds = args->max_silence_seconds; options->max_duration_seconds = args->max_duration_seconds; options->terminate_on = |