From 0c4f85111f491b4929609ad42505167b6621183d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Zaprza=C5=82a?= Date: Tue, 3 Mar 2015 13:05:23 +0100 Subject: [PATCH] FS-7337: Add support for Remote-Party-ID header in UPDATE request. --- src/mod/endpoints/mod_sofia/sofia.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 230f3789be..4dc4557542 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -1136,6 +1136,7 @@ void sofia_update_callee_id(switch_core_session_t *session, sofia_profile_t *pro } if (!fs) { + sip_remote_party_id_t *rpid; if ((passerted = sip_p_asserted_identity(sip))) { if (passerted->paid_url->url_user) { number = passerted->paid_url->url_user; @@ -1151,6 +1152,21 @@ void sofia_update_callee_id(switch_core_session_t *session, sofia_profile_t *pro end_of(name) = '\0'; } } + } else if ((rpid = sip_remote_party_id(sip))) { + if (rpid->rpid_url->url_user) { + number = rpid->rpid_url->url_user; + } + if (!zstr(rpid->rpid_display)) { + dup = strdup(rpid->rpid_display); + if (*dup == '"') { + name = dup + 1; + } else { + name = dup; + } + if (end_of(name) == '"') { + end_of(name) = '\0'; + } + } } } @@ -1510,6 +1526,7 @@ static void our_sofia_event_callback(nua_event_t event, sofia_handle_sip_i_info(nua, profile, nh, session, sip, de, tags); break; case nua_i_update: + sofia_update_callee_id(session, profile, sip, SWITCH_TRUE); break; case nua_r_update: if (session && tech_pvt && locked) {