]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8735 display update support for Panasonic devices
authorFrançois <fdelawarde@wirelessmundi.com>
Fri, 15 Jan 2016 11:00:57 +0000 (12:00 +0100)
committerFrançois <fdelawarde@wirelessmundi.com>
Fri, 15 Jan 2016 11:00:57 +0000 (12:00 +0100)
src/mod/endpoints/mod_sofia/mod_sofia.c

index d5d72012ad1a06855286037e6515718e06c458b8..bc60ecb89b0779711660117cb81ed1ecff4b854b 100644 (file)
@@ -1796,7 +1796,18 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
                                                        nua_update(tech_pvt->nh,
                                                                           NUTAG_SESSION_TIMER(tech_pvt->session_timeout),
                                                                           NUTAG_SESSION_REFRESHER(tech_pvt->session_refresher),
-                                               TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
+                                                                          TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
+                                                                          TAG_IF(!zstr(tech_pvt->route_uri), NUTAG_PROXY(tech_pvt->route_uri)),
+                                                                          TAG_IF(!zstr_buf(message), SIPTAG_HEADER_STR(message)),
+                                                                          TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_END());
+                                               } else if ((ua && (switch_stristr("Panasonic", ua)))) {
+                                                       snprintf(message, sizeof(message), "P-Asserted-Identity: \"%s\" <sip:%s@%s>", name, number, tech_pvt->profile->sipip);
+
+                                                       sofia_set_flag_locked(tech_pvt, TFLAG_UPDATING_DISPLAY);
+                                                       nua_update(tech_pvt->nh,
+                                                                          NUTAG_SESSION_TIMER(tech_pvt->session_timeout),
+                                                                          NUTAG_SESSION_REFRESHER(tech_pvt->session_refresher),
+                                                                          TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)),
                                                                           TAG_IF(!zstr(tech_pvt->route_uri), NUTAG_PROXY(tech_pvt->route_uri)),
                                                                           TAG_IF(!zstr_buf(message), SIPTAG_HEADER_STR(message)),
                                                                           TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_END());