diff options
Diffstat (limited to 'net/asterisk22/files/patch-channels_chan__dahdi.c')
-rw-r--r-- | net/asterisk22/files/patch-channels_chan__dahdi.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/net/asterisk22/files/patch-channels_chan__dahdi.c b/net/asterisk22/files/patch-channels_chan__dahdi.c new file mode 100644 index 000000000000..e062d643f2fd --- /dev/null +++ b/net/asterisk22/files/patch-channels_chan__dahdi.c @@ -0,0 +1,33 @@ +--- channels/chan_dahdi.c.orig 2024-10-17 16:00:41 UTC ++++ channels/chan_dahdi.c +@@ -4909,6 +4909,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p) + return; + } + if (p->echocancel.head.tap_length) { ++ struct dahdi_echocanparams *pecp; ++ + #if defined(HAVE_PRI) || defined(HAVE_SS7) + switch (p->sig) { + #if defined(HAVE_PRI) +@@ -4939,7 +4941,9 @@ void dahdi_ec_enable(struct dahdi_pvt *p) + break; + } + #endif /* defined(HAVE_PRI) || defined(HAVE_SS7) */ +- 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 { +@@ -4973,8 +4977,9 @@ void dahdi_ec_disable(struct dahdi_pvt *p) + + 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)); |