[asterisk-commits] dvossel: branch 1.6.0 r206947 - in /branches/1.6.0: ./ channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jul 17 11:18:53 CDT 2009
Author: dvossel
Date: Fri Jul 17 11:18:49 2009
New Revision: 206947
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=206947
Log:
Merged revisions 206939 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r206939 | dvossel | 2009-07-17 11:13:22 -0500 (Fri, 17 Jul 2009) | 20 lines
Merged revisions 206938 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r206938 | dvossel | 2009-07-17 11:05:06 -0500 (Fri, 17 Jul 2009) | 14 lines
SIP incorrect From: header information when callpres is prohib
Some ITSP make use of the "Anonymous" display name to detect a
requirement to withhold caller id across the PSTN. This does
not work if the display name is "Unknown".
(closes issue #14465)
Reported by: Nick_Lewis
Patches:
chan_sip.c-callerpres.patch uploaded by Nick (license 657)
chan_sip.c-callerpres_trunk.patch uploaded by dvossel (license 671)
Tested by: Nick_Lewis, dvossel
........
................
Modified:
branches/1.6.0/ (props changed)
branches/1.6.0/channels/chan_sip.c
Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.0/channels/chan_sip.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.0/channels/chan_sip.c?view=diff&rev=206947&r1=206946&r2=206947
==============================================================================
--- branches/1.6.0/channels/chan_sip.c (original)
+++ branches/1.6.0/channels/chan_sip.c Fri Jul 17 11:18:49 2009
@@ -221,7 +221,8 @@
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
-#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 */
@@ -9239,6 +9240,7 @@
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;
@@ -9264,6 +9266,7 @@
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;
@@ -9273,6 +9276,7 @@
((p->callingpres & AST_PRES_RESTRICTION) != AST_PRES_ALLOWED)) {
l = CALLERID_UNKNOWN;
n = l;
+ d = FROMDOMAIN_INVALID;
}
if (ast_strlen_zero(l))
l = default_callerid;
@@ -9299,9 +9303,9 @@
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)) {
More information about the asterisk-commits
mailing list