]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
The DTMF attended transfer feature cannot callback a chan_dahdi BRI phone.
authorRichard Mudgett <rmudgett@digium.com>
Sat, 8 Jan 2011 01:11:31 +0000 (01:11 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Sat, 8 Jan 2011 01:11:31 +0000 (01:11 +0000)
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/branches/1.8@301134 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_dahdi.c

index ccd41017822c3cc1c6ceddcf62b6d6c2cbc5fdc4..7bb664535d75c87f23aac421994975f711fa32b5 100644 (file)
@@ -12773,6 +12773,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 */
@@ -13083,11 +13088,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
@@ -13136,8 +13144,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;