git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4720 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2007-03-21 21:23:40 +00:00
parent dc205ae219
commit 9bacb04df9
3 changed files with 16 additions and 16 deletions

View File

@ -587,9 +587,7 @@ static switch_status_t channel_kill_channel(switch_core_session_t *session, int
default: default:
break; break;
} }
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s CHANNEL KILL\n", switch_channel_get_name(channel));
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
@ -649,7 +647,8 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
private_t *tech_pvt = NULL; private_t *tech_pvt = NULL;
switch_time_t started = switch_time_now(); switch_time_t started = switch_time_now();
unsigned int elapsed; unsigned int elapsed;
switch_byte_t *data;
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
assert(channel != NULL); assert(channel != NULL);
@ -703,12 +702,14 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
return SWITCH_STATUS_FALSE; return SWITCH_STATUS_FALSE;
cng: cng:
tech_pvt->read_frame.datalen = 13; data = (switch_byte_t *) tech_pvt->read_frame.data;
memset(tech_pvt->read_frame.data, 0, 13); data[0] = 65;
data[1] = 0;
tech_pvt->read_frame.datalen = 2;
tech_pvt->read_frame.flags = SFF_CNG; tech_pvt->read_frame.flags = SFF_CNG;
*frame = &tech_pvt->read_frame; *frame = &tech_pvt->read_frame;
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout,

View File

@ -1036,10 +1036,10 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_pre_answered(switch_
switch_event_fire(&event); switch_event_fire(&event);
} }
/* if we're in a bridge and the other channel is in a blocking read they will never realize we have answered so send /* if we're the child of another channel and the other channel is in a blocking read they will never realize we have answered so send
a SWITCH_SIG_BREAK to interrupt any blocking reads on that channel a SWITCH_SIG_BREAK to interrupt any blocking reads on that channel
*/ */
if ((uuid = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE)) && (other_session = switch_core_session_locate(uuid))) { if ((uuid = switch_channel_get_variable(channel, SWITCH_ORIGINATOR_VARIABLE)) && (other_session = switch_core_session_locate(uuid))) {
switch_core_session_kill_channel(other_session, SWITCH_SIG_BREAK); switch_core_session_kill_channel(other_session, SWITCH_SIG_BREAK);
switch_core_session_rwunlock(other_session); switch_core_session_rwunlock(other_session);
} }
@ -1075,7 +1075,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_pre_answer(switch_channel
msg.message_id = SWITCH_MESSAGE_INDICATE_PROGRESS; msg.message_id = SWITCH_MESSAGE_INDICATE_PROGRESS;
msg.from = channel->name; msg.from = channel->name;
status = switch_core_session_message_send(uuid, &msg); status = switch_core_session_message_send(uuid, &msg);
if (status == SWITCH_STATUS_SUCCESS) { if (status == SWITCH_STATUS_SUCCESS) {
status = switch_channel_perform_mark_pre_answered(channel, file, func, line); status = switch_channel_perform_mark_pre_answered(channel, file, func, line);
} }
@ -1148,11 +1148,11 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_answered(switch_chan
switch_channel_event_set_data(channel, event); switch_channel_event_set_data(channel, event);
switch_event_fire(&event); switch_event_fire(&event);
} }
/* if we're in a bridge and the other channel is in a blocking read they will never realize we have answered so send /* if we're the child of another channel and the other channel is in a blocking read they will never realize we have answered so send
a SWITCH_SIG_BREAK to interrupt any blocking reads on that channel a SWITCH_SIG_BREAK to interrupt any blocking reads on that channel
*/ */
if ((uuid = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE)) && (other_session = switch_core_session_locate(uuid))) { if ((uuid = switch_channel_get_variable(channel, SWITCH_ORIGINATOR_VARIABLE)) && (other_session = switch_core_session_locate(uuid))) {
switch_core_session_kill_channel(other_session, SWITCH_SIG_BREAK); switch_core_session_kill_channel(other_session, SWITCH_SIG_BREAK);
switch_core_session_rwunlock(other_session); switch_core_session_rwunlock(other_session);
} }

View File

@ -2048,9 +2048,8 @@ static void *audio_bridge_thread(switch_thread_t *thread, void *obj)
switch_channel_answer(chan_a); switch_channel_answer(chan_a);
ans_a++; ans_a++;
} else if (!pre_b && switch_channel_test_flag(chan_b, CF_EARLY_MEDIA)) { } else if (!pre_b && switch_channel_test_flag(chan_b, CF_EARLY_MEDIA)) {
if (switch_channel_pre_answer(chan_a) == SWITCH_STATUS_SUCCESS) { switch_channel_pre_answer(chan_a);
pre_b++; pre_b++;
}
} }
if (!pre_b) { if (!pre_b) {
switch_yield(10000); switch_yield(10000);