ATTENTION! The following header is not fully valid yet!
From: dl4mhk@lrz.uni-muenchen.de (Bernhard Hailer)
Newsgroups: de.alt.comm.isdn4linux,de.answers,news.answers
Subject: ISDN4linux-FAQ
Followup-To: de.alt.comm.isdn4linux
Summary: This posting describes what every reader of de.alt.comm.isdn4linux
         ought to know about ISDN under Linux using isdn4linux.  
         This is an English translation of the original document, which is
         in German, like the Newsgroup.
Archive-name: eng-i4l-faq
Posting-frequency: monthly
Last-modified: 18-Mar-97
URL: http://www.lrz-muenchen.de/~ui161ab/www/isdn/

!1FAQ for isdn4linux - Version 1.3.3!br (translation 3-Oct-97)

[Translator's notes]!br
--5-May-97: Translation complete for 1.3.2 (except for the proofreading)! !br
--8-May-97: Added correction for Italy.!br
--25-May-97: Numerous corrections submitted by Paul Slootman!br
--27-May-97: Minor cleanup, noted additional countries!br
--27-Sep-97: Added more translator's notes for various countries and 2.0.30!br
--3-Oct-97: Added note for MSNs in the UK

This FAQ is protected by the GNU General Public License (GPL) Version 2;
(C) 1996 Volker Götz, Bernhard Hailer, Matthias Heßler, Michael Hipp and
Rainer May.!br
Distribution under the terms of the GPL is welcome. However,
we offer NO GUARANTEES for the information herein. Please read the GNU
General Public License for further details. A printed version is available
from !br
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
An electronic version is available from the authors.!br
!br
Original FAQ by Volker Goetz <volker@oops.franken.de>, (c) 1995!br
Comprehensive edition and additions (1996, 1997):!br
Matthias Hessler <hessler@wi-inf.uni-essen.de>,!br
Bernhard Hailer <Bernhard.Hailer@lrz.uni-muenchen.de>,!br
Scott Hanson <shanson@shcon.com> (English translation),!br
Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> (many syncPPP questions)!br
Rainer May <r_may@khavi.desaster.heide.de> (i4l and networks)!br
!br
English translation coordinated by Scott Hanson <shanson@shcon.com>
with contributions from:!br
Sven Tervoort <sveneric@xs4all.nl>!br
Matthias Hessler <hessler@wi-inf.uni-essen.de>!br
Erik Corry <erik@arbat.com> !br
Paul Slootman <paul@wau.mis.ah.nl>!br
!br
About the format of this FAQ:!br
The basis of this FAQ is the i4l mailing list. We checked the messages posted
to the list and included relevant messages (usually) in the form of quotes.
These quotes are not always 100% identical with the original; spelling errors
have been corrected, and some messages were translated from English into German.
Whoever notices that they have been incorrectly quoted, or would rather not have
their Email address noted, please let us know - we'll ... in the next version of
the FAQ. The same applies in cases where we have quoted someone without noting
it as such. The knowledge of the FAQ authors is noted without quoting ourselves.
Remarks from the FAQ authors about quotes are noted like this:
[This is a remark - Ed.]!br
The countless links in this documents are not always complete and with time may
no longer be correct. We do not have the time to check them all. If you
discover a bad link, please let us know.!br
In the 7bit version of this FAQ, all new or rewritten questions are marked with
a change bar in the left margin. (Does anyone have an idea, how we can mark this
in the HTML version?)!br
!br

Additions, improvements and other suggestions are always welcome (also
correction of typographical errors!), preferably send "diffs" from the ASCII
version to Matthias and Bernhard. Thank you very much in advance!!br
!br

This FAQ can be found at:!br
  !link http://www.lrz-muenchen.de/~ui161ab/www/isdn/;!br
or:!br
  !link ftp://ftp.franken.de/pub/isdn4linux/FAQ;!br
or:!br
  !link ftp://ftp.pop.de/pub2/linux/isdn4linux/FAQ;!br
!br
!br


!2General information about isdn4linux

!old
Q: What is isdn4linux?
A: isdn4linux is a set of kernel modules that "teach" the Linux
   kernel ISDN. It consists of a main module ("isdn") and the
   actual hardware drivers that control the specific cards.

!old
Q: What can isdn4linux do?
A: isdn4linux controls ISDN PC cards and can emulate a modem with the
   Hayes command set ("AT" commands). The possibilities range from 
   simply using a terminal program to connections via HDLC (using included
   devices) to full connection to the Internet with PPP to audio applications.

Q: What can't isdn4linux do (yet)?
A: There is no !u1full duplex!u0 audio connection possible.
   Some protocols are still missing (V.110, American protocols).

Q: Can I use isdn4linux in North America?
A: See this question in the section "National Peculiarities".

Q: What do I need for isdn4linux?
A: isdn4linux has been part of the Linux kernel since version 1.3.59.
   In addition, you need the package isdn4k-utils-2.0.tar.gz and
   possibly the HiSax driver.

!old
Q: How can I get isdn4linux?
A: Via FTP:!br 
     The package is at !link ftp://ftp.franken.de/pub/isdn4linux; and various
     mirrors.!br
   Via Modem/ISDN:!br 
     From the Linux server of the Incubus BBS (Login gast,
     cd /pub/linux/isdn4linux, download via ZModem with 'sz filename') . 
     The server can be reached at the following numbers
!verbon
       +49 931   781464   Zyxel U-1496E      V.32(bis), V.42(bis), Zyxel 19200 
       +49 931   781465   Atrie 1914A        V.32(bis), V.42(bis), V32terbo
       +49 931   781467   Atrie 1914A        V.32(bis), V.42(bis), V32terbo
       +49 931   781468   Atrie 1914A        V.32(bis), V.42(bis), V32terbo
!verboff
     New ringdown (16 Lines. First log in as 'bbs'):
!verbon
       +49 931 79002055   Motorola 3400      V.32(bis), V.42(bis), V.34
!verboff
     ISDN (also log in 'bbs') : 
!verbon
       +49 931  7840724   ICN                X.75    2 B channels
       +49 931  7841020   ICN                X.75    2 B channels
       +49 931  7841060   ICN                X.75    2 B channels 
       +49 931  7841070   ICN                X.75    2 B channels 
       +49 931  7841080   ICN                X.75    2 B channels 
!verboff
Here is a list of mirrors; thanks to Herbert Rosmanith
<herp@wildsau.idv-edu.uni-linz.ac.at> for compiling it initially. Whoever 
knows of any mirrors not listed here, please let us know!
!verbon
  !link ftp://ftp.cs.tu-berlin.de/pub/net/isdn/isdn4linux/;
  !link ftp://ftp.fokus.gmd.de/pub/Linux/isdn/isdn4linux/;
  !link ftp://ftp.franken.de/pub/isdn4linux/;
  !link ftp://ftp.kiss.de/pub/linux/isdn4linux/;
  !link ftp://ftp.leo.org/pub/comp/os/unix/linux/isdn/isdn4linux/;
  !link ftp://linux.mathematik.th-darmstadt.de/pub/linux/mirrors/misc/isdn4linux/;
  !link ftp://ftp.nvg.unit.no/pub/linux/isdn/;
  !link ftp://ftp.pop.de/pub/linux/isdn/;
  !link ftp://ftp.rz.fh-hannover.de/pub/linux/local/isdn4linux/;
  !link ftp://ftp.rz.hu-berlin.de:/pub/linux/isdn4linux/;  
  !link ftp://ftp.tu-dresden.de/pub/soft/isdn/isdn4linux/;
  !link ftp://ftp.uni-mainz.de/pub/internet/starter-kit/isdn/isdn4linux/;
  !link ftp://ftp.uni-wuppertal.de/pub/linux/isdn4linux/;
  !link ftp://ftp.xlink.net/pub/mirror.ftp.franken.de/isdn4linux/;
  !link ftp://fvkma.tu-graz.ac.at/pub/isdn4linux/; 
  !link ftp://wildsau.idv.uni-linz.ac.at/pub/isdn4linux/;
!verboff

!old
Q: What documents should I read first?
A: 
!verbon
   ISDN kernel subsystem:/usr/src/linux/Documentation/isdn/README
   ISDN cards:           /usr/src/linux/Documentation/isdn/README.<card>
   Synchronous PPP:      /usr/src/linux/Documentation/isdn/README.syncppp
                         /usr/src/linux/Documentation/isdn/README.syncPPP.FAQ
   Voice capability:     /usr/src/linux/Documentation/isdn/README.audio
   ISDN Utilities:       /usr/src/isdn4k-utils-<version>/README(.*)
   Many of the utilities also have man pages!
        In a Suse distribution the following information might also be
        helpful:
        Synchronous PPP:       /usr/doc/faq/faq/PPP-FAQ
        Email configuration:  /usr/doc/howto/mini/Mail-Queue.gz

!verboff   

Q: What helpful links are there about isdn4linux?
A: Scripts and installation tips from several people:!br
     !link http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html;!br
   I4l, syncPPP, email, Usenet, Voicebox, this FAQ and more:!br
     !link http://www.lrz-muenchen.de/~ui161ab/www/isdn/;!br
   Michael Hipp's page (ipppd):!br
     !link http://www.sfs.nphil.uni-tuebingen.de/~hipp/isdn/;!br
   Chargeint instructions:!br
     !link http://www.provi.de/~gvz/chargeint.html;!br
   Stefan Nehlsen's instructions for syncPPP:!br
     !link http://www.techfak.uni-kiel.de/~stn/i4l/;!br
   xled (formerly xvboxled) is at:!br
     !link fb4-1112.uni-muenster.de/pub/ffwd/;!br
   Example configurations for isdn4linux are said to be at:!br
     !link http://www.datenhighway.com/isdn4linux.html;!br
   This FAQ along with isdn4linux is at:!br
     !link ftp://ftp.franken.de/pub/isdn4linux/;!br
   This FAQ is also so:!br
     !link ftp://ftp.pop.de/pub2/linux/isdn4linux/FAQ;

!old
Q: Is there a mailing list for isdn4linux? 
A: Yes, there is. To subscribe, send an email message to 
   "majordomo@hub-wue.franken.de". The subject doesn't matter. The message
   should read  "subscribe isdn4linux <Email address>", where <Email
   address> is the address to which mail from the list should be sent.
   Currently there are about 20-50 messages per day.

!old
Q: How can I have myself removed from the mailing list?
A: To unsubscribe, send another email message to 
   majordomo@hub-wue.franken.de - the subject doesn't matter. The message 
   should read: "unsubscribe isdn4linux <Email address>", where 
   <Email address> is the address to which mail messages from the 
   mailing list had been sent.

Q: Is the mailing list mirrored to a newsgroup?
A: Yes, the mailing list can also be accessed at de.alt.comm.isdn4linux -
   a bidirectional gateway makes sure that one can also answer postings.

!old
Q: Is there an archive of the isdn4linux mailing list?
A: Yes, the messages are saved (unsorted) at hub-wue.franken.de.
   They are collected by month. To access the archive, send Email to 
   "majordomo@hub-wue.franken.de". The subject doesn't matter. The
   following commands are possible: 
!verbon
     index isdn4linux          - list which archive files are available
     get isdn4linux <filename> - retrieves the file <filename>
!verboff
   The archives are named "archiv.<year><month>, so "archiv.9610"
      is the archive for October 1996.
   An archive of the mailing list is also available via FTP:!br
     !link
     ftp://ftp.uni-oldenburg.de/pub/unix/linux/isdn/isdn4linux/Mailing-List;
   Another archive is available (according to Sascha Ottolski
   <sascha@alzhimer.isdn.cs.tu-berlin.de>) at:!br
     !link http://wws.mathematik.hu-berlin.de/ldr/ISDN/isdn4linux/;

!old
Q: In which countries does isdn4linux work?
A: [Translator's note: I've made some additions to the original list.]!br
We are aware of the following countries:
!verbon
     Austria
     Belgium
     Finland
     France
     Germany
     Israel
     Italy
     Norway
     Peru
     Portugal
     Spain
     Sweden
     Switzerland
     The Netherlands
     United Kingdom
     USA
!verboff

[Translator's note: I've also seen messages on the mailing list from
isdn4linux users in Canada, Denmark, Hungary and Slovenia . I've also
seen mentions of isdn4linux from Australia, the Czech Republic and
Poland, but I'm not sure if it is actually in use in those countries.]

!old
Q: Is isdn4linux approved for use by the telecommunications authorities?
A: Germany:!br
     That depends on the driver used. For active cards, the approval 
     covers the entire card including its firmware. Thus the approval 
     also covers the use of these cards with isdn4linux. The Teles 16.3
     and the Elsa QS1000 drivers are currently certified in Germany (and
     hence in most european countries). This applies to the 2.0.36
     kernel version.!br
   Other countries:!br 
     Besides those countries that accept a german certification,
     we don't have any information... does anyone know more?

!old
Q: What is the most recent version?
A: Kernel 2.0.36 contains a very up to date version of the ISDN drivers.
   We recommend that you use that kernel version.!br
   Together with the 2.0.36 kernel, a new utilities package has been
   released, which is a MUST (old versions of the utilities will not
   work with the new kernel). The utilities are available at
   !link ftp://ftp.franken.de/pub/isdn4linux/v2.0/;
   and the current filename is isdn4k-utils-3.0beta1.tar.gz (also
   available as .bz2). Check first if there is a newer version.

Q: What hardware is !u1NOT!u0 supported?
A: For not (with the exception of ICN) no active ISDN cards are supported,
   except the AVM B1, for which there an alpha driver as binary only.  

Q: Does isdn4linux support external terminal adapters?
A: No, but it doesn't need to. Terminal adapters are designed to behave
   either like a modem or like a network card. Linux already supports both
   modems and network cards without isdn4linux - so no special ISDN driver
   is necessary (which usually greatly simplifies the configuration),

!old
Q: Which internal cards are supported?
A: Right now there is a driver for all card with a certain Siemens
   chip set (HiSax driver), that also supports Plug&Play cards.  See
   the next question for details.!br
   The HiSax driver has superseded the old Teles driver, which is
   therefore is not being further developed. For this reason, the
   Teles driver has many more bugs and should not be used any
   longer.!br 
   Further drivers includes that for the (active) ICN card
   (ICN driver), as well as that for the PCbit card (Octal,
   Portugal).!br
   There used to be a (special) driver for the ITK ix1 micro" from
   Frank Mohr <mohr@fhdacom2.fhrz.fh-darmstadt.de>, but that is not
   included in HiSax 2.0.  It supports the following cards:
!verbon
       * ITK ix1 micro V2.0 and V2.1
       * Cisco 200
       * ITK Columbus
!verboff
   Finally there is also a (alpha) driver for the active AVM B1,
   with its own peculiarities. See the question "What about the active AVM B1?".
                                     
!old
Q: What is the new HiSax driver all about?
A: It is a new driver that should support all passive cards that are based on a
   certain Siemens chip set. Currently it supports:
!verbon
	* Teles 8.0/16.0/16.3 and compatible ones
	* Teles 16.3c
	* Teles S0/PCMCIA
	* Teles PCI
	* Teles S0Box
	* Creatix S0Box
	* Creatix PnP S0
	* Compaq ISDN S0 ISA card
	* AVM A1 (Fritz, Teledat 150)
	* AVM Fritz PCMCIA
	* AVM Fritz PnP
	* AVM Fritz PCI
	* ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8
	* ELSA Quickstep 1000
	* ELSA Quickstep 1000PCI
	* ELSA Quickstep 3000 (same settings as QS1000)
	* ELSA Quickstep 3000PCI
	* ELSA PCMCIA
	* ITK ix1-micro Rev.2
	* Eicon.Diehl Diva 2.0 ISA and PCI
	  (S0 and U interface, no PRO version)
	* Eicon.Diehl Diva Piccola
	* ASUSCOM NETWORK INC. ISDNLink 128K PC adapter
	  (order code I-IN100-ST-D)
	* Dynalink IS64PH
	  (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter)
	* PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink)
	* HFC-2BS0 based cards (TeleInt SA1)
	* Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+)
	* Sedlbauer Speed Star/Speed Star2 (PCMCIA)
	* Sedlbauer ISDN-Controller PC/104
	* USR Sportster internal TA (compatible Stollmann tina-pp V3)
	* ith Kommunikationstechnik GmbH MIC 16 ISA card
	* Traverse Technologie NETjet PCI S0 card
	* Dr. Neuhaus Niccy PnP/PCI

	Note: PCF, PCF-Pro: up to now, only the ISDN part is supported
	      PCC-8: not tested yet
	      Teles PCMCIA is EXPERIMENTAL
	      Teles 16.3c is EXPERIMENTAL
	      Teles PCI is EXPERIMENTAL
	      Teles S0Box is EXPERIMENTAL
	      Eicon.Diehl Diva U interface not tested
!verboff
   Karsten Keil <keil@temic-ech.spacenet.de> wrote on 14 Oct 1996:
