]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_conference: don't transfer back to the same conference
authorMichael Jerris <mike@jerris.com>
Fri, 5 Jun 2009 16:16:56 +0000 (16:16 +0000)
committerMichael Jerris <mike@jerris.com>
Fri, 5 Jun 2009 16:16:56 +0000 (16:16 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13638 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_conference/mod_conference.c

index b5f6104ed08849ae9bd79e9a82ee659459e4127a..742b175e5da6c7bb48315b83b83345f005154839 100644 (file)
@@ -3933,15 +3933,17 @@ static switch_status_t conf_api_sub_transfer(conference_obj_t *conference, switc
 
                        /* move the member from the old conference to the new one */
                        switch_mutex_lock(member->control_mutex);
-                       conference_del_member(conference, member);
-                       conference_add_member(new_conference, member);
+                       if (conference != new_conference) {
+                               conference_del_member(conference, member);
+                               conference_add_member(new_conference, member);
 
-                       if (conference->rate != new_conference->rate) {
-                               if (setup_media(member, new_conference)) {
-                                       switch_clear_flag_locked(member, MFLAG_RUNNING);
-                               } else {
-                                       switch_channel_set_app_flag(channel, CF_APP_TAGGED);
-                                       switch_set_flag_locked(member, MFLAG_RESTART);
+                               if (conference->rate != new_conference->rate) {
+                                       if (setup_media(member, new_conference)) {
+                                               switch_clear_flag_locked(member, MFLAG_RUNNING);
+                                       } else {
+                                               switch_channel_set_app_flag(channel, CF_APP_TAGGED);
+                                               switch_set_flag_locked(member, MFLAG_RESTART);
+                                       }
                                }
                        }