]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 185122 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Mon, 30 Mar 2009 20:50:00 +0000 (20:50 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 30 Mar 2009 20:50:00 +0000 (20:50 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
  r185122 | rmudgett | 2009-03-30 15:41:24 -0500 (Mon, 30 Mar 2009) | 26 lines

  Merged revisions 185120 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r185120 | rmudgett | 2009-03-30 15:38:11 -0500 (Mon, 30 Mar 2009) | 19 lines

    Make chan_misdn BRI TE side normally defer channel selection to the NT side.

    Channel allocation collisions are not handled by chan_misdn very well.
    This patch simply avoids the problem for BRI only.

    For PRI, allocation collisions are still possible but less likely since
    there are simply more channels available and each end could use a different
    allocation strategy.

    misdn.conf options available:
    te_choose_channel - Use to force the TE side to allocate channels.
    method - Specify the channel allocation strategy.

    (closes issue #13488)
    Reported by: Christian_Pinedo
    Patches:
          isdn_lib.patch.txt uploaded by crich
    Tested by: crich, siepkes, festr
  ........
................

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

channels/misdn/isdn_lib.c

index 05bc68042d12089ae56a1afe84349704fa383394..e143ae5883fc6731552db9adfe6a4fe9afeaaea0 100644 (file)
@@ -925,7 +925,7 @@ static int create_process(int midev, struct misdn_bchannel *bc)
                bc->l3_id = l3_id;
                cb_log(3, stack->port, " --> new_l3id %x\n", l3_id);
        } else {
-               if (stack->ptp || bc->te_choose_channel) {
+               if ((stack->pri && stack->ptp) || bc->te_choose_channel) {
                        /* we know exactly which channels are in use */
                        if (find_free_chan_in_stack(stack, bc, bc->channel_preselected ? bc->channel : 0, bc->dec) < 0) {
                                return -1;