git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7961 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2008-03-25 18:48:20 +00:00
parent 63b7f1cac9
commit 45df9ee1d6
3 changed files with 29 additions and 27 deletions

View File

@ -337,8 +337,8 @@ SWITCH_STANDARD_APP(fifo_function)
int custom_pop = 0; int custom_pop = 0;
int pop_array[MAX_PRI] = { 0 }; int pop_array[MAX_PRI] = { 0 };
char *pop_list[MAX_PRI] = { 0 }; char *pop_list[MAX_PRI] = { 0 };
const char *fifo_consumer_wrapup_sound = NULL; const char *fifo_consumer_wrapup_sound = NULL;
const char *fifo_consumer_wrapup_key = NULL; const char *fifo_consumer_wrapup_key = NULL;
char buf[5] = ""; char buf[5] = "";
if (argc > 3) { if (argc > 3) {
@ -394,6 +394,7 @@ SWITCH_STANDARD_APP(fifo_function)
pop = NULL; pop = NULL;
if (moh) { if (moh) {
memset(&args, 0, sizeof(args));
args.read_frame_callback = read_frame_callback; args.read_frame_callback = read_frame_callback;
args.user_data = node; args.user_data = node;
switch_ivr_play_file(session, NULL, moh, &args); switch_ivr_play_file(session, NULL, moh, &args);
@ -511,27 +512,26 @@ SWITCH_STANDARD_APP(fifo_function)
if (nowait) { if (nowait) {
done = 1; done = 1;
} }
fifo_consumer_wrapup_sound = switch_channel_get_variable(channel, "fifo_consumer_wrapup_sound"); fifo_consumer_wrapup_sound = switch_channel_get_variable(channel, "fifo_consumer_wrapup_sound");
fifo_consumer_wrapup_key = switch_channel_get_variable(channel, "fifo_consumer_wrapup_key"); fifo_consumer_wrapup_key = switch_channel_get_variable(channel, "fifo_consumer_wrapup_key");
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
if (!switch_strlen_zero(fifo_consumer_wrapup_sound)) { if (!switch_strlen_zero(fifo_consumer_wrapup_sound)) {
args.buf = buf; memset(&args, 0, sizeof(args));
args.buflen = sizeof(buf); args.buf = buf;
args.buflen = sizeof(buf);
memset(&args, 0, sizeof(args)); switch_ivr_play_file(session, NULL, fifo_consumer_wrapup_sound, &args);
switch_ivr_play_file(session, NULL, fifo_consumer_wrapup_sound, &args); }
}
if (!switch_strlen_zero(fifo_consumer_wrapup_key) && strcmp(buf, fifo_consumer_wrapup_key)) {
if (!switch_strlen_zero(fifo_consumer_wrapup_key) && strcmp(buf, fifo_consumer_wrapup_key)) { for(;;) {
for(;;) { char terminator = 0;
char terminator = 0; switch_ivr_collect_digits_count(session, buf, sizeof(buf)-1, 1, fifo_consumer_wrapup_key, &terminator, 0, 0, 0);
switch_ivr_collect_digits_count(session, buf, sizeof(buf)-1, 1, fifo_consumer_wrapup_key, &terminator, 0, 0, 0); if (terminator == *fifo_consumer_wrapup_key) {
if (terminator == *fifo_consumer_wrapup_key) { break;
break; }
} }
}
} }
} }

View File

@ -1828,8 +1828,9 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
} }
break; break;
case nua_callstate_ready: case nua_callstate_ready:
switch_channel_clear_flag(channel, CF_REQ_MEDIA); if (channel) {
switch_channel_clear_flag(channel, CF_REQ_MEDIA);
}
if (tech_pvt && nh == tech_pvt->nh2) { if (tech_pvt && nh == tech_pvt->nh2) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Cheater Reinvite!\n"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Cheater Reinvite!\n");
switch_set_flag_locked(tech_pvt, TFLAG_REINVITE); switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);

View File

@ -222,8 +222,9 @@ void sofia_glue_set_local_sdp(private_object_t *tech_pvt, const char *ip, uint32
#endif #endif
} }
if (switch_test_flag(tech_pvt, TFLAG_VIDEO)) { if (switch_test_flag(tech_pvt, TFLAG_VIDEO)) {
if (!tech_pvt->local_sdp_video_port) { if (!switch_channel_test_flag(tech_pvt->channel, CF_ANSWERED) && !switch_channel_test_flag(tech_pvt->channel, CF_EARLY_MEDIA) &&
!tech_pvt->local_sdp_video_port) {
sofia_glue_tech_choose_video_port(tech_pvt); sofia_glue_tech_choose_video_port(tech_pvt);
} }