diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 2aa5679b7b..02f988f6cf 100755 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -3510,7 +3510,7 @@ static switch_call_cause_t pickup_outgoing_channel(switch_core_session_t *sessio tech_pvt = switch_core_session_alloc(nsession, sizeof(*tech_pvt)); tech_pvt->key = switch_core_session_strdup(nsession, pickup); - switch_event_dup(&tech_pvt->vars, var_event); + switch_core_session_set_private(nsession, tech_pvt); @@ -3534,7 +3534,9 @@ static switch_call_cause_t pickup_outgoing_channel(switch_core_session_t *sessio pickup_add_session(nsession, pickup); switch_channel_set_flag(nchannel, CF_PICKUP); switch_channel_set_flag(nchannel, CF_NO_PRESENCE); - + + switch_event_dup(&tech_pvt->vars, var_event); + goto done; error: diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index efe855b565..9bddf694d9 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -2580,6 +2580,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess local_clobber = switch_true(lc); } + if (switch_channel_test_flag(originate_status[i].peer_channel, CF_NO_PRESENCE)) { + if (var_event) { + switch_event_del_header(var_event, "presence_id"); + } + if (local_var_event) { + switch_event_del_header(local_var_event, "presence_id"); + } + } + + if (local_clobber) { if (var_event) { switch_event_header_t *header;