summaryrefslogtreecommitdiffstats
path: root/interface.c
diff options
context:
space:
mode:
authorAndreas Eversberg2010-11-28 08:53:32 +0100
committerAndreas Eversberg2010-12-13 09:11:56 +0100
commita24ae098bdd5dd4687d984095c18acc284b6ab26 (patch)
treecf52c64d47d3ee1c0d6eaf89098a22f98f4150f8 /interface.c
parentRemove the last commit, because it was in the wrong branch. (diff)
downloadlcr-a24ae098bdd5dd4687d984095c18acc284b6ab26.tar.gz
lcr-a24ae098bdd5dd4687d984095c18acc284b6ab26.tar.xz
lcr-a24ae098bdd5dd4687d984095c18acc284b6ab26.zip
Fixed channel selection on outgoing calls on NT-mode multipoint
On a multipoint bus, it is required to assign a channel with no other alternative allowed. This is required, because an individual phone on the bus may not choose a different channel, while other phones accept the indicated channel. Also an individual phone does not have the information about other available channels. On a point-to-point configuration it is possible anyway. In this multipoint case, the channel assignment is now forced automatically, even if the 'force' keyword is not specified in the "out-channel" of interface.conf. Additionally "lcradmin portinfo" shows the channel selection settings now.
Diffstat (limited to 'interface.c')
-rw-r--r--interface.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/interface.c b/interface.c
index 1495d3b..a312e4e 100644
--- a/interface.c
+++ b/interface.c
@@ -1127,7 +1127,8 @@ struct interface_param interface_param[] = {
"Channel selection list for all outgoing calls to the interface.\n"
"A free channels is searched in order of appearance.\n"
"This parameter must follow a 'port' parameter.\n"
- " force - Forces the selected port with no acceptable alternative (see DSS1).\n"
+ " force - Forces the selected port with no acceptable alternative (see Q.931).\n"
+ " -> this will be automatically set for multipoint (ptmp) NT-mode ports\n"
" <number>[,...] - List of channels to search.\n"
" free - Select any free channel\n"
" any - On outgoing calls, signal 'any channel acceptable'. (see DSS1)\n"
@@ -1434,6 +1435,9 @@ static void set_defaults(struct interface_port *ifport)
default_out_channel(ifport);
if (!ifport->in_channel)
default_in_channel(ifport);
+ /* must force the channel on PTMP/NT ports */
+ if (!ifport->mISDNport->ptp && ifport->mISDNport->ntmode)
+ ifport->channel_force = 1;
/* default is_tones */
if (ifport->interface->is_tones)
ifport->mISDNport->tones = (ifport->interface->is_tones==IS_YES);