From: David Vossel Date: Wed, 15 Apr 2009 22:08:40 +0000 (+0000) Subject: National prefix inserted even when caller ID not available X-Git-Tag: 1.4.25-rc1~58 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4c6e1bd0a5eaf3e1ebc09ad77f13116c9f2fac64;p=thirdparty%2Fasterisk.git National prefix inserted even when caller ID not available When the caller ID is restricted, the expected behavior is for the caller id to be blank. In chan_dahdi, the national prefix is placed onto the callers number even if its restricted (empty) causing the caller id to be the national prefix rather than blank. (closes issue #13207) Reported by: shawkris Patches: national_prefix.diff uploaded by dvossel (license 671) Review: http://reviewboard.digium.com/r/220/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@188646 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index e1f9e437c4..76c701a91e 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -8819,6 +8819,13 @@ static char * redirectingreason2str(int redirectingreason) static void apply_plan_to_number(char *buf, size_t size, const struct dahdi_pri *pri, const char *number, const int plan) { + if (ast_strlen_zero(number)) { /* make sure a number exists so prefix isn't placed on an empty string */ + if (size) { + *buf = '\0'; + } + return; + } + switch (plan) { case PRI_INTERNATIONAL_ISDN: /* Q.931 dialplan == 0x11 international dialplan => prepend international prefix digits */ snprintf(buf, size, "%s%s", pri->internationalprefix, number);