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


FAQ for isdn4linux - Version 1.3.2
(translation 3-Oct-97)

1 General information about isdn4linux

  1. What is isdn4linux?
  2. What can isdn4linux do?
  3. What can't isdn4linux do (yet)?
  4. Can I use isdn4linux in North America?
  5. What do I need for isdn4linux?
  6. How can I get isdn4linux?
  7. What documents should I read first?
  8. What helpful links are there about isdn4linux?
  9. Is there a mailing list for isdn4linux?
  10. How can I have myself removed from the mailing list?
  11. Is the mailing list mirrored to a newsgroup?
  12. Is there an archive of the isdn4linux mailing list?
  13. In which countries does isdn4linux work?
  14. Is isdn4linux approved for use by the telecommunications authorities?
  15. What is the most recent version?
  16. What hardware is NOT supported?
  17. Does isdn4linux support external terminal adapters?
  18. Which internal cards are supported?
  19. What is the new HiSax driver all about?
  20. What about the active AVM B1?
  21. Now that my AVM produces so many interrupts with the HiSax driver, which is the best passive card to use with HiSax?
  22. Does isdn4linux support external ISDN adapters?
  23. Which ISDN modes are supported?
  24. Does isdn4linux support channel bundling?
  25. What is the difference between an active and a passive ISDN card?
  26. Are there sites that offer guest access where I can test my isdn4linux setup?
  27. Can I combine isdn4linux with diald?
  28. Can I use isdn4linux as an answering machine?
  29. Can I fax with isdn4linux?
  30. Is videotex/Btx/Datex-J possible with isdn4linux?
  31. Can I connect to Compuserve with isdn4linux?
  32. Which ISDN features can not be offered by isdn4linux?
  33. I'd like to write a new hardware driver. Where can I find a description of the interfaces to the link level module?
  34. How can I access the source from the current development/what is the CVS tree all about?
  35. Can I use isdn4linux under dosemu?
  36. Is there a working ISDN card for a DEC Alpha with Linux?
  37. Can isdn4linux run in parallel to UISDN?
  38. What are AOC-x, CLIR, COLP, CVS, HDLC, HSCX, ISAC, TEI...?

2 Configuration

2.1 General

  1. Where can I find scripts and other information on configuring i4l?
  2. How many ISDN cards can I stuff into my computer?
  3. Do I need a DOS setup program to setup my Teles card?
  4. Does the driver support "dial on demand"?
  5. Does isdn4linux support PNP (Plug and Play)?
  6. Is there a trick to sometimes boot Linux with ISDN and sometimes without?
  7. Is it possible to initiate call forwarding with i4l?
  8. Has anybody routed ipx/spx over ISDN with Linux?
  9. Can I use kerneld to load the ISDN modules in the kernel as needed?
  10. How can I get a tcpdump patched for ISDN?
  11. How can I set up user permissions for the use of ISDN?

2.2 MSN

  1. What is an MSN?
  2. What is an EAZ?
  3. How many MSNs do I need if I want to do the following: * Telephone * Analogue modem (used for data, fax or voice mailbox) * Dialin for X.75 (modem emulation) * Dialin for syncPPP
  4. What is my MSN?
  5. How do I tell the modem emulation what my MSN is?
  6. How do I configure my MSN using syncPPP?
  7. Where should I configure my own MSN in order to test syncPPP by calling myself?
  8. How can I find out how my telephone number is transmitted to the calling party?
  9. Can I do the following on *THE SAME* MSN: - Telephony (voice) - VBOX (voice, of course) - X.75 login (mgetty, /dev/ttyI?) - IP interface for IP connections to other computers?
  10. How can I minimize the number of MSNs needed for dialin?
  11. How do I set the MSN in a Cisco?
  12. Why don't I always receive from the German Telekom the number of a caller ("Caller ID")?
  13. Do I receive the Caller ID from foreign calls (German Telekom)?
  14. I've heard that actually two Caller IDs are transmitted?

2.3 Teles driver

  1. I use SETUP.EXE under DOS, to configure my Teles/Creatix with memory xxxxx and IRQ yy. How do I do this under isdn4linux?
  2. I'm confused: according to the documentation, my Teles card is configured for IO address 0x180. In Linux (and also in some Windows programs) the address is shown as 0xd80?
  3. When compiling the Teles driver I get an error similar to: too many arguments to function '_get_free_pages_R5243d78b'?
  4. I'm using kernel 1.3.x, the Teles driver compiles fine, all the correct parameters are set in config.c, but the card still won't work.
  5. Is it possible to have more than 1 Teles card in one computer?
  6. How can I tell whether or not my Teles card is recognized correctly?
  7. Where can I send complaints to Teles?

2.4 HiSax driver

  1. Where can I find the HiSax driver?
  2. Which version is current?
  3. How is HiSax better as the original Teles driver?
  4. How do I install HiSax?
  5. Are there patches to the HiSax driver?
  6. What does the remark: "Known Bugs: incoming calls are only delivered, if channel == B-channel (same on teles)" mean?
  7. My ELSA card has 2 LEDs that light up like a neon sign. What does that mean?

2.5 ICN driver

  1. Where can I buy the ICN card?
  2. Where can I get the newest firmware for my ICN?
  3. Is it possible to use several ICN cards in one computer?
  4. My ICN 4B is recognized only as an ICN 2B. How is the syntax for loading icn.o with insmod for the ICN 4B?
  5. What is "lanx75i.bin" in the ICN directory?

2.6 Working together with other ISDN devices

  1. What settings does ISPA etc. (DOS, Windows) need to work with the standard settings of isdn4linux?
  2. What do I have to watch out for to connect to Windows95?
  3. Can use only syncPPP with Windows95 to connect to isdn4linux?
  4. A Windows95 user with a Fritz! Card poor transfer rates when connected with isdn4linux - what can one do?
  5. Where in Windows95 can I find the settings to get a terminal window when I log in?
  6. I'd like to exchange data with a Macintosh (Leonardo card), what do I or the Mac user have to watch out for?
  7. A Macintosh with a Leonardo card tries to call in , and wants to negotiate chap md5. How can I switch it to CHAP/PAP?
  8. How does isdn4linux work with a Cisco (HDLC) on the other side
  9. My Cisco has a Bug - which IOS is recommended?
  10. When I call in to an ASCEND, does it cost a charge unit even if I get a "BUSY"?
  11. Is there a mailing list about Ascend?
  12. How do I switch on Raw IP on the Ascend Max with Radius?
  13. How do I switch on "uihdlc" encapsulation on the Max (an Ascend) with Radius ?
  14. What settings does an ELink need to work with isdn4linux?
  15. I can I use Internet with the German T-Online with i4l?
  16. I've set up an Internet connection over T-Online as described in the groups, but the chat script fails ("Connect script failed").

2.7 Raw IP

  1. What is Raw IP?
  2. What are the advantages and disadvantages of Raw IP?
  3. How can I run a script when a raw IP connection is established?

2.8 Modem emulation (use with ttyI* devices)

  1. Does modem emulation mean that I can toss out my analog modem?
  2. Which device should I use for calls out or calls in?
  3. How to I switch the modem emulation from X.75 to HDLC?
  4. How can I poll with Taylor-UUCP using isdn4linux?
  5. What speed should I set for the modem emulation?
  6. Is 'init-chat "" ATZ OK AT&E4 OK ATS14=3 OK' correct for 1TR6 (the other side has DSS1)?
  7. Was does the register S13 exactly mean?

2.9 Async PPP

  1. pppd, ipppd, async PPP, sync PPP - what are they? Which should I use?
  2. I would like to use asynchronous PPP. Can I use the network interface from isdn4linux?
  3. How can I reduce the login time?
  4. How can I increase my transfer rates with PPP?

2.10 Sync PPP

  1. pppd, ipppd, syncPPP, asyncPPP .. what is they? What should I use?
  2. How do I compile isdn4linux with syncPPP?
  3. How does use isdn4linux with syncPPP?
  4. How should I name my network interface?
  5. How do I configure a PPP connection with ipppd?
  6. How do I get ipppd to open a PPP connection?
  7. How can I tell if a connection is unsuccessful (busy)?
  8. Where can I find the latest version of ipppd?
  9. How can I use more than one ippp* device?
  10. 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.
  11. How does the (little-documented) "pppbind" command in isdnctrl work?
  12. I want to use dynamic IP address assignment. How must I configure the network device?
  13. According to the manpage, ipppd offers the option "dns-addr". But my ipppd refuses to take this option!
  14. How can I do IPX over ipppd?
  15. How can I reduce login delay?
  16. How can I increase my PPP data transfer rates?

2.11 ISDN4Linux in a network

  1. I've successfully used the Internet with my Linux system using isdn4linux. Now I'd like to have another computer on my Ethernet profit from the Internet as well. But how?
  2. How does this fourth possibility work, Linux + Masquerading?
  3. I have a local area network, (LAN) with computers based on several platforms - Win95, Win311, NT, Amiga (AmiTCP) and Macintosh (MacTCP) - all connected to the outside world through a Linux router. The Linux machine has an ISDN card. My ISP provides me with a dynamic IP address each time I log in. I want all the computers to reach the INTERNET not just the Linux box. How can I do this?
  4. How can I allow the users in my local network to use the ISDN card(s) in my Linux PC?
  5. Where can I find "modemd", and for which platforms are there "clients"?
  6. Where can I find COMt?
  7. How exactly does this "PERL one-liner" "modemd" look?

2.12 Isdnlog

  1. isdnlog doesn't always show the High Layer Compatibility (Speech, Video,...) as I'd like it to.
  2. Can I see the service type from an incoming call in the output from isdnrep?
  3. Why doesn't isdnlog record the number dialed by my other ISDN devices, since it records the charges?
  4. How can I get isdnlog to also show the telephone numbers for other ISDN devices?
  5. Does isdnlog also calculate the new pricing plans of the German Telecom (City Weekend, City Plus)?
  6. How can I get isdnlog to calculate the charges for the Dutch telephone company?
  7. How can I get isdnlog to calculate the charges for the Swiss telephone company?
  8. How can I display the data transfer rates graphically?

2.13 Isdnbutton

  1. What script should I use to bring down isdnbutton?
  2. What do the different states of isdnbutton mean (green, yellow, red)?

2.14 Audio

  1. What is the format of the audio messages (.msg) vbox plays when it answers a call?
  2. How can I record my own messages for vboxgetty?
  3. How can I play audio messages locally using /dev/audio?
  4. 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?
  5. How can I convert audio messages which where recorded by vbox to other formats (i.e. from uLaw to WAV)?
  6. How can I format WAV for uLaw (for my vbox announcement message)?

2.15 Diald

  1. How can I combine i4l with diald?
  2. Are there any example scripts for diald?

2.16 Chargeint

  1. How can I use the "chargeint" patch, so i4l will hang up before the next charge unit begins?
  2. With which drivers can I use the chargeint patch?
  3. When does it not make sense to use the chargeint patch?
  4. How does the chargeint patch work?
  5. How do I configure the chargeint patch?
  6. Where can I find more detailed instructions for the chargeint patch?
  7. How can I be sure that the chargeint patch is using the correct time?

