aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_features.c
diff options
context:
space:
mode:
authormattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2005-03-17 21:52:57 +0000
committermattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2005-03-17 21:52:57 +0000
commit185e2056105a5566e952c14a26b907d777e4a79b (patch)
tree7b8bf7cc67a28171b6e6f9dd4278d7fcbf18ff87 /res/res_features.c
parent235a6486c3ca01b9bdac577774cc90fa4f06a58f (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-xres/res_features.c6
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 */
}
}