summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-02-01 20:10:28 +0000
committermattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-02-01 20:10:28 +0000
commit9bed5d85f82f93e05c56b288abc42783f3643e9d (patch)
treed5700af063963a72b1834bd550cf82d26cae99ab
parent5d2c8135f233bafed641d4eb56f979273bf5cea6 (diff)
Assume if we're disabling echo can that there are no paramters passed
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3779 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-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);