!verbon
     The first goal of the HiSax driver was to add support for more ISDN
     cards to i4l, and this goal remains. Secondly, it should be as simple
     as possible to configure and not appear to work when there is a
     hardware problem (IRQ, reset problems with Teles). I can't fix the
     hardware problems directly, but driver will not load if such problems
     appear. Third (this part has just now begun) is to fully rewrite the
     state machines into a complete DSS1 or 1TR6 that could be approved
     (which doesn't mean that I personally can or want to obtain approval).
     In addition, if possible I'd like to support US ISDN protocols, so
     that i4l can be used outside of Europe. Also, further l2/l3 protocols
     should be added (e.g. V110), leased line support.... a lot of work,
     that I'm sure I cannot do alone. Anyone with any knowledge of
     programming and ISDN (I myself first heard of ISDN in January, and my
     work has nothing to do with ISDN... I learned everything on my own
     time), and anyone who wants to help can contact me.
!verboff

Q: What about the active AVM B1?
A: Andreas Schultz <aschultz@hppool.cs.Uni-Magdeburg.de> has written a driver,
   that can be found (as an alpha version at:
   !link http://www.cs.uni-magdeburg.de/~aschultz/avmb1-1.2-alpha.tar.gz;
   Because he had to sign an NDA, the driver is available only as a binary.

Q: Now that my AVM produces so many interrupts with the HiSax driver,
   which is the best passive card to use with HiSax?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 12. Nov 1996:!br
   It shouldn't make that much difference. As for the load on the system, the 
   Fritz! is probably the worst in the long run [see also the question 
   "My AVM card produces very many interrupts" in HiSax part if the 
   Troubleshooting section], but maybe I can get that right with the timer,
   since that's only noticeable when, for example, the system busy with 
   rendering for an entire night.!br
   Karsten Keil <keil@temic-ech.spacenet.de> wrote further on 2. Dec 1996
   on stability and lack of bugs:
!verbon
        1st choice ELSA
           ELSA (as opposed to AVM) makes the specifications available.
        2nd choice Creatix PNP
           Creatix employees are also not completely negative towards Linux ;-). 
           By the way, this card has been developed by Creatix and
           is not identical to the Teles 16.3 PNP.
!verboff
          
!old
Q: Does isdn4linux support external ISDN adapters?
A: No, isdn4linux supports only internal cards. External ISDN adapters
   can be accessed either like an analog modem or like a network card, and
   therefore do not need isdn4linux.

!old
Q: Which ISDN modes are supported?
A: 
!verbon
    56k asynchronous : no
    64k synchronous  : yes
   128k synchronous  : yes (channel bundling - see the next question)
!verboff

Q: Does isdn4linux support channel bundling?
A: The current version of isdn4linux support 2 methods of channel 
   bundling:!br
     - !b1MPPP!b0 (based on sync PPP)!br
     - !b1Raw bundling!b0 (configured by so-called slave channels)!br
   Both variants have their own advantages and disadvantages  See the question "
   How do I use channel bundling?" in the "Channel bundling" section below.!br                                                             
   Warning: Channel bundling saves time, but not any telephone charges.
   Only if you really need the extra bandwidth is it useful.
   
!old
Q: What is the difference between an active and a passive ISDN card?
A: An active ISDN card handles most of the ISDN connection protocols 
   (dialing, accepting calls, etc.) itself. The card includes a kind 
   of minicomputer with its own
   software (firmware). With a passive card, the computer in which
   the card is installed has to perform these functions.

!old
Q: Are there sites that offer guest access where I can test my 
   isdn4linux setup?
A: Yes, the following sites offer guest access for modem emulation or IP:!br
   - Eberhard Moenkeberg <emoenke@gwdg.de>:
!verbon
     * Welcome to Linux at eberhard.moenkeberg.de (LAN, 192.168.99.1).
       Under ++49-551-7704103, ISDN NetCalls (HDLC-trans-rawip)
       for 192.168.99.1 get accepted. You should come as 192.168.*.*
       because sometimes my "default" route is not your way.
       /ftp is exported for NFS; try "showmount -e".
       You can login as "guest" without password.
       FTP as "gast" with password "gast" avoids the restricted shell.
     * Under ++49-551-7704102, a 28800 bps modem and a Creatix ISDN 
       card (HDLC only, not X.75) are listening for logins.
!verboff
     With the net setup from!br 
     !link ftp://ftp.gwdg.de/pub/linux/isdn/isdn4linux-gwdg/rc.isdn-Beispiel;!br
     you can test NetCall at 551-7704103 (works as is within Germany,
     from outside Germany you just have to change the number).!br
   - Gernot Zander <hifi@scorpio.in-berlin.de>:
!verbon
     There's a "gast" at +49 30 67 19 81 01 (X.75, mgetty). There's the 
     stones-html-page with pics in postscript to test downloading. Whoever
     needs a target to call can use it. At ...81 03 there's a getty with
     HDLC. As guest you enter a kind of BBS  and can read some news.
!verboff

!old
Q: Can I combine isdn4linux with diald?
A: Yes, see the "Diald" part of the "Configuration" section.

!old
Q: Can I use isdn4linux as an answering machine?
A: Yes, voice support is possible with the current version of isdn4linux.
   You can either use "vgetty" from Gert Doerings "mgetty+sendfax", 
   or "vboxgetty" from Michael Herold, which is made especially for
   isdn4linux.
   The latter can be found at:
   !link ftp://ftp.franken.de/pub/isdn4linux/contributions/

Q: Can I fax with isdn4linux?
A: Several groups are working on fax software
   that will work together with isdn4linux. At the moment, it looks like
   it will never work... because timing is critical
   for fax software, and Linux doesn't yet have a real time environment. 
   If you do want to fax, you'll have to install an analog fax modem 
   along with your ISDN card.

!old 
Q: Is videotex/Btx/Datex-J possible with isdn4linux?  
A: Yes, it works with the modem emulation with the ttyI* devices. There is
   a special register to set for videotex (ATSx=y -  see the Readme's)
   It's also possible to access the Internet via the German T-Online.
   Warning! XCept (formerly Xbtx) has an ISDN configuration option. This
   should NOT be used. XCept should be configured as if a normal modem
   were being used.!br 
   See also the questions about T-Online in the "Configuration" section.

Q: Can I connect to Compuserve with isdn4linux?
A: No, because Compuserve's ISDN dialin works only with the old V.110 
   protocol. V.110 is not (yet) implemented in isdn4linux. In the meantime, 
   Compuserve offers several X.75 numbers.
   
Q: Which ISDN features can not be offered by isdn4linux?
A: Some ISDN features are device-specific and cannot be activated by
   isdn4linux for other devices, unless isdn4linux were to falsify 
   the TEI (which would probably confuse the other device).
   Such device-specific ISDN features are, among others: rejection of a
   waiting call, caller id on/off, hold, conference calls,
   call forwarding, differing COLP/CLRP.
         
!old
Q: I'd like to write a new hardware driver. Where can I find a description
   of the interfaces to the link level module?
A: In the kernel source (in /usr/src/linux/Documentation/isdn) you can find
   the file INTERFACE - it is the description of the interfaces to the link 
   level module.

Q: How can I access the source from the current development/what is the 
   CVS tree all about?
A: CVS - Concurrent Version System!br
   This is a multiuser/server extension to RCS (Revision Control System).
   The I4L drivers are developed under CVS, and there exists on server
   (oldhades.think.de) a CVS tree to which all developers have access.
   In addition, Fritz has put together an anonymous read-only access. If you
   must have the very newest versions, you can get them there,  however they
   may contain more bugs than the released versions!!!
   Here is the message from Fritz Elfert <fritz@wuemaus.franken.de>
   about this:!br
   ANOTHER IMPORTANT THING:!br
   I often get patches - against current official releases of course -
   where i have problems applying them. My local source here
   sometimes is 2 or 3 version ahead however i cannot release it, since
   it is incomplete or completely untested etc.!br
   Therefore i now decided to make the CVS repository of the isdn4linux
   public available. Now, programmers who want to have a look at the
   development ongoing or those who always want to get the newest stuff
   here is how to access the CVS repository:!br
   1. Install GNU CVS (any version >= 1.6 will do)!br
   2. create a small shellscript .cvsrsh in your homedir:!br
!verbon
       #!/bin/sh
       exec rsh -l guest $*
!verboff
   3. Set CVS_RSH to this script (e.g.: export CVS_RSH=~/.cvsrsh)!br
   4. Set CVS_ROOT to oldhades.think.de:/i4ldev!br
   (e.g.: export CVS_ROOT=oldhades.think.de:/i4ldev)!br
   5. Execute "cvs -z9 checkout isdn"!br
   -> This will create a directory tree isdn/ in your current directory.!br
   Below isdn/ you will find the same hierarchy like in the linux
   source plus some scripts to copy/diff the stuff into the linux
   source tree.!br
   Similar access is available for the utility package with the command:!br
!verbon
   cvs -z9 checkout isdn4k-utils
!verboff
   WATCH OUT!!! THE NEWEST STUFF SOMETIMES IS REALLY INSTABLE OR EVEN
   DOES NOT COMPILE WITHOUT PROGRAMMING KNOWLEDGE -
   No newbies questions on this PLEASE! Use the source, Luke!!br
   Note:!br
   Of course the public access is readonly. Access is limited
   to the following cvs commands:!br
!verbon
       checkout
       diff
       export
       status
       update
!verboff
   See the CVS-doc for how to use these commands.!br
   People who want to help _continuously_ developing isdn4linux by writing
   new driver etc. can get a real account for full access. Write me a mail in
   this case.
                
!old
Q: Can I use isdn4linux under dosemu?
A: Yes, you really can! Steffan Henke <henker@informatik.uni-bremen.de>
   wrote on 25 Oct 96:
!verbon
     In dosemu.conf it is enough to enter a virtual com port,
       (for example com2) that can be used with e.g. Telix or
       Terminate: serial { com 2 device /dev/ttyI3 }
     Access with Fossil is possible if fossil.com (included with
     dosemu) is started.  Tested with the following configurations: 
     - Kernel 2.0.21, Teles driver incl. Karsten's patches 
     - Kernel 2.0.21, HiSax
!verboff   

Q: Is there a working ISDN card for a DEC Alpha with Linux?
A: Thomas Bogendoerfer <tsbogend@alpha.franken.de> wrote on 17 Dec 1996:!br
   I use an ICN ISDN card in my Alpha Noname for
   Internet access and mail/news via UUCP.!br
   I don't have a passive ISDN card to test HiSax with Linux/Alpha . There
   are problems with the timers (HZ is 1024 on the Alpha). Even the
   ICN driver has the "wrong" Timer, which causes a little too much poling of 
   the card (but leads to better ping times:-)). I suspect that this can be
   fixed in time.!br
   Paul Slootman <paul@wurtel.demon.nl> wrote:!br
   The current HiSax driver should work with most cards. I myself use
   a Fritz! Classic (AVM-A1) card in my XLT-300 all the time without
   any problems whatsoever.!br

Q: Can isdn4linux run in parallel to UISDN?
A: Nils Rennebarth <nils@nus.de> wrote on 10 Dec 1996:
!verbon
        They run parallel. And they run under 2.0.X.
        Both ISDN packages load the module isdn.o, otherwise the naming conventions
        are different. Tip: rename Urlichs isdn.o to uisdn.o ,
        and change lib/modules/modules.isdn (or whatever the file is called
        that lists the modules and is read by the script) accordingly.
        Happily the default names of the ISDN devices are also different.
!verboff

Q: What are AOC-x, CLIR, COLP, CVS, HDLC, HSCX, ISAC, TEI...?
A: Here is a small glossary:!br
!b1AOC-D!b0
!verbon
        "Advice Of Charge During the Call".
!verboff
!b1AOC-E (Advice of Charge at the End of the Call)!b0
!verbon
        "Advice of Charge at the End of the Call". In Germany, this service 
        is included in the "Komfort" connection.
!verboff
!b1CLIR (Calling Line Identification Restriction)!b0
!verbon
        CLIR (Calling Line Identification Restriction) can be offered by
        the ISDN provider: one can (from call to call) restrict the identification 
        of one's own caller ID to the other party. In Germany, this must be applied 
        for but is without charge (however call by call !i1transmission!i0 of the 
        caller ID costs extra).
!verboff
!b1COLP (Connected Line Identification Presentation)!b0
!verbon
        COLP can also be offered by the ISDN provider. In Germany, it must be
        applied for, and costs an extra 10.-- DM per month. If you've applied
        for COLP, you get an extended dialing protocol that, for example, can be
        evaluated in the PBX. Current the possibility is being worked on to get 
        around this with the help of a backwards-connected Teles card. One could 
        then get more information than with a running COLP without using any units. 
        That could quickly pay off...
!verboff
!b1CVS Tree!b0
!verbon
        The i4l developers have formed a team. The tool "CVS" allows the members 
        to easily make patches. The history of the project is also thereby 
        documented, and it is also not difficult to reproduce older versions.
!verboff
!b1HDLC!b0
!verbon
        A widely used low-level protocol.
!verboff
!b1HSCX!b0
!verbon
        A Siemens chip, that similar to ISAC is on many passive cards.
        It takes over the serial bus from ISAC and demultiplexes when 
        receiving  or multiplexes (i.e. inserts the bits in the correct
        position) the B channels.
!verboff
!b1ISAC!b0
!verbon
        A Siemens chip, that similar to HSCX is on many passive cards.
        Et is responsible for "Level 1", so it sits (almost) directly on
        the line. It handles the D channel protocol and sends the
        S0 data to a special serial bus (IOM). When sending it does the
        opposite.
!verboff
!b1TEI!b0 (Terminal End Identifier)
!verbon
        The local switching station, or with an internal S0 the PBX, automatically 
        or permanently assigns each end device a TEI. This simply allows 
        the addressing of the D channels. TEIs have the following values:
         0- 63   permanent TEIs (e.g. 0 is used for PBX connections)
        64-126   automatically assigned
           127   call for all (e.g. an incoming call)
!verboff
!b1PBX!b0 (Private Branch eXchange)
!verbon
        A PBX is used to connect different internal devices to the 
        ISDN network. This is usually for analog devices.
        that cannot be directly connected to an ISDN network.
        The PBX can also make an internal digital S0 bus available,
        on which ISDN devices can be connected.
!verboff

!2Configuration


!3General


!old
Q: Where can I find scripts and other information on configuring i4l?
A: Configuration examples and scripts: !br
     !link http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html;!br
   Many HowTo's on basic installation, syncPPP, Email setup, 
   Usenet News, answering machine, and more:!br
     !link http://www.lrz-muenchen.de/~ui161ab/www/isdn/;!br
   Further FAQs with example scripts:!br
     !link http://www.fzi.de/sim/people/trautw/i4l/index.html;


!old
Q: How many ISDN cards can I stuff into my computer?
A: Just as many as there are ISA slots and interrupts/IO addresses.
   The Teles 16.3 can use only 3 different IO addresses, therefore you can
   use at most 3 cards. They each would also need an interrupt.!br
   Peter Strunk <webadmin@mail.bicos.de> gave the following tip on 8 Nov 1996 
   for installing a fourth Teles card:
!verbon
        Try out port 0x080h, DIP-SW in the undocumented
        position!
!verboff
   The AVM is similar.!br
   The ICN has no interrupts, a more flexible port configuration
   and the driver places the shared memory area of all ICN cards at the same
   address. The card memory is shown only as needed. !br
   Therefore, one could use as many cards are there are slots... one
   could even increase the number of ISA slots with an ISA bus
   extender.

Q: Do I need a DOS setup program to setup my Teles card?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 21 Feb 1997:!br
   You don't need a DOS setup for Linux, with one exception:!br
   Teles once offered a Charge PnP card that did not do PnP correctly.
   These card can be recognized in that the have NO jumper/dip switch, but are not
   recognized by isapnp .!br
   All other cards are configured with the Linux drivers or with isapnp
   
!old
Q: Does the driver support "dial on demand"?
A: Yes. If a network interface (e.g. "isdn0") is set up, the driver will dial
   the number. If in addition a hangup timeout (Idle Timeout) has been given,
   isdnctrl huptime <interfaceY> time, then the driver will automatically hang
   up when no data was been transferred over the interface for "time" seconds.
   However, with syncPPP there are problems (see the syncPPP section).!br
   Also look at the dialmode description (next question).

Q: When an IP packet should go over the link (which usually triggers a
   dialout), all I see in the log is:
!verbon
	dial rejected: interface not in dialmode `auto'
!verboff
A: The new ISDN drivers in 2.0.36 defaults to manual dialmode, not
   autodial. This is done to prevent unexpected (and unnoticed)
   dialouts.!br
   To enable autodial for a given interface e.g. ippp0, use
!verbon
	isdnctrl dialmode ippp0 auto
!verboff
   You can also use the name "all" for the interface to change the setting
   for all interfaces.!br
   The meaning of the values for dialmode are:!br
   "off"!br
        means that you (or the system) cannot make any connection
        (neither incoming or outgoing connections are possible). Use
        this if you want to be sure that no connections will be made.!br
   "auto"!br
        means that the interface is in auto-dial mode, and will
        attempt to make a connection whenever a network data packet needs
        the interface's link. Note that this can cause unexpected dialouts,
        and lead to a high phone bill! Some daemons or other pc's that use
        this interface can cause this.
        Incoming connections are also possible.!br
   "manual"
        is a dial mode created to prevent the unexpected dialouts.
        In this mode, the interface will never make any connections on its
        own. You must explicitly initiate a connection with "isdnctrl dial
        isdn0". You _must_ also hangup the line explicitly as well! There
        is NO timeout in this mode. Use "isdnctrl hangup isdn0" to end the
        connection.!br
        "manual" is the default.!br
   
Q: Does isdn4linux support PNP (Plug and Play)?
A: Yes, but only with the HiSax driver. With "Plug" alone
   it's unfortunately not yet ready, more work is necessary: (from
   Karsten Keil <keil@temic-ech.spacenet.de>)
!verbon
        1. HiSax has to be patched into the kernel
           (Attention: use the "-pn" parameter!)
        2. With "make menuconfig" (or "make config") set the following
           kernel options :
             * ISDN = "M" (as module - otherwise PNP doesn't work!)
             * HiSax = "M" (as module - otherwise PNP doesn't work!)
             * 16.3/PNP support
             * EURO support
        3. Compile and install kernel and modules, depmod. (Reboot!)
        4. Read the configuration of the PNP card with:
           "pnpdump > /etc/isapnp.conf".
        5. The configuration file "/etc/isapnp.conf" has to be set by hand.
           Set the following values:
             INT0 - the interrupt used by the card
                  (Default for Teles 16.3 PNP: 10)
             IO0, IO1 - the IO ports used by the card
                  (Default for Teles 16.3 PNP: 0x580 and 0x180)
                  (Attention: these values must be 64-bit aligned! Early
                  versions of the PNP cards my suggest incorrect values!)
        6. Activate the configuration with:
           "isapnp /etc/isapnp.conf"
           (must be started at every boot)
        7. Now the HiSax module can be started with:
           "modprobe hisax io=4,<P>,<INT>,<IO0>,<IO1>"
             4     - PNP card
             <P>   - Protocol:
                       2 - for Euro-ISDN (normally)
                       1 - for 1TR6-ISDN (German predecessor to Euro-ISDN)
             <INT> - the value in etc/isapnp.conf for INT0 
             <IO0> - the value in etc/isapnp.conf for IO0 
             <IO1> - the value in etc/isapnp.conf for IO1 
!verboff

!old 
Q: Is there a trick to sometimes boot Linux with ISDN and sometimes
   without?   
A: Yes, you can use the run level for this (under SysVinit).
   Emil Stephan <ste@esqhen.su.eunet.de> has written scripts:
!verbon
     On my computer I've defined 2 run levels (3 and 4), 3 runs without ISDN,
     4 with. If I want to quit ISDN with all the associated processes like
     ipppd, isdnlog and mgetty, as root I enter "init 3"; and to start "init
     4". init then makes sure with "/sbin/init.d/i4l start" or 
     "... stop" that the necessary things are done.
!verboff

!old
Q: Is it possible to initiate call forwarding with i4l?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote that there are plans
   to later implement this in the HiSax driver. 

!old
Q: Has anybody routed ipx/spx over ISDN with Linux?
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 14.10.1996:
!verbon
     That's no problem -  we've done that for a while now.
     - Simply set up an ISDN interface.
     - Important: encap isdnX ethernet
     The rest is done by "mars_nwe" (incl. routing).
!verboff

!old
Q: Can I use kerneld to load the ISDN modules in the kernel as needed?
A: Emil Stephan <ste@esqhen.su.eunet.de> wrote on 15 October 1996:
!verbon
     By default, kerneld unloads a module after it has not been needed for one
     minute. This is no problem for device drivers ala floppy, etc., but it is
     a problem for drivers that need to keep settings over a longer period 
     of time, e.g. the mixer settings for a sound card or the configuration of
     dialin and dialout parameters for ISDN. Unloading the ISDN drivers also
     kills the IP interface ippp0 or isdn0. The entries in the IP layer of the
     kernel then disappear. If you look in the start-up scripts for i4l,
     you'll a lot of things that are configured with isdnctrl, etc.; they
     would have to be reconfigured by kerneld each time the module is
     reloaded. The status of the D channel could also be lost. Therefore, my
     recommendation is not to use kerneld, rather load the modules at start-up
     and only unload if necessary for some technical reason.
!verboff
   See also the question "Is there are trick to sometimes boot Linux with ISDN
   and sometimes without?".!br
   Markus Gutschke <gutschk@uni-muenster.de> wrote:
!verbon
     For some time now there has been an extension to the modules package just
     for this purpose; it allows the installation of a databank with the
     current status of the modules. Unfortunately, this feature usually not
     supported by the modules. An alternative are such options as the
     "post-install" hook in "/etc/conf.modules". It would then be necessary to
     write the appropriate scripts by hand, but in principle that would work
     just as well as the modules automatically using the initializations
     settings from a database.
!verboff

Q: How can I get a tcpdump patched for ISDN?
A: Michael Stiller <michael@toyland.ping.de> wrote on 23 Oct 1996:!br
   Tip for ftp:!br
     !link ftp://ftp.gwdg.de/pub/misc/isdn/linux/isdn4linux-gwdg;!br
   There is the patch: "tcpdump-3.0.4-1-isdn.dif.gz"!br
   and the rest is at:!br
     !link /pub/linux/mirrors/funet/PEOPLE/Linus/net-source/tools/tcpdump-3.0.4-1.tar.gz;!br
   You might need to hack some, depending on the name of your ISDN interface
   (mine is bri0). By default, it recognizes only isdn* and isdnY* as 
   interface names.!br
   Henning Schmiedehausen <henning@pong.iconsult.com> further wrote on
   30 Oct 1996:
!verbon
        After finding the patch from Eberhard Moenkeberg at ftp.gwdg.de cannot
        dump cisco HDLC, I made my own patch for
        tcpdump-3.0.4 that asks the interface which
        encapsulation it used and sets itself accordingly. The patch is
        against a tcpdump-3.0.4-1.tar.gz distribution, for example at
          !link ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/tools;. 
        This patch recognizes rawIP, ISDN-IP and CISCO-HDLC and can
        dump these packets.
!verboff
   [The patch was attached to the message  - it should be easy to find in the 
   mailing list archive - Ed.]!br
   Sascha Ottolski <sascha@alzhimer.isdn.cs.tu-berlin.de> gave the following
   tip on 5 Nov 1996:
!verbon
        This is a isdn4k-utils-2.0/tcpdump-3.0.3-isdn.diff ! It work,
        if one makes some changes:
        In the file tcpdump-3.0.3-isdn/libpcap-0.0/pcap-linux.c after patching
        you find the following:
            else if (strncmp("ppp", device, 3) == 0)
        Either you name your ppp devices pppX instead of ipppX, or
        change this line, e.g.
            else if (strncmp("ippp", device, 4) == 0)
                              ^^^^          ^^
        Then tcpdump will also recognize syncPPP. At least it does for me.
!verboff

Q: How can I set up user permissions for the use of ISDN?
A: Henner Eisen <eis@baty.hanse.de> wrote on 13 Feb 1997:
   Access to isdn-ttys can be restricted (following the Unix philosophy)
   be establishing a group (e.g. 'isdn') in /etc/group, and then
!verbon
       chgrp isdn /dev/ttyI* /dev/cui*
       chmod o-rw /dev/ttyI* /dev/cui*
!verboff
   Then all users not in the group 'isdn' have no reading or writing 
   privileges for the ISDN ttys. Those allowed to use ISDN have to be
   explicitly added to the group 'isdn'.

!3MSN

Q: What is an MSN?
A: Unlike a normal telephone connection, an ISDN connection can have more
   than one telephone number - each of these is called an MSN. MSN is an
   abbreviation for Multiple Subscriber Number.

Q: What is an EAZ?
A: This is a German name for an MSN. In Germany, EAZ and MSN are used
   as synonyms, though in theory one ought to differentiate according
   to the protocol used. That which is called MSN in the Euro-ISDN
   protocol was called EAZ in the German 1TR6-ISDN protocol (a German
   predecessor to Euro-ISDN).

Q: How many MSNs do I need if I want to do the following:
!verbon
	* Telephone
	* Analogue modem (used for data, fax or voice mailbox)
	* Dialin for X.75 (modem emulation)
	* Dialin for syncPPP
!verboff
A: One!!!!br
   The two different types of dialin can be recognized using the
   'Service Recognition' code ("digital, data"). If correctly configured,
   the two different types of dialin can also be differentiated (see the
   question "Can I use just !u1one!u0 MSN both for customers that need a
   getty (modem emulation) and also for customers that need a direct network
   connection?" in the section "Dialin").!br
   On the subject of the parallel use of both telephone and analogue modem,
   Gernot Zander <hifi@scorpio.in-berlin.de> had the following tip (Dec. 11
   1996):!br
   Configure fax-getty for 10 rings. If you take the phone and hear a fax
   or modem, you send a USR1 signal (kill -USR1 mgetty-pid) to mgetty, and
   it will take the call.!br
   If your phone socket is correctly wired, the modem will take over the
   connection, cutting off the phone (e.g. a TAE NDN socket and the original
   cables. If your modem has a dial-blocker, that may get in the way, unless
   you know the code to switch it off).!br
   [With a suitable modem, mgetty can work as answering machine, and fax
   machine and data modem - Ed.]!br
   Or: if you have an ISDN PABX that allows call forwarding. You can
   even daisy-chain these if you run out of analogue ports.!br
   [Despite this, you will find life simpler if you can give the
   telephone and modem separate MSNs (the ideal solution if you have
   at least 2 MSNs) - Ed.]

Q: What is my MSN?
A: Your telephone company will tell you your MSN. It is your own telephone
   number. The following questions, together with the chapter on national
   peculiarities deal with the finer points of MSNs under isdn4linux.

Q: How do I tell the modem emulation what my MSN is?
A: For the modem emulation you use the command AT&E<msn>, which requires
   the MSN !u1without the area code!u0 (except in the Netherlands).!br

Q: How do I configure my MSN using syncPPP?
A: The MSN for network operation is set up with the command "isdnctrl msn
   <interface>". The MSN is given !u1without the area code!u0 (except in
   the Netherlands).

Q: Where should I configure my own MSN in order to test syncPPP by calling
   myself?
A: If you want to call yourself as a test then you have to configure
   your MSN both as the outgoing and the incoming number.!br
   The configuration of the !i1outgoing!i0 number is done with
   "isdnctrl addphone <interface> out <msn>". You must use the MSN
   !u1including area code!u0 (including the "0" at the start -
   Deutsche Telekom needs this in order to dial correctly). "isdnctrl
   delphone" is used similarly.!br
   The configuration of the !i1incoming!i0 number is done with "isdnctrl
   addphone <interface> in <msn>". The MSN must be entered in the form
   in which it is transmitted to the called party. For Deutsche Telekom,
   this is the MSN !u1including the area code!u0 but !u1without!u0 the
   "0" at the start. "isdnctrl delphone" works similarly.!br
   You may find national differences here (see the chapter "National
   Peculiarities"). See also the following question in case of doubt.

Q: How can I find out how my telephone number is transmitted to the
   calling party?
A: The transmitted MSN can simply be determined, by calling yourself
   (for example by telephone). In the log files you will find the
   entry that looks like: "isdn_tty: call from XXX -> YYY ignored"
   (in order for this to work, you must of course already have the ISDN
   drivers in your kernel and active).

Q: Can I do the following on *THE SAME* MSN:
!verbon
	- Telephony (voice)
	- VBOX (voice, of course)
	- X.75 login (mgetty, /dev/ttyI?)
	- IP interface for IP connections to other computers?
!verboff
A: Gernot Zander <hifi@scorpio.in-berlin.de> wrote on this subject Dec. 4
   1996:!br
    Yes. However, IP dialin cannot be differentiated from X.75 
   dialin, so you are either restricted to dialout, or you must enter
   the MSN of the other party and set secure to on. Then the driver will
   start by asking the net interfaces, and if none match, the call will
   be handed on to the ttyIs. If someone wants to have the choice between
   calling you with X.75 or with IP, they will have to use different
   outgoing MSNs to call you from.

Q: How can I minimize the number of MSNs needed for dialin?
A: See the question in the chapter on dialin.

Q: How do I set the MSN in a Cisco?
A: With "isdn answer1 :<msn>" (or answer2). E.g. "isdn answer1 :12345" will
   set the MSN to 12345.

Q: Why don't I always receive from the German Telekom the number of a 
   caller ("Caller ID")?
A: For data privacy reasons, telephone numbers from the analog network
   are are transmitted unless the caller has explicitly allowed the Telekom 
   to do so (costs nothing) and is connected to a digital switching
   office!br
   Those with an ISDN connection, on the other hand, must explicitly
   deny permission for the Telekom to transmit the number, or apply to
   be able to do this on a call-by-call basis [CLIR]. Call-by-call
   denial is free; call-by-call transmission costs extra. However, it
   seems to be !u1very!u0 difficult for the Telekom to configure this
   correctly on the first try.  If you depend on the transmission of
   Caller ID, you should check closely that everything is configured
   correctly.

Q: Do I receive the Caller ID from foreign calls (German Telekom)?
A: Yes, with calls from countries that don't view Caller ID quite as strictly
   as does Germany (e.g. USA, Canada).
   
Q: I've heard that actually two Caller IDs are transmitted?
A: That's right, there's one that is "User-Provided, not screened", and the
   other is "Network-Provided" (from the telephone company).!br
   Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 15 Dec 1996:
!verbon
        The first comes from the PBX and is not checked.
        The second is that assigned by the Telekom.
        Here I had calls where a Siemens employee from Munich called
        in with a long Caller ID with a Berlin area code (030).
        I called the Telekom to ask what was going on; they didn't know
        either until they found somewhat competent who told me that
        it's allowed.
!verboff
   About "no screening" wrote Ralf G. R. Bergs
   <rabe@Informatik.RWTH-Aachen.de> on 16 Dec 1996:
!verbon
        "CLIP no screening". The caller has the feature (which costs extra 
        and is only available with the "Komfort" PBX connection(!)), 
        that allows him to transmit any Caller ID he chooses.
!verboff


!3Teles driver

!old
Q:  I use SETUP.EXE under DOS, to configure my Teles/Creatix with memory 
    xxxxx and IRQ yy. How do I do this under isdn4linux?
A:  You can enter do this by entering the correct kernel options at boot.
    It is not recommended that you compile them into the kernel, however i
    may be necessary in some cases when software conflicts occur or if you
    have several Teles cards in one machine. In this case you should edit
    "/usr/src/linux/drivers/isdn/teles/config.c" to reflect the correct
    settings for your card(s). (read comments in that file)

Q: I'm confused: according to the documentation, my Teles card is
   configured for IO address 0x180. In Linux (and also in some Windows
   programs) the address is shown as 0xd80?
A: The card uses both IO addresses! Karsten Keil
   <keil@temic-ech.spacenet.de> wrote on 3 Jan 1997:
!verbon
        The addresses actually used are:
          isac 980
          hscx 180/580
          cfg  d80
        The confusion is the result of a misunderstanding. Teles gives the
        HSCX0 address as a reference, while the old Teles driver needs the
        cfg address. Since users were confused by this, both driver can 
        now use either address (which confuses the users even further ;-))
!verboff

!old
Q:  When compiling the Teles driver I get an error similar to: too many
    arguments to function '_get_free_pages_R5243d78b'?
A:  From a certain kernel in 1.3.x the calling of kernel function
    get_free_pages was changed. You are using an old kernel. In this case 
    you should the following line in teles/teles.h
!verbon
     #define NEW_GET_FREE_PAGES
!verboff
   comment out
!verbon
     /* #define NEW_GET_FREE_PAGES */
!verboff

!old
Q:  I'm using kernel 1.3.x, the Teles driver compiles fine, all the
    correct parameters are set in config.c, but the card still won't work.
A:  From a certain kernel in 1.3.x the timer was altered. You should comment
    out the #define NEW_TIMERS line in teles/teles.h.
!verbon
     /* #define NEW_TIMERS */
!verboff

!old
Q:  Is it possible to have more than 1 Teles card in one computer? 
A:  Yes, it is. All the parameters should be entered in teles/config.c.
!verbon
     struct IsdnCard cards[]={
       { (byte *)0xd0000,11,0xd00,NULL } ,
       /* 1. Karte */ { (byte *)0xd8000,10,0xe80,NULL } ,
       /* 2. Karte */ ...
       /* u.s.w. */
     };
!verboff
  On 6-10-1996 Christian Kratzer <ck@toplink.net> suggested
  (lines beginning with "io=" belong at the end of the previous line):
!verbon
     # load modules
     /sbin/modprobe isdn.o
     echo "teles0 - Teles S0/16.2"
     /sbin/insmod $MODPATH/misc/teles.o -o teles0 teles_id=teles0 
       io=0xd0000,5,0xd80,2
     echo "teles1 - Teles S0/16.2"
     /sbin/insmod $MODPATH/misc/teles.o -o teles1 teles_id=teles1 
       io=0xd2000,9,0xe80,2
     echo "teles2 - Teles S0/16.2"
     /sbin/insmod $MODPATH/misc/teles.o -o teles2 teles_id=teles2 
       io=0xd4000,12,0xf80,2
     /sbin/lsmod | grep teles > /dev/null
!verboff

!old
Q: How can I tell whether or not my Teles card is recognized correctly?
A: During booting a message "kernel: HSCX version A:5 B:5" and "kernel:
   channels 2" should appear. A:4 B:4 is also okay. Other values
   (in particular A:0 B:0 or A:f B:f) mean the card is not recognized 
   correctly.!br
   Also check under Troubleshooting Teles.

Q: Where can I send complaints to Teles?
A: At the  Email address "vertrieb@teles.de". They also have 
   WWW pages: !link http://www.teles.de/;!br
   Karl Heinz Kremer <khk@specht.stuttgart.netsurf.de> added
   on 2 Jan 1997:
!verbon
        If you want to read more about Teles's business practices, look at
          !link http://www.inx.de/~chris/isdn.htm; 
!verboff


!3HiSax driver

!old
Q: Where can I find the HiSax driver?
A: At  ftp.franken.de /pub/isdn4linux/HiSax.

!old
Q: Which version is current?
A: Version 1.4.

!old
Q: How is HiSax better as the original Teles driver?
A: Karsten wrote to the FAQ team on 14.Oct.96:
!verbon
     HiSax checks the hardware and the behavior of the IRQ, so that the  
     driver will only be loaded if it can access the register and the
     interrupts can be generated. 
     THEREFORE:
       loading twice is taken care of
       HSCX version 0 or F is taken care of
       BUSY with minicom only if :
       * REALLY BUSY
       * no MSN/EAZ
       * cable/line problems
!verboff
   So, isn't that something?

!old
Q: How do I install HiSax?
A: Karsten Keil <keil@temic-ech.spacenet.de> described like this:
!verbon
     It can never hurt to first backup the original kernel sources.
     Then go to /usr/src/linux (where the current source should be.
     The patch itself:
       zcat HiSax_1.1.patch.gz |patch -p1 >& /tmp/HiSax.log
     The -p1 is very important, otherwise all files will end up in new 
     directories under /usr/src/linux.
     Then look at /tmp/HiSax.log for errors/warnings/rejects, if there are 
     any then look at those files and correct by hand, if necessary.
!verboff
   Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de> added:
!verbon
     If you have Gnu Patch, you can also use "... |patch -s -p1 ". Then
     _only_ the errors will be reported. If you want a log, you can also 
     "... |patch -s -p1 | tee /tmp/HiSax.log". Then you get a logfile in
     addition to the screen output.
!verboff
   Notice: In the meantime there are newer versions of HiSax.

!old
Q: Are there patches to the HiSax driver?
A: Yes. Karsten <keil@temic-ech.spacenet.de> wrote on 15.10.96:
!verbon
     The patches (until the next version) will be "numbered" with letters
     and be available via FTP.
!verboff
   FTP here means ftp.franken.de /pub/isdn4linux/HiSax

!old 
Q: What does the remark: "Known Bugs: incoming calls are only
   delivered, if channel == B-channel (same on teles)" mean?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 14.10.1996:
!verbon
     1. The above statement is not quite correct:
        if ((channel &1)+1 == B-channel )
     2. I described the bug the other way around: if B channel 1 is
     being used by another ISDN device and i4l dials out, then the
     logical channel 0 from the VST is assigned B channel 2 ---> OK
     The other ISDN device hangs up.  Another call comes in for i4l,
     this time on B channel 1.  Since channel 0 is taken, and there is
     a fixed order B1->chan 0,2,4...  B2->chan 1,3,5... the call is
     not accepted.  (chan 2,3 is for 2 cards, etc.)  This happens only
     seldomly, and will be fixed soon (if I get a brilliant idea).
!verboff
   [As far as we know, this was fixed in HiSax 1.2. Ed.]

!old
Q: My ELSA card has 2 LEDs that light up like a neon sign. What does that
   mean?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote 14.10.1996:
!verbon
     l1 is down
       => both LEDs blink ca. 1s on 1s off.
     l1 is activated (also though the telephone or whatever)
       => Blink in sequence 0.5 yellow 0.5 green
     In use
       => 1.5 on 0.5 off
          green   HSCX A active
          yellow  HSCX B active
     The constant blinking is caused when the card hangs, as I noticed
     during development. 
!verboff


!3ICN driver


!old
Q: Where can I buy the ICN card?
A: 
!verbon
   Thinking Objects Software GmbH
   Obere Heerbergstr. 17
   97078 Würzburg
   Germany
   Tel: +49-931-2877950
   Fax: +49-931-2877951
   email isdn-support@think.de
   WWW !link http://www.think.de/;
!verboff

!old
Q: Where can I get the newest firmware for my ICN?
A: Torsten Hentschel <Torsten.Hentschel@DInet.de> wrote on 11.Oct.1996:
!verbon
     The newest firmware should be available under the URL
       !link ftp://ftp.think.de/pub/isdn4linux/firmware/;
!verboff

!old
Q: Is it possible to use several ICN cards in one computer?
A: Yes, but starting with kernel 2.0.0 the configuration scheme has changed:
   With older kernels, a separate ICN module had to be loaded for each card.
   For 2 cards it looked something like this:
!verbon
     /sbin/insmod -m /lib/modules/1.2.13/misc/isdn.o >/etc/isdn.map
     /sbin/insmod -m /lib/modules/1.2.13/misc/icn.o >/etc/icn.map
     /sbin/insmod -m -o icn2 /lib/modules/1.2.13/misc/icn.o >/etc/icn2.map
!verboff
   With kernel 2.0.0 only one driver is necessary. NOTICE: 2.0.0 itself
   is buggy, better to use 2.0.18 or newer.!br
   Here is an example for one ICN-2B and two ICN-4B:
!verbon
     /sbin/insmod -m /lib/modules/`uname -r`/misc/isdn.o > /etc/isdn.map
     #
     # ICN-2B, default port and mem (0x320, 0xd0000)
     #
     /sbin/insmod -m /lib/modules/`uname \
       -r`/misc/icn.o icn_id=icn0 > /etc/icn.map
     #
     # ICN-4B inserted at port 0x328
     #
     /sbin/icnctrl add 0x328 icn1 icn2
     #
     # Another ICN-4B at port 0x300
     #
     /sbin/icnctrl add 0x300 icn3 icn4
     #
     # Load firmware 
     #     ICN-2B: 1TR6
     #  1. ICN-4B, both S0 EDSS1
     #  2. ICN-4B, 1. S0: 1TR6, 2. S0: EDSS1
     #
     /sbin/icnctrl -d icn0 \
       load /etc/loadpg.bin /etc/pc_1t_ca.bin
     /sbin/icnctrl -d icn1 \
       load /etc/loadpg.bin /etc/pc_eu_ca.bin /etc/pc_eu_ca.bin
     /sbin/icnctrl -d icn3 \
       load /etc/loadpg.bin /etc/pc_1t_ca.bin /etc/pc_eu_ca.bin
!verboff

!old
Q: My ICN 4B is recognized only as an ICN 2B. How is the syntax for loading 
   icn.o with insmod for the ICN 4B?
A: dietmar <dietmar@highway.bertelsmann.de> wrote 08.Oct.1996:
!verbon
     I use the following script to "start" the card:
       #!/bin/sh
       #
       # load modules
       /sbin/modprobe isdn.o
       /sbin/modprobe icn.o icn_id=icn0 icn_id2=icn2
       #                                ^^^^^^^^^^^^
       #                                Important here is the entry for
       #                                icn_id2. Then the driver recognizes,
       #                                that a 4B should be used.
       #
       # download firmware
       cd /usr/src/isdn4k-utils-1.3.97/icn
       icnctrl load download/loadpg.bin download/pc_1t_ca.bin \
         download/pc_1t_ca.bin 
       /sbin/isdnctrl verbose 2
!verboff
   Jochen Wiedmann <Jochen.Wiedmann@Neckar-Alb.DE> wrote on 8.Oct.1996:
!verbon
     modprobe icn icn_id=line0 icn_id2=line1 icnctrl io 0xd0000 0x340
     icnctrl add 0x340 line0 line1
     icnctrl load /sw/linux-i386/isdn4kutils-2.0.0/lib/loadpg.bin   \
                  /sw/linux-i386/isdn4kutils-2.0.0/lib/pc_1t_ca.bin \
                  /sw/linux-i386/isdn4kutils-2.0.0/lib/pc_1t_ca.bin
!verboff

!old
Q: What is "lanx75i.bin" in the ICN directory?
A: "lanx75i.bin" is old. Previously, with EDSS1 only HDLC was supported.
   lanx75i.bin was the first test version of the firmware that also
   supported X.75. When the firmware was loaded, its version was
   noted in the kernel syslog. For the current firmware, the following
   strings should be shown:
!verbon
     For EDSS1:
       DRV1.11EC-Q.931-CAPI-CNS-BETA-15.07.95,BRV2.3
     For 1TR6:
       DRV1.01TC-1TR6-CAPI-CNS-BETA-03.05.95,BRV2.3
!verboff


!3Working together with other ISDN devices  

!old
Q: What settings does ISPA etc. (DOS, Windows) need to work with the 
   standard settings of isdn4linux?
A: The following configurations are possible (these also apply to the
   other drivers from H. Hanewinkel, i.e. CINDI, CANDI, WISPA...)
   that can be found via link http://www.informatik.uni-bremen.de/~henker/dank;):
!verbon
     i4l side                             ISPA side
     ====================================================
     isdnctrl l2_prot isdn0 hdlc           \
     isdnctrl l3_prot isdn0 trans           >   -h0
     isdnctrl encap   isdn0 rawip          /
     ----------------------------------------------------
     isdnctrl l2_prot isdn0 hdlc           \
     isdnctrl l3_prot isdn0 trans           >   -h1
     isdnctrl encap   isdn0 uihdlc         /
     ----------------------------------------------------
     isdnctrl l2_prot isdn0 x75i           \
     isdnctrl l3_prot isdn0 trans           >   -l0
     isdnctrl encap   isdn0 rawip          /
     ----------------------------------------------------
     isdnctrl l2_prot isdn0 x75i           \
     isdnctrl l3_prot isdn0 trans           >   -l1
     isdnctrl encap   isdn0 uihdlc         /
     ---------------------------------------------------- 
!verboff
   The parameter with the least problems is -h0.

!old
Q: What do I have to watch out for to connect to Windows95?
A: Torsten Krueger <torsten@nrw-online.de> wrote on 5.10.1995, that
   VJ (i.e. header) compression has to be turned off on both sides.
   Windows95 is very touchy if this option is rejected by isdn4linux.
   
!old
Q: Can use only syncPPP with Windows95 to connect to isdn4linux?
A: Frank-Christian Kruegel <fchk@gigabyte.ohz.north.de> wrote on 13.10.1996:
!verbon
     Modem network: yes. This might also be possible with CINDI,
     WISPA etc. from Herbert Hahnewinkel (costs ca 80 DM per license, and
     every user needs one), but I didn't spend the money.
!verboff

!old
Q: A Windows95 user with a Fritz! Card poor transfer rates 
   when connected with isdn4linux - what can one do?
A: Sven Engelhardt <sven@sik.de> wrote on 13.10.1996:
!verbon
     use AVMPort (Capi modem emulation for Win' 95), important: on
     Win 0.95 "Register on network" should be turned on.
!verboff

!old
Q: Where in Windows95 can I find the settings to get a terminal window 
   when I log in?
A: Sven Engelhardt <sven@sik.de> wrote on 13.10.1996:
!verbon
     Control Panels/Software/Diskette CD-ROM Admin/Apptools/Dscript
       - Script administration for modem networks (after installing
       see Start/Programs/Utilities)
     So that the script receives something, with ISDN turn echo. With
     the AVMPort put E1 in the init string. 
!verboff

!old
Q: I'd like to exchange data with a Macintosh (Leonardo card),
   what do I or the Mac user have to watch out for?
A: Markus Reicher <a9003436@unet.univie.ac.at>: 
!verbon
     When you call the Mac, he should set the protocol to X.75 or HDLC. 
     When he calls you, he must explicitly set the protocol (e.g. 
     by inserting an "X" for X.75) in the called number - otherwise the Mac 
     might call with the Leonardo protocol.
!verboff

Q: A Macintosh with a Leonardo card tries to call in , and wants to 
   negotiate chap md5. How can I switch it to CHAP/PAP?
A: Axel Jindra <jindra@uni-koblenz.de> wrote on 10 Jan 1997:!br
   You can't. He should use LeoPort (always included with the card) and 
   switch the CTB port to the ISDN card. Then with FreePPP 2.5v2
   <http://www.rockstar.com> set the Leo as the modem and configure 
   FreePPP as usual. Then PAP/CHAP can be set.


!old
Q: How does isdn4linux work with a Cisco (HDLC) on the other side
A: On the Cisco router the "keep alive" packets have to be turned off.
   isdn4linux has to be configured with HDLC, transparent with Cisco
   encapsulation:
!verbon
     isdnctrl l2_prot <interface> hdlc
     isdnctrl l3_prot <interface> trans
     isdnctrl encap <interface> cisco-h
!verboff
   <interface> is the name of the IP interface that has been set up with
!verbon
     isdnctrl addif <interface>
!verboff
   (e.g. isdn0).

!old
Q: My Cisco has a Bug - which IOS is recommended? 
A: Jochen Wiedmann <Jochen.Wiedmann@Neckar-Alb.DE> wrote:
!verbon
     Since Cisco-IOS 11.0.x (x = 7 is the only one I know about) I've had no
     more problems with Cisco <-> HDLC <-> non-Cisco. That applies for netgw
     as well as i4l and Banzai! on the other side, although in each case the
     special Cisco HDLC options are important.
!verboff

!old
Q: When I call in to an ASCEND, does it cost a charge unit even if I get
   a "BUSY"?
A: Winfried Haug <haug@seicom.net> wrote on 12.10.1996:
!verbon
     Until yesterday we had problems with AVM+W95 and Mini Port driver
     (PPP with PAP). The Ascend took the call and 3-4 sec later hung up.
     In the Ascend Log is just Call refused, which isn't right, since
     the Ascend did take the call...  With a new firmware on the
     Ascend (4.6C+) instead of 4.6B+p2, the problem seems to be gone.
     Since before we had another RACK (from ITK) that did _not_ behave
     this way with our customers, I'm assuming that is was the Ascend.
     New firmware for the Ascend can be found at!br
       !link ftp://ftp.ascend.com/;!br
     or!br
       !link ftp://ftp.ascend.de/;!br 
     although you have to pay very close attention that you are taking the 
     correct image!
!verboff

Q: Is there a mailing list about Ascend?
A: There is such a mailing list at the University of Hannover.
   It's called: ascend-users-de@uni-hannover.de
   The list is administered with LISTSERV, that means subscriptions 
   go to LISTSERV@uni-hannover.de with the following line in the 
   !b1message body!b0:
!verbon
       subscribe [my mail alias address] ascend-users-de
!verboff
   or simply:
!verbon
       subscribe ascend-users-de
!verboff
   Thomas Stinner <Thomas.Stinner@pop-siegen.de> wrote to us in addition:
!verbon
        There is a more widely subscribed mailing list on  Ascend. 
        It is in English (so Ascend technicians also read and send
        messages there). 
        One can subscribe at:
        
           majordomo@bungi.com

        In the message body:

           subscribe  ascend-users
!verboff


Q: How do I switch on Raw IP on the Ascend Max with Radius?
A: "Framed Protocol" must be set to "EURAW". For the authorization via
   Caller Id, the "authentication-type = ascend-clid" must be set.
Thomas Stinner <Thomas.Stinner@pop-siegen.de> wrote to us on 9 Mar 97:
!verbon
        It could by, that the Authentication Type works this way, however 
        I use password "Ascend-CLID" to do this.
        An entry in the users file has to look like this:
          69123456 Password="Ascend-CLID"
          User-Name = "Username"
          User-Service = Framed-User
        That means, the Caller ID as username, and "Ascend-CLID" as Password.
!verboff

Q: How do I switch on "uihdlc" encapsulation on the Max (an Ascend) with
   Radius ?
A: "Framed-Protocol" must be set to "EUUI".

!old
Q: What settings does an ELink need to work with isdn4linux?
A: In the mailing list Daniel Moeller (danny@rsun.lfn.unterland.de)
   gave the following advice:
!verbon
     [...] Here I have several clean connections every day to a
     EL310, I poll using ifcico FIDO with it. Here is the config 
     for the Elink:
     ati Elink 310 Version 1.36 OK ati4
     Baudrate: 115k2,N
     SIN unbekannt: Ruf annehmen
     Anschaltung: EDSS1
     SIN ungleich &B: Ruf annehmen
     Betriebsart: X.75
     SIN gesendet: neutral
     Mehrfachrufnummer: 980031
     E1 M1 Q0 V1 X2 &B049 &C1 &D2 &R0 &S1
     \A3 \J0 \N3 \Q3 \V1 %A013 %C1 %F1 FCLASS=000
     S00=000 S01=000 S02=043 S03=013
     S04=010 S05=008 S06=002 S07=040
     S08=003 S09=000 S10=007 S11=000
     S12=050 S13=01010000B S14=10011010B S15=00001110B
     S16=10110011B S17=049 S18=013 S19=003
     S20=000 S21=00000100B S22=000 S23=006
     S24=120 S25=128 S26=016 S27=002
     S28=003 S29=128 S30=000 S31=000
     OK
!verboff

!old
Q: I can I use Internet with the German T-Online with i4l?
A: Rainer May <r_may@kahvi.desaster.heide.de> described it as follows:
!verbon
     (the same works of course with a modem. However, the initializing
     sequence looks different.)
     Step 1: Get diald. I don't know where to find it -  ask archie. 
             (diald is used to set a default route to a physically
             non-existent SLIP or CSLIP connection; when packets are set to
             this pseudo-interface, diald establishes the (C)SLIP connection;
             which packets start the connections and when/how the connection
             is terminated can all be configured.) Then install the binary and
             config files (you can use the sample files as they are, but if
             you want e.g. ping to start a connection, you need to make minor
             changes, the timeouts can also be adjusted as needed -  simply
             try it out).
     Step 2: Use a kernel with integrated SLIP/CSLIP or with SLIP/CSLIP
             modules (which has to be loaded, of course).
     Step 3: Isdn4Linux also has to be installed, of course; the important
              part is the modem emulation (ttyIX),
     Step 4: Start diald, e.g. with the following script (I call it
             /etc/rc.d/rc.diald.t-online):
     /usr/sbin/diald /dev/ttyI2 -m aslip local 192.168.90.9 \
     remote 192.168.90.1 defaultroute dynamic modem crtscts \
     lock speed 38400 connect "chat -v -f /etc/diald/t-online" \
     mtu 1500 dslip-mode local-remote
     (This can also be sensibly written in a _single_ line :-)
     Step 5: Write the script, I call it "etc/diald/t-online".
             Looks something like this:
          TIMEOUT 30
          ABORT "NO CARRIER"
          ABORT ERROR
          ABORT "NO DIALTONE"
          ABORT BUSY
          ABORT "NO ANSWER"
          ABORT "NO MSN/EAZ"
          "" ATZ
          OK AT&B2000&E<MyMSN>&X1
          OK ATD01910
          CONNECT .
          "[?25h" <ZugangsKennung>\c
          "[?25h" ""
          "[?25h" ""
          "[?25h" <passwort>
          "[?25h" *53#\c
          "[?25h" *190144100#\c
          "[?25h" 19\c
          "STATUS OK" LIN
          "" "OK"
        Certain place holders need to be replaced, of course:
       <MyMSN> is the MSN, that you want to explore the world with.
       <Zugangskennung>: The digit monster than usually begins with "000..." 
                         that has been given to you by the Telekom.
       <passwort>:       The password.
     This example script assumes that the default "Anschlußnummer" and
     "Mitbenutzernummer" are used. If this is not the case, you have to
     adjust the two lines before "[?25h" <passwort> accordingly. For example,
     for the Mitbenutzernummer "0003", the line before "[?25h" <passwort>
     should read:
       "[?25h" 0003\c
     (since the entry field is full after "0003", no CR is entered
     afterwards) When diald is running, an interface "sl0" should
     suddenly be available (ask ifconfig), and the default route
     should point to it (route -n will tell you; without "-n", "route"
     will try to resolve the fantasy IP addresses (which are later
     replaced with real addresses) - we don't need it do to
     that). Those who don't work only with numeric addresses, but also
     want to successfully try to "ftp ftp.sunsite.edu", should of
     course enter a name server in /etc/resolv.conf (one from the
     Telekom has the address 94.25.2.129). Then start ftp, telnet,
     netscape, whatever. That's it. By the way, diald will write
     novels in your syslog. You can read the entire login procedure,
     even if it looks somewhat chaotic. If a request doesn't work, use
     "kill" to stop diald (routes will be automatically erased) and
     check the syslog - if there is something like "Zur Zeit keine
     verbindung möglich", then the Telekom's gateway is down.  Or
     perhaps the login is incorrect... watch out, after three
     unsuccessful login attempts, the login will be closed and has to
     be reactivated (either per telephone or directly from BTX
     (e.g. seyon or minicom, dial 01910, slowly go through the login
     screen by hand and follow the instructions).
!verboff
   A further example with dip instead of diald can be found at:!br
     !link http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html;

!old
Q: I've set up an Internet connection over T-Online as described in
   the groups, but the chat script fails ("Connect script failed").
A: Gerhard Träger <gerhard@gt-priv.m.eunet.de>: wrote:
!verbon
     In the mentioned version of chat, there is a small mistake in logf():
     it keeps writing in a 256 byte buffer until a line feed comes in. 
     "T-Offline" sends many more bytes for its login page. Therefore, either
     use chat without -v or enlarge the bugger (best with capacity checking).
!verboff



!3Raw IP
Q: What is Raw IP?
A: Raw IP does without the use of a protocol such as  X.75 or HDLC
   (for modem emulation, etc.) or PPP. TCP/IP packets are directly
   exchanged.

Q: What are the advantages and disadvantages of Raw IP?
A: Raw IP has both advantages and disadvantages.!br
   Advantages :
!verbon
        * No handshaking 
          => faster connections
        * Authorization by Caller ID
          => fast, safe, no password
        * Fixed IP address
          => a broken connection can be continued by redialing
        * Higher data transfer rates
        * Better stability (smaller driver => almost no bugs)
!verboff
   Disadvantages:
!verbon
        * No handshaking 
          => Configuration must occur !u1beforehand!u0 (IP addresses,...)
          => sensible to use for only for one provider at a time 
        * Authorization only by Caller ID
          => Dialin only possible from one's own number
        * Fixed IP address
          => must be known ahead of time, more IP addresses required,
             no dynamic assignment of addresses possible.
!verboff
  From this summary it should be clear under what conditions it makes sense
  to use raw IP.
  
Q: How can I run a script when a raw IP connection is established?
A: Harald Milz <hm@seneca.muc.de> wrote on 28 Nov 1996:!br
   Make a tail -f of your syslog and attach a script that reads it,
   e.g. (all on one line!)
!verbon
         tail -f /var/log/messages |
             awk '/isdn0 connected/ { system ("ip-up") }
             /hangup isdn0/    { system ("ip-down") } '
!verboff
   or more elegantly in perl.!br
   [isdnlog might also be able to be programmed to do this - Ed.]


!3Modem emulation (use with ttyI* devices)

Q: Does modem emulation mean that I can toss out my analog modem?
A: No, the name "modem emulation" refers only to the way your own computer
   communicates withe the ISDN driver. It has !u1nothing!u0 to do with the 
   way the data is sent by the ISDN driver over the telephone line - that
   is done digitally! That means that the ISDN driver will !u1not!u0 be 
   able to connect to a non-ISDN BBS!br
   The name is justifies, because any Linux software that can send commands 
   to a modem can also via "modem emulation" send commands to the ISDN driver. 
   And that's what we really want.

!old
Q: Which device should I use for calls out or calls in?
A: Only the ttyI* devices should be used. The cui* devices are created 
   only for reasons of compatibility. Now that there is mgetty, there is not
   reason to use the cui* devices any longer. If they are used, locking will
   not work correctly (several programs could simultaneously attempt to use
   the same device).

!old
Q: How to I switch the modem emulation from X.75 to HDLC?  
A: With the option S14=3; for example "ATS13=3".

!old
Q: How can I poll with Taylor-UUCP using isdn4linux?
A: As usual, the same as with serial interfaces. Simply use /dev/ttyI* as the
   device, as the init string for the modem emulation you have to set the
   correct MSN or EAZ with "AT&E<msn/eaz>".

!old
Q: What speed should I set for the modem emulation?
A: It doesn't matter. The driver internally always uses the full speed that
   ISDN offers. This is also given in the connect string.

!old
Q: Is 'init-chat "" ATZ OK AT&E4 OK ATS14=3 OK' correct for 1TR6
   (the other side has DSS1)?
A: In principle, yes, when the EAZ is really 4 (at&e4) and HDLC
   should be used (ats14=3).

Q: Was does the register S13 exactly mean?
A: Fritz Elfert <fritz@wuemaus.franken.de> wrote on 1 Dec 1996:!br
   When a user program calls a write to the ttyI device, isdn_tty_write() 
   is called. There the data is copied to a buffer (info->xmit_buf[]), 
   and - if in voice mode - DLE sequences are decoded. Then a counter
   (info->xmit_count) is updated, that updates the size of the buffer.
   Through the timer interrupt, the function isdn_tty_modem_xmit() 
   sequentially calls two further functions: isdn_tty_senddown() and 
   isdn_tty_tint(). The job ofisdn_tty_tint() is to pack the data from 
   the buffer into sk_buffs (the packet buffer also used by networking) and
   also to convert as needed into the various audio formats after aLaw
   and, also as needed, to create a T.70 header. The resulting packet is put
   into a send queue (info->xmit_queue).isdn_tty_tint() works through
   this queue, and passes the packets on to the appropriate low-level
   driver!br
   Now if Bit 1 in Register 13 is set, the call to isdn_tty_senddown() 
   and isdn_tty_tint() will in addition to the timer interrupt
   call isdn_tty_write(), that is immediately when the write is called by 
   the user program.

!3Async PPP

!commenton
(The following questions are mostly from the syncPPP FAQ by Michael Hipp.)
!commentoff

!old
Q: pppd, ipppd, async PPP, sync PPP - what are they? Which should I use?
A: !b1async PPP!b0 is a character-based protocol which is
   usually used over analog serial lines. It is of course possible
   to route async PPP over ISDN (even though ISDN offers a synchronous 
   connection. You can do this by attaching an ISDN modem to your computer. An
   ISDN modem has an RS-232 interface to the computer along with an ISDN
   interface to the telephone company. Assuming that you use PPP on a serial
   interface, then the asynchronous PPP packets are transmitted over the 
   synchronous ISDN line. You can !u1not!u0 use HDLC/syncPPP, otherwise 
   your Linux machine will not accept and process these packets. Instead, 
   you have to edit /etc/inittab:
!verbon
        #
        # inittab       This file describes how the INIT process should set up
        #               the system in a certain run-level.
        [...] 
        # PPPD for asyncPPP over ISDN
        i1:45:respawn:/usr/sbin/pppd -detach silent noipdefault /dev/ttyI0
!verboff
   This tells init that the asynchronous PPP should be started directly from 
   this device. Notice that with the configuration, PPP and only PPP is using
   this line. There are other ways as well; you can start a getty on this
   tty, set up user that starts pppd, etc. If you want to learn more, you 
   can read the FAQ that comes with the standard pppd.!br
   On the other hand, !b1Sync PPP!b0 is a bit-oriented protocol, for which
   the original pppd cannot be used. Michael Hipp has written an adapted 
   version called ipppd.!br
   ipppd can process PPP packets that arrive as HDLC frames. The PPP 
   driver in isdn4linux sends all IP packets directly to the network 
   layer, while all PPP protocol frames are send to the /dev/ippp* 
   device. Thus ipppd can be viewed as a simple external network
   protocol program. If you with the help of the /dev/ttyI* devices
   log in to an external computer and from there start PPP, then you
   should use the "old" pppd. If the other side immediately begins the
   send frames, then you've probably reached a syncPPP machine - use the
   network device from isdn4linux with 'syncPPP encapsulation' and make
   sure that ippd is running and can contact at least one /dev/ippd*. Make 
   sure you read the directions for isdn4linux on how to configure a
   network device.

!old
Q: I would like to use asynchronous PPP. Can I use the network interface from 
   isdn4linux?
A: No, that's not possible. Asynchronous PPP encapsulation is only possible 
   with the standard PPP package (pppd) through the dev/ttyI* devices  
   (see the previous question). The network interface can only be used by 
   ipppd for synchronous PPP encapsulation.

!old
Q: How can I reduce the login time?
A: See the answer for sync PPP, it also applies to async PPP.

Q: How can I increase my transfer rates with PPP?
A: You can add more channels with MPPP (see the appropriate section).
   For everyone for whom that's to expensive and who use !u1async PPP!u0,
   there's a little trick. With the option "asyncmap 0" you can avoid
   escaping all control characters (ASCII<32). If the other side goes 
   along with this, you can increase the transfer rate by about 12%.


!3Sync PPP

!commenton
(The following questions are mostly from the syncPPP FAQ by Michael Hipp.)
!commentoff

!old
Q: pppd, ipppd, syncPPP, asyncPPP .. what is they? What should I use?
A: See this question in the "asnycPPP" section.
   
!old
Q: How do I compile isdn4linux with syncPPP?
A: To compile the kernel with syncPPP included in ISDN4Lilnux, you 
   have to answer the appropriate questions in "make config" with "yes".
   Don't forget to load the module slhc.o before isdn.o, if VJ compression is
   not compiled into the kernel (e.g. if you have no PPP and no CSLIP in the
   kernel. [Note that the use of VJ is problematic and does not work reliably
   - however, the support should still be included in the kernel, since there
   can otherwise be side effects.]

!old
Q: How does use isdn4linux with syncPPP?
A: Synchronous PPP is simply another encapsulation for ISDN4Linux.
   This encapsulation is called "syncppp", therefore for example:
!verbon
     /sbin/isdnctrl encap ippp0 syncppp
!verboff
   Here the name of the interface is "ippp0". An interface with this name
   is always used to keep ipppd happy, since it checks the PPP version through
   this device. For now, all devices have to have the name ippp*, where "*" is
   a decimal digit.

Q: How should I name my network interface?
A: The name of the network interface should !u1always!u0 begin with "ippp",
   !u1not!u0 with "syncppp" or "isdn"; otherwise the communication with 
   ipppd will not work correctly.

!old
Q: How do I configure a PPP connection with ipppd?
A: You have to start ipppd once after the modules are installed. ipppd
   communicates with the isdn4linux link level devices through /dev/ippp0 to
   /dev/ippp63. A single ipppd can handle all devices at once. If you want two
   PPP connections at the same time, you need to bind ipppd to two devices,
   etc. ipppd has an additional option: "useifip" uses the IP address of the
   connected network interface (if it is not 0.0.0.0). (Even then, ipppd tries
   to use the pointopoint address as the remote IP.) BSD compression has to
   be turned off - this version cannot use it. [Comment: Van Jacobson
   compression also has to be turned off, in all cases!] 
   In the file etc/rc.isdn.syncppp in the isdn4kernel-util package,
   you can find an example configuration.

Q: How do I get ipppd to open a PPP connection?
A: With the command "isdnctrl dial <interface>".

Q: How can I tell if a connection is unsuccessful (busy)?
A: Andreas Berg <berg@studm.hrz.uni-siegen.de> wrote on 24 Nov 1996:!br
   I simply wait a couple of seconds, then check whether the default route 
   exists, if so, then the connection is there as well.

Q: Where can I find the latest version of ipppd?
A: It is on Michael Hipp's home page:!br
     !link http://www.sfs.nphil.uni-tuebingen.de/~hipp/isdn/linux/;

!old
Q: How can I use more than one ippp* device?
A: All ippp* devices in use must be configured separately with 
   "isdnctrl addif" etc. Each ippp* device should be assigned to
   its own IP address (routing!).!br
   Several ippp* devices can be assigned to a single MSN.
   Several callers can then simultaneously use this  MSN. 

!old
Q: I want to talk to remote machines which needs different configurations. The 
   only way I found to do this is to kill the ipppd and start a new one with 
   another config to connect to the second machine.    
A: You must bind a network interface explicitly to an ippp device, where you 
   can connect a (for this interface) individually configured ipppd. With the 
   (unfortunately poorly documented) command!br
   "isdnctrl pppbind <interface> <Number>"!br
   you can link the interface <interface> to the device ippp<Nummer>. You can 
   release the link with "pppunbind". 
   

Q: How does the (little-documented) "pppbind" command in isdnctrl work?
A: You have to first know how ipppd gets its data. All data that come in
   over the ISDN line is received by the network devices (these are 
   set up with isdnctrl). Then the data given to one of the /dev/ippd*
   devices - to one where a ipppd daemon is waiting for data.!br
   To the network interfaces, all ipppd's appear to be able to handle the
   just-received data - therefore it is normally impossible to predict
   which ipppd will receive data from which network interface.!br
   In practice, you usually install several ipppd's with differing 
   configurations. Each of these should receive data !u1exclusively!u0 
   from a certain network interface (that has also be specially configured).
   The "pppdbind" command serves just this purpose. With:
!verbon
        "isdnctrl pppbind <interface> <number>"
!verboff
   attaches the interface <interface> to the device /dev/ippp<number>.!br
   Example: To attach the interface "ippp5" to /dev/ippp2, the following
   configuration should be used:
!verbon
        "isdnctrl pppbind ippp5 2"
!verboff
   Similarly, the command "pppunbind" will undo this attachment.!br

!old
Q: I want to use dynamic IP address assignment. How must I configure the 
   network device?
A: At least you must have a route, which forwards a packet to the ippp 
   network interface to trigger dialing. A default route to the ippp interface 
   will work. Now you must choose a dummy IP address for your interface. If for
   some reason you can't set the default route to the ippp interface, you may 
   take any address of the subnet from which you expect your dynamic IP number 
   and set a 'network route' for this subnet to the ippp interface. To allow 
   overriding of the dummy address you must call the ipppd with the 
   'ipcp-accept-local' option. You must know how the ipppd gets the addresses 
   it has to configure. If you don't give any option, the ipppd tries to
   negotiate the local host address!  With the option 'noipdefault' it 
   requests an address from the remote machine. With 'useifip' it gets the 
   addresses from the net interface. You also can set the addresses in the 
   option line with the <a.b.c.d:e.f.g.h> option. Note: the IP address of the 
   remote machine must be configured locally, or the remote machine must send 
   it in an IPCP request. If your side doesn't know the IP address after 
   negotiation, it closes the connection! You must allow overriding of 
   addresses with the 'ipcp-accept-*' options, if you have set your own or the 
   remote address explicitly. Try these options, e.g.:
!verbon
    /sbin/ipppd :$REMOTE noipdefault /dev/ippp0
!verboff
   where REMOTE must be the address of the remote machine (the machine giving 
   your address to you) 
   
Q: According to the manpage, ipppd offers the option "dns-addr". But my ipppd 
   refuses to take this option!
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 31 Dec 1996:!br
   In the Makefile for ipppd you have to activate the option "USE_MS_DNS"!

Q: How can I do IPX over ipppd?
A: Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> wrote on 
   4 Feb 1997:!br
   So... this question has come up a lot recently. I recommend in any case
   ipppd 2.2.6g (ftp.gwdg.de pub/linux/isdn/ippp/). Then in the Makefile
   comment out 'IPX_CHANGE = 1' ...!br
   But that's not yet enough. When calling ipppd, you have to add "+ipx",
   otherwise IPX (in ipppd) will not be activated. Of course, you also
   have to use the "correct" IPX options... I don't know what they are
   for each individual case. I've never done IPX. ;) If you then get 
   several IPXCP debug messages in the log and nothing works, I'd be 
   interested in this log (unless you can analyze the problem yourself).
   Success stories are also welcome, of course (but with untested software,
   this is highly improbable) ;)

!old
Q: How can I reduce login delay?
A: You can write out a login session with ("Debug-Log"), and see which
   options the other computer is refusing. Next time, configure ipppd
   without these unused options. A further side effect is that such
   unused options increase the redundance (e.g. when the other computer
   has bugs and refuses the options incorrectly). To create a log file, 
   see "How to I create a log for ipppd".!br
   Another tip came from G.Richter <richter@ecos.de> on 12 Dec 1996:!br
   The negotiation phase with a CISCO, as well as with an AVM MPR, was
   drastically accelerated by the option 
!verbon
        lcp-restart 1
!verboff
   The ipppd seems to send the first LCP packet before it can reach the
   other side, and then waits 3 seconds before trying again, but with this
   option it waits only 1 second. For me the time to establish the connection
   sank from 5 to 2 seconds.
   
Q: How can I increase my PPP data transfer rates?
A: You can establish more channels with MPPP (see the MPPP section).
   For everyone for whom this is too expensive, and who use !u1asyncPPP!u0
   there is another little trick. With the option "asyncmap 0", you can
   chose to not "escape" control characters (ASCII<32) (the default is to
   escape these characters). If the other side goes along, the transfer 
   rate will be about 12% faster.


!3ISDN4Linux in a network


Q: I've successfully used the Internet with my Linux system using isdn4linux. 
   Now I'd like to have another computer on my Ethernet profit from the 
   Internet as well. But how?
A: Thomas Pfeiffer <pfeiffer@pds.de> wrote on 5 Nov 1996:!br
   There are several choices, depending on what all you would like to
   do on the Internet from your LAN. Basically, there are 3 possibilities:
!verbon
        1. Your LAN is an official Class C net with IP addresses valid on 
           the Internet.
             This case is the easiest of configure. You give each network
             card on your network one of these addresses and set a 
             default route on the ISDN card that goes to your    
             provider.
        2. You'd only like to do http in Internet from your LAN.
             In this case you can make up IP addresses for your LAN;
             the only official IP address is that for your ISDN card.
             Then install a proxy server on your Linux router, and
             enter it in all of your browsers. In this case you do
             not need a default route.
        3. From your LAN you only want to log in to your Linux ISDN
           router and FROM THERE do your work on the Internet.
             This is even simpler, then you don't even need a proxy 
             server.
!verboff
   Eike Stepper <isdn@esc-net.de> added on 6 Nov 1996:
!verbon
        There is a fourth possibility I'd like to add, although I've
        never tried it out (since I prefer the 1st choice and have a
        a Class C Subnet, hehe ;), but I have a friend who after
        some playing with the Linux kernel has actually gotten IP
        masquerading to work.!br
        It works somewhat like a proxy (when looking at the effect of 
        hiding the IP). It doesn't offer any caching, of course, but 
        masks to the outside all internal IPs with that of the ISDN
        interface. Don't ask me how the routing functions, but it 
        works...!br
        If I'm not completely mistaken, my friend does this with a
        dynamically assigned IP ?!
!verboff

Q: How does this fourth possibility work, Linux + Masquerading?
A: Rainer May <r_may@khavi.desaster.heide.de> has put together a 
   good set of instructions (see the next question).

!commenton
The following instructions were assembled by Rainer May
<r_may@khavi.desaster.heide.de>.
!commentoff
!old
Q: I have a local area network, (LAN) with computers based on several
   platforms - Win95, Win311, NT, Amiga (AmiTCP) and Macintosh (MacTCP) - all
   connected to the outside world through a Linux router. The Linux machine has
   an ISDN card. My ISP provides me with a dynamic IP address each time I log
   in. I want all the computers to reach the INTERNET not just the Linux box.
   How can I do this?

A: Most work has to be done on the Linux box. First you need a kernel with
   IP forwarding and masquerding enabled. You can get on by answering the 
   following questions when doing "make config" with YES.
!verbon
     Prompt for development and/or incomplete code/drivers  Y
     Enable loadable module support                         Y
     Networking support                                     Y
     Network firewalls                                      Y
     TCP/IP networking                                      Y
     IP: forwarding/gatewaying                              Y
     IP: firewalling                                        Y
     IP: masquerading                                       Y
     PPP (point-to-point) support (if you  PPP to the  ISP) Y
     SLIP (serial line) support                             Y
     Ethernet (10 or 100Mbit) (or Arcnet or ...)            Y
     ISDN support [1]                                       M
     Support synchronous PPP (if you're using ipppd)        Y
     HiSax SiemensChipSet driver support                    M
       (Then select the HiSax support)
     (You can also choose to make a kernel with build in ISDN support
     instead of modules)
!verboff

   Then do a "make dep", "make zImage", "make modules" and "make 
   modules_install" to build the kernel. The installation of ISDN and PPP is 
   explained somewhere else in this FAQ. We now continue with the following 
   assumptions:!br
   * The ISDN system is operational; you can build a connection to your ISP.!br
   * The LAN is operational (i.e. Ethernet or Arcnet) and IP addresses
     have been assigned (i.e. 192.168.xx.xx). The Linux box can be reached by 
     the other computers (i.e. by ping).!br
   Now we need to accomplish two things:!br
   * A computer in the LAN with a "non-local" IP address will request the
     Linux router to establish a connection to the provider!br
   * The Linux router itself will connect the computers in the LAN to the
     provider. It will also "hide" the computers in the LAN from the ISP, and
     all the IP packets will appear to come from or go to the router. While in
     fact the are coming from the computers in the LAN.!br
   !br
   We'll start with the second one: This hiding doesn't mean we're trying
   to cheat our provider. (Although it is possible to provide "clients" with 
   a cheap connection to the Internet). It is required technically. Only the
   IP address of the Linux box is known to the provider. So the Linux box must
   "mask" all the packet with it's own IP address and keep track of which
   computer in the LAN sent which packet so the it can return the
   incoming packets to the correct computer in the LAN. Luckily this
   function is built in kernels>=2.0.0 and is called "IP-Masquerading". Here's 
   how it works:!br 
   !br
   A computer on the LAN sends a packet that contains (next to the IP address 
   and target port of the receiver) it's own sender address (in IP form) and 
   an answering port. The masquerading Linux router will replace this address
   with it's own and the answering port with a free one. Under this free port
   the sender address is stored. Now when a packet comes in from the Internet
   the receiver address and  port gets overwritten with the return address and
   port and the packet is send to the correct computer in the LAN. Packet for
   packet. This only works if the application sends along a return address,
   telnet, http, (irc, tcp differently) all do this (ping doesn't work).!br
   !br
   To get TCP and IRC to work while masquerading 2 modules need to be loaded:
!verbon
     /sbin/modprobe ip_masq_ftp
     /sbin/modprobe ip_masq_irc
!verboff
   Then the forwarding rules in the kernel add forced to masquerade:
!verbon
     /sbin/ipfwadm -F -a m -P all -S 192.168.123.0/24 -D 0.0.0.0/0 -b
!verboff
   The ipfwadm program is available via anonymous FTP at!br
     !link ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz;!br
   In this example the LAN addresses 192.168.123.0 to 192.168.123.254 are
   used. To keep things simple we make the Linux router 192.168.123.1!br
   The above line masquerades all the packets coming from 192.168.123.x to
   the outside world. This has a disadvantage: all the packets inside the
   LAN also get masqueraded. You can prevent this by adding more rules
   (man ipfwadm is recommended reading if you want to do this).!br
   !br
   Hint from Ralf Rudolph <ralf@artifex.de>:
!verbon
    The way I see it, that doesn't matter, the computers in the LAN will
    continue to communicate over the fake IP addresses. You can test this by
    turning off your Linux box (shutdown). Nothing will happen. This is because
    masquerading is a forwarding rule in the firewall and will only be used 
    when forwarding (literally "passing on"). On the LAN nothing is forwarded 
    so nothing is masqueraded, unless you have multiple Ethernet cards in one
    computer then you need to enter some extra firewall rules.
!verboff
    Answer: This is actually not entirely true; although it does no harm. We
    have accomplished "hiding" the LAN from the provider. We now want the
    Linux box to automatically connect to the outside world whenever a computer
    in the LAN requests it. All the computers within must address their
    packets for the outside world to the Linux box, which will take it from
    there. This is very easy. Most TCP protocols (for Windows, Mac) all have 
    the option of specifying a "default gateway" or "gateway". You must specify
    the local address of the router. You cannot enter the IP address which you
    receive when you connect to your provider because you don't know which 
    address your going to get, and also it's different every time you log in.!br
    The last step is getting the ISDN system to do "Dial on Demand". This is
    can be done in two ways.!br
  * Use synchronous PPP, in other words "ipppd". The only thing you have to do
    is to make sure that the default route point to the device (ippp*) you 
    made with isdnctrl. Warning: the kernel remove this route when the
    connection is broken. You have to reestablish the default route after the
    line goes down. You can do this (for example) in the file /etc/ppp/ip-down.
    The risk of this method is that applications running on the LAN will make
    the Linux box build a connection for each resolve request, keepalive
    packet or ARP broadcast they send (your phone company will be very 
    grateful).!br
    It can happen that requests by the LAN can take a long time. I don't know
    whether the kernel or ipppd can't handle the first outgoing packets, but
    it's always a good idea to push the red button in Netscape for example and
    then reload the first page you're accessing right after starting up
    Netscape.!br
    The configuration of ipppd is explained in detail elsewhere:!br
       !link http://www.lrz-muenchen.de/~ui161ab/www/isdn/;!br
    * Use asynchronous PPP or SLIP/CSLIP for your connection. For this you
    can use a program called "diald" [4]. This has several advantages, it's
    highly configurable; you can for instance specify that there are to be no
    connections made between 9 and 12 am or that name server request don't
    trigger the ISDN device. For those of you that don't want to bother with a
    lot of configuration options that's fine; the default configuration can be
    used without danger for life or money (German expression).!br    
    Now,!br 
    if the masquerading rules are set,!br
    if the PC in the LAN all know that the Linux box is the gateway,!br
    if "ping abc.edu" typed in on the Linux console builds up a connection
    to the Internet provider!br
    !u1then!u0 also all other machines in the LAN should be able to access the
    Internet.

Q: How can I allow the users in my local network to use the ISDN card(s)
   in my Linux PC?
A: Rainer May <r_may@khavi.desaster.heide.de> wrote on 10 Dec 1996:!br
   Um ... "modemd" on the Linux side, along with appropriate software
   e.g. for W95 (emulates a comport over a telnet connection) makes
   that rather nice....
   
Q: Where can I find "modemd", and for which platforms are there "clients"?
A: Rainer May <r_may@khavi.desaster.heide.de> wrote on 10 Dec 1996:!br
   In theory (and in practice too) this can be done by any comfortable
   telnet client. There should be some uucicos for this as well (under 
   DOS fxuucico together with fxwtcp, for example).!br
   If you generally want to offer all applications a kind of "remote
   COM port", then there is COMT for Windows (95), "telser.device" for
   Amigas. There is supposed to be something like this for the Mac as
   well (it's system architecture is very inviting for this), but I
   don't know any names.!br
   modemd (which is really just a one-liner in PERL, if I remember
   correctly) works here with COMt and telser.sevice with no problems.
   
Q: Where can I find COMt?
A: Oliver Hahn <oliver@bbtt.de> wrote on 15 Dec 1996:!br
   Try a Simtel mirror (e.g. ftp.funet.fi) in the directory
   pub/simtelnet/win3/inet. The thing is called comt200.zip.
     !link ftp://ftp.funet.fi/pub/simtelnet/win3/inet/comt200.zip;

Q: How exactly does this "PERL one-liner" "modemd" look?
A: Marc Neitzner <marc@zeus.han.de> wrote on 15 Dec 1996:
!verbon
        #!/usr/bin/perl
        select((select(STDOUT), $| = 1)[$[]);
        select((select(STDIN), $| = 1)[$[]);
        exec "cu","-E","''", "-l", "$ARGV[0]";
       die "$0: Cannot exec cu: $!\n";
!verboff
   And then it has to be started in inetd:
!verbon
        modem           20006/tcp       modemd  # Modem service via TCP
        isdn            20007/tcp       modemd  # ISDN  service via TCP
!verboff
   Disadvantage: comt-2.0 is only "visible" to 16-bit applications. The
   use under win95 and Windows NT therefore is restricted to 16-bit 
   stuff.

!3Isdnlog

!old
Q: isdnlog doesn't always show the High Layer Compatibility (Speech, Video,...)
   as I'd like it to. 
A: Gernot Zander <hifi@scorpio.in-berlin.de> posted a patch on 6.10.1996
   to the mailing list that adjusts isdnlog

Q: Can I see the service type from an incoming call in the output
   from isdnrep?
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 3 Dec 1996:!br
   Indirectly in isdnrep, yes -- as soon as you enter an alias for the
   decoded service types in your "isdnlog.conf" ...

Q: Why doesn't isdnlog record the number dialed by my other ISDN devices,
    since it records the charges?

A: Because the ISDN card, like all ISDN device, has separate lines for
   sending and receiving (RX and TX lines). Isdnlog has to read data
   from the receiving line to learn the number dialed. This isn't possible,
   at least for the Teles cards, as Karsten Keil <keil@temic-ech.spacenet.de> 
   wrote on 12 Feb 1997:
!verbon
       This is the case for all cards with 1 Siemens ISAX; it has (and needs)
       only 1 sender and 1 receiver.
       Theoretically, it's possible to read the entire D channel with just one
       receiver (even with the ISAC); the D bits from the RX line are copied 
       (somewhat delayed) to the TX line, over which the access control 
       (collision recognition) of the SO bus takes place.
       Unfortunately with the ISAC it's not possible to read the echo bits 
       in TA mode from a register.
!verboff
   See the next questions for a possible solution.

Q: How can I get isdnlog to also show the telephone numbers for other
   ISDN devices?

A: There are two possibilities. First, the German Telekom offers the service
   COLP (Connected Line Identification Presentation, ca. DM 10 per month per
   basic line) that returns all data sent. This can then be read by isdnlog
   (>=2.52) from the TX line!br
   Alternatively, the next version of isdnlog (currently 2.52) will offer
   the possibility to work with a second "re-poled" Teles card, i.e. the 
   RX line is connected to the TX connection of the card. The RX line of the
   card should not be connected to any line! Because of this setup, the Teles
   card cannot be used for anything else. The whole thing looks something like
   this:
!verbon
 B  3 -- RX+ 2a ---------------\
 U  4 -- TX+ 1a -- open         ------------
 S  5 -- TX- 1b -- open         ------------  card
    6 -- RX- 2b ---------------/ 
!verboff
   A third (theoretical) possibility exists for those who have their own
   PBX to which the other devices are connected. If the PBX can protocol
   all outgoing calls, this can be read (ustally over a serial port).!br
   There is a reason why isdnlog has not support this until now. To evaluate
   this data, isdnlog has to be able to access the date immediately after
   the RELEASE COMPLETE, before any new data is sent on the D channel. The
   PBXs tested up to now have all been too slow (in particular the widely
   used ISTEC). The only possibility is to combine the data afterwards. But
   then there are problems with synchronizing the different times. Whoever
   want to attempt to do this is welcomme (I'll make the logs from my
   Ackermann Euracom available - Matthias Heßler <hessler@wi-inf.uni-essen.de>).

Q: Does isdnlog also calculate the new pricing plans of the German Telecom
  (City Weekend, City Plus)?
A: Since the switching stations don't get this information, the charge
   units are not sent correctly. But the next version of isdnlog (<2.52)
   will be able to do this.

Q: How can I get isdnlog to calculate the charges for the Dutch telephone
   company?
A: You need to set "COPTS=--DISDN_NL" in the isdnlog Makefile and recompile.

Q: How can I get isdnlog to calculate the charges for the Swiss telephone
   company?
A: You need to set "COPTS=--DISDN_CH" in the isdnlog Makefile and recompile.

Q: How can I display the data transfer rates graphically?
A: You can use "xisdnload". Clemens Perz <listperz@gwsnet.ttt.de> on 6 Feb 1997
   knew of another possibility:!br
   On Sunsite I found a little tool for the console called netload, and
   apapted it for the ISDN interfaces. With it you can quite easily see
   the current traffic on the line. It can be found at:!br
   !link
   ftp://ftp.region.trier.de/pub/unix/linux/sources/network/isdn/netload-0.92.isdn.tar.gz;!br
   Simply start with netload isdnxx



!3Isdnbutton
Q: What script should I use to bring down isdnbutton?
A: Markus Gutschke <gutschk@uni-muenster.de> (the author) wrote
   on 21 Dec 1996:!br
   Here I use something like:
!verbon
        #!/bin/bash
        #ISDNBUTTON: Disconnect ISDN
        /sbin/isdnctrl list isdn0 | grep Outgoing | grep -q 0251XYZ &&
             /sbin/isdnctrl delphone isdn0 out 0251XYZ
        /sbin/isdnctrl hangup isdn0
        exit 0
!verboff
   [At the line ending with  "&&", the next line must be continued!]!br
   and
!verbon
        #!/bin/bash
        #ISDNBUTTON: Connect ISDN
        /sbin/isdnctrl list isdn0 | grep Outgoing | grep -q 0251925020 ||
             /sbin/isdnctrl addphone isdn0 out 0251925020
        exit 0
!verboff
   [At the line ending with  "||", the next line must be continued!]

Q: What do the different states of isdnbutton mean (green, yellow, red)?
A: Markus Gutschke <gutschk@uni-muenster.de> wrote on  21 Dec 1996:!br
   "isdnbutton" checks the following conditions:
!verbon
        GREEN - at least one ISDN connection is active. Unfortunately 
                I'm unable to check how the connection was activated.
                It doesn't have to be a network connection, and can 
                also be an incoming connection (at least for me, it would
                be useful to distinguish these).
        YELLOW- no active ISDN connection was found, but at least one
                ISDN interface has an outgoing telephone number for
                demand dialing. There is therefore the "danger" that
                a connection will occur automatically.
        RED   - Neither of the above is true. This usually means that
                a) the kernel doesn't recognize ISDN, or the ISDN
                   subsystem is not active, or
                b) the outgoing ISDN connections are deactivated.
!verboff


!3Audio
           

!commenton
(Most of the answers you will find here are taken from the vbox manual by
Matthias Hessler <hessler@wi-inf.uni-essen.de> and
Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>; you can get the manual at:!br
!link http://www.lrz-muenchen.de/~ui161ab/www/isdn/;!br
 - click on "Audio!" (still in German we're afraid - sorry...)
!commentoff

!old
Q: What is the format of the audio messages (.msg) vbox plays when it
   answers a call?
A: You can get the format from the messages with rmdgetheader. The samples
   messages in the packages are recorded using format 4 (the latest
   Zyxel-Compression)

!old
Q: How can I record my own messages for vboxgetty?
A: First call yourself on the number you configured vboxgetty to answer and
   leave a message. Then rename the message to *.msg (standard.msg for the
   main answering message) and copy it to the directory where all the
   messages are kept (usually /var/spool/vbox/user/messages where user is
   the user for which vboxgetty is configured).
   You can also record a message using a microphone and the soundcard.

!old
Q: How can I play audio messages locally using /dev/audio?
A: This is best achieved with vbox using format 6 (uLaw - must be compiled
   in). You can then easily play the messages using:
!verbon
   cat xxx > /dev/audio
!verboff
   where xxx is the message-file.

!old
Q: If vboxgetty has recorded a message in a format which can not be played
   using "cat xxx>/dev/audio" how can I still hear the message?
A: Siehe dazu die gleiche Frage im Abschnitt "Audio" im Kapitel
   "Troubleshooting".

!old
Q: How can I convert audio messages which where recorded by vbox to other
   formats (i.e. from uLaw to WAV)?
A: The standard tool for converting all sound formats is SOX. SOX is
   available as source code for both UNIX and DOS. You can get it at:!br
   !link http://www.powerweb.de/mpeg/util/msdos/sox10c.zip;!br 
   (including sources that compile under Linux).

Q: How can I format WAV for uLaw (for my vbox announcement message)?
A: We receive the following tip form Christian Stueble 
   <stueble@ls6.informatik.uni-dortmund.de> on 15 Jan 1997:!br
   For me, the following (somewhat indirect) method works:   
!verbon
       sox <file>.wav -r 8000 <file>.ul rate
       rmdcatheader -u <file.ul> > <file>.msg
       cat <file>.ul >> <file>.msg
!verboff
   It could be that you have to give different parameters to sox.
   As a first test you can try <file>.msg > /dev/audio, you should
   be able to hear something.

!3Diald

!old
Q: How can I combine i4l with diald?
A: Wim Bonis <bonis@kiss.de> wrote:!br
   The patches for diald can be found at:!br
     !link ftp://ftp.kiss.de/pub/linux/isdn4linux/diald-0.13-device-patch;!br
   They work with diald-0.14. When a newer diald comes out, I'll adjust 
   the patches accordingly...

!old
Q:  Are there any example scripts for diald?
A:  Yes, by Rainer May <r_may@khavi.desaster.heide.de>:
!verbon
    At boot "diald" is configured:
     # /etc/rc.d/rc.diald
       /usr/sbin/diald /dev/ttyI4 -m ppp \
       local 192.168.90.9 remote 192.168.90.1 \
       defaultroute dynamic modem crtscts lock connect "chat -v -f \
       
    In /etc/ppp/chat.provider the following entry is made:
    TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
    (phone number, name and password are fictional)
!verboff

!3Chargeint

[Attention! Chargeint only needs to be patched in the kernel for older
configurations. Starting with kernel 2.0.30/HiSax 2.0, chargeint is
automatically integrated into the kernel. Ed.]

!old
Q: How can I use the "chargeint" patch, so i4l will hang up before the next 
   charge unit begins?
A: Sascha Ottolski <sascha@alzhimer.isdn.cs.tu-berlin.de> wrote: 
!verbon
     I use chargeint, it works great; for me charge units come during the
     connections, but I think that can be adjusted by hand. The two patches in
     isdnlog-2.50/contrib/chargeint are for the kernel sources and for 
     isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
     Makefile). The kernel and isdnctrl of course also have to be recompiled.
     Then start isdnlog with the -hx option, where x is the number of seconds
     left until the next charge unit. Then chargeint will hang up. In the
     start script for ISDN, define a huptimeout as usual to activate the
     chargeint:
     /sbin/isdnctrl huptimeout ippp0 80  # in sec;
     if needed /sbin/isdnctrl chargeint ippp0
!verboff
   Olav Brinkmann <olav@max.north.de> wrote: 
!verbon
     The chargeint always hangs up two seconds before the end of the charge
     unit. isdnlog, if compiled with -Dchargeint, sets the length of the
     charge unit (i.e. Charge Interval) according to the time of day and the
     date. An additional parameter for "-h" will reduce this length of time by
     the given value. This additional parameter should not be used with
     chargeint, otherwise chargeint will end the connection too early. This
     error increases with the number of charge units. Therefore: "-h0" to
     avoid this problem. 
       > /sbin/isdnctrl huptimeout ippp0 80  # in sec;
     In this example is can be much short; I use 5 seconds. Then I can use the
     last charge unit up the last 7 seconds (huptimeout + 2 seconds
     "chargeint reserve").
       > /sbin/isdnctrl chargeint ippp0
     Not needed; taken care of with by isdnlog with "-h".
!verboff

Q: With which drivers can I use the chargeint patch?
A: You can use the Teles or the HiSax driver. Of course, isdnlog must
   be running correctly (isdnlog 2.50 has to be patched to 2.51
   to run with the HiSax driver).

Q: When does it not make sense to use the chargeint patch?
A: There are problems when the IP is assigned dynamically. Then a broken
   connection cannot simply be restarted (since the IP address has changed).
   The interrupted FTP, telnet or WWW connection must then be newly
   established.

!old
Q: How does the chargeint patch work?
A: With the isdnctrl parameter "chargeset" you can set the length of a charge
   unit, so that it can hang up at the correct time. However, since the length
   of a charge unit depends on the time of day, day of week, holiday, etc., it
   makes no sense to use a set value. Here's where isdnlog comes in. It
   notices when a connection is established and calculates the length of a
   charge unit depending on the time of day, day of week, holiday. This is
   then given to isdnctrl, so it can hang up at the right time. isdnlog
   "tunes" isdnctrl at each connection, and also during a connection (when
   isdnlog is run with the "-w x" parameter). isdnlog allows isdnctrl exactly
   2 seconds before the next charge unit to hang up, as long as the time
   entered with "huptimeout" has elapsed with no data being transferred. The
   transmission of a charge unit impulse is not necessary, since the times are
   calculated closely enough. The charge unit impulse is sent a varying
   intervals, so it cannot be relied upon

Q: How do I configure the chargeint patch?
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 3 Jan 1997:
!verbon
        1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
           to the kernel, rebuild the kernel and reboot.
        2. Patch isdn4k-utils-2.0 with
           "isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
           make clean; make install
        3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface 
           in column 4 for those partners you wish to add, and double check
           that the zone entries are correct.
        4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
           make clean; make install
        5. start isdnlog the additional option "-h0", done!
!verboff

Q: Where can I find more detailed instructions for the chargeint patch?
A: Georg v. Zezschwitz <gvz@hamburg.pop.de> wrote on 29 Nov 1996:!br
  I've finally written some quick and dirty docs for the chargeint patch:
  - For whom is it appropriate?
  - How do I apply it?
  - What does it do?
  - How can it be best configured?
  Default URL: !link http://www.provi.de/~gvz/chargeint.html;

Q: How can I be sure that the chargeint patch is using the correct time?
A: It's best to synchronize the clock in your own computer with that of
   the switching station with "isdnlog -t2". For setting the clock, see the
   "Miscellaneous" section, the question: "How can I set the clock of my 
   computer with ISDN?"


!3Dial-In

Q: How can I enable others to login via ISDN?
A: The same way as via a normal serial port. Start a getty (mgetty from Gert
   Doering is highly recommended) on one of the ISDN devices with modem 
   emulation (/dev/ttyI*). The entry in /etc/inittab looks like this:
!verbon
     #
     # ISDN Lines
     #
     I0:56:respawn:/usr/local/sbin/mgetty ttyI0
     I1:56:respawn:/usr/local/sbin/mgetty ttyI1
!verboff
   Then the init string needs to be entered in the mgetty.config, since
   mgetty needs to know which MSN or EAZ to "listen" to. Here is an example
   for /dev/ttyI0
!verbon
     port ttyI0
     modem-type data
     speed 38400
     init-chat "" ATZ OK AT&E0 OK AT&B512 OK
!verboff
   The example sets the EAZ (with 1TR6-ISDN) to 0. For Euro ISDN, the MSN
   (without area code) would be given instead of the 0 in "AT&E0". 
   For X.75 the block size is set to 512 bytes.
   Alternatively you can enter the entire configuration onto a single line
   in /etc/inittab (here printed on two lines!):
!verbon
     i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
       -s 38400 ttyI0
!verboff
   The most elegant way is to use iprofd. This daemon takes advantage of
   the AT&W0 command in the i4l modem emulation. You start iprofd
   with a path as parameter, e.g. "iprofd /etc/i4lprofile"
   Then with minicom or another terminal program, open an ISDN tty
   device and enter the necessary AT commander by hand. 
   When finished, enter the command AT&W0, then the kernel notifies iprofd 
   to write the current configuration to the file. From now on it is enough
   to start iprofd in you isdn init script, and to initialize the appropriate
   ISDN tty devices with ATZ


!old
Q: Someone would like to dial in to my mgetty with HDLC. Is ttyI1 correct,
   or do I have to start with ttyI0?  
A: No, it doesn't matter. It also has nothing to do with the number of the
   B channel (0 or 1). You just have to activate HDLC in the init string 
   (ATS14=3).

!old
Q: Is it possible with mgetty to automatically start pppd when LCP frames
   are received?
A: Yes, it is. You have to compile mgetty with "-DAUTO_PPP" and then
   in the file /usr/local/etc/mgetty+sendfax/login.config, the line  
!verbon
#/AutoPPP/ -    ppp     /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
!verboff
   should be uncommented and edited. 

Q: How can I have (i)pppd check passwords from /etc/passwd instead of
   /etc/ppp/pap-secrets when someone dials in?
A: G. Richter <richter@ecos.de> wrote on 17 Dec 1996:!br
   In /etc/ppp/pap-secrets, each user must have the following line, if you
   want to allow in only certain users:
!verbon
        <login-name> * ""
!verboff
   or to allow all users simply:
!verbon
        * * ""
!verboff
   [The latter can also be achieved when the file pap-secrets does not
   exist - Ed.]!br
   In either case, ipppd should be started with the options "login" and
   "auth".

Q: How can I allow several people to call in to me at once?
A: You have to configure exactly as many gettys or network interfaces as the
   number of people allowed to call in at one time. These gettys or network
   interfaces can be set to the same MSN, since several people can be 
   connected to a MSN at the same time (as long as there are B channels free).
   However, not more than one getty can be assigned to a single ttyI* device. 
   See also the question "How can I use more than one ippp* device?"


Q: Can I use just !u1one!u0 MSN to serve customers both with a getty (modem
   emulation and with the network?
A: Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 7 Nov 1996:!br
   Yes. On the one hand, the _customer's_ MSN is enough if the network
   interface is set to secure on, and customers who want mgetty won't
   be listed there.!br
   On the other hand, you can get mgetty to recognize a ppp attempt and to
   then start (i)pppd (although I'm not sure how that would work with ISDN, 
   it works for modems).!br
   Otherwise you can try to teach isdn4linux the HLCs, but then you also have
   to get the customer to have the correct settings. But the first suggestion
   will be enough, as long as you don't have any customers who have one MSN but
   want sometimes this and other times something else.

Q: Can I get the advantages of a multiple-PBX line (one MSN for all ISDN ports)
   with a multiple-device line [German Telekom]?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 7 Nov 1996:!br
   According to various articles in the newsgroups, you can get this for
   multiple-device lines as well, although most of the Tele-Comics don't
   know about it and it doesn't work in all switching areas.!br
   [This is called a bundled line - Ed.]

!old
Q: When a Fritz! card calls with X.75, Linux crashes. What can I do?
A: Karsten Keil <isdn4@temic-ech.spacenet.de> has written a new driver (the 
   "HiSax driver"). It includes a bug fix for this.
   Also see the questions General HiSax and the section HiSax driver in this
   FAQ.

!old
Q: An AVM (A1 or B1) cannot call in to me with X.75, either
   under Win95 or under OS/2?
A: This is a known problem, see the last question. This has now been
   solved in the HiSax driver, and Karsten Keil <keil@temic-ech.spacenet.de>
   has posted a patch for the Teles driver as well.

!old
Q: How can enable a Fritz! card to call in to me?
A: As long as the patch form Karsten Keil <isdn4@temic-ech.spacenet.de> is not
   applied: only with HDLC - if the card tries to call in with X.75
   isdn4linux likes to hang. Therefore you should set up a separate
   MSN for Fritz! cards with HDLC. The HiSax driver also has the same
   problem.  Note from Roland Rosenfeld <roland@spinnaker.rhein.de>:
   If you've used up your three MSNs, you can play tricks with the
   service recognition, e.g.
!verbon
     MSN     Analog                          Digital
     ===     ======                          =======
     1       Voice + ISDN answering machine  HDLC, PPP
     2       Voice (Mother)                  Net interface
     3       Modem/Fax                       X.75
!verboff
   If you want, you can install another answering machine on MSN 2
   that plays a totally different message...
   
!old
Q: Which ISDN routers are there that are OS-independent?
A: Sakari Aaltonen <sakari@picea.hut.fi>: 
!verbon
     There seems to be a lot of routers with 1 BRI, those that have more 
     are expensive (Cisco 4000 with four connection about DM 15000.--,
     Ascend Pipeline 400: ?). 
!verboff
   Jürgen Goeritz <juergen@bart.simpson.inka.de>: 
!verbon
     ISDN routers with 4xBRI are less expensive from a German  
     manufacturer - see !link http://www.conware.de/;
!verboff
   Jochen Wiedmann <Jochen.Wiedmann@Neckar-Alb.DE>: 
!verbon
     A Banzai! might also help. As hardware any PC with (e.g.) Teles
     cards would work, the software costs around 800-1000 DM.  I
     personally don't like Banzai! routers at all because of their
     poor diagnostic capabilities, in particular remote maintenance as
     pretty much impossible (unless you have the SNMP capable version,
     but it costs somewhat more). But when they run, they run stable
     and as opposed to Ciscos they are capable of real callback.  From
     Cisco as an alternative there is the Cisco 2503 for about 5000
     DM, that has only one Port, but two serial interfaces, on which
     you can connect a TA (each about 800 DM).  Finally, last, not
     least you can bit the bullet and get several Cisco 1003s
     (ca. 2000DM each). In case the price does not play such a bit
     role, I would take this variation. I simply like Ciscos. :-)
!verboff
   Winfried Haug <haug@seicom.net>: 
!verbon
     You need to decide, which is more important to you:
       (1) saving money
       (2) saving time
     For (1) there are two solutions:
     - Banzai! (now called Flux or Concorde..)   
       -> !link http://www.concorde.de/; (from cls, www.cls.de)
       -> !link http://www.flux.de/;  (from INS, www.ins.de).  
       Based on at least a 386 and routes Ethernet -> ISDN, works with
       many cards, the programmers themselves work with Teles.
       Disadvantages: not cleanly remotely configurable, unless you
       buy the SNMP option, which makes it more expensive and
       therefore more unattractive...
     - ISPA + PCROUTE   
       -> !link http://www.biochem.mpg.de/~heha/;   
       also requires a PC (also works with 286). Has much 
       fewer options than Banzai, Flux, Concorde etc., and is not at all 
       remotely configurable, but runs totally stable. 
       PCROUTE costs nothing, ISPA now costs 70.-, perhaps you can still find 
       version 2.41 that runs unlimited even without a key.
     Both solutions support pretty much all ISDN protocols (including
     the diverse HDLC variations etc..). Support for SPVs (soon
     obsolete) and D64S is there at least for Teles cards (depends on
     the CAPI, not the software). You can get old PCs for <1.000 DM,
     the Teles card also doesn't cost much but die Flux, Concorde
     software is expensive if you get SNMP as well -> you are then at
     2.000.- and you could just as well buy a cisco1003...  (2) IF you
     don't want to assemble anything yourself, you can take with 4
     individual Cisco1003 routers, at around 2300.- and all of your
     problems are more or less solved (other than the diverse IOS
     bugs...). But CISCO router can't do "correct" callback... and as
     protocol only PPP (although there are IOS versions, that don't do
     it cleanly) and CISCO-HDLC.  If you need 4 BRIs -> CISCO 4000,
     but then you should get the 8 BRIs, costs just under 2.000 DM
     less. But then you have to invest somewhat more than
     10.000.-...:-( Another variation: ELSA LANCOM MPR, also costs <
     2.000 DM, can do callback, various protocols (HDLC, X.75, PPP)
     and is really nice to configure.  At the Interop, a Shiva ISDN
     Router with a/b switch for 1600 DM was exhibited, but with 4 BRI
     ports you'd be somewhat over 6000 DM...  Then there are
     several manufacturers that offer simple BRI routers (prices
     tending to fall well under 2.000), e.g. ASCEND, MIRO etc...  But
     if you must have 4 BRIs, there's only the choice between Cisco
     and Ascend..  uh... and since you asked about Ascend, I have a
     price list here from Ascend (July 96), the max400 WITHOUT BRI
     port already costs 15.750.-, the 4-way BRI is then an additional
     11.250 DM... I think that's enough about Ascend...:-(
     In case you have nothing against a PC solution, you could also
     use netGW from netcs (!link http://www.netcs.com;). This is software
     for SCO, AIX, Sun etc. and is based on PCs e.g. the cards from
     Diehl ISDN. netGW should offer by far the most protocols and
     options, but then you have to become familiar with a PC the
     problems that come along with it.  A SCO solution with 4- ISDN
     cards + Software costs also around 10.000 DM, however.  We have
     now returned almost all of our Banzai! and Co, since in the long
     run they are only poorly remotely administrable and are nowhere
     near as stable as Cisco or other stand-alone routers...  In the
     end, it is a decision of you would rather spend more money, and it
     runs right away, or you build your own PC router and have to play
     to get it going.  You have to decide for yourself, although Teles
     can drive you to desperation since the CAPI versions often have
     huge problems as normal users can't get any older
     versions. Support at Teles is not that great (toll 0190-8 phone
     number), and you can easily spend 20-30 DM on support call
     without getting an solution to your problem...
!verboff
    Christian Kratzer <ck@toplink.net> added on 19 Oct 1996:
!verbon
        Cisco is even cheaper than Linux for PRI. Or have you checked what
        PRI cards for PCs cost. ;) Then you need the right drivers etc...
        Then you'll quickly be well over 20k. You can get a 4000 with PRI 
        for 12-15kDM. And if you try to it with individual SOs, then it really
        gets expensive...
        For dialup up to 4 x BRI (which is what fits into one case), Linux
        is unbeatable for price/performance. Even a second machine still
        makes sense.
        But then you need to start thinking about a PRI solution. Both
        run stable and with not problems for us.
!verboff

!3Leased lines 

!old
Q: How does establishing and ending a connection work with D64S 
   without signaling?
A: The data are simply sent out! If you at the end of the D64S or 2MB
   line, you tell your router that the line itself is "up". You have -
   other than with ping etc. - NO possibility to recognize whether the
   connection is there or not.  (with ISPA for example, the outgoing
   wheels turn...)  The only thing that you can measure on your site
   is the loop to the next switching station. If you used Bchan2
   instead of Bchan1 and send out data, they have to come back. Then
   you can take your statistics. The assumes that the Telekom has the
   unused Bchan setup this way at the switching station. This way we
   once proved to the Telekom the line itself had a broken cable...
   What can happen, if you don't automatically assume that the line
   is there, that no data will flow if the other side is not yet
   "up". With ISPA, for example, the pseudo numbers 1tap or 2tap are
   first called with the first data packets and the protocol is
   started. Incoming packets are simply ignored, among other reasons
   because of the missing signaling. Only S01 or S02 lines have a D
   channel and have something to use with signaling, however the best
   known solutions also use this 16kb for data transfers to get 144kb
   instead of 128kb.  So just try it by sending out the data, assuming
   that line is there :-). In this case the data end up in Nirvana...

!old
Q: With i4l, how can I successfully  use the Teles card on a D64 leased line?
A: A later version of the new HiSax driver will support
   D64 (more about this driver above).
   Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> added on 8.10.1996:
!verbon
     If you don't want to wait for Karsten's patch, you can try the
     so-called isachscx driver. It can be found at
     !link http://www.sfs.nphil.uni-tuebingen.de/~hipp/isdn/isachscx.c.gz;
     The driver is derived from the i4l Teles driver, but doesn't need
     the i4l link level. A desire to experiment is required to try
     this driver.
!verboff

Q: Can I connect two computers with ICN cards over a D64s leased line?
   How? Where can I find documentation?
A: Torsten Hentschel <Torsten.Hentschel@DInet.de> wrote on 2 Jan 1997:
!verbon
           That surely works. We have it working here. It's also stable
        (kernel >2.0.26 is necessary, otherwise the router might come
        to a halt). Only, if you pull out the plug to the terminal 
        adapter and insert it again, or if the Telekom produces an error,
        then you have to have both sides hang up once (or twice) to 
        bring the connection backup. In emergency you have a "ping"
        and a "isdnctrl hangup" done with cron. I don't know of any
        other docs or source code, but I'd be happy to help with any
        further questions, since other helped me before
           There are several things to watch out for. LEASEDx is the
        incoming number on the device; an outgoing number is not
        necessary, since the kernel (or the firmware, I'm not sure)
        generates pseudo-incoming calls, as long as no one has "picked
        up".  In LEASED x, the small "x" should be replaced by the
        number of the SO interface.
           In each of our routers we have four interfaces (numbered as
        0, 1, 2, 3), and I used the last interface as the LEASED line.
        That makes sense, since the other three interfaces are used for
        6 B channels for dialup lines, and the kernel always uses the
        first free line for outgoing calls. If the leased line were on 
        interface 0, then the second B channel of the leased line would
        appear (but only appear) to be free. The kernel doesn't notice
        (because of the active card) that there is no D channel for 
        dialing there, and will dial, and dial, and dial.
          For this reason, I've created an extra ISDN network interface
        and have bound it exclusively to the apparent B channel of the
        leased line, so that after 6 dialout lines are in use the
        kernel attempt to dial out on the leased line. 
          Another important stumbling block is that the first pseudo-
        incoming call must be answered (otherwise only the third, then
        the fifth will work, I don't know exactly why, but I suspect
        it's caused by the two B channels, for which calls are generated
        in turn, while a D64 has only one B channel).
        The immediate acceptance of the call is setup as follows:
        * Load the module for the ICN card and configure (load the firmware,
          bus reject, ...) BUT NOT YET icnctrl -d XXX leased" 
        * Generate the network interface for the kernel with innumber LEASEDx
          and all the other stuff you need (IP address, ...).
          Don't forget to bind to the appropriate S0 interface.
        * NOW: icnctrl -d XXX leased
        The network interface has to already be up when "icnctrl -d XXX leased"
        is called. Then this command starts the first call and can then be 
        immediately answered -  and pop, the connection is made.
        
!verboff
   G. Richter <richter@ecos.de> added on  3 Jan 1997:!br
   This has worked for use (with a CISCO router as partner) with no problems
   for nearly two months.!br 
   Make sure the EAZ is set to 1 and the the line is set to leased with
   isdnctrl, the rest is just like a dialup line (except telephone number
   and timeouts)!br
   An example script is under
     !link http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html;

!old
Q: With ISDN, can I use one channel as a leased line and 
   other as a dialup line?
A: Tomas Pospisek <tpo@spin.ch> wrote:
!verbon
     Yes, you can (at least in Switzerland). You have to make sure you are
     on the correct channel ;)
!verboff

!old
Q: I have a leased line connection to a ICN, however the ping times are too 
   long.
A: Fritz Elfert <fritz@wuemaus.franken.de> wrote:
!verbon
     TIMER_BCREAD = Intervall für B-Kanal-Poll (unit = jiffies = 20ms)
     TIMER_DCREAD = Intervall für D-Kanal-Poll           ditto
     FLAG_RBTIMER (and other FLAG_...) call the appropriate functions from the
     main time dispatcher.
!verboff
   Tomas Pospisek <tpo@spin.ch> wrote to us:
!verbon
     Because of the ping times, I've reduced BCREAD, (was 3 before)
     [since 2.0.16 at 1, Ed.]
     The resolution of the timer in Linux is only 20ms, so
     ICN_TIMER_BCREAD=0 does nothing. In addition, this is only a
     cosmetic problem. Both (sending and receiving) routines empty the
     queue.  i.e. when there is real traffic, in each cycle is not only
     just one fragment sent, but up to 16.  The card buffer contains 16
     fragments. Only with ping and Co. is this visible. FTP (or also
     Z-Modem over ttyI) can do close to 8k cps without problem. In
     addition, in each cycle both directions are served, so the
     calculation 20ms-receive + 20ms-send is therefore incorrect.  Even
     not considering this, 40ms is a really good value. Many ISDN
     routers (also i4l before the reduction to BCREAD=1) have 60ms and
     more.
!verboff

!3SPV

Q: What is a SPV?
A: SPV stands for "semipermanente Verbindung" (semipermanent connection)
   and is a (soon to be obsolete) specialty of the German Telekom. Like
   a leased line, the calling partner is fixed, however the connection
   is only established as needed (which occurs very quickly, much quicker
   that a dial connection). Since the Telekom can use the line for other 
   things when it's not needed, the SPV is cheaper than a leased line.

Q: How long will there still be SPVs?
A: Steffen Sledz <sledz@dgroup.de> wrote on 5 Dec 1996:
!verbon
        Due to a couple of lawsuits against the Telekom before the 
        European Court of Justice, most likely until the end of
        1997. This will be posted in the appropriate newsgroups
        and probably also at !link http://www.birch.de
        (who is suing).
!verboff

Q: Does isdn4linux support SPVs? How?
A: To switch on the support for SPVs, add an "S" before the number
   to be dialed. This works (quite well) for modem emulations as well
   as for defined network interfaces.


!3Channel bundling

Q: What is channel bundling and how can I use it?
A: Channel bundling is currently supported by isdn4Linux in two variations:!br
     * !b1Raw Bundling!b0 (configuration of so-called slave channels)!br
     * !b1MPPP!b0 (based on syncPPP)!br
   Both variations have their own advantages and disadvantages. See the following
   questions.

Q: What is raw bundling?
A: Raw bundling works similarly to raw IP, only with several channels.
   Therefore, it has the theoretical advantages and disadvantages of 
   raw IP. Raw bundling requires a network interface for each channel 
   that is used. One network interface, the so-called master interface,
   controls the establishment and breaking of connections. For each 
   further channel, an additional so-called slave interface is configured, 
   that is automatically switched on by the master interface.

Q: How do I use raw bundling?
A: The master interface is created as usual with 
!verbon
       isdnctrl addif <master interface>
!verboff
   and configured. For all required slave channels, slave interfaces 
   are created with the command:
!verbon
       isdnctrl addslave <master interface> <slave interface>
!verboff
   and configured as usual (e.g. "isdnctrl sdelay <slave interface> <delay>").

Q: What are the advantages and disadvantages of raw bundling?
A: Raw bundling has all the advantages and disadvantages of raw IP.
   Compared to MPPP, raw bundling has the advantage that isdn4linux
   itself can open and close the needed slave channels. Unfortunately
   raw bundling still has problems with transfer rates. See the further
   questions below.
   
Q: Is there are working example script for raw bundling?
A: Yes, the FAQ editors have such a script from Robert O'Kane
   <okane@em.uni-frankfurt.de>. It can be obtained either from Robert 
   or from us.

Q: What's the current situation with raw bundling?
A: Robert O'Kane <okane@em.uni-frankfurt.de> wrote on 27 Dec 1996:!br
   After starting up 2.0.27 I have started again with channel
   bundling with a bit more success than before.
!verbon
        1st: There seems to have been a change in the "BogoCharsPerSecond"
             calculations. This now gives values (for me) from 60 ->101.
             The values used by the isdn-net code for starting the slaves is
             still set to 7000 cps!  Needless to say it doesn't see these
             values anymore. After setting it to 75, I get the channels
             starting again.
        2nd: With 1 B-channel,  I get   8K /sec (full)
             With 2 B-Channels, I get ~14K /sec (~88 % util.)
             With 3 B-Channels, I get ~18K /sec (~75 % util.)
             With 4 B-Channels, I get ~15K /sec (~50 % util.)
!verboff
   All cards Teles 16.3, Euro ISDN, Linux 2.0.27, Libc-5.4.13, binutils
   2.7.0.3, Pentium 100 <-> 486DX4/100.!br
   This is with rawIP/HDLC, 15sec slave delay/ FTP transfer of 100Mb file.
   These results are not the most accurate but show the general results.
   There was no apparent difference when using the Teles or the HiSax
   drivers.!br
   While watching the bogo-cps (isdnctrl verbose 4), I can see the 
   values for each B-channel holding around 80 until the 4th B-channel
   kicks in. Then the values become erratic.!br
   1 channel 101, 2nd 40, 3rd 0(!), 4th 40....!br
   Question: How could I check if the isdn-net interface is being
   starved or if the scheduling algorithm is just not being too smart at
   these bit-rates?!br
   Has anyone else done/had these kinds of experiences ?
   Robert O'Kane <okane@em.uni-frankfurt.de> added am 1. Feb 1997:
     I now use 2.0.28 and HiSax 1.5 with NO difference in bandwidth.
   (I also choose 70 for the CPS trigger and 30 seconds slave delay).
     Could you also try setting isdnctrl verbose 4 and watch the bogocps
   calculations for the channels during a ftp transfer. What I think you
   will see is that some of the channels don't send at full speed. I think
   this is a problem with the kernel/IRQ interaction not feeding the
   channels enough data. Could it be that the kernel buffers are not large
   enough for more that 3 channels of data? This could be an explanation
   of why the user-space PPP program can get more data our and into the
   kernel.


Q: What is MPPP?
A: MPPP or MP or MPP (Warning: MP is also an acronym for 'Multi Processor')
   stands for Multi Point to Point and means bundling of several channels to
   one logical stream. To enable MPPP negotiation you must call the ipppd with
   the "+mp" option.  You must also configure a slave device for every
   additional channel (see the i4l manual for more). To use channel bundling
   you must first activate the 'master' or initial call. Now you can add the
   slave channels with the command:
!verbon
       isdnctrl addlink <device>
!verboff
   e.g.:
!verbon
       isdnctrl addlink ippp0
!verboff
   This is different to other encapsulations of isdn4linux! With syncPPP,
   there is no automatic activation of slave devices.

!old
Q: How can I use the MPPP material?
A: To use the MPPP material, you have to configure a slave device with
   ISDN4Linux. ipppd can then be started with the "+mp" option. To increase the
   number of open connections, use the "addlink" option of the "isdnctrl"
   command. In the file etc/rc.isdn.syncppp.MPPP in the isdn4kernel-util
   Package you can find an example script.

Q: What are the advantages and disadvantages of MPPP?
A: A disadvantage is that the slave channel has to be activated 
   "manually". ipppd cannot by itself turn the slave channel on and
   off as it needs to. The normal automatic functions of ipppd are 
   either unreliable (auto hangup) don't work at all (auto dial).
   This is not true for the other encapsulations. The transfers
   rates are very good (ca. 30 KB/s with 4 channels).

!old
Q: I tried MPPP but it doesn't work. The ipppd writes in the debug log
   something like:
!verbon
     ...
     rcvd [0][proto=0x3d] c0 00 00 00 80 fd 01 01 00 0a
     ...
     sent [0][LCP ProtRej id=0x2 00 3d c0 00 00 00 80 fd 01
     ...
!verboff
A: You forgot to compile MPPP/RFC1717 support into the ISDN Subsystem.
   Recompile with this option enabled.

!old
Q: I use MPP. Unfortunately it hangs when just one packet is lost.
A: Szemethy Tivadar <tiv@sch.bme.hu> wrote 11.10.1996:
!verbon
     I found a typo in kernel 2.0.20, that also exists in newer kernels.
     If you replace the following line in isdn_ppp.c (function
     isdn_timer_funct()):
       #if (defined CONFIG_ISDN_PPP ) && (defined ISDN_CONFIG_MPP)
     with
       #if (defined CONFIG_ISDN_PPP) && (defined CONFIG_ISDN_MPP)
     then MPP connection has a better chance.
     Without this change, MPP will hang when just one packet is lost.
!verboff
                                                                

!2Troubleshooting

!3General

Q: My isdn4linux doesn't work! How do I best go about finding the problem?
A: The following steps are recommended:!br!br
!verbon
   1. First, check everything is working when booting.
      Are there unusual error messages in /var/log/messages?
      Are all programs active that should be started at boot (check with
      ps, or fuser /dev/xxx)? HiSax won't start if something isn't right.
      The old Teles driver, on the other hand, will appear to start even if
      it is not working. See the questions under Troubleshooting Teles.
   2. Second, try calling with a telephone. The number should be shown in
      /var/log/messages. Otherwise, perhaps the driver was incorrectly 
      started?!
   3. Third, continue experimenting using modem emulation. Because of the 
      differently service recognition, you can't get the telephone or fax to
      ring, so we have to try something else. Open 2 different consoles as 
      root, and on each run "minicom -s"... in the first set "Serial Port
      Setup Serial Device" to /dev/ttyI0, and the other to /dev/ttyI1. Then 
      choose "Exit" and start the modem emulation with "ATZ" and "AT&Exxxxxx"
      (where xxxxxx is your own MSN without the area code). Then you can start
      On the first console you can dial your own number with ATDxxxxxx. On the
      second console you should now see "CALLER NUMBER: xxxxxxx" and "RING".
      Accept the call on the second console with "ATA", and you should then 
      see the message "CONNECT 64000/X.75" on both consoles. You can then send
      characters to the other console by typing (to see the characters on your
      own console, turn on local echo).!br!br
   4. Fourth, try calling a known ISDN BBS. If you don't know of any, try 
      Gernot (see "Are there sites that offer guest access where I can test my
      isdn4linux setup?"). If you have problems with the modem emulation, see
      "Troubleshooting Modem Emulation"!br!br
   5. Fifth, try configuring the network interface or ipppd. Experience shows 
      that they cause beginners (and not only beginners!) the most problems.
      To make things easier and you're happy with asyncPPP (to see what 
      asyncPPP means, see the question "pppd, ipppd, syncPPP, asyncPPP - 
      what is that? What should I use?"), you can use the normal pppd with
      modem emulation (i.e. /dev/ttyI*). 
!verboff      
   Otherwise, it is highly recommended that use an example script form
   the HowTo (see the question "Where can I find scripts and other
   information on configuring i4l?"). For testing you can try your own
   provider or of the guest accounts (see "Are there sites that offer
   guest access where I can test my isdn4linux setup?").  The latter
   have the advantage of being able to see the log files as well as a
   stable, working configuration. For example, if accessing via ipppd
   doesn't work, you can log in via modem or modem emulation to find
   out what happened on the other side. Not all providers are so
   cooperative.... :-)

!old
Q: I have problems compiling isdn4k-utils-2.0. "ncurses.h" or "panel.h"
   is not found. But curses.h does exist.
A: You need to set a link:
!verbon
     ln -s /usr/include/curses.h /usr/include/ncurses.h
!verboff
   Andreas Herbst <herbst@wiwi.uni-frankfurt.de> wrote:
!verbon
     I haven't yet seen a newer distribution (neither Slackware 
     nor Debian) that contains a complete ncurses package.  
     /usr/include/ncurses.h is there - sometimes it's called curses.h, 
     but the include file panel.h must come from an original 
     ncurses package.
!verboff
   Thomas Baetzler <bath0011@FH-Karlsruhe.DE> replied:
!verbon
     With Debian you need to install not only ncurses nut also ncurses-dev
     if you want to compile anything with it.
       bash$ dpkg -S panel.h
       ncurses3.0-dev: /usr/include/panel.h
!verboff


Q: Why does neither my telephone nor my fax machine ring when I call 
   them with isdn4linux?
A: Isdn4linux sets "digital data" as it's own service when it calls out.
   The switching station will not route such calls to analog devices like
   a telephone or a fax machine.

!old
Q: If i4l uses one B-channel then the other one will be blocked
   (incoming as well as outgoing)...
A: This behavior is typical for a cable with confused a/b wiring. Some
   NT from Quante had a wrong labeling. They caused exactly the
   mentioned behavior if the PBX was connected to the plug of the NT
   and the ISDN card to the pins of the NT. As soon as some device
   activates the bus the other one can no longer get through.

Q: In the instructions for my NTBA it says that a crossed 
   a/b cable pair has no effect on the operation?
A: Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 21 Jan 1997:
   But only if for all devices a/b or a2/b2 are incorrect. When the
   devices work individually, then the order of the receiving/
   sending pair is correct.

Q: How can I test whether a a/b cable pair has been crossed?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 21 Jan 1997:!br
   I simply start with the Western plug: 4 lines are used:
!verbon
       | | | | 
       | | | |
       1 2 3 4
!verboff
   Then I can try to switch 1<>4 or 2<>3 or both.
   Never switch the outer with the inner lines . [That would cross the  
   RX and TX lines and nothing will work - Ed.]!br
   Gernot Zander <hifi@scorpio.in-berlin.de> added on 21 Jan 1997:!br
   I'm assuming that you have connected the Teles not with the 
   RJ45, but rather with a bus line attached to the NT. (?)
   Then open it up and switch a1 and b1. Try it out. If it doesn't
   work, put them back and switch a2 and b2. If it still doesn't work,
   try switching them both, although then I'd suspect that the RJ45
   cable from the Telekom is crossed (which would then switch _both_).
   As long as {a|b}1 and {a|b}2 are kept, nothing can break. If you
   want to be sure, before plugging it in measure between pins
   4 and 5 and between Pins 2 and 6 on the socket; there should be no
   current, but between 3 and 4 and between 6 and 5 should be 40 V,
   6 and 3 positive!br
   If both devices are attached via RJ45, then one of the cables
   has been twisted. That usually happens if one of the RJ45 plugs
   has been attached upside-down (a1/b1 are inside, a2/b2 are outside,
   so the order of the sending/receiving pairs is maintained), then
   you just need a new plug and of course pliers for the RJ45, old
   plug off, and new plug (in the right direction) on.!br
   drauf.!br
   Of course you can check the Cable FAQ and simply test everything with
   a multimeter.

!old
Q: Even though I deactivated the signalling for incoming calls, an incoming
   caller does not get a BUSY signal, although neither i4l nor any other ISDN
   device is configured to use that MSN. Even when every usable B-channel is
   used by i4l or another user an incoming caller will not get BUSY. The same
   is true when I deactivate audio support for i4l.
A: i4l misbehaves by sending an ALERT when the telecom
   signals an incoming call. This ALERT is not canceled by a RELEASE later on.
   That's why the telecommunication company will give a normal ring instead of
   a BUSY signal.!br
   Karsten Keil <isdn4@temic-ech.spacenet.de> wrote about this on 11 Oct 1996:
!verbon
     As I don't have a patch at hand I'll explain it this way: search for
     CC_ALERTING_REQ in linux/drivers/isdn/teles/callc.c and comment out that
     line. It should look like:
        if (((chanp->chan & 1) + 1) & chanp->para.bchannel) { /* \
                chanp->is.l4.l4l3(&chanp->is, CC_ALERTING_REQ, NULL); */
                FsmChangeState(fi, ST_IN);
                if (chanp->debug & 1)
     That's the clean solution. For data connections there is no ALERT required
     or expected. Voice applications only need ALERT when the want to wait for
     several rings.
!verboff
     Update by Karsten (14 Oct 1996):
!verbon
       There is no alerting any more [in older HiSax versions - Ed.]
!verboff
     An improved HiSax has been released that included an alerting function
     that works.
     
!old
Q: When the router is active, incoming calls from customers hear ringing, even
   when we're on the line with a support call. This gives the impression
   that our employee doesn't answer the phone.
A: Jan den Ouden <denouden@groovin.xs4all.nl> recently posted a patch. Search
   archive or contact Jan directly.

!old
Q: I closed all ISDN applications. Why can't I unload my ISDN modules
   ("isdn: Device or resource busy")?
A: Is some program using an ISDN device?
   Did you remove all getty's?!br
   Are isdnlog, imon, iprofd, etc., still running?!br
   Maybe there is still a route on your net interface and it's not yet deleted
   with "route del xxx"?!br
   Maybe the net interface wasn't put down. This can easily happen when killing
   ipppd. It does not react to signal 15 and has to be killed with "kill -9
   <ipppd pid>". Then the net interface is left "up".!br
   In this case "fuser -v /dev/isdn* /dev/ippp* /dev/cui* /dev/ttyI*" 
   is very helpful. This helpful program shows, which processes are
   using those devices.!br
   Sporadic errors of this type can be fixed by inserting sleep commands
   between the unloading commands.

Q: I'm now certain I've closed all ISDN applications. I still sometimes
   cannot unload the ISDN module  ("isdn: Device or resource busy")...
A: Sporadic errors of this type can be fixed by inserting sleep commands
   between the unloading commands.

Q: I still can't unload the modules. I use callback.
A: See the question "Irgendwie kommt der Module-Count bei Callbacks
   durcheinander. Wie kann ich jetzt meine ISDN-Modul entladen?" under
   "Callback" in the section "Troubleshooting".

!old
Q: My charge "impuls typ A" [German charge impulse at the end of a connection]
   is not correctly transmitted, although the Telekom says they activated it.
A: Peter Gramlich <peter.gramlich@wiwi.uni-karlsruhe.de>: 
!verbon
     In some cases the Telekom activated the charge impulses only for some
     services. It seems they have to activate it separately for each service
     (voice, data, G4-fax,...).
!verboff

Q: My PBX produces a reset on the SO bus every hour, after which
   isdn4linux no longer accepts any calls?
A: With HiSax 1.5 isdn4linux will survive the bus reset..

!old
Q: My Ascotel PBX crashes i4l (connected on my internal bus).
A: Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at> wrote:
!verbon
     I think I found the reason why the Ascotel PBX crashes linux. It's not an
     overly big "FACILITY" frame (as I wrote earlier) but a frame of an unknown
     protocol (0x44, while EDSS1=0x08 and DIS_N0=0x40, DIS_N1=0x41).
     [...]
     Jan den Ouden made a patch for it that ignores such frames. Yes, I *did*
     try that patch... but I must have made some silly mistake (did not load
     modules properly?) or there was another reason for the crash. I don't know
     what to do any more :-( I just tested 2.0.18 and tried to do a hexdump
     instead of interpreting it - and now the machine doesn't crash any more.
     And now I've tried to use 2.0.20 and it did not crash. *shrug*,
     confusion...
     Whatever the causes the crash, remember that Jan's patch should be
     included with the standard driver. It's not a good idea that frames that
     are not 1TR6 are interpreted as EDSS1 by default.
     Remark: the patch mentioned here has a bug: X.75 won't work anymore.
!verboff

Q: My Teles 16.3 works behind a Quante IS-2 (identical to the 
   Ackermann Euracom 181) after a reset, only when I:
!verbon
        1. unplug the PBX
        2. turn off the PC 
        3. plug in the PBX 
        4. turn on the PC 
!verboff
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 13 Jan 1997:!br
   That should be taken care of with HiSax 1.5. (TEI remove problem).

!old
Q: I'm connected through an old PBX. Any attempt to dial out is refused with
   cause 64?
A: Wolfgang Hamburg <wh@jumping.baltic.de> wrote on 8 Oct 1996:
!verbon
     Cause 64 means "invalid information element contents" and is from the
     12TR7 protocol that some PBX (in our case Octopus-M) use internally.
     12TR7 includes 1TR6. I don't know more about it. My source was a nice
     guy from the Telekom. They have "Richtlinien" (guidelines) that describe
     the protocols.
!verboff

Q: I can't get my PBX, a proprietary Siemens Hicom, to work?
A: Sven Engelhardt <sven@sik.de> wrote on 20 Jan 1997:!br
   The technicians have to always work a bit longer on the digital extensions.
   Tip: there is a setting for the extension called "DSS1 with EAZ" that
   can only be set by a technician. Then ISDN will usually work with the
   loaded DSS1 driver, at least under WIN/DOS. The default setting is
   usually  "1TR6 with MSN" (don't flame me, it's real).!br
   (However, my last experience with SIE* PBXs are from over a year ago, 
   since then I've kept away from them. If you still can't get it to work,
   then there are a few thousand software patches for the HiComs, the
   technicians have simply have to want to apply them. Sometimes it helps
   to look at the programming handbook together with the technician to find
 
!old
Q: isdnctrl returns a "bus error" when I do a "isdnctrl list"?
A: Christian Kratzer <ck@toplink1.toplink.net> gave the patch:
!verbon
     diff isdnctrl.c.dist isdnctrl.c
     240c240
     <   if (strlen(cfg.slave))
     ---
     >   if (cfg.slave && strlen(cfg.slave))
!verboff

!old
Q: After a hangup "no routine" is printed on /dev/isdnctrl. Did it release my
   line or is there still some bug in the driver?
A: "no routine" doesn't always mean that there is something wrong with the
   driver. Sometimes the link level module sends commands that aren't needed
   by the Teles driver and lead to "no routine".

!old
Q: I get many "HSCX RME out of buffers" messages in my syslog.
A: Answer by Jan den Ouden <denouden@groovin.xs4all.nl>:
     The "HSCX RME out of buffers" message means that there are no more
     receive buffers available. Received frames are only processed every few
     milliseconds and in the meantime the frames have to be buffered. Default
     are 6 buffers. Each frame needs a buffer no matter how big it is. If a
     number of very small frames arrive within a short time period it can
     happen that the buffers are overrun. At least it seems that this happens.
     In teles.h there are three lines for number and size of those buffers:
!verbon
       #define HSCX_RBUF_ORDER 1 
       #define HSCX_RBUF_BPPS 2 
       #define HSCX_RBUF_MAXPAGES 3 
!verboff
     The size of each buffer is about
!verbon
       (4096<<HSCX_RBUF_ORDER)/HSCX_RBUF_BPPS 
!verboff
     This would lead to buffer with a size of about 4k. The number of buffers
     is MSCX_RBUF_BPPS*HSCX_RBUF_MAXPAGES, which normally gives 6. You can
     increase that number by increasing HSCX_RBUF_MAXPAGES. This is just a
     limit, there is no buffer allocation when they are not needed.


Q: My pppd or ipppd has problems with PAP/CHAP authentication.
A: See the appropriate question under "Sync PPP"?

!old
Q: I get the error "SIOCADDRT: Invalid argument" when telling route to route
   to isdn0.
A: <tpo@spin.ch> wrote on  8 Oct 1996:
!verbon
     I had the same error until using the correct netmask.
!verboff

Q: I regularly see meesages such as:!br
   isdn: line0,ch1 cause: E0010!br
   What does this mean? Where can I find out the meaning of these
   causes?
A: Recent isdn4k-utils packages contain a isdn_cause manpage. So, type
   man isdn_cause and search the list. The first two digits are the
   location, the second two digits are the cause itself.
   
Q: On my ELSA card, the LED for the loss of the TEI often blinks. My 
   connections are also often disrupted...
A: Jens Ey <jens@jeyhh.shnet.org> wrote on 29 Dec 1996:!br
   These blinking LEDS are often caused by a bad cable or a too long or
   unterminated SO bus. ELSO told me this after I complained to them 
   about this problem. A new cable, and everything works wonderfully.!br
   Paul Slootman <paul@wau.mis.ah.nl> added on 2 Jan 1997:!br
   Jan den Ouden suspects (in a Dutch news group), that the Dutch
   telephone company sometimes "throws away a TEI" at night.

Q: My isdn driver crashes my machine! Since I've configured it as a module,
   the addresses change each time it's loaded. How can I find out where the
   driver is crashing?
A: The driver should be loaded with the command "insmod -m". The output
   has to be transformed somewhat to be a form similar to System.map.!br
   Fritz Elfert <fritz@wuemaus.franken.de> wrote on 17 Oct 1996:
!verbon
        insmod -m isdn.o | sort | sed -e 's/   / T /g' |
            egrep '.* T [a-z,A-Z,_]+' > /etc/isdn/isdn.map
        cat /System.map /etc/isdn/isdn.map > /iSystem.map
!verboff
   [The lines ending with "|" have to have the following text on the same line!]!br
   iSystem.map should then be used instead of System.map for finding the error.
   
Q: My hard disk becomes very active when isdn4linux run. How can I turn this
   off?
A: With "isdnctrl verbose 0", or by removing the "debug" option for ipppd.


!3Teles driver


!old
Q: How can I know that my Teles card (or compatible) is recognized correctly?
A: On bootup there has to be a message like "kernel: HSCX version A:5 B:5" as
   well as "kernel: channels 2" in /var/log/messages. "A:4 B:4" is also OK.
   All other values (especially "A:0 B:0" or "A:f B:f") show that the card
   is not used correctly.

Q: What is the name if my Teles driver (especially if compiled into the
   kernel)?
A: The name is what was given as "teles_id" when loading as a module. If LILO
   is used, the name is also that what is given with "teles_id". If the Teles
   driver is compiled into the kernel, the name is simply "" (two double 
   quotation marks). The name can be found out with "cat /dev/isdninfo"; it's
   shown with "idmap".

!old
Q: On bootup I get "HSCX version A:5 B:5" but I still have the impression that
   my Teles card is not used correctly. What else can I check?
A: Wilhelm Schulte <schulte@wrds1.urz.uni-wuppertal.de> wrote about this:
!verbon
     Best is you check that the interrupt is registered correctly. Check it
     with "cat /proc/interrupts". The following entry indicates an error:
       11:        0 + teles
     The 11 is correct when the Teles card is configured on interrupt 11.
     However, the 0 means that the Teles card does not accept interrupts, so it
     does not work. That's the well known "busy bug". Often it can be worked
     around by loading, unloading, and reloading the ISDN modules on bootup.
     The IRQ counter does have to be 0; low values also point to the same
     problem. You can test for it quite easily:
     1. cat /proc/interrupts, note the count
     2. Call the card with a telephone.
     3. Again cat /proc/interrupts, the count should be quite
        different from the first value.
!verboff 
   See also "I always get BUSY when dialing into my ISDN mailbox". You can also
   check the io ports with "cat /proc/ioports".

!old
Q: Why should I avoid IRQ 12 and 15 for my ISDN card?
A: Gernot Zander <hifi@scorpio.in-berlin.de> wrote about this:
!verbon
     On PCI boards never use IRQ 12. It is often used by the bus mouse (even
     though you may not have any or the IRQ is not activated for it), which is
     why that IRQ often is lost and you will get errors trying to use it.
     On PCI boards never use IRQ 15. It is often used by IDE 2 (even when you
     are not using it or the IRQ is not activated for it), which is why that
     IRQ often is lost and you will get errors trying to use it.
!verboff
    It should be mentioned that this is not the case for *all* PCI boards! But
    many of them mess up the IRQs in this way...
    
!old
Q: My Teles card will not be recognized correctly when I use LILO with my
   parameters.
A: Unfortunately the order of the kernel parameter for irq, mem, io base, and
   protocol is not identical with the order of the parameters for modules or
   when compiling them in.
   Order for module parameters (insmod): mem, irq, base, type
   Order for kernel parameters (LILO):   base, irq, mem, type

!old
Q: If I first start DOS and the Teles driver included with the card,
   and then start Linux with Loadlin, everything works fine.
   However, if I start Linux directly with LILO, the Teles driver
   doesn't respond directly.
A: Try replacing the Teles driver with HiSax.

!old
Q: After a reset, my card does not initialize correctly.
A: Andreas M. Kirchwitz <isdn4linux-mlist@zikzak.snafu.de> wrote:
!verbon
     Instead of a "reboot" command or pressing "Ctrl-Alt-Del"
     try a "Hard Reset" with the reset button.
     With some motherboards (which is not necessarily the motherboard's 
     fault) the cards are not completely reset with a "Soft Reset" so that
     some drivers will have problems finding the cards.
!verboff
   Of course, before the hard reset you have to bring the system down
   correctly ("reboot" command or press "Ctrl-Alt-Del")! Only then
   can you hit the reset button. 

!old
Q: The Teles driver recognizes my 16.3 card as a 16.0.
A: When using a 16.3 you have to set the memory area to 0. If a 16.3 is
   recognized as a 16.0 you have given the wrong parameter.

!old
Q: I use i4l and the Teles driver. From time to time the driver hangs and I
   have to reload it.
A: You are using a [very] old version of the Teles driver. Since version 0.4a
   this has been fixed. Check "How to get i4l" on how to get a newer driver.

!old
Q: My machine often crashes. On the console I get about every few seconds
!verbon
     l1state 4 
     l1state 8
     l1state 13
     ph_command 9
     l1state 4
     l1state 0
     ph_command 0
     l1state 7
     ph_command 9
!verboff
A: It could be a broken cable. The DOS hardware test software from Teles
   should also report this error.

!old
Q: My Teles driver always says "isdn0: Chargesum is 0" although I get charge
   information from the [German] Telekom.
A: The Teles driver does not support/use the German charge information,
   because the author, Jan den Ouden lives in Netherlands and the charge
   information is transmitted differently there than in Germany (so much for
   "Euro"-ISDN :-( ).
   Despite that isdnlog can handle the Q.921 information it gets via isdnctrl.
   There is even a patch for isdnlog to end a connection just in time before
   the next charge unit. Another patch even enables isdnlog to save the
   charge information in a Postgres95 database. These patches may be included
   in a new version of isdnlog.

!old
Q: My Teles driver does not work in 2.1.x!
A: Christian Mock <cm@kukuruz.ping.at> wrote on 7 Oct 1996 a patch about this
   which can be obtained from him or the mailing list archives. Another patch
   for 2.1.1 was posted from Markus Gutschke <gutschk@uni-muenster.de>, on the
   7 Oct 1996, too.
   Because of the many basic changes and adjusting problems only developers
   should switch to 2.1.x at this point in time.

!old
Q: I have two Teles cards in my computer but it seems that only one is used!
A: Christian Kratzer <ck@toplink.net> wrote about this on 6 Oct 1996:
!verbon
     Clear case of IRQ problems. Especially the 11 gives trouble on some
     boards. Even though one thinks that some IRQs are available they are still
     somehow reserved by the BIOS.
     Good IRQs to try are always IRQ 5 and IRQ 9. Without mice or modems you could
     also try 4 and 3. That even works on very exotic boards.
!verboff

Q: When compiling the Teles driver I get some undefined symbols (only kernel 2.0.26)?
A: The file proto.h was not included in the patch. It should read::
!verbon
        #ifndef PROTO_H
        #define PROTO_H
        #define PROTO_EURO      0x08
        #define PROTO_DIS_N0    0x40
        #define PROTO_DIS_N1    0x41
        #endif
!verboff

!3HiSax driver

Q: How can I tell whether my ISDN card has been corrected recognized by
   the HiSax driver?
A: When booting, a message like this will appear in the log file:
!verbon
        HiSax: Teles 16.3 found,irq:5 isac:a80 cfg:e80
        HiSax: hscx A:280 hscx B:680
        Teles3: HSCX version A: V2.1 B: V2.1
!verboff
   Karsten Keil <keil@temic-ech.spacenet.de> wrote on 12 Dec 1996:!br
   With HiSax you don't need to worry: it's loaded if the hardware
   can be found and the appropriate interrupts can be generated. If
   not, the module is not loaded. That doesn't mean that everything
   will then work (e.g. twisted cables, broken cables, terminators),
   but that card is installed correctly in the computer and there
   are no hardware conflicts.

!old
Q: The Teles crashes again and again with the following error message
   in the log: 
!verbon
     <date> <time> foo kernel: HSCX B EXIR 10
     <date> <time> last message repeated <n> times
!verboff
A: The CPU isn't able to empty the FIFO. Is a sound card installed that
   keeps the interrupts for itself for too long?
   
Q: My AVM card produces very many interrupts with the HiSax driver. Is this
   normal or a problem with the HiSax driver?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 12 Nov 1996:!br
   This is normal. AVM (and ELSA as well) have a timer on the card.
   Since AVM doesn't cooperate, I don't know how to turn it off. With
   the Elsa I know how, but don't do it since here hardly any performance
   is lost and I use the interrupts for status reports (which is very
   handy for development; as soon the driver was ready, nothing blinked
   anymore ;-) ). Later I'll probably turn them off or only use them
   during connections.

Q: The PNP tools done work with my Teles 16.3 PNP card!
A: It's probably not a Plug 'n Play card at all - even though Teles
   now prints PNP on all their card and packaging. The difference is easy
   to recognize: a real Teles PNP card no longer has the (tiny) Dip switches
   on the card to set the IO addresses.

!3ICN driver


!old
Q: On dialing out/in with my ICN packets get lost.
A: Torsten Hentschel <Torsten.Hentschel@DInet.de> has a patch for kernel 2.0.21
   which definitely does not lose any more packets. Contact Torsten.

!3Working together with other ISDN devices 

!old
Q: I have problems connecting to an ELink.
A: Daniel Moeller (danny@rsun.lfn.unterland.de) wrote in 1996 to the
   mailing list:
!verbon
        A few weeks ago I reported on my problems connecting to a EL 310.
        No connect message came for the data channel from ISDN. The
        Elink was connected to 1TR6 and had identical settings to another
        Elink on Euro-ISDN, with which I've never had problems. But now
        for the past 2 weeks everything suddenly works fine, without
        having changed anything locally.
        Conclusion: The software at the switching station seems to play
        a role...
!verboff

Q: I have problems connecting to a Netblazer router.
A: Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> wrote in
   Oct 1996:!br
   Your partner probably thinks it can send compressed packets (even
   though no compression method was chosen). Try removing these lines
   from main.c:
!verbon
        { PPP_CCP, ccp_init, ccp_input, ccp_protrej,
          ccp_printpkt, ccp_datainput, "CCP" }
!verboff
   and recompile ipppd. Then it should reject the whole CCP protocol
   and hopefully the Netblazer will understand that as well... (this 
   wouldn't be the first bug in the Netblazer... the thing doesn't seem
   to be especially conformant. Funny that others don't seem to have this
   problem; maybe it's time for a new software lease)!br
   [The same problem can also crop up with asyncPPP. This same method
   will also work (maybe there's even a compiler option to remove
   the CCP protocol). With pppd 2.3 beta 3 there should be a "noccp"
   option, that accomplishes this without recompiling. Ed.]

!commenton
More information can be found in the "Configuration" section under this same
title!
!commentoff

!3Raw IP

!old
Q: I get the error message "protocol error, unspecified".
A: "Protocol error, unspecified" means that messages or parts of messages came
   in at a time where they weren't expected or the content of the message could
   not be decoded.
   Torsten Hentschel <Torsten.Hentschel@DInet.de> wrote about this:
!verbon
     Especially the first packets of the protocol can be lost when they are
     fired out onto the B-channel immediately after the connect message.
     I had a problem with raw HDLC: it lost packets, but only when dialing from
     one side to the other.
!verboff
   A patch should be available from Torsten.


!3Modem emulation (use with ttyI* devices)


Q: When I dial with "ATD....." I always get a "NO CARRIER".
A: Before dialing, you have to enter "AT&E123456" (if 123456 is your
   own MSN; with 1TR6 give the one-digit EAZ).

!old
Q: My modem emulation/pppd does not recognize an incoming call.
A: Probably you did not tell the modem emulation with "AT&E" which MSN to use.
   For example, use "AT&E123456" if your MSN is 123456.

!old
Q: I gave the correct MSN/EAZ, but still don't get a RING.
A: If you put a getty to a cui* device it will never get a RING. That's not
   i4l's fault, but the kernel's. HIGHLY RECOMMENDED: always use the /dev/ttyI*
   devices! Since there is mgetty there is no need to use different devices for
   incoming and outgoing calls. (The same goes for the normal /dev/ttyS* and
   /dev/cua* devices for the serial interface.)

Q: Why can't I dial my telephone or fax with the modem emulation?
A: ISDN differentiates different services. All outgoing calls with the 
   modem emulation use the service "Digital Data", which is incompatible
   with telephone or fax, so the call never gets through.

!old
Q: I can't get a connection to my ISDN mailbox.
A: There are several possible protocol parameters. There is HDLC, there is
   X.75 and there are several possible block sizes with X.75. You can tell
   the modem emulation about the block size with "AT&B". Mostly used is a block
   size of 2048 byte: "AT&B2048". The Teles driver can not process blocks
   longer than 2048 bytes (ICN can handle up to 4000 bytes).

!old
Q: I'm sure I used the correct parameters for my ISDN mailbox, but I still
   don't get a connection. I always get BUSY although I know the mailbox is not
   busy.
A: Sometimes there is an interrupt problem with the Teles driver. Check the
   interrupt count for your Teles card. If "cat /proc/interrupts" just gives
   you 0 then the following workaround may help you:
   Configure your drivers as modules. When booting load them (insmod/modprobe),
   then immediately unload them (rmmod) and reload them (insmod/modprobe).
   Then it should work correctly...!br
   Dr. Peter Schrammel <Dr.Peter.Schrammel@t-online.de> wrote:
!verbon
     It may be a problem with your ISDN cable...
!verboff

!old
Q: My modem emulation hangs. How can I force my card to hang up?
A: Emil Stephan <ste@esqhen.su.eunet.de> wrote on 13 Oct 1996:
!verbon
     If there is really no process using your modem emulation any more, try:
       cu -l /dev/ttyI0 dir
       +++
       ath0
       ~.
     Before and after "+++" you have to wait for a second, otherwise the modem
     emulation won't recognize it as the escape sequence (like a normal modem).
     Watch out for processes that (with "ps -ax") have something like "I0" or
     "I1" in the second column, they have an ISDN terminal as their controlling
     terminal. You may have to kill them with kill.
!verboff

Q: During a tty connection, I get a message from the kernel
   "teles_writebuf: channel not open". Then no more input is accepted
   for this connection.
A: Fritz Elfert <fritz@wuemaus.franken.de> wrote on 18 Nov 1996:!br
   Usually the partner cannot handle the large frames from i4l and
   simply closes the B channel during the transfer. Try making the
   frames smaller with AT&B512.

Q: When I use UUCP with X.75, I always get transfer errors!
A: Andreas Gutzwiller <andy@hippo.proxyon.imp.com> wrote on 5 Dec 1996:
!verbon
        I had to use the following settings, otherwise I only had errors.
        # Prot
          protocol-parameter g packet-size 512
          protocol-parameter g short-packets y
          protocol-parameter g window 7
          protocol-parameter g remote-window 7
          protocol-parameter v packet-size 512
        Now with large packets I can get ca 7300 cps.
!verboff
   Holger Burbach <holly@cthulhu.pfalz.de> on 5 Feb 1997 had another
   solution:
!verbon
        I have several XP users who poll without any problems. I did
        the following: First I set the send packet size for ttyI?
        to 1024 ("AT&B1024") and then set the packet size for the
        g protocol in UUCP:
          protocol-parameter g packet-size 2048
          protocol-parameter g remote-packet-size 0
        As I said, it works fine..
!verboff

Q: My iprofd doesn't work any more with HiSax 2.0. I get the error message 
   "Version of kernel modem-profile (3) does NOT match version of iprofd (1)".
   How can I get iprofd to work again? 
A: Fritz Elfert <fritz@wuemaus.franken.de> wrote on 17 Feb 1997:
   In iprofd.c, change the line with!br
!verbon
       #define DATA_VERSION 1
!verboff
   to 
!verbon
       #define DATA_VERSION 2
!verboff
   compile iprofd again, and (IMPORTANT) delete the saved profile
   file.

!3Async PPP

Q: How can I get a log for pppd?
A: See this question for Sync PPP, it works the same way for pppd.

Q: Establishing the connection works fine, but pppd crashes just after
   that (i.e. the first bytes get through, but then everything stops)
A: Joachim Gassen <joachim@fb4-1112.uni-muenster.de> wrote on 8 Jan
   1997:!br
   I had this problem as well. It's probably due to an incorrect block
   size on your side. Try inserting a &B512 in the "init string" for 
   your ISDN card. Then it should work.


!3Sync PPP

!old
Q: How can I get a log for ipppd?
A: For debugging purposes you can redirect the PPP log into a separate file.
   Just edit /etc/syslog.conf and add the following line (caution: do NOT use
   blanks or tabs):
!verbon
     daemon.*                      /var/log/ppp-log
!verboff
   then every information from PPP demon will be logged to /var/log/ppp-log.
   Emil Stephan <ste@esqhen.su.eunet.de> also wrote:
!verbon
     Remove the comment sign in front of this line in /etc/syslog.conf:
       #*.=debug                       /tmp/debug
     After changing this file you can restart syslogd with "kill -1 <pid of
     syslogd>".
     The output in /tmp/debug can be used to optimize the handshaking of
     PPP options.
!verboff


!old
Q: My ipppd won't work, it gives the error message "PPP driver 0.0.0 is out of
   date".
A: Ari Biel <aribiel@sun14.hrz.th-darmstadt.de> wrote on 3 Oct 1996:
!verbon
     I had the same thing! (S.u.S.E. 4.2 Kernel 2.0.0, isdn4k-utils 3.91 with
     patch). After recompiling the kernel and configuring PPP as module I could
     start ipppd. Looks like version problems.
!verboff

!commenton
(The following questions are from the sync PPP FAQ.)
!commentoff

!old
Q: Starting ipppd I get the error message "this systems lacks ppp support".
A: Check whether the device "ippp0" exists (i.e. with the program "ifconfig").
   The ipppd *needs* this device with exactly *that* name. If it doesn't exist
   one has to define it:
!verbon
     isdnctrl addif ippp0
     isdnctrl encap ippp0 syncppp
     ... (see i4l documentation for more information) ...
!verboff
   Maybe you compiled ipppd with the source of another kernel that you are not
   using...
   See also the question "How should I name my network interface?"
   under "Sync PPP" in the "Configuration" section.

!old
Q: How can I switch on PPP support for my kernel 1.2.13 (needed for ipppd)?
A: Stefan A. Muehlenweg <Stefan.A.Muehlenweg@samhh.hanse.de> wrote:
!verbon
     In 1.2.13 you tell the kernel *not* to include PPP support, then compile
     the kernel, *after that* do a 'make modules' and a 'make modules_install'.
     This way everything that's not compiled into the kernel, but that can be
     loaded as modules is prepared for loading via insmod. 'modprobe ppp' on
     bootup (in the rc.xxx script) will load the PPP module and all
     additionally needed modules (slhc etc).
     Prerequisite for ipppd with 1.2.13: install PPP version 2.2.0c. Also in
     the kernel sources (ppp-2.2.0c.tar.gz). And you need modutils 1.2.8
     (modules-1.2.8.tar.gz).
!verboff


!old
Q: When I start ipppd, I only get error messages from the i4l driver.
A: When ipppd is started, it calls functions that can trigger a network
   packet (e.g. gethostbyname()). Without ipppd (since at this time, ipppd
   it has not been fully started), this network access cannot be processed,
   You should try to put the needed hostnames in the local /etc/hosts or
   in some way define the name so that it can be resolved without having
   the access the ISDN/ippp interface. 

!old
Q: When I try to start ipppd it says "Can't find usable ippp device"
A: Frank Meyer <fm@textware.k.eunet.de> wrote:
!verbon
     I had the same problem. Interestingly, after about 5 minutes with
     several of those messages the ipppd said "started". And then it
     worked!  Well, I included several test prints into the ipppd
     source and located the problem: The ipppd calculates a random
     number on startup (forgot where) and uses gethostid() for
     that. That causes a DNS lookup. Then linux tries to find the
     nameserver mentioned in /etc/resolv.conf.  As ipppd isn't up it
     can't reach the name server, which gives those messages.  The
     solution was easy: I not only included my computer in /etc/hosts
     with its short name (e.g.  isdn), but also its full name
     including the domain in /etc/resolv.conf:
       x.x.x.x isdn isdn.who.knows.where
     Then it stopped complaining and just runs!  Even earlier there is
     a call from main() to setipdefault(), which (in options.c) calls
     gethostbyname().  This also causes a DNS lookup and the message
     "isdn_ppp_bind: Can't find usable ippp device".  So two lines in
     the source have to be changed to avoid the DNS lookup.  It's
     easier to include your own name in /etc/hosts, I used the IP
     address of my Ethernet card.
!verboff
   Carlos Heller <carlos@mable.webtrek.de> wrote:
!verbon
     There were some changes in patch-2.0.16 that could have caused the
     problem. You can try the unoffical patch from ftp.gwdg.de
     /pub/misc/isdn/linux/ippp/isdn.dif... until it is included in the official
     patch.
     My ipppd (from my Suse distribution) was broken. The packet i4l-43b2.tar
     from !link ftp://ftp.suse.de/; helped me.
!verboff

!commenton
(The following question was taken from the syncPPP FAQ)
!commentoff

!old
Q: I can't get a connect. How can I find out where the problem is?
A: The output of ipppd is very helpful... Check whether you can find:
!verbon
   - a few "LCP-conf-req SENT" messages (less than ten) and then a
     "TERM-REF":
     -> check whether the ISDN card was configured properly. It seems the
        computer doesn't dial (IRQ, IO, protocol wrong?)
   - at least a few "RECV" messages
     -> good: the card is dialing and the and your dialin computer tries
        to communicate. Maybe the authentication doesn't work. Check the
        ipppd configuration!
   - the message that ipppd was exited for some reason
     -> not so good... Check /var/log/messages and /var/adm/daemon.
        Could be a bug in ipppd.
!verboff

!old
Q: ipppd sometimes crashes (kernel 2.0.14...2.0.25)
A: Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> wrote about this:
!verbon
     Please downgrade to 2.0.14... In later version (since 2.0.16) there is a
     little bug which causes ipppd to exit if it can't get a connection.
     (Should not be a problem once you get a connection.) A "quick and dirty
     hack" is possible by removing some lines in ipppd, but better stay with
     2.0.14 until the bugfix finds its way into the new kernels.
!verboff
   (Remark: this is the case with 2.0.26)

!old
Q: I get the message "IP frames delayed" - and I don't get a connection.
A: See last question:
   You may have forgotten to use "isdnctrl dial ippp*" before using a net
   command like telnet, ping, or the like.

!old
Q: I cannot dial out with "isdnctrl dial ippp0". It seems as if the route to
   ipppd is missing although I *did* set it ("network unreachable"). With my
   old kernel < 2.0 everything works fine!
A: In the newer kernels you have to place "route" as the very last command
   before the dialout command. Otherwise the kernel will delete the route.

!old
Q: After ipppd dials out my default route is gone.
A: It's the kernel's fault. Newer kernels (>= 2.0) have some changes in the
   routing. Workaround: install a script /etc/ppp/ip-up like this:
!verbon
     #!/bin/sh
     /sbin/route add default ippp*
!verboff
   If you make your connections manually, can use something like this script:
!verbon
   /sbin/isdn
     #! /bin/sh
     case $1 in
       on)
         /sbin/isdnctrl dial ippp0       #  build up connection
         sleep 5                         #  wait until line open
         /sbin/route add default ippp0   #  set route
         ;;
       off)
         /sbin/isdnctrl hangup ippp0     #  hangup connection
         /sbin/route del default         #  and delete route again
         ;;
       *)
         echo -e "\a Usage: 'isdn on' or 'isdn off'"
         ;;
     esac
!verboff

Q: When dialing out, I get the message "pppd: peer authentication
   required but no authentication files accessible." What does this mean?
A: Most likely the option "auth" was set by mistake. Then the !u1other!u0 
   side is required to be authorized.

Q: I cannot establish a connection -  it's rejected by the other side.
   In the log file I find a message that's something like: "sent [0]
   [LCP ConfReq id=0x1 <mru 1500> <auth pap> <magic 0xcd12e9c4>"
A: Like in the last question, an option was been set that requires the
   !u1other!u0 side to be authorized. These options shouldn't be set.
   Possible candidates are: "+pap" as well as "+chap".

Q: I cannot establish a connection -  it's rejected by the other side.
   In the log file I find a message that's something like:  "sent [0]
   [LCP ConfRej id=0x1 <auth pap>"
A: Your computer is refusing to identify itself with user name (e.g. XXX) 
   and password (e.g. YYY). That only works with the authorization options
   "user XXX" and "remotename YYY" together with a correct (!)
   /etc/ppp/pap-secrets. With a password of ZZZ it should ideally look
   like this:
!verbon
        XXX YYY ZZZ
!verboff
   If that doesn't work, you can use wild cards, something like:
!verbon
        * * ZZZ
!verboff
   Then !u1every!u0 partner has the password ZZZ. If chap is required
   for authorization, then /etc/ppp/chap-secrets must be set up correctly.
   Important : the format is different from that of pap-secrets!
   Make sure to consult the README's, or check out:
     !link http://www.lrz-muenchen.de/~ui161ab/www/isdn/;

!old
Q: I have problems with PAP or CHAP authentication. It does not work although
   I'm sure I entered passwords etc. correctly.
A: Stefan A. Muehlenweg <Stefan.A.Muehlenweg@samhh.Hanse.DE> wrote on
   4 Oct 1996:
!verbon
     I had exactly the same problem/the same error message. The cause for it
     was that I had three entries in chap-secrets/pap-secrets (for client,
     server, secret), but not a fourth one (IP addresses). BUT: after the third
     entry were some BLANKs. After removing the trailing BLANKs and/or TABs
     (i)pppd is now very satisfied with my auth-files.
!verboff
   A further source of problems can be the password itself. If it contains
   the "#" character, then everything after than is understood as a
   comment. Spaces or tabs can cause similar problems. Solution: put
   the password in quotes!

!old
Q: I often get the error message "hscx_empty_fifo: incoming packet too large"
A: Probably one of the compressions is activated (i4l can't handle those very
   well). See also next question.
   Another possible reason could be an IRQ problem - see question "Why should
   I avoid IRQ 12 and 15 for my ISDN card?" in section "Teles" further down.!br
   A further source of errors was reported by Immanuel Derks 
   <broedtsk@xs4all.nl> on  3 Jan 1997:
!verbon
        My PAP script was broken because I had a "#" in my password!
        After I had quoted the password cleanly (e.g. with quotation
        marks), the problem was solved.
!verboff

!old
Q: The connection with ipppd seems to work, but eventually it crashes.
A: It could be that some compression is activated (that i4l can't
   handle properly). Common error: "-vj" has to be used *additionally*
   to "-vjccomp" (it completely switches off the VJ compression) - the
   example scripts coming with ipppd don't have that option included
   already.  Other compression modes (bsd, pccomp) can cause trouble,
   too.

Q: I only have problems with ipppd when the connection is being heavily 
   burdened. Then everything stops. What could be causing this?
A: Sven Engelhardt <sven@sik.de> wrote on 12 Dec 1996:
!verbon
           We are an ISP here in Dresden and use Linux (among other systems)
        for our access (with I4L as well as with external terminal adapters).
        We have this problem mostly with Windows 95 and NT customers who
        are using the "included" (modem network) software. It doesn't make
        any difference whether the customer is dialing with async or sync PPP.
        It also doesn't matter which modem emulation he is using on his side.
        What they have in common is that the connection is made with Microsoft
        modem adapter + Microsoft PPP (although a colleague recently told me
        about a similar problem with a Macintosh customer).
           Since it doesn't matter to PPP who is the server and who is the
        client, ask your ISP what kind of hardware you are dialing into (we
        have had >>no<< problems with Linux customers and Trumpet Winsock
        users, therefore I suspect a bug in MS-PPP).
           The following workaround usually works for us: (it's not a cure,
        but helps to reduce the pain...)
          * Reduce the Max MTU to 576 or even (296)
          * Reduce the  DefaultRcvWindow to 2144
        On the Windows 95 side these are 2 Registry entries; on the Linux
        side you can set "mtu 576" and "mru 576" in the PPP options.
        (see also !link http://www.windows95.com/connect/trouble.html;)
!verboff
   Erik Corry <ec@sign-tronic.dk> added on 16 Dec 1996:
!verbon
       For me, neither PPP compression option nor mru/mtu 296 helped.
       What did help was the AT command:
         AT&B512
       that limits the sent packets to 512 bytes.
!verboff

Q: My ipppd works, but I keep getting the message pppd[104]: 
   ioctl(SIOCSIFMTU): Invalid argument"?
A: Andreas Steffan <deas@rrz.uni-hamburg.de> wrote on 11 Dec 1996:!br
   I had to play around quite a bit before I found the answer. I had to
   add a line to /etc/ppp/options.ippp0:
!verbon
        mtu 1024
!verboff
   It's strange, but now I finally have peace and quiet.
   [if mtu is not set, then a default value is assumed - possibly "0" -
   which of course cannot be correct - Ed.]

!old
Q: The first IP packet gets lost on automatic dialout with dynamic IP address
   allocation.
A: There are some dialout problems in connection with syncPPP and dynamic IP
   address allocation. In this case your IP address will change while packets
   are waiting to be sent. All packets that should be sent before the change
   in IP address are "hung".
   Workaround:
   Before connecting with telnet, ping, or the like dial out manually with
   "isdnctrl dial ippp*".
   Stefan A. Muehlenweg <Stefan.A.Muehlenweg@samhh.Hanse.DE> wrote:
!verbon
     Yesterday I got a permanent IP address and since then the automatic dial-
     out via ipppd works beautifully. The same goes for the serial interface
     with asyncPPP over V.120 and diald (per ELSA Microlink ISDN/TLpro ---
     also over the V.34 modem). I had the same symptoms there in the past.
     Summary: When using automatic (!) dialout you definitely need a permanent
     IP address. If you start and end your connection manually (!) then you can
     live with dynamic address allocation.
     It surely is time to extend PPP's functionality to not only hold outgoing
     packets that initiate a connection, but also correct the IP address to the
     new address before sending it out. The same goes for other packets that
     arrive before the connection is up.
     Also diald has to get that functionality to control when the connection
     goes up or down.
!verboff     
   A suggested solution came from Erik Corry <erik@arbat.com> on 
   5 Jan 1997:
!verbon
        1) No local name server/name server cache
        2) Local squid proxy WWW server (and Netscape must use it).
        3) set positive_dns_ttl to 1 in /usr/local/squid/etc/squid.conf
           so squid doesn't cache IP addresses
          Now the connection will always start with a DNS lookup,
        which is immune to IP address changes (because it runs on
        UDP and not TCP?). If you have other programs that cache
        IP addresses, you'll have to figure you how to get around
        them. Normally a program caches an IP address when it
        has to connect twice to the same server. That isn't a
        problem, of course, when the second connection occurs so
        quickly after the first that the dial-on-demand connection
        is still the same.
!verboff
   [pppd should support dial-on-demand in the next version -
   maybe then things will be better - Ed.]

Q: When calling "isdnctrl mapping <line> <MSN>,..." I get the error 
   "bad address".
A: Bernd Oerding <erni@nukleus.escape.de> wrote on 9 Nov 1996:!br
   The reason for this error is that the kernel expects a 255 byte block
   from the user space, however it may not be there when the pointer 
   point to  argv0. This following patch fixed the problem at the user
   level; not pretty but it works.
!verbon
        *** 1.14        1996/06/06 22:08:46
        --- isdnctrl.c        1996/09/04 19:13:39
        ***************
        *** 498,504 ****
                  }
                  printf("MSN/EAZ-mapping for %s:\n%s\n",argv[2],nstring);
                } else {
        !         iocts.arg = (unsigned long)argv[3];
                  if ((result=ioctl(fd,IIOCSETMAP,&iocts))<0) {
                    perror(argv[2]);
                    exit(-1);
        --- 498,506 ----
                  }
                  printf("MSN/EAZ-mapping for %s:\n%s\n",argv[2],nstring);
                } else {
        !         char buf[400];
        !         strncpy(buf, argv[3], sizeof(buf)-1);
        !         iocts.arg = (unsigned long)buf;
                  if ((result=ioctl(fd,IIOCSETMAP,&iocts))<0) {
                    perror(argv[2]);
!verboff
   [It's also been reported that adding "/sbin" to the path (environment)
   helps. When debugging cron scripts, you can set this with "set -X" - Ed.]

Q: What does the message "No phone number, packet dropped" mean?
A: Michael Engert <michi@bello.wor.de> wrote in Nov/Dec 1996:!br
   That means that your computer has an IP packet from somewhat who was
   logged on a few seconds before, but has since broken the connection.
   Your computer tries to send this packet on and finds an appropriate 
   route. But the interface isdn[0|1|...] can't reach the other computer,
   since it has no telephone number to dial.

Q: Why does my ipppd dial one too many zeros ("isdn0: dialing 0 089XXXXXX...")?
   I don't have any extensions!
A: The first zero is not dialed. It only shows which channel is used for
   dialing.
   
!commenton
(The following question was taken from the syncPPP FAQ)
!commentoff

!old
Q: My ISDN device is shown with HWaddr and IRQ=0 and base address = 0 when I
   list it with ifconfig
A: The ISDN device fakes an Ethernet device. It ignores IRQ and baseaddr and
   just needs the HWaddr for the Ethernet encapsulation.


!3ISDN in a network

!old
Q: xosview doesn't show any network activity since installing i4l.
A: Peter Hettkamp <Peter.Hettkamp@kassel.netsurf.de> wrote:
!verbon
     xosview reacts, at least for me with version 1.4, to the IP accounting
     in the kernel. So, configure, if necessary build a new kernel, then 
     couple with:
       ipfwadm -A -a -S your-ip-address-here -D 0.0.0.0/0
       ipfwadm -A -a -D your-ip-address-here -S 0.0.0.0/0
     (I don't know who it works with variable IP addresses. I have a fixed
     address.)
!verboff

!commenton
Rainer May <r_may@khavi.desaster.heide.de> has put together questions and
answers on "i4l and Masquerading:
!commentoff

!old
Q: When I for example from a W95 box call up a page with Netscape,
   I only get the answer "unknown host".
A: What is entered on the "Win95 box" for the name server? As long as the 
   router has no name server of its own, then the provider's name server 
   of course has to be entered on all computers on the LAN
   
!old
Q: Addresses are now found, but now instead of the page I want I get 
   the message "no route to host".
A: Please check:
!verbon
   * Is the Linux computer entered as the gateway? (Some 'operating systems'
     have to be restarted before changes to the networking take effect)?
   * Does the router have a default route to the prepared interface to the
     provide (e.g. ippp0 with syncPPP or sl0 for diald (even when the real
     connection is over ppp0, diald uses a slip interface as a "doorknob")
   * Does the provider require the use of proxies? Then the addresses  
     of the proxies have to the entered in the appropriate clients on the LAN
     computers
!verboff

Q: After booting, my local network can no longer be reached. I use the
   network interface ippp0 with ifconfig 0.0.0.0; the default route 
   points to ippp0.
A: Wolfgang Barth wrote on 5 Jan 1997:
!verbon
           I've noticed that after the first connection via ippp0 that the local
        network can again be reached. Then the address 0.0.0.0 is no longer
        listed in ifconfig for ippp0, but instead the address assigned from
        the pool by the PPP partner. 
           This was already discussed in de.comp.os.linux.networking, along
        this possible solution: 
           Simply set ippp0 to a dummy IP number from the pool. Then the 
        local network will have problems after booting, even with the 
        default route, and the IP number in ifconfig will be overwritten
        anyway.
!verboff


!3Isdnlog

Q: My isdnlog 2.50 doesn't work since I installed HiSax 1.2.
A: Isdnlog needs to be patched... you can find the patch everywhere where 
   HiSax is found.

Q: I've patched isdnlog, but it still won't work together with HiSax
   (isdnlog starts with the usual messages, but nothing happens)?
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Jan 1997:
!verbon
        Is one of the "usual messages":
          "(HiSax driver detected)"?
        If not:
        - have you started version 2.52 - not just compiled?
        - have you remembered  "telesctrl <DriverID> 1 4" ?
        - ISDN connections are working otherwise?
        If so: Contact me (isdnlog@Kool.f.EUnet.de) with the 
        appropriate log files (created with "isdnlog -v7").
!verboff

Q: Isdnlog (>=2.52) shows for a caller !u1two!u0 telephone numbers!
   Which one is correct?
A: The caller has most likely activated the (costly) feature CLIP
   (= Calling Line Identification Presentation, no screening), which means 
   any telephone number can be transmitted. See the question "I've heard
   that actually two Caller IDs are transmitted?".!br 
   Andreas Kool <akool@Kool.f.EUnet.de> wrote on 26 Jan 1997:!br
   In any case, you can only fool software/PBXs that do not evaluate
   the screening indicator - isdnlog with version 2.52 shows both the
   correct *and* the faked telephone number.!br
   ...CLIP was actually designed for transmitting internal company
   numbers in the public network.

!old
Q: When calling I receive a "Internal error: wrong structure".
A: Most likely something is wrong with the configuration in isdnlog.cf. 
   Even the same MSNs with different services have to be counted separately.
   (for the entries under MYMSN).
   Steffan Henke <henker@Informatik.Uni-Bremen.DE> also wrote:
!verbon
     My problem with isdnlog 2.50 and  "wrong structure error" was caused 
     only by leaving out the leading zero. 
     Example:
       017201234567     Handy           1 -
     Previously I had it so:
       *17201234567     Handy           1 -
     This seems to have fixed everything.
!verboff

!old
Q: Isdnlog crashes with a "segmentation fault".
A: Dirk Lutzebaeck <lutzeb@wadk-berlin.de> wrote:
!verbon
     For me, isdnlog crashed because it was not entered in /etc/services
!verboff

     
Q: I've set up a script to play sound per cat on /dev/sound or some
   other device. When several events occur, then there is an error:
   "Can't open output file '/dev/sound': Device or resource busy"
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Nov 1996:!br
   The only thing you can do is to create an upper instance that
   coordinates this. I personally use NAS (network audio system),
   but "rplay" should be just as good!

Q: Isdnlog should call a program with redirected output (e.g.
   "play anruf.au 2>/dev/null" ). Why does ISDN tell me "Can't start
   '/usr/local/bin/play anruf.au 2>/dev/null' with execvp()"?
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Nov 1996:!br
   Because isdnlog is not a (Bourne) shell ;-) isdnlog can only start
   "real" programs.!br
   Short and sweet: this example has to be saved as an executable
   (-> chmod +x) file in the following way:
!verbon
        #!/bin/sh
        /usr/local/bin/play anruf.au 2>/dev/null
!verboff

Q: Why does isdnlog quit with  "kill -1", according to the docs it
   should only reread isdnlog.conf. 
A: Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Nov 1996:!br
   This is a bug isdnlog-2.5x, but it's been fixed already.
   isdnlog-2.60 (coming soon ;-) can do this better!

!commenton
(The following question and answer is from Andreas Kool
<akool@Kool.f.EUnet.de>)
!commentoff

!old
Q: Isdnlog takes 100% of the CPU time
A: isdnlog-2.4x has 2 possibilities to take the entire CPU time or even
   to stop working altogether
!verbon
   - right when starting isdnlog or isdnrep:
     Here the 2 programs have choked trying to read "isdnlog.conf"
     Solutions:
     - never use blanks in the alias column!
       (e.g.: "My MSN")
     - never use "#" in the alias column!
       (e.g.: "MSN#3")
     - never use "\" in the alias column!
       (e.g.: "MSN\#3") (Thank you, Holger Wirtz <chick@midips.snafu.de>)
     - never use "*" as the entry in the flags column!
       (Thank you, Werner Wiethege <ww@slarti.frankfurt.netsurf.de>)
     - the "START=" line requires an entry indicated _when_ it is to be started
         for example
         START=IOH=auplay hangup.au
       and _not_
         START=auplay hangup.au
       (Thank you, Dirk Staneker <zxmjy04@student.uni-tuebingen.de>)
   - when using the "-S" option to start external programs.
     Here isdnlog ran into the code the X11 client "xisdn"
     and started looping in itself, leaving behind zombies -  this was fixed
     in isdnlog-2.50.
!verboff

!old
Q: The Telekom is paying me (according to isdnlog/isdnrep) 12 pfennigs 
   (1 unit) for each connection...
A: You wish... Christian Bruehe <oblomow@cs.tu-berlin.de> wrote:
!verbon
     I recently had the same effect when I mistakenly started isdnlog twice
!verboff

Q: According to isdnlog every "busy" costs me 45 units?
A: This is a bug in older isdnlog versions (e.g. 2.41) with regards to 
   the ISDN feature callback when busy. Of course, this busy doesn't really
   cost 45 units.

Q: I'm having problems getting isdnlog to run with libc 5.4.7!
A: Christian Schlittchen <corwin@amber.hb.north.de / corwin@zfn.uni-bremen.de>
   wrote on 8 Oct 1996:
!verbon
        In the meantime I've patched isdnlog. The problem is the 
        strftime() call in line 264 of isdnlog.c. There the "%e" 
        should be replaced with a "%d", then everything works again.
!verboff

Q: When dialing out, the screen goes momentarily black?
A: Roger F. Brand <roger@rz.uni-frankfurt.de> wrote on 12 Feb 1997:
   I think that's the fault of isdnlog. If you've started it with
   the option -t 1 or -t 2, then the time is synchronized with the
   digital switching station. That causes a short blackout of the
   screen. 


!3Audio

!old
Q: My vboxgetty does not answer any incoming calls.
A: vboxgetty needs ".vboxrc" in the home directory of the user for which
   vboxgetty is configured. The number of rings is taken from this file.

!old
Q: My vboxgetty answers at the first ring but the number of rings is set to 4.
A: The rings are created by a timer in the isdn module that doesn't 
   necessarily set the delay accurately. If you configure vboxgetty with 
   30 rings, vboxgetty will wait about 5 rings before it picks up the line.


!old
Q: My vbox 1.1 does not work together with HiSax.
A: Use HiSax >=1.2. This version includes correct alerting.

!old
Q: If vboxgetty has recorded a message in a format which can not be played
   using "cat xxx>/dev/audio" how can I still hear the message?
A: Vboxgetty can play all formats. You could also copy the message as the
   standard message (standard.msg in the messages directory) and call
   yourself, the message will be played then. (Don't forget to copy back the
   original message when you are done :-) ).

Q: At the beginning of a message recorded by vboxgetty, there's often a
   part of my own announcement?
A: This is a known bug that occurs when switching between the playing of
   the announcement and recording the message. Up to now there is no
   known workaround.

!3Dialout on demand

Q: What can cause a charge unit disaster?
A: There are several possibilities.!br
   1. "Bridging" was compiled into the kernel (see the appropriate question
   below).!br
   2. Broadcasts from the interfaces ware being forwarded by ISDN (see 
   the appropriate question below).!br
   3. If IP connections are still open with the line is disconnected and
   IP addresses are dynamically assigned, then the disaster is inevitable.
   Then a new connection is started to bring down the open IP connections,
   which fails because the IP address is now different. The line is hung up,
   but the IP connections are still open, the line is dialed again, and
   so on... (see the appropriate question below).

Q: Ever since I installed a new kernel, my computer constantly open ISDN
   connections without transferring any data (expensive!).
A: Maybe the kernel option "bridging" was mistakenly activated?

Q: My router wants to constantly dial out (and does it too) but !u1NO!u0
   data is transferred, neither ipfwadm -A! nor tcpdump -i isdn0 show
   anything.
A: Michael Pieper <michael@nexus1.tng.oche.de> wrote on 10 Nov 1996:!br
   ARP requests or broadcasts? You should run ifconfig with the options
   -arp and -broadcast to keep from opening connections in this way.

Q: After closing the line, I discover with "netstat -nt" that IP connections
   are still open. How can I close these manually?
A: Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 18 Jan 1997:!br
   You can bring the interface "down" then back "up". When you do this, it
   will try to dial out. But if you have removed the outgoing telephone
   number, then "no outgoing number..." appears in the syslog, and as soon
   as the interface is "up", all connections will be closed.

Q: How can I safely turn off dialout on demand?
A: Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 10 Jan 1997:!br
   I delete the telephone number of the interface [or set an invalid one - Ed.]
   Then I can see right away from the complaints in the syslog whether a 
   process wants to send packets out to the world.!br
   Sascha Ottolski <sascha@alzhimer.isdn.cs.tu-berlin.de> added on
   28 Oct 1996:!br 
   For me, what is happening is what you want: the ISDN system is 
   "down", Netscape immediately shows an error message a la: "the Server 
   doesn't have a DNS entry" or something similar. You probably have to
   delete the route so that this will happen. I do it like this:
!verbon
        /sbin/route del default
        /sbin/isdnctrl system off
        /sbin/ifconfig ippp0 down
!verboff
   An to get things running again:
!verbon
        /sbin/isdnctrl system on
        /sbin/ifconfig ippp0 up 
        /sbin/route add $GATE-IP dev ippp0
        /sbin/route add default ippp0
!verboff
   [The latter method has the disadvantage that dialin is then no longer 
   possible - Ed.]

Q: How else can I prevent the charge unit disaster?
A: In the next version of isdnlog (>2.52) it will be able to work as a
   watchdog and prevent such dialouts (with a reboot, if necessary).

Q: Is it possible that even with a crashed computer a ISDN connection
   remains open (and the charge units accumulate)?
A: Karsten Keil <keil@temic-ech.spacenet.de> wrote on 11 Feb 1997:
   I'm guessing, that with the status enquiry [in Switzerland - Ed.] you
   simply want to make sure that when the user side has crashed, the connection
   is broken. This is in addition to the Layer 2 monitoring and is not
   totally senseless, since with many cards/end devices the ISAC is run in 
   auto mode and therefore a crash would keep the connection open.!br
   However, i4l runs the ISAC in nonauto mode, meaning that when interrupts
   are no longer being process, the connection is broken after a maximum
   of about 1/2 a minute. This is not the reason for using nonauto mode, but
   this is a safety feature ;-), but doesn't mean that the charge unit 
   disaster is impossible.

Q: How can track down unexplainable dialouts?
A: Dirk Lutzebaeck <lutzeb@wadk-berlin.de> wrote on 5 Nov 1996:
!verbon
        Unfortunately, I don't know of any syncPPP encapsulation patch for
        tcpdump. If you use ipppd, then your only chance is to turn off
        one daemon after the other and see if things have finally quieted
        down. Likely candidates are named, sendmail, and also smbd (Samba)
        that are likely to open connections.
!verboff
   [On tcpdump see the appropriate question under "General" in the 
   "Configuration" section. On named and sendmail see the following
   questions - Ed.]
   Christoph Trautwein <trautw@fzi.de> added on 5 Nov 1996:
!verbon
        I too was only able to find this out by killing suspicious processes.
        More information on the search for these processes and how to make
        them quit can be found at:
          !link http://www.fzi.de/sim/people/trautw/i4l/index.html;
!verboff
   Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at> added on
   24 Nov 1996:
!verbon
        Try to find out which lookup triggers the connection with
        "isdnctrl verbose 3". Then a message should appear in
        the kernel message queue (visible with "dmesg") a'la:
          OPEN: 141.76.60.54 -> 193.171.67.253 TCP, port: 1686 -> 540
        In this example, our computer is trying to pick up mail on
        port 540 (UUCP over TCP/IP over ISDN).
!verboff
   [only the triggering packet will be logged - Ed.]!br
   Stefan Luethje <luethje@sl-gw.lake.de> wrote further on 27 Nov 1996:
!verbon
        Another tip. There are a lot of daemons on the Linux side that
        broadcasts on all interfaces. This leads to frequent autodials. 
        In this case you can redirected the broadcast address to the
        dummy0 interface. It's not clean, but it works.
!verboff
   See all the last question in this section.
   
Q: Can it be that the Win95 machine on my LAN is causing automatic
   dialouts?
A: Stefan Luethje <luethje@sl-gw.lake.de> wrote on 27 Nov 1996:
!verbon
        Whin in Wintel the name server of your provider is given, and
        Windows 3.11/95 is started, then it has to talk to the name
        server (only Bill Gates knows why).
!verboff

Q: I have set up a local DNS name server. Why does it cause unwanted 
   dialouts? How can I find the cause?
A: Jens Ey <jens@jeyhh.shnet.org> wrote on 29 Nov 1996:!br
   Turn on debug level 1 in named and look at the logfile
   in /var/tmp.!br
   In my case, I found regular DNS requests from Windows machines. The
   problem was that names like WORKGROUP.domain.de were requested,
   i.e. names that the DNS could not know. I'm assuming that the Windows
   machine was looking for its master browser or a domain controller.!br
   This was causing me so many problems for my Internet connection with
   Linux in a LAN that I installed an external terminal adapter, set up
   a proxy server, and set up diald that only DNS requests from the Linux
   machine were allowed to be carried out. Then the connections are 
   established only when they are actually needed. The (cached) local DNS
   is only used after the connection has been established. 

Q: How can I turn off the DNS requests for WORKGROUP.xxx from my
   Win95 machine?
A: Eike Stepper <isdn@esc-net.de> wrote on 30 Nov 1996:
!verbon
        Why not simply set the "Use DNS for Windows Names Resolution"   
        (or similar) to No? Then it should be quiet, at least it
        is for me.
!verboff

Q: How can I get sendmail to not initiate any connections without local
   mail being left undelivered?
A: First you have to get sendmail to no long open any DNS connections.
   You need to activate the following features: "nodns", "nocanonify".!br
   If you have a smarthost, you need to make sure that this name does not
   call the name server. You can either set it directly as an IP address,
   or add the name to /etc/hosts (/etc/host.conf should then contain
   "order hosts bind")!br
   You should set all non-local mailers as "expensive"
   ("define(SMTP_MAILER_FLAGS, e)"), and then forbid sendmail with
   "define(`confCON_EXPENSIVE', `True')" from automatically connection
   to expensive mailers. The call to sendmail should no longer include
   a time for the "-q" option (e.g. only "-bd -os -q"). "-os" means that
   all mail will be queued (which won't prevent local mail from being
   delivered immediately). The only catch is that when booting, mail that
   might still be in the queue will be sent by sendmail, even though the
   network is not yet up. Therefore, when booting you should remove 
   all mail from /var/mqueue before starting sendmail, and then return it 
   once sendmail has been started.!br
   Mail to expensive mailers will now only be send with the explicit
   call "sendmail -q".

