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);
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:
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;