diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-05-23 11:13:36 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-05-23 11:13:36 +0200 |
commit | 62c50a8046f268246f3365bee51801080eb9c370 (patch) | |
tree | 21b682090d24b88322a10872b8f81a2e9eeca1e2 /src | |
parent | d7d3bba8d6605e4d7cd5e59020432f83756cfcfe (diff) |
dtmf: Make the on/off time and transmit power configurablerelease/1.3
Make it possible to configure the transmit power. These settings
will be in effect immediately (there is no lock between the two
threads but it is a read only).
Diffstat (limited to 'src')
-rw-r--r-- | src/mgcp/mgcp_protocol.c | 4 | ||||
-rw-r--r-- | src/mgcp_ss7.c | 5 | ||||
-rw-r--r-- | src/mgcp_ss7_vty.c | 28 |
3 files changed, 37 insertions, 0 deletions
diff --git a/src/mgcp/mgcp_protocol.c b/src/mgcp/mgcp_protocol.c index 4fc6135..d3561d5 100644 --- a/src/mgcp/mgcp_protocol.c +++ b/src/mgcp/mgcp_protocol.c @@ -948,6 +948,10 @@ static void trunk_init(struct mgcp_trunk_config *trunk) trunk->dwnstr_adp_rate = 100; trunk->dwnstr_max_gain = 46; trunk->dwnstr_target_lvl = 20; + + /* dtmf defaults */ + trunk->dtmf_on_off_time = 70; + trunk->dtmf_transmit_pwr = 50; } struct mgcp_config *mgcp_config_alloc(void) diff --git a/src/mgcp_ss7.c b/src/mgcp_ss7.c index c4a1d34..6604545 100644 --- a/src/mgcp_ss7.c +++ b/src/mgcp_ss7.c @@ -510,6 +510,11 @@ static void allocate_endp(struct mgcp_ss7 *ss7, struct mgcp_endpoint *endp) ManObj_C_AMR_MODE_REQUEST, 2, 0); MtnSaSetManObject(mgw_port, ChannelType_PORT, ManObj_C_VOICE_VAD_CNG, endp->tcfg->vad_enabled, 0); + MtnSaSetManObject(mgw_port, ChannelType_PORT, + ManObj_G_DTMF_ON_OFF_TIME, endp->tcfg->dtmf_on_off_time, 0); + MtnSaSetManObject(mgw_port, ChannelType_PORT, + ManObj_G_DTMF_TRANSMIT_POWER, endp->tcfg->dtmf_transmit_pwr, 0); + update_mute_status(mgw_port, endp->conn_mode); diff --git a/src/mgcp_ss7_vty.c b/src/mgcp_ss7_vty.c index 07e44a5..8ed27ad 100644 --- a/src/mgcp_ss7_vty.c +++ b/src/mgcp_ss7_vty.c @@ -246,6 +246,26 @@ DEFUN(cfg_trunk_loop_idle, cfg_trunk_loop_idle_cmd, return CMD_SUCCESS; } +DEFUN(cfg_trunk_dtmf_on_off_time, cfg_trunk_dtmf_on_off_time_cmd, + "dtmf on-off-time <50-255>", + "DTMF related commands\n" "On-Off-Time for tones\n" + "Time in milliseconds\n") +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->dtmf_on_off_time = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_trunk_dtmf_transmit_pwr, cfg_trunk_dtmf_transmit_pwr_cmd, + "dtmf transmit-power <1-255>", + "DTMF related commands\n" "Transmit power\n" + "Power in units\n") +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->dtmf_transmit_pwr = atoi(argv[0]); + return CMD_SUCCESS; +} + void mgcp_write_extra(struct vty *vty, struct mgcp_config *cfg) { vty_out(vty, " configure-trunks %d%s", @@ -293,6 +313,10 @@ void write_trunk_extra(struct vty *vty, struct mgcp_trunk_config *trunk) trunk->dwnstr_target_lvl, VTY_NEWLINE); vty_out(vty, " loop-on-idle %d%s", trunk->loop_on_idle, VTY_NEWLINE); + vty_out(vty, " dtmf on-off-time %d%s", + trunk->dtmf_on_off_time, VTY_NEWLINE); + vty_out(vty, " dtmf transmit-power %d%s", + trunk->dtmf_transmit_pwr, VTY_NEWLINE); write_blocked_endpoints(vty, trunk); } @@ -335,6 +359,8 @@ void mgcp_mgw_vty_init(void) install_element(VTRUNK_NODE, &cfg_trunk_endp_offset_cmd); install_element(VTRUNK_NODE, &cfg_trunk_timeslot_block_cmd); install_element(VTRUNK_NODE, &cfg_trunk_loop_idle_cmd); + install_element(VTRUNK_NODE, &cfg_trunk_dtmf_on_off_time_cmd); + install_element(VTRUNK_NODE, &cfg_trunk_dtmf_transmit_pwr_cmd); install_element(TRUNK_NODE, &cfg_trunk_vad_cmd); install_element(TRUNK_NODE, &cfg_trunk_realloc_cmd); @@ -351,6 +377,8 @@ void mgcp_mgw_vty_init(void) install_element(TRUNK_NODE, &cfg_trunk_endp_offset_cmd); install_element(TRUNK_NODE, &cfg_trunk_timeslot_block_cmd); install_element(TRUNK_NODE, &cfg_trunk_loop_idle_cmd); + install_element(TRUNK_NODE, &cfg_trunk_dtmf_on_off_time_cmd); + install_element(TRUNK_NODE, &cfg_trunk_dtmf_transmit_pwr_cmd); } |