]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
tweak
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 7 Sep 2007 00:49:08 +0000 (00:49 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 7 Sep 2007 00:49:08 +0000 (00:49 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5686 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_ivr_bridge.c

index 164d2a69215f36262fbbcd359c2cdfbadd58c33e..53f1037d88e3ca35ac461ff2bf4a57c1b2ef6fd2 100644 (file)
@@ -89,9 +89,6 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj)
                }
 
                if ((b_state = switch_channel_get_state(chan_b)) >= CS_HANGUP) {
-                       if (originator && !ans_a && !ans_b) {
-                               switch_channel_hangup(chan_a, switch_channel_get_cause(chan_b));
-                       }
                        break;
                }
 
@@ -183,6 +180,12 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj)
                }
        }
 
+       if (switch_channel_get_state(chan_b) >= CS_HANGUP) {    
+               if (originator && switch_channel_ready(chan_a) && !switch_channel_test_flag(chan_a, CF_ANSWERED)) {
+                       switch_channel_hangup(chan_a, switch_channel_get_cause(chan_b));
+               }
+       }
+
        msg.string_arg = data->b_uuid;
        msg.message_id = SWITCH_MESSAGE_INDICATE_UNBRIDGE;
        msg.from = __FILE__;