fli4l is mainly aiming to be used as an ISDN- and/or DSL-router. By setting OPT_ISDN='yes' the ISDN package is activated. Precondition is a ISDN-card supported by fli4l.
Default setting: OPT_ISDN='no'
Which circuits packets will trigger a dial-in is defined by ISDN_CIRC_X_ROUTE_X. Normally this uses '0.0.0.0/0' as the 'default route'. This means that all packets that leave the local net are using this circuit if it is active. If and when it is active is determined by ISDN_CIRC_X_TIMES for fli4l is doing least cost routing over a predefinded circuit (see Least-Cost-Routing - Functionality in the base documentation). If not all but only packets for a certain net should be routed over this circuit (i.e. a company net) additional nets can be given here. fli4l will then set a permanently active ISDN route over the interface set for this circuit. If a packet is sent to this net a connection will be automatically established.
As said before ISDN_CIRC_X_TIMES besides the connection costs for a circuit describes also if and when a circuit with a default route is active and can trigger a connection. 'When' is defined by the time-info, the first two elements (i.e. Mo-Fr:09-18), 'if' is given by the forth parameter lc-default-route (y/n). fli4l (res. imond) will trigger a connection to the internet provider and assure that all packets leaving the local net are routed over the circuit that is active at this time.
The standard use cases in summary:
ISDN_CIRC_%_ROUTE_N='1' ISDN_CIRC_%_ROUTE_1='0.0.0.0/0' ISDN_CIRC_%_TIMES='Mo-Su:00-24:0.0148:Y'
ISDN_CIRC_%_ROUTE_N='1' ISDN_CIRC_%_ROUTE_1='network/netmaskbits' ISDN_CIRC_%_TIMES='Mo-Su:00-24:0.0148:Y'
Some technical data about the ISDN card is specified here.
The values in the example work for a TELES 16.3 set to IO-address 0xd80 via Dip-switches. For other settings of the switches the values have to be changed.
Common error (example):
ISDN_IO='240' -- right value would be: ISDN_IO='0x240'
Using IRQ 12 eventually a PS/2 mouse has to be deactivated in BIOS. Better choose another IRQ! Good ones are mostly 5, 10 and 11.
ISDN_TYPE in principle follows the type numbers for HiSax
drivers. Exception: non-HiSax-cards like i.e. the AVM-B1. For those
the type numbers were extended (see below). The list of possible
HiSax-types is based on
linux-2.x.y/Documentation/isdn/README.HiSax.
Typ | Karte | Needed parameters |
Dummy Type-Number: | ||
0 | no driver (dummy) | none |
Typen-Numbers for HiSax drivers: | ||
1 | Teles 16.0 | irq, mem, io |
2 | Teles 8.0 | irq, mem |
3 | Teles 16.3 (non PnP) | irq, io |
4 | Creatix/Teles PnP | irq, io0 (ISAC), io1 (HSCX) |
5 | AVM A1 (Fritz) | irq, io |
5 | AVM (Fritz!Card Classic) | irq, io |
6 | ELSA PCC/PCF cards | io or nothing for autodetect (the iobase is required only if you have more than one ELSA card in your PC) |
7 | ELSA Quickstep 1000 | irq, io (from isapnp setup) |
8 | Teles 16.3 PCMCIA | irq, io |
9 | ITK ix1-micro Rev.2 | irq, io (from isapnp setup?) |
10 | ELSA PCMCIA | irq, io (set with card manager) |
11 | Eicon.Diehl Diva ISA PnP | irq, io |
11 | Eicon.Diehl Diva PCI | no parameter |
12 | ASUS COM ISDNLink | irq, io (from isapnp setup) |
13 | HFC-2BS0 based cards | irq, io |
14 | Teles 16.3c PnP | irq, io |
15 | Sedlbauer Speed Card | irq, io |
15 | Sedlbauer PC/104 | irq, io |
15 | Sedlbauer Speed PCI | no parameter |
16 | USR Sportster internal | irq, io |
17 | MIC card | irq, io |
18 | ELSA Quickstep 1000PCI | no parameter |
19 | Compaq ISDN S0 ISA card | irq, io0, io1, io (from isapnp setup io=IO2) |
20 | NETjet PCI card | no parameter |
21 | Teles PCI | no parameter |
22 | Sedlbauer Speed Star (PCMCIA) | irq, io (set with card manager) |
23 | reserved (AMD 7930) | n.a. |
24 | Dr. Neuhaus Niccy PnP | irq, io0, io1 (from isapnp setup) |
24 | Dr. Neuhaus Niccy PCI | no parameter |
25 | Teles S0Box | irq, io (of the used lpt port) |
26 | AVM A1 PCMCIA (Fritz!) | irq, io (set with card manager) |
27 | AVM PnP (Fritz!PnP) | irq, io (from isapnp setup) |
27 | AVM PCI (Fritz!PCI) | no parameter |
28 | Sedlbauer Speed Fax+ | irq, io (from isapnp setup) |
29 | Siemens I-Surf 1.0 | irq, io, memory (from isapnp setup) |
30 | ACER P10 | irq, io (from isapnp setup) |
31 | HST Saphir | irq, io |
32 | Telekom A4T | none |
33 | Scitel Quadro | subcontroller (4*S0, subctrl 1...4) |
34 | Gazel ISDN cards (ISA) | irq,io |
34 | Gazel ISDN cards (PCI) | none |
35 | HFC 2BDS0 PCI | none |
36 | W6692 based PCI cards | none |
37 | 2BDS0 S+, SP | irq,io |
38 | NETspider U PCI | none |
39 | 2BDS0 SP/PCMCIA 4.13 | irq,io (set with card manager) |
40 | not used (hotplug) | n.a. |
41 | Formula-n enter:now PCI | none |
81 | ST5481 USB ISDN adapters | none |
82 | HFC USB based ISDN adapters | none |
83 | HFC-4S/8S based ISDN cards | none |
84 | AVM Fritz!Card PCI/PCIv2/PnP | none |
Type-numbers for Capi-drivers: | ||
100 | Generic CAPI device without ISDN functionality,
i.e. AVM Fritz!DSL SL |
no parameter |
101 | AVM-B1 PCI | no parameter |
102 | AVM-B1 ISA | irq, io |
103 | AVM-B1/M1/M2 PCMCIA | no parameter |
104 | AVM Fritz!DSL | no parameter |
105 | AVM Fritz!PCI | no parameter |
106 | AVM Fritz!PNP | irq, io (from isapnp setup) |
107 | AVM Fritz!Classic | irq, io |
108 | AVM Fritz!DSLv2 | no parameter |
109 | AVM Fritz!USBv2 | no parameter |
110 | AVM Fritz!DSL USB | no parameter |
111 | AVM Fritz!USB | no parameter |
112 | AVM Fritz!X USB | no parameter |
113 | AVM FRITZ!DSL USBv2 | no parameter |
114 | AVM FRITZ!PCMCIA | no parameter |
160 | AVM Fritz!Box Remote-Capi | ip,port |
161 | Melware Remote CAPI (rcapi) | ip,port |
Type-Numbers for other drivers: | ||
201 | ICN 2B | io, mem |
Typen-Numbers for mISDN-drivers (experimental): | ||
301 | HFC-4S/8S/E1 multiport cards | no parameter |
302 | HFC-PCI based cards | no parameter |
303 | HFCS-USB Adapters | no parameter |
304 | AVM FritZ!Card PCI (v1 and v2) cards | no parameter |
305 | cards based on Infineon (former Siemens) chips: - Dialogic Diva 2.0 - Dialogic Diva 2.0U - Dialogic Diva 2.01 - Dialogic Diva 2.02 - Sedlbauer Speedwin - HST Saphir3 - Develo (former ELSA) Microlink PCI (Quickstep 1000) - Develo (former ELSA) Quickstep 3000 - Berkom Scitel BRIX Quadro - Dr.Neuhaus (Sagem) Niccy |
no parameter |
306 | NetJet TJ 300 and TJ320 cards | no parameter |
307 | Sedlbauer Speedfax+ cards | no parameter |
308 | Winbond 6692 based cards | no parameter |
My card is a Teles 16.3 NON-PNP ISA, this is Type=3.
For a ICN-2B-card IO and MEM have to be set, for example ISDN_IO='0x320', ISDN_MEM='0xd0000'.
For newer Teles-PCI-card type=20 (instead of 21) has to be used. Those are shown by ``cat /proc/pci'' as ``tiger'' or similar.
To use ISDN types 104 to 114 the matching drivers have to be downloaded
from http://www.fli4l.de/download/stabile-version/avm-treiber/.
Unpack them to the fli4l directory. They cannot be included because these
drivers are not gpl'd.
For ISDN types 81, 82, 109 to 113 and 303 it is necessary to activate USB support.
See USB - Support for USB-devices.
To use ISDN types 10, 22, 26, 39, 103 or 114 it is necessary to activate PCMCIA PC-Card support. See PCMCIA - PC-Card Support.
If you really don't know what card is in your PC you can get tips for type numbers also from the i4l-FAQ or mailing list.
Card types that are signed from isapnp setup have to be initialized by the PnP tool isapnp - if they really are PnP cards. See OPT_PNP - Installation of isapnp tools.
ISDN type 0 is used if the ISDN package should be installed without an ISDN card, for example to use imond in a network router.
Sets the debug level for the HiSaX driver. Debug level is concatenated by addition
of the following values (cited from the orginal docs):
Number | Debug-Information |
1 | Link-level <-> hardware-level communication |
2 | Top state machine |
4 | D-Channel Q.931 (call control messages) |
8 | D-Channel Q.921 |
16 | B-Channel X.75 |
32 | D-Channel l2 |
64 | B-Channel l2 |
128 | D-Channel link state debugging |
256 | B-Channel link state debugging |
512 | TEI debug |
1024 | LOCK debug in callc.c |
2048 | More debug in callc.c (not for normal use) |
The default setting (ISDN_DEBUG_LEVEL='31') should be enough for most purposes.
Sets the ``verbosity'' of the ISDN subsystem in fli4l kernel. Each verbose-level includes levels with lower numbers. Verbose levels are:
'0' | no additional informations |
'1' | events triggering an ISDN connection will be logged |
'2' and '3' | Calls are logged |
'4' and more | Data transfer rates will be logged |
Messages are sent over the kernel logging interface activated by OPT_SYSLOGD.
Important: If calls should be logged with telmond don't set this value lower
than 2 otherwise telmond would lack informations for logging.
Default setting: ISDN_VERBOSE_LEVEL='2'
Activates filtering mechanism of the kernel to achieve hangup after the specified hangup timeout. See http://www.fli4l.de/hilfe/howtos/basteleien/hangup-problem-loesen/ for additional informations.
Specifies the filter to use if ISDN_FILTER is set to `yes'.
OPT_ISDN_COMP='yes' activates LZS- and BSD-compression. Credits for this go to Arwin Vosselman (email: arwin(at)xs4all(dot)nl). This addon package is in experimental state.
Default setting: OPT_ISDN_COMP='no'
The needed parameters for LZS-compression in detail:
Debug-level-settings:
'0' | no debugging informations |
'1' | normal debugging informations |
'2' | enhanced debugging informations |
'3' | extreme debugging informations (incl. dumping of data packets) |
Default setting: ISDN_LZS_DEBUG='1'
Compression level (not decompression!). Please use value 8. Values from 0 to 9 are possible.
Higher numbers will compress better at the cost of higher CPU load with 9 being disproportional excessive.
Default setting: ISDN_LZS_COMP='8'
Keep this value at '7' at the moment.
Default setting: ISDN_LZS_TWEAK='7'
Beside this three values the variable ISDN_CIRC_x_FRAMECOMP has to be set (see next chapter).
More connections over ISDN can be defined in fli4l configuration. A maximum of two at a time is possible over one ISDN card.
Definition of connections is done by so-called circuits. One circuit is used per connection.
In the config.txt example two circuits are defined:
If fli4l is simply used as an internet gateway only one circuit is needed. Exception: fli4l's least-cost features should be used. In this case define different circuits for all allowed timespans, see below.
Sets the number of used ISDN circuits. If fli4l is used only to monitor incoming ISDN calls set:
ISDN_CIRC_N='0'
If fli4l is simply used as an internet gateway one circuit is enough. Exception: LC-routing, see below.
Set a name for the circuit - maximum length is 15 characters. The imon client imonc.exe will show this instead of the telephone number dialed. Possible characters are 'A' to 'Z' (Capitals are possible), number '0' to '9' and hyphens '-'. Example:
ISDN_CIRC_x_NAME='msn'
This name can be used in the packet filter or with OpenVPN. If for example the packet filter should control an ISDN circuit a 'circuit_' has to prefix the circuit name. If an ISDN circuit is called 'willi' the packet filter has to be set like this:
PF_INPUT_3='if:circuit_willi:any prot:udp 192.168.200.226 192.168.200.254:53 ACCEPT'
This determines wether the name servers transferred by the internet provider during dial-in should be filled in the configuration file of the local name server for the duration of the connection. This only makes sense for circuits used for connecting to an internet provider. Nearly all providers support this name server tansfer.
After name server IP addresses have been transferred name servers entries from base.txt's DNS_FORWARDERS are removed from the configuration file of the local name server and the transferred ones are filled in as forwarders. After this the name server is forced to relaod is configuration. The name server cache will be preserved and names already resolved are kept.
This option has the advantage to work with the nearest possible name servers at any time, as far as the provider transmits correct IP addresses - name resolution is faster then.
In case of failing DNS servers at the provider side transmitted DNS server addresses usually are corrected rapidly by the provider.
After all it is absolutely necessary for the first dial-in to provide a valid name server in base.txt's DNS_FORWARDERS. Otherwise the first request can not be resolved correctly. In addition the initial configuration of the name server will be restored on hangup.
Default setting: ISDN_CIRC_x_USEPEERDNS='yes'
ISDN_CIRC_x_TYPE specifies the type of connection x. Possible values are:
'raw' | RAW-IP |
'ppp' | Sync-PPP |
In most cases PPP is used, Raw-IP is a little more efficient because of the missing PPP overhead. Authentification is not possible with Raw-IP but with variable ISDN_CIRC_x_DIALIN (see below) limitiations to explicit ISDN numbers (``Clip'') can be accomplished. If ISDN_CIRC_x_TYPE is set to'raw' /etc/ppp a raw up/down script will be executed in analog to the PPP up/down scripts.
For ISDN channel bundeling the MPPP protocol according to RFC 1717 is used. This inherits the following mostly irrelevant limitiations:
The second channel either can be added manually using imonc client or automatically by bandwidth adaption, see description for ISDN_CIRC_x_BANDWIDTH.
Default setting: ISDN_CIRC_x_BUNDLING='no'
Caution: using channel bundeling together with compression can trigger some problems, see description for ISDN_CIRC_x_FRAMECOMP.
If ISDN channel bundeling is activated by
ISDN_CIRC_x_BUNDLING='yes' an automatical addition of
the second ISDN channel can be configured here. Two parameters have to be set:
If treshold level S is exceeded for Z seconds imond will add a second channel automatically. If treshold level S is underrun for Z seconds imond will deactivate the second channel again. Automatic bandwidth adaption may be deactivated with ISDN_CIRC_1_BANDWIDTH=''. After that channel bundeling can only be accomplished manually by the imonc client.
Examples:
If the transfer rate exceeds 6 kibibyte/second for 30 seconds the second channel will be added.
The second ISDN channel will be added immedeately (not later than 10 seconds after connection establishment and stays active until the connection terminates completely.
The second ISDN channel only can be added manually, furthermore ISDN_CIRC_1_BUNDLING='yes' has to be set.
This is intended to add a second channel after 30 seconds if 10000 B/s were reached during that timespan. This won't work because ISDN has a maximum tranfer rate of 8 kB/s.
If ISDN_CIRC_x_BUNDLING='no' is set the value in
variable
ISDN_CIRC_x_BANDWIDTH is irrelevant.
Default setting: ISDN_CIRC_x_BANDWIDTH=''
This variable holds the local IP address on the ISDN side.
This value should be empty if using dynamical address assignment. The IP address will be negotiated during connection establishment. In most cases internet providers hand out dynamic addresses. If a fixed IP address is used specify it here. This variable is optional and has to be added to the config file.
This variable holds the remote IP address and netmask on the ISDN side. Classes Inter-Domain routing (CIDR) notation has to be used. Details for CIDR can be found in the base documentation for IP_NET_x.
With dynamic address negotiation this should empty. The IP address will be negotiated on connection establishment. In most cases internet providers hand out dynamic addresses. If a fixed IP address is used specify it here. This variable is optional and has to be added to the config file.
The netmask provided will be used for interface configuration after dial-in. A route to the dial-in host itself will be generated as well. As you most probably won't need this route it is best to generate a direct route to the dial-in host by setting the netmask to /32. For details see Chapter: Technical Details For Dialin.
With this optional variable the so-called MTU (maximum transmission unit)
and MRU (maximum receive unit) can be set. Optional means that the variable
has to be added manually to the configuration file by the user!
Usually MTU is 1500 and MRU 1524. This settings should only be changed in
rare special cases!
Set this to 'yes' when using synchronous ppp
(ISDN_CIRC_x_TYPE='ppp') and
one of the following symptoms occurs:
Default setting: ISDN_CIRC_x_CLAMP_MSS='no'
ISDN_CIRC_x_HEADERCOMP='yes' activates Van-Jacobson compression or header compression. Not all providers are supporting this. If activated compression leads to problems while dialing in set this to 'no'.
Default setting: ISDN_CIRC_x_HEADERCOMP='yes'
This parameter is only used if
OPT_ISDN_COMP is set to 'yes'.
It handles frame compression.
The following values are possible:
'no' | no frame compression |
'default' | LZS according to RFC1974(std) and BSDCOMP 12 |
'all' | Negotiate lzs and bsdcomp |
'lzs' | Negotiate lzs only |
'lzsstd' | LZS according to RFC1974 Standard Mode (``Sequential Mode'') |
'lzsext' | LZS according to RFC1974 Extended Mode |
'bsdcomp' | Negotiate bsdcomp only |
'lzsstd-mh' | LZS Multihistory according to RFC1974 Standard Mode (``Sequential Mode``) |
You have to find out by yourself which value is supported by the provider. T-Online supports only 'lzsext' as far as I know. With most other providers 'default' should work.
Attention: using channel bundeling together with 'lzsext' can lead to problems specific to the dial-in server and provider. As providers use different types of dial-in servers there can be differences between dial-in servers of the same provider.
'lzsstd-mh' is meant for router-to-router usage (r2r). It is not used by providers but using it between two fli4l routers leads to significant improvements while transferring more files in parallel. Header compression is needed here and therefore will be activated automatically.
This variable normally is only relevant when configuring fli4l as a dial-in router. Set the name of a remote hosts if you want but this is not needed.
Default setting: ISDN_CIRC_x_REMOTENAME=''
Enter provider data here. In the example data for Microsoft Network is used.
ISDN_CIRC_x_USER holds the user-id, ISDN_CIRC_x_PASS the password.
Note for T-Online:
Username AAAAAAAAAAAATTTTTT#MMMM is composed from a 12 digit 'Anschlußkennung' plus T-Online-Number and 'Mitbenutzernummer'. Put a '#' after the T-Online-Nummer if it is shorter than 12 characters.
In rare cases another '#' character has to be inserted between 'Anschlußkennung' and T-Online-Number.
For T-Online-Numbers with 12 characters no additional '#' is needed.
Example: ISDN_CIRC_1_USER='123456#123'
For Raw-IP circuits this variable has no meaning.
Number of routes of this ISDN circuit. If the circuit defines a default route you must set this to '1'.
Route(s) for this circuit. For Internet access the first entry should be '0.0.0.0/0' (default route). Format is always 'network/netmaskbits'. A host route for example would look like this: '192.168.199.1/32'. If dialing in to company or university routers name only the net you want to reach there. Examples:
ISDN_CIRC_%_ROUTE_N='2' ISDN_CIRC_%_ROUTE_1='192.168.8.0/24' ISDN_CIRC_%_ROUTE_2='192.168.9.0/24'
All nets must have an explicit entry hence for each route a new ISDN_CIRC_x_ROUTE_y='' line has to be provided.
For using fli4l's LC routing features a default route can be assigned to *several* circuits. Which circuit is used is driven by ISDN_CIRC_x_TIMES, see below.
ISDN_CIRC_x_DIALOUT specifies the telephone number to be dialed. It is possible to put in several numbers (if one is busy the next is chosen) - numbers have to be separated by blanks. A maximum of five numbers can be used.
If the circuit (also) serves for dial-in ISDN_CIRC_x_DIALIN keeps the phone number of the callee - with a region prefix but *without* a leading 0. Ports behind telephone systems may have to specify one or even two zeros.
If more users should be able to dial in over a circuit more numbers may be added separated by blanks. It is advised to assign a separate circuit for each caller although. Otherwise two callers trying to dial in at the same time (which is absolutetely feasible with 2 ISDN channels) could collide on behalf of IP addresses assigned.
If callers don't transfer a number during calling '0' could be used. Caution: everyone not transferring a number is allowed to call in then!
If number-independent dial-in should be realized set '*'.
In both cases a separate authentification (see ISDN_CIRC_x_AUTH) is unavoidable.
Settings for callback, possible values:
'in' | fli4l is called and calls back |
'out' | fli4l calls, hangs up and waits for callback |
'off' | no callback |
'cbcp' | callback control protocol |
'cbcp0' | callback control protocol 0 |
'cbcp3' | callback control protocol 3 |
'cbcp6' | callback control protocol 6 |
CallBack control protocol (aka 'Microsoft CallBack') cbcp6 is the protocol mostly used.
Default setting: 'off'
Set a callback number for protocol cbcp, cbcp3 and cbcp6 here (mandatory for cbcp3).
This variable sets a delay in seconds to be waited until triggering callback. The meaning differs depending on the direction of callback:
If fli4l is called and should call back ISDN_CIRC_x_CBDELAY specifies the waiting time until calling back. Use ISDN_CIRC_x_CBDELAY='3' as a rule of thumb. A lower value may work and speed up connection establishment then depending on whom to call back.
In this case ISDN_CIRC_x_CBDELAY is the ringing timespan for the other party until fli4l waits for callback. ISDN_CIRC_x_CBDELAY='3' is a good rule of thumb here either. On long distance calls it takes up to 3 seconds untils the other router is even recognizing the call. If in doubt simply try.
If setting ISDN_CIRC_x_CALLBACK='off', ISDN_CIRC_x_CBDELAY is ignored. This variable is ignored with CallBack Control Protocol as well.
In the example the MSN (called EAZ here) is set to 81330. Set your own MSN *without* area code here.
Depending on your telephony system only the extension station number could be necessary. Setting an additional '0' may also help sometimes.
This variable may be empty which can help with some telephony systems as well.
If fli4l is connected on the internal S0-Bus of a telephony system and you want to use channel bundeling you may have to specify a second extension station number for the slave channel.
Normally this variable can stay empty.
If ipppd should display additional debug informations set ISDN_CIRC_x_DEBUG to 'yes'. Ipppd will log these informations to syslog then.
IMPORTANT: To use syslogd for logging OPT_SYSLOGD has to be set to 'yes'.
(See OPT_SYSLOGD - Program For Protocolling System Messsages)
Some messages are logged to klogd so OPT_KLOGD
(See OPT_KLOGD - Kernel-Message-Logger)
should be set to 'yes' as well for debugging ISDN.
For Raw-IP-Circuits ISDN_CIRC_x_DEBUG has no meaning.
If the circuit is also used for dial-in and an authentification over PAP or CHAP should be used by the calling party set ISDN_CIRC_x_AUTH to 'pap' or 'chap' - but *only* then. In all other cases this variable has to be empty!
Cause: An Internet provider will never authentificate with you - but there may be exceptions to this rule.
Use the entries ISDN_CIRC_x_USER and ISDN_CIRC_x_PASS for username and password.
For Raw-IP-Circuits this variable has no meaning.
ISDN_CIRC_x_HUP_TIMEOUT sets the time after that fli4l disconnects from the provider if no traffic is detected over the connection. In the example the connection will be hung up after 40 seconds idle time to save money. On new accesses fli4l connects again in a short timespan. This makes sense especially with providers that have seconds charge intervals!
At least while testing you should keep an eye on fli4l's automatic dial-in and hangup using either console or imon-client. In case of faulty configuration the ISDN connection could become an unwanted permanent line.
Setting this to '0' means that fli4l doesn't use idle time and won't hang up by itself anymore. Use with care!
Set charge interval in seconds which will be used for calculating online costs.
Most providers charge by minute intervals. In this case use the value '60'. For providers that charge in seconds set ISDN_CIRC_x_CHARGEINT to '1'.
Addition for ISDN_CIRC_x_CHARGEINT >= 60 seconds:
If no traffic was detected for ISDN_CIRC_x_HUP_TIMEOUT seconds the connection will be terminated approx. 2 seconds before reaching the chargint timespan. Charged time is used nearly complete this way. A really neat feature of fli4l.
With charging intervals of under a minute this does not make sense so this feature is only used for charging intervals of more than 60 seconds.
Specify here when and at what charge the circuit should be active. This makes it possible to use different circuits as default routes at different daytimes (least-cost-routing).The imond daemon controls route-allocation.
Composition of the variable:
ISDN_CIRC_x_TIMES='times-1-info [times-2-info] ...'
Each times-?-info field consists of 4 subfields separated by colons (':').
Weekday-timespan, for example Mo-Fr or Sa-Su. English and german notation are possible. If a single weekday should be specified write W1-W1, for example Su-Su.
Daytime-timespan, for example 09-18 or also 18-09. 18-09 is equal to 18-24 plus 00-09. 00-24 means the whole day.
Costs per minute in currency units, for example 0.032 for 3.2 Cent per minute. The real costs are calculated in consideration of charging intervals and displayed in imon-client then.
May be Y or N. Meaning:
Example:
ISDN_CIRC_1_TIMES='Mo-Fr:09-18:0.049:N Mo-Fr:18-09:0.044:Y Sa-Su:00-24:0.044:Y' ISDN_CIRC_2_TIMES='Mo-Fr:09-18:0.019:Y Mo-Fr:18-09:0.044:N Sa-Su:00-24:0.044:N'
Read as follows: Circuit 1 should be used on labour days evenings/nights and on the complete weekends, Circuit 2 is used on labour days from 9 AM to 6 PM.
Important: timespans specified in ISDN_CIRC_x_TIMES have to cover
the whole week. Without that no valid configuration can be generated.
Important: If timespans of all LC-default-route circuits (``Y'') don't cover the
complete week no default route exists during the missing times. Therefore
no internet connections are possible!
ISDN_CIRC_1_TIMES='Sa-Su:00-24:0.044:Y Mo-Fr:09-18:0.049:N Mo-Fr:18-09:0.044:N' ISDN_CIRC_2_TIMES='Sa-Su:00-24:0.044:N Mo-Fr:09-18:0.019:Y Mo-Fr:18-09:0.044:N'
Here for labour days from 18-09 ``N'' is set. At this times no route to the internet exists - surfing forbidden!
ISDN_CIRC_1_TIMES='Mo-Su:00-24:0.0:Y'
for those using a flatrate.
Bank holidays are treated as sundays.
OPT_TELMOND determines wheter the telmond server is activated or not. It listens to incoming telephone calls and signals on TCP port 5001 the caller id transmitted and called. This information can be queried and displayed by i.e. windows- or Unix/Linux imon-client (see chapter ``Client-/Server-interface imond'').
An installed ISDN card is mandatory as well as as valid configuration of OPT_ISDN.
Testing the correct function of telmond is possible with:
telnet fli4l 5001
This should display the last call and immedeately close the telnet connection.
Port 5001 is only reachable from LAN. Access from outside is blocked by the firewall per default. Further access limitations are configurable via telmond variables, see below.
Default setting: START_TELMOND='yes'
TCP/IP-Port on which telmond listens for connections. The default setting '5001' should only be changed in rare exceptions.
TELMOND_LOG='yes' activates saving of all incoming calls in a file called /var/log/telmond.log. The content of this file can be queried with imond-Client imonc under Unix/Linux and Windows.
Different paths or logfiles splitted by clients may be configured below.
Default setting: TELMOND_LOG='no'
If protocolling is active TELMOND_LOGDIR can set a different path instead of /var/log, for example '/boot'. The file telmond.log will be saved on the boot media (which has to be mounted Read/Write ``rw'') then. If 'auto' is set the logfile is created in /boot/persistent/isdn or at another path specified by FLI4L_UUID. If /boot is not mounted Read/Write the file is created in /var/run.
If certain calls should only be visible on some client PC's imonc a filter can be set to achieve that MSNs are only protocolled for those PCs.
If this is necessary (for example with flat sharing) the variable TELMOND_MSN_N holds the number of MSN filters.
Default setting: TELMOND_MSN_N='0'
For each MSN filter a list of IP addresses has to be set which should be able to view the call informations.
The variable TELMOND_MSN_N determines the number of those configurations, see above.
Composition of the variable:
TELMOND_MSN_x='MSN IP-ADDR-1 IP-ADDR-2 ...'
A simple example:
TELMOND_MSN_1='123456789 192.168.6.2'
If a call for a certain MSN should be displayed on more computers their IP addresses have to be specified one after the other.
TELMOND_MSN_1='123456789 192.168.6.2 192.168.6.3'
If a telephone call (Voice) is coming in for a MSN some commands can be executed on the fli4l router optionally. TELMOND_CMD_N holds the number of commands to be executed.
TELMOND_CMD_1 bis TELMOND_CMD_n holds commands to be executed for an incoming phone call.
Variable TELMOND_CMD_N specifies the quantity of commands, see above.
Composition of the variable:
MSN CALLER-NUMBER COMMAND ...
Set the MSN without area prefix. CALLER-NUMBER takes the complete caller id with area prefix. If CALLER-NUMBER is set to an asterisk (*) telmond won't pay attention to the caller id.
An example:
TELMOND_CMD_1='1234567 0987654321 sleep 5; imonc dial' TELMOND_CMD_2='1234568 * switch-on-coffee-machine'
In the first case the command sequence ``sleep 5; imonc dial'' is executed if caller with id 0987654321 calls MSN 1234567. Two commands are executed. At first fli4l will wait for 5 seconds for the ISDN channel to become available. After that the fli4l client imonc is started with the argument ``dial''. imonc passes this command to the telmond server which will establish a network connection on the default route circuit. Which commands the imonc client can pass to the imond server is described in chapter ``Client-/Server interface imond''. OPT_IMONC from the package ``tools'' has to be installed to get this working.
The second command ``switch-on-coffee-machine'' will be executed if a call on MSN 1234568 comes in independent on caller id. The command ``switch-on-coffee-machine'' does not exist for fli4l (at the moment)!
On execution of command the following placeholders may be used:
%d | date | Date |
%t | time | Time |
%p | phone | Caller ID |
%m | msn | Own MSN |
%% | percent | the percent sign |
This data can be used by the programs called, for example for sending E-Mail.
If using a CAPI capable ISDN adapter or a remote CAPI (type 160 or 161) it may be necessary to configure the CAPI controller on which telmond is listening for calls more explicitly. For example the Fritz!Box offers access to up to five different controllers which may not even differ (see informations at http://www.wehavemorefun.de/fritzbox/CAPI-over-TCP#Virtuelle_Controller). To limit the number of controllers to be used you may set the quantity. In the following array-variables TELMOND_CAPI_CTRL_% it may be set which controllers are to be used.
If you don't use this variable telmond will listen on all available CAPI controllers.
If TELMOND_CAPI_CTRL_N is unequal to zero the indices for the CAPI controllers have to be specified on which telmond should monitor incoming calls.
Example for the remote CAPI of a Fritz!Box with ``real'' ISDN connection:
TELMOND_CAPI_CTRL_N='2' TELMOND_CAPI_CTRL_1='1' # listen to incoming ISDN calls TELMOND_CAPI_CTRL_2='3' # listen to calls on the internal S0-Bus
Example for the remote CAPI of a Fritz!Box with analog connection and SIP-Forwarding:
TELMOND_CAPI_CTRL_N='2' TELMOND_CAPI_CTRL_1='4' # listen to incoming analog calls TELMOND_CAPI_CTRL_2='5' # listen to incoming SIP-calls
This OPT configures the program rcapid on the fli4l router which offers access to the ISDN CAPI interface of the routers via network. Appropritate tools can access the ISDN card of the routers via network as if it was installed locally. This is similar to the package ``mtgcapri''. The difference is that only Windows systems can use ``mtgcapri'' as a client while the network interface of rcapid is only supporting linux systems at the time of writing. So both packages are ideal complements in mixed Windows- and Linux environments.
Example:
OPT_RCAPID='yes'
Default setting:
RCAPID_PORT='6000'
REMOTE fli4l 6000
That's all! If the program ``capiinfo'' is installed on the linux client (part of capi4k-utils-package of many distributions) you can test the remote CAPI interface:
kristov@peacock ~ $ capiinfo Number of Controllers : 1 Controller 1: Manufacturer: AVM Berlin CAPI Version: 1073741824.1229996355 Manufacturer Version: 2.2-00 (808333856.1377840928) Serial Number: 0004711 BChannels: 2 [...]
Under ``Number of Controllers'' the quantity of ISDN cards is displayed which are
usable on the client. If this reads ``0'' the connection to the rcapid program is
working but the ISDN card is not recognized on the router. If the connection to the
rcapid program is not working at all (maybe OPT_RCAPID is set to ``no'')
an error message ``capi not installed - Connection refused (111)'' will be displayed.
In this case check your configuration once more.