2.17 Dial-In

  1. How can I enable others to login via ISDN?
  2. Someone would like to dial in to my mgetty with HDLC. Is ttyI1 correct, or do I have to start with ttyI0?
  3. Is it possible with mgetty to automatically start pppd when LCP frames are received?
  4. How can I have (i)pppd check passwords from /etc/passwd instead of /etc/ppp/pap-secrets when someone dials in?
  5. How can I allow several people to call in to me at once?
  6. Can I use just one MSN to serve customers both with a getty (modem emulation and with the network?
  7. Can I get the advantages of a multiple-PBX line (one MSN for all ISDN ports) with a multiple-device line [German Telekom]?
  8. When a Fritz! card calls with X.75, Linux crashes. What can I do?
  9. An AVM (A1 or B1) cannot call in to me with X.75, either under Win95 or under OS/2?
  10. How can enable a Fritz! card to call in to me?
  11. Which ISDN routers are there that are OS-independent?

2.18 Leased lines

  1. How does establishing and ending a connection work with D64S without signaling?
  2. With i4l, how can I successfully use the Teles card on a D64 leased line?
  3. Can I connect two computers with ICN cards over a D64s leased line? How? Where can I find documentation?
  4. With ISDN, can I use one channel as a leased line and other as a dialup line?
  5. I have a leased line connection to a ICN, however the ping times are too long.

2.19 SPV

  1. What is a SPV?
  2. How long will there still be SPVs?
  3. Does isdn4linux support SPVs? How?

2.20 Channel bundling

  1. What is channel bundling and how can I use it?
  2. What is raw bundling?
  3. How do I use raw bundling?
  4. What are the advantages and disadvantages of raw bundling?
  5. Is there are working example script for raw bundling?
  6. What's the current situation with raw bundling?
  7. What is MPPP?
  8. How can I use the MPPP material?
  9. What are the advantages and disadvantages of MPPP?
  10. 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 ...
  11. I use MPP. Unfortunately it hangs when just one packet is lost.

3 Troubleshooting

3.1 General

  1. My isdn4linux doesn't work! How do I best go about finding the problem?
  2. I have problems compiling isdn4k-utils-2.0. "ncurses.h" or "panel.h" is not found. But curses.h does exist.
  3. Why does neither my telephone nor my fax machine ring when I call them with isdn4linux?
  4. If i4l uses one B-channel then the other one will be blocked (incoming as well as outgoing)...
  5. In the instructions for my NTBA it says that a crossed a/b cable pair has no effect on the operation?
  6. How can I test whether a a/b cable pair has been crossed?
  7. Even though I deactivated the signalling for incoming calls, an incoming caller does not get a BUSY signal, although neither i4l nor any other ISDN device is configured to use that MSN. Even when every usable B-channel is used by i4l or another user an incoming caller will not get BUSY. The same is true when I deactivate audio support for i4l.
  8. When the router is active, incoming calls from customers hear ringing, even when we're on the line with a support call. This gives the impression that our employee doesn't answer the phone.
  9. I closed all ISDN applications. Why can't I unload my ISDN modules ("isdn: Device or resource busy")?
  10. I'm now certain I've closed all ISDN applications. I still sometimes cannot unload the ISDN module ("isdn: Device or resource busy")...
  11. I still can't unload the modules. I use callback.
  12. My charge "impuls typ A" [German charge impulse at the end of a connection] is not correctly transmitted, although the Telekom says they activated it.
  13. My PBX produces a reset on the SO bus every hour, after which isdn4linux no longer accepts any calls?
  14. My Ascotel PBX crashes i4l (connected on my internal bus).
  15. My Teles 16.3 works behind a Quante IS-2 (identical to the Ackermann Euracom 181) after a reset, only when I: 1. unplug the PBX 2. turn off the PC 3. plug in the PBX 4. turn on the PC
  16. I'm connected through an old PBX. Any attempt to dial out is refused with cause 64?
  17. I can't get my PBX, a proprietary Siemens Hicom, to work?
  18. isdnctrl returns a "bus error" when I do a "isdnctrl list"?
  19. After a hangup "no routine" is printed on /dev/isdnctrl. Did it release my line or is there still some bug in the driver?
  20. I get many "HSCX RME out of buffers" messages in my syslog.
  21. My pppd or ipppd has problems with PAP/CHAP authentication.
  22. I get the error "SIOCADDRT: Invalid argument" when telling route to route to isdn0.
  23. Where can I find a summary of all causes?
  24. On my ELSA card, the LED for the loss of the TEI often blinks. My connections are also often disrupted...
  25. 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?
  26. My hard disk becomes very active when isdn4linux run. How can I turn this off?

3.2 Teles driver

  1. How can I know that my Teles card (or compatible) is recognized correctly?
  2. What is the name if my Teles driver (especially if compiled into the kernel)?
  3. On bootup I get "HSCX version A:5 B:5" but I still have the impression that my Teles card is not used correctly. What else can I check?
  4. Why should I avoid IRQ 12 and 15 for my ISDN card?
  5. My Teles card will not be recognized correctly when I use LILO with my parameters.
  6. If I first start DOS and the Teles driver included with the card, and then start Linux with Loadlin, everything works fine. However, if I start Linux directly with LILO, the Teles driver doesn't respond directly.
  7. After a reset, my card does not initialize correctly.
  8. The Teles driver recognizes my 16.3 card as a 16.0.
  9. I use i4l and the Teles driver. From time to time the driver hangs and I have to reload it.
  10. My machine often crashes. On the console I get about every few seconds l1state 4 l1state 8 l1state 13 ph_command 9 l1state 4 l1state 0 ph_command 0 l1state 7 ph_command 9
  11. My Teles driver always says "isdn0: Chargesum is 0" although I get charge information from the [German] Telekom.
  12. My Teles driver does not work in 2.1.x!
  13. I have two Teles cards in my computer but it seems that only one is used!
  14. When compiling the Teles driver I get some undefined symbols (only kernel 2.0.26)?

3.3 HiSax driver

  1. How can I tell whether my ISDN card has been corrected recognized by the HiSax driver?
  2. The Teles crashes again and again with the following error message in the log: <date> <time> foo kernel: HSCX B EXIR 10 <date> <time> last message repeated <n> times
  3. My AVM card produces very many interrupts with the HiSax driver. Is this normal or a problem with the HiSax driver?
  4. The PNP tools done work with my Teles 16.3 PNP card!

3.4 ICN driver

  1. On dialing out/in with my ICN packets get lost.

3.5 Working together with other ISDN devices

  1. I have problems connecting to an ELink.
  2. I have problems connecting to a Netblazer router.

3.6 Raw IP

  1. I get the error message "protocol error, unspecified".

3.7 Modem emulation (use with ttyI* devices)

  1. When I dial with "ATD....." I always get a "NO CARRIER".
  2. My modem emulation/pppd does not recognize an incoming call.
  3. I gave the correct MSN/EAZ, but still don't get a RING.
  4. Why can't I dial my telephone or fax with the modem emulation?
  5. I can't get a connection to my ISDN mailbox.
  6. I'm sure I used the correct parameters for my ISDN mailbox, but I still don't get a connection. I always get BUSY although I know the mailbox is not busy.
  7. My modem emulation hangs. How can I force my card to hang up?
  8. 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.
  9. When I use UUCP with X.75, I always get transfer errors!
  10. My iprofd doesn't work any more with HiSax 2.0. I get the error message "Version of kernel modem-profile (3) does NOT match version of iprofd (1)". How can I get iprofd to work again?

3.8 Async PPP

  1. How can I get a log for pppd?
  2. Establishing the connection works fine, but pppd crashes just after that (i.e. the first bytes get through, but then everything stops)

3.9 Sync PPP

  1. How can I get a log for ipppd?
  2. My ipppd won't work, it gives the error message "PPP driver 0.0.0 is out of date".
  3. Starting ipppd I get the error message "this systems lacks ppp support".
  4. How can I switch on PPP support for my kernel 1.2.13 (needed for ipppd)?
  5. When I start ipppd, I only get error messages from the i4l driver.
  6. When I try to start ipppd it says "Can't find usable ippp device"
  7. I can't get a connect. How can I find out where the problem is?
  8. ipppd sometimes crashes (kernel 2.0.14...2.0.25)
  9. I get the message "IP frames delayed" - and I don't get a connection.
  10. 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!
  11. After ipppd dials out my default route is gone.
  12. When dialing out, I get the message "pppd: peer authentication required but no authentication files accessible." What does this mean?
  13. 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>"
  14. 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>"
  15. I have problems with PAP or CHAP authentication. It does not work although I'm sure I entered passwords etc. correctly.
  16. I often get the error message "hscx_empty_fifo: incoming packet too large"
  17. The connection with ipppd seems to work, but eventually it crashes.
  18. I only have problems with ipppd when the connection is being heavily burdened. Then everything stops. What could be causing this?
  19. My ipppd works, but I keep getting the message pppd[104]: ioctl(SIOCSIFMTU): Invalid argument"?
  20. The first IP packet gets lost on automatic dialout with dynamic IP address allocation.
  21. When calling "isdnctrl mapping <line> <MSN>,..." I get the error "bad address".
  22. What does the message "No phone number, packet dropped" mean?
  23. Why does my ipppd dial one too many zeros ("isdn0: dialing 0 089XXXXXX...")? I don't have any extensions!
  24. My ISDN device is shown with HWaddr and IRQ=0 and base address = 0 when I list it with ifconfig

3.10 ISDN in a network

  1. xosview doesn't show any network activity since installing i4l.
  2. When I for example from a W95 box call up a page with Netscape, I only get the answer "unknown host".
  3. Addresses are now found, but now instead of the page I want I get the message "no route to host".
  4. 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.

3.11 Isdnlog

  1. My isdnlog 2.50 doesn't work since I installed HiSax 1.2.
  2. I've patched isdnlog, but it still won't work together with HiSax (isdnlog starts with the usual messages, but nothing happens)?
  3. Isdnlog (>=2.52) shows for a caller two telephone numbers! Which one is correct?
  4. When calling I receive a "Internal error: wrong structure".
  5. Isdnlog crashes with a "segmentation fault".
  6. 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"
  7. 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()"?
  8. Why does isdnlog quit with "kill -1", according to the docs it should only reread isdnlog.conf.
  9. Isdnlog takes 100% of the CPU time
  10. The Telekom is paying me (according to isdnlog/isdnrep) 12 pfennigs (1 unit) for each connection...
  11. According to isdnlog every "busy" costs me 45 units?
  12. I'm having problems getting isdnlog to run with libc 5.4.7!
  13. When dialing out, the screen goes momentarily black?

3.12 Audio

  1. My vboxgetty does not answer any incoming calls.
  2. My vboxgetty answers at the first ring but the number of rings is set to 4.
  3. My vbox 1.1 does not work together with HiSax.
  4. 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?
  5. At the beginning of a message recorded by vboxgetty, there's often a part of my own announcement?

3.13 Dialout on demand

  1. What can cause a charge unit disaster?
  2. Ever since I installed a new kernel, my computer constantly open ISDN connections without transferring any data (expensive!).
  3. My router wants to constantly dial out (and does it too) but NO data is transferred, neither ipfwadm -A! nor tcpdump -i isdn0 show anything.
  4. After closing the line, I discover with "netstat -nt" that IP connections are still open. How can I close these manually?
  5. How can I safely turn off dialout on demand?
  6. How else can I prevent the charge unit disaster?
  7. Is it possible that even with a crashed computer a ISDN connection remains open (and the charge units accumulate)?
  8. How can track down unexplainable dialouts?
  9. Can it be that the Win95 machine on my LAN is causing automatic dialouts?
  10. I have set up a local DNS name server. Why does it cause unwanted dialouts? How can I find the cause?
  11. How can I turn off the DNS requests for WORKGROUP.xxx from my Win95 machine?
  12. How can I get sendmail to not initiate any connections without local mail being left undelivered?
  13. The samba package always triggers dialouts for me. How can I prevent this?
  14. How can I get Netscape to quit initiating dialouts when starting?

3.14 Chargeint

  1. The connection doesn't end with timeout. Possible reason: my service provider uses a Cisco router which sends a "keep alive" packet every ten seconds.
  2. My Internet provider won't switch off keep alive packets so ipppd never hangs up.
  3. The "lcp-keep-alive" patch doesn't work - ipppd still doesn't hang up.

3.15 Dialin

  1. I keep getting the message "isdn_tty: call from XXX -> YYY ignored". Why does isdn4linux (syncPPP) ignore this dialin attempt?
  2. I've configured several ippp* devices. Each incoming call "uses up" one device, until there is no device available any more.
  3. With "isdnctl pppbind" I've established an exclusive connection. But this is removed with an incoming call.
  4. A SunISDN tries to dial into my i4l system.

3.16 Callback

  1. 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.
  2. Callback isn't working. How many ippp* devices do I need (at a minimum)?
  3. Callback still doesn't work right. Can the fault lie with the Teles driver?
  4. When trying callback with Euro-ISDN the call never gets rejected.
  5. Somehow i4l can not callback a Cisco?
  6. 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.
  7. How can I callback a Banzai!?
  8. Some the callbacks confuse the module count. How can I now unload my ISDN modules?

3.17 MPPP

  1. SyncPPP works without problems on one channel. Unfortunately MPPP won't work due to communication problems between ipppd and the other side.

4 National Peculiarities

4.1 Germany (1TR6)

  1. Which EAZ should I use for i4l?
  2. I use 1TR6 on an extension - the extension number has more than one digit (e.g. 206). What is my EAZ?
  3. The state machine hangs with 1TR6.

4.2 Italy

  1. What does our MSN look like?

4.3 The Netherlands

  1. What does our MSN look like?
  2. How can I get isdnlog to calculate the charges for the Dutch telephone company?
  3. Are there any other peculiarities?

4.4 Austria

  1. We have neither an MSN nor an EAZ, only a normal plain telephone number. What do we have to use for i4l?
  2. Incoming and outgoing calls won't work ("incoming call without CPN")
  3. Why doesn't my getty answer the EAZ it should respond to if somebody dials the "0", the broadcast number? In the log file it says "Incoming call without CPN, assuming '0'".

4.5 Switzerland

  1. We have neither an MSN nor an EAZ, just a plain telephone number. What do we have to use for i4l?
  2. I can only keep a 184 second connection with i4l. After that the connection breaks with cause "Temporary failure" since the telephone company uses new software for its equipment.
  3. How can I get isdnlog to calculate the charges for the Swiss telephone company?

4.6 Portugal

  1. What should we use as MSN?

4.7 North America

  1. Can we use isdn4linux in North America?
  2. Why can't I use European ISDN cards in North America?
  3. Which protocol is used in North America?

5 Miscellaneous

  1. How can I set the clock of my computer with ISDN?
  2. Where can I find information on the dip switches of my NTBA?
  3. Can I connect two ISDN devices directly with a kind of "null modem cable"?
  4. Where can I get documentation on Siemens' HSCX and ISAC chips?
  5. Where can I find the "bat" book about configuration of sendmail?

FAQ for isdn4linux - Version 1.3.2
(translation 3-Oct-97)

[Translator's notes]
--5-May-97: Translation complete for 1.3.2 (except for the proofreading)!
--8-May-97: Added correction for Italy.
--25-May-97: Numerous corrections submitted by Paul Slootman
--27-May-97: Minor cleanup, noted additional countries
--27-Sep-97: Added more translator's notes for various countries and 2.0.30
--3-Oct-97: Added note for MSNs in the UK This FAQ is protected by the GNU General Public License (GPL) Version 2; (C) 1996 Volker Götz, Bernhard Hailer, Matthias Heßler, Michael Hipp and Rainer May.
Distribution under the terms of the GPL is welcome. However, we offer NO GUARANTEES for the information herein. Please read the GNU General Public License for further details. A printed version is available from
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. An electronic version is available from the authors.

Original FAQ by Volker Goetz <volker@oops.franken.de>, (c) 1995
Comprehensive edition and additions (1996, 1997):
Matthias Hessler <hessler@wi-inf.uni-essen.de>,
Bernhard Hailer <Bernhard.Hailer@lrz.uni-muenchen.de>,
Scott Hanson <shanson@shcon.com> (English translation),
Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> (many syncPPP questions)
Rainer May <r_may@khavi.desaster.heide.de> (i4l and networks)

English translation coordinated by Scott Hanson <shanson@shcon.com> with contributions from:
Sven Tervoort <sveneric@xs4all.nl>
Matthias Hessler <hessler@wi-inf.uni-essen.de>
Erik Corry <erik@arbat.com>
Paul Slootman <paul@wau.mis.ah.nl>

About the format of this FAQ:
The basis of this FAQ is the i4l mailing list. We checked the messages posted to the list and included relevant messages (usually) in the form of quotes. These quotes are not always 100% identical with the original; spelling errors have been corrected, and some messages were translated from English into German. Whoever notices that they have been incorrectly quoted, or would rather not have their Email address noted, please let us know - we'll ... in the next version of the FAQ. The same applies in cases where we have quoted someone without noting it as such. The knowledge of the FAQ authors is noted without quoting ourselves. Remarks from the FAQ authors about quotes are noted like this: [This is a remark - Ed.]
The countless links in this documents are not always complete and with time may no longer be correct. We do not have the time to check them all. If you discover a bad link, please let us know.
In the 7bit version of this FAQ, all new or rewritten questions are marked with a change bar in the left margin. (Does anyone have an idea, how we can mark this in the HTML version?)

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

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


1 General information about isdn4linux



  1. What is isdn4linux?

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



  2. What can isdn4linux do?

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



  3. What can't isdn4linux do (yet)?

    There is no full duplex audio connection possible. Some protocols are still missing (V.110, American protocols).



  4. Can I use isdn4linux in North America?

    See this question in the section "National Peculiarities".



  5. What do I need for isdn4linux?

    isdn4linux has been part of the Linux kernel since version 1.3.59. In addition, you need the package isdn4k-utils-2.0.tar.gz and possibly the HiSax driver.



  6. How can I get isdn4linux?

    Via FTP:
    The package is at ftp://ftp.franken.de/pub/isdn4linux and various mirrors.
    Via Modem/ISDN:
    From the Linux server of the Incubus BBS (Login gast, cd /pub/linux/isdn4linux, download via ZModem with 'sz filename') . The server can be reached at the following numbers
           +49 931   781464   Zyxel U-1496E      V.32(bis), V.42(bis), Zyxel 19200 
           +49 931   781465   Atrie 1914A        V.32(bis), V.42(bis), V32terbo
           +49 931   781467   Atrie 1914A        V.32(bis), V.42(bis), V32terbo
           +49 931   781468   Atrie 1914A        V.32(bis), V.42(bis), V32terbo
    

    New ringdown (16 Lines. First log in as 'bbs'):
           +49 931 79002055   Motorola 3400      V.32(bis), V.42(bis), V.34
    

    ISDN (also log in 'bbs') :
           +49 931  7840724   ICN                X.75    2 B channels
           +49 931  7841020   ICN                X.75    2 B channels
           +49 931  7841060   ICN                X.75    2 B channels 
           +49 931  7841070   ICN                X.75    2 B channels 
           +49 931  7841080   ICN                X.75    2 B channels 
    

    Here is a list of mirrors; thanks to Herbert Rosmanith <herp@wildsau.idv-edu.uni-linz.ac.at> for compiling it initially. Whoever knows of any mirrors not listed here, please let us know!
      ftp://freja.frontier.dk/linux/isdn4linux/
      ftp://ftp.cs.tu-berlin.de/pub/net/isdn/isdn4linux/
      ftp://ftp.fokus.gmd.de/.mount2/pub/Linux/isdn/isdn4linux/
      ftp://ftp.franken.de/pub/isdn4linux/
      ftp://ftp.germany.eu.net/pub/os/Linux/Local.EUnet/ISDN/isdn4linux/
      ftp://ftp.kiss.de/pub/linux/isdn4linux/
      ftp://ftp.leo.org/pub/comp/os/linux/isdn/isdn4linux/
      ftp://ftp.lame.org/mirrors/isdn/
      ftp://ftp.mathematik.th-darmstadt.de/pub/linux/mirrors/misc/isdn4linux/
      ftp://ftp.nvg.unit.no/pub/linux/isdn/
      ftp://ftp.pop.de/pub/local/linux/isdn/
      ftp://ftp.rz.fh-hannover.de/pub/linux/local/isdn4linux/
      ftp://ftp.rz.hu-berlin.de:/pub/linux/isdn4linux/  
      ftp://ftp.tu-dresden.de/pub/soft/isdn/isdn4linux/
      ftp://ftp.uni-mainz.de/pub/internet/starter-kit/isdn/isdn4linux/
      ftp://ftp.uni-wuppertal.de/pub/linux/isdn4linux/
      ftp://ftp.xlink.net/pub/mirror.ftp.franken.de/isdn4linux/
      ftp://fvkma.tu-graz.ac.at/pub/isdn4linux/ 
      ftp://wildsau.idv.uni-linz.ac.at/pub/isdn4linux/
    



  7. What documents should I read first?

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




  8. What helpful links are there about isdn4linux?

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



  9. Is there a mailing list for isdn4linux?

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



  10. How can I have myself removed from the mailing list?

    To unsubscribe, send another email message to majordomo@hub-wue.franken.de - the subject doesn't matter. The message should read: "unsubscribe isdn4linux <Email address>", where <Email address> is the address to which mail messages from the mailing list had been sent.



  11. Is the mailing list mirrored to a newsgroup?

    Yes, the mailing list can also be accessed at de.alt.comm.isdn4linux - a bidirectional gateway makes sure that one can also answer postings.



  12. Is there an archive of the isdn4linux mailing list?

    Yes, the messages are saved (unsorted) at hub-wue.franken.de. They are collected by month. To access the archive, send Email to "majordomo@hub-wue.franken.de". The subject doesn't matter. The following commands are possible:
         index isdn4linux          - list which archive files are available
         get isdn4linux <filename> - retrieves the file <filename>
    

    The archives are named "archiv.<year><month>, so "archiv.9610" is the archive for October 1996. An archive of the mailing list is also available via FTP:
    !link ftp://ftp.uni-oldenburg.de/pub/unix/linux/isdn/isdn4linux/Mailing-List; Another archive is available (according to Sascha Ottolski <sascha@alzhimer.isdn.cs.tu-berlin.de>) at:
    http://wws.mathematik.hu-berlin.de/ldr/ISDN/isdn4linux/



  13. In which countries does isdn4linux work?

    [Translator's note: I've made some additions to the original list.]
    We are aware of the following countries:
         Austria
         Belgium
         Finland
         France
         Germany
         Israel
         Italy
         Norway
         Peru
         Portugal
         Spain
         Sweden
         Switzerland
         The Netherlands
         United Kingdom
         USA
    

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



  14. Is isdn4linux approved for use by the telecommunications authorities?

    Germany:
    That depends on the driver used. For active cards, the approval covers the entire card including its firmware. Thus the approval also covers the use of these cards with isdn4linux. The Teles driver is not approved in Germany, even though it works superbly. Therefore, its use is only allowed when connected to the S0 bus of an approved PBX.
    Other countries:
    We don't have any information... does anyone know more?



  15. What is the most recent version?

    Currently isdn4k-utils-2.0 is required in addition to the drivers included with the kernel. For use with kernel 2.0.0 (and only it), two patches (isdn4kernel-2.0-patch1+2) are required. Kernel 2.0.2 is unusable because of a bug. Kernels between 2.0.15 and 2.0.24 don't seem to work correctly with syncPPP. 2.0.26 contained many i4l bug fixes, but an include file (proto.h) was forgotten. A new 'jumbo patch' was included in version 2.0.30. Kernels 2.0.27+ are very stable.
    There are many changes in kernels 2.1.0 and higher; for now they can only be recommended for developers. Together with HiSax 1.4, they only work up to 2.1.14. Kernels 2.1.15 and higher require HiSax 2.0 along with a necessary kernel patch.
    It's recommended to use i4l versions 2.0 or higher together with a 2.0.3 or higher kernel (no longer requires any patches!). Kernel >2.0.27 is the current standard.

    [Translator's note: Unfortunately the HiSax driver did not get included in kernel 2.0.30, and the Teles driver no longer works with this kernel. To use HiSax with 2.0.30, you need the patch

    ftp://ftp.franken.de/pub/isdn4linux/v2.0/isdn4kernel-2.0.30A.gz

    (or from one of the many isdn4linux mirrors). This patch is also included in the kernel pre-patch-2.0.31 (which I've been using without problems). The kernels provided with some distributions have the patch already applied (for example Debian 1.3.x and Suse 5.0).]



  16. What hardware is NOT supported?

    For not (with the exception of ICN) no active ISDN cards are supported, except the AVM B1, for which there an alpha driver as binary only.



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



  18. Which internal cards are supported?

    Right now there is a driver for all card with a certain Siemens chip set (HiSax driver), that also supports Plug&Play cards. See the next question for details.
    The HiSax driver has superseded has the old Teles driver, which is therefore is not being further developed. For this reason, the Teles driver has many more bugs and should not be used any longer.
    Further drivers includes that for the (active) ICN card (ICN driver), as well as that for the PCbit card (Octal, Portugal).
    There used to be a (special) driver for the ITK ix1 micro" from Frank Mohr <mohr@fhdacom2.fhrz.fh-darmstadt.de>, but that is not included in HiSax 2.0. It supports the following cards:
           * ITK ix1 micro V2.0 and V2.1
           * Cisco 200
           * ITK Columbus
    

    Finally there is also a (alpha) driver for the active AVM B1, with its own peculiarities. See the question "What about the active AVM B1?".

  19. What is the new HiSax driver all about?

    It is a new driver that should support all passive cards that are based on a certain Siemens chip set. Currently it supports:
            * Teles S0-8
            * Teles S0-16 and S0-16.2
              (identical to: Dr. Neuhaus Niccy 1016, Creatix 16/S0)
            * Teles S0-16.3
            * Teles S0-16.3 PNP
            * Teles PCMCIA
            * Creatix S0 PNP
            * AVM A1 (Fritz!) 
            * ELSA Microlink PCC-16
            * ELSA Microlink PCF
            * ELSA Microlink PCF/pro (only ISDN, not the V34 Modem Chip)
            * ITK ix1-micro Rev.2  
    

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

    If you're interested in HiSax, you can find it at ftp://ftp.franken.de/pub/isdn4linux/HiSax/ (and hopefully soon at all isdn4linux mirrors!) Since HiSax 1.5/2.0 D64 connections are supported. HiSax 2.0 will become part of kernel 2.0.30 , and then will no longer need special patches.

  20. What about the active AVM B1?

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



  21. Now that my AVM produces so many interrupts with the HiSax driver, which is the best passive card to use with HiSax?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 12. Nov 1996:
    It shouldn't make that much difference. As for the load on the system, the Fritz! is probably the worst in the long run [see also the question "My AVM card produces very many interrupts" in HiSax part if the Troubleshooting section], but maybe I can get that right with the timer, since that's only noticeable when, for example, the system busy with rendering for an entire night.
    Karsten Keil <keil@temic-ech.spacenet.de> wrote further on 2. Dec 1996 on stability and lack of bugs:
            1st choice ELSA
               ELSA (as opposed to AVM) makes the specifications available.
            2nd choice Creatix PNP
               Creatix employees are also not completely negative towards Linux ;-). 
               By the way, this card has been developed by Creatix and
               is not identical to the Teles 16.3 PNP.
    



  22. Does isdn4linux support external ISDN adapters?

    No, isdn4linux supports only internal cards. External ISDN adapters can be accessed either like an analog modem or like a network card, and therefore do not need isdn4linux.



  23. Which ISDN modes are supported?

        56k asynchronous : no
        64k synchronous  : yes
       128k synchronous  : yes (channel bundling - see the next question)
    



  24. Does isdn4linux support channel bundling?

    The current version of isdn4linux support 2 methods of channel bundling:
    - MPPP (based on sync PPP)
    - Raw bundling (configured by so-called slave channels)
    Both variants have their own advantages and disadvantages See the question " How do I use channel bundling?" in the "Channel bundling" section below.
    Warning: Channel bundling saves time, but not any telephone charges. Only if you really need the extra bandwidth is it useful.

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



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

    Yes, the following sites offer guest access for modem emulation or IP:
    - Eberhard Moenkeberg <emoenke@gwdg.de>:
         * Welcome to Linux at eberhard.moenkeberg.de (LAN, 192.168.99.1).
           Under ++49-551-7704103, ISDN NetCalls (HDLC-trans-rawip)
           for 192.168.99.1 get accepted. You should come as 192.168.*.*
           because sometimes my "default" route is not your way.
           /ftp is exported for NFS; try "showmount -e".
           You can login as "guest" without password.
           FTP as "gast" with password "gast" avoids the restricted shell.
         * Under ++49-551-7704102, a 28800 bps modem and a Creatix ISDN 
           card (HDLC only, not X.75) are listening for logins.
    

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



  27. Can I combine isdn4linux with diald?

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



  28. Can I use isdn4linux as an answering machine?

    Yes, voice support is possible with the current version of isdn4linux. You can either use "vgetty" from Gert Doerings "mgetty+sendfax", or "vboxgetty" from Michael Herold, which is made especially for isdn4linux. The latter can be found at: ftp://ftp.franken.de/pub/isdn4linux/contributions/



  29. Can I fax with isdn4linux?

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



  30. Is 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) It's also possible to access the Internet via the German T-Online. Warning! XCept (formerly Xbtx) has an ISDN configuration option. This should NOT be used. XCept should be configured as if a normal modem were being used.
    See also the questions about T-Online in the "Configuration" section.



  31. Can I connect to Compuserve with isdn4linux?

    No, because Compuserve's ISDN dialin works only with the old V.110 protocol. V.110 is not (yet) implemented in isdn4linux. In the meantime, Compuserve offers several X.75 numbers.

  32. Which ISDN features can not 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, call forwarding, differing COLP/CLRP.

  33. I'd like to write a new hardware driver. Where can I find a description of the interfaces to the link level module?

    In the kernel source (in /usr/src/linux/Documentation/isdn) you can find the file INTERFACE - it is the description of the interfaces to the link level module.



  34. How can I access the source from the current development/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 exists on server (oldhades.think.de) a CVS tree to which all developers have access. In addition, Fritz has put together an anonymous read-only access. If you must have the very newest versions, you can get them there, however they may contain more bugs than the released versions!!! Here is the message from Fritz Elfert <fritz@wuemaus.franken.de> about this:
    ANOTHER IMPORTANT THING:
    I often get patches - against current official releases of course - where i have problems applying them. My local source here sometimes is 2 or 3 version ahead however i cannot release it, since it is incomplete or completely untested etc.
    Therefore i now decided to make the CVS repository of the isdn4linux public available. Now, programmers who want to have a look at the development ongoing or those who always want to get the newest stuff here is how to access the CVS repository:
    1. Install GNU CVS (any version >= 1.6 will do)
    2. create a small shellscript .cvsrsh in your homedir:
           #!/bin/sh
           exec rsh -l guest $*
    

    3. Set CVS_RSH to this script (e.g.: export CVS_RSH=~/.cvsrsh)
    4. Set CVS_ROOT to oldhades.think.de:/i4ldev
    (e.g.: export CVS_ROOT=oldhades.think.de:/i4ldev)
    5. Execute "cvs -z9 checkout isdn"
    -> This will create a directory tree isdn/ in your current directory.
    Below isdn/ you will find the same hierarchy like in the linux source plus some scripts to copy/diff the stuff into the linux source tree.
    Similar access is available for the utility package with the command:
       cvs -z9 checkout isdn4k-utils
    

    WATCH OUT!!! THE NEWEST STUFF SOMETIMES IS REALLY INSTABLE OR EVEN DOES NOT COMPILE WITHOUT PROGRAMMING KNOWLEDGE - No newbies questions on this PLEASE! Use the source, Luke!
    Note:
    Of course the public access is readonly. Access is limited to the following cvs commands:
           checkout
           diff
           export
           status
           update
    

    See the CVS-doc for how to use these commands.
    People who want to help _continuously_ developing isdn4linux by writing new driver etc. can get a real account for full access. Write me a mail in this case.

  35. Can I use isdn4linux under dosemu?

    Yes, you really 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
           Terminate: serial { com 2 device /dev/ttyI3 }
         Access with Fossil is possible if fossil.com (included with
         dosemu) is started.  Tested with the following configurations: 
         - Kernel 2.0.21, Teles driver incl. Karsten's patches 
         - Kernel 2.0.21, HiSax
    



  36. Is there a working ISDN card for a DEC Alpha with Linux?

    Thomas Bogendoerfer <tsbogend@alpha.franken.de> wrote on 17 Dec 1996:
    I use an ICN ISDN card in my Alpha Noname for Internet access and mail/news via UUCP.
    I don't have a passive ISDN card to test HiSax with Linux/Alpha . There are problems with the timers (HZ is 1024 on the Alpha). Even the ICN driver has the "wrong" Timer, which causes a little too much poling of the card (but leads to better ping times:-)). I suspect that this can be fixed in time.



  37. Can isdn4linux run in parallel to UISDN?

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



  38. What are AOC-x, CLIR, COLP, CVS, HDLC, HSCX, ISAC, TEI...?

    Here is a small glossary:
    AOC-D
            "Advice Of Charge During the Call".
    

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

    CLIR (Calling Line Identification Restriction)
            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 (Connected Line Identification Presentation)
            COLP can also be offered by the ISDN provider. In Germany, it must be
            applied for, and costs an extra 10.-- DM per month. If you've applied
            for COLP, you get an extended dialing protocol that, for example, can be
            evaluated in the PBX. Current the possibility is being worked on to get 
            around this with the help of a backwards-connected Teles card. One could 
            then get more information than with a running COLP without using any units. 
            That could quickly pay off...
    

    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.
    

    HDLC
            A widely used low-level protocol.
    

    HSCX
            A Siemens chip, that similar to ISAC is on many passive cards.
            It takes over the serial bus from ISAC and demultiplexes when 
            receiving  or multiplexes (i.e. inserts the bits in the correct
            position) the B channels.
    

    ISAC
            A Siemens chip, that similar to HSCX is on many passive cards.
            Et is responsible for "Level 1", so it sits (almost) directly on
            the line. It handles the D channel protocol and sends the
            S0 data to a special serial bus (IOM). When sending it does the
            opposite.
    

    TEI (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 PBX connections)
            64-126   automatically assigned
               127   call for all (e.g. an incoming call)
    

    PBX (Private Branch eXchange)
            A PBX is used to connect different internal devices to the 
            ISDN network. This is usually for analog devices.
            that cannot be directly connected to an ISDN network.
            The PBX can also make an internal digital S0 bus available,
            on which ISDN devices can be connected.
    



2 Configuration



2.1 General



  1. Where can I find scripts and other information on configuring i4l?

    Configuration examples and scripts:
    http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html
    Many HowTo's on basic installation, syncPPP, Email setup, Usenet News, answering machine, and more:
    http://www.lrz-muenchen.de/~ui161ab/www/isdn/
    Further FAQs with example scripts:
    http://www.fzi.de/sim/people/trautw/i4l/index.html



  2. How many ISDN cards can I stuff into my computer?

    Just as many as there are ISA slots and interrupts/IO addresses. The Teles 16.3 can use only 3 different IO addresses, therefore you can use at most 3 cards. They each would also need an interrupt.
    Peter Strunk <webadmin@mail.bicos.de> gave the following tip on 8 Nov 1996 for installing a fourth Teles card:
            Try out port 0x080h, DIP-SW in the undocumented
            position!
    

    The AVM is similar.
    The ICN has no interrupts, a more flexible port configuration and the driver places the shared memory area of all ICN cards at the same address. The card memory is shown only as needed.
    Therefore, one could use as many cards are there are slots... one could even increase the number of ISA slots with an ISA bus extender.



  3. Do I need a DOS setup program to setup my Teles card?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 21 Feb 1997:
    You don't need a DOS setup for Linux, with one exception:
    Teles once offered a Charge PnP card that did not do PnP correctly. These card can be recognized in that the have NO jumper/dip switch, but are not recognized by isapnp .
    All other cards are configured with the Linux drivers or with isapnp

  4. 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, isdnctrl huptime <interfaceY> time, then the driver will automatically hang up when no data was been transferred over the interface for "time" seconds. However, with syncPPP there are problems (see the syncPPP section),



  5. Does isdn4linux support PNP (Plug and Play)?

    Yes, but only with the HiSax driver. With "Plug" alone it's unfortunately not yet ready, more work is necessary: (from Karsten Keil <keil@temic-ech.spacenet.de>)
            1. HiSax has to be patched into the kernel
               (Attention: use the "-pn" parameter!)
            2. With "make menuconfig" (or "make config") set the following
               kernel options :
                 * ISDN = "M" (as module - otherwise PNP doesn't work!)
                 * HiSax = "M" (as module - otherwise PNP doesn't work!)
                 * 16.3/PNP support
                 * EURO support
            3. Compile and install kernel and modules, depmod. (Reboot!)
            4. Read the configuration of the PNP card with:
               "pnpdump > /etc/isapnp.conf".
            5. The configuration file "/etc/isapnp.conf" has to be set by hand.
               Set the following values:
                 INT0 - the interrupt used by the card
                      (Default for Teles 16.3 PNP: 10)
                 IO0, IO1 - the IO ports used by the card
                      (Default for Teles 16.3 PNP: 0x580 and 0x180)
                      (Attention: these values must be 64-bit aligned! Early
                      versions of the PNP cards my suggest incorrect values!)
            6. Activate the configuration with:
               "isapnp /etc/isapnp.conf"
               (must be started at every boot)
            7. Now the HiSax module can be started with:
               "modprobe hisax io=4,<P>,<INT>,<IO0>,<IO1>"
                 4     - PNP card
                 <P>   - Protocol:
                           2 - for Euro-ISDN (normally)
                           1 - for 1TR6-ISDN (German predecessor to Euro-ISDN)
                 <INT> - the value in etc/isapnp.conf for INT0 
                 <IO0> - the value in etc/isapnp.conf for IO0 
                 <IO1> - the value in etc/isapnp.conf for IO1 
    



  6. Is there a trick to sometimes boot Linux with ISDN and sometimes without?

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



  7. Is it possible to initiate call forwarding with i4l?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote that there are plans to later implement this in the HiSax driver.



  8. Has anybody routed ipx/spx over ISDN with Linux?

    Andreas Kool <akool@Kool.f.EUnet.de> wrote on 14.10.1996:
         That's no problem -  we've done that for a while now.
         - Simply set up an ISDN interface.
         - Important: encap isdnX ethernet
         The rest is done by "mars_nwe" (incl. routing).
    



  9. Can I use kerneld to load the ISDN modules in the kernel as needed?

    Emil Stephan <ste@esqhen.su.eunet.de> wrote on 15 October 1996:
         By default, kerneld unloads a module after it has not been needed for one
         minute. This is no problem for device drivers ala floppy, etc., but it is
         a problem for drivers that need to keep settings over a longer period 
         of time, e.g. the mixer settings for a sound card or the configuration of
         dialin and dialout parameters for ISDN. Unloading the ISDN drivers also
         kills the IP interface ippp0 or isdn0. The entries in the IP layer of the
         kernel then disappear. If you look in the start-up scripts for i4l,
         you'll a lot of things that are configured with isdnctrl, etc.; they
         would have to be reconfigured by kerneld each time the module is
         reloaded. The status of the D channel could also be lost. Therefore, my
         recommendation is not to use kerneld, rather load the modules at start-up
         and only unload if necessary for some technical reason.
    

    See also the question "Is there are trick to sometimes boot Linux with ISDN and sometimes without?".
    Markus Gutschke <gutschk@uni-muenster.de> wrote:
         For some time now there has been an extension to the modules package just
         for this purpose; it allows the installation of a databank with the
         current status of the modules. Unfortunately, this feature usually not
         supported by the modules. An alternative are such options as the
         "post-install" hook in "/etc/conf.modules". It would then be necessary to
         write the appropriate scripts by hand, but in principle that would work
         just as well as the modules automatically using the initializations
         settings from a database.
    



  10. How can I get a tcpdump patched for ISDN?

    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 tcpdump-3.0.3-isdn/libpcap-0.0/pcap-linux.c after patching
            you find the following:
                else if (strncmp("ppp", device, 3) == 0)
            Either you name your ppp devices pppX instead of ipppX, or
            change this line, e.g.
                else if (strncmp("ippp", device, 4) == 0)
                                  ^^^^          ^^
            Then tcpdump will also recognize syncPPP. At least it does for me.
    



  11. How can I set up user permissions for the use of ISDN?

    Henner Eisen <eis@baty.hanse.de> wrote on 13 Feb 1997: Access to isdn-ttys can be restricted (following the Unix philosophy) be establishing a group (e.g. 'isdn') in /etc/group, and then
           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.2 MSN



  1. What is an MSN?

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



  2. What is an 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).



  3. How many MSNs do I need if I want to do the following:
    	* Telephone
    	* Analogue modem (used for data, fax or voice mailbox)
    	* Dialin for X.75 (modem emulation)
    	* Dialin for syncPPP
    



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



  4. What is my MSN?

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



  5. How do I tell the modem emulation what my MSN is?

    For the modem emulation you use the command AT&E<msn>, which requires the MSN without the area code (except in the Netherlands).



  6. How do I configure my MSN using syncPPP?

    The MSN for network operation is set up with the command "isdnctrl msn <interface>". The MSN is given without the area code (except in the Netherlands).



  7. Where should I configure my own MSN in order to test syncPPP by calling myself?

    If you want to call yourself as a test then you have to configure your MSN both as the outgoing and the incoming number.
    The configuration of the outgoing number is done with "isdnctrl addphone <interface> out <msn>". You must use the MSN including area code (including the "0" at the start - Deutsche Telekom needs this in order to dial correctly). "isdnctrl delphone" is used similarly.
    The configuration of the incoming number is done with "isdnctrl addphone <interface> in <msn>". The MSN must be entered in the form in which it is transmitted to the called party. For Deutsche Telekom, this is the MSN including the area code but without the "0" at the start. "isdnctrl delphone" works similarly.
    You may find national differences here (see the chapter "National Peculiarities"). See also the following question in case of doubt.



  8. How can I find out how my telephone number is transmitted 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).



  9. Can I do the following on *THE SAME* MSN:
    	- Telephony (voice)
    	- VBOX (voice, of course)
    	- X.75 login (mgetty, /dev/ttyI?)
    	- IP interface for IP connections to other computers?
    



    Gernot Zander <hifi@scorpio.in-berlin.de> wrote on this subject Dec. 4 1996:
    Yes. However, IP dialin cannot be differentiated from X.75 dialin, so you are either restricted to dialout, or you must enter the MSN of the other party and set secure to on. Then the driver will start by asking the net interfaces, and if none match, the call will be handed on to the ttyIs. If someone wants to have the choice between calling you with X.75 or with IP, they will have to use different outgoing MSNs to call you from.



  10. How can I minimize the number of MSNs needed for dialin?

    See the question in the chapter on dialin.



  11. How do I set the MSN in a Cisco?

    With "isdn answer1 :<msn>" (or answer2). E.g. "isdn answer1 :12345" will set the MSN to 12345.



  12. 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 are transmitted unless the caller has explicitly allowed the Telekom to do so (costs nothing) and is connected to a digital switching office
    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.



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

  14. 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).
    Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 15 Dec 1996:
            The first comes from the PBX and is not checked.
            The second is that assigned by the Telekom.
            Here I had calls where a Siemens employee from Munich called
            in with a long Caller ID with a Berlin area code (030).
            I called the Telekom to ask what was going on; they didn't know
            either until they found somewhat competent who told me that
            it's allowed.
    

    About "no screening" wrote Ralf G. R. Bergs <rabe@Informatik.RWTH-Aachen.de> on 16 Dec 1996:
            "CLIP no screening". The caller has the feature (which costs extra 
            and is only available with the "Komfort" PBX connection(!)), 
            that allows him to transmit any Caller ID he chooses.
    



2.3 Teles driver



  1. I use SETUP.EXE under DOS, to configure my Teles/Creatix with memory xxxxx and IRQ yy. How do I do this under isdn4linux?

    You can enter do this by entering the correct kernel options at boot. It is not recommended that you compile them into the kernel, however i may be necessary in some cases when software conflicts occur or if you have several Teles cards in one machine. In this case you should edit "/usr/src/linux/drivers/isdn/teles/config.c" to reflect the correct settings for your card(s). (read comments in that file)



  2. I'm confused: according to the documentation, my Teles card is configured for IO address 0x180. In Linux (and also in some Windows programs) the address is shown as 0xd80?

    The card uses both IO addresses! Karsten Keil <keil@temic-ech.spacenet.de> wrote on 3 Jan 1997:
            The addresses actually used are:
              isac 980
              hscx 180/580
              cfg  d80
            The confusion is the result of a misunderstanding. Teles gives the
            HSCX0 address as a reference, while the old Teles driver needs the
            cfg address. Since users were confused by this, both driver can 
            now use either address (which confuses the users even further ;-))
    



  3. When compiling the Teles driver I get an error similar to: too many arguments to function '_get_free_pages_R5243d78b'?

    From a certain kernel in 1.3.x the calling of kernel function get_free_pages was changed. You are using an old kernel. In this case you should the following line in teles/teles.h
         #define NEW_GET_FREE_PAGES
    

    comment out
         /* #define NEW_GET_FREE_PAGES */
    



  4. I'm using kernel 1.3.x, the Teles driver compiles fine, all the correct parameters are set in config.c, but the card still won't work.

    From a certain kernel in 1.3.x the timer was altered. You should comment out the #define NEW_TIMERS line in teles/teles.h.
         /* #define NEW_TIMERS */
    



  5. Is it possible to have more than 1 Teles card in one computer?

    Yes, it is. All the parameters should be entered in teles/config.c.
         struct IsdnCard cards[]={
           { (byte *)0xd0000,11,0xd00,NULL } ,
           /* 1. Karte */ { (byte *)0xd8000,10,0xe80,NULL } ,
           /* 2. Karte */ ...
           /* u.s.w. */
         };
    

    On 6-10-1996 Christian Kratzer <ck@toplink.net> suggested (lines beginning with "io=" belong at the end of the previous line):
         # load modules
         /sbin/modprobe isdn.o
         echo "teles0 - Teles S0/16.2"
         /sbin/insmod $MODPATH/misc/teles.o -o teles0 teles_id=teles0 
           io=0xd0000,5,0xd80,2
         echo "teles1 - Teles S0/16.2"
         /sbin/insmod $MODPATH/misc/teles.o -o teles1 teles_id=teles1 
           io=0xd2000,9,0xe80,2
         echo "teles2 - Teles S0/16.2"
         /sbin/insmod $MODPATH/misc/teles.o -o teles2 teles_id=teles2 
           io=0xd4000,12,0xf80,2
         /sbin/lsmod | grep teles > /dev/null
    



  6. How can I tell whether or not my Teles card is recognized correctly?

    During booting a message "kernel: HSCX version A:5 B:5" and "kernel: channels 2" should appear. A:4 B:4 is also okay. Other values (in particular A:0 B:0 or A:f B:f) mean the card is not recognized correctly.
    Also check under Troubleshooting Teles.



  7. Where can I send complaints to Teles?

    At the Email address "vertrieb@teles.de". They also have WWW pages: http://www.teles.de/
    Karl Heinz Kremer <khk@specht.stuttgart.netsurf.de> added on 2 Jan 1997:
            If you want to read more about Teles's business practices, look at
              http://www.inx.de/~chris/isdn.htm 
    



