switch_call_cause_t *cancel_cause)
{
char name[128];
+ switch_channel_t *ochannel = NULL;
if (session) {
- switch_channel_t *channel = switch_core_session_get_channel(session);
- switch_channel_clear_flag(channel, CF_PROXY_MEDIA);
- switch_channel_clear_flag(channel, CF_PROXY_MODE);
- switch_channel_pre_answer(channel);
+ ochannel = switch_core_session_get_channel(session);
+ switch_channel_clear_flag(ochannel, CF_PROXY_MEDIA);
+ switch_channel_clear_flag(ochannel, CF_PROXY_MODE);
+ switch_channel_pre_answer(ochannel);
}
if ((*new_session = switch_core_session_request(loopback_endpoint_interface, SWITCH_CALL_DIRECTION_OUTBOUND, flags, pool)) != 0) {
if (switch_event_dup(&clone, var_event) == SWITCH_STATUS_SUCCESS) {
const char *var;
-
- if ((var = switch_channel_get_variable(channel, "loopback_export"))) {
+
+ if (ochannel && (var = switch_channel_get_variable(ochannel, "loopback_export"))) {
int argc = 0;
char *argv[128] = { 0 };
char *dup = switch_core_session_strdup(session, var);
int i;
for (i = 0; i < argc; i++) {
if (!zstr(argv[i])) {
- const char *val = switch_channel_get_variable(channel, argv[i]);
+ const char *val = switch_channel_get_variable(ochannel, argv[i]);
switch_event_add_header_string(clone, SWITCH_STACK_BOTTOM, argv[i], val);
}
}