Author: anthm Date: Thu Nov 9 00:13:59 2006 New Revision: 3286 Modified: freeswitch/trunk/src/include/switch_types.h freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c freeswitch/trunk/src/switch_ivr.c Log: tweak Modified: freeswitch/trunk/src/include/switch_types.h ============================================================================== --- freeswitch/trunk/src/include/switch_types.h (original) +++ freeswitch/trunk/src/include/switch_types.h Thu Nov 9 00:13:59 2006 @@ -90,7 +90,8 @@ typedef enum { SMF_NONE = 0, SMF_REBRIDGE = (1 << 0), - SMF_ECHO_BRIDGED = (1 << 1) + SMF_ECHO_BRIDGED = (1 << 1), + SMF_FORCE = (1 << 2) } switch_media_flag_t; typedef enum { Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c Thu Nov 9 00:13:59 2006 @@ -2415,7 +2415,7 @@ switch_channel_test_flag(other_channel, CF_NOMEDIA) && switch_channel_test_flag(channel, CF_OUTBOUND) && switch_channel_test_flag(channel, CF_NOMEDIA)) { - switch_ivr_nomedia(val, SMF_NONE); + switch_ivr_nomedia(val, SMF_FORCE); } switch_core_session_rwunlock(other_session); Modified: freeswitch/trunk/src/switch_ivr.c ============================================================================== --- freeswitch/trunk/src/switch_ivr.c (original) +++ freeswitch/trunk/src/switch_ivr.c Thu Nov 9 00:13:59 2006 @@ -2489,7 +2489,8 @@ status = SWITCH_STATUS_SUCCESS; channel = switch_core_session_get_channel(session); assert(channel != NULL); - if (!switch_channel_test_flag(channel, CF_NOMEDIA)) { + + if ((flags & SMF_FORCE) || !switch_channel_test_flag(channel, CF_NOMEDIA)) { switch_channel_set_flag(channel, CF_NOMEDIA); switch_core_session_receive_message(session, &msg); if ((flags & SMF_REBRIDGE) && (other_uuid = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE)) &&