diff options
author | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-03-17 21:52:57 +0000 |
---|---|---|
committer | mattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-03-17 21:52:57 +0000 |
commit | 185e2056105a5566e952c14a26b907d777e4a79b (patch) | |
tree | 7b8bf7cc67a28171b6e6f9dd4278d7fcbf18ff87 /res/res_features.c | |
parent | 235a6486c3ca01b9bdac577774cc90fa4f06a58f (diff) |
Fixed Parking bug where SIP calls would loose MOH after an attended transfer to
the park extension.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5193 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_features.c')
-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 */ } } |