diff options
author | qwell <qwell@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-07-05 18:08:53 +0000 |
---|---|---|
committer | qwell <qwell@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-07-05 18:08:53 +0000 |
commit | c6fd6e5e856fa6acad38c49f09ce352aaacf2455 (patch) | |
tree | 9b27f62b83da1d6961d3a7c34d8711140a967f2f /zaptel-base.c | |
parent | 125e348ee298a3a09fdd1f22f7388ca96e370f3d (diff) |
Do not report channels in ZT_STATE_KEWL or ZT_STATE_AFTERKEWL (ie; battery drop) states as available.
This becomes more likely if ZT_KEWLTIME or ZT_AFTERKEWLTIME are set to higher values.
Issue 7612, patch by rbraun.
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@2696 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel-base.c')
-rw-r--r-- | zaptel-base.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/zaptel-base.c b/zaptel-base.c index e2c71a7..695bc3f 100644 --- a/zaptel-base.c +++ b/zaptel-base.c @@ -2892,12 +2892,14 @@ static int zt_common_ioctl(struct inode *node, struct file *file, unsigned int c j = zt_q_sig(chan); if (j >= 0) { /* if returned with success */ stack.param.rxisoffhook = ((chan->rxsig & (j >> 8)) != (j & 0xff)); - } - else { + } else { stack.param.rxisoffhook = ((chan->rxhooksig != ZT_RXSIG_ONHOOK) && (chan->rxhooksig != ZT_RXSIG_INITIAL)); } - } else stack.param.rxisoffhook = 0; + } else if ((chan->txstate == ZT_TXSTATE_KEWL) || (chan->txstate == ZT_TXSTATE_AFTERKEWL)) + stack.param.rxisoffhook = 1; + else + stack.param.rxisoffhook = 0; if (chan->span && chan->span->rbsbits && !(chan->sig & ZT_SIG_CLEAR)) { stack.param.rxbits = chan->rxsig; stack.param.txbits = chan->txsig; |