mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 11:06:31 +00:00
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
This commit is contained in:
@@ -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;
|
||||
|
@@ -386,6 +386,7 @@ static void ast_ari_channels_create_cb(
|
||||
break;
|
||||
case 500: /* Internal Server Error */
|
||||
case 501: /* Not Implemented */
|
||||
case 409: /* Channel with given unique ID already exists. */
|
||||
is_valid = 1;
|
||||
break;
|
||||
default:
|
||||
|
@@ -217,6 +217,12 @@
|
||||
"allowMultiple": false,
|
||||
"dataType": "string"
|
||||
}
|
||||
],
|
||||
"errorResponses": [
|
||||
{
|
||||
"code": 409,
|
||||
"reason": "Channel with given unique ID already exists."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
Reference in New Issue
Block a user