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
changes/59/4159/4
Mark Michelson 9 years ago
parent e459b8dadf
commit 3bd76dd679

@ -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."
}
]
}
]

Loading…
Cancel
Save