]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
ftmod_libpri: Skip channels marked in use during NT-mode idle restart.
authorStefan Knoblich <stkn@openisdn.net>
Tue, 11 Sep 2012 09:09:40 +0000 (11:09 +0200)
committerStefan Knoblich <stkn@openisdn.net>
Tue, 11 Sep 2012 09:09:40 +0000 (11:09 +0200)
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 <stkn@openisdn.net>
libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c

index 9412d75c9bdf08b155407320f52c9754f2561df7..37f27f33551dc39e53dbbb5de07cbc1b316cb1c0 100644 (file)
@@ -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);
                }
        }