]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8879 #resolve [SIP UPDATE and attended transfer]
authorBrian West <brian@freeswitch.org>
Fri, 26 Feb 2016 23:44:11 +0000 (17:44 -0600)
committerBrian West <brian@freeswitch.org>
Fri, 26 Feb 2016 23:44:33 +0000 (17:44 -0600)
src/mod/endpoints/mod_sofia/mod_sofia.c
src/mod/endpoints/mod_sofia/mod_sofia.h

index 2a742be19f60d754c09b3eca330ec324a873513b..9f5cd56af72b3de551565a1dadb2888192c36d8e 100644 (file)
@@ -1777,41 +1777,11 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
                                                                           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("aastra", ua) && !switch_stristr("Intelligate", 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());
-                                               } else if ((ua && (switch_stristr("cisco/spa50", ua) || switch_stristr("cisco/spa525", 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());
-                                               } else if ((ua && (switch_stristr("Yealink", 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());
-                                               } else if ((ua && (switch_stristr("Panasonic", ua)))) {
-                                                       snprintf(message, sizeof(message), "P-Asserted-Identity: \"%s\" <sip:%s@%s>", name, number, tech_pvt->profile->sipip);
+                                               } else if (ua && ((switch_stristr("aastra", ua) && !switch_stristr("Intelligate", ua)) ||
+                                                                                 (switch_stristr("cisco/spa50", ua) || switch_stristr("cisco/spa525", ua)) ||
+                                                                                 switch_stristr("Yealink", ua) ||
+                                                                                 switch_stristr("Panasonic", ua))) {
+                                                       snprintf(message, sizeof(message), "P-Asserted-Identity: \"%s\" <sip:%s@%s>", name, number, tech_pvt->profile->printable_sipip);
 
                                                        sofia_set_flag_locked(tech_pvt, TFLAG_UPDATING_DISPLAY);
                                                        nua_update(tech_pvt->nh,
index dc066471519504f5a3ebd416208ce80948a0675e..582c69e5342e3e94c00cc0191cea043600f94e49 100644 (file)
@@ -598,6 +598,7 @@ struct sofia_profile {
 
        char *sdp_username;
        char *sipip;
+       char *printable_sipip;
        char *extsipip;
        char *url;
        char *public_url;