2 .\" Copyright (c) 1997, 2001 Hellmuth Michaelis. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 .\" $FreeBSD: src/usr.sbin/i4b/isdnd/isdnd.rc.5,v 1.11.2.5 2001/08/10 23:17:32 obrien Exp $
26 .\" $DragonFly: src/usr.sbin/i4b/isdnd/isdnd.rc.5,v 1.11 2008/05/02 02:05:07 swildner Exp $
28 .\" last edit-date: [Sat Jul 21 13:27:41 2001]
35 .Nd isdn4bsd ISDN connection management daemon config file format
38 .Pa /etc/isdn/isdnd.rc
39 contains (if not otherwise specified on the command line) the runtime
42 ISDN connection management daemon which is part of the isdn4bsd package.
44 The configuration file consists of keywords which start in column 1 followed by
45 one or more spaces or tabs, an equal sign, one or more spaces or tabs
46 and a keyword dependent parameter value.
48 A line beginning with '#' is treated as a comment line.
50 For keywords requiring the specification of a boolean value, the truth
55 while the false value can be either
60 The configuration file consists of one
62 section, one or more optional
64 sections and one or more
69 section parameters regarding the daemon operation or parameters
70 not associated with a single remote connection can be set.
73 section parameters regarding a particular controller can be set.
76 section(s) parameters directly associated with a single remote
77 connection can be set.
79 The following keywords are recognized by
81 .Bl -tag -width system
83 This keyword starts the system configuration section.
85 have a parameter and may be used only once.
86 The keyword is mandatory.
87 The following keywords are valid in the system configuration section:
88 .Bl -tag -width useacctfile
90 If this parameter is set to
92 accounting information is written even if the local site was not charged
93 or no charging information is available or is not subscribed.
96 Specifies the name of the accounting file which is used when the keyword
100 See also system keyword
102 If this keyword is omitted the system default is used.
105 If this parameter is set to
107 alias processing of telephone-number to name is enabled (see also the
113 Specifies the name of the telephone number-to-name alias database file shared
116 utility when alias processing is enabled via the
121 In full-screen mode, if this parameter is set to
123 ring the bell when connecting or disconnecting a call.
125 If this parameter is set to
127 the extended caller attributes "screening indicator" and "presentation
128 indicator" are written to the log-file.
132 Specifies the name of the holiday file containing the dates of holidays.
133 This file is used in conjunction with the
135 keyword to lookup the dates of holidays.
138 If this parameter is set to
140 date/time information from the exchange (if provided) is written to the
145 This keyword is used to specify the path/name of a mail program which
146 which is able to use the "-s" flag to specify a subject on its
148 In case of a fatal error exit of
150 this program is used to send mail to an administrator specified by
155 This keyword is used to specify the email address of someone to notify
156 in case of a fatal error exit of
161 .It Li monitor-allowed
162 If this parameter is set to
166 monitoring via a local or remote machine is enabled.
167 This parameter is optional and is set to
171 sets the TCP port number for remote monitoring.
172 This integer parameter is optional and is set to port 451 by default.
174 This keyword specifies a local socket name or a host or network for remote
178 specification may either be:
180 .Bl -tag -width Ds -compact
181 .It Ar the name of a local (UNIX-domain) socket
182 this MUST start with a "/", example: /var/run/isdn-monitor
183 .It Ar a dotted-quad host specification
185 .It Ar a dotted-quad network address with netmask
186 example: 192.168.1.0/24
187 .It Ar a resolvable host name
189 .It Ar a resolvable network name with netmask
190 example: up-vision-net/24
192 .It Li monitor-access
193 This keyword specifies the access rights for a previously used
196 The supported access rights are:
198 .Bl -tag -width Ds -compact
207 Specifies the name of the ratesfile.
208 If this keyword is omitted the system
212 This keyword is used to specify regular expressions.
214 more than once up to a compile time dependent value (currently set to 5 by
215 the MAX_RE definition in the source).
217 All specified regular expressions are compared to the log strings at runtime
218 and if a match is found, a program is run with the log text as a parameter
219 (see also the keyword
223 For an explanation how regular expressions are specified, please have a
230 regular expression syntax is supported here.
232 Hint: it might be necessary to properly quote the expression to avoid
233 improper interpretation by the configuration file parser.
236 This keyword is used to specify the name of a program which is run in
237 case a corresponding regular expression is matched by a logging string.
239 expects to find the program below the path
241 which is prepended to the string specified as a parameter to this keyword.
244 Specifies a suffix for renaming the log- and the accounting-filename.
246 rotatesuffix is used and a USR1 signal is sent to isdnd, the log-file and the
247 accounting file is not only closed and reopened but the old log-file is also
248 renamed to the former filename with the rotatesuffix string appended.
249 If this keyword is omitted, the log-files are just closed and reopened; this
250 is also the default behavior.
253 Specifies the real-time priority
255 runs at as an integer value in the range 0...31 with 0 being the highest
257 This keyword is optional; if not specified the process priority of
259 is not touched in any way.
262 This keyword is only available if
264 was compiled with -DUSE_RTPRIO.
266 If this parameter is set to
268 charging (if available) and accounting information is written to the
273 This keyword starts the controller configuration section.
275 have a parameter and may be used once for every controller.
278 The following keywords are valid in a controller
279 configuration section:
280 .Bl -tag -width useacctfile
282 This keyword is used to set the D-channel protocol for the S0-bus a
283 controller is connected to.
284 The following parameters are currently
287 .Bl -tag -width calledback -compact
289 The DSS1 or so-called "Euro-ISDN" D-channel protocol according to
290 ITU Recommendations Q.921 and Q.931.
292 An ISDN leased line with a single B-channel (called D64S in Germany).
295 This keyword is used like
296 .Li firmware Ns = Ns Ar /path/to/file
298 firmware to active controllers supported by the
301 This keyword is supported for all controller types,
303 .Dv I4B_CTRL_DOWNLOAD
304 ioctl to be invoked with the specified file
306 In systems equipped with both active and passive adapters,
307 and the passive cards being detected first, dummy
310 are required for the passive cards to get the correct firmwares to
314 This keyword starts one configuration entry.
315 It must not have a parameter.
316 This keyword must be used at least once.
317 The following keywords are valid in an entry section:
318 .Bl -tag -width unitlengthsrc
320 This keyword is used to specify the name of a program which is run in
321 case an incoming telephone connection specified
323 in its configuration entry.
327 expects to find this program beneath the path
329 which is prepended to the string specified as a parameter to this keyword.
332 is used to specify a time in seconds to wait before accepting a call.
334 keyword is only usable for incoming telephone calls (dialin-reaction = answer).
335 It is used to have a chance to accept an incoming call on the phone before
336 the answering machine starts to run.
337 The minimum value for the alert parameter
338 is 5 seconds and the maximum parameter allowed is 180 seconds.
341 The B channel layer 1 protocol used for this connection.
342 The keyword is mandatory.
343 The currently configurable values are:
345 .Bl -tag -width Ds -compact
349 No framing at all (used for telephony).
351 .It Li budget-calloutperiod
352 is used to specify a time period in seconds.
353 Within this period, the number of calls
355 .Em budget-calloutncalls
356 are allowed to succeed, any further attempt to call out will be blocked for the rest
357 of the time left in the time period.
359 .It Li budget-calloutncalls
360 The number of outgoing calls allowed within the time period specified by
361 .Em budget-calloutperiod .
363 .It Li budget-calloutsfile
364 A path/filename to which the number of successful callouts are written.
365 The contents of the file is preserved when it exists during startup of isdnd.
366 The format of this file is: start time, last update time, number of calls.
368 .It Li budget-calloutsfile-rotate
371 rotate budget-calloutsfile every night when an attempt is made to update
372 the file on a new day.
373 The statistics for the previous day are written to
374 a file with the filename specified by budget-calloutsfile to which a hyphen
375 and the new day's (!) day of month number is appended.
377 .It Li budget-callbackperiod
378 .It Li budget-callbackncalls
379 .It Li budget-callbacksfile
380 .It Li budget-calloutsfile-rotate
382 .Em budget-calloutperiod ,
383 .Em budget-calloutncalls ,
384 .Em budget-calloutsfile ,
386 .Em budget-calloutsfile-rotate
388 These are used to specify the budgets for calling back a remote site.
390 The time in seconds to wait between hanging up the call from a remote site
391 and calling back the remote site.
393 .It Li calledbackwait
394 The time in seconds to wait for a remote site calling back the local site
395 after a call from the local site to the remote site has been made.
398 This causes the contents of the specified entry to be copied from the
399 existing named entry to the current one.
400 When using this feature at least a new entry specific
404 value should be specified for the current entry.
406 specifies a program run every time after a connection is established and
407 address negotiation is complete (i.e.: the connection is usable).
409 expects to find the program below the path
411 which is prepended to the string specified as a parameter to this keyword.
412 The programs specified by connect and disconnect will get the following
413 command line arguments: -d (device) -f (flag) [ -a (addr) ] where
415 is the name of device, e.g. "isp0",
417 will be "up" if connection just got up, or "down" if interface changed to down
420 the address that got assigned to the interface as a dotted-quad ip address
421 (optional, only if it can be figured out by isdnd).
423 .It Li dialin-reaction
424 Used to specify what to do when an incoming connection request is received.
425 The keyword is mandatory.
426 The currently supported parameters are:
428 .Bl -tag -width calledback -compact
430 Accept an incoming call.
432 Reject an incoming call.
434 Ignore an incoming call.
436 Start telephone answering for an incoming voice call.
438 When a remote site calls, hang up and call back the remote site.
441 This keyword is used to configure what type of dialout mode is used.
442 The keyword is mandatory.
443 The currently supported parameters are:
445 .Bl -tag -width Ds -compact
447 Normal behavior, call the remote site which is supposed to accept the call.
449 Callback behavior, call the remote side which rejects the call and calls
453 When dialing or re-dialing and this parameter is set to
455 the dial retry time is added with a random value (currently 0...3 seconds)
456 to minimize the chance of two sites dialing synchronously so each gets a busy
457 each time it dials because the other side is also dialing.
459 The number of dialing retries before giving up.
462 gives an unlimited number of retries!
465 This keyword is used to configure if incoming and outgoing, incoming-only or
466 outgoing only connections are possible.
467 The keyword is optional, the default is
470 The currently supported parameters are:
472 .Bl -tag -width Ds -compact
474 Normal behavior, connection establishment is possible from remote and local.
476 Only incoming connections are possible.
478 Only outgoing connections are possible.
480 .It Li disconnectprog
481 specifies a program run every time after a connection was shut down.
483 expects to find the program below the path
485 which is prepended to the string specified as a parameter to this keyword.
488 is used to configure the number of unsuccessful tries (= retry cycles!) before
489 the interface is disabled (for
492 (see also the keyword
495 This keyword is optional.
497 is used to configure the time in seconds an interface is disabled
498 after the configured number of
500 (see also the keyword
503 This keyword is optional and is set to 60 seconds by default.
505 A (safety) time in seconds which specifies the time to hang up before an
506 expected next charging unit will occur.
508 .It Li idle-algorithm-outgoing
509 The algorithm used to determine when to hang up an outgoing call when the
511 The current algorithms are:
513 .Bl -tag -width calledback -compact
515 idle algorithm which assumes fixed sized charging units during the whole call.
517 idle algorithm which assumes that the charging is time based after the first
518 units time has expired.
520 .It Li idletime-outgoing
521 The time in seconds an outgoing connection must be idle before hanging up.
522 An idle timeout of zero disables this functionality.
524 .It Li idletime-incoming
525 The time in seconds an incoming connection must be idle before hanging up.
526 An idle timeout of zero disables this functionality.
528 .It Li isdncontroller
529 The ISDN controller number to be used for connections for this entry.
532 The ISDN controller channel number to be used for connections for this entry.
533 In case a channel is explicitly selected here, the SETUP message will request
534 this channel but mark the request as
536 (the indicated channel is preferred) instead of exclusive (only the indicated
537 channel is acceptable).
538 Thus the exchange is still free to select another
539 than the requested channel!
541 .It Li isdntxdel-incoming
542 A delay value suitable for the
544 kernel subroutine to delay the transmission of the first packet after a
545 successful connection is made by this value for
548 The specification unit is 1/100 second.
550 this feature and is the default value.
551 This feature is implemented (and makes
554 IP over raw HDLC ISDN driver.
556 .It Li isdntxdel-outgoing
557 A delay value suitable for the
559 kernel subroutine to delay the transmission of the first packet after a
560 successful connection is made by this value for
563 The specification unit is 1/100 second.
565 this feature and is the default value.
566 This feature is implemented (and makes
569 IP over raw HDLC ISDN driver.
571 .It Li local-phone-dialout
572 The local telephone number used when the local site dials out.
574 out to a remote site, the number specified here is put into the
575 .Em "Calling Party Number Information Element" .
577 This keyword is mandatory for the
579 user-land interfaces.
580 .It Li local-phone-incoming
581 The local telephone number used for verifying the destination of incoming
583 When a remote site dials in, this number is used to verify that it
584 is the local site which the remote site wants to connect to.
587 .Em "Called Party Number Information Element"
588 got from the telephone exchange.
590 This keyword is mandatory for the
594 Defines a symbolic name for this configuration entry.
596 use this name in the full-screen display for easy identification of a link
597 to a remote site and for accounting purposes.
599 .It Li maxconnecttime
600 Specify a maximum connection time in seconds.
601 Use this to define an absolute
602 upper limit for a connection on the B-channel to last.
604 This feature is used to limit the connection time, _not_ number of attempts
605 to establish a connection: when using this please take care to also enable
606 the use of budgets to limit the connection establish attempts (otherwise
607 the line will cycle through an endless loop of connections and reconnections
608 which will have an undesired effect on your telco bill)!
609 .It Li ppp-auth-paranoid
612 the remote site is not required to prove its authenticity for connections
613 that are initiated by the local site.
616 and requires the remote site to always authenticate.
618 This keyword is only used if
620 has been set to pap or chap for an
624 .It Li ppp-auth-rechallenge
627 if the other side does not support re-challenging for chap.
630 which causes verification of the remote site's authenticity once in a while.
632 This keyword is only used if
634 has been set to chap for an
638 .It Li ppp-expect-auth
639 The local site expects the authenticity of the remote site to be proved by
640 the specified method.
641 The supported methods are:
643 .Bl -tag -width Ds -compact
645 Do not require the other side to authenticate.
646 Typical uses are dial-out to an ISP
647 (many ISPs do not authenticate themselves to clients)
648 or offering anonymous dial-in at the local site.
650 The preferred authentication method, which does not require a password to be sent
653 The unprotected authentication method, which allows anybody watching the wire
654 to grab name and password.
658 .Em ppp-auth-paranoid
663 outgoing connections will not require the remote site to authenticate itself.
665 This keyword is only used for the
669 .It Li ppp-expect-name
670 The name that has to be provided by the remote site to prove its authenticity.
672 This keyword is only used if
674 has been set to pap or chap for an
678 .It Li ppp-expect-password
679 The secret that has to be provided by the remote site to prove its authenticity.
681 This keyword is only used if
683 has been set to pap or chap for an
688 The authentication method required by the remote site.
689 The currently supported parameters are:
691 .Bl -tag -width Ds -compact
693 The remote site does not expect or support authentication.
695 The preferred authentication method, which does not require a password to be sent
698 The unprotected authentication method, which allows anybody watching the wire
699 to grab name and password.
702 This keyword is only used for the
707 The authentication name sent to the remote site.
709 This keyword is only used if
711 has been set to pap or chap for an
715 .It Li ppp-send-password
716 The secret used to prove the local site's authenticity to the remote site.
718 This keyword is only used if
720 has been set to pap or chap for an
725 The rate entry used from the rates file.
728 For example, ratetype=0 selects lines beginning "ra0" in /etc/isdn/isdnd.rates;
729 (typically ra0 lines are a set of tables for local call rates on different
730 days of the week & times per day).
732 The time in seconds to wait between dial retries.
734 .It Li remdial-handling
735 is used to specify the dialout behavior in case more than one outgoing
737 The currently supported parameters are:
739 .Bl -tag -width Ds -compact
741 For every new (non-retry) call setup, start with the first number.
743 For every new (non-retry) call setup, start with the last number with
744 which a successful connection was made.
746 For every new (non-retry) call setup, start with the next number which
747 follows the last one used.
749 .It Li remote-phone-dialout
750 The remote telephone number used when the local site dials out.
752 out to a remote site, the number specified here is put into the
753 .Em "Called Party Number Information Element" .
755 This keyword is mandatory for the
758 It may be specified more than once to try to dial to several
759 numbers until one succeeds.
760 .It Li remote-phone-incoming
761 The remote telephone number used to verify an incoming call.
763 dials in, this number is used to verify that it is the correct remote site
764 which is herewith authorized to connect into the local system.
766 is compared against the
767 .Em "Calling Party Number Information Element"
768 got from the telephone exchange.
770 This keyword is mandatory for the ipr interfaces.
772 This keyword may have a wildcard parameter '*' to permit anyone dialing in.
774 The length of a charging unit in seconds.
775 This is used in conjunction with
776 the idletime to decide when to hang up a connection.
779 This keyword is used to specify from which source
781 takes the unitlength for short-hold mode.
782 The currently configurable values are:
784 .Bl -tag -width Ds -compact
786 Then unitlength is not specified anywhere.
788 Use the unitlength specified on the command line.
790 Use the unitlength specified in the configuration file with the keyword
793 Use the unitlength from the ratesfile specified in the configuration
794 file with the keyword
797 Use a dynamically calculated unitlength in case AOCD is subscribed on
799 (AOCD is an acronym for ``Advice Of Charge During the call''
800 which is a service provided by the telecommunications (ie phone) provider,
801 to indicate billable units).
804 Specifies the user-land interface which is used for interfacing ISDN B channel
805 data to the user-land.
806 The keyword is mandatory.
807 This keyword accepts the following parameters:
809 .Bl -tag -width Ds -compact
811 This parameter configures a raw HDLC IP over ISDN interface.
813 This parameter configures a synchronous PPP over ISDN interface.
815 This specifies a Raw B CHannel access interface.
819 configures an ISDN B-channel to NetGraph interface.
822 Specifies the unit number for the device which is specified with
825 is used to enable the use of the keywords
829 in the entries section(s).
832 daemon to dynamically enable and disable the IP interfaces to avoid excessive
833 dialing activities in case of transient failures (such as busy lines).
834 This parameter is optional and is set to
839 this feature is considered experimental!
840 The parameter to this keyword is a string specifying a time range within
841 which this entry is valid.
842 The time specification consists of a list of weekdays and/or a holiday
843 indicator ( see also the
845 keyword in the system section ) separated by commas followed by an optional
846 daytime range specification in the form hh:mm-hh:mm.
847 The weekdays are specified as numbers from 0 to 6 and the number 7 for
850 .Bl -tag -width Ds -compact
869 The following examples describe the "T-ISDN xxl" tariff of the german Telekom:
870 .Bl -tag -width Ds -compact
871 .It Ar 1,2,3,4,5,6,09:00-18:00
872 Monday through Saturday, daytime 9:00 to 18:00
873 .It Ar 1,2,3,4,5,6,18:00-9:00
874 Monday through Saturday, nighttime 18:00 to 9:00
876 Sunday and on holidays, all 24 hours
879 The use of this keyword is optional.
882 .Sh IDLETIME CALCULATION AND SHORT-HOLD MODE
883 .Bl -tag -width ".Li incoming calls"
884 .It Li incoming calls
885 It is assumed that the calling side knows most about charging structures and
886 such and as a consequence only the keyword
887 .Em idletime-incoming
888 has a function for incoming calls.
890 For incoming calls the line is constantly monitored, and in case there was
891 not traffic taking place for the time in seconds specified by
892 .Em idletime-incoming
896 .Em idletime-incoming
897 is used as a last resort and is therefore set much higher than a charging
898 unit time: typical values are one to five minutes.
899 .It Li outgoing calls
900 Outgoing call disconnect time can be setup in one of three ways:
901 .Bl -tag -width ".Li shorthold mode"
904 .Em idle-algorithm-outgoing
910 .Em idletime-outgoing
913 The outgoing traffic is constantly monitored, and in case there was
914 not traffic taking place for the time in seconds specified by
915 .Em idletime-outgoing
918 Typical values in simple mode are 10 to 30 seconds.
919 .It Li shorthold mode for fixed unit charging
920 For shorthold mode, the
921 .Em idle-algorithm-outgoing
927 .Em idletime-outgoing
928 must be greater than 0 (zero);
930 must be \(>= 0 (zero).
932 |<unchecked-window>|<checkwindow>|<safetywindow>|
934 +------------------+-------------+--------------+
936 | |<-idle-time->|<earlyhangup->|
937 |<--------------unitlength--------------------->|
940 During the unchecked window which is (unitlength - (idle-time+earlyhangup))
941 in length, no idle check is done.
942 After the unchecked window has ended,
943 the line is checked for idle-time length if no traffic takes place.
945 there was traffic detected in the check-window, the same procedure is restarted
946 at the beginning of the next unit.
947 In case no traffic was detected during
948 the check-window, the line is closed at the end of the check window.
952 must (!) be greater than the sum of
953 .Em idletime-outgoing
956 .It Li shorthold mode for variable unit charging
957 For shorthold mode, the
958 .Em idle-algorithm-outgoing
964 .Em idletime-outgoing
965 must be greater than 0 (zero);
967 This shorthold mode is suitable when your calls are billed on
968 the elapse time of the call plus a fixed connection charge.
969 For example British Telecom bill this way.
971 Each call is divided into two periods, the first is the
973 period and the second is the
977 period starts 1 second before the first units time expires.
981 period if there is no traffic for
983 seconds the call is disconnected.
985 |<---unchecked------------------>|<------checked------>
986 +------------------+-------------+
988 |<--------------unitlength------->|
991 Experience shows that useful values for idle-time are from 15 to 30 seconds.
993 If idle-time is too short an application that is not yet finished with the
994 network will cause a new call to be placed.
998 .Bl -tag -width /etc/isdn/isdnd.rc -compact
999 .It Pa /etc/isdn/isdnd.rc
1000 The default configuration file for the
1013 daemon and this manual page were written by
1014 .An Hellmuth Michaelis Aq hm@FreeBSD.org .
1016 Additions to this manual page by
1017 .An Barry Scott Aq barry@scottb.demon.co.uk .