diff options
author | Mark Michelson <mmichelson@digium.com> | 2016-10-19 12:05:28 -0500 |
---|---|---|
committer | Mark Michelson <mmichelson@digium.com> | 2016-10-20 13:00:10 -0500 |
commit | 3bd76dd679a88c0c96e2f6979d18bc0096c68c79 (patch) | |
tree | d2581b5bd62328773e4c87f0ab75f2d6b544351d /res/ari | |
parent | e459b8dadf42a3a015b312dfa9aadf507b4c85d9 (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.c | 7 |
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; |