]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
National prefix inserted even when caller ID not available
authorDavid Vossel <dvossel@digium.com>
Wed, 15 Apr 2009 22:08:40 +0000 (22:08 +0000)
committerDavid Vossel <dvossel@digium.com>
Wed, 15 Apr 2009 22:08:40 +0000 (22:08 +0000)
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

channels/chan_dahdi.c

index e1f9e437c4414757099882b8d0cb122e91b2f9de..76c701a91e6e5c600da0f0186e3bd32cdaa1a258 100644 (file)
@@ -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);