From: Sebastian Damm Date: Thu, 6 Dec 2018 17:23:50 +0000 (+0100) Subject: res/res_ari: Add additional hangup reasons X-Git-Tag: 16.2.0-rc1~35^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59cf552dd32a55752072439d42461704c64d7167;p=thirdparty%2Fasterisk.git res/res_ari: Add additional hangup reasons The ARI DELETE /channels command takes a "reason" parameter Previously, there were only five reasons implemented This patch adds more reasons to choose from for more complex setups ASTERISK-28198 #close Change-Id: I85996f1076c9946d65c778413f040a845a90fecc --- diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c index bca32f1243..8aeb0961ae 100644 --- a/res/ari/resource_channels.c +++ b/res/ari/resource_channels.c @@ -884,6 +884,22 @@ void ast_ari_channels_hangup(struct ast_variable *headers, cause = AST_CAUSE_CONGESTION; } else if (!strcmp(args->reason, "no_answer")) { cause = AST_CAUSE_NOANSWER; + } else if (!strcmp(args->reason, "timeout")) { + cause = AST_CAUSE_NO_USER_RESPONSE; + } else if (!strcmp(args->reason, "rejected")) { + cause = AST_CAUSE_CALL_REJECTED; + } else if (!strcmp(args->reason, "unallocated")) { + cause = AST_CAUSE_UNALLOCATED; + } else if (!strcmp(args->reason, "normal_unspecified")) { + cause = AST_CAUSE_NORMAL_UNSPECIFIED; + } else if (!strcmp(args->reason, "number_incomplete")) { + cause = AST_CAUSE_INVALID_NUMBER_FORMAT; + } else if (!strcmp(args->reason, "codec_mismatch")) { + cause = AST_CAUSE_BEARERCAPABILITY_NOTAVAIL; + } else if (!strcmp(args->reason, "interworking")) { + cause = AST_CAUSE_INTERWORKING; + } else if (!strcmp(args->reason, "failure")) { + cause = AST_CAUSE_FAILURE; } else if(!strcmp(args->reason, "answered_elsewhere")) { cause = AST_CAUSE_ANSWERED_ELSEWHERE; } else { diff --git a/rest-api/api-docs/channels.json b/rest-api/api-docs/channels.json index ec8bae235d..08db22467a 100644 --- a/rest-api/api-docs/channels.json +++ b/rest-api/api-docs/channels.json @@ -421,6 +421,14 @@ "busy", "congestion", "no_answer", + "timeout", + "rejected", + "unallocated", + "normal_unspecified", + "number_incomplete", + "codec_mismatch", + "interworking", + "failure", "answered_elsewhere" ] }