SOF_FORKED_DIAL = (1 << 1),
SOF_NO_EFFECTIVE_CID_NUM = (1 << 2),
SOF_NO_EFFECTIVE_CID_NAME = (1 << 3),
- SOF_NO_LIMITS = (1 << 4)
+ SOF_NO_LIMITS = (1 << 4),
+ SOF_ENTERPRISE = (1 << 5)
} switch_originate_flag_enum_t;
typedef uint32_t switch_originate_flag_t;
enterprise_originate_handle_t *handle = (enterprise_originate_handle_t *) obj;
handle->done = 0;
- handle->status = switch_ivr_originate(NULL, &handle->bleg, &handle->cause,
+ handle->flags |= SOF_ENTERPRISE;
+
+ handle->status = switch_ivr_originate(handle->session, &handle->bleg, &handle->cause,
handle->bridgeto, handle->timelimit_sec,
handle->table,
handle->cid_name_override,
soft_holding = switch_channel_get_variable(caller_channel, SWITCH_SOFT_HOLDING_UUID_VARIABLE);
}
+ if ((flags & SOF_ENTERPRISE)) {
+ session = oglobals.session = NULL;
+ caller_channel = NULL;
+ }
+
+
while ((!caller_channel || switch_channel_ready(caller_channel) || switch_channel_test_flag(caller_channel, CF_XFER_ZOMBIE)) &&
check_channel_status(&oglobals, originate_status, and_argc)) {
time_t elapsed = switch_epoch_time_now(NULL) - start;