diff options
author | kpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-04 23:58:35 +0000 |
---|---|---|
committer | kpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-04 23:58:35 +0000 |
commit | 34527941b79d4e358a79c4edda9bd134686879f0 (patch) | |
tree | c283cfa4f39d4655ff984eb7f768d808841b8ffb /kernel | |
parent | db06a6740c1feef2e64f7f0cc4e6538c14c64e5a (diff) |
don't add an unnecessary delayed battery transition on FXS ports when we know the other end is already on-hook
(closes issue #9660)
Reported by: mmacvicar
Patches:
zaptel-base-c_patch_1_4_rev3121 uploaded by meneault (license 260)
Tested by: jmhunter
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3932 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/zaptel-base.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/zaptel-base.c b/kernel/zaptel-base.c index fbcc0c5..0a16462 100644 --- a/kernel/zaptel-base.c +++ b/kernel/zaptel-base.c @@ -2141,7 +2141,9 @@ static int zt_hangup(struct zt_chan *chan) if (chan->span->flags & ZT_FLAG_RBS) { if (chan->sig == ZT_SIG_CAS) { zt_cas_setbits(chan, chan->idlebits); - } else if ((chan->sig == ZT_SIG_FXOKS) && (chan->txstate != ZT_TXSTATE_ONHOOK)) { + } else if ((chan->sig == ZT_SIG_FXOKS) && (chan->txstate != ZT_TXSTATE_ONHOOK) + /* if other party is already on-hook we shouldn't do any battery drop */ + && !((chan->rxhooksig == ZT_RXSIG_ONHOOK) && (chan->itimer <= 0))) { /* Do RBS signalling on the channel's behalf */ zt_rbs_sethook(chan, ZT_TXSIG_KEWL, ZT_TXSTATE_KEWL, ZT_KEWLTIME); } else |