aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 7b378a2bd..ee49201aa 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -528,7 +528,8 @@ static int mwi_expiry = DEFAULT_MWI_EXPIRY;
#define DEFAULT_QUALIFY_PEERS 1
-#define CALLERID_UNKNOWN "Unknown"
+#define CALLERID_UNKNOWN "Anonymous"
+#define FROMDOMAIN_INVALID "anonymous.invalid"
#define DEFAULT_MAXMS 2000 /*!< Qualification: Must be faster than 2 seconds by default */
#define DEFAULT_QUALIFYFREQ 60 * 1000 /*!< Qualification: How often to check for the host to be up */
@@ -10156,6 +10157,7 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho
char tmp_l[SIPBUFSIZE/2]; /* build a local copy of 'l' if needed */
const char *l = NULL; /* XXX what is this, exactly ? */
const char *n = NULL; /* XXX what is this, exactly ? */
+ const char *d = NULL; /* domain in from header */
const char *urioptions = "";
int ourport;
@@ -10181,6 +10183,7 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho
snprintf(p->lastmsg, sizeof(p->lastmsg), "Init: %s", sip_methods[sipmethod].text);
+ d = S_OR(p->fromdomain, ast_inet_ntoa(p->ourip.sin_addr));
if (p->owner) {
l = p->owner->cid.cid_num;
n = p->owner->cid.cid_name;
@@ -10190,6 +10193,7 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho
((p->callingpres & AST_PRES_RESTRICTION) != AST_PRES_ALLOWED)) {
l = CALLERID_UNKNOWN;
n = l;
+ d = FROMDOMAIN_INVALID;
}
if (ast_strlen_zero(l))
l = default_callerid;
@@ -10216,9 +10220,9 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho
ourport = ntohs(p->ourip.sin_port);
if (!sip_standard_port(p->socket.type, ourport) && ast_strlen_zero(p->fromdomain))
- snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s:%d>;tag=%s", n, l, ast_inet_ntoa(p->ourip.sin_addr), ourport, p->tag);
+ snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s:%d>;tag=%s", n, l, d, ourport, p->tag);
else
- snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s>;tag=%s", n, l, S_OR(p->fromdomain, ast_inet_ntoa(p->ourip.sin_addr)), p->tag);
+ snprintf(from, sizeof(from), "\"%s\" <sip:%s@%s>;tag=%s", n, l, d, p->tag);
/* If we're calling a registered SIP peer, use the fullcontact to dial to the peer */
if (!ast_strlen_zero(p->fullcontact)) {