diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-27 01:24:38 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-27 01:24:38 +0000 |
commit | 270bf522415af743e1b0f7f0cfa3227e0bfc2967 (patch) | |
tree | ca7051f40bf0bf4cdd59b3c968a68faf63031a3d /channels/chan_dahdi.c | |
parent | 2e5e9fcffd24d54bfb48d0cd000c478db88a540e (diff) |
Merged revisions 203909 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r203909 | rmudgett | 2009-06-26 20:07:52 -0500 (Fri, 26 Jun 2009) | 23 lines
Merged revisions 203908 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r203908 | rmudgett | 2009-06-26 19:55:12 -0500 (Fri, 26 Jun 2009) | 16 lines
The ISDN CPE side should not exclusively pick B channels normally.
Before this patch, Asterisk unconditionally picked B channels exclusively
on the CPE side and normally allowed alternative B channels on the network
side. Now Asterisk does the opposite.
Reasons for the CPE side to normally not pick B channels exclusively:
* For CPE point-to-multipoint mode (i.e. phone side), the CPE side does
not have enough information to exclusively pick B channels. (There may be
other devices on the line.)
* Q.931 gives preference to the network side picking B channels.
* Some telcos require the CPE side to not pick B channels exclusively.
(closes issue #14383)
Reported by: mbrancaleoni
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@203941 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r-- | channels/chan_dahdi.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 3dcbd3a42..15bec26a7 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -3648,15 +3648,12 @@ static int dahdi_call(struct ast_channel *ast, char *rdest, int timeout) pri_set_crv(p->pri->pri, p->call, p->channel, 0); } p->digital = IS_DIGITAL(ast->transfercapability); - /* Add support for exclusive override */ - if (p->priexclusive) + + /* Should the picked channel be used exclusively? */ + if (p->priexclusive || p->pri->nodetype == PRI_NETWORK) { exclusive = 1; - else { - /* otherwise, traditional behavior */ - if (p->pri->nodetype == PRI_NETWORK) - exclusive = 0; - else - exclusive = 1; + } else { + exclusive = 0; } pri_sr_set_channel(sr, p->bearer ? PVT_TO_CHANNEL(p->bearer) : PVT_TO_CHANNEL(p), exclusive, 1); |