mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
From a user complaint on #asterisk, I have forced pbx_spool to explain what reason codes mean, when they are logged
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79099 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1365,6 +1365,16 @@ int ast_channel_whisper_feed(struct ast_channel *chan, struct ast_frame *f);
|
||||
*/
|
||||
void ast_channel_whisper_stop(struct ast_channel *chan);
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\brief return an english explanation of the code returned thru __ast_request_and_dial's 'outstate' argument
|
||||
\param reason The integer argument, usually taken from AST_CONTROL_ macros
|
||||
\return char pointer explaining the code
|
||||
*/
|
||||
char *ast_channel_reason2str(int reason);
|
||||
|
||||
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -3034,6 +3034,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;
|
||||
|
@@ -338,7 +338,7 @@ static void *attempt_thread(void *data)
|
||||
res = ast_pbx_outgoing_exten(o->tech, AST_FORMAT_SLINEAR, o->dest, o->waittime * 1000, o->context, o->exten, o->priority, &reason, 2 /* wait to finish */, o->cid_num, o->cid_name, o->vars, o->account, NULL);
|
||||
}
|
||||
if (res) {
|
||||
ast_log(LOG_NOTICE, "Call failed to go through, reason %d\n", reason);
|
||||
ast_log(LOG_NOTICE, "Call failed to go through, reason (%d) %s\n", reason, ast_channel_reason2str(reason));
|
||||
if (o->retries >= o->maxretries + 1) {
|
||||
/* Max retries exceeded */
|
||||
ast_log(LOG_EVENT, "Queued call to %s/%s expired without completion after %d attempt%s\n", o->tech, o->dest, o->retries - 1, ((o->retries - 1) != 1) ? "s" : "");
|
||||
|
Reference in New Issue
Block a user