aboutsummaryrefslogtreecommitdiffstats
path: root/main/channel.c
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-11 19:12:05 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-11 19:12:05 +0000
commitbd79260890d5a30c9ce8fa9fb394b4523274f739 (patch)
tree1c9f08afb7ed3c0a52f0376a9962d901f61a2e7b /main/channel.c
parent9c1c46c009b69e4bcb513012fc05bbf1ddb4f85e (diff)
Merged revisions 98315 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r98315 | mmichelson | 2008-01-11 13:10:57 -0600 (Fri, 11 Jan 2008) | 5 lines Properly report the hangup cause as no answer when someone does not answer (closes issue #10574, reported by boch, patched by moy) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98316 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/channel.c')
-rw-r--r--main/channel.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/main/channel.c b/main/channel.c
index 5314402ec..3b7bc2178 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -3028,6 +3028,7 @@ struct ast_channel *__ast_request_and_dial(const char *type, int format, void *d
int cause = 0;
struct ast_channel *chan;
int res = 0;
+ int last_subclass = 0;
if (outstate)
*outstate = 0;
@@ -3111,6 +3112,7 @@ struct ast_channel *__ast_request_and_dial(const char *type, int format, void *d
default:
ast_log(LOG_NOTICE, "Don't know what to do with control frame %d\n", f->subclass);
}
+ last_subclass = f->subclass;
}
ast_frfree(f);
}
@@ -3129,6 +3131,8 @@ struct ast_channel *__ast_request_and_dial(const char *type, int format, void *d
*outstate = AST_CONTROL_ANSWER;
if (res <= 0) {
+ if ( AST_CONTROL_RINGING == last_subclass )
+ chan->hangupcause = AST_CAUSE_NO_ANSWER;
if (!chan->cdr && (chan->cdr = ast_cdr_alloc()))
ast_cdr_init(chan->cdr, chan);
if (chan->cdr) {