diff options
author | Matthew Fredrickson <creslin@digium.com> | 2005-03-17 21:52:57 +0000 |
---|---|---|
committer | Matthew Fredrickson <creslin@digium.com> | 2005-03-17 21:52:57 +0000 |
commit | f146ecea993995707038222c7fff622ee0104d75 (patch) | |
tree | 7b8bf7cc67a28171b6e6f9dd4278d7fcbf18ff87 /res | |
parent | 7082d0584eb61abbc7c8055b74d9a7955046a8ef (diff) |
Fixed Parking bug where SIP calls would loose MOH after an attended transfer to
the park extension.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5193 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rwxr-xr-x | res/res_features.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/res/res_features.c b/res/res_features.c index dd22af0e1..571476395 100755 --- a/res/res_features.c +++ b/res/res_features.c @@ -113,6 +113,7 @@ struct parkeduser { int parkingtime; int notquiteyet; char peername[1024]; + unsigned char moh_trys; struct parkeduser *next; }; @@ -1212,6 +1213,11 @@ static void *do_parking_thread(void *ignore) } else { /* XXX Maybe we could do something with packets, like dial "0" for operator or something XXX */ ast_frfree(f); + if (pu->moh_trys < 3 && !pu->chan->generatordata) { + ast_log(LOG_DEBUG, "MOH on parked call stopped by outside source. Restarting.\n"); + ast_moh_start(pu->chan, NULL); + pu->moh_trys++; + } goto std; /* XXX Ick: jumping into an else statement??? XXX */ } } |