ari: Provide the caller ID RDNIS for the channels

Provide the caller ID RDNIS when available. This will allow an
application to follow the redirect.

(cherry picked from commit 157389bc59)
This commit is contained in:
Holger Hans Peter Freyther 2023-10-14 15:48:10 +08:00 committed by Asterisk Development Team
parent 089ddaaaed
commit 28f52d35f3
4 changed files with 18 additions and 0 deletions

View File

@ -1323,6 +1323,10 @@ struct ast_json *ast_channel_snapshot_to_json(
"creationtime", ast_json_timeval(snapshot->base->creationtime, NULL),
"language", snapshot->base->language);
if (!ast_strlen_zero(snapshot->caller->rdnis)) {
ast_json_object_set(json_chan, "caller_rdnis", ast_json_string_create(snapshot->caller->rdnis));
}
if (snapshot->ari_vars && !AST_LIST_EMPTY(snapshot->ari_vars)) {
ast_json_object_set(json_chan, "channelvars", ast_json_channel_vars(snapshot->ari_vars));
}

View File

@ -1067,6 +1067,15 @@ int ast_ari_validate_channel(struct ast_json *json)
res = 0;
}
} else
if (strcmp("caller_rdnis", ast_json_object_iter_key(iter)) == 0) {
int prop_is_valid;
prop_is_valid = ast_ari_validate_string(
ast_json_object_iter_value(iter));
if (!prop_is_valid) {
ast_log(LOG_ERROR, "ARI Channel field caller_rdnis failed validation\n");
res = 0;
}
} else
if (strcmp("channelvars", ast_json_object_iter_key(iter)) == 0) {
int prop_is_valid;
prop_is_valid = ast_ari_validate_object(

View File

@ -1346,6 +1346,7 @@ ari_validator ast_ari_validate_application_fn(void);
* Channel
* - accountcode: string (required)
* - caller: CallerID (required)
* - caller_rdnis: string
* - channelvars: object
* - connected: CallerID (required)
* - creationtime: Date (required)

View File

@ -2187,6 +2187,10 @@
"required": false,
"type": "object",
"description": "Channel variables"
},
"caller_rdnis": {
"type": "string",
"description": "The Caller ID RDNIS"
}
}
}