summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2013-10-14 22:06:01 +0000
committerRichard Mudgett <rmudgett@digium.com>2013-10-14 22:06:01 +0000
commitedb437ee6cb8d76a3791e319807a5e73cc5a9a32 (patch)
tree669a2eba4508c57f4cbd20b1aba9d7f9a7a8e977 /channels
parent47e910bfe69796faf75a57f5c0f560be64a6f487 (diff)
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
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_dahdi.c30
-rw-r--r--channels/chan_dahdi.h4
2 files changed, 23 insertions, 11 deletions
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 <rx|tx> <chan#> <gain>\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"
" <rx|tx> which direction do you want to change (relative to our module)\n"
" <chan num> is the channel number relative to the device\n"
- " <gain> is the gain in dB (e.g. -3.5 for -3.5dB)\n";
+ " <gain> 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 <rx|tx> <chan#> <gain>\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"
" <rx|tx> which direction do you want to change (relative to our module)\n"
" <chan num> is the channel number relative to the device\n"
" <gain> 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 */