Q: The samba package always triggers dialouts for me. How can I prevent
   this?
A: Andreas Glahn <andreas@tao.westfalen.de> wrote on 31 Jan 1997:
   I had this problems too. Then when starting the samba daemon I gave
   it the internal IP address I use here at home. Since then a samba
   request is no longer sent to default, but stays here.!br
   Take a look at the configuration with netstat and tcpdump. With tcpdump
   you can quickly find out to which IP address samba is trying to
   connect.!br
   My internal Linux computer has, e.g.: 192.168.99.99!br
   My Win95 computer:        n           192.168.99.88!br
   On the Linux computer I started samba with:
!verbon
       nmdb -S -B 192.168.99.255 -I 192.168.99.99
!verboff
   See also the above question:  se -broadcast and possibly -arp 
   when defining the interfaces!

Q: How can I get Netscape to quit initiating dialouts when starting?
A: Most likely in the preferences a non-local home page has been listed.
   Only a home page that Netscape is able to load immediately (e.g.
   "file://localhost/xxx") won't cause an immediate dialout. Alternatively
   you can also set up a cache daemon that saves pages that are often needed.!br
   A proxy should not cause a dial out, even when the complete name is 
   entered. Only when a new proxy is given does Netscape do a DNS
   lookup (and in this special case cause a dialout.
   However, on 17 Mar 97 Steffan Henke <henker@Informatik.Uni-Bremen.DE>
   wrote:
!verbon
        Unfortunately reality has caught up with us. I've heard that
        Netscape now in version.4.02 really does establish a
        connection...
!verboff


!3Chargeint

!old
Q: The connection doesn't end with timeout. Possible reason: my service
   provider uses a Cisco router which sends a "keep alive" packet every ten
   seconds.
A: Winfried Haug <haug@seicom.net> wrote:
!verbon
     If the Cisco doesn't get an answer for its keep alive packets then it will
     stop routing! That normally happens after the 4. or 5. keep alive packet.
     The best solution is to tell the provider not to use keep alive packets
     ("no keepalive" in the Cisco configuration).
     There is NO REASON to use keep alive packets, especially between two Cisco
     routers and on leased lines.
!verboff


!old
Q: My Internet provider won't switch off keep alive packets so ipppd never hangs
   up.
A: Dirk Melchers <dirk@merlin.nbg.sub.org> wrote about this:
!verbon
     LCP messages are considered traffic and keep the line open. There was a
     little patch for kernel 2.0.21 in relation with the patch chargeint-2.04
     for isdnlog-2.50. This patch ignores *all* syncPPP LCP data for the
     calculation of the hangup timer, so hangup works even with LCP-echo-
     requests.
     Warning: The code works for *me* and my provider. I don't know if it will
     work for *you*. Just try it!
!verboff
    If you need the patch, mail Dirk Melchers.

Q: The "lcp-keep-alive" patch doesn't work - ipppd still doesn't hang up.
A: It could be that it's not the LCP packets that are keeping the 
   connection open, but rather OSPF routing updates. The sending of these
   updates can only be switched off on the Cisco. Eddy PE1CIG 
   <eddy@sys2.pe1cig.ampr.org> gave this tip on 27 Dec 1996:
!verbon
        After some experimenting, I found a solution on the Cisco
        (IOS 11.0.7), that's called "snapshot routing". I configured
        "snapshot server" on the BRI interface. That means it will
        send out routing updates only when they are received through
        this interface.
!verboff


!3Dialin

Q: I keep getting the message "isdn_tty: call from XXX -> YYY
   ignored". Why does isdn4linux (syncPPP) ignore this dialin attempt?
A: There are two possible explanations. Either your own MSN (here: YYY)
   is not correctly set with "isdnctrl eaz <interface> YYY". Or 
    "isdnctrl secure <interface> on" was set, without allowing calls from
    the incoming number (here: XXX) with "isdnctrl addphone <interface> in XXX".

!old
Q: I've configured several ippp* devices. Each incoming call "uses up" one
   device, until there is no device available any more.
A: That's a known bug. There is a patch available to fix it.
   Manfred.Dill <manfred.dill@bmw.de> wrote about this:
!verbon
     In the module isdn_net.c (line 1720) there is a comment "/* if this
     interface is dialing, it does it probably on a different device, so free
     this device */" and function isdn_free_channel is called.
     [...]
     It looks now like this:
       #ifdef CONFIG_ISDN_PPP
       if (p->local.p_encap == ISDN_NET_ENCAP_SYNCPPP)
       ippp_table[lp->ppp_minor]->state = IPPP_OPEN;
       #endif
!verboff
   It can be assumed that this will be fixed in an improved ipppd.

Q: With "isdnctl pppbind" I've established an exclusive connection.
    But this is removed with an incoming call.
A: G. Richter <richter@ecos.de> wrote to Michael Hipp
   <Michael.Hipp@student.uni-tuebingen.de> on  2 Nov 1996:
!verbon
        > ... I've looked through the code an found
        > a possible error triggered by incoming calls. 
        > Is this the case for your scenario? If so,
        > try removing: (isdn_net.c, around line 1730)
        >   p->local.pppbind = -1;
        > in the function isdn_net_find_icall().
       I took out this line and now it works.
!verboff

!commenton
(The following question was taken from the syncPPP FAQ)  
!commentoff

Q: A SunISDN tries to dial into my i4l system.
A: The Sun tries to communicate with asyncPPP. ipppd can't handle
   this, you have to use the ttyI* devices and the standard pppd.


!3Callback

!old
Q: An incoming call is rejected by i4l. i4l then calls back. The
   reject is not recognized by the other side which keeps on dialing
   to i4l.
A: Most problems with callback can be solved by adjusting the callback
   delay with "isdnctrl cbdelay". One second has been successful in
   many cases.

Q: Callback isn't working. How many ippp* devices do I need (at a
   minimum)?
