wctdm24xxp: FXS on-hook transmission timer incorrect.
The DAHDI_ONHOOKTRANSFER ioctl was incorrectly setting the ohttimer to 0. The result was that an FXS port was leaving the on-hook transfer state before finishing the transmission. This was discovered while looking at why ./fxstest dtmfcid was not able to pass the DTMF callerid digits to an attached FXO port properly. Fixes a regression introduced in r10167 "wctdm24xxp: Use interval for checking FXS on hook transfer timer." [1], first released in 2.6.0. [1] http://svnview.digium.com/svn/dahdi?view=revision&revision=10167 Signed-off-by: Shaun Ruffell <sruffell@digium.com> Origin: http://svnview.digium.com/svn/dahdi?view=rev&rev=10413 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/branches/2.6@10415 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
parent
e5ed586e31
commit
d726b04767
@ -3727,14 +3727,15 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long
|
|||||||
|
|
||||||
if (((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_ACTIVE_FWD) ||
|
if (((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_ACTIVE_FWD) ||
|
||||||
((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_ACTIVE_REV)) {
|
((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_ACTIVE_REV)) {
|
||||||
|
int res;
|
||||||
|
|
||||||
x = set_lasttxhook_interruptible(wc, fxs,
|
res = set_lasttxhook_interruptible(wc, fxs,
|
||||||
(POLARITY_XOR(fxs) ?
|
(POLARITY_XOR(fxs) ?
|
||||||
SLIC_LF_OHTRAN_REV : SLIC_LF_OHTRAN_FWD),
|
SLIC_LF_OHTRAN_REV : SLIC_LF_OHTRAN_FWD),
|
||||||
&mod->sethook);
|
&mod->sethook);
|
||||||
|
|
||||||
if (debug & DEBUG_CARD) {
|
if (debug & DEBUG_CARD) {
|
||||||
if (x) {
|
if (res) {
|
||||||
dev_info(&wc->vb.pdev->dev,
|
dev_info(&wc->vb.pdev->dev,
|
||||||
"Channel %d TIMEOUT: "
|
"Channel %d TIMEOUT: "
|
||||||
"OnHookTransfer start\n",
|
"OnHookTransfer start\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user