提交 309c963d authored 作者: Anthony Minessale's avatar Anthony Minessale

parse only uuid specific presence data cols on bridge

上级 bd87b188
......@@ -1421,24 +1421,25 @@ static void core_event_handler(switch_event_t *event)
}
case SWITCH_EVENT_CHANNEL_BRIDGE:
{
const char *a_uuid, *b_uuid;
const char *a_uuid, *b_uuid, *uuid;
a_uuid = switch_event_get_header(event, "Bridge-A-Unique-ID");
b_uuid = switch_event_get_header(event, "Bridge-B-Unique-ID");
uuid = switch_event_get_header(event, "unique-id");
if (zstr(a_uuid) || zstr(b_uuid)) {
a_uuid = switch_event_get_header_nil(event, "caller-unique-id");
b_uuid = switch_event_get_header_nil(event, "other-leg-unique-id");
}
if ((extra_cols = parse_presence_data_cols(event))) {
new_sql() = switch_mprintf("update channels set call_uuid='%q',%s where uuid='%s' or uuid='%s'",
switch_event_get_header_nil(event, "channel-call-uuid"), extra_cols, a_uuid, b_uuid);
if (uuid && (extra_cols = parse_presence_data_cols(event))) {
new_sql() = switch_mprintf("update channels set %s where uuid='%s'", extra_cols, uuid);
free(extra_cols);
} else {
}
new_sql() = switch_mprintf("update channels set call_uuid='%q' where uuid='%s' or uuid='%s'",
switch_event_get_header_nil(event, "channel-call-uuid"), a_uuid, b_uuid);
}
new_sql() = switch_mprintf("insert into calls (call_uuid,call_created,call_created_epoch,"
"caller_uuid,callee_uuid,hostname) "
......@@ -1454,20 +1455,19 @@ static void core_event_handler(switch_event_t *event)
break;
case SWITCH_EVENT_CHANNEL_UNBRIDGE:
{
char *uuid = switch_event_get_header_nil(event, "caller-unique-id");
char *cuuid = switch_event_get_header_nil(event, "caller-unique-id");
char *uuid = switch_event_get_header(event, "unique-id");
if ((extra_cols = parse_presence_data_cols(event))) {
new_sql() = switch_mprintf("update channels set call_uuid=uuid,%s where call_uuid='%s'",
extra_cols,
switch_event_get_header_nil(event, "channel-call-uuid"));
if (uuid && (extra_cols = parse_presence_data_cols(event))) {
new_sql() = switch_mprintf("update channels set %s where uuid='%s'", extra_cols, uuid);
free(extra_cols);
} else {
}
new_sql() = switch_mprintf("update channels set call_uuid=uuid where call_uuid='%s'",
switch_event_get_header_nil(event, "channel-call-uuid"));
}
new_sql() = switch_mprintf("delete from calls where (caller_uuid='%q' or callee_uuid='%q')",
uuid, uuid);
cuuid, cuuid);
break;
}
case SWITCH_EVENT_SHUTDOWN:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论