Freeswitch事件包含两个变量(Unique-ID
和Channel-Call-UUID
),似乎总是设置为完全相同的值:leg的唯一标识符。
我没有看到这个的目的,而Unique-ID
has a one-line documentation on FS's wiki("此渠道的呼叫腿"),Channel-Call-UUID
没有'吨。
更糟糕的是:我来到two examples,他们的价值观不同:
[...]
Channel-Call-UUID: c9bbde8b-379b-45d4-b193-3f761a44f3e2
Unique-ID: 81273088-c31f-4469-85a6-c878e42210e5
[...]
[...]
Channel-Call-UUID: ada7f3de-2374-4144-9b1d-eade29df0779
Unique-ID: f3ebca6c-d9cd-4f89-ae12-748e6c479dda
[...]
我需要能够清楚地识别代码中的一条腿,所以我想知道
答案 0 :(得分:6)
Unique-ID
”标识当前频道的分支(此值似乎始终与“Caller-Unique-ID
”相同,documented as“此频道的uuid”。Channel-Call-UUID
”是一个可用于识别已应答/已桥接频道的ID。它似乎来自频道创作者的“Unique-ID
”
b-leg(被调用者)的“Channel-Call-UUID
”值与其“Unique-ID
”不同,但它与“Other-Leg-Unique-ID
”标题的值相同。源代码(src/switch_channel.c
)支持我以前的声明:
if ((v = switch_channel_get_variable(channel, "call_uuid"))) {
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", v);
} else {
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", switch_core_session_get_uuid(channel->session));
}