]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
tweak
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 9 Nov 2006 05:13:59 +0000 (05:13 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 9 Nov 2006 05:13:59 +0000 (05:13 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3286 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/include/switch_types.h
src/mod/endpoints/mod_sofia/mod_sofia.c
src/switch_ivr.c

index 0af760fecbb63431e5e3254c0c6c7ddb43763262..637ced38f1f75f89d90551f053242e2723452245 100644 (file)
@@ -90,7 +90,8 @@ typedef uint8_t switch_byte_t;
 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 {
index 3ae9cd51bbe7b14d561b1f069f218f51901d6f75..ec63a75cd46d84a0f6955349ff47ff5b2ec9f3b3 100644 (file)
@@ -2415,7 +2415,7 @@ static void pass_sdp(switch_channel_t *channel, char *sdp)
                        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);
index aac0ab1c2b0143ac6981885a40537dd3a1ddf779..aff0ef45860d0ad5fdd78b3969de2687e07657a3 100644 (file)
@@ -2489,7 +2489,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_nomedia(char *uuid, switch_media_flag
                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)) &&