mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-10-23 11:44:14 +00:00
fix proxy-media issue regression
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15181 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
1 parent
f489f91e00
commit
66866fb1ea
4 files changed
+24
-11
No files matched your search
@@ -507,19 +507,25 @@ SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_PROXY_MODE)) {
|
||||
if (switch_channel_test_cap(peer_channel, CC_BYPASS_MEDIA)) {
|
||||
switch_channel_set_flag(peer_channel, CF_PROXY_MODE);
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
|
||||
switch_channel_set_flag(peer_channel, CF_PROXY_MEDIA);
|
||||
if (switch_channel_test_flag(channel, CF_VIDEO)) {
|
||||
switch_channel_set_flag(peer_channel, CF_VIDEO);
|
||||
}
|
||||
}
|
||||
switch_channel_set_flag(peer_channel, CF_PROXY_MODE);
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING,
|
||||
"%s does not support the proxy feature, disabling.\n",
|
||||
switch_channel_get_name(peer_channel));
|
||||
switch_channel_clear_flag(channel, CF_PROXY_MODE);
|
||||
}
|
||||
}
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
|
||||
if (switch_channel_test_cap(peer_channel, CC_PROXY_MEDIA)) {
|
||||
switch_channel_set_flag(peer_channel, CF_PROXY_MEDIA);
|
||||
if (switch_channel_test_flag(channel, CF_VIDEO)) {
|
||||
switch_channel_set_flag(peer_channel, CF_VIDEO);
|
||||
}
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING,
|
||||
"%s does not support the proxy feature, disabling.\n",
|
||||
switch_channel_get_name(peer_channel));
|
||||
switch_channel_clear_flag(channel, CF_PROXY_MEDIA);
|
||||
}
|
||||
}
|
||||
@@ -703,7 +709,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_queue_message(switch_core_se
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (switch_channel_test_flag(session->channel, CF_PROXY_MODE)) {
|
||||
switch_core_session_kill_channel(session, SWITCH_SIG_BREAK);
|
||||
|
||||
if (switch_channel_test_flag(session->channel, CF_PROXY_MODE) || switch_channel_test_flag(session->channel, CF_THREAD_SLEEPING)) {
|
||||
switch_core_session_wake_session_thread(session);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user