From a24ae098bdd5dd4687d984095c18acc284b6ab26 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Sun, 28 Nov 2010 08:53:32 +0100 Subject: 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. --- interface.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'interface.c') 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" " [,...] - 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); -- cgit v1.2.3-55-g7522