Mask remote party identity in SIP presence if channel var presence_privacy=true
This commit is contained in:
parent
0675b59beb
commit
8d8e5a23a6
|
@ -1571,8 +1571,12 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char *
|
|||
stream.write_function(&stream, "<param pname=\"+sip.rendering\" pvalue=\"%s\"/>\n",
|
||||
!strcasecmp(event_status, "hold") ? "no" : "yes");
|
||||
stream.write_function(&stream, "</target>\n</local>\n");
|
||||
stream.write_function(&stream, "<remote>\n<identity display=\"%s\">sip:%s@%s</identity>\n", clean_from_user, clean_from_user,
|
||||
host);
|
||||
if (switch_true(switch_event_get_header(helper->event, "Presence-Privacy"))) {
|
||||
stream.write_function(&stream, "<remote>\n<identity display=\"Anonymous\">sip:anonymous@anonymous.invalid</identity>\n");
|
||||
} else {
|
||||
stream.write_function(&stream, "<remote>\n<identity display=\"%s\">sip:%s@%s</identity>\n", clean_from_user, clean_from_user,
|
||||
host);
|
||||
}
|
||||
stream.write_function(&stream, "<target uri=\"sip:**%s@%s\"/>\n", clean_to_user, host);
|
||||
stream.write_function(&stream, "</remote>\n");
|
||||
} else if (!strcasecmp(proto, "park")) {
|
||||
|
|
|
@ -626,6 +626,11 @@ SWITCH_DECLARE(void) switch_channel_perform_presence(switch_channel_t *channel,
|
|||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Calling-File", file);
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Calling-Function", func);
|
||||
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Presence-Calling-Line", "%d", line);
|
||||
|
||||
if (switch_true(switch_channel_get_variable(channel, "presence_privacy"))) {
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Presence-Privacy", "true");
|
||||
}
|
||||
|
||||
switch_event_fire(&event);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue