Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (17066 => 17067)
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c 2010-03-22 16:39:15 UTC (rev 17066)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c 2010-03-22 17:28:22 UTC (rev 17067)
@@ -6335,23 +6335,22 @@
char cid[512] = "";
char *str;
char *p = NULL;
- const char *user = NULL, *host = NULL;
+ const char *user = NULL, *host = NULL, *from_user = NULL, *from_host = NULL;
if (sip->sip_to && sip->sip_to->a_url) {
user = sip->sip_to->a_url->url_user;
host = sip->sip_to->a_url->url_host;
}
- if (!user || !host) {
- if (sip->sip_from && sip->sip_from->a_url) {
- if (!user)
- user = sip->sip_from->a_url->url_user;
- if (!host)
- host = sip->sip_from->a_url->url_host;
- }
+ if (sip->sip_from && sip->sip_from->a_url) {
+ from_user = sip->sip_from->a_url->url_user;
+ from_host = sip->sip_from->a_url->url_host;
}
- if (user && host) {
+ if (!user) user = from_user;
+ if (!host) user = from_host;
+
+ if (user && host && from_user && !strcmp(user, from_user)) {
if ((p = strchr(call_info_str, ';'))) {
p++;
}