[Freeswitch-svn] [commit] r7961 - in freeswitch/trunk/src/mod: applications/mod_fifo endpoints/mod_sofia
Author: anthm Date: Tue Mar 25 14:48:20 2008 New Revision: 7961 Modified: freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Log: update Modified: freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c (original) +++ freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c Tue Mar 25 14:48:20 2008 @@ -337,8 +337,8 @@ 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 @@ 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 @@ 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; + } + } } } Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Tue Mar 25 14:48:20 2008 @@ -1828,8 +1828,9 @@ } 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); Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Tue Mar 25 14:48:20 2008 @@ -222,8 +222,9 @@ #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); }
participants (1)
-
Freeswitch SVN