  FAQ for isdn4linux
  Matthias Hessler (hessler@isdn4linux.de)
  v2.0.22, 2. November 1999

  If you are reading this FAQ online, you may consider downloading the
  whole thing, and reading it offline (much cheaper). To download the
  latest version of this FAQ in TXT/HTML/SGML format, go to the homepage
  of this FAQ: <http://www.mhessler.de/i4lfaq.html>.  This FAQ answers
  questions that were frequently asked in the newsgroup
  de.alt.comm.isdn4linux. It contains questions any user should know
  about ISDN under Linux using isdn4linux, as well as hints on how to
  best make use of all the features isdn4linux provides. Version 2 of
  the FAQ is derived from an earlier version which had become outdated
  at the time of this writing. To obtain information on old versions of
  isdn4linux (1997 and earlier) please have a look at the FAQ version
  1.3.4.  About the format of this FAQ: The main basis of this FAQ is
  the i4l mailing list (see question ``docu_mailinglist''). I've treated
  the knowledge gained from reading as public domain, without quoting
  the author of the original mail. The FAQ is now written in SGML, as
  this format is flexible to convert into any other form of documenta-
  tion (though some restrictions apply). The FAQ is now maintained in
  English since German-speaking people can easily follow the mailing
  list/newsgroup (or search in the archives). Whoever wants to translate
  back to German is welcome to do so!  The countless links in this docu-
  ments are not always complete and I'm sure many are no longer correct.
  I do not have the time to check them all. If you discover a bad link,
  please let me know (I'll try to install some automatic checking when I
  have the time).  Additions, improvements and other suggestions are
  always welcome (also correction of typographical errors!), preferably
  send "diffs" from the SGML version. Thank you very much in advance!
  Send feedback about this FAQ to: i4lfaq@isdn4linux.de or:
  hessler@isdn4linux.de.  The newest version of this FAQ can be found
  at:
   <http://www.mhessler.de/i4lfaq.html> or:
   <http://www.isdn4linux.de/faq/>.  This FAQ is protected by the GNU
  General Public License (GPL) Version 2; (C) 1999 Matthias Hessler (for
  version 2.0) Distribution under the terms of the GPL is welcome. How-
  ever, we offer NO GUARANTEES for the information herein. Please read
  the GNU General Public License for further details. A printed version
  is available from Free Software Foundation, Inc., 675 Mass Ave, Cam-
  bridge, MA 02139, USA.  An electronic version is available from the
  author.
  ______________________________________________________________________

  Table of Contents





















  1. general: General information about isdn4linux

     1.1 general_i4l: What is isdn4linux?
     1.2 general_hardware: What hardware is supported by isdn4linux?
     1.3 general_features: What features are supported by isdn4linux?
     1.4 general_countries: Which countries are supported by isdn4linux?
     1.5 general_docu: Where do I find more documentation, how-to's, helpful tips & tricks?
     1.6 general_getlatest: Where do I get the latest version of isdn4linux?
     1.7 general_contacts: How can I get in contact with the developers?

  2. distrib: Distribution

     2.1 distrib_getlatest: How can I get the latest isdn4linux?
     2.2 distrib_cvs: How can I access the source from the current development/what is the CVS tree all about?

  3. Features

     3.1 feature_not: Which ISDN features cannot be offered by isdn4linux?
     3.2 feature_data: Which ISDN data transmission modes are supported?
     3.3 feature_voice: Can I use isdn4linux as an answering machine?
     3.4 feature_fax: Can I fax with isdn4linux?
     3.5 feature_divert: Is it possible to initiate call forwarding with i4l?
     3.6 feature_ipx: Can I route ipx/spx over ISDN with Linux?
     3.7 feature_2channel: Does isdn4linux support channel bundling?
     3.8 feature_diald: Can I combine isdn4linux with diald?
     3.9 feature_dod: Does the driver support "dial on demand"?
     3.10 feature_sms: Can I send SMS (short messages) to my handy via ISDN?
     3.11 feature_btx: Is the German videotex/Btx/Datex-J possible with isdn4linux?
     3.12 feature_clock: How can I set the clock of my computer with ISDN?
     3.13 feature_dosemu: Can I use isdn4linux under dosemu?
     3.14 feature_capi: Is there a CAPI interface available?
     3.15 feature_uus: Is UUS (user to user signaling) supported?
     3.16 feature_subaddressing: Is subaddressing supported?
     3.17 feature_gmsv110: Can I connect from my PDA via GMS cellular phone to isdn4linux?
     3.18 feature_future: Which features are planned for the future?

  4. docu: Documentation, Howto's, Tips & Tricks, Mailing List/Newsgroup

     4.1 docu_first: What documents should I read first?
     4.2 docu_website: Where is the official website for isdn4linux?
     4.3 docu_newsgroup: Where is the newsgroup for isdn4linux?
     4.4 docu_mailinglist: Where is the mailing list for isdn4linux?
     4.5 docu_maillistdigest: How can I get a digest of the mailing list for isdn4linux (only one message per day)?
     4.6 docu_mailarchive: Is there an archive of the isdn4linux mailing list?

  5. hardware: Supported hardware, its specialities, and hardware-related problems

     5.1 hardware_support: Which hardware is supported?
     5.2 hardware_activepassive: What is the difference between an active and a passive ISDN card?
     5.3 hardware_recommend: Which card is recommended by the developers?
     5.4 hardware_external: Does isdn4linux support external terminal adapters?
     5.5 hardware_cabeling: How should I wire my ISDN cables?
     5.6 hardware_irq: Why should I avoid IRQ 12 and 15 for my ISDN card?
     5.7 hardware_s2m: Which S2M cards are supported?
     5.8 hardware_smp: Can I run isdn4linux on my multi-CPU board?
     5.9 hardware_alpha: Can I run isdn4linux on a DEC Alpha with Linux?
     5.10 hardware_ppc: Can I run isdn4linux on a PowerPC with Linux?
     5.11 hardware_maxcards: How many ISDN cards can I put into my computer?
     5.12 hardware_elsa: What should I know about ISDN cards from ELSA?
     5.13 hardware_teles: What should I know about before buying an ISDN card from Teles?
     5.14 hardware_avmb1: What is special about the AVM B1 card?
     5.15 hardware_icn: What is special about the ICN card?
     5.16 hardware_crossedcable1: If i4l uses one B-channel then the other one will be blocked (incoming as well as outgoing)...
     5.17 hardware_crossedcable2: How can I test whether a a/b cable pair has been crossed?
     5.18 hardware_pbx: i4l is connected to the internal bus of a PBX. Any problem?
     5.19 hardware_telestrouble: The PNP tools done work with my Teles 16.3 PNP card!
     5.20 hardware_elsacabletrouble: On my ELSA card, the LED for the loss of the TEI often blinks. My connections are also often disrupted...
     5.21 hardware_elsairq: My ELSA Quickstep 1000 ISA card produces very many interrupts with the HiSax driver. Is this normal or a problem with the HiSax driver?

  6. config: General information about Configuration

     6.1 config_msn: How should I set up isdn4linux with my MSNs?
     6.2 config_hardware: How should I configure my hardware? Is there something special I should know about my ISDN card?
     6.3 config_dialout: How should I configure dialout?
     6.4 config_suse: I can not select my card in yast?
     6.5 config_pnp: How do I configure a PNP (Plug and Play) card?
     6.6 config_kerneld: Why shouldn't I use
     6.7 config_runlevel: How can I boot Linux sometimes with ISDN, and sometimes without?
     6.8 config_manycards: How do I configure more than 1 ISDN card?
     6.9 config_manychannels: How can I increase i4l's maximum number of channels?
     6.10 config_gsmv110: How do I connect my PalmPilot via GSM over V.110 to my computer?
     6.11 config_links: What helpful links are there about isdn4linux?

  7. trouble: Troubleshooting

     7.1 trouble_22memory: I can't start ISDN on my machine with kernel 2.2.x. I get the error messages "init_module: Device or resource busy" and "isdn: Could not allocate device-struct.".
     7.2 trouble_strategy: My isdn4linux doesn't work! How do I best go about finding the problem?
     7.3 trouble_boot: How can I tell whether my ISDN card has been corrected recognized?
     7.4 trouble_isdncause: I get an error message like "cause: E1234" (or similar)?
     7.5 trouble_notelrings: Neither my telephone nor my fax machine ring when I call them with isdn4linux?
     7.6 trouble_guestaccess: Are there sites that offer guest access where I can test my isdn4linux setup?
     7.7 trouble_unload: I can't unload my ISDN modules ("isdn: Device or resource busy"), even so I closed all ISDN applications?
     7.8 trouble_tcpdump: Why does my tcpdump not work for ip packets going over ISDN? How can I get a tcpdump patched for ISDN?
     7.9 trouble_locatecrash: 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?
     7.10 trouble_lotsdebug: My hard disk becomes very active when isdn4linux run. How can I turn this off?
     7.11 trouble_outofbuffers: I get messages like "HSCX RME out of buffers", "HSCX RFP out of buffers", "HSCX B EXIR 10" in the syslog?
     7.12 trouble_noresetinit: After a soft reset, my card does not initialize correctly.
     7.13 trouble_xosview: xosview doesn't show any network activity since installing i4l.
     7.14 trouble_unknownhost: When I for example from a W95 box call up a page with Netscape, I only get the answer "unknown host".
     7.15 trouble_noroute: Addresses are now found, but now I get "no route to host".
     7.16 trouble_nolocalnet: 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.

  8. msn: Configuration/MSNs

     8.1 msn_my1: What is my MSN? What if I don't have any?
     8.2 msn_my2: How can I find out how my telephone number is transmitted to the calling party?
     8.3 msn_config: How do I configure my MSN?
     8.4 msn_mindialin: How can I minimize usage of MSNs for digital data dialin?
     8.5 msn_onlyone: How can I use one MSN for everything?
     8.6 msn_buendel: Can I have several NTBAs, all with the same MSN?

  9. lan: ISDN4LINUX in a LAN

     9.1 lan_config: How can I set up Linux so that other computers in my LAN can access the internet via my Linux computer?
     9.2 lan_modemserver: How can I allow the users in my LAN to dial out via the ISDN card(s) in my Linux PC (like a modem server)?

  10. dialout: Configuration of Dial-Out

     10.1 dialout_config: How do I configure dialout properly?
     10.2 dialout_dialmode: When an IP packet should go over the link (which usually triggers a dialout), all I see in the log is: "dial rejected: interface not in dialmode
     10.3 dialout_advanced: What special dialout features are available?
     10.4 dialout_permission: How can I allow a normal user to initiate dialouts?
     10.5 dialout_manycards: How do I configure dialout with more than 1 ISDN card?

  11. pap: Authenticate properly (especially with PAP)

     11.1 pap_optionauth: When dialing out, I get the message "pppd: peer authentication required but no authentication files accessible." What does this mean?
     11.2 pap_requestauth: 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"
     11.3 pap_rejectauth: 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"
     11.4 pap_checkpwd: How can I check which password is actually sent to the remote side?
     11.5 pap_passwd: I have problems with PAP or CHAP authentication. It does not work although I'm sure I entered passwords etc. correctly.

  12. syncppp: Sync PPP

     12.1 syncppp_whichppp: pppd, ipppd, syncPPP, asyncPPP .. what is they? Which should I use?
     12.2 syncppp_compile: How do I compile isdn4linux with syncPPP?
     12.3 syncppp_netinterface: How should I name my network interface?
     12.4 syncppp_config: How do I configure isdn4linux with syncPPP?
     12.5 syncppp_busy: How can I tell if a connection is unsuccessful (busy)?
     12.6 syncppp_logindelay: How can I reduce login delay?
     12.7 syncppp_2configs: 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.
     12.8 syncppp_pppbind: How does the (little-documented) "pppbind" command in isdnctrl work?
     12.9 syncppp_dynip: I want to use dynamic IP address assignment. How must I configure the network device?
     12.10 syncppp_ipx: How can I do IPX over ipppd?
     12.11 syncppp_faster: How can I increase my PPP data transfer rates?
     12.12 syncppp_compression: Which compressions can I use with ipppd?
     12.13 syncppp_strategy: I can't get a connect. How can I find out where the problem is?
     12.14 syncppp_log: How can I get a log for ipppd?
     12.15 syncppp_nopppsupport: Starting ipppd I get the error message "this systems lacks ppp support".
     12.16 syncppp_nousabledevice: When I try to start ipppd it says "Can't find usable ippp device"
     12.17 syncppp_starterror: When I start ipppd, I only get error messages from the i4l driver.
     12.18 syncppp_framesdelayed: I get the message
     12.19 syncppp_noroute: I cannot dial out with
     12.20 syncppp_nodefaultroute: After ipppd dials out my default route is gone.
     12.21 syncppp_packettoolarge: I often get the error message
     12.22 syncppp_slow: The connection with ipppd seems to work, but eventually it crashes or is very slow.
     12.23 syncppp_loadproblem: I only have problems with ipppd when the connection is being heavily burdened. Then everything stops. What could be causing this?
     12.24 syncppp_mtu: My ipppd works, but I keep getting the message pppd(104): ioctl(SIOCSIFMTU): Invalid argument"?
     12.25 syncppp_1stpacket: The first IP packet gets lost on automatic dialout with dynamic IP address allocation.
     12.26 syncppp_droppacket: What does the message "No phone number, packet dropped" mean?
     12.27 syncppp_leadingzero: Why does my ipppd dial one too many zeros (
     12.28 syncppp_ethfake: My ISDN device is shown with HWaddr and IRQ=0 and base address = 0 when I list it with ifconfig

  13. asyncppp: Configuration Async PPP

     13.1 asyncppp_whichppp: pppd, ipppd, async PPP, sync PPP - what are they? Which should I use?
     13.2 asyncppp_config: How do I configure async PPP?
     13.3 asyncppp_logindelay: How can I reduce login delay?
     13.4 asyncppp_fast: How can I increase my transfer rates with PPP?
     13.5 asyncppp_log: How can I get a log for pppd?
     13.6 asyncppp_suddendeath: Establishing the connection works fine, but pppd crashes just after that (i.e. the first bytes gets through, but then everything stops)

  14. rawip: Raw IP

     14.1 rawip_whatis: What is Raw IP, when should I use it?

  15. ttyI: Configuration of the ttyI* devices (`Modem emulation')

     15.1 ttyI_nomodem: Don't the ttyI* devices emulate an analog modem?
     15.2 ttyI_dev: Which devices should I use for calls out or calls in?
     15.3 ttyI_hdlc: How to I switch the modem emulation from X.75 to HDLC?
     15.4 ttyI_uucp: How can I poll with Taylor-UUCP using isdn4linux?
     15.5 ttyI_speed: What speed should I set for the ttyI* devices?
     15.6 ttyI_nocarrier: When I dial with "ATD....." I always get a "NO CARRIER".
     15.7 ttyI_noincall: My ttyI* device/pppd does not recognize an incoming call.
     15.8 ttyI_callphone: Why can't I dial my telephone or fax from the ttyI* devices?
     15.9 ttyI_noconnect: I can't get a connection to my ISDN mailbox/BBS.
     15.10 ttyI_forcehangup: My modem emulation hangs. How can I force my card to hang up?
     15.11 ttyI_channelclosed: 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.
     15.12 ttyI_uucp: When I use UUCP with X.75, I always get transfer errors!

  16. dod: Unwanted dialout on demand

     16.1 dod_how: How does dialout on demand work?
     16.2 dod_disaster: What is a charge unit disaster?
     16.3 dod_causes: What can cause a charge unit disaster?
     16.4 dod_off: How can I safely turn off dialout on demand?
     16.5 dod_strategy: How can I track down unexplainable dialouts?
     16.6 dod_winclient: Can it be that the Win95 machine on my LAN is causing automatic dialouts?
     16.7 dod_localdns: I have set up a local DNS name server. Why does it cause unwanted dialouts? How can I find the cause?
     16.8 dod_sendmail: How can I get sendmail to not initiate any connections without local mail being left undelivered?
     16.9 dod_samba: The samba package always triggers dialouts for me. How can I prevent this?
     16.10 dod_netscape: How can I get Netscape to quit initiating dialouts when starting?
     16.11 dod_closeipconnect: After closing the line, I discover with
     16.12 dod_onlineoncrash: Is it possible that even with a crashed computer a ISDN connection remains open (and the charge units accumulate)?

  17. chargeint: Chargeint

     17.1 chargeint_whatis: What does Chargeint?
     17.2 chargeint_config: How should I configure Chargeint?
     17.3 chargeint_whennot: When does it
     17.4 chargeint_correcttime: How can I be sure that the chargeint patch is using the correct time?
     17.5 chargeint_nohangup: The connection doesn't end with timeout.

  18. 2channel: Channel bundling (MPPP, raw bundling)

     18.1 2channel_whatis: What is channel bundling and how can I use it?
     18.2 2channel_raw: What is raw bundling?
     18.3 2channel_rawconfig: How do I configure raw bundling?
     18.4 2channel_rawgoodbad: What are the advantages and disadvantages of raw bundling?
     18.5 2channel_mppp: What is MPPP?
     18.6 2channel_mpppconfig: How do I configure MPPP?
     18.7 2channel_mpppgoodbad: What are the advantages and disadvantages of MPPP?
     18.8 2channel_mpppcompile: I tried MPPP but it doesn't work. The ipppd writes in the debug log something like: " ...  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 ..."

  19. remote: Pecularities of the remote ISDN device

     19.1 remote_win95: How do I configure Windows95 to dial successfully into my isdn4linux computer?
     19.2 remote_mac: I'd like to exchange data with a Macintosh (Leonardo card), what do I or the Mac user have to watch out for?
     19.3 remote_macpap: A Macintosh with a Leonardo card tries to call in, and wants to negotiate chap md5. How can I switch it to CHAP/PAP?
     19.4 remote_cisco: How does isdn4linux work with a Cisco (HDLC) on the other side?
     19.5 remote_ispa: What settings does ISPA etc. (DOS, Windows) need to work with the standard settings of isdn4linux?

  20. leased: Leased lines

     20.1 leased_nosignal: How does establishing and ending a connection work with D64S without signaling?
     20.2 leased_hisaxconfig: With i4l, how do I configure my card on a D64 leased line?
     20.3 leased_x75: How do I configure X.75 on a D64 leased line?
     20.4 leased_splitline: With ISDN, can I use one channel as a leased line and other as a dialup line?

  21. dialin: Configuration of a Dial-In Server

     21.1 dialin_config: How can I enable others to login via ISDN?
     21.2 dialin_manyparallel: How can I allow several people to call in to me at the same time?
     21.3 dialin_hdlc: Someone would like to dial in to my mgetty with HDLC. Is ttyI1 correct, or do I have to start with ttyI0?
     21.4 dialin_autoppp: Is it possible with mgetty to automatically start pppd when LCP frames are received?
     21.5 dialin_passwd: How can I have (i)pppd check passwords from /etc/passwd instead of /etc/ppp/pap-secrets when someone dials in?
     21.6 dialin_ignored: I keep getting the message "isdn_tty: call from XXX - YYY ignored". Why does isdn4linux (syncPPP) ignore this dialin attempt?
     21.7 dialin_async: A SunISDN tries to dial into my i4l system.

  22. callback: Callback

     22.1 callback_delay: 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.
     22.2 callback_cisco: Somehow i4l can not callback a Cisco?
     22.3 callback_ascend: 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.
     22.4 callback_banzai: How can I callback a Banzai!?

  23. isdnlog: Isdnlog

     23.1 isdnlog_rates: Where do I get the latest rate information?
     23.2 isdnlog_servicetype: Can I see the service type from an incoming call in the output from isdnrep?
     23.3 isdnlog_callerid1: Why don't I always receive from the German Telekom the number of a caller ("Caller ID")?
     23.4 isdnlog_callerid2: Do I receive the Caller ID from foreign calls (German Telekom)?
     23.5 isdnlog_spoofcallerid: I've heard that actually two Caller IDs are transmitted?
     23.6 isdnlog_betterlogging: Why doesn't isdnlog record the number dialed by my other ISDN devices, since it records the charges?
     23.7 isdnlog_reversedcard: How can I get isdnlog to also show the telephone numbers for other ISDN devices?
     23.8 isdnlog_rategraphic: How can I display the data transfer rates graphically?
     23.9 isdnlog_2callerid: Isdnlog (=2.52) shows for a caller
     23.10 isdnlog_soundbusy: 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:
     23.11 isdnlog_noshell: Isdnlog should call a program with redirected output (e.g.
     23.12 isdnlog_blankscreen: When dialing out, the screen goes momentarily black?

  24. audio: Handling Voice with ISDN

     24.1 audio_format: What is the format of the audio messages (.msg) vbox plays when it answers a call?
     24.2 audio_recordmsg: How can I record my own messages for vboxgetty?
     24.3 audio_play: How can I play audio messages locally using /dev/audio?
     24.4 audio_convertto: How can I convert audio messages which where recorded by vbox to other formats (i.e. from uLaw to WAV)?
     24.5 audio_convertfrom: How can I format WAV for uLaw (for my vbox announcement message)?
     24.6 audio_noanswer: My vboxgetty does not answer any incoming calls.
     24.7 audio_nocat: 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?
     24.8 audio_earlyrecording: At the beginning of a message recorded by vboxgetty, there's often a part of my own announcement?

  25. Supported Countries

     25.1 country_which: In which countries does isdn4linux work?
     25.2 country_certified: Is isdn4linux approved for use by the telecommunications authorities?

  26. 1tr6: German Pecularities for 1TR6

     26.1 1tr6_eaz: Which EAZ should I use for i4l?
     26.2 1tr6_extension: I use 1TR6 on an extension - the extension number has more than one digit (e.g. 206). What is my EAZ?
     26.3 1tr6_spv: What is a SPV?
     26.4 1tr6_spvavailable: How long will there still be SPVs?
     26.5 1tr6_spv: Does isdn4linux support SPVs? How?

  27. Other countries

     27.1 country_austria: Austria: We have neither an MSN nor an EAZ, only a normal plain telephone number. What do we have to use for i4l?
     27.2 country_france: France: How does our MSN look like?
     27.3 country_italy: Italy: What does our MSN look like?
     27.4 country_netherland: Netherlands: What does our MSN look like?
     27.5 country_northamerica: North America: Can we use isdn4linux in North America?
     27.6 country_portugal: Portugal: What should we use as MSN?
     27.7 country_switherland: Switzerland: We have neither an MSN nor an EAZ, just a plain telephone number. What do we have to use for i4l?
     27.8 country_uk: UK: What should we use as MSN?

  28. misc: Miscellaneous

     28.1 misc_ntbadip: Where can I find information on the dip switches of my German NTBA?
     28.2 misc_nonullcable: Can I connect two ISDN devices directly with a kind of "null modem cable"?
     28.3 misc_uisdn: Can isdn4linux run in parallel to UISDN?

  29. glossary: ISDN specific words which are used in this FAQ



  ______________________________________________________________________

  1.  general: General information about isdn4linux

  1.1.  general_i4l: What is isdn4linux?

  isdn4linux is a set of kernel modules which are part of the Linux
  kernel. It consists of the main module isdn and the actual hardware
  driver that control some specific card.  In addition, the package
  isdn4k-utils contains utilities to make use of ISDN specific features.



  1.2.  general_hardware: What hardware is supported by isdn4linux?

  Generally, isdn4linux can control ISDN cards that are connected to the
  PC's ISA or PCI bus. Also a few PCMCIA cards are supported. However,
  isdn4linux can not make use of any devices connected via a serial or
  parallel interface (which are called 'terminal adaptors'). For more
  details on which cards are supported see section ``hardware''.


  1.3.  general_features: What features are supported by isdn4linux?

  Basically, isdn4linux can receive and transmit data via ISDN in
  several ways (X.75, HDLC, raw ip, synchronous ppp, asynchronous ppp,
  V.110). Some of its utilities offer additional features. Two examples
  are isdnlog, which allows logging of and reaction to ISDN events
  (including calculating any charges); and vbox, which provides voice
  answering machine capabilities. For more details see the section
  ``feature''.


  1.4.  general_countries: Which countries are supported by isdn4linux?

  At least all countries which use Euro-ISDN are supported, however some
  pecularities apply. To find more about your country, check the section
  ``countries''.


  1.5.  general_docu: Where do I find more documentation, how-to's,
  helpful tips & tricks?

  Besides this FAQ, take a look at the various man pages and Readme's
  that come with the isdn4linux package. Then there is the isdn4linux
  website: <http://www.isdn4linux.de>. There is also a news group and a
  mailing list on isdn4linux which will give you the most up to date
  information. To find out more about these great information sources,
  see section ``docu''.


  1.6.  general_getlatest: Where do I get the latest version of
  isdn4linux?

  The latest version of the kernel drivers should be found in the Linux
  kernel. However, sometimes the Linux kernel does not have the latest
  version or does not yet support your ISDN card. Additionally, you may
  need to use the isdn4k-util package. In those cases you could try to
  get the very latest version that is currently in development. See the
  section ``distrib''.


  1.7.  general_contacts: How can I get in contact with the developers?

  You can contact the isdn4linux developers through the
  www.isdn4linux.de website. Have a look at
  <http://www.isdn4linux.de/contacts.php3>.




  2.  distrib: Distribution

  2.1.  distrib_getlatest: How can I get the latest isdn4linux?

  There are different ways, depending on your kernel. Unless you are an
  experienced user of Linux, you should use a recent kernel (=first
  option).

  o  You have a recent kernel (at least 2.0.36/2.2.11/2.3.14): Great
     choice, you have already the current kernel ISDN stuff.
     Additionally, you just need to get the current isdn4k-utils package
     from <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/> - unless it's
     already included in your distribution.

  o  You have an older kernel (before 2.0.36/2.2.11/2.3.14): An upgrade
     to a recent kernel is HIGHLY recommended. And it is MUCH easier to
     do a kernel upgrade than to get ISDN to work with your older
     kernel.  Ok, now if you still want to keep your old kernel, here is
     how to do it: First you have to identify the correct CVS extract
     for your kernel version (CVS is the version control system the ISDN
     developers use to develop ISDN4LINUX). Take a CVS snapshot that is
     dated with about the date when your kernel came out. You find the
     kernel patches and the old isdn4k-utils packages on
     <ftp://ftp.isdn4linux.de/pub/isdn4linux/> or on one of its mirrors
     (see  <http://www.isdn4linux.de/download.php3> on how to find
     mirrors).

  o  As a developer: If you want to participate in the development of
     i4l, you can get the very latest stuff via CVS. For this, see the
     question about access to CVS: ``distrib_cvs''.


  2.2.  distrib_cvs: How can I access the source from the current devel-
  opment/what is the CVS tree all about?

  CVS - Concurrent Version System:

  This is a multiuser/server extension to RCS (Revision Control System).
  The I4L drivers are developed under CVS, and there is a server
  (cvs.isdn4linux.de) with a CVS tree to which all developers have
  access.  In addition, Fritz has configured anonymous read-only access
  to the CVS tree . If you must have the very latest versions, you can
  get them there, however they may contain more bugs than the released
  versions!!!

  Here is how to get the latest version:

  1. Create and go to the directory where you want to store i4l

     ___________________________________________________________________
     mkdir ~/cvs; cd ~/cvs
     cvs -d :pserver:guest@cvs.isdn4linux.de:/i4ldev login
     ___________________________________________________________________



  2. Log in (asks for a password, enter readonly)

  3. Get the isdn kernel driver stuff (same hierarchy as in the linux
     source)

     ___________________________________________________________________
     cvs -d :pserver:guest@cvs.isdn4linux.de:/i4ldev checkout isdn
     ___________________________________________________________________



  4. Get the utility package into the current directory

     ___________________________________________________________________
     cvs -d :pserver:guest@cvs.isdn4linux.de:/i4ldev checkout isdn4k-utils
     ___________________________________________________________________


  If you want to get the latest version for kernel 2.0.x rather than for
  the latest kernel, then you have to give the additional option `-r':

  ______________________________________________________________________
  cvs -d :pserver:guest@cvs.isdn4linux.de:/i4ldev checkout -r isdn4kernel_2_0 isdn
  ______________________________________________________________________



  5. After having checked out, further updates can be done by first
     changing into isdn or isdn4k-utils subdirectory and running

     ___________________________________________________________________
     cvs update -P -d
     ___________________________________________________________________


  Tip: since cvs stores the password on your first login, you don't need
  to login again when updating.

  WARNING!! THE NEWEST STUFF SOMETIMES IS VERY INSTABLE OR MAY NOT EVEN
  COMPILE WITHOUT PROGRAMMING KNOWLEDGE - No newbie questions on this
  PLEASE! Use the source, Luke!

  People who want to continuously help develop isdn4linux by writing new
  drivers etc. can get a real account for full access. In this case
  write an email to Fritz Elfert fritz@isdn4linux.de




  3.  Features

  3.1.  feature_not: Which ISDN features cannot be offered by
  isdn4linux?

  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, differing COLP/CLRP.


  3.2.  feature_data: Which ISDN data transmission modes are supported?

  These low-level formats are possible:

  o  56k asynchronous : no

  o  64k synchronous  : yes

  o  128k synchronous  : yes (channel bundling - see the question
     ``feature_2channel'')

     These level2 formats are possible:

  o  HDLC

  o  X.75

  o  transparent

  o  V.110

     These encapsulations are possible:

  o  rawip

  o  ethernet

  o  Sync PPP

  o  X.25 (requires 2.1 or newer)

  o  cisco and cisco-h

  o  cisco-hk (=cisco with keepalive; requires 2.1 or newer)

  o  plus a few specialities: have a look at the man pages.


  3.3.  feature_voice: Can I use isdn4linux as an answering machine?

  Yes, voice support is included in 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:
   <ftp://ftp.franken.de/pub/isdn4linux/contributions/>


  3.4.  feature_fax: Can I fax with isdn4linux?


  o  For all passive cards: NO. However, there is a project working on
     this rather complicated problem. For more info on its status have a
     look at:
      <http://home.telia.no/Morten.Rolland/linux/i4lfax/index.html>

  o  For the active card AVM B1: Yes (its firmware has implemented fax
     as one of its features). Get the newest stuff from:
      <ftp://ftp.aeccom.com/pub/fax4i4l/howto/current/>

  o  For the active Eicon Diva Server cards (except Diva 2.0Pro): Yes.
     Have a look at README.fax and README.eicon in the
     isdn/Documentation/isdn directory, as well as:
      <http://www.melware.de/>.

  o  For semiactive cards Sedlbauer Speedfax+ and Siemens ISURF 1.0: Yes
     But currently this requires some manual work. Check the mailing
     list on how to do it (special patch needed).

     If you do want to fax now, your best choice is to install an analog
     fax modem along with your ISDN card.


  3.5.  feature_divert: Is it possible to initiate call forwarding with
  i4l?

  Call diversion features have been implemented recently. Use the new
  program divertctrl. So far there is no howto and only little
  documentation, so for now this is something only for the more
  experienced user. In the Netherlands, the keypad protocol can be used
  as an alternative.


  3.6.  feature_ipx: Can I route ipx/spx over ISDN with Linux?

  Yes, just set up an ISDN interface with encapsulation ethernet.
  mars_nwe can do the rest (e.g. routing). Also, you can route ipx with
  ipppd, see question ``syncppp_ipx''.  To use pppd for ipx, you have to
  give it the compile option IPX_CHANGE.

  3.7.  feature_2channel: Does isdn4linux support channel bundling?

  The current version of isdn4linux support 2 methods of channel
  bundling:

  o  MPPP (based on sync PPP)

  o  Raw bundling (configured by so-called slave channels)

     Both variants have their own advantages and disadvantages. See
     section ``2channel''. Bonding (16bit channel) is not supported,
     since it can not work reliably when the dialup connections have
     deviating latency.  Warning: Channel bundling saves time, but not
     telephone charges.  It is useful only if you really need the extra
     bandwidth.


  3.8.  feature_diald: Can I combine isdn4linux with diald?

  Yes, see the "Diald" part of the "Configuration" section.


  3.9.  feature_dod: Does the driver support "dial on demand"?

  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 (like: isdnctrl huptime <interface> <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).  Also look at the dialmode
  description (see question ``dialout_dialmode'').  You should
  definitely be very interested in the large section of this FAQ that
  talks about the dangers of unwanted dialouts: (``dod'').


  3.10.  feature_sms: Can I send SMS (short messages) to my handy via
  ISDN?

  Yes, you can use the program yaps to do this. However, due to some
  pecularities in the SMS-callcenter's ISDN connection, you have to
  compile the kernel with the options Disable send complete and Disable
  sending llc.


  3.11.  feature_btx: Is the German videotex/Btx/Datex-J possible with
  isdn4linux?

  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)
  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.


  3.12.  feature_clock: How can I set the clock of my computer with
  ISDN?

  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.

  3.13.  feature_dosemu: Can I use isdn4linux under dosemu?

  Yes, you can! Steffan Henke henker@informatik.uni-bremen.de wrote on
  25 Oct 96:

       In dosemu.conf it is enough to enter a virtual com port,
       (for example com2) that can be used with e.g. Telix or Ter-
       minate: serial { com 2 device /dev/ttyI3 } Access with Fos-
       sil 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




  3.14.  feature_capi: Is there a CAPI interface available?

  Currently, there is a CAPI 2.0 interface only for the active card AVM
  B1.  This interface follows the official CAPI 2.0 standard that was
  established recently for Linux by the CAPI Association (see
  <http://www.capi.org>).  There are activities to make this a general
  interface, also for other cards. However, there are no plans to
  implement a CAPI 1.1 interface.


  3.15.  feature_uus: Is UUS (user to user signaling) supported?

  Yes, isdn4linux does support both sending and receiving. However, you
  should know that sending it is not a free service, at least with some
  German phone providers you have to pay extra for it (also have a close
  look on the usage conditions). Additionally, please note that if you
  are connected through a PBX, it will most likely filter out all the
  subaddressing stuff.


  3.16.  feature_subaddressing: Is subaddressing supported?

  Yes, isdn4linux does support subaddressing (available in France).  To
  configure it, give HiSax the number in this format:
  <number>.<subaddress>.  Additionally, please note that if you are
  connected through a PBX, it will most likely filter out all the
  subaddressing stuff.


  3.17.  feature_gmsv110: Can I connect from my PDA via GMS cellular
  phone to isdn4linux?

  Yes, if the provider of the cellular phone has a GSM to ISDN/V.110
  gateway.  This has been reported to work from a PalmPilot to
  isdn4linux with V.110.








  3.18.  feature_future: Which features are planned for the future?

  Cards with an HFC-PCI chip allow specialities that may be supported in
  the future. So it is possible to run the card in NT mode (requires
  crossing the ISDN connection and change by software). Also, it is
  possible to give up one B-channel in exchange for reading the complete
  D-channel, which would be great for isdnlog.  Another thing might be
  Least-Cost Routing, though that seems to be very tricky, as well as
  being timing and hardware dependent. We'll see...




  4.  docu: Documentation, Howto's, Tips & Tricks, Mailing List/News-
  group

  4.1.  docu_first: What documents should I read first?


  o  ISDN kernel subsystem: /usr/src/linux/Documentation/isdn/README

  o  ISDN cards: /usr/src/linux/Documentation/isdn/README.card E.g.:
     /usr/src/linux/Documentation/isdn/README.HiSax

  o  Synchronous PPP: /usr/src/linux/Documentation/isdn/README.syncppp
     /usr/src/linux/Documentation/isdn/README.syncPPP.FAQ

  o  Voice capability: /usr/src/linux/Documentation/isdn/README.audio

  o  ISDN Utilities: /usr/src/isdn4k-utils-version/README(.*)

     Many of the utilities also have man pages!

  For a Suse distribution the following information might also be
  helpful:

  o  /usr/doc/packages/i4l* (for i4l in general)

  o  /usr/doc/faq/faq/PPP-FAQ (for synchronous PPP)

  o  /usr/doc/howto/mini/Mail-Queue.gz (for email configuration)

  If you are reader of the German computer magazine ct, they had very
  helpful articles at least in these issues:

  o  ct 05/98, page 224: Der erste Kontakt/Linux: Mit PPP ans Internet

  o  ct 21/98, page 288: Reiseleiter/Internet-Anbindung fuer das LAN

  o  ct 25/98, page 218: Bei Anruf Netz/Linux: Dial-In Server

  Also have a look at question ``config_links'' for helpful links on how
  to configure i4l (e.g. special help for SuSE or Red Hat users).


  4.2.  docu_website: Where is the official website for isdn4linux?

  The offical website can be found at: <http://www.isdn4linux.de>.


  4.3.  docu_newsgroup: Where is the newsgroup for isdn4linux?

  The newsgroup is de.alt.comm.isdn4linux. Most isdn4linux developers
  are present, and many other knowledgeable people. Don't be confused by
  the many German messages on it. English postings are very welcome, and
  will be answered in English!


  4.4.  docu_mailinglist: Where is the mailing list for isdn4linux?

  The mailing list contains the same messages as the newsgroup. A
  bidirectional gateway ensures that both are in sync.  To subscribe to
  the mailing list, send an email message to
  majordomo@listserv.isdn4linux.de.  The subject doesn't matter. The
  message body should read subscribe isdn4linux <email address>, where
  <email address> is the address to which mail from the list should be
  sent. To unsubscribe send a message with the body unsubscribe
  isdn4linux <email address> at the same address. Please note: there are
  about 20-50 messages per day on this mailing list. To receive only one
  message per day, containing all postings, have a look at question
  ``docu_maillistdigest''.


  4.5.  docu_maillistdigest: How can I get a digest of the mailing list
  for isdn4linux (only one message per day)?

  Subscribe to the mailing list as described in question
  ``docu_mailinglist'', but as mailing list name use isdn4linux-digest
  rather than isdn4linux. So your message body should read subscribe
  isdn4linux-digest <email address> for subscription, and unsubscribe
  isdn4linux-digest <email address> for unsubscription.


  4.6.  docu_mailarchive: Is there an archive of the isdn4linux mailing
  list?

  To quickly search for keywords, you can use
   <http://www.deja.com>. Make sure to also select older archive to do a
  complete search.

  Messages are also saved (unsorted) at listserv.isdn4linux.de,
  collected by month. To access the archive, you can use
  <http://www.isdn4linux.de/listarch/>.

  Alternatively, you can send an email to
  majordomo@listserv.isdn4linux.de.  The subject doesn't matter. These
  commands are possible:

  o  index isdn4linux - list which archive files are available

  o  get isdn4linux filename - retrieves the file filename

     The archives are named "archiv.yearmonth", so "archiv.9610" is the
     archive for October 1996.

  Other archives are:

  o   <ftp://ftp.uni-
     oldenburg.de/pub/unix/linux/isdn/isdn4linux/Mailing-List>

  o   <http://wws.mathematik.hu-berlin.de/ldr/ISDN/isdn4linux/>




  5.  hardware: Supported hardware, its specialities, and hardware-
  related problems

  5.1.  hardware_support: Which hardware is supported?

  Only internal cards that plug into an ISA or PCI slot are supported.
  ISA Plug&Play cards are also supported, but need some additional
  manual configuration by means of the isapnptools. For details on the
  configuration see question ``config_pnp''.

  Internal cards may be ``active'', ``semi-active'', or ``passive''.
  Unless you have paid big money, assume you have a passive card. More
  about the difference: see question ``hardware_activepassive''.

  Right now there is a driver for all passive card with certain Siemens
  chipsets (HiSax driver). Have a look at the README.HiSax that comes
  with the driver for the most up to date information on supported
  cards.  Here the status from 4th September 1999 (constantly
  improving):

  o  Teles 8.0/16.0/16.3 and compatible ones (like: Dr. Neuhaus Niccy
     1016, Creatix 16/S0)

  o  Teles 16.3c (can not be used as reversed card)

  o  Teles S0/PCMCIA

  o  Teles PCI

  o  Teles S0Box

  o  Creatix S0Box

  o  Creatix PnP S0

  o  Compaq ISDN S0 ISA card

  o  AVM A1 (Fritz, Teledat 150 ISA)

  o  AVM Fritz PCMCIA

  o  AVM Fritz PnP

  o  AVM Fritz PCI

  o  ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8

  o  ELSA Quickstep 1000

  o  ELSA Quickstep 1000PCI (new name: ELSA Microlink PCI)

  o  ELSA Quickstep 3000 (same settings as QS1000)

  o  ELSA Quickstep 3000PCI

  o  ELSA PCMCIA

  o  ITK ix1-micro Rev.2

  o  Eicon.Diehl Diva 2.0 ISA and PCI (S0 and U interface, no PRO
     version)

  o  Eicon.Diehl Diva Piccola

  o  ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-
     IN100-ST-D)

  o  Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K
     adapter)

  o  All other ASUSCOM/Dynalink cards (includes OEM versions; in total
     more than 50 card versions)

  o  PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink)

  o  HFC-2BS0 based cards (TeleInt SA1)

  o  Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+)


  o  Sedlbauer Speed Star/Speed Star2 (PCMCIA)

  o  Sedlbauer ISDN-Controller PC/104

  o  USR Sportster internal TA (compatible Stollmann tina-pp V3)

  o  ith Kommunikationstechnik GmbH MIC 16 ISA card

  o  Traverse Technologie NETjet PCI S0 card

  o  Dr. Neuhaus Niccy PnP/PCI

  o  Siemens I-Surf 1.0

  o  Siemens I-Surf 2.0 (with IPAC, try type 12 asuscom)

  o  ACER P10

  o  HSR Saphir

  o  Berkom Telekom A4T

  o  Scitel Quadro

  o  Gazel ISDN cards

  o  HFC-PCI based cards

  o  PCI/Winbond W6692 based cards

     Note:

  o  PCF, PCF-Pro: up to now, only the ISDN part is supported

  o  PCC-8: not tested yet

  o  Teles PCMCIA is EXPERIMENTAL

  o  Teles 16.3c is EXPERIMENTAL

  o  Teles PCI is EXPERIMENTAL

  o  Teles S0Box is EXPERIMENTAL

  o  Eicon.Diehl Diva U interface not tested

  o  Some cards do not work when compiled into the kernel, only when
     started as modules

  o  No voice mode for all cards from CCD yet: HFC (Teleint) and HFC-S
     based cards (exception: HFC-S PCI works in voice mode)

  o  To distinguish between HFC-PCI and PCI/Winbond, have a look at the
     output of cat /proc/pci. You have HFC-PCI if you have a line saying
     "Master capable" for your card.

  The following cards are definitely not supported and will probably
  never be supported, since the manufacturers have not released the
  specifications for their very proprietary hardware/protocols:

  o  Fritz!X

  o  Eumex 404



  5.2.  hardware_activepassive: What is the difference between an active
  and a passive ISDN card?

  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.

  In principle, both types are supported by isdn4linux. However, since
  active cards have non-standard interfaces, a driver can only be made
  when the producer publishes the specifications for the interface.
  Also, the card's firmware needs to be made freely available. In
  contrast, many passive cards share the same chipset. Therefore many
  passive cards can be supported once a driver supports this one
  chipset.

  These active cards are currently supported by an individual driver:

  o  AVM B1

  o  Eicon.Diehl

  o  IBM Active 2000 ISDN card

  o  ICN

  o  PCBIT-D


  5.3.  hardware_recommend: Which card is recommended by the developers?

  The developers suggest using ELSA cards. ELSA has made their
  specifications available to the developers, and provided a lot of
  support, resulting in an excellent driver. Also, their cards are
  certified for usage in Germany, see question ``country_certified''.


  5.4.  hardware_external: Does isdn4linux support external terminal
  adapters?

  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).


  5.5.  hardware_cabeling: How should I wire my ISDN cables?

  For any details in this direction have a look at the excellent cable
  FAQ, which can be found at least in a German version at:
  <http://www.rvs.uni-bielefeld.de/~mek/tk/tae/kabelfaq.html>.


  5.6.  hardware_irq: Why should I avoid IRQ 12 and 15 for my ISDN card?

  On many PCI boards, interrupt 12 is often used by a PS/2 mouse (even
  though you may not have any or the IRQ is not activated for it). It
  may be used even when you have no PS/2 port. Interrupt 15 is also
  often used by the second IDE bus (even when you are not using it or
  the IRQ is not activated for it).  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, which works even on very exotic boards.

  5.7.  hardware_s2m: Which S2M cards are supported?

  At least these S2M cards have been reported to work:

  o  Eicon.Diehl: S2M-ISA or DIVA Server PRI/PCI (see
     <http://www.melware.de/>)


  5.8.  hardware_smp: Can I run isdn4linux on my multi-CPU board?

  Yes, this works nicely. However, make sure to compile the kernel and
  all modules with option SMP. If you run into problems when both CPUs
  try to handle the same IRQ, try to boot with noapic.


  5.9.  hardware_alpha: Can I run isdn4linux on a DEC Alpha with Linux?

  Yes, most cards should run with isdn4linux on a DEC Alpha. Many cards
  have been reported to work with the HiSax driver. Also the active ICN
  card has been reported to work.


  5.10.  hardware_ppc: Can I run isdn4linux on a PowerPC with Linux?

  Yes, most cards should work. However, at least the AVMFritz!PCI card
  won't work, due to the different Endian format for 32bit B-channel
  data on the PPC.

  In any case, you may also get a terminal adapter (= external ISDN
  "modem").  Since then you don't need isdn4linux (see question
  ``hardware_external''), this is not covered here any further.


  5.11.  hardware_maxcards: How many ISDN cards can I put into my com-
  puter?

  It depends on the availability of slots, interrupts/IO addresses in
  your computer as well as the possibilities of the ISDN card. Most
  passive cards are limited by the supported IO addresses (e.g.: Teles
  16.x: only 3 addresses are legally possible), and the total usage of
  interrupts (every card needs one).

  To use more cards, the ICN card may be your choice. It 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. Therefore, one can use as many cards
  are there are slots.

  If you really need a lot of ports, then eventuelly, a S2M card might
  be interesting for you, see question ``hardware_s2m''.

  See question ``config_manycards'' about the specialities for the
  configuration of more than one card.


  5.12.  hardware_elsa: What should I know about ISDN cards from ELSA?

  Generally, ELSA supports the ISDN4LINUX developers quite well with
  documentation on how to access their cards. Thus, these cards are well
  supported and very recommendable for use under ISDN4LINUX. Also, the
  ELSA Quickstep 1000 PCI (new name Microlink PCI) the only brand of
  cards that are officially certified for use in Germany, and therefore
  in EC (see question ``country_certified'' for more information on
  certification).


  However, there is a speciality with some non-PCI-conformal mainboards
  and the ELSA Quickstep 1000pro-PCI. These mainboards set the IO
  address to incorrect values (they need to be on 0x100 boundaries, and
  in a higher area). This may create an error message like "You may have
  the wrong PCI bios" and hang the system. The best fix is a Bios
  upgrade. If this is not feasible, you can get the module pcitest from
  Karsten Keil keil@isdn4linux.de. It will initialize the card
  correctly, then exit with an intentional error (thus not occupying any
  memory).

  To interface from ELSA's RJ11 plug to an RJ45 cable, use the following
  cabling scheme:

            RJ11   -   RJ45
  pins      1234       12345678
  Cable     abcd       --abcd--




  5.13.  hardware_teles: What should I know about before buying an ISDN
  card from Teles?

  First the latest news: The Teles card 16.3c has a crippled FIFO,
  therefore it is required to use AT&B1024 when using the ttyI* devices
  (if the remote side still send packets with more than 1024 bytes it
  will not work - unfortunately many CAPIs use 2048 bytes as default).
  The latest Teles PCI card needs the netjet driver, the teles driver
  will NOT work (that card identifies itself as 'TigerJet Tiger300' when
  doing a cat /proc/pci).

  Now some comments about Teles in general (these are the personal
  opinions of the author of this FAQ, please blame nobody else than me):

  Teles' business practices are very customer- and developer-unfriendly
  when compared to those of other companies. Naturally, the developers
  give priority to cards for which support is available, and where the
  specifications are freely available.

  So far, Teles has had a very unfriendly attitude towards the i4l
  developers. No support has ever been received from them, and they
  don't publish any information about how to access their card. The
  developers have invested a lot of private effort into getting this
  card to work from the beginning without receiving any support. The
  driver has been a complete private effort. Yet, Teles has bragged on
  their web site that their cards run under Linux, without giving proper
  credit.

  Even companies that buy Teles cards and resell them under their own
  name have not been able to improve the support. This has lead to the
  situation where a re-branding company (!) itself had to go through the
  effort of obtaining approval to legally use i4l in Germany on a Teles
  card.

  From a customer point of view, check out the prices for their hotline
  before you buy any hardware from them! The author of the FAQ refuses
  to use any hotline that charges 216,- DM per hour. Reports about
  quality and waiting time have not always been favorable.

  And this company doesn't even give away drivers for other operating
  systems, like Windows, for free.  You have to dial up a very expensive
  number (0190) where you have to pay about DM 3,60 per minute in
  Germany to download the driver. Not that it's advisable to use Windows
  anyway, but just to let you know...


  Warning: Teles has often changed their cards without notice, while
  still using the same name. When you buy a Teles card, you may find out
  that your brand-new card can not be supported by i4l! (As is currently
  the case...)

  The developers will try to support new Teles cards when information
  about how to access it becomes available, and when they have no other
  priorities. Of course you can always send a patch.


  5.14.  hardware_avmb1: What is special about the AVM B1 card?

  This card supports many special features in its firmware and is very
  well supported by its Linux driver. It's currently the only ISDN card
  that you can use to fax under ISDN4LINUX, as well as the only one
  which has a CAPI 2.0 interface. You can get the newest driver from:
  <ftp://calle.in-berlin.de/pub/linux/avmb1> or
  <ftp://ftp.avm.de/cardware/b1/linux/>.  The firmware is available on:
  <ftp://ftp.avm.de/cardware/b1/linux/firmware>.  There is also a
  mailing list for problems with the AVM B1 available on: linux-
  avmb1@calle.in-berlin.de (send an email to majordomo@calle.in-
  berlin.de with subscribe linux-avmb1 <your email address> in its
  body).


  5.15.  hardware_icn: What is special about the ICN card?

  This was the first active card supported by isdn4linux. The
  manufacturer has always supported i4l developers (
  <http://www.think.de/>).  The ICN does not need any interrupt
  (polling), therefore a PC can be equipped with many of them without
  any interrupt conflicts. The newest firmware should be available at
  <ftp://ftp.think.de/pub/isdn4linux/firmware/>.  Unfortunately, the ICN
  is not produced any more.




  5.16.  hardware_crossedcable1: If i4l uses one B-channel then the
  other one will be blocked (incoming as well as outgoing)...

  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.


  5.17.  hardware_crossedcable2: How can I test whether a a/b cable pair
  has been crossed?

  This question assumes that you are connected by an internal bus that
  you installed, attached directly to the NT (without using an RJ45
  cable).

  The easiest way to test it is to buy a little cable tester (the author
  of this FAQ got one from Conrad Electronics in Germany for 29,- DM -
  just follow the simple instructions).

  Otherwise you have a bit more work. Switch line a1 and b1. If it
  doesn't work, put them back and switch a2 and b2. If it still doesn't
  work, try switching them 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.
  With the Western plug this works similar. 4 lines are used:

  | | | |
  | | | |
  1 2 3 4


  Then you can try to switch (1 with 4) or (2 with 3) or both. Never
  switch the outer with the inner lines - this would cross the RX and TX
  lines and nothing will work.

  Check the Cable FAQ for more details on which line should be connected
  how.

  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.


  5.18.  hardware_pbx: i4l is connected to the internal bus of a PBX.
  Any problem?

  Many PBX run non-standard ISDN protocolls on their internal bus. This
  may cause i4l to print warnings like "Unexpected discriminator 0xZZ"
  (where ZZ is a hexadecimal number) when it encounters unexpected
  frames (some old versions even crash). This can increase your message
  file by as much as 1 MB in 3 days.  The PBX Ackermann Euracom 181
  (discriminator 0xaa) as well as Ascom (discriminator 0x44/0x47) seem
  to be notorious for this.  You can avoid the warning by adjusting the
  switch/case code for isdnlog in function processctrl() in processor.c.
  Please be aware, that the PBX may hang if the ISDN card does not
  respond to the PBX requests - bypass the PBX in such a case.

  Also, a PBX may run 1TR6 protocoll on the internal bus by default,
  rather than Euro ISDN. You have to configure i4l (or the PBX)
  accordingly, best is you try to configure both on the same or similar
  protocolls.

  Also the MSN may be different than you expect. Check several versions,
  no digit (then use 0, which i4l will require in such a case), one
  digit, or two digits, or the whole MSN. Best is you call some device
  (e.g. ISDN telephone) on the internal bus and check what i4l writes
  into the log file.  Last, remember that you may have to configure your
  PBX to 'route' incoming calls onto the internal ISDN bus.


  5.19.  hardware_telestrouble: The PNP tools done work with my Teles
  16.3 PNP card!

  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.


  5.20.  hardware_elsacabletrouble: On my ELSA card, the LED for the
  loss of the TEI often blinks. My connections are also often dis-
  rupted...

  These blinking LEDS are often caused by a bad cable or a too long or
  unterminated SO bus.


  5.21.  hardware_elsairq: My ELSA Quickstep 1000 ISA card produces very
  many interrupts with the HiSax driver. Is this normal or a problem
  with the HiSax driver?

  This is normal. The ELSA Quickstep 1000 ISA card has a hardware timer
  on the card which can not be disabled by software. You have to modify
  the card hardware to get rid of it. Check with Karsten Keil for this:
  keil@isdn4linux.de





  6.  config: General information about Configuration

  6.1.  config_msn: How should I set up isdn4linux with my MSNs?

  See section ``msn''.


  6.2.  config_hardware: How should I configure my hardware? Is there
  something special I should know about my ISDN card?

  Have a look in section ``hardware''.


  6.3.  config_dialout: How should I configure dialout?

  See section ``dialout''.


  6.4.  config_suse: I can not select my card in yast?

  If you have a SuSE distribution, and you can not find your card in
  yast, then select card generic and enter the exact parameters in the
  special case line, like: type=27 protocol=2 for Fritz!PCI and Euro
  ISDN. Get a newer kernel if the desired type is not yet supported.


  6.5.  config_pnp: How do I configure a PNP (Plug and Play) card?

  For PCI cards Plug and Play works automatically, they don't need any
  manual configuration if the correct card type is provided. ISA PNP
  cards will require some manual configuration:

  1. With "make menuconfig" (or "make config") set the following kernel
     options:

  o  ISDN = "M" (as module - otherwise PNP doesn't work!)

  o  HiSax = "M" (as module - otherwise PNP doesn't work!)

  o  16.3/PNP support

  o  EURO support

  2. Compile and install kernel and modules, depmod. (Reboot!)

  3. Read the configuration of the PNP card with:

     ___________________________________________________________________
     pnpdump > /etc/isapnp.conf
     ___________________________________________________________________



  4. The configuration file /etc/isapnp.conf has to be set by hand. Set
     the following values:

  o  INT0 - the interrupt used by the card (Default for Teles 16.3 PNP:
     10)

  o  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 (ending with 0, 4, 8, or c)! Early versions of the PNP
     cards may suggest incorrect values!)

  o  Remove comment in front of ACT Y!

  5. Activate the configuration with:

     ___________________________________________________________________
     isapnp /etc/isapnp.conf
     ___________________________________________________________________



  6. Now the HiSax module can be started for Euro-ISDN with:

     ___________________________________________________________________
     modprobe hisax io=4,2,INT,IO0,IO1
     ___________________________________________________________________


  (Replace INT, IO0, and IO1 with the your values in isapnp.conf.)


  6.6.  config_kerneld: Why shouldn't I use kerneld  to load the ISDN
  modules in the kernel as needed?

  kerneld does not work well with the ISDN modules, since the ISDN
  modules can not store their status, and could miss important messages
  on the D channel. Newer versions of i4l ensure that they won't be
  unloaded by kerneld, but you should not try to use kerneld with any
  version of i4l.


  6.7.  config_runlevel: How can I boot Linux sometimes with ISDN, and
  sometimes without?

  Yes, you can define two different run level for this (under SysVInit)
  in /etc/inittab. One run level includes the ISDN processes, where the
  other one does not.


  6.8.  config_manycards: How do I configure more than 1 ISDN card?

  There are some specialities for configuration of more than 1 card:

  o  You have to start a driver for every type of card you have, with
     the correct configuration arguments.

  o  To handle more than 1 card with the same driver (e.g. HiSax should
     handle an ELSA and an ASUS card), you have to pass the
     configuration arguments for all cards to this driver. Please note,
     that you'll have to use modules for more than two cards, to pass
     all arguments.

  o  Dialin of many people at the same time: have a look at question
     ``dialin_manyparallel''.


  o  Dialout through several cards: have a look at question
     ``dialout_manycards''.



  6.9.  config_manychannels: How can I increase i4l's maximum number of
  channels?

  Increase the parameter ISDN_MAX_CHANNELS in
  /usr/src/linux/include/linux/isdn.h and rebuild the isdn stuff. Don't
  forget to create the additional devices with makedev.sh (part of
  isdn4k-utils) or by hand.


  6.10.  config_gsmv110: How do I connect my PalmPilot via GSM over
  V.110 to my computer?

  Set up async PPP with a normal pppd on a ttyI* device. Additionally to
  setting the msn, you have to initialize the ttyI* device with ATS19=0
  for V.110.  The rate should be set to 9600 with AT&R9600. pppd needs
  to be called with noccp and require-pap. For a mini-howto see:
  <http://www.oltom.com/Linux/Docs/GSM%20over%20V.110%20Mini-HOWTO.txt>




  6.11.  config_links: What helpful links are there about isdn4linux?

  These are helpful links that are currently available on how to
  configure isdn4linux:

  o  English:  <http://www.wurtel.demon.nl/i4l-howto-uk.html>

  o  German:  <http://www.franken.de/users/klaus/>

  o  French:  <http://www.perso.wanadoo.fr/philippe.latu/>

  o  Suse Support database:
     <http://www.suse.de/Support/sdb_e/index.html>; there is also an
     ISDN howto (isdn.html) and a ISDN quick-install guide
     (isdnquick.html).

  o  Tips to configure Red Hat: <http://www.webideal.de/rh-isdn/>

  o  Scripts and installation tips from several people:
      <http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html>

  o  Michael Hipp's page (general informations):
      <http://www-ti.informatik.uni-tuebingen.de/~hippm/isdn.html>

  o  Chargeint tips:
      <http://www.provi.de/~gvz/chargeint.html>




  7.  trouble: Troubleshooting

  7.1.  trouble_22memory: I can't start ISDN on my machine with kernel
  2.2.x. I get the error messages "init_module: Device or resource busy"
  and "isdn: Could not allocate device-struct.".

  This seems to be a memory problem. While 2.0.x kernels may work on low
  memory/slow hardware (the author's answering machine is a 386 and used
  to run with 4MB of RAM), at least 16MB, if not more, seem to be
  required to run 2.2.x kernels. You can try to reduce ISDN_MAX_DRIVERS,
  ISDN_MAX_CHANNELS in include/linux/isdn.h, compile ISDN4LINUX into the
  kernel, or start and then exit a large program to ease those problems.


  7.2.  trouble_strategy: My isdn4linux doesn't work! How do I best go
  about finding the problem?

  The following steps are recommended:

  1. 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. Try calling with a telephone. The number should be shown in
     /var/log/messages. Otherwise, perhaps the driver was incorrectly
     started?!

  3. As a next step we'll try to get the telephone or fax to ring by
     dialing ourself using a ttyI device with minicom. First we have to
     change the service recognition with the ATS18=1 command to audio.
     Now you can get the telephone to ring by dialing ATDxxxxxx, where
     xxxxxx is your own MSN.

  4. Next we try to transmit data via ISDN. 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).

  5. Next, 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"

  6. 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*).

  7. Ensure that you set up your authentication configuration properly
     (see questions in section ``pap''.

     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.... :-)


  7.3.  trouble_boot: How can I tell whether my ISDN card has been cor-
  rected recognized?


  1. Check for error messages in the boot messages (you can review them
     at any time with the command dmesg.

  2. For the HiSax driver: 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:??? B:???) mean the card is not
     recognized correctly.  HiSax is only loaded if the hardware can be
     found and the appropriate interrupts can be generated. This means
     the card is installed correctly in the computer, and there are no
     hardware conflicts. It does not mean that everything will work
     (e.g. twisted cables, broken cables, terminators).

  3. Check that the interrupts are registered correctly. Check with

     ___________________________________________________________________
     cat /proc/interrupts
     ___________________________________________________________________


  The following entry indicates that the card is configured on interrupt
  11, and so far has received 3 interrupts:

  11:        3 + hisax


  When you call yourself, the number of received interrupts should
  increase.

  4. Check the io ports with

     ___________________________________________________________________
     cat /proc/ioports
     ___________________________________________________________________




  7.4.  trouble_isdncause: I get an error message like "cause: E1234"
  (or similar)?

  Just have a look at man isdn_cause to find out what the problem is.


  7.5.  trouble_notelrings: Neither my telephone nor my fax machine ring
  when I call them with isdn4linux?

  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.


  7.6.  trouble_guestaccess: Are there sites that offer guest access
  where I can test my isdn4linux setup?

  The following information is quite old. Please tell me if you find out
  that the guest sites are not available any more:

  The following sites offer guest access for modem emulation or IP:

  o  Eberhard Moenkeberg emoenke@gwdg.de:


  o  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.

  o  Under ++49-551-7704102, a 28800 bps modem and a Creatix ISDN card
     (HDLC only, not X.75) are listening for logins.

  o  With the net setup from
      <ftp://ftp.gwdg.de/pub/linux/isdn/isdn4linux-gwdg/rc.isdn-
     Beispiel> you can test NetCall at 551-7704103 (works as is within
     Germany, from outside Germany you just have to change the number).


  o  Gernot Zander hifi@scorpio.in-berlin.de:

       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.



  7.7.  trouble_unload: I can't unload my ISDN modules ("isdn: Device or
  resource busy"), even so I closed all ISDN applications?

  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.

  o  Is some program still using an ISDN device?

  o  Did you remove all getty's? (They may have restarted automatically)

  o  Are isdnlog, imon, iprofd, etc., still running?

  o  Maybe there is still a route on your net interface and it's not yet
     deleted with "route del xxx"?

  o  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".

     Sporadic errors of this type can be fixed by inserting sleep
     commands between the unloading commands.  As a very, very last
     resort, there are two secret telesctrl commands to adjust the
     module counter:

     ___________________________________________________________________
     telesctrl id 3 1  --- dec module_count
     telesctrl id 4 1  --- inc module_count
     ___________________________________________________________________


  Please use with appropriate caution and on your own risk!






  7.8.  trouble_tcpdump: Why does my tcpdump not work for ip packets
  going over ISDN? How can I get a tcpdump patched for ISDN?

  The reason is that tcpdump does not always understand the special
  encapsulations that are possible with isdn4linux, especially syncppp.
  To change this, you need to patch tcpdump.

  Michael Stiller michael@toyland.ping.de wrote on 23 Oct 1996:

  Tip for ftp:

   <ftp://ftp.gwdg.de/pub/misc/isdn/linux/isdn4linux-gwdg>

  There is the patch: "tcpdump-3.0.4-1-isdn.dif.gz"

  and the rest is at:

  /pub/linux/mirrors/funet/PEOPLE/Linus/net-
  source/tools/tcpdump-3.0.4-1.tar.gz

  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.

  Henning Schmiedehausen henning@pong.iconsult.com further wrote on 30
  Oct 1996:

       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


   <ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/tools>

       This patch recognizes rawIP, ISDN-IP and CISCO-HDLC and can
       dump these packets.


  (The patch was attached to the message  - it should be easy to find in
  the mailing list archive - Ed.)

  Sascha Ottolski sascha@alzhimer.isdn.cs.tu-berlin.de gave the
  following tip on 5 Nov 1996:

       This is a isdn4k-utils-2.0/tcpdump-3.0.3-isdn.diff ! It
       work, if one makes some changes: In the file tcp-
       dump-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.



  7.9.  trouble_locatecrash: 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?

  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. You
  can do it like this:


  ______________________________________________________________________
  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
  ______________________________________________________________________


  (The line ending with "|" has to have the following text on the same
  line!) iSystem.map should then be used instead of System.map for find-
  ing the error.


  7.10.  trouble_lotsdebug: My hard disk becomes very active when
  isdn4linux run. How can I turn this off?

  Check whether the reason for the hard disk activity is caused by the
  amount of messages written into the logfile. If this is the case, you
  can reduce the output by:

  ______________________________________________________________________
  isdnctrl verbose 0
  ______________________________________________________________________


  and/or by removing the "debug" option for ipppd.



  7.11.  trouble_outofbuffers: I get messages like "HSCX RME out of
  buffers", "HSCX RFP out of buffers", "HSCX B EXIR 10" in the syslog?

  These errors happen when i4l is not able to process its buffers fast
  enough. They are often caused by bad sound cards or their drivers when
  they disable the interrupts too long! It may also happen on old
  hardware (happened to the author of this FAQ when using vbox on an old
  386-25 with only 4MB RAM). You may be able to work around it by
  increasing the number and size of the buffers. Check the source code
  header files for definitions like:

  ______________________________________________________________________
  #define HSCX_RBUF_ORDER 1
  #define HSCX_RBUF_BPPS 2
  #define HSCX_RBUF_MAXPAGES 3
  ______________________________________________________________________


  The first two influence the size, the last one the maximum number of
  buffers.


  7.12.  trouble_noresetinit: After a soft reset, my card does not ini-
  tialize correctly.

  After you stopped your system with the reboot command or with Ctrl-
  Alt-Del, press the reset button (=hard reset). Sometimes the card
  needs to receive a hardware signal to reinitialize properly.



  7.13.  trouble_xosview: xosview doesn't show any network activity
  since installing i4l.

  Peter Hettkamp Peter.Hettkamp@kassel.netsurf.de wrote:

       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.)



  7.14.  trouble_unknownhost: When I for example from a W95 box call up
  a page with Netscape, I only get the answer "unknown host".

  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.


  7.15.  trouble_noroute: Addresses are now found, but now I get "no
  route to host".

  Please check:

  o  Is the Linux computer entered as the gateway? (Some 'operating
     systems' have to be restarted before changes to the networking take
     effect)?

  o  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")

  o  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

  o  Maybe your route was removed when using syncppp? Check the
     questions ``syncppp_noroute'' and ``syncppp_nodefaultroute''.


  7.16.  trouble_nolocalnet: 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.

  Wolfgang Barth wrote on 5 Jan 1997:

       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 part-
       ner.  This was already discussed in de.comp.os.linux.net-
       working, 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.





  8.  msn: Configuration/MSNs

  8.1.  msn_my1: What is my MSN? What if I don't have any?

  Your telephone company will tell you your MSN. It is your own
  telephone number. Please note that you have to provide i4l with at
  least one MSN. If you don't have any you can use `0', which is assumed
  if no MSN is transmitted from your telephone company. Check section
  ``countries'', together with the following questions, on how to
  configure your MSN(s).


  8.2.  msn_my2: How can I find out how my telephone number is transmit-
  ted to the calling party?

  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).


  8.3.  msn_config: How do I configure my MSN?

  If your telephone number were 56789, then it would be configured as
  follows:

  o  Modem emulation: "AT&e56789"

  o  Network interfaces: "isdnctrl msn interface 56789"

  o  For test calls to yourself add the area code (e.g. 01234):

     ___________________________________________________________________
     "isdnctrl addphone interface in 123456789" (without leading zero)
     "isdnctrl addphone interface out 0123456789" (with leading zero)
     ___________________________________________________________________



  You may find national differences here (check section ``countries'').


  8.4.  msn_mindialin: How can I minimize usage of MSNs for digital data
  dialin?

  i4l gives priority to net interfaces. Therefore, you can get away with
  only one MSN when you set it up like this:

  1. Set up net interfaces (sync ppp, rawip) for all users that will
     want to use them (ipppd or rawip), with their incoming phone number
     (precondition is that it is transmitted).

  2. Set up ttyI* for all other users (X.75, async ppp).

  3. Set option `secure on'.

     i4l gives priority to net interfaces. `secure on' ensures that only
     users that have been set up will be connected to a net interface.
     Users that want to choose between both will have to use different
     outgoing MSNs to call you.


  8.5.  msn_onlyone: How can I use one MSN for everything?


  In Germany, this is not an issue any more since you can get the first
  10 MSN for free with Deutsche Telekom (
  <http://www.telekom.de/english/index.html>), other phone providers may
  offer more or less MSN for free. In general, you can get at least 3
  MSN. However, minimizing MSN usage may still be very interesting for
  other countries.

  Digital data dialin can easily be distinguished from voice/analog
  modem dialin by the 'Service Recognition' code ("digital, data").
  For the differentiation between net interfaces (ipppd, rawip) and
  ttyI* (X.75) see last question.

  To get voice/analog modem to work in parallel, use mgetty for the
  analog modem. Mgetty can handle analog data calls, faxes, and even
  voice calls as answering machine if the modem supports it. Configure
  it for 10 rings. If you take the phone and hear a fax or modem, send
  mgetty a USR1 signal (kill -USR1 mgetty-pid). If your phone socket is
  correctly wired, the modem will take over the connection, cutting off
  the phone. If you have an ISDN PBX then you can forward the call to a
  different analog port when you picked up a fax/modem call.

  If your analog modem can not handle voice calls, then you have to
  choose since incoming voice calls can not be distinguished from analog
  fax/data calls. Use either VBOX to take your voice calls as an
  answering machine. Or forget about voice calls and set up your modem
  to handle only faxes and/or analog data calls.


  8.6.  msn_buendel: Can I have several NTBAs, all with the same MSN?

  Yes, but you need the cooperation of your telecommunication company.
  They can set up several BRIs in Point-to-point mode that have the same
  MSN. In Germany it is called a bundled line (`Buendelanschluss').

  Please note that in such a case the MSN may not be transmitted to you.
  Just use the default MSN 0 then.



  9.  lan: ISDN4LINUX in a LAN

  9.1.  lan_config: How can I set up Linux so that other computers in my
  LAN can access the internet via my Linux computer?

  There are several possibilities:

  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.

  4. Use ip masquerading. This is the most comfortable one to use, but
     more difficult to set up. The Linux computer acts as a gateway. The
     trick is that it hides the ip addresses of the LAN, by giving its
     own internet address as response address. When receiving the
     response, it will forward it to the correct computer on the LAN.
     You can also use masquerading with dynamic ip addresses. If you
     don't want to start the ISDN connection from the Linux computer to
     your internet provider manually, then you can set up dial on demand
     functionality (see section ``dod'').





  9.2.  lan_modemserver: How can I allow the users in my LAN to dial out
  via the ISDN card(s) in my Linux PC (like a modem server)?

  On the Linux side use modemd, which is a very short perl script:

  ______________________________________________________________________
  #!/usr/bin/perl
  select((select(STDOUT), $| = 1)($());
  select((select(STDIN), $| = 1)($());
  exec "cu","-E","''", "-l", "$ARGV(0)";
  die "$0: Cannot exec cu: $!\n";
  ______________________________________________________________________


  It has to be started in inetd:

  ______________________________________________________________________
  modem           20006/tcp       modemd  # Modem service via TCP
  isdn            20007/tcp       modemd  # ISDN  service via TCP
  ______________________________________________________________________


  Additionally, you need some software on your non-ISDN computer which
  emulates a serial port, but redirects it via telnet to the Linux ISDN
  computer.  Some telnet clients allow this functionality (e.g. some
  uucicos).  If you generally want to offer all applications a kind of
  "remote COM port", then there is COMT for Windows (95), and
  "telser.device" for Amigas. Disadvantage of COMT: it is only visible
  to 16bit applications.

  COMT may be found on Simtel or one of its mirror:
   <ftp://ftp.funet.fi/pub/simtelnet/win3/inet/comt200.zip>




  10.  dialout: Configuration of Dial-Out

  10.1.  dialout_config: How do I configure dialout properly?

  First you have to decide on how you want to dial out. You will have to
  use whatever your counterpart requires. These are your main options:

  o  Sync PPP: This is what most Internet Service Provider expect from
     you. See section ``syncppp''.

  o  Async PPP: May also be handled by your Internet Service Provider.
     Use when Sync PPP does not work for you. See section ``asyncppp''.

  o  Raw IP: Most efficient for TCP/IP over ISDN. It has very quick
     dialouts, but is not as common. See section ``rawip''.

  o  X.75: This is what you need to dial into an ISDN mailbox. See
     section ``ttyI''.

  o  Leased line: For this special case, see section ``leased''.

  Have a look on section ``dod'' on how to configure dial on demand -
  and on the dangers attached to it.

  For more advanced dialout features see question ``dialout_advanced''.

  Also you may have a look at section ``remote'' when you try to connect
  to a special remote ISDN device.


  10.2.  dialout_dialmode: When an IP packet should go over the link
  (which usually triggers a dialout), all I see in the log is: "dial
  rejected: interface not in dialmode auto "?

  The new ISDN drivers in 2.0.36 defaults to manual dialmode, not
  autodial. This is done to prevent unexpected (and unnoticed) dialouts.
  (See the big section about those and their dangers: ``dod'').  To
  enable autodial for a given interface e.g. ippp0, use

  ______________________________________________________________________
  isdnctrl dialmode ippp0 auto
  ______________________________________________________________________



  The meaning of the values for dialmode is:

     off
        means that you (or the system) cannot make any connection
        (neither incoming nor outgoing connections are possible). Use
        this if you want to be sure that no connections will be made.


     auto
        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.


     manual
        (DEFAULT) 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 ippp0
        ________________________________________________________________


     To end the connection, use:

     ___________________________________________________________________
     isdnctrl hangup ippp0
     ___________________________________________________________________


     Please note that the huptimeout may still end the connection auto-
     matically! To ensure that you have to hang up manually, you have to
     switch this off:

     ___________________________________________________________________
     isdnctrl huptimeout ippp0 0
     ___________________________________________________________________



  To allow a normal user to initiate a dialout, have a look at question
  ``dialout_permission''.




  10.3.  dialout_advanced: What special dialout features are available?

  Check out these special dialout features:

  o  Save money by hanging up just before a charge unit: see section
     ``chargeint''.

  o  Dialout on more than 1 channel: see section ``2channel''.

  o  Callback: see section ``callback''.


  10.4.  dialout_permission: How can I allow a normal user to initiate
  dialouts?

  ISDN usage depends on the permissions to the devices /dev/ttyI* and
  /dev/cui*. You have several choices to selectively allow users to do
  ISDN transactions.

  1. You can establish the group `isdn' in /etc/group, and do:

     ___________________________________________________________________
     chgrp isdn /dev/ttyI* /dev/cui*
     chmod o-rw /dev/ttyI* /dev/cui*
     ___________________________________________________________________


  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'.

  2. You can allow only root to log out, but set up exceptions for other
     users with the su1 functionality (see man su1). As root edit
     /etc/su1.priv. Add these lines if they (or similar ones) are not
     yet there, to allow users XXXX and YYYY to initiate
     dialups/hangups:

     ___________________________________________________________________
     # log all dialouts in syslog
     syslog all
     define PPPUSER XXXX YYYY
     alias dial /sbin/isdnctrl dial ippp0
     alias hangup /sbin/isdnctrl hangup ippp0
     ask never
     allow PPPUSER prefix dial
     allow PPPUSER prefix hangup
     ___________________________________________________________________


  Then create two links for dial and hangup:

  ______________________________________________________________________
  ln -s /usr/bin/su1 /usr/local/bin/dial
  ln -s /usr/bin/su1 /usr/local/bin/hangup
  ______________________________________________________________________


  Now the users XXXX and YYYY can dial out by typing dial, and hangup
  with hangup.

  3. If you only have one user that you use for ISDN interactions, you
     can make him owner of the ISDN interface.




  10.5.  dialout_manycards: How do I configure dialout with more than 1
  ISDN card?

  There are several possibilities to configure dialout.

  o  Dialout anywhere (default: all available cards are a pool, dialout
     on one MSN): just configure your cards in the order in which you
     want them to be dialed out.  First all channels on the first card
     are used, then all on the second card, and so on. Please note that
     the net interface or ttyI device will try to dial out using the MSN
     it was configured for - on all cards. Even on those that do not
     have this MSN! In such a case, the telco will replace that invalid
     MSN with the correct one. Use isdnctrl mapping to configure the
     correct MSNs (see item 'dialout on one specific card').

  o  Dialout on one specific channel: Use the isdnctrl bind (not
     pppbind) command to specify which channel should be used.

  o  Dialout with different MSN on each card: You can configure this by
     using the isdnctrl mappping functionality.  Just map MSNs on the
     letters 0 to 9, like this:

     ___________________________________________________________________
     isdnctrl mapping <carddriver1> 111,222,333,,
     isdnctrl mapping <carddriver2> 999,888,,777
     ___________________________________________________________________


  Now, you could configure for telephone number 0 when you really want
  to use MSN 111 on <carddriver1> or 999 on <carddriver2> (however,
  since 0 has a special meaning, try to avoid using number 0). Configure
  to use number 1 when you really want to use MSN 222 on <carddriver1>
  or 888 on <carddriver2>. Configure to use telephone number 2 when you
  really want to use only MSN 333 on <carddriver1> (<carddriver2> will
  use the default MSN when used). Configure to use telephone number 3
  when you really want to use only MSN 777 on <carddriver2> (<card-
  driver1> will use the default MSN when used).

  o  Dialout on one specific card: After installing a patch that was
     posted by Karsten Keil on the mailing list against 2.2.12, you can
     disallow calls on some cards by using the isdnctrl mapping
     functionality.

     ___________________________________________________________________
     isdnctrl mapping <carddriver1> 111,222,333,-,
     isdnctrl mapping <carddriver2> 999,888,-,777
     ___________________________________________________________________


  It works as discribed for "Dialout with different MSN on each card",
  except that the "-" means dialing is disallowed. Dialout on telephone
  number 2 will now only dial out with MSN 333 on <carddriver1>, while
  dialout on 3 will now only dial out with MSN 777 on <carddriver2>.



  11.  pap: Authenticate properly (especially with PAP)

  11.1.  pap_optionauth: When dialing out, I get the message "pppd: peer
  authentication required but no authentication files accessible." What
  does this mean?

  Most likely the option "auth" was set by mistake. Then the other side
  is required to be authorized.


  11.2.  pap_requestauth: 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"

  Like in the last question, an option has been set that requires the
  other side to be authorized. These options shouldn't be set.  Possible
  candidates are: "+pap" as well as "+chap".


  11.3.  pap_rejectauth: 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"

  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" for ipppd or pppd together
  with a correct (!) /etc/ppp/pap-secrets. With a password of ZZZ it
  should ideally look like this:

  ______________________________________________________________________
  XXX YYY ZZZ *
  ______________________________________________________________________


  If that doesn't work, you can use wild cards, something like:

  ______________________________________________________________________
  * * ZZZ *
  ______________________________________________________________________


  Then every 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:
   <http://www.lrz-muenchen.de/~ui161ab/www/isdn/> Also have a look at
  the next question: ``pap_passwd''.


  11.4.  pap_checkpwd: How can I check which password is actually sent
  to the remote side?

  Use the options debug and +pwlog for ipppd or pppd. Then you can see
  your password in the log file.


  11.5.  pap_passwd: I have problems with PAP or CHAP authentication. It
  does not work although I'm sure I entered passwords etc. correctly.

  Stefan A. Muehlenweg Stefan.A.Muehlenweg@samhh.hanse.de wrote on 4 Oct
  1996:

       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.


  A further source of problems can be the password itself. If it con-
  tains the "#" character, then everything after than is understood as a
  comment. Spaces or tabs can cause similar problems. Solution: put the
  password in quotes!

  12.  syncppp: Sync PPP

  12.1.  syncppp_whichppp: pppd, ipppd, syncPPP, asyncPPP .. what is
  they? Which should I use?

  See this question in the asnyc PPP; section: ``asyncppp_whichppp''.



  12.2.  syncppp_compile: How do I compile isdn4linux with syncPPP?

  To compile the kernel with syncPPP included in ISDN4Linux, you have to
  answer the appropriate questions 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.)


  12.3.  syncppp_netinterface: How should I name my network interface?

  The name of the network interface should always begin with "ippp", not
  with "syncppp" or "isdn"; otherwise the communication with ipppd will
  not work correctly.


  12.4.  syncppp_config: How do I configure isdn4linux with syncPPP?

  Synchronous PPP is simply another encapsulation for ISDN4Linux. This
  encapsulation is called "syncppp". Here is an example to configure the
  link level device ippp0:

  ______________________________________________________________________
  /sbin/isdnctrl addif ippp0
  /sbin/isdnctrl encap ippp0 syncppp
  ______________________________________________________________________


  All ippp* devices in use must be configured separately. Each ippp*
  device should be assigned to its own IP address  (routing!). Several
  ippp* devices can be assigned to a single MSN. Several callers can
  then simultaneously use this MSN.

  To use these devices you need the program ipppd, which you have to
  configure. You have to start ipppd once after the modules are
  installed. ipppd needs to be constantly running to allow
  dialout/dialin. It 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. As a result, ipppd provides
  the network device ippp0, which can be checked with ifconfig (even so
  it has the same name, the network device ippp0 is not to be confused
  with /dev/ippp0 which is used for communication between ipppd and link
  level.

  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.) For the
  beginning, disable all compression (lzs/stac, bsd, van jacobson),
  later you can try to enable it (see question ``syncppp_compression'').

  It is very important to set up the authentication information
  properly. Improper authentication is probably the most frequently
  reported problem on the mailing list. Please, work through section
  ``pap'' completely yourself, before asking others for help.
  You can find an example configuration in the file etc/rc.isdn.syncppp
  in the isdn4kernel-util package.


  12.5.  syncppp_busy: How can I tell if a connection is unsuccessful
  (busy)?

  When giving the option defaultroute, then you can wait a few seconds,
  then check whether the default route exists. Another way, when giving
  option useifip is to check whether you find entries like "Local IP:
  x.y.z.a" and/or "Remote IP: x.y.z.a" in syslog.  In either case, the
  connection is up.


  12.6.  syncppp_logindelay: How can I reduce login delay?

  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".


  12.7.  syncppp_2configs: 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.

  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

  ______________________________________________________________________
  isdnctrl pppbind interface Number
  ______________________________________________________________________


  you can link the interface interface to the device ipppNummer. You can
  release the link with "pppunbind".


  12.8.  syncppp_pppbind: How does the (little-documented) "pppbind"
  command in isdnctrl work?

  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/ippp*
  devices - to one where a ipppd daemon is waiting for data.

  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.

  In practice, you usually install several ipppd's with differing
  configurations. Each of these should receive data exclusively from a
  certain network interface (that has also be specially configured).
  The "pppdbind" command serves just this purpose. With:

  ______________________________________________________________________
  "isdnctrl pppbind interface number"
  ______________________________________________________________________


  attaches the interface interface to the device /dev/ipppnumber.

  Example: To attach the interface "ippp5" to /dev/ippp2, the following
  configuration should be used:

  ______________________________________________________________________
  "isdnctrl pppbind ippp5 2"
  ______________________________________________________________________


  Similarly, the command "pppunbind" will undo this attachment.


  12.9.  syncppp_dynip: I want to use dynamic IP address assignment. How
  must I configure the network device?

  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 will close 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.:

  ______________________________________________________________________
  /sbin/ipppd :$REMOTE noipdefault /dev/ippp0
  ______________________________________________________________________


  where REMOTE must be the address of the remote machine (the machine
  giving your address to you)


  12.10.  syncppp_ipx: How can I do IPX over ipppd?

  Give the option +ipx-protocol to the ipppd.


  12.11.  syncppp_faster: How can I increase my PPP data transfer rates?

  You can establish more channels with MPPP (see the MPPP section).
  Another way is to use compression, see question
  ``syncppp_compression''.


  12.12.  syncppp_compression: Which compressions can I use with ipppd?

  Van Jacobson compression (header compression) is in experimental
  state. It works for some remote devices, but not for others. Check it
  out on your own risk, to be sure disable it. Lzs compression
  (sometimes also called Stac compression) works quite well. To enable
  it, some manual work has to be done to add the code to the ipppd (see
  the isdn4k-util package). Bsd compression also seems to work, but is
  in experimental stage. You find it in the CVS tree.


  12.13.  syncppp_strategy: I can't get a connect. How can I find out
  where the problem is?

  The output of ipppd is very helpful... (see next question:
  ``syncppp_log'')

  o  Have a look at the error messages and see the following
     questions...

  o  Check whether you can find a few "LCP-conf-req SENT" messages (less
     than ten) and then a "TERM-REF".

  o  Check whether the ISDN card was configured properly. It seems the
     computer doesn't dial (IRQ, IO, protocol wrong?)

  o  At least a few "RECV" messages: good! The card is dialing and your
     dialin computer tries to communicate. Maybe the pap/chap
     authentication doesn't work (see question ``pap''). Check the ipppd
     configuration!

  o  The message that ipppd was exited for some reason: not so good!
     Check /var/log/messages, /var/log/debug, and /var/adm/daemon (if
     existing). Could be a bug in ipppd.

  o  The error/cause E0010 is NOT an error! It is just the informal
     message that the call has ended.


  12.14.  syncppp_log: How can I get a log for ipppd?

  Normally when giving the option "debug" to ipppd, the debbuging output
  may be logged in /var/log/messages, /var/log/debug, or /var/adm/daemon
  (depends on your distribution, look around).

  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 - check "man syslog.conf(5)" for more
  details):

  ______________________________________________________________________
  daemon.*                      /var/log/ppp-log
  ______________________________________________________________________


  then every information from PPP demon will be logged to /var/log/ppp-
  log.  Emil Stephan ste@esqhen.su.eunet.de also wrote:

  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.




  12.15.  syncppp_nopppsupport: Starting ipppd I get the error message
  "this systems lacks ppp support".

  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:



  ______________________________________________________________________
  isdnctrl addif ippp0
  isdnctrl encap ippp0 syncppp
  (see i4l documentation for more information...)
  ______________________________________________________________________


  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.


  12.16.  syncppp_nousabledevice: When I try to start ipppd it says
  "Can't find usable ippp device"

  This message occurs when the linklevel interface is told to dial out,
  but ipppd is not running, or not available.


  12.17.  syncppp_starterror: When I start ipppd, I only get error mes-
  sages from the i4l driver.

  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.


  12.18.  syncppp_framesdelayed: I get the message IP frames delayed  -
  but no connection.

  Have you really dialed out? Check question ``dialout_dialmode'' and
  your configuration on the different dialmodes.


  12.19.  syncppp_noroute: 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!

  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.


  12.20.  syncppp_nodefaultroute: After ipppd dials out my default route
  is gone.

  It's the kernel's fault. Newer kernels (= 2.0.x) have some changes in
  the routing. Workaround: install a script /etc/ppp/ip-up like this:

  ______________________________________________________________________
  #!/bin/sh
  /sbin/route add default ippp*
  ______________________________________________________________________


  Please note, that for 2.2.x kernel, you should NOT do this (routing
  has changed yet again). Instead, give the "defaultroute" option to
  ipppd.

  If you make your connections manually, can use something like this
  script:


  ______________________________________________________________________
  /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
  ______________________________________________________________________


  Please note, that for 2.2.x kernel, you should NOT use the route add
  default, and route del default commands.  Instead, give the "default-
  route" option to ipppd.


  12.21.  syncppp_packettoolarge: I often get the error message
  hscx_empty_fifo: incoming packet too large

  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?".  Another problem can be `#' characters in your pap-
  secrets file. In this case you have to surround user name and/or
  password with quotation marks (depending on which one is affected).


  12.22.  syncppp_slow: The connection with ipppd seems to work, but
  eventually it crashes or is very slow.

  It could be that some compression is activated (that i4l can't handle
  properly). Common error: "-vj" has to be used *additionally* to
  "-vjccomp" (to completely switch 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.
  Therefore, you should switch off all compression options (see also
  question ``syncppp_compression''). Also giving the option "noccp" can
  help.


  12.23.  syncppp_loadproblem: I only have problems with ipppd when the
  connection is being heavily burdened. Then everything stops. What
  could be causing this?

  Sven Engelhardt sven@sik.de wrote on 12 Dec 1996:

       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 Win-
       dows 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 sus-
  pect 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:
  <http://www.winfiles.com/connect/trouble.html>)


  Erik Corry ec@sign-tronic.dk added on 16 Dec 1996:

       For me, neither PPP compression option nor mru/mtu 296
       helped.  What did help was the AT command: AT&B512 that lim-
       its the sent packets to 512 bytes.



  12.24.  syncppp_mtu: My ipppd works, but I keep getting the message
  pppd(104): ioctl(SIOCSIFMTU): Invalid argument"?

  If mtu is not set, then a default value is assumed - possibly "0"
  (which of course cannot be correct). Add "mtu 1024" to your ipppd
  options (1500 could also be ok).


  12.25.  syncppp_1stpacket: The first IP packet gets lost on automatic
  dialout with dynamic IP address allocation.

  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 have the wrong response ip address and will
  therefore never receive an answer. Possible solutions:

  o  Dial out manually with "isdnctrl dial ippp*"

  o  Use diald to control when the connection goes up or down.

  o  Get a permanent IP address

  o  A workaround is included in the newest kernels, which can be
     activated like this:

     ___________________________________________________________________
     echo 7 > /proc/sys/net/ipv4/ip_dynaddr
     ___________________________________________________________________


  If you have a SuSE distribution, this workaround can also be config-
  ured by setting IP_DYNIP="yes" in /etc/rc.config.


  12.26.  syncppp_droppacket: What does the message "No phone number,
  packet dropped" mean?

  Michael Engert michi@bello.wor.de wrote in Nov/Dec 1996:

  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.

  12.27.  syncppp_leadingzero: Why does my ipppd dial one too many zeros
  ( "ippp0: dialing 0 089XXXXXX..." )? I don't have any extensions!

  The first zero is not dialed. It only shows the retry counter, which
  is related to the isdnctrl dialmax parameter.


  12.28.  syncppp_ethfake: My ISDN device is shown with HWaddr and IRQ=0
  and base address = 0 when I list it with ifconfig

  The ISDN device fakes an Ethernet device. It ignores IRQ and baseaddr
  and just needs the HWaddr for the Ethernet encapsulation.




  13.  asyncppp: Configuration Async PPP

  13.1.  asyncppp_whichppp: pppd, ipppd, async PPP, sync PPP - what are
  they? Which should I use?

  async PPP is a character-based protocol which is usually used over
  analog serial lines (async = asynchronous). You have to use the
  program pppd for it, and use it with the ttyI* devices.

  In contrast, Sync PPP is a bit-oriented protocol (sync = synchronous),
  for which the original pppd cannot be used. Michael Hipp has written
  an adapted version called ipppd which will use ipppd* net devices.

  With i4l you can have both. It all depends on what your ISDN
  counterpart supports. If it immediately begins to send frames, then
  you've probably reached an sync PPP machine. If you can log in via
  same terminal screen, and then can start pppd, this can be an
  indication of async PPP.

  Usually using sync PPP works fine, and it is slightly more efficient.
  To take advantage of newer features of the pppd, use async PPP.


  13.2.  asyncppp_config: How do I configure async PPP?

  Just set up a normal pppd, but tell it to use one of the ttyI*
  devices, e.g. /dev/ttyI0. You can set up several pppd's with different
  configuration on different ttyI* devices.

  It is very important to set up the authentication information
  properly. Improper authentication is probably the most frequently
  reported problem on the mailing list. Please, work through section
  ``pap'' completely yourself, before asking others for help.

  On problems also check out the section about the syncppp problems,
  since many configuration problems are common for pppd (async PPP) and
  ipppd (sync PPP).


  13.3.  asyncppp_logindelay: How can I reduce login delay?

  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".



  13.4.  asyncppp_fast: How can I increase my transfer rates with PPP?

  You can add more channels with MPPP (see question ``2channel_mppp'').
  For everyone for whom that's to expensive and who use async PPP,
  there's a little trick. With the option "asyncmap 0" you can avoid
  escaping all control characters (ASCII32). If the other side goes
  along with this, you can increase the transfer rate by about 12%.


  13.5.  asyncppp_log: How can I get a log for pppd?

  See this question for Sync PPP, it works the same way for pppd.


  13.6.  asyncppp_suddendeath: Establishing the connection works fine,
  but pppd crashes just after that (i.e. the first bytes gets through,
  but then everything stops)

  This is probably due to an incorrect block size on your side.
  Initialize your ttyI* device with AT&B512 or even smaller block sizes.




  14.  rawip: Raw IP

  14.1.  rawip_whatis: What is Raw IP, when should I use it?

  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.
  Raw IP has both advantages and disadvantages.  Advantages:

  o  No handshaking (= faster connections)

  o  Authorization by Caller ID (= fast, safe, no password)

  o  Fixed IP address (= a broken connection can be continued by
     redialing)

  o  Higher data transfer rates

  o  Better stability (smaller driver = almost no bugs)

     Disadvantages:

  o  No handshaking => Configuration must occur beforehand (IP
     addresses,...)  => sensible to use for only for one provider at a
     time

  o  Authorization only by Caller ID => Dialin only possible from one's
     own number

  o  Fixed IP address => must be known ahead of time, more IP addresses
     required, no dynamic assignment of addresses possible.

     From this summary it should be clear under what conditions it makes
     sense to use raw IP.




  15.  ttyI: Configuration of the ttyI* devices (`Modem emulation')




  15.1.  ttyI_nomodem: Don't the ttyI* devices emulate an analog modem?

  No! The ttyI* devices just offer a similar communication interface,
  where all commands are started with AT. This makes it easy to reuse
  software that was written to communicate with a modem. Communication
  with a remote analog modem is not possible via the ttyI* devices! The
  real communication happens in digital, not analog form.


  15.2.  ttyI_dev: Which devices should I use for calls out or calls in?

  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).


  15.3.  ttyI_hdlc: How to I switch the modem emulation from X.75 to
  HDLC?

  With the option S14=3; for example "ATS13=3".


  15.4.  ttyI_uucp: How can I poll with Taylor-UUCP using isdn4linux?

  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&Emsn/eaz".


  15.5.  ttyI_speed: What speed should I set for the ttyI* devices?

  It doesn't matter. The driver internally always uses the full speed
  that ISDN offers. This is also given in the connect string.




  15.6.  ttyI_nocarrier: When I dial with "ATD....." I always get a "NO
  CARRIER".

  Before dialing, you have to enter "AT&E123456" (if 123456 is your own
  MSN; with 1TR6 give the one-digit EAZ).



  15.7.  ttyI_noincall: My ttyI* device/pppd does not recognize an
  incoming call.

  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.


  15.8.  ttyI_callphone: Why can't I dial my telephone or fax from the
  ttyI* devices?

  You can. However, ISDN differentiates different services. All outgoing
  calls with the ttyI* devices use the service "Digital Data", which is
  incompatible with telephone or fax, so the call never gets through.
  Change the service recognition with the ATS18=1 command to audio, then
  you can dial your telephone or fax.




  15.9.  ttyI_noconnect: I can't get a connection to my ISDN mail-
  box/BBS.

  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&. Mostly used is
  a block size of 2048 byte: AT&B2048.


  15.10.  ttyI_forcehangup: My modem emulation hangs. How can I force my
  card to hang up?

  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 nor-
  mal modem).  Watch out for processes that (with "ps -ax") have some-
  thing like "I0" or "I1" in the second column, they have an ISDN termi-
  nal as their controlling terminal. You may have to kill them with
  kill.


  15.11.  ttyI_channelclosed: 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.

  Can happen when 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.


  15.12.  ttyI_uucp: When I use UUCP with X.75, I always get transfer
  errors!

  Andreas Gutzwiller andy@hippo.proxyon.imp.com wrote on 5 Dec 1996:

       I had to use the following settings, otherwise I only had
       errors.  # Prot protocol-parameter g packet-size 512 proto-
       col-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.


  Holger Burbach holly@cthulhu.pfalz.de on 5 Feb 1997 had another solu-
  tion:

       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 pro-
       tocol-parameter g remote-packet-size 0 As I said, it works
       fine..




  16.  dod: Unwanted dialout on demand

  16.1.  dod_how: How does dialout on demand work?

  After you habe set up a network interface, and defined a route to it,
  then all ip packages will be routed to this interface. If the autodial
  mode has been enabled (see question ``dialout_dialmode'' on the
  dialmodes) then the interface will automatically trigger a dialout
  when it receives ip packages. (This means that any user can trigger a
  dialout.)

  Example: You open a browser with no or a local homepage. Nothing
  happens. You enter some url to connect to, this will send ip packages
  to the network interface - thereby triggering a dialout.

  Using dial on demand is a potentially dangerous (means expensive)
  feature: see question ``dod_disaster''.


  16.2.  dod_disaster: What is a charge unit disaster?

  The charge unit disaster can happen for many reasons (see question
  ``dod_causes'' for more details). However the results are identical:
  your computer dials out to your Internet Provider more often than you
  want, thereby increasing your telephone bill by a large amount
  (especially when you are not only charged for time online, but also a
  minimum amount/charge unit for every dialin). The term 'large amount'
  is rather flexible. Anything is possible:

  o  "Cheap": any DNS request opens the line, causing several dialouts
     per day (depending on your programs). If this happens 10 times a
     day, this makes up about 300 unneeded dialouts per month.

  o  "Not so cheap": Some Windows 95 computer in your LAN triggers a
     dialout every 15 minutes for one of its silly broadcasts (see
     question ``dod_win95''). Makes up 96 dialouts per day, or 2880 per
     month.

  o  "Medium": Your email client is configured to check every 5 minutes
     whether you have new emails at your Internet Service Provider.
     Makes up 288 dialouts per day, 8640 per month.

  o  "Expensive": Keep alive packets prevent that your line ever hangs
     up.  Your line is always on. Note: THIS IS NOT THE WORST CASE!

  o  "More Expensive": Something goes wrong with dynamic addresses,
     leaving sockets open when hanging up. The sockets trigger another
     dialout when they try to resolve this, but since now you have a new
     ip address, the issue can't be resolved. The line will eventually
     hang up (when depends on your timeouts), but then re-open - since
     the sockets trigger another dialout.  If you are unlucky, you never
     get the same ip address back, so this repeats continuously. Your
     line is almost always on, but on top of it you have to pay for many
     dialouts: if your timeout is 30 seconds, this makes up 2880
     dialouts per day, 86400 per month.

  o  "Most Expensive - Worst Case": You misconfigure dialout/callback,
     so that when your (the initiating) computer dials out to your
     Internet Provider, who then hangs up on you (e.g. authorization
     failed - maybe he also has some misconfiguration or unhooks despite
     being down), your computer immediately dials out again. This is
     only limited by the amount of time needed to dial out. If we assume
     2 seconds for each attempt (conservative estimate), this makes up
     43200 dialouts per day, or 1296000 per month!


  This is no joke, and all these things have actually happened, even to
  real isdn4linux experts! See question ``dod_off'' on how to avoid any
  risk of this happening to you.


  16.3.  dod_causes: What can cause a charge unit disaster?

  There are many possibilities. See question ``dod_strategy'' on how to
  track down what is happening to you. See question ``dod_disaster'' on
  how expensive that could be. Here a non-comprehensive list of causes:

  1. You compiled your kernel with the option Bridging by mistake.

  2. ARP requests or broadcasts? You should run ifconfig with the
     options -arp and -broadcast to keep from opening connections in
     this way. You can recognize this one when you have a dialout, but
     no data is transferred.

  3. Other Broadcasts from the interfaces were being forwarded by ISDN.

  4. 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... This can only be
     avoided with the RST-Revoking patch, which has found its way into
     the 2.0.x kernels, but not into 2.1/2.2/2.3. However, you can get
     an adjusted patch for 2.2.x kernels and some background information
     about it from:  <http://www.another.de/linux/router/>. Make sure to
     use ipppd's "defaultroute" option rather than route add/del default
     in ip-up/ip-down with it.

  5. Requests from your local DNS trigger a dialout: see question
     ``dod_localdns''.

  6. Sendmail triggers the dialout: see question ``dod_sendmail''.

  7. Windows 95 clients trigger the dialout: see questions
     ``dod_win95'', ``dod_localdns'', and ``dod_win95b''.

  8. Samba triggers the dialout: see question ``dod_samba''.

  9. Netscape triggers a dialout when started: see question
     ``dod_netscape''.

  10.
     Manually close IP connections which are still open when the line
     goes down: see question ``dod_closeipconnect''.

  11.
     Your computer is crashed, but still processes interrupts: see
     question ``dod_onlineoncrash''.


  16.4.  dod_off: How can I safely turn off dialout on demand?


  1. To always dial out manually, set your dialmode to manual (see
     question ``dialout_dialmode'').  Then use isdnctrl dial <device> to
     dial out, and isdnctrl hangup <device> to hangup.

  2. Set your dialmode properly (see question ``dialout_dialmode''). For
     example, set dialmode to manual in ip-down. Then dialouts will only
     be possible once after setting dialmode to auto.

  3. Delete the telephone number of the interface, or set an invalid
     one.  Then you can see from the complaints in the syslog whether a
     process wants to send packets out to the world.

  4. Switch the system off.

  5. Delete your route to the ISDN device.  For example, to disable any
     automatic dialouts:

     ___________________________________________________________________
     /sbin/route del default
     /sbin/isdnctrl system off
     /sbin/ifconfig ippp0 down
     ___________________________________________________________________


  To get things running again:

  ______________________________________________________________________
  /sbin/isdnctrl system on
  /sbin/ifconfig ippp0 up
  /sbin/route add $GATE-IP dev ippp0
  /sbin/route add default ippp0
  ______________________________________________________________________


  The latter method has the disadvantage that dialin is then no longer
  possible.


  16.5.  dod_strategy: How can I track down unexplainable dialouts?

  Finding the reason of unexpected dialouts is the first step to
  stopping it.  However, finding is usually more difficult than fixing
  the problem. This is what you can do to track it down:

  o  First disconnect your dialout server from your LAN to find out who
     is responsible for the dialouts: the dialout server himself, or
     some clients in your LAN. For Windows clients, see question
     ``dod_winclient''.

  o  Try to find out which TCP/IP packet triggers the connection with
     "isdnctrl verbose 3". A message should appear in the kernel message
     queue (visible with dmesg), like: 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)
     - the port number can be looked up in /etc/services. Please note:
     only the triggering packet will be logged.

  o  If you are using ipppd: get a tcpdump which can show data with the
     syncPPP encapsulation (this may require a patch - see question
     ``trouble_tcpdump'').

  o  Try to turn off one daemon after the other and see if things have
     finally quieted down. named, sendmail, and also smbd (Samba) are
     likely candidates to open connections (see questions
     ``dod_localdns'', ``dod_sendmail'', ``dod_samba'').

  o  If broadcasts are your problem, you can also redirect the broadcast
     address to the dummy0 interface. It's not clean, but it works.


  16.6.  dod_winclient: Can it be that the Win95 machine on my LAN is
  causing automatic dialouts?


  Yes. When Windows 3.11/95 is started, then it tries to talks to the
  name server of your provider (if known), trying to look up some
  domains (e.g. WORKGROUP.xxx). To avoid this, these are your options:

  o  Switch off the feature Use DNS for Windows Names Resolution on all
     Windows computers on your LAN.

  o  Set up a local DNS name server such that it will answer all
     requests.  See question ``dod_localdns''.


  16.7.  dod_localdns: I have set up a local DNS name server. Why does
  it cause unwanted dialouts? How can I find the cause?

  Turn on debug level 1 in named and look at the logfile in /var/tmp.
  Often, you can find regular DNS requests from Windows machines.  The
  problem is that names like "WORKGROUP.domain.de" are requested, i.e.
  names that the DNS could not know. Windows seems to be looking for its
  master browser or a domain controller (if you are fluent in German,
  see ct 12/99, page 224: "Schnitzeljagd - Netzwerkumgebung und
  Browserdienst im Windows-Netzwerk" for more details). To work around
  this problem, you can set up your domain name server with cname =
  "WORKGROUP.domain.de" (other domain names are also possible). Or set
  up a Primary Domain Controller within your LAN. You can also use diald
  to control dialouts for DNS request.


  16.8.  dod_sendmail: How can I get sendmail to not initiate any con-
  nections without local mail being left undelivered?

  First you have to get sendmail to no long open any DNS connections.
  You need to activate the following features: "nodns", "nocanonify".

  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")

  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.

  Mail to expensive mailers will now only be send with the explicit call
  "sendmail -q".


  16.9.  dod_samba: The samba package always triggers dialouts for me.
  How can I prevent this?

  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.

  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.

  My internal Linux computer has, e.g.: 192.168.99.99

  My Win95 computer:        n           192.168.99.88

  On the Linux computer I started samba with:

  ______________________________________________________________________
  nmdb -S -B 192.168.99.255 -I 192.168.99.99
  ______________________________________________________________________


  See also the above question:  se -broadcast and possibly -arp when
  defining the interfaces!


  16.10.  dod_netscape: How can I get Netscape to quit initiating
  dialouts when starting?

  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.

  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:

       Unfortunately reality has caught up with us. I've heard that
       Netscape now in version.4.02 really does establish a connec-
       tion...



  16.11.  dod_closeipconnect: After closing the line, I discover with
  netstat -nt  that IP connections are still open. How can I close these
  manually?

  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.


  16.12.  dod_onlineoncrash: Is it possible that even with a crashed
  computer a ISDN connection remains open (and the charge units accumu-
  late)?

  The ISAC chipset, which is in use on many ISDN cards, can be run in
  either auto mode, or in non-auto mode. When run in auto mode, the
  connection could be up when the computer is crashed (the card keeps it
  up and running).  Since the HiSax driver uses nonauto mode, this
  should not happen with ISDN4LINUX. Once no interrupt is processed on
  your machine, the connection will stop at maximum half a minute later.
  Only in the unlikely event that your machine is crashed, while
  interrupts are still processed normally, this could happen.





  17.  chargeint: Chargeint



  17.1.  chargeint_whatis: What does Chargeint?

  Chargeint is a way to reduce your costs when you have charges based on
  your time online, and the interval between two charges (the Charge
  Interval) is relatively large (e.g. per minute).

  Chargeint only hangs up two seconds before the end of a charge unit.
  isdnlog can be used to set the length of the charge unit (i.e. Charge
  Interval) according to the time of day and the date.


  17.2.  chargeint_config: How should I configure Chargeint?

  You can set the length of a charge unit manually via the isdnctrl
  parameter chargeset, or set up isdnlog to do this automatically for
  you:

  1. Set up isdnlog, so that it has all the information about your
     location and your telephone company (so that it knows your rates).

  2. Start isdnlog with the options -h0 and -w.

  3. Set your huptimeout as you like (idle time needed before i4l will
     consider a hangup). E.g.:

     ___________________________________________________________________
     /sbin/isdnctrl huptimeout ippp0 5
     ___________________________________________________________________


  Then i4l will hang up 2 seconds before the end of your charge unit, if
  the 5 seconds before (huptimeout) no activity has happened on the
  line.


  17.3.  chargeint_whennot: When does it not  make sense to use the
  chargeint?


  1. It does not make sense to use Chargeint when you are charged per
     data volume, or per flat fee. Chargeint can only reduce your costs
     when you are charged per time online.

  2. Also it makes no sense if you are charged in small units (e.g. per
     second rather than per minute).

  3. Chargeint may or may not make sense when every new dialup costs you
     fixed amount on top of the variable charges (depending on the
     rates).

  4. There are problems when the ip address is assigned dynamically. 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.


  17.4.  chargeint_correcttime: How can I be sure that the chargeint
  patch is using the correct time?

  It's best to synchronize the clock in your own computer with that of
  the switching station by calling isdnlog with option -t2.





  17.5.  chargeint_nohangup: The connection doesn't end with timeout.

  Chargeint will only hangup if there was no activity on the line.
  Possibly your service provider uses a router (e.g. Cisco) which sends
  a "keep alive" packets every ten seconds. If the Cisco doesn't get an
  answer for its keep alive packets then it will stop routing. This
  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).

  It could also be that it's not the keep alive 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. You can configure
  "snapshot server" on the BRI interface. That means it will send out
  routing updates only when they are received through this interface.




  18.  2channel: Channel bundling (MPPP, raw bundling)

  18.1.  2channel_whatis: What is channel bundling and how can I use it?

  Channel bundling is currently supported by isdn4Linux in two
  variations:

  o  Raw Bundling (configuration of so-called slave channels)

  o  MPPP (based on syncPPP)

     Both variations have their own advantages and disadvantages. See
     the following questions.


  18.2.  2channel_raw: What is raw bundling?

  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.


  18.3.  2channel_rawconfig: How do I configure raw bundling?

  The master interface is created as usual with

  ______________________________________________________________________
  isdnctrl addif master interface
  ______________________________________________________________________


  and configured. For all required slave channels, slave interfaces are
  created with the command:

  ______________________________________________________________________
  isdnctrl addslave master interface slave interface
  ______________________________________________________________________


  and configured as usual (e.g. "isdnctrl sdelay slave interface
  delay").


  18.4.  2channel_rawgoodbad: What are the advantages and disadvantages
  of raw bundling?

  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.


  18.5.  2channel_mppp: What is MPPP?

  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. It's a variation of the normal
  syncPPP. Accordingly, it inherits all its advantages and
  disadvantages. Just for your information: ipppd does MPPP according to
  RFC 1717, instead of the newer RFC 1990 (MLP).

  In contrast to raw bundling only one net interface is needed as
  interface to the ipppd, since the ipppd handles all its channels by
  itself. Incoming data is distributed round-robin by the ipppd on all
  available channels.  These channels do not necessarily have to be ISDN
  channels. In theory, modem connections could be mixed with ISDN
  channels. However, here we only cover ISDN channels.


  18.6.  2channel_mpppconfig: How do I configure MPPP?

  First you define a (normal) interface for ipppd (e.g. "isdnctrl addif
  ippp0", etc). 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:

  ______________________________________________________________________
  isdnctrl addlink device
  ______________________________________________________________________


  and close them with the command:

  ______________________________________________________________________
  isdnctrl removelink ippp0
  ______________________________________________________________________


  This is different to other encapsulations of isdn4linux!

  Please also note, that the slave device has to be in dialmode auto for
  this to work.

  With syncPPP, there is no automatic activation of slave devices, they
  have to be added and removed. However, there is the program ibod
  available, which can do this automatically. Have a look at:
  <http://www.compound.se/ibod.html>

  In the file etc/rc.isdn.syncppp.MPPP in the isdn4k-utils package you
  can find a sample script (unfortunately missing in some i4l version).

  Please note that your Internet Provider has to allow you to make use
  of these features. Also, there may be a limit on how many channels you
  are allowed to open at the same time. It could be that all links are
  dropped when you exceed this limit.

  18.7.  2channel_mpppgoodbad: What are the advantages and disadvantages
  of MPPP?

  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).


  18.8.  2channel_mpppcompile: I tried MPPP but it doesn't work. The
  ipppd writes in the debug log something like: " ...  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 ..."

  You forgot to compile MPPP/RFC1717 support into the ISDN Subsystem.
  Recompile with this option enabled.




  19.  remote: Pecularities of the remote ISDN device

  19.1.  remote_win95: How do I configure Windows95 to dial successfully
  into my isdn4linux computer?

  Configure your dialout network like this:

  o  Type of server: PPP:Windows 95, Windows NT 3.5, Internet

  o  Extended options: unselect all options

  o  Network protocolls: only select TCP/IP

  o  Standard gateway

  o  Switch off IP header compression for the beginning (for more
     details on compression with ipppd see question
     ``syncppp_compression'').

  o  Remainder of TCP/IP stuff (ip address, nameserver,...) as applies
     to you.


  19.2.  remote_mac: I'd like to exchange data with a Macintosh
  (Leonardo card), what do I or the Mac user have to watch out for?

  Currently, the Leonardo protocol is not supported by i4l. 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.


  19.3.  remote_macpap: A Macintosh with a Leonardo card tries to call
  in, and wants to negotiate chap md5. How can I switch it to CHAP/PAP?

  You can't. The user 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.





  19.4.  remote_cisco: How does isdn4linux work with a Cisco (HDLC) on
  the other side?

  On the Cisco router the "keep alive" packets have to be turned off.
  isdn4linux has to be configured with HDLC, transparent, with Cisco
  encapsulation:

  ______________________________________________________________________
  isdnctrl l2_prot <interface> hdlc
  isdnctrl l3_prot <interface> trans
  isdnctrl encap <interface> cisco-h
  ______________________________________________________________________




  19.5.  remote_ispa: What settings does ISPA etc. (DOS, Windows) need
  to work with the standard settings of isdn4linux?

  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
   <http://www.informatik.uni-bremen.de/~henker/dank>

  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         /
  ----------------------------------------------------


  The parameter with the least problems is -h0.



  20.  leased: Leased lines

  20.1.  leased_nosignal: How does establishing and ending a connection
  work with D64S without signaling?

  The data are simply sent out! Other than a ping, there is no way to
  find out whether the D64S or 2MB line is up or not. 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 (i4l can only to 128kb).


  20.2.  leased_hisaxconfig: With i4l, how do I configure my card on a
  D64 leased line?

  A later version of the new HiSax driver supports D64. Configuration is
  normal with the following specialities. HiSax has to be run in leased
  mode:
  ______________________________________________________________________
  /sbin/hisaxctrl HiSax 5 <channel>
  ______________________________________________________________________


  in case HiSax was loaded with "id=HiSax", where <channel> can be 0 or
  1. Additionally to the normal configuration, the following commands
  are important:

  ______________________________________________________________________
  /sbin/isdnctrl bind HiSax,<channel>/sbin/isdnctrl eaz isdn0 1
  /sbin/isdnctrl addphone isdn0 out 2
  /sbin/isdnctrl addphone isdn0 in  3
  ______________________________________________________________________


  if "isdn0" was used as interface name. The interface has to be set to
  "up" and a route associated with it. See the Readme's in the HiSax
  package.


  20.3.  leased_x75: How do I configure X.75 on a D64 leased line?

  Use a later HiSax version. First initialize the ttyI* device you want
  to use with "AT&E0" (set usage of first B-channel) and "ATS0=1"
  (autoanswer on first ring). Then set HiSax in leased mode:

  ______________________________________________________________________
  /sbin/hisaxctrl HiSax 5 <channel>
  ______________________________________________________________________


  This will simulate a call for MSN1 on the configured channel (0 or 1)
  (incoming number = LEASED0).


  20.4.  leased_splitline: With ISDN, can I use one channel as a leased
  line and other as a dialup line?

  Yes, you can. But you have to make sure that you use the correct
  channel!




  21.  dialin: Configuration of a Dial-In Server

  21.1.  dialin_config: How can I enable others to login via ISDN?

  Some configuration examples can be found at: <http://www.rosat.mpe-
  garching.mpg.de/~web/ISDN.html>.  In general, there are several ways,
  depending on how you want others to dial in.

  o  Set up networking devices for dialin via syncppp, or rawip. Set
     option secure on to only allow dialin by isdn numbers you know,
     which you set up with isdnctrl addphone <device> in <phonenumber>.

  o  Use the ttyI* devices for asyncppp or X.75.

     Here some more details for setting up the ttyI* devices. The setup
     is like for a serial port.  Start a getty (mgetty from Gert Doering
     is highly recommended) on one of the ISDN devices (/dev/ttyI*). The
     entry in /etc/inittab looks like this:



     ___________________________________________________________________
     I0:56:respawn:/usr/local/sbin/mgetty ttyI0
     I1:56:respawn:/usr/local/sbin/mgetty ttyI1
     ___________________________________________________________________


  The init string needs to be entered in the mgetty.config, since mgetty
  needs to know which MSN or EAZ to listen to. For example, if your MSN
  is 123456:

  ______________________________________________________________________
  port ttyI0
  modem-type data
  speed 38400
  init-chat "" ATZ OK AT&E123456 OK AT&B512 OK
  ______________________________________________________________________


  For X.75 the block size was set to 512 bytes.  Alternatively you can
  enter the entire configuration onto a single line in /etc/inittab
  (here printed on two lines!):

  ______________________________________________________________________
  i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E123456 OK
  AT&B512 OK' -s 38400 ttyI0
  ______________________________________________________________________


  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 neces-
  sary AT command 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.


  21.2.  dialin_manyparallel: How can I allow several people to call in
  to me at the same time?

  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.


  21.3.  dialin_hdlc: Someone would like to dial in to my mgetty with
  HDLC. Is ttyI1 correct, or do I have to start with ttyI0?

  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).


  21.4.  dialin_autoppp: Is it possible with mgetty to automatically
  start pppd when LCP frames are received?

  Yes, it is. This feature is called `AutoPPP'. See the configuration
  for mgetty.




  21.5.  dialin_passwd: How can I have (i)pppd check passwords from
  /etc/passwd instead of /etc/ppp/pap-secrets when someone dials in?

  ipppd needs to be started with the options "login" and "auth". In
  /etc/ppp/pap-secrets, each user must have the following line to allow
  only certain users:

  ______________________________________________________________________
  login-name * "" *
  ______________________________________________________________________


  To allow all users simply:

  ______________________________________________________________________
  * * "" *
  ______________________________________________________________________


  The latter can also be achieved when the file pap-secrets does not
  exist.


  21.6.  dialin_ignored: I keep getting the message "isdn_tty: call from
  XXX - YYY ignored". Why does isdn4linux (syncPPP) ignore this dialin
  attempt?

  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".


  21.7.  dialin_async: A SunISDN tries to dial into my i4l system.

  The Sun tries to communicate with asyncPPP. ipppd can't handle this,
  you have to use the ttyI* devices and the standard pppd.





  22.  callback: Callback

  22.1.  callback_delay: 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.

  Most problems with callback can be solved by adjusting the callback
  delay with isdnctrl cbdelay. One second has been successful in many
  cases.


  22.2.  callback_cisco: Somehow i4l can not callback a Cisco?

  Torsten Hentschel Torsten.Hentschel@DInet.de wrote on 3 Oct 1996:

       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 call-
  back. 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).


  Torsten Hentschel Torsten.Hentschel@DInet.de additionally wrote on 20.
  Nov 1996:

       I've often tried callback over PPP with two CISCOs. From my
       experience, trials in the combination CISCO - Linux will not
       be successful.  A CISCO always handshakes a callback request
       via PPP. To do this, the other side has to first unhook and
       then do all the handshaking (authentication,...). Then both
       hang up and the callback is placed.  isdnctrl commands of
       Linux influence only the kernels net devices and have no or
       hardly any influence on how the ipppd handles callbacks.  He
       does not recognize that he is supposed to expect that the
       remote side calls back.  Accordingly he rejects the offer of
       the CISCO via PPP, that the CISCO is ready to call back.
       Then the CISCO assumes that it should not call back (it
       wants to see an explicit callback request during the PPP
       handshaking).  The CISCO will confirm this when you log onto
       it and check with these commands: deb ppp chap deb ppp nego-
       tiotion deb ppp error term mon its debug messages about the
       dial in trials of your Linux computer.  You have to do this
       via telnet instead of on the console - otherwise the CISCO
       won't be able to handle the logging via the serial inter-
       face.



  22.3.  callback_ascend: 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.

  Ulrich Klein ulik@hprc.tandem.com wrote on 14 Dec 1996:

  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.


  22.4.  callback_banzai: How can I callback a Banzai!?

  Jan-Olaf Droese jano@layla.RoBIN.de wrote on 31 Jan 1997:

  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:

  ______________________________________________________________________
  isdnctrl callback isdn0 in
  isdnctrl cbdelay isdn0 1
  ______________________________________________________________________






  23.  isdnlog: Isdnlog

  23.1.  isdnlog_rates: Where do I get the latest rate information?

  You get the latest rate files (which change very frequently) on
   <http://www.digitalprojects.com/rates>.


  23.2.  isdnlog_servicetype: Can I see the service type from an incom-
  ing call in the output from isdnrep?

  Andreas Kool akool@Kool.f.EUnet.de wrote on 3 Dec 1996:

  Indirectly in isdnrep, yes -- as soon as you enter an alias for the
  decoded service types in your "isdnlog.conf" ...


  23.3.  isdnlog_callerid1: Why don't I always receive from the German
  Telekom the number of a caller ("Caller ID")?

  For data privacy reasons, telephone numbers from the analog network
  are not transmitted unless the caller has explicitly allowed the
  Telekom to do so (costs nothing).

  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
  very 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.


  23.4.  isdnlog_callerid2: Do I receive the Caller ID from foreign
  calls (German Telekom)?

  Yes, with calls from countries that don't view Caller ID quite as
  strictly as does Germany (e.g. USA, Canada).


  23.5.  isdnlog_spoofcallerid: I've heard that actually two Caller IDs
  are transmitted?

  That's right, there's one that is "User-Provided, not screened", and
  the other is "Network-Provided" (from the telephone company). As the
  name says, the first one is provided by the user, whereas the second
  one is transmitted by the network.  Providing a caller ID is only
  possible for a PBX connected in Point-to-point configuration with the
  feature "CLIP no screening".





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

  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@isdn4linux.de wrote on
  12 Feb 1997:

       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.


  See the next questions for a possible solution.


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

  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.

  Alternatively, isdnlog offers the possibility to work with a second
  "re-poled" ISDN card. "re-poled" means that 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, this ISDN card
  cannot be used for anything else. The whole thing looks something like
  this:

        3 -- RX+ 2a ---------------\
  ISDN  4 -- TX+ 1a -- open         ------------  ISDN
  bus   5 -- TX- 1b -- open         ------------  card
        6 -- RX- 2b ---------------/


  Please note that this only works when the second card is an ISAC based
  cards (e.g. old Teles cards, Fritz! classic), since it requires a spe-
  cial bug/feature of that chip. All other cards, like IPAC based cards
  (e.g. ELSA QS1000pro) will not work in the role of a re-poled card.
  HFC-PCI based cards allow a special feature where one of the B chan-
  nels can be sacrificed in exchange for reading the complete D channel
  protocol - with just one single card. This is also supported by
  ISDN4LINUX.

  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 (usually over a serial port).

  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 welcome
  (I'll make the logs from my Ackermann Euracom available - Matthias
  Hessler hessler@wi-inf.uni-essen.de).

  23.8.  isdnlog_rategraphic: How can I display the data transfer rates
  graphically?

  You can use "xisdnload". Clemens Perz listperz@gwsnet.ttt.de on 6 Feb
  1997 knew of another possibility:

  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:

   <ftp://ftp.region.trier.de/pub/unix/linux/sources/network/isdn/netload-0.92.isdn.tar.gz>

  Simply start with netload isdnxx.


  23.9.  isdnlog_2callerid: Isdnlog (=2.52) shows for a caller two
  telephone numbers! Which one is correct?

  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?".

  Andreas Kool akool@Kool.f.EUnet.de wrote on 26 Jan 1997:

  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. 'CLIP, no screening' was actually
  designed for transmitting internal company numbers in the public
  network.


  23.10.  isdnlog_soundbusy: 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

  Only one process at a time can access the sound device. You need an
  upper instance that coordinates access to the sound device. NAS
  (network audio system), and rplay can be used for this.


  23.11.  isdnlog_noshell: 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() ?

  Because isdnlog is not a (Bourne) shell ;-) Isdnlog can only start
  real programs. Just write a little script for it and make it
  executable (chmod +x):

  ______________________________________________________________________
  #!/bin/sh
  /usr/local/bin/play anruf.au 2/dev/null
  ______________________________________________________________________




  23.12.  isdnlog_blankscreen: When dialing out, the screen goes momen-
  tarily black?

  This may happen when you start isdnlog with the options -t 1 or -t 2,
  then the time is synchronized with the digital switching station. The
  screen saver thinks that more than x minutes have passed, which causes
  a short blackout of the screen.

  24.  audio: Handling Voice with ISDN

  (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:

   <http://www.lrz-muenchen.de/~ui161ab/www/isdn/>

  - click on "Audio!" (still in German we're afraid - sorry...)  They
  are currently outdated, but may give you a few hints?


  24.1.  audio_format: What is the format of the audio messages (.msg)
  vbox plays when it answers a call?

  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)



  24.2.  audio_recordmsg: How can I record my own messages for
  vboxgetty?

  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.


  24.3.  audio_play: How can I play audio messages locally using
  /dev/audio?

  This is best achieved with vbox using format 6 (uLaw - must be
  compiled in). You can then easily play the messages using:

  ______________________________________________________________________
  cat xxx  /dev/audio
  ______________________________________________________________________


  where xxx is the message-file.


  24.4.  audio_convertto: How can I convert audio messages which where
  recorded by vbox to other formats (i.e. from uLaw to WAV)?

  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:

   <http://www.powerweb.de/mpeg/util/msdos/sox10c.zip>

  (including sources that compile under Linux).


  24.5.  audio_convertfrom: How can I format WAV for uLaw (for my vbox
  announcement message)?

  We receive the following tip form Christian Stueble
  stueble@ls6.informatik.uni-dortmund.de on 15 Jan 1997:

  For me, the following (somewhat indirect) method works:


  ______________________________________________________________________
  sox file.wav -r 8000 file.ul rate
  rmdcatheader -u file.ul  file.msg
  cat file.ul  file.msg
  ______________________________________________________________________


  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.




  24.6.  audio_noanswer: My vboxgetty does not answer any incoming
  calls.

  vboxgetty needs ".vboxrc" in the home directory of the user for which
  vboxgetty is configured. The number of rings is taken from this file.


  24.7.  audio_nocat: 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?

  Vboxgetty can play all formats. You can 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 :-) ). See question
  ``audio_recordmsg''.


  24.8.  audio_earlyrecording: At the beginning of a message recorded by
  vboxgetty, there's often a part of my own announcement?

  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.




  25.  Supported Countries

  25.1.  country_which: In which countries does isdn4linux work?

  We are aware of at least the following countries:

  o  Austria

  o  Australia

  o  Belgium

  o  Denmark

  o  Finland

  o  France

  o  Germany

  o  Ireland

  o  Israel

  o  Italy

  o  Norway

  o  Peru

  o  Portugal

  o  Singapore

  o  Spain

  o  Sweden

  o  Switzerland

  o  The Netherlands

  o  United Kingdom

  o  USA

     If your country is not on this list does not mean it is not
     supported. It just means we have not seen a confirmation about its
     usage there. Check the mailing list for other users from your
     country.


  25.2.  country_certified: Is isdn4linux approved for use by the
  telecommunications authorities?

  That depends on the driver used, and your country. We only have
  information about Germany (send me information if you have information
  about other countries). However, that covers most other European
  countries as well, since a certification in one EC country has to be
  accepted in all others.  These drivers are certified for use in
  Germany:

  o  Active cards: the approval covers the entire card including its
     firmware. Thus the approval also covers the use of these cards with
     isdn4linux.

  o  Elsa Quickstep series cards (new name Microlink PCI)

  o  Eicon Diva 2.01 PCI


  26.  1tr6: German Pecularities for 1TR6

  26.1.  1tr6_eaz: Which EAZ should I use for i4l?

  You can use all available EAZ. However, two EAZ have a special meaning
  and can cause problems:

  EAZ 0: global call (all telephones ring)
  EAZ 9: global call (no telephone rings)


  Gernot Zander hifi@scorpio.in-berlin.de wrote about this on 6. Jan
  1997:

       I would not use 0, for my taste it is too likely that i4l
       will steal all voice connections.



  26.2.  1tr6_extension: I use 1TR6 on an extension - the extension num-
  ber has more than one digit (e.g. 206). What is my EAZ?

  Jens Ey jens@jeyhh.shnet.org wrote on 10 Jan 1997:

  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'.


  26.3.  1tr6_spv: What is a SPV?

  SPV stands for "semipermanente Verbindung" (semipermanent connection)
  and is a (soon to be obsolete) speciality 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.

  This SPV is not to be confused with the Austrian understanding of SPV.
  The Austrian `SPV' has one channel leased line, and one channel for
  dialing.


  26.4.  1tr6_spvavailable: How long will there still be SPVs?

  Steffen Sledz sledz@dgroup.de wrote on 5 Dec 1996:

       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


   <http://www.birch.de> (who is suing).


  26.5.  1tr6_spv: Does isdn4linux support SPVs? How?

  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.



  27.  Other countries

  27.1.  country_austria: Austria: We have neither an MSN nor an EAZ,
  only a normal plain telephone number. What do we have to use for i4l?

  In Austria ISDN lines are by standard installed without 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). The same applies to the setup of your getty.

  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.





  27.2.  country_france: France: How does our MSN look like?

  If you don't have MSN, you need to specify as local number only the
  last 4 digits of you phone number. A good thing is that you can also
  use sub-addressing. If your phone number is 01 41 33 67 87, and you
  want to use sub-address 02, then configure the local phone number of
  the HiSax driver as 6787.02 .


  27.3.  country_italy: Italy: What does our MSN look like?

  isdn4linux also works in Italy (ICN card). 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.


  27.4.  country_netherland: Netherlands: What does our MSN look like?

  In The Netherlands the MSN includes (as opposed to the German Telekom)
  also the area code - but without the leading zero.


  27.5.  country_northamerica: North America: Can we use isdn4linux in
  North America?

  Unfortunately, European ISDN cards can not be used in North America.
  In Europe, the telephone company normally makes the network terminator
  (NTBA) available. In North America the customer has to supply such a
  device(NT-1) himself! Therefore, most ISDN cards offer an integrated
  NT-1.

  There are also other differences; e.g. in Europe a PRI (Primary Rate
  Interface) has 30 B channels, in North America only 23. Also the C
  channel protocol NI-1 is used. NI-1 is related to DSS1 (both are Q.931
  Protocols), but both have totally different groups of functions and
  are therefore not compatible to one other.

  However, the firm "Spellcaster" has written an isdn4linux driver for
  its own (active) cards. More information is available from:

  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>


  27.6.  country_portugal: Portugal: What should we use as MSN?

  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.




  27.7.  country_switherland: Switzerland: We have neither an MSN nor an
  EAZ, just a plain telephone number. What do we have to use for i4l?

  In Switzerland you have to use the last digit of your telephone number
  as your MSN/EAZ ("6" if you have the telephone number "123456").


  27.8.  country_uk: UK: What should we use as MSN?

  It depends on your ISDN option.

  o  ISDN: Does not allow normal MSNs in UK. Each MSN is actually a
     single digit, 0 - 9, corresponding to the last digit of the actual
     phone number.  You either have *no* MSNs (then configure isdn4linux
     to use '0' as MSN), or 10 MSNs; you then always get a block of 10
     sequential telephone numbers (xxx0-xxx9), of which the last digit
     (0-9) is your MSN (0 is used in case you use an invalid number).

  o  ISDN2e: Seems to be normal EuroISDN. You are assigned MSNs which
     you can use and configure for isdn4linux (?).

  o  BTHH (BT HomeHighway): additionally to 2 ISDN ports it includes two
     analog lines with separate telephone number - but calls to and fro
     for those won't be signalled on the ISDN line, even so they use up
     a B-channel.  Additional MSN are NOT available (therefore use '0'
     as MSN to configure isdn4linux). Charge info is possible for extra
     cost. Configure isdn4linux only with your 'digital number' as MSN.

  o  BTBH (BT BusinessHighway): The additional paperwork including a
     credit-check enables you to get MSNs and other extras for extra
     cost.  Otherwise pretty much like BTHH. Configure isdn4linux to use
     your 'digital number' and/or your MSNs.

     Please note that BT offers an unexpected special "feature" on
     international calls. For international data calls you have to dial
     000<country_code> (three zeros), rather than the 00<country_code>
     (two zeros) for international voice calls.

  By the way: for a BT Speedway card try to select AVM Fritz card
  (either ISA or PCI - depends on what you got).


  28.  misc: Miscellaneous

  28.1.  misc_ntbadip: Where can I find information on the dip switches
  of my German NTBA?

   <ftp://novix.oih.rwth-aachen.de/pub/ntba.zip> (ca. 170kB)


  28.2.  misc_nonullcable: Can I connect two ISDN devices directly with
  a kind of "null modem cable"?

  No, that's not possible. The concept of ISDN doesn't allow it. A NTBA
  or a PBX with an internal bus is required.


  28.3.  misc_uisdn: Can isdn4linux run in parallel to UISDN?

  Yes. 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.


  29.  glossary: ISDN specific words which are used in this FAQ


     active card

        Cards can come in different versions: passive, semi-active,
        active.  Active cards handle the D-channel and B-channel
        protocol in their hardware.  The extra hardware makes them more
        expensive, but better suited to use where a low CPU usage is
        needed (e.g. when having many ISDN cards in one computer).
        Because of their special hardware, a special driver is required.
        Depending on the hardware/driver, special tasks like
        sending/receiving analog G3 faxes may be very easy to implement
        - if you need these features, get one of them.


     AOC-D
        "Advice Of Charge During the Call".


     AOC-E
        "Advice of Charge at the End of the Call". In Germany, this
        service is included in the "Komfort" connection.


     BRI
        BRI means basic rate interface and is the most commonly used
        interface.  In Europe, a BRI includes 2 B-channels for data
        communication, and 1 D-channel for administration of the data
        communication. The alternative is a PRI interface.


     CLIR
        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 transmission of the caller ID costs extra).


     COLP
        COLP (Connected Line Identification Presentation) can also be
        offered by the ISDN provider. If you've applied for COLP, you
        get an extended dialing protocol. You will receive feedback from
        your telecommunication company who picked up your outgoing call.
        In Germany, it must be applied for, and costs extra. More
        information than COLP can be obtained with the help of a
        reverse-connected ISDN card.


     CVS Tree
        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.


     EAZ
        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).



     HDLC
        A widely used low-level protocol.


     HSCX
        A Siemens chip which is, similar to ISAC, 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.


     ISAC
        A Siemens chip which is, similar to HSCX, on many passive cards.
        It 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.


     MSN
        Unlike a normal telephone connection, an ISDN connection can
        have more than one telephone number - each of these is called an
        MSN (Multiple Subscriber Number).


     passive card

        Cards can come in different versions: passive, semi-active,
        active.  Passive cards handle the D-channel and B-channel
        protocol in software.  This makes them least expensive, but only
        suitable where the CPU is able to do the additional work (for
        normal data communication any computer starting from a 486 or
        even a 386 should be able to handle one or two cards).  Since
        only a few hardware chips are in wide usage, a generic driver,
        HiSax, can handle almost all passive cards.


     PBX
        A PBX (Private Branch eXchange) 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. This allows for local calls
        without using the switching station (thereby avoiding the
        charges from your telephone company).


     PRI
        PRI means primary rate interface and is the used when a single
        or multiple BRI are not sufficient in bandwidth. In Europe, a
        PRI includes 32 B-channels for data communication, and 1 D-
        channel for administration of the data communication.


     semi-active card

        Cards can come in different versions: passive, semi-active,
        active.  For semi-active cards there is no fixed definition, so
        here is what we think: semi-active cards handle the B-channel
        protocol in their hardware with special DSP (digital signal
        processor) support, but they leave the D-channel protocol to the
        software. This makes them better suitable to special tasks like
        sending/receiving analog G3 faxes. Because of their special
        hardware, a special driver is required. Be aware, that for
        marketing reasons some cards are called semi-active when in fact
        they are passive (e.g.: Teleint).
     subaddressing
        When dialing, it is possible to provide an additional number,
        the subaddresss.  The subaddress is transmitted to the remote
        side, and allows it to react on it.  This feature may not be
        available, at least not for free (with the exception of France).


     TEI
        TEI stands for Terminal End Identifier. 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 point to point
        connections) 64-126 = automatically assigned 127 = broadcast to
        all devices (e.g. an incoming call)


     UUS
        UUS is user to user signalling. It means, that when placing a
        call, a few bytes of user-specific data can be transmitted along
        with the call setup frame. This feature has been abused in the
        past in Germany, causing the local exchanges to run out of
        available channels (the call setup causes them to reserve a B-
        channel). Since then, this feature usually costs extra and there
        is a data limit on it (depends on your ISDN provider). Have a
        look at the usage condition, in short it's only allowed to use
        this feature, if indeed you want to setup a call. Please note
        that it has been reported that some buggy PBX (like ISTEC 1003)
        may refuse a connection when support of UUS is signalled to
        them.




































