mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-13 15:50:59 +00:00
put presence data in state events
This commit is contained in:
parent
f685e4c504
commit
75aab0ee6c
@ -1928,6 +1928,8 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_perform_set_running_state(
|
||||
if (state == CS_ROUTING) {
|
||||
switch_channel_event_set_data(channel, event);
|
||||
} else {
|
||||
const char *v;
|
||||
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-State", switch_channel_state_name(state));
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-State", switch_channel_callstate2str(channel->callstate));
|
||||
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-State-Number", "%d", state);
|
||||
@ -1951,6 +1953,21 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_perform_set_running_state(
|
||||
} else {
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "ringing");
|
||||
}
|
||||
|
||||
|
||||
if ((v = switch_channel_get_variable(channel, "presence_id"))) {
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Presence-ID", v);
|
||||
}
|
||||
|
||||
if ((v = switch_channel_get_variable(channel, "presence_data"))) {
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Presence-Data", v);
|
||||
}
|
||||
|
||||
if ((v = switch_channel_get_variable(channel, "presence_data_cols"))) {
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Data-Cols", v);
|
||||
switch_event_add_presence_data_cols(channel, event, "PD-");
|
||||
}
|
||||
|
||||
}
|
||||
switch_event_fire(&event);
|
||||
}
|
||||
|
@ -1407,6 +1407,20 @@ static void core_event_handler(switch_event_t *event)
|
||||
case CS_DESTROY:
|
||||
case CS_REPORTING:
|
||||
break;
|
||||
case CS_EXECUTE:
|
||||
if ((extra_cols = parse_presence_data_cols(event))) {
|
||||
new_sql() = switch_mprintf("update channels set state='%s',%s where uuid='%q'",
|
||||
switch_event_get_header_nil(event, "channel-state"),
|
||||
extra_cols,
|
||||
switch_event_get_header_nil(event, "unique-id"));
|
||||
free(extra_cols);
|
||||
|
||||
} else {
|
||||
new_sql() = switch_mprintf("update channels set state='%s' where uuid='%s'",
|
||||
switch_event_get_header_nil(event, "channel-state"),
|
||||
switch_event_get_header_nil(event, "unique-id"));
|
||||
}
|
||||
break;
|
||||
case CS_ROUTING:
|
||||
if ((extra_cols = parse_presence_data_cols(event))) {
|
||||
new_sql() = switch_mprintf("update channels set state='%s',cid_name='%q',cid_num='%q',callee_name='%q',callee_num='%q',"
|
||||
|
Loading…
x
Reference in New Issue
Block a user