aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-16 21:43:20 +0000
committermattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-16 21:43:20 +0000
commit48b9e5d13a67af8ee5a01738da42f62299c27468 (patch)
tree178e91ef56c8e994612f26e641ce5d33a9d06298
parentca4fd89b4e8bf5e7afc632e46c047d0c34944564 (diff)
Add option for enabling and disabling echo cancellation
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@27523 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_zap.c10
-rw-r--r--include/asterisk/frame.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 60a6fafcd..f3003bbd5 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -2900,6 +2900,16 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
ast_log(LOG_DEBUG, "Set Operator Services mode, value: %d on %s/%s\n",
oprmode->mode, chan->name,oprmode->peer->name);;
break;
+ case AST_OPTION_ECHOCAN:
+ cp = (char *) data;
+ if (*cp) {
+ ast_log(LOG_DEBUG, "Enabling echo cancelation on %s\n", chan->name);
+ zt_enable_ec(p);
+ } else {
+ ast_log(LOG_DEBUG, "Disabling echo cancelation on %s\n", chan->name);
+ zt_disable_ec(p);
+ }
+ break;
}
errno = 0;
diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h
index 71e4ca908..102a637f4 100644
--- a/include/asterisk/frame.h
+++ b/include/asterisk/frame.h
@@ -303,6 +303,9 @@ enum ast_control_frame_type {
/* set channel into "Operator Services" mode */
#define AST_OPTION_OPRMODE 7
+/*! Explicitly enable or disable echo cancelation for the given channel */
+#define AST_OPTION_ECHOCAN 8
+
struct oprmode {
struct ast_channel *peer;
int mode;