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

View File

@ -1828,8 +1828,9 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
}
break;
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) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Cheater Reinvite!\n");
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
}
if (switch_test_flag(tech_pvt, TFLAG_VIDEO)) {
if (!tech_pvt->local_sdp_video_port) {
if (switch_test_flag(tech_pvt, TFLAG_VIDEO)) {
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);
}