diff options
Diffstat (limited to 'main/channel.c')
-rw-r--r-- | main/channel.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/main/channel.c b/main/channel.c index 26f9da5f7..cd2202fd4 100644 --- a/main/channel.c +++ b/main/channel.c @@ -2919,6 +2919,29 @@ int ast_set_write_format(struct ast_channel *chan, int fmt) &chan->writetrans, 1); } +char *ast_channel_reason2str(int reason) +{ + switch (reason) /* the following appear to be the only ones actually returned by request_and_dial */ + { + case 0: + return "Call Failure (not BUSY, and not NO_ANSWER, maybe Circuit busy or down?)"; + case AST_CONTROL_HANGUP: + return "Hangup"; + case AST_CONTROL_RING: + return "Local Ring"; + case AST_CONTROL_RINGING: + return "Remote end Ringing"; + case AST_CONTROL_ANSWER: + return "Remote end has Answered"; + case AST_CONTROL_BUSY: + return "Remote end is Busy"; + case AST_CONTROL_CONGESTION: + return "Congestion (circuits busy)"; + default: + return "Unknown Reason!!"; + } +} + struct ast_channel *__ast_request_and_dial(const char *type, int format, void *data, int timeout, int *outstate, const char *cid_num, const char *cid_name, struct outgoing_helper *oh) { int dummy_outstate; |