Merged revisions 301134 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Sat, 8 Jan 2011 01:13:58 +0000 (01:13 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Sat, 8 Jan 2011 01:13:58 +0000 (01:13 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r301134 | rmudgett | 2011-01-07 19:11:31 -0600 (Fri, 07 Jan 2011) | 7 lines

  The DTMF attended transfer feature cannot callback a chan_dahdi BRI phone.

  The DAHDI ISDN channel name is not dialable.

  Make a channel name like DAHDI/i3/400-12 dialable when the sequence number
  is stripped off of the name.
........

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

channels/chan_dahdi.c

index 40967d6..4519294 100644 (file)
@@ -12826,6 +12826,11 @@ static int is_group_or_channel_match(struct dahdi_pvt *p, int span, ast_group_t
                if (!p->pri || p->pri->span != span) {
                        return 0;
                }
+               if (!groupmatch && channelmatch == -1) {
+                       /* Match any group since it only needs to be on the PRI span. */
+                       *groupmatched = 1;
+                       return 1;
+               }
        }
 #endif /* defined(HAVE_PRI) */
        /* check group matching */
@@ -13136,11 +13141,14 @@ static struct dahdi_pvt *determine_starting_point(const char *data, struct dahdi
         * data is ---v
         * Dial(DAHDI/pseudo[/extension[/options]])
         * Dial(DAHDI/<channel#>[c|r<cadance#>|d][/extension[/options]])
-        * Dial(DAHDI/[i<span>-](g|G|r|R)<group#(0-63)>[c|r<cadance#>|d][/extension[/options]])
         * Dial(DAHDI/<subdir>!<channel#>[c|r<cadance#>|d][/extension[/options]])
+        * Dial(DAHDI/i<span>[/extension[/options]])
+        * Dial(DAHDI/[i<span>-](g|G|r|R)<group#(0-63)>[c|r<cadance#>|d][/extension[/options]])
         *
         * i - ISDN span channel restriction.
         *     Used by CC to ensure that the CC recall goes out the same span.
+        *     Also to make ISDN channel names dialable when the sequence number
+        *     is stripped off.  (Used by DTMF attended transfer feature.)
         *
         * g - channel group allocation search forward
         * G - channel group allocation search backward
@@ -13189,8 +13197,8 @@ static struct dahdi_pvt *determine_starting_point(const char *data, struct dahdi
                /* Remove the ISDN span channel restriction specifier. */
                s = strchr(args.group, '-');
                if (!s) {
-                       ast_log(LOG_WARNING, "Bad ISDN span format for data %s\n", data);
-                       return NULL;
+                       /* Search all groups since we are ISDN span restricted. */
+                       return iflist;
                }
                args.group = s + 1;
                res = 0;