Rich Doughty wrote:
Richard Lyman wrote:
Rich Doughty wrote:
i am creating call files, and catching successfully the ones that don't
connect in a 'failed' extension. can anyone tell me how to find out the
reason for the failure (ie busy, no answer).
${DIALSTATUS} doesn't appear to get set (presumably because Dial()
isn't
used) and channel_status doesn't seem to be any good.
thanks in advance.
the event you received for OriginateFailure has a 'Reason: ' code.
that code breaks down as
0 = UNKNOWN FAILURE or DISCONNECT
3 = AST_CONTROL_RINGING (no answer)
5 = AST_CONTROL_BUSY
1 = AST_CONTROL_HANGUP
8 = AST_CONTROL_CONGESTION
i didn't originate the call with manager, but with a call file, so i
can't
get manager events. i there any other way of finding this out?
if DIALSTATUS or HANGUPCAUSE don't have what you need then you will need
to mod pbx.c
look for a section of code that looks like this
/* create a fake channel and execute the
"failed" extension (if it exists) within the requested cont
/* check if "failed" exists */
if (ast_exists_extension(chan, context,
"failed", 1, NULL)) {
chan = ast_channel_alloc(0);
if (chan) {
ast_copy_string(chan->name,
"OutgoingSpoolFailed", sizeof(chan->name));
if (!ast_strlen_zero(context))
ast_copy_string(chan->context, context, sizeof(chan->context));
ast_copy_string(chan->exten,
"failed", sizeof(chan->exten));
chan->priority = 1;
ast_set_variables(chan, vars);
insert pbx_builtin_var here -->
ast_pbx_run(chan);
since DIALSTATUS and HANGUPCAUSE are both protected, you will probably
have to create another such as FAILEDCODE.
i hope this helps.
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --
asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users