add disable_hold var or disable-hold profile param
This commit is contained in:
parent
9096501ee4
commit
e5cc0539ff
|
@ -200,6 +200,7 @@ typedef enum {
|
|||
PFLAG_MESSAGE_QUERY_ON_FIRST_REGISTER,
|
||||
PFLAG_RTP_AUTOFLUSH_DURING_BRIDGE,
|
||||
PFLAG_MANUAL_REDIRECT,
|
||||
PFLAG_DISABLE_HOLD,
|
||||
PFLAG_AUTO_NAT,
|
||||
PFLAG_SIPCOMPACT,
|
||||
PFLAG_SQL_IN_TRANS,
|
||||
|
|
|
@ -2156,6 +2156,12 @@ switch_status_t reconfig_sofia(sofia_profile_t *profile)
|
|||
} else {
|
||||
sofia_clear_pflag(profile, PFLAG_PASS_CALLEE_ID);
|
||||
}
|
||||
} else if (!strcasecmp(var, "disable-hold")) {
|
||||
if (switch_true(val)) {
|
||||
sofia_set_pflag(profile, PFLAG_DISABLE_HOLD);
|
||||
} else {
|
||||
sofia_clear_pflag(profile, PFLAG_DISABLE_HOLD);
|
||||
}
|
||||
} else if (!strcasecmp(var, "sip-trace")) {
|
||||
if (switch_true(val)) {
|
||||
sofia_set_flag(profile, TFLAG_TPORT_LOG);
|
||||
|
@ -2791,6 +2797,12 @@ switch_status_t config_sofia(int reload, char *profile_name)
|
|||
} else {
|
||||
sofia_clear_pflag(profile, PFLAG_LOG_AUTH_FAIL);
|
||||
}
|
||||
} else if (!strcasecmp(var, "disable-hold")) {
|
||||
if (switch_true(val)) {
|
||||
sofia_set_pflag(profile, PFLAG_DISABLE_HOLD);
|
||||
} else {
|
||||
sofia_clear_pflag(profile, PFLAG_DISABLE_HOLD);
|
||||
}
|
||||
} else if (!strcasecmp(var, "dtmf-type")) {
|
||||
if (!strcasecmp(val, "rfc2833")) {
|
||||
profile->dtmf_type = DTMF_2833;
|
||||
|
|
|
@ -3392,6 +3392,11 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
|
|||
}
|
||||
}
|
||||
|
||||
if (sofia_test_flag(tech_pvt->profile, PFLAG_DISABLE_HOLD) ||
|
||||
((val = switch_channel_get_variable(tech_pvt->channel, "sip_disable_hold")) && switch_true(val))) {
|
||||
sendonly = 0;
|
||||
}
|
||||
|
||||
if (!tech_pvt->hold_laps) {
|
||||
tech_pvt->hold_laps++;
|
||||
sofia_glue_toggle_hold(tech_pvt, sendonly);
|
||||
|
|
Loading…
Reference in New Issue