summaryrefslogtreecommitdiff
path: root/net/asterisk16/files/patch-channels-chan_dahdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/asterisk16/files/patch-channels-chan_dahdi.c')
-rw-r--r--net/asterisk16/files/patch-channels-chan_dahdi.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/net/asterisk16/files/patch-channels-chan_dahdi.c b/net/asterisk16/files/patch-channels-chan_dahdi.c
new file mode 100644
index 000000000000..b856d3266c2a
--- /dev/null
+++ b/net/asterisk16/files/patch-channels-chan_dahdi.c
@@ -0,0 +1,32 @@
+--- channels/chan_dahdi.c.orig 2009-10-22 17:19:21.568250985 +0000
++++ channels/chan_dahdi.c 2009-10-22 17:26:26.261584076 +0000
+@@ -1997,13 +1997,17 @@
+ return;
+ }
+ if (p->echocancel.head.tap_length) {
++ struct dahdi_echocanparams *pecp;
++
+ if ((p->sig == SIG_BRI) || (p->sig == SIG_BRI_PTMP) || (p->sig == SIG_PRI) || (p->sig == SIG_SS7)) {
+ x = 1;
+ res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_AUDIOMODE, &x);
+ if (res)
+ ast_log(LOG_WARNING, "Unable to enable audio mode on channel %d (%s)\n", p->channel, strerror(errno));
+ }
+- res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &p->echocancel);
++
++ pecp = &p->echocancel.head;
++ res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &pecp);
+ if (res) {
+ ast_log(LOG_WARNING, "Unable to enable echo cancellation on channel %d (%s)\n", p->channel, strerror(errno));
+ } else {
+@@ -2037,8 +2041,9 @@
+
+ if (p->echocanon) {
+ struct dahdi_echocanparams ecp = { .tap_length = 0 };
++ struct dahdi_echocanparams *pecp = &ecp;
+
+- res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &ecp);
++ res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &pecp);
+
+ if (res)
+ ast_log(LOG_WARNING, "Unable to disable echo cancellation on channel %d: %s\n", p->channel, strerror(errno));