]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3984 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 2 Apr 2012 19:37:40 +0000 (14:37 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 2 Apr 2012 19:37:40 +0000 (14:37 -0500)
src/mod/endpoints/mod_sofia/sofia_glue.c

index 72267d7ea4a6742a05ce83857a0ea0f48ac7bb4b..2531d816a35d73d638594a693fb9213d043676e8 100644 (file)
@@ -2439,11 +2439,22 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
                switch (cid_type) {
                case CID_TYPE_PID:
                        if (switch_test_flag(caller_profile, SWITCH_CPF_SCREEN)) {
-                               tech_pvt->asserted_id = switch_core_session_sprintf(tech_pvt->session, "\"%s\"<sip:%s@%s>", use_name, use_number, rpid_domain);
+                               if (zstr(tech_pvt->caller_profile->caller_id_name) || !strcasecmp(tech_pvt->caller_profile->caller_id_name, "_undef_")) {
+                                       tech_pvt->asserted_id = switch_core_session_sprintf(tech_pvt->session, "<sip:%s@%s>",
+                                                                                                                                               use_number, rpid_domain);
+                               } else {
+                                       tech_pvt->asserted_id = switch_core_session_sprintf(tech_pvt->session, "\"%s\"<sip:%s@%s>",
+                                                                                                                                               use_name, use_number, rpid_domain);
+                               }
                        } else {
-                               tech_pvt->preferred_id = switch_core_session_sprintf(tech_pvt->session, "\"%s\"<sip:%s@%s>",
-                                                                                                                                        tech_pvt->caller_profile->caller_id_name,
-                                                                                                                                        tech_pvt->caller_profile->caller_id_number, rpid_domain);
+                               if (zstr(tech_pvt->caller_profile->caller_id_name) || !strcasecmp(tech_pvt->caller_profile->caller_id_name, "_undef_")) {
+                                       tech_pvt->preferred_id = switch_core_session_sprintf(tech_pvt->session, "<sip:%s@%s>",
+                                                                                                                                                tech_pvt->caller_profile->caller_id_number, rpid_domain);
+                               } else {
+                                       tech_pvt->preferred_id = switch_core_session_sprintf(tech_pvt->session, "\"%s\"<sip:%s@%s>",
+                                                                                                                                                tech_pvt->caller_profile->caller_id_name,
+                                                                                                                                                tech_pvt->caller_profile->caller_id_number, rpid_domain);
+                               }
                        }
 
                        if (switch_test_flag(caller_profile, SWITCH_CPF_HIDE_NUMBER)) {