aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-25 22:41:10 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-25 22:41:10 +0000
commitb0072f8d99a99fdc617e6c9d30cbd64f5db46325 (patch)
tree8b90e67a481a7f841d36971e76fcdbfd81cbdddd
parent1b749225bfa9fdd4b23bf608ef8ff1110e7fe407 (diff)
(closes issue #12694)
Reported by: yraber Patches: 12694.2nd.diff uploaded by murf (license 17) Tested by: murf, laurav Thanks to file (Joshua Colp) for his IAX fix. the change to cdr.c allows no-answer to percolate up into CDR's, and feels like the right place to locate this fix; if BUSY is done here, no-answer should be, too. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@159316 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_iax2.c7
-rw-r--r--main/cdr.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 6349f3249..4d9165cac 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -7534,6 +7534,13 @@ retryowner:
iaxs[fr->callno]->videoformat = f.subclass & ~0x1;
}
}
+ if (f.frametype == AST_FRAME_CONTROL && iaxs[fr->callno]->owner) {
+ if (f.subclass == AST_CONTROL_BUSY) {
+ iaxs[fr->callno]->owner->hangupcause = AST_CAUSE_BUSY;
+ } else if (f.subclass == AST_CONTROL_CONGESTION) {
+ iaxs[fr->callno]->owner->hangupcause = AST_CAUSE_CONGESTION;
+ }
+ }
if (f.frametype == AST_FRAME_IAX) {
AST_SCHED_DEL(sched, iaxs[fr->callno]->initid);
/* Handle the IAX pseudo frame itself */
diff --git a/main/cdr.c b/main/cdr.c
index 353ff97c8..39045c9ed 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -766,6 +766,9 @@ int ast_cdr_disposition(struct ast_cdr *cdr, int cause)
case AST_CAUSE_BUSY:
ast_cdr_busy(cdr);
break;
+ case AST_CAUSE_NO_ANSWER:
+ ast_cdr_noanswer(cdr);
+ break;
case AST_CAUSE_NORMAL:
break;
default: