summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/manager_channels.c2
-rw-r--r--main/stasis_channels.c5
-rw-r--r--res/ari/ari_model_validators.c16
-rw-r--r--res/ari/ari_model_validators.h1
-rw-r--r--rest-api/api-docs/channels.json5
5 files changed, 27 insertions, 2 deletions
diff --git a/main/manager_channels.c b/main/manager_channels.c
index d431af24c..c12d94ee9 100644
--- a/main/manager_channels.c
+++ b/main/manager_channels.c
@@ -426,6 +426,7 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
"%sCallerIDName: %s\r\n"
"%sConnectedLineNum: %s\r\n"
"%sConnectedLineName: %s\r\n"
+ "%sLanguage: %s\r\n"
"%sAccountCode: %s\r\n"
"%sContext: %s\r\n"
"%sExten: %s\r\n"
@@ -438,6 +439,7 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
prefix, S_OR(snapshot->caller_name, "<unknown>"),
prefix, S_OR(snapshot->connected_number, "<unknown>"),
prefix, S_OR(snapshot->connected_name, "<unknown>"),
+ prefix, snapshot->language,
prefix, snapshot->accountcode,
prefix, snapshot->context,
prefix, snapshot->exten,
diff --git a/main/stasis_channels.c b/main/stasis_channels.c
index 816efdb45..11a2941fa 100644
--- a/main/stasis_channels.c
+++ b/main/stasis_channels.c
@@ -888,7 +888,7 @@ struct ast_json *ast_channel_snapshot_to_json(
/* Broken up into groups of three for readability */
"{ s: s, s: s, s: s,"
" s: o, s: o, s: s,"
- " s: o, s: o }",
+ " s: o, s: o, s: s }",
/* First line */
"id", snapshot->uniqueid,
"name", snapshot->name,
@@ -902,7 +902,8 @@ struct ast_json *ast_channel_snapshot_to_json(
/* Third line */
"dialplan", ast_json_dialplan_cep(
snapshot->context, snapshot->exten, snapshot->priority),
- "creationtime", ast_json_timeval(snapshot->creationtime, NULL));
+ "creationtime", ast_json_timeval(snapshot->creationtime, NULL),
+ "language", snapshot->language);
return ast_json_ref(json_chan);
}
diff --git a/res/ari/ari_model_validators.c b/res/ari/ari_model_validators.c
index 9b5671a76..491a4cca1 100644
--- a/res/ari/ari_model_validators.c
+++ b/res/ari/ari_model_validators.c
@@ -786,6 +786,7 @@ int ast_ari_validate_channel(struct ast_json *json)
int has_creationtime = 0;
int has_dialplan = 0;
int has_id = 0;
+ int has_language = 0;
int has_name = 0;
int has_state = 0;
@@ -850,6 +851,16 @@ int ast_ari_validate_channel(struct ast_json *json)
res = 0;
}
} else
+ if (strcmp("language", ast_json_object_iter_key(iter)) == 0) {
+ int prop_is_valid;
+ has_language = 1;
+ prop_is_valid = ast_ari_validate_string(
+ ast_json_object_iter_value(iter));
+ if (!prop_is_valid) {
+ ast_log(LOG_ERROR, "ARI Channel field language failed validation\n");
+ res = 0;
+ }
+ } else
if (strcmp("name", ast_json_object_iter_key(iter)) == 0) {
int prop_is_valid;
has_name = 1;
@@ -908,6 +919,11 @@ int ast_ari_validate_channel(struct ast_json *json)
res = 0;
}
+ if (!has_language) {
+ ast_log(LOG_ERROR, "ARI Channel missing required field language\n");
+ res = 0;
+ }
+
if (!has_name) {
ast_log(LOG_ERROR, "ARI Channel missing required field name\n");
res = 0;
diff --git a/res/ari/ari_model_validators.h b/res/ari/ari_model_validators.h
index de8547cb1..947e28852 100644
--- a/res/ari/ari_model_validators.h
+++ b/res/ari/ari_model_validators.h
@@ -1242,6 +1242,7 @@ ari_validator ast_ari_validate_application_fn(void);
* - creationtime: Date (required)
* - dialplan: DialplanCEP (required)
* - id: string (required)
+ * - language: string (required)
* - name: string (required)
* - state: string (required)
* Dialed
diff --git a/rest-api/api-docs/channels.json b/rest-api/api-docs/channels.json
index f9c8d8647..cd309db10 100644
--- a/rest-api/api-docs/channels.json
+++ b/rest-api/api-docs/channels.json
@@ -1465,6 +1465,11 @@
"required": true,
"type": "Date",
"description": "Timestamp when channel was created"
+ },
+ "language": {
+ "required": true,
+ "type": "string",
+ "description": "The default spoken language"
}
}
}