diff options
-rw-r--r-- | zaptel-base.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/zaptel-base.c b/zaptel-base.c index 5cab0e5..e152fa4 100644 --- a/zaptel-base.c +++ b/zaptel-base.c @@ -4363,8 +4363,17 @@ static int ioctl_echocancel(struct zt_chan *chan, struct zt_echocanparams *ecp, chan->echolastupdate = 0; chan->echotimer = 0; spin_unlock_irqrestore(&chan->lock, flags); - if (chan->span && chan->span->echocan) - chan->span->echocan(chan, 0); + + /* Make sure this is zero if we're disabling echo can */ + ecp->param_count = 0; + + if (chan->span) { + if (chan->span->echocan_with_params) + chan->span->echocan_with_params(chan, ecp, NULL); + else if (chan->span->echocan) + chan->span->echocan(chan, 0); + } + if (tec) echo_can_free(tec); |