From a478a5de047597a8d97510bc5e133423b9048be8 Mon Sep 17 00:00:00 2001 From: Stefan Knoblich Date: Tue, 11 Sep 2012 11:09:40 +0200 Subject: [PATCH] ftmod_libpri: Skip channels marked in use during NT-mode idle restart. Channels can be in DOWN state but reserved by an incoming call (FTDM_CHANNEL_INUSE flag). Additionally check the flag in on_timeout_t3xx() and skip those channels. Reported-by: privi #freetdm @ irc.freenode.net Signed-off-by: Stefan Knoblich --- libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c index 9412d75c9b..37f27f3355 100644 --- a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c +++ b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c @@ -1938,7 +1938,7 @@ static int on_timeout_t3xx(struct lpwrap_pri *spri, struct lpwrap_timer *timer) if (ftdm_channel_get_type(cur) != FTDM_CHAN_TYPE_B) continue; /* Restart idle b-channels */ - if (ftdm_channel_get_state(cur) == FTDM_CHANNEL_STATE_DOWN) { + if (ftdm_channel_get_state(cur) == FTDM_CHANNEL_STATE_DOWN && !ftdm_test_flag(cur, FTDM_CHANNEL_INUSE)) { ftdm_set_state_locked(cur, FTDM_CHANNEL_STATE_RESTART); } }