FSCORE-442

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14893 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Brian West
2009-09-16 21:24:22 +00:00
parent 00909ae79d
commit dcfe0f5743
13 changed files with 217 additions and 13 deletions

View File

@@ -1104,6 +1104,9 @@ SWITCH_DECLARE(uint32_t) switch_core_max_dtmf_duration(uint32_t duration)
if (duration > SWITCH_MAX_DTMF_DURATION) {
duration = SWITCH_MAX_DTMF_DURATION;
}
if (duration < SWITCH_MIN_DTMF_DURATION) {
duration = SWITCH_MIN_DTMF_DURATION;
}
runtime.max_dtmf_duration = duration;
}
return runtime.max_dtmf_duration;
@@ -1112,14 +1115,30 @@ SWITCH_DECLARE(uint32_t) switch_core_max_dtmf_duration(uint32_t duration)
SWITCH_DECLARE(uint32_t) switch_core_default_dtmf_duration(uint32_t duration)
{
if (duration) {
if (duration < SWITCH_DEFAULT_DTMF_DURATION) {
duration = SWITCH_DEFAULT_DTMF_DURATION;
if (duration < SWITCH_MIN_DTMF_DURATION) {
duration = SWITCH_MIN_DTMF_DURATION;
}
if (duration > SWITCH_MAX_DTMF_DURATION) {
duration = SWITCH_MAX_DTMF_DURATION;
}
runtime.default_dtmf_duration = duration;
}
return runtime.default_dtmf_duration;
}
SWITCH_DECLARE(uint32_t) switch_core_min_dtmf_duration(uint32_t duration)
{
if (duration) {
if (duration < SWITCH_MIN_DTMF_DURATION) {
duration = SWITCH_MIN_DTMF_DURATION;
}
if (duration > SWITCH_MAX_DTMF_DURATION) {
duration = SWITCH_MAX_DTMF_DURATION;
}
}
return runtime.min_dtmf_duration;
}
static void switch_core_set_serial(void)
{
char buf[13] = "";
@@ -1184,6 +1203,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
runtime.mailer_app_args = "-t";
runtime.max_dtmf_duration = SWITCH_MAX_DTMF_DURATION;
runtime.default_dtmf_duration = SWITCH_DEFAULT_DTMF_DURATION;
runtime.min_dtmf_duration = SWITCH_MIN_DTMF_DURATION;
/* INIT APR and Create the pool context */
if (apr_initialize() != SWITCH_STATUS_SUCCESS) {
@@ -1395,6 +1415,11 @@ static void switch_load_core_config(const char *file)
if (tmp > 0) {
switch_core_max_dtmf_duration((uint32_t) tmp);
}
} else if (!strcasecmp(var, "min_dtmf_duration") && !switch_strlen_zero(val)) {
int tmp = atoi(val);
if (tmp > 0) {
switch_core_min_dtmf_duration((uint32_t) tmp);
}
} else if (!strcasecmp(var, "default_dtmf_duration") && !switch_strlen_zero(val)) {
int tmp = atoi(val);
if (tmp > 0) {
@@ -1610,6 +1635,9 @@ SWITCH_DECLARE(int32_t) switch_core_session_ctl(switch_session_ctl_t cmd, int32_
case SCSC_MAX_DTMF_DURATION:
*val = switch_core_max_dtmf_duration(*val);
break;
case SCSC_MIN_DTMF_DURATION:
*val = switch_core_min_dtmf_duration(*val);
break;
case SCSC_DEFAULT_DTMF_DURATION:
*val = switch_core_default_dtmf_duration(*val);
break;