summaryrefslogtreecommitdiff
path: root/res/ari
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2016-10-19 12:05:28 -0500
committerMark Michelson <mmichelson@digium.com>2016-10-20 13:00:10 -0500
commit3bd76dd679a88c0c96e2f6979d18bc0096c68c79 (patch)
treed2581b5bd62328773e4c87f0ab75f2d6b544351d /res/ari
parente459b8dadf42a3a015b312dfa9aadf507b4c85d9 (diff)
ARI: Add duplicate channel ID checking for channel creation.
This is similar to what is done for origination, but for the 14 and up channel creation method. When attempting to create a channel, if a channel ID is specified and a channel already exists with that ID, then a 409 is returned. Change-Id: I77f9253278c6947939c418073b6b31065489187c
Diffstat (limited to 'res/ari')
-rw-r--r--res/ari/resource_channels.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c
index b00b2378d..afb4627a0 100644
--- a/res/ari/resource_channels.c
+++ b/res/ari/resource_channels.c
@@ -1828,7 +1828,12 @@ void ast_ari_channels_create(struct ast_variable *headers,
ao2_cleanup(request_cap);
if (!chan_data->chan) {
- ast_ari_response_alloc_failed(response);
+ if (ast_channel_errno() == AST_CHANNEL_ERROR_ID_EXISTS) {
+ ast_ari_response_error(response, 409, "Conflict",
+ "Channel with given unique ID already exists");
+ } else {
+ ast_ari_response_alloc_failed(response);
+ }
ast_channel_cleanup(originator);
chan_data_destroy(chan_data);
return;