mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-06-07 21:44:51 +00:00
Make bypass-media-after-hold a media-option
FS-6186 --resolve Thanks-to: Matteo Brancaleoni <mbrancaleoni@voismart.it>
This commit is contained in:
parent
ee60781d6e
commit
8fa385b0d7
@ -319,7 +319,6 @@ typedef enum {
|
|||||||
TFLAG_CAPTURE,
|
TFLAG_CAPTURE,
|
||||||
TFLAG_REINVITED,
|
TFLAG_REINVITED,
|
||||||
TFLAG_PASS_ACK,
|
TFLAG_PASS_ACK,
|
||||||
TFLAG_BYPASS_MEDIA_AFTER_HOLD,
|
|
||||||
/* No new flags below this line */
|
/* No new flags below this line */
|
||||||
TFLAG_MAX
|
TFLAG_MAX
|
||||||
} TFLAGS;
|
} TFLAGS;
|
||||||
@ -509,7 +508,8 @@ typedef enum {
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
MEDIA_OPT_NONE = 0,
|
MEDIA_OPT_NONE = 0,
|
||||||
MEDIA_OPT_MEDIA_ON_HOLD = (1 << 0),
|
MEDIA_OPT_MEDIA_ON_HOLD = (1 << 0),
|
||||||
MEDIA_OPT_BYPASS_AFTER_ATT_XFER = (1 << 1)
|
MEDIA_OPT_BYPASS_AFTER_ATT_XFER = (1 << 1),
|
||||||
|
MEDIA_OPT_BYPASS_AFTER_HOLD = (1 << 2)
|
||||||
} sofia_media_options_t;
|
} sofia_media_options_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -4305,14 +4305,14 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name)
|
|||||||
profile->media_options |= MEDIA_OPT_MEDIA_ON_HOLD;
|
profile->media_options |= MEDIA_OPT_MEDIA_ON_HOLD;
|
||||||
} else if (!strcasecmp(val, "bypass-media-after-att-xfer")) {
|
} else if (!strcasecmp(val, "bypass-media-after-att-xfer")) {
|
||||||
profile->media_options |= MEDIA_OPT_BYPASS_AFTER_ATT_XFER;
|
profile->media_options |= MEDIA_OPT_BYPASS_AFTER_ATT_XFER;
|
||||||
}
|
} else if (!strcasecmp(val, "bypass-media-after-hold")) {
|
||||||
} else if (!strcasecmp(var, "bypass-media-after-hold") && switch_true(val)) {
|
|
||||||
if (profile->media_options & MEDIA_OPT_MEDIA_ON_HOLD) {
|
if (profile->media_options & MEDIA_OPT_MEDIA_ON_HOLD) {
|
||||||
sofia_set_flag(profile, TFLAG_BYPASS_MEDIA_AFTER_HOLD);
|
profile->media_options |= MEDIA_OPT_BYPASS_AFTER_HOLD;
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
|
||||||
"bypass-media-after-hold can be set only with resume-media-on-hold media-option\n");
|
"bypass-media-after-hold can be set only with resume-media-on-hold media-option\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (!strcasecmp(var, "pnp-provision-url")) {
|
} else if (!strcasecmp(var, "pnp-provision-url")) {
|
||||||
profile->pnp_prov_url = switch_core_strdup(profile->pool, val);
|
profile->pnp_prov_url = switch_core_strdup(profile->pool, val);
|
||||||
} else if (!strcasecmp(var, "manage-presence")) {
|
} else if (!strcasecmp(var, "manage-presence")) {
|
||||||
@ -8548,7 +8548,7 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
|
|||||||
switch_channel_set_flag(channel, CF_PROXY_MODE);
|
switch_channel_set_flag(channel, CF_PROXY_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sofia_test_flag(tech_pvt, TFLAG_BYPASS_MEDIA_AFTER_HOLD)) {
|
if (profile->media_options & MEDIA_OPT_BYPASS_AFTER_HOLD) {
|
||||||
switch_channel_set_flag(channel, CF_BYPASS_MEDIA_AFTER_HOLD);
|
switch_channel_set_flag(channel, CF_BYPASS_MEDIA_AFTER_HOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user