diff options
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r-- | channels/chan_iax2.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 13fa2c173..c7dbf63e0 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -8550,6 +8550,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 */ |