mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-23 20:51:58 +00:00
if user has set presence_id, don't override it
This commit is contained in:
@@ -4358,7 +4358,10 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
|
||||
if (tech_pvt->local_url) {
|
||||
switch_channel_set_variable(nchannel, "sip_local_url", tech_pvt->local_url);
|
||||
if (profile->pres_type) {
|
||||
switch_channel_set_variable(nchannel, "presence_id", tech_pvt->local_url);
|
||||
const char *presence_id = switch_channel_get_variable(nchannel, "presence_id");
|
||||
if (zstr(presence_id)) {
|
||||
switch_channel_set_variable(nchannel, "presence_id", tech_pvt->local_url);
|
||||
}
|
||||
}
|
||||
}
|
||||
switch_channel_set_variable(nchannel, "sip_destination_url", tech_pvt->dest);
|
||||
|
||||
@@ -7501,13 +7501,15 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_
|
||||
}
|
||||
|
||||
if (profile->pres_type) {
|
||||
const char *user = switch_str_nil(sip->sip_from->a_url->url_user);
|
||||
const char *host = switch_str_nil(sip->sip_from->a_url->url_host);
|
||||
|
||||
char *tmp = switch_mprintf("%s@%s", user, host);
|
||||
switch_assert(tmp);
|
||||
switch_channel_set_variable(channel, "presence_id", tmp);
|
||||
free(tmp);
|
||||
const char *presence_id = switch_channel_get_variable(channel, "presence_id");
|
||||
if (zstr(presence_id)) {
|
||||
const char *user = switch_str_nil(sip->sip_from->a_url->url_user);
|
||||
const char *host = switch_str_nil(sip->sip_from->a_url->url_host);
|
||||
char *tmp = switch_mprintf("%s@%s", user, host);
|
||||
switch_assert(tmp);
|
||||
switch_channel_set_variable(channel, "presence_id", tmp);
|
||||
free(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user