Fix channel selection for PTMP/NT-Mode

Channel selection in that mode must be forced, so that the TE nay not
select a different channel. In that mode the TE cannot know what
channel is allocated, so it cannot select a different channel.

Eumex PBX rejects calls without this fix.
This commit is contained in:
Andreas Eversberg 2023-08-19 10:55:19 +02:00
parent 3d385fd095
commit b4f5e950fc
2 changed files with 8 additions and 1 deletions

View File

@ -74,6 +74,9 @@ static void default_out_channel(isdn_t *isdn_ep)
{
struct select_channel *selchannel;
if (isdn_ep->ntmode)
isdn_ep->out_channel_exclusive = 1;
selchannel = calloc(1, sizeof(struct select_channel));
if (isdn_ep->ntmode)
selchannel->channel = CHANNEL_FREE;

View File

@ -100,11 +100,14 @@ static void print_help()
printf(" Channel selection list for all outgoing calls to the interface.\n");
printf(" A free channels is searched in order of appearance.\n");
printf(" force - Forces the selected port with no acceptable alternative.\n");
printf(" -> this will be automatically set for multipoint NT-mode ports\n");
printf(" -> this must be used for multipoint NT-mode ports\n");
printf(" <number>[,...] - List of channels to search.\n");
printf(" free - Select any free channel\n");
printf(" any - On outgoing calls, signal 'any channel acceptable'. (see DSS1)\n");
printf(" no - Signal 'no channel available' aka 'call waiting'. (see DSS1)\n");
printf(" Default for multipoint NT-Mode: 'force,free,no'\n");
printf(" Default for point-to-point NT-Mode: 'force,free'\n");
printf(" Default for TE-Mode: 'any'\n");
printf(" --channel-in [<number>][,...][,free]\n");
printf(" Give list of channels to select for calls from ISDN\n");
printf(" Channel selection list for all incoming calls from the interface.\n");
@ -112,6 +115,7 @@ static void print_help()
printf(" If any channel was requested, the first free channel found is selected.\n");
printf(" <number>[,...] - List of channels to accept.\n");
printf(" free - Accept any free channel\n");
printf(" Default: 'free'\n");
printf(" --timeouts <setup>,<overlap>,<proceeding>,<alerting>,<disconnect>\n");
printf(" Alter ISDN protocol times.\n");