]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
update
authorAnthony Minessale <anthony.minessale@gmail.com>
Mon, 7 Jan 2008 21:14:24 +0000 (21:14 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Mon, 7 Jan 2008 21:14:24 +0000 (21:14 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7133 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_ivr_originate.c

index 9b1bf72d7b55a0d9b65e88e5fa3fb389b4e76419..b292e1bb39910d3084a5b056bfa6fc8537400b57 100644 (file)
@@ -568,6 +568,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
                                        ok = 1;
                                } else if (!strcasecmp((char *)hi->name, "group_confirm_file")) {
                                        ok = 1;
+                               } else if (!strcasecmp((char *)hi->name, "forked_dial")) {
+                                       ok = 1;
                                } else if (!strcasecmp((char *)hi->name, "fail_on_single_reject")) {
                                        ok = 1;
                                } else if (!strcasecmp((char *)hi->name, "ignore_early_media")) {
@@ -810,8 +812,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
                                peer_sessions[i] = NULL;
                                new_session = NULL;
                                
+                               
+
+
                                if (and_argc > 1 || or_argc > 1) {
                                        myflags |= SOF_FORKED_DIAL;
+                               } else if (var_event) {
+                                       const char *vvar;
+                                       if ((vvar = switch_event_get_header(var_event, "forked_dial")) && switch_true(vvar)) {
+                                               myflags |= SOF_FORKED_DIAL;
+                                       }
                                }
                                if ((reason = switch_core_session_outgoing_channel(session, chan_type, new_profile, &new_session, &pool, myflags)) != SWITCH_CAUSE_SUCCESS) {
                                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel! cause: %s\n", switch_channel_cause2str(reason));