]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-5470 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 24 May 2013 14:37:25 +0000 (09:37 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 24 May 2013 14:37:40 +0000 (09:37 -0500)
src/mod/applications/mod_conference/mod_conference.c

index b4316cb703748c736109018b89b42c0ad64f2684..3c3704474c641298b52c0b323072a2e7946b1360 100644 (file)
@@ -1526,9 +1526,6 @@ static switch_status_t conference_add_member(conference_obj_t *conference, confe
                switch_channel_clear_app_flag_key("conf_silent", channel, CONF_SILENT_REQ);
                switch_channel_set_app_flag_key("conf_silent", channel, CONF_SILENT_DONE);
 
-               switch_ivr_dmachine_create(&member->dmachine, "mod_conference", NULL, 
-                               conference->ivr_dtmf_timeout, conference->ivr_input_timeout, NULL, NULL, NULL);
-
                controls = switch_channel_get_variable(channel, "conference_controls");
 
                if (zstr(controls)) {
@@ -1544,6 +1541,8 @@ static switch_status_t conference_add_member(conference_obj_t *conference, confe
                }
 
                if (strcasecmp(controls, "none")) {
+                       switch_ivr_dmachine_create(&member->dmachine, "mod_conference", NULL, 
+                                                                          conference->ivr_dtmf_timeout, conference->ivr_input_timeout, NULL, NULL, NULL);
                        member_bind_controls(member, controls);
                }
                
@@ -1596,7 +1595,9 @@ static switch_status_t conference_del_member(conference_obj_t *conference, confe
        member->sh = NULL;
        unlock_member(member);
 
-       switch_ivr_dmachine_destroy(&member->dmachine);
+       if (member->dmachine) {
+               switch_ivr_dmachine_destroy(&member->dmachine);
+       }
 
        switch_mutex_lock(conference->mutex);
        switch_mutex_lock(conference->member_mutex);