[asterisk-commits] dvossel: branch 1.6.2 r225035 - in /branches/1.6.2: ./ channels/ configs/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Oct 21 10:14:27 CDT 2009
Author: dvossel
Date: Wed Oct 21 10:14:06 2009
New Revision: 225035
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=225035
Log:
Merged revisions 225033 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r225033 | dvossel | 2009-10-21 09:39:10 -0500 (Wed, 21 Oct 2009) | 27 lines
Merged revisions 225032 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r225032 | dvossel | 2009-10-21 09:37:04 -0500 (Wed, 21 Oct 2009) | 20 lines
IAX/SIP shrinkcallerid option
The shrinking of caller id removes '(', ' ', ')', non-trailing '.',
and '-' from the string. This means values such as 555.5555 and
test-test result in 555555 and testtest. There are instances,
such as Skype integration, where a specific value is passed via
caller id that must be preserved unmodified. This patch makes
the shrinking of caller id optional in chan_sip and chan_iax in
order to support such cases. By default this option is on to
preserve previous expected behavior.
(closes issue #15940)
Reported by: dimas
Patches:
v2-15940.patch uploaded by dimas (license 88)
15940_shrinkcallerid_trunk.c uploaded by dvossel (license 671)
Tested by: dvossel
Review: https://reviewboard.asterisk.org/r/408/
........
................
Modified:
branches/1.6.2/ (props changed)
branches/1.6.2/channels/chan_iax2.c
branches/1.6.2/channels/chan_sip.c
branches/1.6.2/configs/iax.conf.sample
branches/1.6.2/configs/sip.conf.sample
Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.2/channels/chan_iax2.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_iax2.c?view=diff&rev=225035&r1=225034&r2=225035
==============================================================================
--- branches/1.6.2/channels/chan_iax2.c (original)
+++ branches/1.6.2/channels/chan_iax2.c Wed Oct 21 10:14:06 2009
@@ -379,6 +379,7 @@
IAX_ALLOWFWDOWNLOAD = (1 << 26), /*!< Allow the FWDOWNL command? */
IAX_IMMEDIATE = (1 << 27), /*!< Allow immediate off-hook to extension s */
IAX_FORCE_ENCRYPT = (1 << 28), /*!< Forces call encryption, if encryption not possible hangup */
+ IAX_SHRINKCALLERID = (1 << 29), /*!< Turn on and off caller id shrinking */
};
static int global_rtautoclear = 120;
@@ -7143,7 +7144,9 @@
if (ies->called_number)
ast_string_field_set(iaxs[callno], exten, ies->called_number);
if (ies->calling_number) {
- ast_shrink_phone_number(ies->calling_number);
+ if (ast_test_flag(&globalflags, IAX_SHRINKCALLERID)) {
+ ast_shrink_phone_number(ies->calling_number);
+ }
ast_string_field_set(iaxs[callno], cid_num, ies->calling_number);
}
if (ies->calling_name)
@@ -12472,7 +12475,8 @@
/* Reset Global Flags */
memset(&globalflags, 0, sizeof(globalflags));
ast_set_flag(&globalflags, IAX_RTUPDATE);
-
+ ast_set_flag(&globalflags, IAX_SHRINKCALLERID);
+
#ifdef SO_NO_CHECK
nochecksums = 0;
#endif
@@ -12724,9 +12728,17 @@
if (sscanf(v->value, "%10hu", &global_maxcallno_nonval) != 1) {
ast_log(LOG_WARNING, "maxcallnumbers_nonvalidated must be set to a valid number. %s is not valid at line %d.\n", v->value, v->lineno);
}
- } else if(!strcasecmp(v->name, "calltokenoptional")) {
+ } else if (!strcasecmp(v->name, "calltokenoptional")) {
if (add_calltoken_ignore(v->value)) {
ast_log(LOG_WARNING, "Invalid calltokenoptional address range - '%s' line %d\n", v->value, v->lineno);
+ }
+ } else if (!strcasecmp(v->name, "shrinkcallerid")) {
+ if (ast_true(v->value)) {
+ ast_set_flag((&globalflags), IAX_SHRINKCALLERID);
+ } else if (ast_false(v->value)) {
+ ast_clear_flag((&globalflags), IAX_SHRINKCALLERID);
+ } else {
+ ast_log(LOG_WARNING, "shrinkcallerid value %s is not valid at line %d.\n", v->value, v->lineno);
}
}/*else if (strcasecmp(v->name,"type")) */
/* ast_log(LOG_WARNING, "Ignoring %s\n", v->name); */
Modified: branches/1.6.2/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_sip.c?view=diff&rev=225035&r1=225034&r2=225035
==============================================================================
--- branches/1.6.2/channels/chan_sip.c (original)
+++ branches/1.6.2/channels/chan_sip.c Wed Oct 21 10:14:06 2009
@@ -1087,6 +1087,7 @@
static int global_rtpkeepalive; /*!< Send RTP keepalives */
static int global_reg_timeout;
static int global_regattempts_max; /*!< Registration attempts before giving up */
+static int global_shrinkcallerid; /*!< enable or disable shrinking of caller id */
static int global_callcounter; /*!< Enable call counters for all devices. This is currently enabled by setting the peer
call-limit to INT_MAX. When we remove the call-limit from the code, we can make it
with just a boolean flag in the device structure */
@@ -13484,7 +13485,7 @@
char *tmp = ast_strdupa(rpid_num); /* XXX the copy can be done later */
if (!ast_strlen_zero(calleridname))
ast_string_field_set(p, cid_name, calleridname);
- if (ast_is_shrinkable_phonenumber(tmp))
+ if (global_shrinkcallerid && ast_is_shrinkable_phonenumber(tmp))
ast_shrink_phone_number(tmp);
ast_string_field_set(p, cid_num, tmp);
}
@@ -13602,7 +13603,7 @@
}
if (!ast_strlen_zero(peer->cid_num)) {
char *tmp = ast_strdupa(peer->cid_num);
- if (ast_is_shrinkable_phonenumber(tmp))
+ if (global_shrinkcallerid && ast_is_shrinkable_phonenumber(tmp))
ast_shrink_phone_number(tmp);
ast_string_field_set(p, cid_num, tmp);
}
@@ -13718,7 +13719,7 @@
<sip:8164444422;phone-context=+1 at 1.2.3.4:5060;user=phone;tag=SDadkoa01-gK0c3bdb43>
*/
tmp = strsep(&tmp, ";");
- if (ast_is_shrinkable_phonenumber(tmp))
+ if (global_shrinkcallerid && ast_is_shrinkable_phonenumber(tmp))
ast_shrink_phone_number(tmp);
ast_string_field_set(p, cid_num, tmp);
}
@@ -23919,6 +23920,7 @@
global_t1min = DEFAULT_T1MIN;
global_qualifyfreq = DEFAULT_QUALIFYFREQ;
global_t38_maxdatagram = -1;
+ global_shrinkcallerid = 1;
sip_cfg.matchexterniplocally = DEFAULT_MATCHEXTERNIPLOCALLY;
@@ -24369,6 +24371,14 @@
ast_log(LOG_WARNING, "Invalid pokepeers '%s' at line %d of %s\n", v->value, v->lineno, config);
global_qualify_peers = DEFAULT_QUALIFY_PEERS;
}
+ } else if (!strcasecmp(v->name, "shrinkcallerid")) {
+ if (ast_true(v->value)) {
+ global_shrinkcallerid = 1;
+ } else if (ast_false(v->value)) {
+ global_shrinkcallerid = 0;
+ } else {
+ ast_log(LOG_WARNING, "shrinkcallerid value %s is not valid at line %d.\n", v->value, v->lineno);
+ }
}
}
Modified: branches/1.6.2/configs/iax.conf.sample
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/configs/iax.conf.sample?view=diff&rev=225035&r1=225034&r2=225035
==============================================================================
--- branches/1.6.2/configs/iax.conf.sample (original)
+++ branches/1.6.2/configs/iax.conf.sample Wed Oct 21 10:14:06 2009
@@ -380,6 +380,15 @@
;10.1.1.0/255.255.255.0 = 24
;10.1.2.0/255.255.255.0 = 32
;
+
+; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not
+; in square brackets. For example, the caller id value 555.5555 becomes 5555555
+; when this option is enabled. Disabling this option results in no modification
+; of the caller id value, which is necessary when the caller id represents something
+; that must be preserved. This option can only be used in the [general] section.
+; By default this option is on.
+;
+;shrinkcallerid=yes ; on by default
; Guest sections for unauthenticated connection attempts. Just specify an
; empty secret, or provide no secret section.
Modified: branches/1.6.2/configs/sip.conf.sample
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/configs/sip.conf.sample?view=diff&rev=225035&r1=225034&r2=225035
==============================================================================
--- branches/1.6.2/configs/sip.conf.sample (original)
+++ branches/1.6.2/configs/sip.conf.sample Wed Oct 21 10:14:06 2009
@@ -296,6 +296,15 @@
;contactdeny=0.0.0.0/0.0.0.0 ; Use contactpermit and contactdeny to
;contactpermit=172.16.0.0/255.255.0.0 ; restrict at what IPs your users may
; register their phones.
+
+; The shrinkcallerid function removes '(', ' ', ')', non-trailing '.', and '-' not
+; in square brackets. For example, the caller id value 555.5555 becomes 5555555
+; when this option is enabled. Disabling this option results in no modification
+; of the caller id value, which is necessary when the caller id represents something
+; that must be preserved. This option can only be used in the [general] section.
+; By default this option is on.
+;
+;shrinkcallerid=yes ; on by default
;
; If regcontext is specified, Asterisk will dynamically create and destroy a
More information about the asterisk-commits
mailing list