mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-17 01:02:12 +00:00
FS-6833 #resolve [Allow Freeswitch to initiate Late offer calls.] #comment Regression from addition of custom variables
This commit is contained in:
parent
6f936349f7
commit
46ebf3cea7
@ -7377,6 +7377,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
|
||||
switch_console_set_complete("add uuid_loglevel ::console::list_uuid debug");
|
||||
switch_console_set_complete("add uuid_media ::console::list_uuid");
|
||||
switch_console_set_complete("add uuid_media off ::console::list_uuid");
|
||||
switch_console_set_complete("add uuid_media_3p ::console::list_uuid");
|
||||
switch_console_set_complete("add uuid_media_3p off ::console::list_uuid");
|
||||
switch_console_set_complete("add uuid_park ::console::list_uuid");
|
||||
switch_console_set_complete("add uuid_media_reneg ::console::list_uuid");
|
||||
switch_console_set_complete("add uuid_phone_event ::console::list_uuid talk");
|
||||
|
@ -1458,6 +1458,9 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
|
||||
{
|
||||
char *extra_headers = sofia_glue_get_extra_headers(channel, SOFIA_SIP_HEADER_PREFIX);
|
||||
|
||||
switch_channel_clear_flag(tech_pvt->channel, CF_MEDIA_ACK);
|
||||
switch_channel_set_flag(tech_pvt->channel, CF_REQ_MEDIA);
|
||||
|
||||
nua_invite(tech_pvt->nh, NUTAG_MEDIA_ENABLE(0),
|
||||
TAG_IF(msg->string_arg, SIPTAG_CONTENT_TYPE_STR("application/sdp")),
|
||||
TAG_IF(msg->string_arg, SIPTAG_PAYLOAD_STR(msg->string_arg)),
|
||||
@ -1469,6 +1472,12 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
|
||||
case SWITCH_MESSAGE_INDICATE_3P_MEDIA:
|
||||
{
|
||||
char *extra_headers = sofia_glue_get_extra_headers(channel, SOFIA_SIP_HEADER_PREFIX);
|
||||
|
||||
switch_channel_clear_flag(tech_pvt->channel, CF_MEDIA_ACK);
|
||||
switch_channel_clear_flag(tech_pvt->channel, CF_MEDIA_SET);
|
||||
switch_channel_set_flag(tech_pvt->channel, CF_REQ_MEDIA);
|
||||
|
||||
|
||||
nua_invite(tech_pvt->nh, NUTAG_MEDIA_ENABLE(0), SIPTAG_PAYLOAD_STR(""),
|
||||
TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END());
|
||||
|
||||
|
@ -1573,7 +1573,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_media(const char *uuid, switch_med
|
||||
if ((session = switch_core_session_locate(uuid))) {
|
||||
channel = switch_core_session_get_channel(session);
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_MEDIA_TRANS)) {
|
||||
if (switch_channel_test_flag(channel, CF_MEDIA_TRANS) || !switch_channel_test_flag(channel, CF_PROXY_MODE)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Operation is invalid\n");
|
||||
switch_core_session_rwunlock(session);
|
||||
return SWITCH_STATUS_INUSE;
|
||||
}
|
||||
@ -1584,7 +1585,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_media(const char *uuid, switch_med
|
||||
swap = 1;
|
||||
}
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_PROXY_MODE)) {
|
||||
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
|
||||
/* If we had early media in bypass mode before, it is no longer relevant */
|
||||
@ -1646,7 +1647,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_media(const char *uuid, switch_med
|
||||
if (other_channel) {
|
||||
switch_channel_clear_state_handler(channel, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
switch_channel_clear_flag(channel, CF_MEDIA_TRANS);
|
||||
switch_core_session_rwunlock(session);
|
||||
@ -1781,7 +1781,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_nomedia(const char *uuid, switch_m
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
channel = switch_core_session_get_channel(session);
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_MEDIA_TRANS)) {
|
||||
if (switch_channel_test_flag(channel, CF_MEDIA_TRANS) || (!(flags & SMF_FORCE) && switch_channel_test_flag(channel, CF_PROXY_MODE))) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Operation is invalid\n");
|
||||
switch_core_session_rwunlock(session);
|
||||
return SWITCH_STATUS_INUSE;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user