summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zaptel-base.c13
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);