From edb437ee6cb8d76a3791e319807a5e73cc5a9a32 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Mon, 14 Oct 2013 22:06:01 +0000 Subject: chan_dahdi: Reflect the set software gain in the CLI "dahdi show channel" output. * Remember the swgain setting from CLI "dahdi set swgain" command so the CLI "dahdi show channel" output will reflect the current setting. * Updated CLI "dahdi set hwgain" and "dahdi set swgain" documentation. (issue ASTERISK-22429) Reported by: Jaco Kroon Patches: jira_asterisk_22429_v1.8_v2.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 400907 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 400909 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 400911 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400913 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_dahdi.c | 30 +++++++++++++++++++++--------- channels/chan_dahdi.h | 4 ++-- 2 files changed, 23 insertions(+), 11 deletions(-) (limited to 'channels') diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index e52969b5d..9f1f1a586 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -15356,15 +15356,20 @@ static char *dahdi_set_hwgain(struct ast_cli_entry *e, int cmd, struct ast_cli_a switch (cmd) { case CLI_INIT: - e->command = "dahdi set hwgain"; + e->command = "dahdi set hwgain {rx|tx}"; e->usage = "Usage: dahdi set hwgain \n" - " Sets the hardware gain on a a given channel, overriding the\n" - " value provided at module loadtime, whether the channel is in\n" - " use or not. Changes take effect immediately.\n" + " Sets the hardware gain on a given channel. Changes take effect\n" + " immediately whether the channel is in use or not.\n" + "\n" " which direction do you want to change (relative to our module)\n" " is the channel number relative to the device\n" - " is the gain in dB (e.g. -3.5 for -3.5dB)\n"; + " is the gain in dB (e.g. -3.5 for -3.5dB)\n" + "\n" + " Please note:\n" + " * This is currently the only way to set hwgain by the channel driver.\n" + " * hwgain is only supportable by hardware with analog ports because\n" + " hwgain works on the analog side of an analog-digital conversion.\n"; return NULL; case CLI_GENERATE: return NULL; @@ -15425,12 +15430,13 @@ static char *dahdi_set_swgain(struct ast_cli_entry *e, int cmd, struct ast_cli_a switch (cmd) { case CLI_INIT: - e->command = "dahdi set swgain"; + e->command = "dahdi set swgain {rx|tx}"; e->usage = "Usage: dahdi set swgain \n" - " Sets the software gain on a a given channel, overriding the\n" - " value provided at module loadtime, whether the channel is in\n" - " use or not. Changes take effect immediately.\n" + " Sets the software gain on a given channel and overrides the\n" + " value provided at module loadtime. Changes take effect\n" + " immediately whether the channel is in use or not.\n" + "\n" " which direction do you want to change (relative to our module)\n" " is the channel number relative to the device\n" " is the gain in dB (e.g. -3.5 for -3.5dB)\n"; @@ -15474,6 +15480,12 @@ static char *dahdi_set_swgain(struct ast_cli_entry *e, int cmd, struct ast_cli_a ast_cli(a->fd, "software %s gain set to %.1f on channel %d\n", tx ? "tx" : "rx", gain, channel); + + if (tx) { + tmp->txgain = gain; + } else { + tmp->rxgain = gain; + } break; } ast_mutex_unlock(&iflock); diff --git a/channels/chan_dahdi.h b/channels/chan_dahdi.h index 45fdc5288..eb0a5fbb1 100644 --- a/channels/chan_dahdi.h +++ b/channels/chan_dahdi.h @@ -149,9 +149,9 @@ struct dahdi_pvt { struct dahdi_pvt *oprpeer; /*!< "Operator Services" peer tech_pvt ptr */ /*! \brief Amount of gain to increase during caller id */ float cid_rxgain; - /*! \brief Rx gain set by chan_dahdi.conf */ + /*! \brief Software Rx gain set by chan_dahdi.conf */ float rxgain; - /*! \brief Tx gain set by chan_dahdi.conf */ + /*! \brief Software Tx gain set by chan_dahdi.conf */ float txgain; float txdrc; /*!< Dynamic Range Compression factor. a number between 1 and 6ish */ -- cgit v1.2.3