Merged revisions 282608 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 18 Aug 2010 07:50:07 +0000 (07:50 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 18 Aug 2010 07:50:07 +0000 (07:50 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r282608 | tilghman | 2010-08-18 02:49:04 -0500 (Wed, 18 Aug 2010) | 16 lines

  Merged revisions 282607 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ........
    r282607 | tilghman | 2010-08-18 02:43:14 -0500 (Wed, 18 Aug 2010) | 9 lines

    Don't warn on callerid when completely text, instead of numeric with localdialplan prefixes.

    (closes issue #16770)
     Reported by: jamicque
     Patches:
           20100413__issue16770.diff.txt uploaded by tilghman (license 14)
           20100811__issue16770.diff.txt uploaded by tilghman (license 14)
     Tested by: jamicque
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@282609 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/sig_pri.c

index 6878d81..1b493e1 100644 (file)
@@ -5917,7 +5917,20 @@ int sig_pri_call(struct sig_pri_chan *p, struct ast_channel *ast, char *rdest, i
        l = NULL;
        n = NULL;
        if (!p->hidecallerid) {
-               l = ast->connected.id.number.valid ? ast->connected.id.number.str : NULL;
+               if (ast->connected.id.number.valid) {
+                       /* If we get to the end of this loop without breaking, there's no
+                        * calleridnum.  This is done instead of testing for "unknown" or
+                        * the thousands of other ways that the calleridnum could be
+                        * invalid. */
+                       for (l = ast->connected.id.number.str; l && *l; l++) {
+                               if (strchr("0123456789", *l)) {
+                                       l = ast->connected.id.number.str;
+                                       break;
+                               }
+                       }
+               } else {
+                       l = NULL;
+               }
                if (!p->hidecalleridname) {
                        n = ast->connected.id.name.valid ? ast->connected.id.name.str : NULL;
                }