2.4 HiSax driver



  1. Where can I find the HiSax driver?

    At ftp.franken.de /pub/isdn4linux/HiSax.



  2. Which version is current?

    Version 1.4.



  3. How is HiSax better as the original Teles driver?

    Karsten wrote to the FAQ team on 14.Oct.96:
         HiSax checks the hardware and the behavior of the IRQ, so that the  
         driver will only be loaded if it can access the register and the
         interrupts can be generated. 
         THEREFORE:
           loading twice is taken care of
           HSCX version 0 or F is taken care of
           BUSY with minicom only if :
           * REALLY BUSY
           * no MSN/EAZ
           * cable/line problems
    

    So, isn't that something?



  4. How do I install HiSax?

    Karsten Keil <keil@temic-ech.spacenet.de> described like this:
         It can never hurt to first backup the original kernel sources.
         Then go to /usr/src/linux (where the current source should be.
         The patch itself:
           zcat HiSax_1.1.patch.gz |patch -p1 >& /tmp/HiSax.log
         The -p1 is very important, otherwise all files will end up in new 
         directories under /usr/src/linux.
         Then look at /tmp/HiSax.log for errors/warnings/rejects, if there are 
         any then look at those files and correct by hand, if necessary.
    

    Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de> added:
         If you have Gnu Patch, you can also use "... |patch -s -p1 ". Then
         _only_ the errors will be reported. If you want a log, you can also 
         "... |patch -s -p1 | tee /tmp/HiSax.log". Then you get a logfile in
         addition to the screen output.
    

    Notice: In the meantime there are newer versions of HiSax.



  5. Are there patches to the HiSax driver?

    Yes. Karsten <keil@temic-ech.spacenet.de> wrote on 15.10.96:
         The patches (until the next version) will be "numbered" with letters
         and be available via FTP.
    

    FTP here means ftp.franken.de /pub/isdn4linux/HiSax



  6. What does the remark: "Known Bugs: incoming calls are only delivered, if channel == B-channel (same on teles)" mean?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 14.10.1996:
         1. The above statement is not quite correct:
            if ((channel &1)+1 == B-channel )
         2. I described the bug the other way around: if B channel 1 is
         being used by another ISDN device and i4l dials out, then the
         logical channel 0 from the VST is assigned B channel 2 ---> OK
         The other ISDN device hangs up.  Another call comes in for i4l,
         this time on B channel 1.  Since channel 0 is taken, and there is
         a fixed order B1->chan 0,2,4...  B2->chan 1,3,5... the call is
         not accepted.  (chan 2,3 is for 2 cards, etc.)  This happens only
         seldomly, and will be fixed soon (if I get a brilliant idea).
    

    [As far as we know, this was fixed in HiSax 1.2. Ed.]



  7. My ELSA card has 2 LEDs that light up like a neon sign. What does that mean?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote 14.10.1996:
         l1 is down
           => both LEDs blink ca. 1s on 1s off.
         l1 is activated (also though the telephone or whatever)
           => Blink in sequence 0.5 yellow 0.5 green
         In use
           => 1.5 on 0.5 off
              green   HSCX A active
              yellow  HSCX B active
         The constant blinking is caused when the card hangs, as I noticed
         during development. 
    



2.5 ICN driver



  1. Where can I buy the ICN card?

       Thinking Objects Software GmbH
       Obere Heerbergstr. 17
       97078 Würzburg
       Germany
       Tel: +49-931-2877950
       Fax: +49-931-2877951
       email isdn-support@think.de
       WWW http://www.think.de/
    



  2. Where can I get the newest firmware for my ICN?

    Torsten Hentschel <Torsten.Hentschel@DInet.de> wrote on 11.Oct.1996:
         The newest firmware should be available under the URL
           ftp://ftp.think.de/pub/isdn4linux/firmware/
    



  3. Is it possible to use several ICN cards in one computer?

    Yes, but starting with kernel 2.0.0 the configuration scheme has changed: With older kernels, a separate ICN module had to be loaded for each card. For 2 cards it looked something like this:
         /sbin/insmod -m /lib/modules/1.2.13/misc/isdn.o >/etc/isdn.map
         /sbin/insmod -m /lib/modules/1.2.13/misc/icn.o >/etc/icn.map
         /sbin/insmod -m -o icn2 /lib/modules/1.2.13/misc/icn.o >/etc/icn2.map
    

    With kernel 2.0.0 only one driver is necessary. NOTICE: 2.0.0 itself is buggy, better to use 2.0.18 or newer.
    Here is an example for one ICN-2B and two ICN-4B:
         /sbin/insmod -m /lib/modules/`uname -r`/misc/isdn.o > /etc/isdn.map
         #
         # ICN-2B, default port and mem (0x320, 0xd0000)
         #
         /sbin/insmod -m /lib/modules/`uname \
           -r`/misc/icn.o icn_id=icn0 > /etc/icn.map
         #
         # ICN-4B inserted at port 0x328
         #
         /sbin/icnctrl add 0x328 icn1 icn2
         #
         # Another ICN-4B at port 0x300
         #
         /sbin/icnctrl add 0x300 icn3 icn4
         #
         # Load firmware 
         #     ICN-2B: 1TR6
         #  1. ICN-4B, both S0 EDSS1
         #  2. ICN-4B, 1. S0: 1TR6, 2. S0: EDSS1
         #
         /sbin/icnctrl -d icn0 \
           load /etc/loadpg.bin /etc/pc_1t_ca.bin
         /sbin/icnctrl -d icn1 \
           load /etc/loadpg.bin /etc/pc_eu_ca.bin /etc/pc_eu_ca.bin
         /sbin/icnctrl -d icn3 \
           load /etc/loadpg.bin /etc/pc_1t_ca.bin /etc/pc_eu_ca.bin
    



  4. My ICN 4B is recognized only as an ICN 2B. How is the syntax for loading icn.o with insmod for the ICN 4B?

    dietmar <dietmar@highway.bertelsmann.de> wrote 08.Oct.1996:
         I use the following script to "start" the card:
           #!/bin/sh
           #
           # load modules
           /sbin/modprobe isdn.o
           /sbin/modprobe icn.o icn_id=icn0 icn_id2=icn2
           #                                ^^^^^^^^^^^^
           #                                Important here is the entry for
           #                                icn_id2. Then the driver recognizes,
           #                                that a 4B should be used.
           #
           # download firmware
           cd /usr/src/isdn4k-utils-1.3.97/icn
           icnctrl load download/loadpg.bin download/pc_1t_ca.bin \
             download/pc_1t_ca.bin 
           /sbin/isdnctrl verbose 2
    

    Jochen Wiedmann <Jochen.Wiedmann@Neckar-Alb.DE> wrote on 8.Oct.1996:
         modprobe icn icn_id=line0 icn_id2=line1 icnctrl io 0xd0000 0x340
         icnctrl add 0x340 line0 line1
         icnctrl load /sw/linux-i386/isdn4kutils-2.0.0/lib/loadpg.bin   \
                      /sw/linux-i386/isdn4kutils-2.0.0/lib/pc_1t_ca.bin \
                      /sw/linux-i386/isdn4kutils-2.0.0/lib/pc_1t_ca.bin
    



  5. What is "lanx75i.bin" in the ICN directory?

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



2.6 Working together with other ISDN devices



  1. 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 link 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.



  2. What do I have to watch out for to connect to Windows95?

    Torsten Krueger <torsten@nrw-online.de> wrote on 5.10.1995, that VJ (i.e. header) compression has to be turned off on both sides. Windows95 is very touchy if this option is rejected by isdn4linux.

  3. Can use only syncPPP with Windows95 to connect to isdn4linux?

    Frank-Christian Kruegel <fchk@gigabyte.ohz.north.de> wrote on 13.10.1996:
         Modem network: yes. This might also be possible with CINDI,
         WISPA etc. from Herbert Hahnewinkel (costs ca 80 DM per license, and
         every user needs one), but I didn't spend the money.
    



  4. A Windows95 user with a Fritz! Card poor transfer rates when connected with isdn4linux - what can one do?

    Sven Engelhardt <sven@sik.de> wrote on 13.10.1996:
         use AVMPort (Capi modem emulation for Win' 95), important: on
         Win 0.95 "Register on network" should be turned on.
    



  5. Where in Windows95 can I find the settings to get a terminal window when I log in?

    Sven Engelhardt <sven@sik.de> wrote on 13.10.1996:
         Control Panels/Software/Diskette CD-ROM Admin/Apptools/Dscript
           - Script administration for modem networks (after installing
           see Start/Programs/Utilities)
         So that the script receives something, with ISDN turn echo. With
         the AVMPort put E1 in the init string. 
    



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

    Markus Reicher <a9003436@unet.univie.ac.at>:
         When you call the Mac, he should set the protocol to X.75 or HDLC. 
         When he calls you, he must explicitly set the protocol (e.g. 
         by inserting an "X" for X.75) in the called number - otherwise the Mac 
         might call with the Leonardo protocol.
    



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

    Axel Jindra <jindra@uni-koblenz.de> wrote on 10 Jan 1997:
    You can't. He should use LeoPort (always included with the card) and switch the CTB port to the ISDN card. Then with FreePPP 2.5v2 <http://www.rockstar.com> set the Leo as the modem and configure FreePPP as usual. Then PAP/CHAP can be set.



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

    <interface> is the name of the IP interface that has been set up with
         isdnctrl addif <interface>
    

    (e.g. isdn0).



  9. My Cisco has a Bug - which IOS is recommended?

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



  10. When I call in to an ASCEND, does it cost a charge unit even if I get a "BUSY"?

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



  11. Is there a mailing list about Ascend?

    There is such a mailing list at the University of Hannover. It's called: ascend-users-de@uni-hannover.de The list is administered with LISTSERV, that means subscriptions go to LISTSERV@uni-hannover.de with the following line in the message body:
           subscribe [my mail alias address] ascend-users-de
    

    or simply:
           subscribe ascend-users-de
    

    Thomas Stinner <Thomas.Stinner@pop-siegen.de> wrote to us in addition:
            There is a more widely subscribed mailing list on  Ascend. 
            It is in English (so Ascend technicians also read and send
            messages there). 
            One can subscribe at:
            
               majordomo@bungi.com
    

    In the message body:

    subscribe ascend-users




  12. How do I switch on Raw IP on the Ascend Max with Radius?

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



  13. How do I switch on "uihdlc" encapsulation on the Max (an Ascend) with Radius ?

    "Framed-Protocol" must be set to "EUUI".



  14. What settings does an ELink need to work with isdn4linux?

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



  15. I can I use Internet with the German T-Online with i4l?

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

    A further example with dip instead of diald can be found at:
    http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html



  16. I've set up an Internet connection over T-Online as described in the groups, but the chat script fails ("Connect script failed").

    Gerhard Träger <gerhard@gt-priv.m.eunet.de>: wrote:
         In the mentioned version of chat, there is a small mistake in logf():
         it keeps writing in a 256 byte buffer until a line feed comes in. 
         "T-Offline" sends many more bytes for its login page. Therefore, either
         use chat without -v or enlarge the bugger (best with capacity checking).
    



2.7 Raw IP



  1. What is Raw IP?

    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.



  2. What are the advantages and disadvantages of Raw IP?

    Raw IP has both advantages and disadvantages.
    Advantages :
            * No handshaking 
              => faster connections
            * Authorization by Caller ID
              => fast, safe, no password
            * Fixed IP address
              => a broken connection can be continued by redialing
            * Higher data transfer rates
            * Better stability (smaller driver => almost no bugs)
    

    Disadvantages:
            * No handshaking 
              => Configuration must occur beforehand (IP addresses,...)
              => sensible to use for only for one provider at a time 
            * Authorization only by Caller ID
              => Dialin only possible from one's own number
            * Fixed IP address
              => must be known ahead of time, more IP addresses required,
                 no dynamic assignment of addresses possible.
    

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

  3. How can I run a script when a raw IP connection is established?

    Harald Milz <hm@seneca.muc.de> wrote on 28 Nov 1996:
    Make a tail -f of your syslog and attach a script that reads it, e.g. (all on one line!)
             tail -f /var/log/messages |
                 awk '/isdn0 connected/ { system ("ip-up") }
                 /hangup isdn0/    { system ("ip-down") } '
    

    or more elegantly in perl.
    [isdnlog might also be able to be programmed to do this - Ed.]



2.8 Modem emulation (use with ttyI* devices)



  1. Does modem emulation mean that I can toss out my analog modem?

    No, the name "modem emulation" refers only to the way your own computer communicates withe the ISDN driver. It has nothing to do with the way the data is sent by the ISDN driver over the telephone line - that is done digitally! That means that the ISDN driver will not be able to connect to a non-ISDN BBS
    The name is justifies, because any Linux software that can send commands to a modem can also via "modem emulation" send commands to the ISDN driver. And that's what we really want.



  2. Which device 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).



  3. How to I switch the modem emulation from X.75 to HDLC?

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



  4. 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&E<msn/eaz>".



  5. What speed should I set for the modem emulation?

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



  6. Is 'init-chat "" ATZ OK AT&E4 OK ATS14=3 OK' correct for 1TR6 (the other side has DSS1)?

    In principle, yes, when the EAZ is really 4 (at&e4) and HDLC should be used (ats14=3).



  7. Was does the register S13 exactly mean?

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



2.9 Async PPP

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

  1. 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. It is of course possible to route async PPP over ISDN (even though ISDN offers a synchronous connection. You can do this by attaching an ISDN modem to your computer. An ISDN modem has an RS-232 interface to the computer along with an ISDN interface to the telephone company. Assuming that you use PPP on a serial interface, then the asynchronous PPP packets are transmitted over the synchronous ISDN line. You can not use HDLC/syncPPP, otherwise your Linux machine will not accept and process these packets. Instead, you have to edit /etc/inittab:
            #
            # inittab       This file describes how the INIT process should set up
            #               the system in a certain run-level.
            [...] 
            # PPPD for asyncPPP over ISDN
            i1:45:respawn:/usr/sbin/pppd -detach silent noipdefault /dev/ttyI0
    

    This tells init that the asynchronous PPP should be started directly from this device. Notice that with the configuration, PPP and only PPP is using this line. There are other ways as well; you can start a getty on this tty, set up user that starts pppd, etc. If you want to learn more, you can read the FAQ that comes with the standard pppd.
    On the other hand, Sync PPP is a bit-oriented protocol, for which the original pppd cannot be used. Michael Hipp has written an adapted version called ipppd.
    ipppd can process PPP packets that arrive as HDLC frames. The PPP driver in isdn4linux sends all IP packets directly to the network layer, while all PPP protocol frames are send to the /dev/ippp* device. Thus ipppd can be viewed as a simple external network protocol program. If you with the help of the /dev/ttyI* devices log in to an external computer and from there start PPP, then you should use the "old" pppd. If the other side immediately begins the send frames, then you've probably reached a syncPPP machine - use the network device from isdn4linux with 'syncPPP encapsulation' and make sure that ippd is running and can contact at least one /dev/ippd*. Make sure you read the directions for isdn4linux on how to configure a network device.



  2. I would like to use asynchronous PPP. Can I use the network interface from isdn4linux?

    No, that's not possible. Asynchronous PPP encapsulation is only possible with the standard PPP package (pppd) through the dev/ttyI* devices (see the previous question). The network interface can only be used by ipppd for synchronous PPP encapsulation.



  3. How can I reduce the login time?

    See the answer for sync PPP, it also applies to async PPP.



  4. How can I increase my transfer rates with PPP?

    You can add more channels with MPPP (see the appropriate section). 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 (ASCII<32). If the other side goes along with this, you can increase the transfer rate by about 12%.



2.10 Sync PPP

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

  1. pppd, ipppd, syncPPP, asyncPPP .. what is they? What should I use?

    See this question in the "asnycPPP" section.

  2. How do I compile isdn4linux with syncPPP?

    To compile the kernel with syncPPP included in ISDN4Lilnux, you have to answer the appropriate questions in "make config" with "yes". Don't forget to load the module slhc.o before isdn.o, if VJ compression is not compiled into the kernel (e.g. if you have no PPP and no CSLIP in the kernel. [Note that the use of VJ is problematic and does not work reliably - however, the support should still be included in the kernel, since there can otherwise be side effects.]



  3. How does use isdn4linux with syncPPP?

    Synchronous PPP is simply another encapsulation for ISDN4Linux. This encapsulation is called "syncppp", therefore for example:
         /sbin/isdnctrl encap ippp0 syncppp
    

    Here the name of the interface is "ippp0". An interface with this name is always used to keep ipppd happy, since it checks the PPP version through this device. For now, all devices have to have the name ippp*, where "*" is a decimal digit.



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



  5. How do I configure a PPP connection with ipppd?

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



  6. How do I get ipppd to open a PPP connection?

    With the command "isdnctrl dial <interface>".



  7. How can I tell if a connection is unsuccessful (busy)?

    Andreas Berg <berg@studm.hrz.uni-siegen.de> wrote on 24 Nov 1996:
    I simply wait a couple of seconds, then check whether the default route exists, if so, then the connection is there as well.



  8. Where can I find the latest version of ipppd?

    It is on Michael Hipp's home page:
    http://www.sfs.nphil.uni-tuebingen.de/~hipp/isdn/linux/



  9. How can I use more than one ippp* device?

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



  10. 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 ippp<Nummer>. You can release the link with "pppunbind".



  11. 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/ippd* 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/ippp<number>.
    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. 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 closes the connection! You must allow overriding of addresses with the 'ipcp-accept-*' options, if you have set your own or the remote address explicitly. Try these options, e.g.:
        /sbin/ipppd :$REMOTE noipdefault /dev/ippp0
    

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

  13. According to the manpage, ipppd offers the option "dns-addr". But my ipppd refuses to take this option!

    Andreas Kool <akool@Kool.f.EUnet.de> wrote on 31 Dec 1996:
    In the Makefile for ipppd you have to activate the option "USE_MS_DNS"!



  14. How can I do IPX over ipppd?

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



  15. 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".
    Another tip came from G.Richter <richter@ecos.de> on 12 Dec 1996:
    The negotiation phase with a CISCO, as well as with an AVM MPR, was drastically accelerated by the option
            lcp-restart 1
    

    The ipppd seems to send the first LCP packet before it can reach the other side, and then waits 3 seconds before trying again, but with this option it waits only 1 second. For me the time to establish the connection sank from 5 to 2 seconds.

  16. How can I increase my PPP data transfer rates?

    You can establish more channels with MPPP (see the MPPP section). For everyone for whom this is too expensive, and who use asyncPPP there is another little trick. With the option "asyncmap 0", you can chose to not "escape" control characters (ASCII<32) (the default is to escape these characters). If the other side goes along, the transfer rate will be about 12% faster.



2.11 ISDN4Linux in a network



  1. I've successfully used the Internet with my Linux system using isdn4linux. Now I'd like to have another computer on my Ethernet profit from the Internet as well. But how?

    Thomas Pfeiffer <pfeiffer@pds.de> wrote on 5 Nov 1996:
    There are several choices, depending on what all you would like to do on the Internet from your LAN. Basically, there are 3 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.
    

    Eike Stepper <isdn@esc-net.de> added on 6 Nov 1996:
            There is a fourth possibility I'd like to add, although I've
            never tried it out (since I prefer the 1st choice and have a
            a Class C Subnet, hehe ;), but I have a friend who after
            some playing with the Linux kernel has actually gotten IP
            masquerading to work.
    It works somewhat like a proxy (when looking at the effect of hiding the IP). It doesn't offer any caching, of course, but masks to the outside all internal IPs with that of the ISDN interface. Don't ask me how the routing functions, but it works...
    If I'm not completely mistaken, my friend does this with a dynamically assigned IP ?!



  2. How does this fourth possibility work, Linux + Masquerading?

    Rainer May <r_may@khavi.desaster.heide.de> has put together a good set of instructions (see the next question).

    The following instructions were assembled by Rainer May <r_may@khavi.desaster.heide.de>.

  3. I have a local area network, (LAN) with computers based on several platforms - Win95, Win311, NT, Amiga (AmiTCP) and Macintosh (MacTCP) - all connected to the outside world through a Linux router. The Linux machine has an ISDN card. My ISP provides me with a dynamic IP address each time I log in. I want all the computers to reach the INTERNET not just the Linux box. How can I do this?

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

    Then do a "make dep", "make zImage", "make modules" and "make modules_install" to build the kernel. The installation of ISDN and PPP is explained somewhere else in this FAQ. We now continue with the following assumptions:
    * The ISDN system is operational; you can build a connection to your ISP.
    * The LAN is operational (i.e. Ethernet or Arcnet) and IP addresses have been assigned (i.e. 192.168.xx.xx). The Linux box can be reached by the other computers (i.e. by ping).
    Now we need to accomplish two things:
    * A computer in the LAN with a "non-local" IP address will request the Linux router to establish a connection to the provider
    * The Linux router itself will connect the computers in the LAN to the provider. It will also "hide" the computers in the LAN from the ISP, and all the IP packets will appear to come from or go to the router. While in fact the are coming from the computers in the LAN.

    We'll start with the second one: This hiding doesn't mean we're trying to cheat our provider. (Although it is possible to provide "clients" with a cheap connection to the Internet). It is required technically. Only the IP address of the Linux box is known to the provider. So the Linux box must "mask" all the packet with it's own IP address and keep track of which computer in the LAN sent which packet so the it can return the incoming packets to the correct computer in the LAN. Luckily this function is built in kernels>=2.0.0 and is called "IP-Masquerading". Here's how it works:

    A computer on the LAN sends a packet that contains (next to the IP address and target port of the receiver) it's own sender address (in IP form) and an answering port. The masquerading Linux router will replace this address with it's own and the answering port with a free one. Under this free port the sender address is stored. Now when a packet comes in from the Internet the receiver address and port gets overwritten with the return address and port and the packet is send to the correct computer in the LAN. Packet for packet. This only works if the application sends along a return address, telnet, http, (irc, tcp differently) all do this (ping doesn't work).

    To get TCP and IRC to work while masquerading 2 modules need to be loaded:

         /sbin/modprobe ip_masq_ftp
         /sbin/modprobe ip_masq_irc
    

    Then the forwarding rules in the kernel add forced to masquerade:
         /sbin/ipfwadm -F -a m -P all -S 192.168.123.0/24 -D 0.0.0.0/0 -b
    

    The ipfwadm program is available via anonymous FTP at
    ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz
    In this example the LAN addresses 192.168.123.0 to 192.168.123.254 are used. To keep things simple we make the Linux router 192.168.123.1
    The above line masquerades all the packets coming from 192.168.123.x to the outside world. This has a disadvantage: all the packets inside the LAN also get masqueraded. You can prevent this by adding more rules (man ipfwadm is recommended reading if you want to do this).

    Hint from Ralf Rudolph <ralf@artifex.de>:
        The way I see it, that doesn't matter, the computers in the LAN will
        continue to communicate over the fake IP addresses. You can test this by
        turning off your Linux box (shutdown). Nothing will happen. This is because
        masquerading is a forwarding rule in the firewall and will only be used 
        when forwarding (literally "passing on"). On the LAN nothing is forwarded 
        so nothing is masqueraded, unless you have multiple Ethernet cards in one
        computer then you need to enter some extra firewall rules.
    

    Answer: This is actually not entirely true; although it does no harm. We have accomplished "hiding" the LAN from the provider. We now want the Linux box to automatically connect to the outside world whenever a computer in the LAN requests it. All the computers within must address their packets for the outside world to the Linux box, which will take it from there. This is very easy. Most TCP protocols (for Windows, Mac) all have the option of specifying a "default gateway" or "gateway". You must specify the local address of the router. You cannot enter the IP address which you receive when you connect to your provider because you don't know which address your going to get, and also it's different every time you log in.
    The last step is getting the ISDN system to do "Dial on Demand". This is can be done in two ways.
    * Use synchronous PPP, in other words "ipppd". The only thing you have to do is to make sure that the default route point to the device (ippp*) you made with isdnctrl. Warning: the kernel remove this route when the connection is broken. You have to reestablish the default route after the line goes down. You can do this (for example) in the file /etc/ppp/ip-down. The risk of this method is that applications running on the LAN will make the Linux box build a connection for each resolve request, keepalive packet or ARP broadcast they send (your phone company will be very grateful).
    It can happen that requests by the LAN can take a long time. I don't know whether the kernel or ipppd can't handle the first outgoing packets, but it's always a good idea to push the red button in Netscape for example and then reload the first page you're accessing right after starting up Netscape.
    The configuration of ipppd is explained in detail elsewhere:
    http://www.lrz-muenchen.de/~ui161ab/www/isdn/
    * Use asynchronous PPP or SLIP/CSLIP for your connection. For this you can use a program called "diald" [4]. This has several advantages, it's highly configurable; you can for instance specify that there are to be no connections made between 9 and 12 am or that name server request don't trigger the ISDN device. For those of you that don't want to bother with a lot of configuration options that's fine; the default configuration can be used without danger for life or money (German expression).
    Now,
    if the masquerading rules are set,
    if the PC in the LAN all know that the Linux box is the gateway,
    if "ping abc.edu" typed in on the Linux console builds up a connection to the Internet provider
    then also all other machines in the LAN should be able to access the Internet.



  4. How can I allow the users in my local network to use the ISDN card(s) in my Linux PC?

    Rainer May <r_may@khavi.desaster.heide.de> wrote on 10 Dec 1996:
    Um ... "modemd" on the Linux side, along with appropriate software e.g. for W95 (emulates a comport over a telnet connection) makes that rather nice....

  5. Where can I find "modemd", and for which platforms are there "clients"?

    Rainer May <r_may@khavi.desaster.heide.de> wrote on 10 Dec 1996:
    In theory (and in practice too) this can be done by any comfortable telnet client. There should be some uucicos for this as well (under DOS fxuucico together with fxwtcp, for example).
    If you generally want to offer all applications a kind of "remote COM port", then there is COMT for Windows (95), "telser.device" for Amigas. There is supposed to be something like this for the Mac as well (it's system architecture is very inviting for this), but I don't know any names.
    modemd (which is really just a one-liner in PERL, if I remember correctly) works here with COMt and telser.sevice with no problems.

  6. Where can I find COMt?

    Oliver Hahn <oliver@bbtt.de> wrote on 15 Dec 1996:
    Try a Simtel mirror (e.g. ftp.funet.fi) in the directory pub/simtelnet/win3/inet. The thing is called comt200.zip. ftp://ftp.funet.fi/pub/simtelnet/win3/inet/comt200.zip



  7. How exactly does this "PERL one-liner" "modemd" look?

    Marc Neitzner <marc@zeus.han.de> wrote on 15 Dec 1996:
            #!/usr/bin/perl
            select((select(STDOUT), $| = 1)[$[]);
            select((select(STDIN), $| = 1)[$[]);
            exec "cu","-E","''", "-l", "$ARGV[0]";
           die "$0: Cannot exec cu: $!\n";
    

    And then it has to be started in inetd:
            modem           20006/tcp       modemd  # Modem service via TCP
            isdn            20007/tcp       modemd  # ISDN  service via TCP
    

    Disadvantage: comt-2.0 is only "visible" to 16-bit applications. The use under win95 and Windows NT therefore is restricted to 16-bit stuff.



2.12 Isdnlog



  1. isdnlog doesn't always show the High Layer Compatibility (Speech, Video,...) as I'd like it to.

    Gernot Zander <hifi@scorpio.in-berlin.de> posted a patch on 6.10.1996 to the mailing list that adjusts isdnlog



  2. Can I see the service type from an incoming 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" ...



  3. 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@temic-ech.spacenet.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.



  4. 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, the next version of isdnlog (currently 2.52) will offer the possibility to work with a second "re-poled" Teles card, i.e. the RX line is connected to the TX connection of the card. The RX line of the card should not be connected to any line! Because of this setup, the Teles card cannot be used for anything else. The whole thing looks something like this:
     B  3 -- RX+ 2a ---------------\
     U  4 -- TX+ 1a -- open         ------------
     S  5 -- TX- 1b -- open         ------------  card
        6 -- RX- 2b ---------------/ 
    

    A third (theoretical) possibility exists for those who have their own PBX to which the other devices are connected. If the PBX can protocol all outgoing calls, this can be read (ustally over a serial port).
    There is a reason why isdnlog has not support this until now. To evaluate this data, isdnlog has to be able to access the date immediately after the RELEASE COMPLETE, before any new data is sent on the D channel. The PBXs tested up to now have all been too slow (in particular the widely used ISTEC). The only possibility is to combine the data afterwards. But then there are problems with synchronizing the different times. Whoever want to attempt to do this is welcomme (I'll make the logs from my Ackermann Euracom available - Matthias Heßler <hessler@wi-inf.uni-essen.de>).



  5. Does isdnlog also calculate the new pricing plans of the German Telecom (City Weekend, City Plus)?

    Since the switching stations don't get this information, the charge units are not sent correctly. But the next version of isdnlog (<2.52) will be able to do this.



  6. How can I get isdnlog to calculate the charges for the Dutch telephone company?

    You need to set "COPTS=--DISDN_NL" in the isdnlog Makefile and recompile.



  7. How can I get isdnlog to calculate the charges for the Swiss telephone company?

    You need to set "COPTS=--DISDN_CH" in the isdnlog Makefile and recompile.



  8. 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:
    !link ftp://ftp.region.trier.de/pub/unix/linux/sources/network/isdn/netload-0.92.isdn.tar.gz;
    Simply start with netload isdnxx



2.13 Isdnbutton



  1. What script should I use to bring down isdnbutton?

    Markus Gutschke <gutschk@uni-muenster.de> (the author) wrote on 21 Dec 1996:
    Here I use something like:
            #!/bin/bash
            #ISDNBUTTON: Disconnect ISDN
            /sbin/isdnctrl list isdn0 | grep Outgoing | grep -q 0251XYZ &&
                 /sbin/isdnctrl delphone isdn0 out 0251XYZ
            /sbin/isdnctrl hangup isdn0
            exit 0
    

    [At the line ending with "&&", the next line must be continued!]
    and
            #!/bin/bash
            #ISDNBUTTON: Connect ISDN
            /sbin/isdnctrl list isdn0 | grep Outgoing | grep -q 0251925020 ||
                 /sbin/isdnctrl addphone isdn0 out 0251925020
            exit 0
    

    [At the line ending with "||", the next line must be continued!]



  2. What do the different states of isdnbutton mean (green, yellow, red)?

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



2.14 Audio

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

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



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



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



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

    Siehe dazu die gleiche Frage im Abschnitt "Audio" im Kapitel "Troubleshooting".



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



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



2.15 Diald



  1. How can I combine i4l with diald?

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



  2. Are there any example scripts for diald?

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



2.16 Chargeint

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

  1. How can I use the "chargeint" patch, so i4l will hang up before the next charge unit begins?

    Sascha Ottolski <sascha@alzhimer.isdn.cs.tu-berlin.de> wrote:
         I use chargeint, it works great; for me charge units come during the
         connections, but I think that can be adjusted by hand. The two patches in
         isdnlog-2.50/contrib/chargeint are for the kernel sources and for 
         isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
         Makefile). The kernel and isdnctrl of course also have to be recompiled.
         Then start isdnlog with the -hx option, where x is the number of seconds
         left until the next charge unit. Then chargeint will hang up. In the
         start script for ISDN, define a huptimeout as usual to activate the
         chargeint:
         /sbin/isdnctrl huptimeout ippp0 80  # in sec;
         if needed /sbin/isdnctrl chargeint ippp0
    

    Olav Brinkmann <olav@max.north.de> wrote:
         The chargeint always hangs up two seconds before the end of the charge
         unit. isdnlog, if compiled with -Dchargeint, sets the length of the
         charge unit (i.e. Charge Interval) according to the time of day and the
         date. An additional parameter for "-h" will reduce this length of time by
         the given value. This additional parameter should not be used with
         chargeint, otherwise chargeint will end the connection too early. This
         error increases with the number of charge units. Therefore: "-h0" to
         avoid this problem. 
           > /sbin/isdnctrl huptimeout ippp0 80  # in sec;
         In this example is can be much short; I use 5 seconds. Then I can use the
         last charge unit up the last 7 seconds (huptimeout + 2 seconds
         "chargeint reserve").
           > /sbin/isdnctrl chargeint ippp0
         Not needed; taken care of with by isdnlog with "-h".
    



  2. With which drivers can I use the chargeint patch?

    You can use the Teles or the HiSax driver. Of course, isdnlog must be running correctly (isdnlog 2.50 has to be patched to 2.51 to run with the HiSax driver).



  3. When does it not make sense to use the chargeint patch?

    There are problems when the IP is assigned dynamically. Then a broken connection cannot simply be restarted (since the IP address has changed). The interrupted FTP, telnet or WWW connection must then be newly established.



  4. How does the chargeint patch work?

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



  5. How do I configure the chargeint patch?

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



  6. Where can I find more detailed instructions for the chargeint patch?

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



  7. 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 with "isdnlog -t2". For setting the clock, see the "Miscellaneous" section, the question: "How can I set the clock of my computer with ISDN?"



2.17 Dial-In



  1. How can I enable others to login via ISDN?

    The same way as via a normal serial port. Start a getty (mgetty from Gert Doering is highly recommended) on one of the ISDN devices with modem emulation (/dev/ttyI*). The entry in /etc/inittab looks like this:
         #
         # ISDN Lines
         #
         I0:56:respawn:/usr/local/sbin/mgetty ttyI0
         I1:56:respawn:/usr/local/sbin/mgetty ttyI1
    

    Then the init string needs to be entered in the mgetty.config, since mgetty needs to know which MSN or EAZ to "listen" to. Here is an example for /dev/ttyI0
         port ttyI0
         modem-type data
         speed 38400
         init-chat "" ATZ OK AT&E0 OK AT&B512 OK
    

    The example sets the EAZ (with 1TR6-ISDN) to 0. For Euro ISDN, the MSN (without area code) would be given instead of the 0 in "AT&E0". For X.75 the block size is set to 512 bytes. Alternatively you can enter the entire configuration onto a single line in /etc/inittab (here printed on two lines!):
         i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 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 necessary AT commander by hand. When finished, enter the command AT&W0, then the kernel notifies iprofd to write the current configuration to the file. From now on it is enough to start iprofd in you isdn init script, and to initialize the appropriate ISDN tty devices with ATZ



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



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

    Yes, it is. You have to compile mgetty with "-DAUTO_PPP" and then in the file /usr/local/etc/mgetty+sendfax/login.config, the line
    #/AutoPPP/ -    ppp     /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
    

    should be uncommented and edited.



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

    G. Richter <richter@ecos.de> wrote on 17 Dec 1996:
    In /etc/ppp/pap-secrets, each user must have the following line, if you want to allow in only certain users:
            <login-name> * ""
    

    or to allow all users simply:
            * * ""
    

    [The latter can also be achieved when the file pap-secrets does not exist - Ed.]
    In either case, ipppd should be started with the options "login" and "auth".



  5. How can I allow several people to call in to me at once?

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



  6. Can I use just one MSN to serve customers both with a getty (modem emulation and with the network?

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



  7. Can I get the advantages of a multiple-PBX line (one MSN for all ISDN ports) with a multiple-device line [German Telekom]?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 7 Nov 1996:
    According to various articles in the newsgroups, you can get this for multiple-device lines as well, although most of the Tele-Comics don't know about it and it doesn't work in all switching areas.
    [This is called a bundled line - Ed.]



  8. When a Fritz! card calls with X.75, Linux crashes. What can I do?

    Karsten Keil <isdn4@temic-ech.spacenet.de> has written a new driver (the "HiSax driver"). It includes a bug fix for this. Also see the questions General HiSax and the section HiSax driver in this FAQ.



  9. An AVM (A1 or B1) cannot call in to me with X.75, either under Win95 or under OS/2?

    This is a known problem, see the last question. This has now been solved in the HiSax driver, and Karsten Keil <keil@temic-ech.spacenet.de> has posted a patch for the Teles driver as well.



  10. How can enable a Fritz! card to call in to me?

    As long as the patch form Karsten Keil <isdn4@temic-ech.spacenet.de> is not applied: only with HDLC - if the card tries to call in with X.75 isdn4linux likes to hang. Therefore you should set up a separate MSN for Fritz! cards with HDLC. The HiSax driver also has the same problem. Note from Roland Rosenfeld <roland@spinnaker.rhein.de>: If you've used up your three MSNs, you can play tricks with the service recognition, e.g.
         MSN     Analog                          Digital
         ===     ======                          =======
         1       Voice + ISDN answering machine  HDLC, PPP
         2       Voice (Mother)                  Net interface
         3       Modem/Fax                       X.75
    

    If you want, you can install another answering machine on MSN 2 that plays a totally different message...

  11. Which ISDN routers are there that are OS-independent?

    Sakari Aaltonen <sakari@picea.hut.fi>:
         There seems to be a lot of routers with 1 BRI, those that have more 
         are expensive (Cisco 4000 with four connection about DM 15000.--,
         Ascend Pipeline 400: ?). 
    

    Jürgen Goeritz <juergen@bart.simpson.inka.de>:
         ISDN routers with 4xBRI are less expensive from a German  
         manufacturer - see http://www.conware.de/
    

    Jochen Wiedmann <Jochen.Wiedmann@Neckar-Alb.DE>:
         A Banzai! might also help. As hardware any PC with (e.g.) Teles
         cards would work, the software costs around 800-1000 DM.  I
         personally don't like Banzai! routers at all because of their
         poor diagnostic capabilities, in particular remote maintenance as
         pretty much impossible (unless you have the SNMP capable version,
         but it costs somewhat more). But when they run, they run stable
         and as opposed to Ciscos they are capable of real callback.  From
         Cisco as an alternative there is the Cisco 2503 for about 5000
         DM, that has only one Port, but two serial interfaces, on which
         you can connect a TA (each about 800 DM).  Finally, last, not
         least you can bit the bullet and get several Cisco 1003s
         (ca. 2000DM each). In case the price does not play such a bit
         role, I would take this variation. I simply like Ciscos. :-)
    

    Winfried Haug <haug@seicom.net>:
         You need to decide, which is more important to you:
           (1) saving money
           (2) saving time
         For (1) there are two solutions:
         - Banzai! (now called Flux or Concorde..)   
           -> http://www.concorde.de/ (from cls, www.cls.de)
           -> http://www.flux.de/  (from INS, www.ins.de).  
           Based on at least a 386 and routes Ethernet -> ISDN, works with
           many cards, the programmers themselves work with Teles.
           Disadvantages: not cleanly remotely configurable, unless you
           buy the SNMP option, which makes it more expensive and
           therefore more unattractive...
         - ISPA + PCROUTE   
           -> http://www.biochem.mpg.de/~heha/   
           also requires a PC (also works with 286). Has much 
           fewer options than Banzai, Flux, Concorde etc., and is not at all 
           remotely configurable, but runs totally stable. 
           PCROUTE costs nothing, ISPA now costs 70.-, perhaps you can still find 
           version 2.41 that runs unlimited even without a key.
         Both solutions support pretty much all ISDN protocols (including
         the diverse HDLC variations etc..). Support for SPVs (soon
         obsolete) and D64S is there at least for Teles cards (depends on
         the CAPI, not the software). You can get old PCs for <1.000 DM,
         the Teles card also doesn't cost much but die Flux, Concorde
         software is expensive if you get SNMP as well -> you are then at
         2.000.- and you could just as well buy a cisco1003...  (2) IF you
         don't want to assemble anything yourself, you can take with 4
         individual Cisco1003 routers, at around 2300.- and all of your
         problems are more or less solved (other than the diverse IOS
         bugs...). But CISCO router can't do "correct" callback... and as
         protocol only PPP (although there are IOS versions, that don't do
         it cleanly) and CISCO-HDLC.  If you need 4 BRIs -> CISCO 4000,
         but then you should get the 8 BRIs, costs just under 2.000 DM
         less. But then you have to invest somewhat more than
         10.000.-...:-( Another variation: ELSA LANCOM MPR, also costs <
         2.000 DM, can do callback, various protocols (HDLC, X.75, PPP)
         and is really nice to configure.  At the Interop, a Shiva ISDN
         Router with a/b switch for 1600 DM was exhibited, but with 4 BRI
         ports you'd be somewhat over 6000 DM...  Then there are
         several manufacturers that offer simple BRI routers (prices
         tending to fall well under 2.000), e.g. ASCEND, MIRO etc...  But
         if you must have 4 BRIs, there's only the choice between Cisco
         and Ascend..  uh... and since you asked about Ascend, I have a
         price list here from Ascend (July 96), the max400 WITHOUT BRI
         port already costs 15.750.-, the 4-way BRI is then an additional
         11.250 DM... I think that's enough about Ascend...:-(
         In case you have nothing against a PC solution, you could also
         use netGW from netcs (http://www.netcs.com). This is software
         for SCO, AIX, Sun etc. and is based on PCs e.g. the cards from
         Diehl ISDN. netGW should offer by far the most protocols and
         options, but then you have to become familiar with a PC the
         problems that come along with it.  A SCO solution with 4- ISDN
         cards + Software costs also around 10.000 DM, however.  We have
         now returned almost all of our Banzai! and Co, since in the long
         run they are only poorly remotely administrable and are nowhere
         near as stable as Cisco or other stand-alone routers...  In the
         end, it is a decision of you would rather spend more money, and it
         runs right away, or you build your own PC router and have to play
         to get it going.  You have to decide for yourself, although Teles
         can drive you to desperation since the CAPI versions often have
         huge problems as normal users can't get any older
         versions. Support at Teles is not that great (toll 0190-8 phone
         number), and you can easily spend 20-30 DM on support call
         without getting an solution to your problem...
    

    Christian Kratzer <ck@toplink.net> added on 19 Oct 1996:
            Cisco is even cheaper than Linux for PRI. Or have you checked what
            PRI cards for PCs cost. ;) Then you need the right drivers etc...
            Then you'll quickly be well over 20k. You can get a 4000 with PRI 
            for 12-15kDM. And if you try to it with individual SOs, then it really
            gets expensive...
            For dialup up to 4 x BRI (which is what fits into one case), Linux
            is unbeatable for price/performance. Even a second machine still
            makes sense.
            But then you need to start thinking about a PRI solution. Both
            run stable and with not problems for us.
    



2.18 Leased lines



  1. How does establishing and ending a connection work with D64S without signaling?

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



  2. With i4l, how can I successfully use the Teles card on a D64 leased line?

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



  3. Can I connect two computers with ICN cards over a D64s leased line? How? Where can I find documentation?

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

    G. Richter <richter@ecos.de> added on 3 Jan 1997:
    This has worked for use (with a CISCO router as partner) with no problems for nearly two months.
    Make sure the EAZ is set to 1 and the the line is set to leased with isdnctrl, the rest is just like a dialup line (except telephone number and timeouts)
    An example script is under http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html



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

    Tomas Pospisek <tpo@spin.ch> wrote:
         Yes, you can (at least in Switzerland). You have to make sure you are
         on the correct channel ;)
    



  5. I have a leased line connection to a ICN, however the ping times are too long.

    Fritz Elfert <fritz@wuemaus.franken.de> wrote:
         TIMER_BCREAD = Intervall für B-Kanal-Poll (unit = jiffies = 20ms)
         TIMER_DCREAD = Intervall für D-Kanal-Poll           ditto
         FLAG_RBTIMER (and other FLAG_...) call the appropriate functions from the
         main time dispatcher.
    

    Tomas Pospisek <tpo@spin.ch> wrote to us:
         Because of the ping times, I've reduced BCREAD, (was 3 before)
         [since 2.0.16 at 1, Ed.]
         The resolution of the timer in Linux is only 20ms, so
         ICN_TIMER_BCREAD=0 does nothing. In addition, this is only a
         cosmetic problem. Both (sending and receiving) routines empty the
         queue.  i.e. when there is real traffic, in each cycle is not only
         just one fragment sent, but up to 16.  The card buffer contains 16
         fragments. Only with ping and Co. is this visible. FTP (or also
         Z-Modem over ttyI) can do close to 8k cps without problem. In
         addition, in each cycle both directions are served, so the
         calculation 20ms-receive + 20ms-send is therefore incorrect.  Even
         not considering this, 40ms is a really good value. Many ISDN
         routers (also i4l before the reduction to BCREAD=1) have 60ms and
         more.
    



2.19 SPV



  1. What is a SPV?

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



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



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



2.20 Channel bundling



  1. What is channel bundling and how can I use it?

    Channel bundling is currently supported by isdn4Linux in two variations:
    * Raw Bundling (configuration of so-called slave channels)
    * MPPP (based on syncPPP)
    Both variations have their own advantages and disadvantages. See the following questions.



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



  3. How do I use 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>").



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

  5. Is there are working example script for raw bundling?

    Yes, the FAQ editors have such a script from Robert O'Kane <okane@em.uni-frankfurt.de>. It can be obtained either from Robert or from us.



  6. What's the current situation with raw bundling?

    Robert O'Kane <okane@em.uni-frankfurt.de> wrote on 27 Dec 1996:
    After starting up 2.0.27 I have started again with channel bundling with a bit more success than before.
            1st: There seems to have been a change in the "BogoCharsPerSecond"
                 calculations. This now gives values (for me) from 60 ->101.
                 The values used by the isdn-net code for starting the slaves is
                 still set to 7000 cps!  Needless to say it doesn't see these
                 values anymore. After setting it to 75, I get the channels
                 starting again.
            2nd: With 1 B-channel,  I get   8K /sec (full)
                 With 2 B-Channels, I get ~14K /sec (~88 % util.)
                 With 3 B-Channels, I get ~18K /sec (~75 % util.)
                 With 4 B-Channels, I get ~15K /sec (~50 % util.)
    

    All cards Teles 16.3, Euro ISDN, Linux 2.0.27, Libc-5.4.13, binutils 2.7.0.3, Pentium 100 <-> 486DX4/100.
    This is with rawIP/HDLC, 15sec slave delay/ FTP transfer of 100Mb file. These results are not the most accurate but show the general results. There was no apparent difference when using the Teles or the HiSax drivers.
    While watching the bogo-cps (isdnctrl verbose 4), I can see the values for each B-channel holding around 80 until the 4th B-channel kicks in. Then the values become erratic.
    1 channel 101, 2nd 40, 3rd 0(!), 4th 40....
    Question: How could I check if the isdn-net interface is being starved or if the scheduling algorithm is just not being too smart at these bit-rates?
    Has anyone else done/had these kinds of experiences ? Robert O'Kane <okane@em.uni-frankfurt.de> added am 1. Feb 1997: I now use 2.0.28 and HiSax 1.5 with NO difference in bandwidth. (I also choose 70 for the CPS trigger and 30 seconds slave delay). Could you also try setting isdnctrl verbose 4 and watch the bogocps calculations for the channels during a ftp transfer. What I think you will see is that some of the channels don't send at full speed. I think this is a problem with the kernel/IRQ interaction not feeding the channels enough data. Could it be that the kernel buffers are not large enough for more that 3 channels of data? This could be an explanation of why the user-space PPP program can get more data our and into the kernel.



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

    e.g.:
           isdnctrl addlink ippp0
    

    This is different to other encapsulations of isdn4linux! With syncPPP, there is no automatic activation of slave devices.



  8. How can I use the MPPP material?

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



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



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



  11. I use MPP. Unfortunately it hangs when just one packet is lost.

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



3 Troubleshooting



3.1 General



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

    The following steps are recommended:

       1. First, check everything is working when booting.
          Are there unusual error messages in /var/log/messages?
          Are all programs active that should be started at boot (check with
          ps, or fuser /dev/xxx)? HiSax won't start if something isn't right.
          The old Teles driver, on the other hand, will appear to start even if
          it is not working. See the questions under Troubleshooting Teles.
       2. Second, try calling with a telephone. The number should be shown in
          /var/log/messages. Otherwise, perhaps the driver was incorrectly 
          started?!
       3. Third, continue experimenting using modem emulation. Because of the 
          differently service recognition, you can't get the telephone or fax to
          ring, so we have to try something else. Open 2 different consoles as 
          root, and on each run "minicom -s"... in the first set "Serial Port
          Setup Serial Device" to /dev/ttyI0, and the other to /dev/ttyI1. Then 
          choose "Exit" and start the modem emulation with "ATZ" and "AT&Exxxxxx"
          (where xxxxxx is your own MSN without the area code). Then you can start
          On the first console you can dial your own number with ATDxxxxxx. On the
          second console you should now see "CALLER NUMBER: xxxxxxx" and "RING".
          Accept the call on the second console with "ATA", and you should then 
          see the message "CONNECT 64000/X.75" on both consoles. You can then send
          characters to the other console by typing (to see the characters on your
          own console, turn on local echo).

    4. Fourth, try calling a known ISDN BBS. If you don't know of any, try Gernot (see "Are there sites that offer guest access where I can test my isdn4linux setup?"). If you have problems with the modem emulation, see "Troubleshooting Modem Emulation"

    5. Fifth, try configuring the network interface or ipppd. Experience shows that they cause beginners (and not only beginners!) the most problems. To make things easier and you're happy with asyncPPP (to see what asyncPPP means, see the question "pppd, ipppd, syncPPP, asyncPPP - what is that? What should I use?"), you can use the normal pppd with modem emulation (i.e. /dev/ttyI*).

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



  2. I have problems compiling isdn4k-utils-2.0. "ncurses.h" or "panel.h" is not found. But curses.h does exist.

    You need to set a link:
         ln -s /usr/include/curses.h /usr/include/ncurses.h
    

    Andreas Herbst <herbst@wiwi.uni-frankfurt.de> wrote:
         I haven't yet seen a newer distribution (neither Slackware 
         nor Debian) that contains a complete ncurses package.  
         /usr/include/ncurses.h is there - sometimes it's called curses.h, 
         but the include file panel.h must come from an original 
         ncurses package.
    

    Thomas Baetzler <bath0011@FH-Karlsruhe.DE> replied:
         With Debian you need to install not only ncurses nut also ncurses-dev
         if you want to compile anything with it.
           bash$ dpkg -S panel.h
           ncurses3.0-dev: /usr/include/panel.h
    



  3. Why does 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.



  4. 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. In the instructions for my NTBA it says that a crossed a/b cable pair has no effect on the operation?

    Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 21 Jan 1997: But only if for all devices a/b or a2/b2 are incorrect. When the devices work individually, then the order of the receiving/ sending pair is correct.



  6. How can I test whether a a/b cable pair has been crossed?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 21 Jan 1997:
    I simply start with the Western plug: 4 lines are used:
           | | | | 
           | | | |
           1 2 3 4
    

    Then I can try to switch 1<>4 or 2<>3 or both. Never switch the outer with the inner lines . [That would cross the RX and TX lines and nothing will work - Ed.]
    Gernot Zander <hifi@scorpio.in-berlin.de> added on 21 Jan 1997:
    I'm assuming that you have connected the Teles not with the RJ45, but rather with a bus line attached to the NT. (?) Then open it up and switch a1 and b1. Try it out. If it doesn't work, put them back and switch a2 and b2. If it still doesn't work, try switching them both, although then I'd suspect that the RJ45 cable from the Telekom is crossed (which would then switch _both_). As long as {a|b}1 and {a|b}2 are kept, nothing can break. If you want to be sure, before plugging it in measure between pins 4 and 5 and between Pins 2 and 6 on the socket; there should be no current, but between 3 and 4 and between 6 and 5 should be 40 V, 6 and 3 positive
    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.
    drauf.
    Of course you can check the Cable FAQ and simply test everything with a multimeter.



  7. Even though I deactivated the signalling for incoming calls, an incoming caller does not get a BUSY signal, although neither i4l nor any other ISDN device is configured to use that MSN. Even when every usable B-channel is used by i4l or another user an incoming caller will not get BUSY. The same is true when I deactivate audio support for i4l.

    i4l misbehaves by sending an ALERT when the telecom signals an incoming call. This ALERT is not canceled by a RELEASE later on. That's why the telecommunication company will give a normal ring instead of a BUSY signal.
    Karsten Keil <isdn4@temic-ech.spacenet.de> wrote about this on 11 Oct 1996:
         As I don't have a patch at hand I'll explain it this way: search for
         CC_ALERTING_REQ in linux/drivers/isdn/teles/callc.c and comment out that
         line. It should look like:
            if (((chanp->chan & 1) + 1) & chanp->para.bchannel) { /* \
                    chanp->is.l4.l4l3(&chanp->is, CC_ALERTING_REQ, NULL); */
                    FsmChangeState(fi, ST_IN);
                    if (chanp->debug & 1)
         That's the clean solution. For data connections there is no ALERT required
         or expected. Voice applications only need ALERT when the want to wait for
         several rings.
    

    Update by Karsten (14 Oct 1996):
           There is no alerting any more [in older HiSax versions - Ed.]
    

    An improved HiSax has been released that included an alerting function that works.

  8. When the router is active, incoming calls from customers hear ringing, even when we're on the line with a support call. This gives the impression that our employee doesn't answer the phone.

    Jan den Ouden <denouden@groovin.xs4all.nl> recently posted a patch. Search archive or contact Jan directly.



  9. I closed all ISDN applications. Why can't I unload my ISDN modules ("isdn: Device or resource busy")?

    Is some program using an ISDN device? Did you remove all getty's?
    Are isdnlog, imon, iprofd, etc., still running?
    Maybe there is still a route on your net interface and it's not yet deleted with "route del xxx"?
    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".
    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.
    Sporadic errors of this type can be fixed by inserting sleep commands between the unloading commands.



  10. I'm now certain I've closed all ISDN applications. I still sometimes cannot unload the ISDN module ("isdn: Device or resource busy")...

    Sporadic errors of this type can be fixed by inserting sleep commands between the unloading commands.



  11. I still can't unload the modules. I use callback.

    See the question "Irgendwie kommt der Module-Count bei Callbacks durcheinander. Wie kann ich jetzt meine ISDN-Modul entladen?" under "Callback" in the section "Troubleshooting".



  12. My charge "impuls typ A" [German charge impulse at the end of a connection] is not correctly transmitted, although the Telekom says they activated it.

    Peter Gramlich <peter.gramlich@wiwi.uni-karlsruhe.de>:
         In some cases the Telekom activated the charge impulses only for some
         services. It seems they have to activate it separately for each service
         (voice, data, G4-fax,...).
    



  13. My PBX produces a reset on the SO bus every hour, after which isdn4linux no longer accepts any calls?

    With HiSax 1.5 isdn4linux will survive the bus reset..



  14. My Ascotel PBX crashes i4l (connected on my internal bus).

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



  15. My Teles 16.3 works behind a Quante IS-2 (identical to the Ackermann Euracom 181) after a reset, only when I:
            1. unplug the PBX
            2. turn off the PC 
            3. plug in the PBX 
            4. turn on the PC 
    



    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 13 Jan 1997:
    That should be taken care of with HiSax 1.5. (TEI remove problem).



  16. I'm connected through an old PBX. Any attempt to dial out is refused with cause 64?

    Wolfgang Hamburg <wh@jumping.baltic.de> wrote on 8 Oct 1996:
         Cause 64 means "invalid information element contents" and is from the
         12TR7 protocol that some PBX (in our case Octopus-M) use internally.
         12TR7 includes 1TR6. I don't know more about it. My source was a nice
         guy from the Telekom. They have "Richtlinien" (guidelines) that describe
         the protocols.
    



  17. I can't get my PBX, a proprietary Siemens Hicom, to work?

    Sven Engelhardt <sven@sik.de> wrote on 20 Jan 1997:
    The technicians have to always work a bit longer on the digital extensions. Tip: there is a setting for the extension called "DSS1 with EAZ" that can only be set by a technician. Then ISDN will usually work with the loaded DSS1 driver, at least under WIN/DOS. The default setting is usually "1TR6 with MSN" (don't flame me, it's real).
    (However, my last experience with SIE* PBXs are from over a year ago, since then I've kept away from them. If you still can't get it to work, then there are a few thousand software patches for the HiComs, the technicians have simply have to want to apply them. Sometimes it helps to look at the programming handbook together with the technician to find

  18. isdnctrl returns a "bus error" when I do a "isdnctrl list"?

    Christian Kratzer <ck@toplink1.toplink.net> gave the patch:
         diff isdnctrl.c.dist isdnctrl.c
         240c240
         <   if (strlen(cfg.slave))
         ---
         >   if (cfg.slave && strlen(cfg.slave))
    



  19. After a hangup "no routine" is printed on /dev/isdnctrl. Did it release my line or is there still some bug in the driver?

    "no routine" doesn't always mean that there is something wrong with the driver. Sometimes the link level module sends commands that aren't needed by the Teles driver and lead to "no routine".



  20. I get many "HSCX RME out of buffers" messages in my syslog.

    Answer by Jan den Ouden <denouden@groovin.xs4all.nl>: The "HSCX RME out of buffers" message means that there are no more receive buffers available. Received frames are only processed every few milliseconds and in the meantime the frames have to be buffered. Default are 6 buffers. Each frame needs a buffer no matter how big it is. If a number of very small frames arrive within a short time period it can happen that the buffers are overrun. At least it seems that this happens. In teles.h there are three lines for number and size of those buffers:
           #define HSCX_RBUF_ORDER 1 
           #define HSCX_RBUF_BPPS 2 
           #define HSCX_RBUF_MAXPAGES 3 
    

    The size of each buffer is about
           (4096<<HSCX_RBUF_ORDER)/HSCX_RBUF_BPPS 
    

    This would lead to buffer with a size of about 4k. The number of buffers is MSCX_RBUF_BPPS*HSCX_RBUF_MAXPAGES, which normally gives 6. You can increase that number by increasing HSCX_RBUF_MAXPAGES. This is just a limit, there is no buffer allocation when they are not needed.



  21. My pppd or ipppd has problems with PAP/CHAP authentication.

    See the appropriate question under "Sync PPP"?



  22. I get the error "SIOCADDRT: Invalid argument" when telling route to route to isdn0.

    <tpo@spin.ch> wrote on 8 Oct 1996:
         I had the same error until using the correct netmask.
    



  23. Where can I find a summary of all causes?

    Klaus Kämpf <kkaempf@progis.de> wrote: Check out the ISPA documentation. Take a look at: ftp://ftp.biochem.mpg.de//pc/isdn.



  24. On my ELSA card, the LED for the loss of the TEI often blinks. My connections are also often disrupted...

    Jens Ey <jens@jeyhh.shnet.org> wrote on 29 Dec 1996:
    These blinking LEDS are often caused by a bad cable or a too long or unterminated SO bus. ELSO told me this after I complained to them about this problem. A new cable, and everything works wonderfully.
    Paul Slootman <paul@wau.mis.ah.nl> added on 2 Jan 1997:
    Jan den Ouden suspects (in a Dutch news group), that the Dutch telephone company sometimes "throws away a TEI" at night.



  25. 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.
    Fritz Elfert <fritz@wuemaus.franken.de> wrote on 17 Oct 1996:
            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 lines ending with "|" have to have the following text on the same line!]
    iSystem.map should then be used instead of System.map for finding the error.

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

    With "isdnctrl verbose 0", or by removing the "debug" option for ipppd.



3.2 Teles driver



  1. How can I know that my Teles card (or compatible) is recognized correctly?

    On bootup there has to be a message like "kernel: HSCX version A:5 B:5" as well as "kernel: channels 2" in /var/log/messages. "A:4 B:4" is also OK. All other values (especially "A:0 B:0" or "A:f B:f") show that the card is not used correctly.



  2. What is the name if my Teles driver (especially if compiled into the kernel)?

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



  3. On bootup I get "HSCX version A:5 B:5" but I still have the impression that my Teles card is not used correctly. What else can I check?

    Wilhelm Schulte <schulte@wrds1.urz.uni-wuppertal.de> wrote about this:
         Best is you check that the interrupt is registered correctly. Check it
         with "cat /proc/interrupts". The following entry indicates an error:
           11:        0 + teles
         The 11 is correct when the Teles card is configured on interrupt 11.
         However, the 0 means that the Teles card does not accept interrupts, so it
         does not work. That's the well known "busy bug". Often it can be worked
         around by loading, unloading, and reloading the ISDN modules on bootup.
         The IRQ counter does have to be 0; low values also point to the same
         problem. You can test for it quite easily:
         1. cat /proc/interrupts, note the count
         2. Call the card with a telephone.
         3. Again cat /proc/interrupts, the count should be quite
            different from the first value.
    

    See also "I always get BUSY when dialing into my ISDN mailbox". You can also check the io ports with "cat /proc/ioports".



  4. Why should I avoid IRQ 12 and 15 for my ISDN card?

    Gernot Zander <hifi@scorpio.in-berlin.de> wrote about this:
         On PCI boards never use IRQ 12. It is often used by the bus mouse (even
         though you may not have any or the IRQ is not activated for it), which is
         why that IRQ often is lost and you will get errors trying to use it.
         On PCI boards never use IRQ 15. It is often used by IDE 2 (even when you
         are not using it or the IRQ is not activated for it), which is why that
         IRQ often is lost and you will get errors trying to use it.
    

    It should be mentioned that this is not the case for *all* PCI boards! But many of them mess up the IRQs in this way...

  5. My Teles card will not be recognized correctly when I use LILO with my parameters.

    Unfortunately the order of the kernel parameter for irq, mem, io base, and protocol is not identical with the order of the parameters for modules or when compiling them in. Order for module parameters (insmod): mem, irq, base, type Order for kernel parameters (LILO): base, irq, mem, type



  6. If I first start DOS and the Teles driver included with the card, and then start Linux with Loadlin, everything works fine. However, if I start Linux directly with LILO, the Teles driver doesn't respond directly.

    Try replacing the Teles driver with HiSax.



  7. After a reset, my card does not initialize correctly.

    Andreas M. Kirchwitz <isdn4linux-mlist@zikzak.snafu.de> wrote:
         Instead of a "reboot" command or pressing "Ctrl-Alt-Del"
         try a "Hard Reset" with the reset button.
         With some motherboards (which is not necessarily the motherboard's 
         fault) the cards are not completely reset with a "Soft Reset" so that
         some drivers will have problems finding the cards.
    

    Of course, before the hard reset you have to bring the system down correctly ("reboot" command or press "Ctrl-Alt-Del")! Only then can you hit the reset button.



  8. The Teles driver recognizes my 16.3 card as a 16.0.

    When using a 16.3 you have to set the memory area to 0. If a 16.3 is recognized as a 16.0 you have given the wrong parameter.



  9. I use i4l and the Teles driver. From time to time the driver hangs and I have to reload it.

    You are using a [very] old version of the Teles driver. Since version 0.4a this has been fixed. Check "How to get i4l" on how to get a newer driver.



  10. My machine often crashes. On the console I get about every few seconds
         l1state 4 
         l1state 8
         l1state 13
         ph_command 9
         l1state 4
         l1state 0
         ph_command 0
         l1state 7
         ph_command 9
    



    It could be a broken cable. The DOS hardware test software from Teles should also report this error.



  11. My Teles driver always says "isdn0: Chargesum is 0" although I get charge information from the [German] Telekom.

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



  12. My Teles driver does not work in 2.1.x!

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



  13. I have two Teles cards in my computer but it seems that only one is used!

    Christian Kratzer <ck@toplink.net> wrote about this on 6 Oct 1996:
         Clear case of IRQ problems. Especially the 11 gives trouble on some
         boards. Even though one thinks that some IRQs are available they are still
         somehow reserved by the BIOS.
         Good IRQs to try are always IRQ 5 and IRQ 9. Without mice or modems you could
         also try 4 and 3. That even works on very exotic boards.
    



  14. When compiling the Teles driver I get some undefined symbols (only kernel 2.0.26)?

    The file proto.h was not included in the patch. It should read::
            #ifndef PROTO_H
            #define PROTO_H
            #define PROTO_EURO      0x08
            #define PROTO_DIS_N0    0x40
            #define PROTO_DIS_N1    0x41
            #endif
    



3.3 HiSax driver



  1. How can I tell whether my ISDN card has been corrected recognized by the HiSax driver?

    When booting, a message like this will appear in the log file:
            HiSax: Teles 16.3 found,irq:5 isac:a80 cfg:e80
            HiSax: hscx A:280 hscx B:680
            Teles3: HSCX version A: V2.1 B: V2.1
    

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 12 Dec 1996:
    With HiSax you don't need to worry: it's loaded if the hardware can be found and the appropriate interrupts can be generated. If not, the module is not loaded. That doesn't mean that everything will then work (e.g. twisted cables, broken cables, terminators), but that card is installed correctly in the computer and there are no hardware conflicts.



  2. The Teles crashes again and again with the following error message in the log:
         <date> <time> foo kernel: HSCX B EXIR 10
         <date> <time> last message repeated <n> times
    



    The CPU isn't able to empty the FIFO. Is a sound card installed that keeps the interrupts for itself for too long?

  3. My AVM card produces very many interrupts with the HiSax driver. Is this normal or a problem with the HiSax driver?

    Karsten Keil <keil@temic-ech.spacenet.de> wrote on 12 Nov 1996:
    This is normal. AVM (and ELSA as well) have a timer on the card. Since AVM doesn't cooperate, I don't know how to turn it off. With the Elsa I know how, but don't do it since here hardly any performance is lost and I use the interrupts for status reports (which is very handy for development; as soon the driver was ready, nothing blinked anymore ;-) ). Later I'll probably turn them off or only use them during connections.



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



3.4 ICN driver



  1. On dialing out/in with my ICN packets get lost.

    Torsten Hentschel <Torsten.Hentschel@DInet.de> has a patch for kernel 2.0.21 which definitely does not lose any more packets. Contact Torsten.



3.5 Working together with other ISDN devices



  1. I have problems connecting to an ELink.

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



  2. I have problems connecting to a Netblazer router.

    Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> wrote in Oct 1996:
    Your partner probably thinks it can send compressed packets (even though no compression method was chosen). Try removing these lines from main.c:
            { PPP_CCP, ccp_init, ccp_input, ccp_protrej,
              ccp_printpkt, ccp_datainput, "CCP" }
    

    and recompile ipppd. Then it should reject the whole CCP protocol and hopefully the Netblazer will understand that as well... (this wouldn't be the first bug in the Netblazer... the thing doesn't seem to be especially conformant. Funny that others don't seem to have this problem; maybe it's time for a new software lease)
    [The same problem can also crop up with asyncPPP. This same method will also work (maybe there's even a compiler option to remove the CCP protocol). With pppd 2.3 beta 3 there should be a "noccp" option, that accomplishes this without recompiling. Ed.]

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



3.6 Raw IP



  1. I get the error message "protocol error, unspecified".

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

    A patch should be available from Torsten.



3.7 Modem emulation (use with ttyI* devices)



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



  2. My modem emulation/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.



  3. I gave the correct MSN/EAZ, but still don't get a RING.

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



  4. Why can't I dial my telephone or fax with the modem emulation?

    ISDN differentiates different services. All outgoing calls with the modem emulation use the service "Digital Data", which is incompatible with telephone or fax, so the call never gets through.



  5. I can't get a connection to my ISDN mailbox.

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



  6. I'm sure I used the correct parameters for my ISDN mailbox, but I still don't get a connection. I always get BUSY although I know the mailbox is not busy.

    Sometimes there is an interrupt problem with the Teles driver. Check the interrupt count for your Teles card. If "cat /proc/interrupts" just gives you 0 then the following workaround may help you: Configure your drivers as modules. When booting load them (insmod/modprobe), then immediately unload them (rmmod) and reload them (insmod/modprobe). Then it should work correctly...
    Dr. Peter Schrammel <Dr.Peter.Schrammel@t-online.de> wrote:
         It may be a problem with your ISDN cable...
    



  7. My modem emulation hangs. How can I force my card to hang up?

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



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

    Fritz Elfert <fritz@wuemaus.franken.de> wrote on 18 Nov 1996:
    Usually the partner cannot handle the large frames from i4l and simply closes the B channel during the transfer. Try making the frames smaller with AT&B512.



  9. 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
              protocol-parameter g short-packets y
              protocol-parameter g window 7
              protocol-parameter g remote-window 7
              protocol-parameter v packet-size 512
            Now with large packets I can get ca 7300 cps.
    

    Holger Burbach <holly@cthulhu.pfalz.de> on 5 Feb 1997 had another solution:
            I have several XP users who poll without any problems. I did
            the following: First I set the send packet size for ttyI?
            to 1024 ("AT&B1024") and then set the packet size for the
            g protocol in UUCP:
              protocol-parameter g packet-size 2048
              protocol-parameter g remote-packet-size 0
            As I said, it works fine..
    



  10. My iprofd doesn't work any more with HiSax 2.0. I get the error message "Version of kernel modem-profile (3) does NOT match version of iprofd (1)". How can I get iprofd to work again?

    Fritz Elfert <fritz@wuemaus.franken.de> wrote on 17 Feb 1997: In iprofd.c, change the line with
           #define DATA_VERSION 1
    

    to
           #define DATA_VERSION 2
    

    compile iprofd again, and (IMPORTANT) delete the saved profile file.



3.8 Async PPP



  1. How can I get a log for pppd?

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



  2. Establishing the connection works fine, but pppd crashes just after that (i.e. the first bytes get through, but then everything stops)

    Joachim Gassen <joachim@fb4-1112.uni-muenster.de> wrote on 8 Jan 1997:
    I had this problem as well. It's probably due to an incorrect block size on your side. Try inserting a &B512 in the "init string" for your ISDN card. Then it should work.



3.9 Sync PPP



  1. How can I get a log for ipppd?

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



  2. My ipppd won't work, it gives the error message "PPP driver 0.0.0 is out of date".

    Ari Biel <aribiel@sun14.hrz.th-darmstadt.de> wrote on 3 Oct 1996:
         I had the same thing! (S.u.S.E. 4.2 Kernel 2.0.0, isdn4k-utils 3.91 with
         patch). After recompiling the kernel and configuring PPP as module I could
         start ipppd. Looks like version problems.
    

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



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



  4. How can I switch on PPP support for my kernel 1.2.13 (needed for ipppd)?

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



  5. When I start ipppd, I only get error messages 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.



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

    Frank Meyer <fm@textware.k.eunet.de> wrote:
         I had the same problem. Interestingly, after about 5 minutes with
         several of those messages the ipppd said "started". And then it
         worked!  Well, I included several test prints into the ipppd
         source and located the problem: The ipppd calculates a random
         number on startup (forgot where) and uses gethostid() for
         that. That causes a DNS lookup. Then linux tries to find the
         nameserver mentioned in /etc/resolv.conf.  As ipppd isn't up it
         can't reach the name server, which gives those messages.  The
         solution was easy: I not only included my computer in /etc/hosts
         with its short name (e.g.  isdn), but also its full name
         including the domain in /etc/resolv.conf:
           x.x.x.x isdn isdn.who.knows.where
         Then it stopped complaining and just runs!  Even earlier there is
         a call from main() to setipdefault(), which (in options.c) calls
         gethostbyname().  This also causes a DNS lookup and the message
         "isdn_ppp_bind: Can't find usable ippp device".  So two lines in
         the source have to be changed to avoid the DNS lookup.  It's
         easier to include your own name in /etc/hosts, I used the IP
         address of my Ethernet card.
    

    Carlos Heller <carlos@mable.webtrek.de> wrote:
         There were some changes in patch-2.0.16 that could have caused the
         problem. You can try the unoffical patch from ftp.gwdg.de
         /pub/misc/isdn/linux/ippp/isdn.dif... until it is included in the official
         patch.
         My ipppd (from my Suse distribution) was broken. The packet i4l-43b2.tar
         from ftp://ftp.suse.de/ helped me.
    

    (The following question was taken from the syncPPP FAQ)



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

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



  8. ipppd sometimes crashes (kernel 2.0.14...2.0.25)

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

    (Remark: this is the case with 2.0.26)



  9. I get the message "IP frames delayed" - and I don't get a connection.

    See last question: You may have forgotten to use "isdnctrl dial ippp*" before using a net command like telnet, ping, or the like.



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



  11. After ipppd dials out my default route is gone.

    It's the kernel's fault. Newer kernels (>= 2.0) have some changes in the routing. Workaround: install a script /etc/ppp/ip-up like this:
         #!/bin/sh
         /sbin/route add default ippp*
    

    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
    



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



  13. 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 was been set that requires the other side to be authorized. These options shouldn't be set. Possible candidates are: "+pap" as well as "+chap".



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



  15. 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 contains the "#" character, then everything after than is understood as a comment. Spaces or tabs can cause similar problems. Solution: put the password in quotes!



  16. 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?" in section "Teles" further down.
    A further source of errors was reported by Immanuel Derks <broedtsk@xs4all.nl> on 3 Jan 1997:
            My PAP script was broken because I had a "#" in my password!
            After I had quoted the password cleanly (e.g. with quotation
            marks), the problem was solved.
    



  17. The connection with ipppd seems to work, but eventually it crashes.

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



  18. 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 Windows 95 and NT customers who
            are using the "included" (modem network) software. It doesn't make
            any difference whether the customer is dialing with async or sync PPP.
            It also doesn't matter which modem emulation he is using on his side.
            What they have in common is that the connection is made with Microsoft
            modem adapter + Microsoft PPP (although a colleague recently told me
            about a similar problem with a Macintosh customer).
               Since it doesn't matter to PPP who is the server and who is the
            client, ask your ISP what kind of hardware you are dialing into (we
            have had >>no<< problems with Linux customers and Trumpet Winsock
            users, therefore I suspect a bug in MS-PPP).
               The following workaround usually works for us: (it's not a cure,
            but helps to reduce the pain...)
              * Reduce the Max MTU to 576 or even (296)
              * Reduce the  DefaultRcvWindow to 2144
            On the Windows 95 side these are 2 Registry entries; on the Linux
            side you can set "mtu 576" and "mru 576" in the PPP options.
            (see also http://www.windows95.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 limits the sent packets to 512 bytes.
    



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

    Andreas Steffan <deas@rrz.uni-hamburg.de> wrote on 11 Dec 1996:
    I had to play around quite a bit before I found the answer. I had to add a line to /etc/ppp/options.ippp0:
            mtu 1024
    

    It's strange, but now I finally have peace and quiet. [if mtu is not set, then a default value is assumed - possibly "0" - which of course cannot be correct - Ed.]



  20. 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 are "hung". Workaround: Before connecting with telnet, ping, or the like dial out manually with "isdnctrl dial ippp*". Stefan A. Muehlenweg <Stefan.A.Muehlenweg@samhh.Hanse.DE> wrote:
         Yesterday I got a permanent IP address and since then the automatic dial-
         out via ipppd works beautifully. The same goes for the serial interface
         with asyncPPP over V.120 and diald (per ELSA Microlink ISDN/TLpro ---
         also over the V.34 modem). I had the same symptoms there in the past.
         Summary: When using automatic (!) dialout you definitely need a permanent
         IP address. If you start and end your connection manually (!) then you can
         live with dynamic address allocation.
         It surely is time to extend PPP's functionality to not only hold outgoing
         packets that initiate a connection, but also correct the IP address to the
         new address before sending it out. The same goes for other packets that
         arrive before the connection is up.
         Also diald has to get that functionality to control when the connection
         goes up or down.
    

    A suggested solution came from Erik Corry <erik@arbat.com> on 5 Jan 1997:
            1) No local name server/name server cache
            2) Local squid proxy WWW server (and Netscape must use it).
            3) set positive_dns_ttl to 1 in /usr/local/squid/etc/squid.conf
               so squid doesn't cache IP addresses
              Now the connection will always start with a DNS lookup,
            which is immune to IP address changes (because it runs on
            UDP and not TCP?). If you have other programs that cache
            IP addresses, you'll have to figure you how to get around
            them. Normally a program caches an IP address when it
            has to connect twice to the same server. That isn't a
            problem, of course, when the second connection occurs so
            quickly after the first that the dial-on-demand connection
            is still the same.
    

    [pppd should support dial-on-demand in the next version - maybe then things will be better - Ed.]



  21. When calling "isdnctrl mapping <line> <MSN>,..." I get the error "bad address".

    Bernd Oerding <erni@nukleus.escape.de> wrote on 9 Nov 1996:
    The reason for this error is that the kernel expects a 255 byte block from the user space, however it may not be there when the pointer point to argv0. This following patch fixed the problem at the user level; not pretty but it works.
            *** 1.14        1996/06/06 22:08:46
            --- isdnctrl.c        1996/09/04 19:13:39
            ***************
            *** 498,504 ****
                      }
                      printf("MSN/EAZ-mapping for %s:\n%s\n",argv[2],nstring);
                    } else {
            !         iocts.arg = (unsigned long)argv[3];
                      if ((result=ioctl(fd,IIOCSETMAP,&iocts))<0) {
                        perror(argv[2]);
                        exit(-1);
            --- 498,506 ----
                      }
                      printf("MSN/EAZ-mapping for %s:\n%s\n",argv[2],nstring);
                    } else {
            !         char buf[400];
            !         strncpy(buf, argv[3], sizeof(buf)-1);
            !         iocts.arg = (unsigned long)buf;
                      if ((result=ioctl(fd,IIOCSETMAP,&iocts))<0) {
                        perror(argv[2]);
    

    [It's also been reported that adding "/sbin" to the path (environment) helps. When debugging cron scripts, you can set this with "set -X" - Ed.]



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



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

    The first zero is not dialed. It only shows which channel is used for dialing.

    (The following question was taken from the syncPPP FAQ)



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



3.10 ISDN in a network



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

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



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

  3. Addresses are now found, but now instead of the page I want I get the message "no route to host".

    Please check:
       * Is the Linux computer entered as the gateway? (Some 'operating systems'
         have to be restarted before changes to the networking take effect)?
       * Does the router have a default route to the prepared interface to the
         provide (e.g. ippp0 with syncPPP or sl0 for diald (even when the real
         connection is over ppp0, diald uses a slip interface as a "doorknob")
       * Does the provider require the use of proxies? Then the addresses  
         of the proxies have to the entered in the appropriate clients on the LAN
         computers
    



  4. 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 partner. 
               This was already discussed in de.comp.os.linux.networking, along
            this possible solution: 
               Simply set ippp0 to a dummy IP number from the pool. Then the 
            local network will have problems after booting, even with the 
            default route, and the IP number in ifconfig will be overwritten
            anyway.
    



3.11 Isdnlog



  1. My isdnlog 2.50 doesn't work since I installed HiSax 1.2.

    Isdnlog needs to be patched... you can find the patch everywhere where HiSax is found.



  2. I've patched isdnlog, but it still won't work together with HiSax (isdnlog starts with the usual messages, but nothing happens)?

    Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Jan 1997:
            Is one of the "usual messages":
              "(HiSax driver detected)"?
            If not:
            - have you started version 2.52 - not just compiled?
            - have you remembered  "telesctrl <DriverID> 1 4" ?
            - ISDN connections are working otherwise?
            If so: Contact me (isdnlog@Kool.f.EUnet.de) with the 
            appropriate log files (created with "isdnlog -v7").
    



  3. 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 was actually designed for transmitting internal company numbers in the public network.



  4. When calling I receive a "Internal error: wrong structure".

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



  5. Isdnlog crashes with a "segmentation fault".

    Dirk Lutzebaeck <lutzeb@wadk-berlin.de> wrote:
         For me, isdnlog crashed because it was not entered in /etc/services
    



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

    Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Nov 1996:
    The only thing you can do is to create an upper instance that coordinates this. I personally use NAS (network audio system), but "rplay" should be just as good!



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

    Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Nov 1996:
    Because isdnlog is not a (Bourne) shell ;-) isdnlog can only start "real" programs.
    Short and sweet: this example has to be saved as an executable (-> chmod +x) file in the following way:
            #!/bin/sh
            /usr/local/bin/play anruf.au 2>/dev/null
    



  8. Why does isdnlog quit with "kill -1", according to the docs it should only reread isdnlog.conf.

    Andreas Kool <akool@Kool.f.EUnet.de> wrote on 6 Nov 1996:
    This is a bug isdnlog-2.5x, but it's been fixed already. isdnlog-2.60 (coming soon ;-) can do this better!

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



  9. Isdnlog takes 100% of the CPU time

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



  10. The Telekom is paying me (according to isdnlog/isdnrep) 12 pfennigs (1 unit) for each connection...

    You wish... Christian Bruehe <oblomow@cs.tu-berlin.de> wrote:
         I recently had the same effect when I mistakenly started isdnlog twice
    



  11. According to isdnlog every "busy" costs me 45 units?

    This is a bug in older isdnlog versions (e.g. 2.41) with regards to the ISDN feature callback when busy. Of course, this busy doesn't really cost 45 units.



  12. I'm having problems getting isdnlog to run with libc 5.4.7!

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



  13. When dialing out, the screen goes momentarily black?

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



3.12 Audio



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



  2. My vboxgetty answers at the first ring but the number of rings is set to 4.

    The rings are created by a timer in the isdn module that doesn't necessarily set the delay accurately. If you configure vboxgetty with 30 rings, vboxgetty will wait about 5 rings before it picks up the line.



  3. My vbox 1.1 does not work together with HiSax.

    Use HiSax >=1.2. This version includes correct alerting.



  4. 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 could also copy the message as the standard message (standard.msg in the messages directory) and call yourself, the message will be played then. (Don't forget to copy back the original message when you are done :-) ).



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



3.13 Dialout on demand



  1. What can cause a charge unit disaster?

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



  2. Ever since I installed a new kernel, my computer constantly open ISDN connections without transferring any data (expensive!).

    Maybe the kernel option "bridging" was mistakenly activated?



  3. My router wants to constantly dial out (and does it too) but NO data is transferred, neither ipfwadm -A! nor tcpdump -i isdn0 show anything.

    Michael Pieper <michael@nexus1.tng.oche.de> wrote on 10 Nov 1996:
    ARP requests or broadcasts? You should run ifconfig with the options -arp and -broadcast to keep from opening connections in this way.



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

    Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 18 Jan 1997:
    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.



  5. How can I safely turn off dialout on demand?

    Gernot Zander <hifi@scorpio.in-berlin.de> wrote on 10 Jan 1997:
    I delete the telephone number of the interface [or set an invalid one - Ed.] Then I can see right away from the complaints in the syslog whether a process wants to send packets out to the world.
    Sascha Ottolski <sascha@alzhimer.isdn.cs.tu-berlin.de> added on 28 Oct 1996:
    For me, what is happening is what you want: the ISDN system is "down", Netscape immediately shows an error message a la: "the Server doesn't have a DNS entry" or something similar. You probably have to delete the route so that this will happen. I do it like this:
            /sbin/route del default
            /sbin/isdnctrl system off
            /sbin/ifconfig ippp0 down
    

    An 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 - Ed.]



  6. How else can I prevent the charge unit disaster?

    In the next version of isdnlog (>2.52) it will be able to work as a watchdog and prevent such dialouts (with a reboot, if necessary).



  7. Is it possible that even with a crashed computer a ISDN connection remains open (and the charge units accumulate)?

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



  8. How can track down unexplainable dialouts?

    Dirk Lutzebaeck <lutzeb@wadk-berlin.de> wrote on 5 Nov 1996:
            Unfortunately, I don't know of any syncPPP encapsulation patch for
            tcpdump. If you use ipppd, then your only chance is to turn off
            one daemon after the other and see if things have finally quieted
            down. Likely candidates are named, sendmail, and also smbd (Samba)
            that are likely to open connections.
    

    [On tcpdump see the appropriate question under "General" in the "Configuration" section. On named and sendmail see the following questions - Ed.] Christoph Trautwein <trautw@fzi.de> added on 5 Nov 1996:
            I too was only able to find this out by killing suspicious processes.
            More information on the search for these processes and how to make
            them quit can be found at:
              http://www.fzi.de/sim/people/trautw/i4l/index.html
    

    Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at> added on 24 Nov 1996:
            Try to find out which lookup triggers the connection with
            "isdnctrl verbose 3". Then a message should appear in
            the kernel message queue (visible with "dmesg") a'la:
              OPEN: 141.76.60.54 -> 193.171.67.253 TCP, port: 1686 -> 540
            In this example, our computer is trying to pick up mail on
            port 540 (UUCP over TCP/IP over ISDN).
    

    [only the triggering packet will be logged - Ed.]
    Stefan Luethje <luethje@sl-gw.lake.de> wrote further on 27 Nov 1996:
            Another tip. There are a lot of daemons on the Linux side that
            broadcasts on all interfaces. This leads to frequent autodials. 
            In this case you can redirected the broadcast address to the
            dummy0 interface. It's not clean, but it works.
    

    See all the last question in this section.

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

    Stefan Luethje <luethje@sl-gw.lake.de> wrote on 27 Nov 1996:
            Whin in Wintel the name server of your provider is given, and
            Windows 3.11/95 is started, then it has to talk to the name
            server (only Bill Gates knows why).
    



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

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



  11. How can I turn off the DNS requests for WORKGROUP.xxx from my Win95 machine?

    Eike Stepper <isdn@esc-net.de> wrote on 30 Nov 1996:
            Why not simply set the "Use DNS for Windows Names Resolution"   
            (or similar) to No? Then it should be quiet, at least it
            is for me.
    



  12. How can I get sendmail to not initiate any connections 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".



  13. 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!



  14. 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
            connection...
    



3.14 Chargeint



  1. The connection doesn't end with timeout. Possible reason: my service provider uses a Cisco router which sends a "keep alive" packet every ten seconds.

    Winfried Haug <haug@seicom.net> wrote:
         If the Cisco doesn't get an answer for its keep alive packets then it will
         stop routing! That normally happens after the 4. or 5. keep alive packet.
         The best solution is to tell the provider not to use keep alive packets
         ("no keepalive" in the Cisco configuration).
         There is NO REASON to use keep alive packets, especially between two Cisco
         routers and on leased lines.
    



  2. My Internet provider won't switch off keep alive packets so ipppd never hangs up.

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

    If you need the patch, mail Dirk Melchers.



  3. The "lcp-keep-alive" patch doesn't work - ipppd still doesn't hang up.

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



3.15 Dialin



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



  2. I've configured several ippp* devices. Each incoming call "uses up" one device, until there is no device available any more.

    That's a known bug. There is a patch available to fix it. Manfred.Dill <manfred.dill@bmw.de> wrote about this:
         In the module isdn_net.c (line 1720) there is a comment "/* if this
         interface is dialing, it does it probably on a different device, so free
         this device */" and function isdn_free_channel is called.
         [...]
         It looks now like this:
           #ifdef CONFIG_ISDN_PPP
           if (p->local.p_encap == ISDN_NET_ENCAP_SYNCPPP)
           ippp_table[lp->ppp_minor]->state = IPPP_OPEN;
           #endif
    

    It can be assumed that this will be fixed in an improved ipppd.



  3. With "isdnctl pppbind" I've established an exclusive connection. But this is removed with an incoming call.

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

    (The following question was taken from the syncPPP FAQ)



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



3.16 Callback



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



  2. Callback isn't working. How many ippp* devices do I need (at a minimum)?

    Manfred Dill <manfred.dill@bmw.de> wrote on 18 Dec 1996:
    You should use a second device ippp1 for which callback can be used. Because of an error in i4l, the first device is used for callback and is not released. When the connection is ended, the third device (if it exists) is opened and the circle is complete.
    For devices, see the appropriate questions under "Dial-in".



  3. Callback still doesn't work right. Can the fault lie with the Teles driver?

    Karsten Keil <isdn4@temic-ech.spacenet.de> wrote on 10 Jan 1997: The Teles driver has problems with callback. Use HiSax 1.5 (1.4 also had a bug with callback).



  4. When trying callback with Euro-ISDN the call never gets rejected.

    Karsten Keil <isdn4@temic-ech.spacenet.de> has fixed this with the new "HiSax" driver. Also see the questions General HiSax and the section about HiSax.



  5. 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 callback. Username and password always have to
         be exchanged before the callback is allowed when using PPP, to be sure
         that the person requesting callback is allowed to do so. (Cisco seems to
         obey the rules of the [German] Telekom that no information are to be ex-
         changed without a B-channel connection. A callback request just by caller
         id could in doubt be considered as a transmission of information).
    



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



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



  8. Some the callbacks confuse the module count. How can I now unload my ISDN modules?

    Karsten Keil <keil@temic-ech.spacenet.de> has as a temporary workaround added two "secret" telesctrl commands:
            telesctrl <id> 3 1  ---> dec module_count
            telesctrl <id> 4 1  ---> inc module_count
    

    Please use with appropriate caution!



3.17 MPPP



  1. SyncPPP works without problems on one channel. Unfortunately MPPP won't work due to communication problems between ipppd and the other side.

    Michael Hipp <Michael.Hipp@student.uni-tuebingen.de> wrote on 11 Oct 1996:
         At first about your bug: the other side does not like the MP-MRU (0x5dc)
         but wants a smaller one (0x5d7) ... which is what ipppd doesn't like (bug)
         ... Just try 0x5d7 as MP-MRU.
         Without a MP-MRU agreed about MPPP won't switch on .. which is why it is
         not working.
    



4 National Peculiarities

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

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

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

    -Jerome Lefranc <decision@calva.net> reports for France that: "(1) if you don't have MSN, you need to specify as local number only the last 4 digits of you phone number. ex: 01 41 33 67 87, local phone number is 6787; (2) you can use sub-address number (not MSN). ex: 01 41 33 67 87 (phone number), 02 (sub-address), then the local phone will be 6787.02 with the HiSax driver."

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



4.1 Germany (1TR6)



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



  2. I use 1TR6 on an extension - the extension number 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'.



  3. The state machine hangs with 1TR6.

    Karsten Keil <isdn4@temic-ech.spacenet.de> has fixed that with the new "HiSax" driver. See questions General HiSax and the section about the HiSax driver.



4.2 Italy



  1. What does our MSN look like?

    [Translator's note: The original FAQ seems to have the wrong paragraph here. 
    Paolo Sommaruga <psomma@portcros.garda-access.com> wrote on 7 May 1997:
    

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

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

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




4.3 The Netherlands



  1. 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. If your telephone number were 01234-56789, then it would be configured as follows:
            * Modem emulation:
              "AT&e123456789" (without leading zero)
            * Network interfaces:
              "isdnctrl eaz <interface> 123456789" (without leading zero)
              For test calls to yourself:
              "isdnctrl addphone <interface> in 123456789" (without leading zero)
              "isdnctrl addphone <interface> out 0123456789" (with leading zero)
    



  2. How can I get isdnlog to calculate the charges for the Dutch telephone company?

    See this question under "isdnlog" in the section "Configuration".



  3. Are there any other peculiarities?

    It is thought that the Dutch telephone company at night sometimes loses a TEI. See the question "On my ELSA card, the LED for the loss of the TEI often blinks. My connections are also often disrupted..."



4.4 Austria



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

    Bernhard Kruepl <b.kruepl@ieee.org> wrote
         In Austria you always have to use "0" as the ingoing EAZ/MSN for the  
         first (or only). Any further MSNs can be set normally.
    



  2. Incoming and outgoing calls won't work ("incoming call without CPN")

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



  3. Why doesn't my getty answer the EAZ it should respond to if somebody dials the "0", the broadcast number? In the log file it says "Incoming call without CPN, assuming '0'".

    CPN=Called Party Number, the number of your own side. It's missing, that's why i4l assumes "0". If the getty is configured on another number but "0" it will not respond. Let somebody dial with a telephone on the EAZ of your getty and check whether all telephones are ringing or just the one that was set to the EAZ of your getty. It could also be an error of your telephone company.



4.5 Switzerland



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

    Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at> wrote: In Switzerland you have to use the last number of your telephone number as your MSN/EAZ ("6" if you have the telephone number "123456").



  2. I can only keep a 184 second connection with i4l. After that the connection breaks with cause "Temporary failure" since the telephone company uses new software for its equipment.

    That is a bug in i4l - Q.931 demands that there has to be an answer to a "STATUS ENQUIRY" frame. This is not yet programmed in i4l. Karsten Keil <isdn4@temic-ech.spacenet.de> has fixed it now in the new "HiSax" driver. There is a patch named STATUS for the Teles driver. See also the question General HiSax and the section about the HiSax driver.



  3. How can I get isdnlog to calculate the charges for the Swiss telephone company?

    See this question under "isdnlog" in the section "Configuration".



4.6 Portugal



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



4.7 North America



  1. Can we use isdn4linux in North America?

    Yes, the firm "Spellcaster" has written an isdn4linux driver for its own 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
    



  2. Why can't I use European ISDN cards 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.



  3. Which protocol is used in North America?

    NI-1 is used - it's related to DSS1. Both are Q.931 Protocols, but have totally different groups of functions and are therefore not compatible to one other.



5 Miscellaneous



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



  2. Where can I find information on the dip switches of my NTBA?

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



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



  4. Where can I get documentation on Siemens' HSCX and ISAC chips?

    Alexander List <alex@ag.or.at> wrote:
         http://www.siemens.de/, there are a lot of PDF files available.
         If a CD-ROM is ok: Technical Product Information for Siemens
         Semiconductors, order# B192-H6641-X5-X-7400
         Siemens AG, Semiconductor Group, Balanstr. 73, Pf. 801709, D-81617
         Muenchen, Fax 089-4144-3952.
    

    Beat Doebeli <beat@castle.swill.org> wrote:
         From the Siemens handbook:
           Place your order at:
           Siemens AG
           LZF Semiconductor Book Shop
           Postfach 2352
           90713 Fuerth-Bislohe
           Tel (0911)3001-220/224
           Fax (0911)3001-238
           Price groups (1994)
           I    DM  5.-
           II   DM 10.-
           III  DM 20.-
           IV   DM 30.-
           ISAC S PEB 2085; PEB 2086 ISDN Subscriber Access Controller
           Order# B115-H6485-G1-X-7600, 328 pages price category IV
           HSCX - High Level Serial Communication Controller Extended
           Order# B115-H6520-G1-X-7600, 140 pages price category III
           or as CD-ROM
           Technical Product Information for Communication ICs (Edition 1, Jun 95)
           Order# B193-H6905-X-X-7400, price ?
    



  5. Where can I find the "bat" book about configuration of sendmail?

    dietmar <dietmar@highway.bertelsmann.de> wrote on 8 Oct 1996:
         O'Reilly catalog 1997 (brand new from the book fair): "book
         dealers report to us that some books are so strongly associated
         with animals that many clients won't ask for the normal title,
         but just for the (i.e.) 'camel book' (Programming Perl)."
    

    In a _good_ book shop you should find the following:
         Title:  sendmail (3rd edition 9/94)
         Author: Costales, Allman, Rickert
         ISBN:   1-56592-056-2
         Costs:  66.-- DM
       More on:
         http://www.ora.com/catalog/sendmail/noframes.html
         http://www.lob.de/
    


© 1995,1996 Das FAQ-Team