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.7 2007/05/17 08:19:03 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
82 .Bl -tag -width system
84 This keyword starts the system configuration section.
86 have a parameter and may be used only once.
87 The keyword is mandatory.
88 The following keywords are valid in the system configuration section:
89 .Bl -tag -width useacctfile
91 If this parameter is set to
93 accounting information is written even if the local site was not charged
94 or no charging information is available or is not subscribed.
97 Specifies the name of the accounting file which is used when the keyword
101 See also system keyword
103 If this keyword is omitted the system default is used.
106 If this parameter is set to
108 alias processing of telephone-number to name is enabled (see also the
114 Specifies the name of the telephone number-to-name alias database file shared
117 utility when alias processing is enabled via the
122 In full-screen mode, if this parameter is set to
124 ring the bell when connecting or disconnecting a call.
126 If this parameter is set to
128 the extended caller attributes "screening indicator" and "presentation
129 indicator" are written to the log-file.
133 Specifies the name of the holiday file containing the dates of holidays.
134 This file is used in conjunction with the
136 keyword to lookup the dates of holidays.
139 If this parameter is set to
141 date/time information from the exchange (if provided) is written to the
146 This keyword is used to specify the path/name of a mail program which
147 which is able to use the "-s" flag to specify a subject on its
149 In case of a fatal error exit of
151 this program is used to send mail to an administrator specified by
156 This keyword is used to specify the email address of someone to notify
157 in case of a fatal error exit of
162 .It Li monitor-allowed
163 If this parameter is set to
167 monitoring via a local or remote machine is enabled.
168 This parameter is optional and is set to
172 sets the TCP port number for remote monitoring.
173 This integer parameter is optional and is set to port 451 by default.
175 This keyword specifies a local socket name or a host or network for remote
179 specification may either be:
181 .Bl -tag -width Ds -compact
182 .It Ar the name of a local (UNIX-domain) socket
183 this MUST start with a "/", example: /var/run/isdn-monitor
184 .It Ar a dotted-quad host specification
186 .It Ar a dotted-quad network address with netmask
187 example: 192.168.1.0/24
188 .It Ar a resolvable host name
190 .It Ar a resolvable network name with netmask
191 example: up-vision-net/24
193 .It Li monitor-access
194 This keyword specifies the access rights for a previously used
197 The supported access rights are:
199 .Bl -tag -width Ds -compact
208 Specifies the name of the ratesfile.
209 If this keyword is omitted the system
213 This keyword is used to specify regular expressions.
215 more than once up to a compile time dependent value (currently set to 5 by
216 the MAX_RE definition in the source).
218 All specified regular expressions are compared to the log strings at runtime
219 and if a match is found, a program is run with the log text as a parameter
220 (see also the keyword
224 For an explanation how regular expressions are specified, please have a
231 regular expression syntax is supported here.
233 Hint: it might be necessary to properly quote the expression to avoid
234 improper interpretation by the configuration file parser.
237 This keyword is used to specify the name of a program which is run in
238 case a corresponding regular expression is matched by a logging string.
240 expects to find the program below the path
242 which is prepended to the string specified as a parameter to this keyword.
245 Specifies a suffix for renaming the log- and the accounting-filename.
247 rotatesuffix is used and a USR1 signal is sent to isdnd, the log-file and the
248 accounting file is not only closed and reopened but the old log-file is also
249 renamed to the former filename with the rotatesuffix string appended.
250 If this keyword is omitted, the log-files are just closed and reopened; this
251 is also the default behavior.
254 Specifies the real-time priority
256 runs at as an integer value in the range 0...31 with 0 being the highest
258 This keyword is optional; if not specified the process priority of
260 is not touched in any way.
263 This keyword is only available if
265 was compiled with -DUSE_RTPRIO.
267 If this parameter is set to
269 charging (if available) and accounting information is written to the
274 This keyword starts the controller configuration section.
276 have a parameter and may be used once for every controller.
279 The following keywords are valid in a controller
280 configuration section:
281 .Bl -tag -width useacctfile
283 This keyword is used to set the D-channel protocol for the S0-bus a
284 controller is connected to.
285 The following parameters are currently
288 .Bl -tag -width calledback -compact
290 The DSS1 or so-called "Euro-ISDN" D-channel protocol according to
291 ITU Recommendations Q.921 and Q.931.
293 An ISDN leased line with a single B-channel (called D64S in Germany).
296 This keyword is used like
297 .Li firmware Ns = Ns Ar /path/to/file
299 firmware to active controllers supported by the
302 This keyword is supported for all controller types,
304 .Dv I4B_CTRL_DOWNLOAD
305 ioctl to be invoked with the specified file
307 In systems equipped with both active and passive adapters,
308 and the passive cards being detected first, dummy
311 are required for the passive cards to get the correct firmwares to
315 This keyword starts one configuration entry.
316 It must not have a parameter.
317 This keyword must be used at least once.
318 The following keywords are valid in an entry section:
319 .Bl -tag -width unitlengthsrc
321 This keyword is used to specify the name of a program which is run in
322 case an incoming telephone connection specified
324 in its configuration entry.
328 expects to find this program beneath the path
330 which is prepended to the string specified as a parameter to this keyword.
333 is used to specify a time in seconds to wait before accepting a call.
335 keyword is only usable for incoming telephone calls (dialin-reaction = answer).
336 It is used to have a chance to accept an incoming call on the phone before
337 the answering machine starts to run.
338 The minimum value for the alert parameter
339 is 5 seconds and the maximum parameter allowed is 180 seconds.
342 The B channel layer 1 protocol used for this connection.
343 The keyword is mandatory.
344 The currently configurable values are:
346 .Bl -tag -width Ds -compact
350 No framing at all (used for telephony).
352 .It Li budget-calloutperiod
353 is used to specify a time period in seconds.
354 Within this period, the number of calls
356 .Em budget-calloutncalls
357 are allowed to succeed, any further attempt to call out will be blocked for the rest
358 of the time left in the time period.
360 .It Li budget-calloutncalls
361 The number of outgoing calls allowed within the time period specified by
362 .Em budget-calloutperiod .
364 .It Li budget-calloutsfile
365 A path/filename to which the number of successful callouts are written.
366 The contents of the file is preserved when it exists during startup of isdnd.
367 The format of this file is: start time, last update time, number of calls.
369 .It Li budget-calloutsfile-rotate
372 rotate budget-calloutsfile every night when an attempt is made to update
373 the file on a new day.
374 The statistics for the previous day are written to
375 a file with the filename specified by budget-calloutsfile to which a hyphen
376 and the new day's (!) day of month number is appended.
378 .It Li budget-callbackperiod
379 .It Li budget-callbackncalls
380 .It Li budget-callbacksfile
381 .It Li budget-calloutsfile-rotate
383 .Em budget-calloutperiod ,
384 .Em budget-calloutncalls ,
385 .Em budget-calloutsfile ,
387 .Em budget-calloutsfile-rotate
389 These are used to specify the budgets for calling back a remote site.
391 The time in seconds to wait between hanging up the call from a remote site
392 and calling back the remote site.
394 .It Li calledbackwait
395 The time in seconds to wait for a remote site calling back the local site
396 after a call from the local site to the remote site has been made.
399 This causes the contents of the specified entry to be copied from the
400 existing named entry to the current one.
401 When using this feature at least a new entry specific
405 value should be specified for the current entry.
407 specifies a program run every time after a connection is established and
408 address negotiation is complete (i.e.: the connection is usable).
410 expects to find the program below the path
412 which is prepended to the string specified as a parameter to this keyword.
413 The programs specified by connect and disconnect will get the following
414 command line arguments: -d (device) -f (flag) [ -a (addr) ] where
416 is the name of device, e.g. "isp0",
418 will be "up" if connection just got up, or "down" if interface changed to down
421 the address that got assigned to the interface as a dotted-quad ip address
422 (optional, only if it can be figured out by isdnd).
424 .It Li dialin-reaction
425 Used to specify what to do when an incoming connection request is received.
426 The keyword is mandatory.
427 The currently supported parameters are:
429 .Bl -tag -width calledback -compact
431 Accept an incoming call.
433 Reject an incoming call.
435 Ignore an incoming call.
437 Start telephone answering for an incoming voice call.
439 When a remote site calls, hang up and call back the remote site.
442 This keyword is used to configure what type of dialout mode is used.
443 The keyword is mandatory.
444 The currently supported parameters are:
446 .Bl -tag -width Ds -compact
448 Normal behavior, call the remote site which is supposed to accept the call.
450 Callback behavior, call the remote side which rejects the call and calls
454 When dialing or re-dialing and this parameter is set to
456 the dial retry time is added with a random value (currently 0...3 seconds)
457 to minimize the chance of two sites dialing synchronously so each gets a busy
458 each time it dials because the other side is also dialing.
460 The number of dialing retries before giving up.
463 gives an unlimited number of retries!
466 This keyword is used to configure if incoming and outgoing, incoming-only or
467 outgoing only connections are possible.
468 The keyword is optional, the default is
471 The currently supported parameters are:
473 .Bl -tag -width Ds -compact
475 Normal behavior, connection establishment is possible from remote and local.
477 Only incoming connections are possible.
479 Only outgoing connections are possible.
481 .It Li disconnectprog
482 specifies a program run every time after a connection was shut down.
484 expects to find the program below the path
486 which is prepended to the string specified as a parameter to this keyword.
489 is used to configure the number of unsuccessful tries (= retry cycles!) before
490 the interface is disabled (for
493 (see also the keyword
496 This keyword is optional.
498 is used to configure the time in seconds an interface is disabled
499 after the configured number of
501 (see also the keyword
504 This keyword is optional and is set to 60 seconds by default.
506 A (safety) time in seconds which specifies the time to hang up before an
507 expected next charging unit will occur.
509 .It Li idle-algorithm-outgoing
510 The algorithm used to determine when to hang up an outgoing call when the
512 The current algorithms are:
514 .Bl -tag -width calledback -compact
516 idle algorithm which assumes fixed sized charging units during the whole call.
518 idle algorithm which assumes that the charging is time based after the first
519 units time has expired.
521 .It Li idletime-outgoing
522 The time in seconds an outgoing connection must be idle before hanging up.
523 An idle timeout of zero disables this functionality.
525 .It Li idletime-incoming
526 The time in seconds an incoming connection must be idle before hanging up.
527 An idle timeout of zero disables this functionality.
529 .It Li isdncontroller
530 The ISDN controller number to be used for connections for this entry.
533 The ISDN controller channel number to be used for connections for this entry.
534 In case a channel is explicitly selected here, the SETUP message will request
535 this channel but mark the request as
537 (the indicated channel is preferred) instead of exclusive (only the indicated
538 channel is acceptable).
539 Thus the exchange is still free to select another
540 than the requested channel!
542 .It Li isdntxdel-incoming
543 A delay value suitable for the
545 kernel subroutine to delay the transmission of the first packet after a
546 successful connection is made by this value for
549 The specification unit is 1/100 second.
551 this feature and is the default value.
552 This feature is implemented (and makes
555 IP over raw HDLC ISDN driver.
557 .It Li isdntxdel-outgoing
558 A delay value suitable for the
560 kernel subroutine to delay the transmission of the first packet after a
561 successful connection is made by this value for
564 The specification unit is 1/100 second.
566 this feature and is the default value.
567 This feature is implemented (and makes
570 IP over raw HDLC ISDN driver.
572 .It Li local-phone-dialout
573 The local telephone number used when the local site dials out.
575 out to a remote site, the number specified here is put into the
576 .Em "Calling Party Number Information Element" .
578 This keyword is mandatory for the
580 user-land interfaces.
581 .It Li local-phone-incoming
582 The local telephone number used for verifying the destination of incoming
584 When a remote site dials in, this number is used to verify that it
585 is the local site which the remote site wants to connect to.
588 .Em "Called Party Number Information Element"
589 got from the telephone exchange.
591 This keyword is mandatory for the
595 Defines a symbolic name for this configuration entry.
597 use this name in the full-screen display for easy identification of a link
598 to a remote site and for accounting purposes.
600 .It Li maxconnecttime
601 Specify a maximum connection time in seconds.
602 Use this to define an absolute
603 upper limit for a connection on the B-channel to last.
605 This feature is used to limit the connection time, _not_ number of attempts
606 to establish a connection: when using this please take care to also enable
607 the use of budgets to limit the connection establish attempts (otherwise
608 the line will cycle thru an endless loop of connections and reconnections
609 which will have an undesired effect on your telco bill)!
610 .It Li ppp-auth-paranoid
613 the remote site is not required to prove its authenticity for connections
614 that are initiated by the local site.
617 and requires the remote site to always authenticate.
619 This keyword is only used if
621 has been set to pap or chap for an
625 .It Li ppp-auth-rechallenge
628 if the other side does not support re-challenging for chap.
631 which causes verification of the remote site's authenticity once in a while.
633 This keyword is only used if
635 has been set to chap for an
639 .It Li ppp-expect-auth
640 The local site expects the authenticity of the remote site to be proved by
641 the specified method.
642 The supported methods are:
644 .Bl -tag -width Ds -compact
646 Do not require the other side to authenticate.
647 Typical uses are dial-out to an ISP
648 (many ISPs do not authenticate themselves to clients)
649 or offering anonymous dial-in at the local site.
651 The preferred authentication method, which does not require a password to be sent
654 The unprotected authentication method, which allows anybody watching the wire
655 to grab name and password.
659 .Em ppp-auth-paranoid
664 outgoing connections will not require the remote site to authenticate itself.
666 This keyword is only used for the
670 .It Li ppp-expect-name
671 The name that has to be provided by the remote site to prove its authenticity.
673 This keyword is only used if
675 has been set to pap or chap for an
679 .It Li ppp-expect-password
680 The secret that has to be provided by the remote site to prove its authenticity.
682 This keyword is only used if
684 has been set to pap or chap for an
689 The authentication method required by the remote site.
690 The currently supported parameters are:
692 .Bl -tag -width Ds -compact
694 The remote site does not expect or support authentication.
696 The preferred authentication method, which does not require a password to be sent
699 The unprotected authentication method, which allows anybody watching the wire
700 to grab name and password.
703 This keyword is only used for the
708 The authentication name sent to the remote site.
710 This keyword is only used if
712 has been set to pap or chap for an
716 .It Li ppp-send-password
717 The secret used to prove the local site's authenticity to the remote site.
719 This keyword is only used if
721 has been set to pap or chap for an
726 The rate entry used from the rates file.
729 For example, ratetype=0 selects lines beginning "ra0" in /etc/isdn/isdnd.rates;
730 (typically ra0 lines are a set of tables for local call rates on different
731 days of the week & times per day).
733 The time in seconds to wait between dial retries.
735 .It Li remdial-handling
736 is used to specify the dialout behavior in case more than one outgoing
738 The currently supported parameters are:
740 .Bl -tag -width Ds -compact
742 For every new (non-retry) call setup, start with the first number.
744 For every new (non-retry) call setup, start with the last number with
745 which a successful connection was made.
747 For every new (non-retry) call setup, start with the next number which
748 follows the last one used.
750 .It Li remote-phone-dialout
751 The remote telephone number used when the local site dials out.
753 out to a remote site, the number specified here is put into the
754 .Em "Called Party Number Information Element" .
756 This keyword is mandatory for the
759 It may be specified more than once to try to dial to several
760 numbers until one succeeds.
761 .It Li remote-phone-incoming
762 The remote telephone number used to verify an incoming call.
764 dials in, this number is used to verify that it is the correct remote site
765 which is herewith authorized to connect into the local system.
767 is compared against the
768 .Em "Calling Party Number Information Element"
769 got from the telephone exchange.
771 This keyword is mandatory for the ipr interfaces.
773 This keyword may have a wildcard parameter '*' to permit anyone dialing in.
775 The length of a charging unit in seconds.
776 This is used in conjunction with
777 the idletime to decide when to hang up a connection.
780 This keyword is used to specify from which source
782 takes the unitlength for short-hold mode.
783 The currently configurable values are:
785 .Bl -tag -width Ds -compact
787 Then unitlength is not specified anywhere.
789 Use the unitlength specified on the command line.
791 Use the unitlength specified in the configuration file with the keyword
794 Use the unitlength from the ratesfile specified in the configuration
795 file with the keyword
798 Use a dynamically calculated unitlength in case AOCD is subscribed on
800 (AOCD is an acronym for ``Advice Of Charge During the call''
801 which is a service provided by the telecommunications (ie phone) provider,
802 to indicate billable units).
805 Specifies the user-land interface which is used for interfacing ISDN B channel
806 data to the user-land.
807 The keyword is mandatory.
808 This keyword accepts the following parameters:
810 .Bl -tag -width Ds -compact
812 This parameter configures a raw HDLC IP over ISDN interface.
814 This parameter configures a synchronous PPP over ISDN interface.
816 This specifies a Raw B CHannel access interface.
820 configures a ISDN B-channel to NetGraph interface.
823 Specifies the unit number for the device which is specified with
826 is used to enable the use of the keywords
830 in the entries section(s).
833 daemon to dynamically enable and disable the IP interfaces to avoid excessive
834 dialing activities in case of transient failures (such as busy lines).
835 This parameter is optional and is set to
840 this feature is considered experimental!
841 The parameter to this keyword is a string specifying a time range within
842 which this entry is valid.
843 The time specification consists of a list of weekdays and/or a holiday
844 indicator ( see also the
846 keyword in the system section ) separated by commas followed by an optional
847 daytime range specification in the form hh:mm-hh:mm.
848 The weekdays are specified as numbers from 0 to 6 and the number 7 for
851 .Bl -tag -width Ds -compact
870 The following examples describe the "T-ISDN xxl" tariff of the german Telekom:
871 .Bl -tag -width Ds -compact
872 .It Ar 1,2,3,4,5,6,09:00-18:00
873 Monday through Saturday, daytime 9:00 to 18:00
874 .It Ar 1,2,3,4,5,6,18:00-9:00
875 Monday through Saturday, nighttime 18:00 to 9:00
877 Sunday and on holidays, all 24 hours
880 The use of this keyword is optional.
883 .Sh IDLETIME CALCULATION AND SHORT-HOLD MODE
884 .Bl -tag -width "incoming calls
885 .It Li incoming calls
886 It is assumed that the calling side knows most about charging structures and
887 such and as a consequence only the keyword
888 .Em idletime-incoming
889 has a function for incoming calls.
891 For incoming calls the line is constantly monitored, and in case there was
892 not traffic taking place for the time in seconds specified by
893 .Em idletime-incoming
897 .Em idletime-incoming
898 is used as a last resort and is therefore set much higher than a charging
899 unit time: typical values are one to five minutes.
900 .It Li outgoing calls
901 Outgoing call disconnect time can be setup in one of three ways:
902 .Bl -tag -width "shorthold mode
905 .Em idle-algorithm-outgoing
911 .Em idletime-outgoing
914 The outgoing traffic is constantly monitored, and in case there was
915 not traffic taking place for the time in seconds specified by
916 .Em idletime-outgoing
919 Typical values in simple mode are 10 to 30 seconds.
920 .It Li shorthold mode for fixed unit charging
921 For shorthold mode, the
922 .Em idle-algorithm-outgoing
928 .Em idletime-outgoing
929 must be greater than 0 (zero);
931 must be \(>= 0 (zero).
933 |<unchecked-window>|<checkwindow>|<safetywindow>|
935 +------------------+-------------+--------------+
937 | |<-idle-time->|<earlyhangup->|
938 |<--------------unitlength--------------------->|
941 During the unchecked window which is (unitlength - (idle-time+earlyhangup))
942 in length, no idle check is done.
943 After the unchecked window has ended,
944 the line is checked for idle-time length if no traffic takes place.
946 there was traffic detected in the check-window, the same procedure is restarted
947 at the beginning of the next unit.
948 In case no traffic was detected during
949 the check-window, the line is closed at the end of the check window.
953 must (!) be greater than the sum of
954 .Em idletime-outgoing
957 .It Li shorthold mode for variable unit charging
958 For shorthold mode, the
959 .Em idle-algorithm-outgoing
965 .Em idletime-outgoing
966 must be greater than 0 (zero);
968 This shorthold mode is suitable when your calls are billed on
969 the elapse time of the call plus a fixed connection charge.
970 For example British Telecom bill this way.
972 Each call is divided into two periods, the first is the
974 period and the second is the
978 period starts 1 second before the first units time expires.
982 period if there is no traffic for
984 seconds the call is disconnected.
987 |<---unchecked------------------>|<------checked------>
988 +------------------+-------------+
990 |<--------------unitlength------->|
993 Experience shows that useful values for idle-time are from 15 to 30 seconds.
995 If idle-time is too short an application that is not yet finished with the
996 network will cause a new call to be placed.
1000 .Bl -tag -width /etc/isdn/isdnd.rc -compact
1001 .It Pa /etc/isdn/isdnd.rc
1002 The default configuration file for the
1015 daemon and this manual page were written by
1016 .An Hellmuth Michaelis Aq hm@FreeBSD.org .
1018 Additions to this manual page by
1019 .An Barry Scott Aq barry@scottb.demon.co.uk .