]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
we can now make 30 channels on a PRI (before we forgot chan 31..)
authorChristian Richter <christian.richter@beronet.com>
Mon, 2 Apr 2007 07:12:24 +0000 (07:12 +0000)
committerChristian Richter <christian.richter@beronet.com>
Mon, 2 Apr 2007 07:12:24 +0000 (07:12 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@59623 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/misdn/isdn_lib.c

index 73ee200963a884106a29cd2bf55e4d8a90035fac..194b07bd7515496f9bd4ce44514df06bbf3c809b 100644 (file)
@@ -429,9 +429,11 @@ static int find_free_chan_in_stack(struct misdn_stack *stack, int channel, int d
        }
        
        channel--;
+
+       int bnums=stack->pri?stack->b_num:stack->b_num-1;
  
        if (dec) {
-               for (i = stack->b_num-1; i >=0; i--) {
+               for (i = bnums; i >=0; i--) {
                        if (i != 15 && (channel < 0 || i == channel)) { /* skip E1 Dchannel ;) and work with chan preselection */
                                if (!stack->channels[i]) {
                                        cb_log (3, stack->port, " --> found chan%s: %d\n", channel>=0?" (preselected)":"", i+1);
@@ -440,7 +442,7 @@ static int find_free_chan_in_stack(struct misdn_stack *stack, int channel, int d
                        }
                }
        } else {
-               for (i = 0; i < stack->b_num; i++) {
+               for (i = 0; i <= bnums; i++) {
                        if (i != 15 && (channel < 0 || i == channel)) { /* skip E1 Dchannel ;) and work with chan preselection */
                                if (!stack->channels[i]) {
                                        cb_log (3, stack->port, " --> found chan%s: %d\n", channel>=0?" (preselected)":"", i+1);