A: Manfred Dill <manfred.dill@bmw.de> wrote on 18 Dec 1996:!br
   You should use a second device ippp1 for which callback can be used.
   Because of an error in i4l, the first device is used for callback
   and is not released. When the connection is ended, the third device
   (if it exists) is opened and the circle is complete.!br
   For devices, see the appropriate questions under "Dial-in".

Q: Callback still doesn't work right. Can the fault lie with the Teles
   driver?
A: Karsten Keil <isdn4@temic-ech.spacenet.de> wrote on 10 Jan 1997:
   The Teles driver has problems with callback. Use HiSax 1.5 (1.4 also
   had a bug with callback).

!old
Q: When trying callback with Euro-ISDN the call never gets rejected.
A: Karsten Keil <isdn4@temic-ech.spacenet.de> has fixed this with the new
   "HiSax" driver.
   Also see the questions General HiSax and the section about HiSax.

!old
Q: Somehow i4l can not callback a Cisco?
A: Torsten Hentschel <Torsten.Hentschel@DInet.de> wrote on 3 Oct 1996:
!verbon
     A Cisco may dial so heavily that the ipppd has no chance to callback.
     That's how they are programmed (firm statement of a Cisco developer):
       If a Cisco receives a packet that should be routed through a "dial on
       demand" telephone connection, and there is a D-channel available for
       dialing out, it dials out immediately.
     If in such a situation (which has be the case with Delta Internet for half
     a year now) a Cisco with 8 D-channels is on the other side and somebody
     does a simple "ping <RemoteIP>" then the Cisco will use (worst case) all
     8 D-channels to dial out. Of course it can't dial the same telephone
     number with two D-channels in parallel (would be immediately busy). Its
     programming is not so stupid, but it sets up the next D-channel for
     dialout before it assumes the previous D-channel as failed. Such a Cisco
     works like a machine gun in respect to dialout. And i4l won't get a free
     D-channel for dialin if the Cisco doesn't want.
     The bad thing: a Cisco always expects (even when configured on "callback
     client" = i4l dials back) that the other side unhooks the line, then both
     hang up and then comes the callback. Username and password always have to
     be exchanged before the callback is allowed when using PPP, to be sure
     that the person requesting callback is allowed to do so. (Cisco seems to
     obey the rules of the [German] Telekom that no information are to be ex-
     changed without a B-channel connection. A callback request just by caller
     id could in doubt be considered as a transmission of information).
!verboff

Q: Callback from an Ascend works only when I set "Active=Yes" in the
   Ascend menu; but then the Ascend keeps calling me, even when my
   machine is off.
A: Ulrich Klein <ulik@hprc.tandem.com> wrote on 14 Dec 1996:!br
   Somewhere in the Ascend menus you can set "dial broadcast" to "no"
   or "off". Otherwise the thing will dial with every broadcast. At
   least that helped me. In case anyone from the network on which the
   Ascend is attached really wants to establish a connection, then you
   have to use the strange filters. I believe there's one that will
   dial out only for callback.

Q: How can I callback a Banzai!? 
A: Jan-Olaf Droese <jano@layla.RoBIN.de> wrote on 31 Jan 1997:!br
   On the Banzai side, a  `c' should be added to the outgoing number,
   so it will be ready for the return call. Just to be safe, you can
   the dialout attempts on the Banzai to 1, so there won't be any
   call collisions.
   On the i4l I've set the following:
!verbon
       isdnctrl callback isdn0 in
       isdnctrl cbdelay isdn0 1
!verboff

Q: Some the callbacks confuse the module count. How can I now unload 
   my ISDN modules?
A: Karsten Keil <keil@temic-ech.spacenet.de> has as a temporary workaround
   added two "secret" telesctrl commands:
!verbon
        telesctrl <id> 3 1  ---> dec module_count
        telesctrl <id> 4 1  ---> inc module_count
!verboff
   Please use with appropriate caution! 

!3MPPP

!old
Q: SyncPPP works without problems on one channel. Unfortunately MPPP won't work
   due to communication problems between ipppd and the other side.
A: Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> wrote on 11 Oct 1996:
!verbon
     At first about your bug: the other side does not like the MP-MRU (0x5dc)
     but wants a smaller one (0x5d7) ... which is what ipppd doesn't like (bug)
     ... Just try 0x5d7 as MP-MRU.
     Without a MP-MRU agreed about MPPP won't switch on .. which is why it is
     not working.
!verboff

!2National Peculiarities

[Translator's note: Here are some notes we've received that are
not yet in the main FAQ:!br!br

-Elie Milgrom  <em@info.ucl.ac.be> reports that in Belgium the MSN is 
"Nothing special: a MSN is just a 'regular' phone number here."!br!br

-Sunny Marueli <sunnym@netvision.net.il> reports that "isdn4linux
works in Israel as well (with Teles PnP)."!br!br

-Jerome Lefranc <decision@calva.net> reports for France that:
	"(1) if you don't have MSN, you need to specify
	  as local number only the last 4 digits of you phone 
	  number.
		ex: 01 41 33 67 87, local phone number is 6787;

	(2) you can use sub-address number (not MSN).
		ex: 01 41 33 67 87   (phone number), 02 (sub-address),
	then the local phone will be 6787.02 with the HiSax driver."!br!br

-Niall  O Broin <nobroin@esoc.esa.de> reports that in Ireland he's
had success during some limited testing on a Telecom Eireann line
(the only provider of end-user ISDN lines in Ireland). He wrote:

"Not what you'd call comprehensively tested, but a machine with
an AVM Fritz ISA card

1) Call itself using TTY emulation
2) Call the test numbers mentioned in the FAQ using TTY emulation
3) Initiate a synchronous PPP connection
4) Receive a synchronous PPP connection

Apart from the above, no other testing was carried out but the above
functions all worked just fine."!br!br


-I'm not sure how to set up an EAZ/MSN in the UK, but Paul
Slootman <paul@wau.mis.ah.nl> wrote:

"I have information that in the UK, there are no "normal" MSNs. Each
MSN is actually a single digit, 0 - 9, corresponding to the last digit
of the actual phone number. Apparently in the UK you either have *no*
MSNs, or 10 MSNs; you then always get a block of 10 sequential
numbers. I've also heard that from middle October, BT is going to
offer "normal" EuroISDN, which they will call ISDN-2e (their current
offering is ISDN-2). This will also have facilities such as call
forwarding etc.  Look somewhere on www.andrews-arnold.co.uk/isdn/ for
more info."]


!3Germany (1TR6)


!old
Q: Which EAZ should I use for i4l?
A: You can use all available EAZ. However, two EAZ have a special meaning and
   can cause problems:
!verbon
     EAZ 0: global call (all telephones ring)
     EAZ 9: global call (no telephone rings)
!verboff

Q: I use 1TR6 on an extension - the extension number has more than one
   digit (e.g. 206). What is my EAZ?
A: Jens Ey <jens@jeyhh.shnet.org> wrote on 10 Jan 1997:!br
   The EAZ for extensions is usually the last digit of the extension number.
   As EAZ for the Linux computer you should then enter a '6'.

!old
Q: The state machine hangs with 1TR6.
A: Karsten Keil <isdn4@temic-ech.spacenet.de> has fixed that with the new
   "HiSax" driver.
   See questions General HiSax and the section about the HiSax driver.

!3Italy

Q: What does our MSN look like?
A: 
!verbon
[Translator's note: The original FAQ seems to have the wrong paragraph here. 
Paolo Sommaruga <psomma@portcros.garda-access.com> wrote on 7 May 1997:

isdn4linux also works in Italy (ICN card). I accept Internet connections
from my customers with X.75 and asyncPPP.  I would like to
migrate to synchronous PPP. For the FAQ, here is a problem that I found
with Italian lines.                                            

The MSN must be the phone number with the Italian area code  but without
the leading 0. For example, if my phone number is 72004681 and my area
code is 045, my MSN is 4572004681.                                                               

Now with the setting AT&E4572004681 isdn4linux works fine. ]
!verboff

!3The Netherlands

Q: What does our MSN look like?
A: In The Netherlands the MSN includes (as opposed to the German 
   Telekom) !u1also the area code!u0 - but without the leading zero. 
   If your telephone number were 01234-56789, then it would be 
   configured as follows:
!verbon
        * Modem emulation:
          "AT&e123456789" (without leading zero)
        * Network interfaces:
          "isdnctrl eaz <interface> 123456789" (without leading zero)
          For test calls to yourself:
          "isdnctrl addphone <interface> in 123456789" (without leading zero)
          "isdnctrl addphone <interface> out 0123456789" (with leading zero)
!verboff

Q: How can I get isdnlog to calculate the charges for the Dutch telephone
   company?
A: See this question under "isdnlog" in the section "Configuration".

Q: Are there any other peculiarities?
A: It is thought that the Dutch telephone company at night sometimes loses
   a TEI. See the question "On my ELSA card, the LED for the loss of the TEI 
   often blinks. My connections are also often disrupted..."

!3Austria

!old
Q: We have neither an MSN nor an EAZ, only a normal plain telephone number.
   What do we have to use for i4l?
A: Bernhard Kruepl <b.kruepl@ieee.org> wrote
!verbon
     In Austria you always have to use "0" as the ingoing EAZ/MSN for the  
     first (or only). Any further MSNs can be set normally.
!verboff

!old
Q: Incoming and outgoing calls won't work ("incoming call without CPN")
A: In Austria ISDN lines are by standard installed !u1without!u0 MSN (which is
   different from Germany). That means when somebody calls the installed ISDN
   number the called party gets signalled a "global call". i4l then says
   "incoming call without CPN" - "CPN" means called party number.
   Solution: Set the incoming "MSN" (in reality: none) to "0", then i4l
   responds to the global call. Otherwise it waits for the signalling of the
   number you told i4l, and that won't happen (happens only for *additional*
   MSN).!br
   On the other hand you should set the outgoing MSN correctly (without area
   code) -- however, a wrong MSN will be replaced with the correct one by your
   telecommunications provider.

!old
Q: Why doesn't my getty answer the EAZ it should respond to if somebody dials
   the "0", the broadcast number? In the log file it says "Incoming call
   without CPN, assuming '0'".
A: CPN=Called Party Number, the number of your own side. It's missing, that's
   why i4l assumes "0". If the getty is configured on another number but "0" it
   will not respond. Let somebody dial with a telephone on the EAZ of your
   getty and check whether all telephones are ringing or just the one that
   was set to the EAZ of your getty. It could also be an error of your
   telephone company.

!3Switzerland

!old
Q: We have neither an MSN nor an EAZ, just a plain telephone number. What do we
   have to use for i4l?
A: Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at> wrote:
   In Switzerland you have to use the !u1last number!u0 of your telephone
   number as your MSN/EAZ ("6" if you have the telephone number "123456").

!old
Q: I can only keep a 184 second connection with i4l. After that the connection
   breaks with cause "Temporary failure" since the telephone company uses new
   software for its equipment.
A: That is a bug in i4l - Q.931 demands that there has to be an answer to
   a "STATUS ENQUIRY" frame. This is not yet programmed in i4l.
   Karsten Keil <isdn4@temic-ech.spacenet.de> has fixed it now in the new
   "HiSax" driver. There is a patch named STATUS for the Teles driver.
   See also the question General HiSax and the section about the HiSax driver.

Q: How can I get isdnlog to calculate the charges for the Swiss telephone
   company?
A: See this question under "isdnlog" in the section "Configuration".



!3Portugal

Q: What should we use as MSN?
A: As long as only one telephone number or MSN was applied for, the telephone
   company sends no caller ID. Therefore the MSN should be set to "0".
   If more than one MSNs was applied for, then these should be set as usual.
   
!3North America

Q: Can we use isdn4linux in North America?
A: Yes, the firm "Spellcaster" has written an isdn4linux driver for its own
   cards. More information is available from:
!verbon
        Ian James
        Customer Service Manager
        SpellCaster Telecommunications Inc.
        73 Laird Drive, Suite 206
        Toronto, Ontario
        Canada M4G 3T4
        Phone: 1 (800) 238-0547
        Fax: (416) 425-0854
        E-mail:  ipj@spellcast.com or sales@spellcast.com
        http://www.spellcast.com
!verboff

Q: Why can't I use European ISDN cards in North America?
A: In Europe, the telephone company normally makes the network terminator
   (NTBA) available. In North America !u1the customer!u0 has to supply such
   a device(NT-1) himself! Therefore, most ISDN cards offer an 
   integrated NT-1.!br
   There are also other differences; e.g. in Europe a PRI (Primary
   Rate Interface) has 30 B channels, in North America only 23.

Q: Which protocol is used in North America?
A: NI-1 is used - it's related to DSS1. Both are Q.931 Protocols, but 
   have totally different groups of functions and are therefore not 
   compatible to one other.    




!2Miscellaneous

!old
Q: How can I set the clock of my computer with ISDN?
A: Isdnlog offers this feature with option "-t". Unfortunately, the
   seconds are not transmitted via ISDN, and the transmitted time is
   not very accurate - depending on the ISDN equipment of your
   telephone company there may be a deviation of several minutes (!).
   It's better to get a PC clock that is set by radio signals and
   check it with, for example, xntp. You can also use a time server in
   the Internet with "netdate" or "rdate". One time server can be
   found in Cologne: time.rrz.uni-koeln.de, but there are many more.

Q: Where can I find information on the dip switches of my NTBA?
A: !link ftp://novix.oih.rwth-aachen.de/pub/ntba.zip; (ca. 170kB)

Q: Can I connect two ISDN devices directly with a kind of "null modem cable"?
A: No, that's not possible. The concept of ISDN doesn't allow it. A NTBA or a
   PBX with an internal bus is required.

!old
Q: Where can I get documentation on Siemens' HSCX and ISAC chips?
A: Alexander List <alex@ag.or.at> wrote:
!verbon
     !link http://www.siemens.de/;, there are a lot of PDF files available.
     If a CD-ROM is ok: Technical Product Information for Siemens
     Semiconductors, order# B192-H6641-X5-X-7400
     Siemens AG, Semiconductor Group, Balanstr. 73, Pf. 801709, D-81617
     Muenchen, Fax 089-4144-3952.
!verboff
   Beat Doebeli <beat@castle.swill.org> wrote:
!verbon
     From the Siemens handbook:
       Place your order at:
       Siemens AG
       LZF Semiconductor Book Shop
       Postfach 2352
       90713 Fuerth-Bislohe
       Tel (0911)3001-220/224
       Fax (0911)3001-238
       Price groups (1994)
       I    DM  5.-
       II   DM 10.-
       III  DM 20.-
       IV   DM 30.-
       ISAC S PEB 2085; PEB 2086 ISDN Subscriber Access Controller
       Order# B115-H6485-G1-X-7600, 328 pages price category IV
       HSCX - High Level Serial Communication Controller Extended
       Order# B115-H6520-G1-X-7600, 140 pages price category III
       or as CD-ROM
       Technical Product Information for Communication ICs (Edition 1, Jun 95)
       Order# B193-H6905-X-X-7400, price ?
!verboff

!old
Q: Where can I find the "bat" book about configuration of sendmail?
A: dietmar <dietmar@highway.bertelsmann.de> wrote on 8 Oct 1996:
!verbon
     O'Reilly catalog 1997 (brand new from the book fair): "book
     dealers report to us that some books are so strongly associated
     with animals that many clients won't ask for the normal title,
     but just for the (i.e.) 'camel book' (Programming Perl)."
!verboff
   In a _good_ book shop you should find the following:
!verbon
     Title:  sendmail (3rd edition 9/94)
     Author: Costales, Allman, Rickert
     ISBN:   1-56592-056-2
     Costs:  66.-- DM
   More on:
     !link http://www.ora.com/catalog/sendmail/noframes.html;
     !link http://www.lob.de/;
!verboff











