3350 lines
138 KiB
Plaintext
3350 lines
138 KiB
Plaintext
<!doctype linuxdoc system>
|
||
|
||
<article>
|
||
|
||
<title>FAQ for isdn4linux
|
||
<author>Matthias Hessler, <tt><htmlurl url="mailto:hessler@isdn4linux.de" name="hessler@isdn4linux.de"></tt>
|
||
<date>v2.0.5, 1. July 1999
|
||
<abstract>
|
||
This FAQ answers questions that were frequently asked in the newsgroup
|
||
de.alt.comm.isdn4linux. It contains questions any user should
|
||
know about ISDN under Linux using isdn4linux, as well as hints on how to
|
||
best make use of all the features isdn4linux provides.
|
||
|
||
Version 2 of the FAQ is derived from an earlier version which had become
|
||
outdated at the time of this writing. To obtain information on old versions
|
||
of isdn4linux (1997 and earlier) please have a look at the FAQ version 1.3.4.
|
||
|
||
About the format of this FAQ:
|
||
The main basis of this FAQ is the i4l mailing list (see question
|
||
<ref id="docu_mailinglist">). I´ve treated the knowledge gained from reading as
|
||
public domain, without quoting the author of the original mail. The FAQ is now
|
||
written in SGML, as this format is flexible to convert into any other form of
|
||
documentation (though some restrictions apply). The FAQ is now maintained in
|
||
English since German-speaking people can easily follow the mailing
|
||
list/newsgroup (or search in the archives). Whoever wants to translate back to
|
||
German is welcome to do so!
|
||
|
||
The countless links in this documents are not always complete and I´m sure many
|
||
are no longer correct. I do not have the time to check them all. If you
|
||
discover a bad link, please let me know (I´ll try to install some automatic
|
||
checking when I have the time).
|
||
|
||
Additions, improvements and other suggestions are always welcome (also
|
||
correction of typographical errors!), preferably send "diffs" from the ASCII
|
||
version. Thank you very much in advance!
|
||
|
||
Send feedback about this FAQ to:
|
||
<tt><htmlurl url="mailto:i4lfaq@isdn4linux.de"
|
||
name="i4lfaq@isdn4linux.de"></tt>
|
||
or:
|
||
<tt><htmlurl url="mailto:hessler@isdn4linux.de"
|
||
name="hessler@isdn4linux.de"></tt>
|
||
|
||
The newest version of this FAQ can be found at:
|
||
<tt><url url="http://www.mhessler.de/i4lfaq.html"></tt>
|
||
or:
|
||
<tt><url url="http://www.isdn4linux.de/faq/"></tt>
|
||
|
||
This FAQ is protected by the GNU General Public License (GPL) Version 2;
|
||
(C) 1999 Matthias Hessler (for version 2.0)
|
||
Distribution under the terms of the GPL is welcome. 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 author.
|
||
</abstract>
|
||
|
||
<!-- Table of Content
|
||
-->
|
||
|
||
<toc>
|
||
|
||
|
||
<!-- General Section: About isdn4linux, features
|
||
-->
|
||
|
||
<sect> general: General information about isdn4linux
|
||
<label id="general">
|
||
|
||
<sect1> general_i4l: What is isdn4linux?
|
||
<p>
|
||
isdn4linux is a set of kernel modules which are part of the Linux
|
||
kernel. It consists of the main module <tt/isdn/ and the
|
||
actual hardware driver that control some specific card.
|
||
In addition, the package <tt/isdn4k-utils/ contains utilities to
|
||
make use of ISDN specific features.
|
||
|
||
<sect1> general_hardware: What hardware is supported by isdn4linux?
|
||
<p>
|
||
Generally, isdn4linux can control ISDN cards that are connected to the pc's
|
||
ISA or PCI bus. Also a few PCMCIA cards are supported. However, isdn4linux can
|
||
<bf/not/ make use of any devices connected via a serial or parallel
|
||
interface (which are called 'terminal adaptors'). For more details on which
|
||
cards are supported see section <ref id="hardware">.
|
||
|
||
<sect1> general_features: What features are supported by isdn4linux?
|
||
<p>
|
||
Basically, isdn4linux can receive and transmit data via ISDN in many ways
|
||
(X.75, HDLC, raw ip, synchronous ppp, asynchronous ppp). Some of its utilities
|
||
offer additional features. Two examples are <tt/isdnlog/, which allows to log
|
||
and react upon ISDN events (including calculating any charges); and <tt/vbox/
|
||
which provides voice answering machine capabilities. For more details see the
|
||
section <ref id="feature">.
|
||
|
||
<sect1> general_countries: Which countries are supported by isdn4linux?
|
||
<p>
|
||
At least all countries which use Euro-ISDN are supported, however some
|
||
pecularities apply. To find more about your country, check section
|
||
<ref id="countries">.
|
||
|
||
<sect1> general_docu: Where do I find more documentation, howto's, helpful tips
|
||
& tricks?
|
||
<p>
|
||
Besides this FAQ have a look at the various man pages and Readme's that come
|
||
with the isdn4linux package. Then there is the isdn4linux website:
|
||
<url url="http://www.isdn4linux.de">. And there is also a news group and a
|
||
mailing list on isdn4linux which will give you the most up to date
|
||
information. To find out more about these great information sources, see
|
||
section <ref id="docu">.
|
||
|
||
<sect1> general_getlatest: Where do I get the latest version of isdn4linux?
|
||
<p>
|
||
The latest version of the kernel drivers should be found in the Linux
|
||
kernel. However, sometimes the Linux kernel does not have the latest version or
|
||
does not yet support your ISDN card. Additionally, you may need to use the
|
||
isdn4k-util package. In those cases you could try to get the very latest
|
||
version that is currently in development. See the section
|
||
<ref id="distrib">.
|
||
|
||
<sect1> general_contacts: How can I get in contact with the developers?
|
||
<p>
|
||
You can contact the isdn4linux developers through the www.isdn4linux.de
|
||
website. Have a look at <url url="http://www.isdn4linux.de/contacts">.
|
||
|
||
|
||
<!-- Development & Distribution -->
|
||
|
||
<sect> distrib: Distribution
|
||
<label id="distrib">
|
||
|
||
<!-- Who are the developers? -->
|
||
|
||
<sect1> distrib_getlatest: How can I get the latest isdn4linux?
|
||
<p>
|
||
You can find the kernel source it in any kernel, however it may be outdated. To
|
||
get a newer version, as well as the utility package you have several options.
|
||
<enum>
|
||
<item><bf>Via CVS:</bf>
|
||
See question about access to CVS, which the developers use to merge their
|
||
latest code: <ref id="distrib_cvs">.
|
||
<item><bf>Via FTP:</bf>
|
||
There is a list of mirrors of the cvs tree; check:
|
||
<tt><url url="http://www.isdn4linux.de/download.php3"></tt>.
|
||
</enum>
|
||
|
||
<sect1> distrib_cvs: How can I access the source from the current
|
||
development/what is the CVS tree all about?
|
||
<label id="distrib_cvs">
|
||
<p>
|
||
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
|
||
(cvs.isdn4linux.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 how to get the latest version:
|
||
<enum>
|
||
<item>Create and go to the directory where you want to store i4l
|
||
<code>mkdir ~/cvs; cd ~/cvs</code>
|
||
<item>Set CVSROOT to <tt>:pserver:guest@cvs.isdn4linux.de:/i4ldev</tt>
|
||
<code>export CVSROOT=:pserver:guest@cvs.isdn4linux.de:/i4ldev</code>
|
||
<item>Login in (asks for a password, any password will work)
|
||
<code>cvs login</code>
|
||
<item>Get the isdn kernel driver stuff (same hierarchy as in the linux source)
|
||
<code>cvs checkout isdn</code>
|
||
<item>Get the utility package into the current directory
|
||
<code>cvs checkout isdn4k-utils</code>
|
||
If you want to get the latest version for kernel 2.0.x rather than for the
|
||
latest kernel, then you have to give the additional option `-r':
|
||
<code>cvs checkout -r isdn4kernel_2_0 isdn</code>
|
||
</enum>
|
||
|
||
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!
|
||
|
||
People who want to help <em>continuously</em> developing isdn4linux by writing
|
||
new driver etc. can get a real account for full access. In this case write
|
||
an email to Fritz Elfert <tt><htmlurl url="mailto:fritz@isdn4linux.de"
|
||
name="fritz@isdn4linux.de"></tt>
|
||
|
||
|
||
<!-- Features
|
||
-->
|
||
|
||
<sect> Features
|
||
<label id="feature">
|
||
|
||
<sect1> feature_not: Which ISDN features can not be offered by isdn4linux?
|
||
<p>
|
||
Some ISDN features are device-specific and cannot be activated by
|
||
isdn4linux for other devices, unless isdn4linux were to falsify
|
||
the TEI (which would probably confuse the other device).
|
||
Such device-specific ISDN features are, among others: rejection of a
|
||
waiting call, caller id on/off, hold, conference calls, differing COLP/CLRP.
|
||
|
||
<sect1> feature_data: Which ISDN data transmission modes are supported?
|
||
<p>
|
||
These low-level formats are possible:
|
||
<itemize>
|
||
<item> 56k asynchronous : no
|
||
<item> 64k synchronous : yes
|
||
<item>128k synchronous : yes (channel bundling - see the question <ref id="feature_2channel">)
|
||
</itemize>
|
||
These level2 formats are possible:
|
||
<itemize>
|
||
<item>HDLC
|
||
<item>X.75
|
||
<item>transparent
|
||
</itemize>
|
||
These encapsulations are possible:
|
||
<itemize>
|
||
<item>rawip
|
||
<item>ethernet
|
||
<item>Sync PPP
|
||
<item>X.25 (requires 2.1)
|
||
<item>cisco and cisco-h
|
||
<item>plus a few specialities.
|
||
</itemize>
|
||
|
||
<sect1> feature_voice: Can I use isdn4linux as an answering machine?
|
||
<p>
|
||
Yes, voice support is possible with the current version of isdn4linux.
|
||
You can either use &dquot;vgetty&dquot; from Gert Doerings &dquot;mgetty+sendfax&dquot;,
|
||
or &dquot;vboxgetty&dquot; from Michael Herold, which is made especially for
|
||
isdn4linux.
|
||
The latter can be found at:
|
||
<tt><url url="ftp://ftp.franken.de/pub/isdn4linux/contributions/"></tt>
|
||
|
||
<sect1> feature_fax: Can I fax with isdn4linux?
|
||
<p>
|
||
<itemize>
|
||
<item><bf>For all passive cards: NO</bf>. However, there is a project working
|
||
on this rather complicated problem. For more info on its status have a look at:
|
||
<tt><url url="http://home.telia.no/Morten.Rolland/linux/i4lfax/index.html"></tt>
|
||
<item><bf>For the active card AVM B1: Yes</bf> (its firmware has implemented
|
||
fax as one of its features).
|
||
</itemize>
|
||
If you do want to fax now, your best choice is to install an analog fax modem
|
||
along with your ISDN card.
|
||
|
||
<sect1> feature_divert: Is it possible to initiate call forwarding with i4l?
|
||
<p>
|
||
Call diversion features are implemented in the latest cvs tree version for
|
||
kernel 2.0.x (but not 2.1/2.2/2.3). Use the new program <tt/divertctrl/. So far
|
||
no howto and little documentation does exist for it, therefore currently this
|
||
is something for the more experienced user. In the Netherlands, the keypad
|
||
protocol can be used alternatively.
|
||
|
||
<sect1> feature_ipx: Can I route ipx/spx over ISDN with Linux?
|
||
<p>
|
||
Yes, just set up an ISDN interface with encapsulation
|
||
<tt/ethernet/. <em/mars_nwe/ can do the rest (e.g. routing). Also, you can
|
||
route ipx with ipppd, see question <ref id="syncppp_ipx">.
|
||
|
||
<sect1> feature_2channel: Does isdn4linux support channel bundling?
|
||
<label id="feature_2channel">
|
||
<p>
|
||
The current version of isdn4linux support 2 methods of channel
|
||
bundling:
|
||
<itemize>
|
||
<item><bf>MPPP</bf> (based on sync PPP)
|
||
<item><bf>Raw bundling</bf> (configured by so-called slave channels)
|
||
</itemize>
|
||
Both variants have their own advantages and disadvantages See the question &dquot;
|
||
How do I use channel bundling?&dquot; in the &dquot;Channel bundling&dquot; section below.
|
||
Warning: Channel bundling saves time, but not any telephone charges.
|
||
Only if you really need the extra bandwidth is it useful.
|
||
|
||
<sect1> feature_diald: Can I combine isdn4linux with diald?
|
||
<p>
|
||
Yes, see the &dquot;Diald&dquot; part of the &dquot;Configuration&dquot;
|
||
section.
|
||
|
||
<sect1> feature_dod: Does the driver support &dquot;dial on demand&dquot;?
|
||
<p>
|
||
Yes. If a network interface (e.g. &dquot;isdn0&dquot;) is set up, the driver
|
||
will dial the number. If in addition a hangup timeout (Idle Timeout) has been
|
||
given, isdnctrl huptime interface time, then the driver will automatically hang
|
||
up when no data was been transferred over the interface for &dquot;time&dquot;
|
||
seconds. However, with syncPPP there are problems (see the syncPPP section).
|
||
Also look at the dialmode description (see question <ref id="config_dialmode">).
|
||
You may also be very interested in the big part of this FAQ that handles
|
||
unwanted dialouts... (<ref id="dod">)
|
||
|
||
<sect1> feature_btx: Is the German videotex/Btx/Datex-J possible with isdn4linux?
|
||
<p>
|
||
Yes, it works with the modem emulation with the ttyI* devices. There is
|
||
a special register to set for videotex (ATSx=y - see the Readme's)
|
||
Warning! XCept (formerly Xbtx) has an ISDN configuration option. This
|
||
should NOT be used. XCept should be configured as if a normal modem
|
||
were being used.
|
||
|
||
<sect1> feature_clock: How can I set the clock of my computer with ISDN?
|
||
<p>
|
||
Isdnlog offers this feature with option &dquot;-t&dquot;. 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 &dquot;netdate&dquot; or &dquot;rdate&dquot;. One time server
|
||
can be found in Cologne: time.rrz.uni-koeln.de, but there are many more.
|
||
|
||
<sect1> feature_dosemu: Can I use isdn4linux under dosemu?
|
||
<p>
|
||
Yes, you really can! Steffan Henke <tt><htmlurl url="mailto:henker@informatik.uni-bremen.de"
|
||
name="henker@informatik.uni-bremen.de"></tt>
|
||
wrote on 25 Oct 96:
|
||
<quote>
|
||
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
|
||
</quote>
|
||
|
||
<sect1> feature_rawip: What is Raw IP, when should I use it?
|
||
<p>
|
||
Raw IP does without the use of a protocol such as X.75 or HDLC
|
||
(for modem emulation, etc.) or PPP. TCP/IP packets are directly
|
||
exchanged.
|
||
Raw IP has both advantages and disadvantages.
|
||
Advantages:
|
||
<itemize>
|
||
<item> No handshaking (= faster connections)
|
||
<item> Authorization by Caller ID (= fast, safe, no password)
|
||
<item> Fixed IP address (= a broken connection can be continued by redialing)
|
||
<item> Higher data transfer rates
|
||
<item> Better stability (smaller driver = almost no bugs)
|
||
</itemize>
|
||
Disadvantages:
|
||
<itemize>
|
||
<item> No handshaking
|
||
= Configuration must occur beforehand (IP addresses,...)
|
||
= sensible to use for only for one provider at a time
|
||
<item> Authorization only by Caller ID
|
||
= Dialin only possible from one's own number
|
||
<item> Fixed IP address
|
||
= must be known ahead of time, more IP addresses required, no dynamic
|
||
assignment of addresses possible.
|
||
</itemize>
|
||
From this summary it should be clear under what conditions it makes sense
|
||
to use raw IP.
|
||
|
||
<sect1> feature_capi: Is there a CAPI interface available?
|
||
<p>
|
||
Currently, there is a CAPI 2.0 interface for the active card AVM B1, but not
|
||
for any other card. However, there are plans to make this a general interface,
|
||
also for other cards. There are no plans to implement a CAPI 1.0 interface.
|
||
|
||
<!-- Feature reversed card -->
|
||
|
||
<!-- Chargeint -->
|
||
|
||
<!-- Feature Raw-IP -->
|
||
|
||
<!-- Feature both caller ids -->
|
||
|
||
<!-- Feature leased line -->
|
||
|
||
<!-- Eurofile -->
|
||
|
||
|
||
<!-- Helpful docu, links, mailing list, config examples, howto's -->
|
||
|
||
<sect> docu: Documentation, Howto's, Tips & Tricks, Mailing List/Newsgroup
|
||
<label id="docu">
|
||
|
||
<sect1> docu_first: What documents should I read first?
|
||
<p>
|
||
<itemize>
|
||
<item>ISDN kernel subsystem:
|
||
/usr/src/linux/Documentation/isdn/README
|
||
<item>ISDN cards:
|
||
/usr/src/linux/Documentation/isdn/README.card
|
||
E.g.: /usr/src/linux/Documentation/isdn/README.HiSax
|
||
<item>Synchronous PPP:
|
||
/usr/src/linux/Documentation/isdn/README.syncppp
|
||
/usr/src/linux/Documentation/isdn/README.syncPPP.FAQ
|
||
<item>Voice capability:
|
||
/usr/src/linux/Documentation/isdn/README.audio
|
||
<item>ISDN Utilities:
|
||
/usr/src/isdn4k-utils-version/README(.*)
|
||
</itemize>
|
||
Many of the utilities also have man pages!
|
||
|
||
In a Suse distribution the following information might also be helpful:
|
||
<itemize>
|
||
<item>Synchronous PPP: /usr/doc/faq/faq/PPP-FAQ
|
||
<item>Email configuration: /usr/doc/howto/mini/Mail-Queue.gz
|
||
</itemize>
|
||
|
||
<sect1> docu_newsgroup: Where is the official website for isdn4linux?
|
||
<p>
|
||
The offical website can be found at:
|
||
<url url="http://www.isdn4linux.de">.
|
||
|
||
<sect1> docu_newsgroup: Where is the newsgroup for isdn4linux?
|
||
<p>
|
||
The newsgroup is <tt/de.alt.comm.isdn4linux/. Most isdn4linux developers are
|
||
present, and many other knowledgeable people. Don't be confused by the many
|
||
German messages on it. <bf>English postings are very welcome, and will be
|
||
answered in english!</bf>
|
||
|
||
<sect1> docu_mailinglist: Where is the mailing list for isdn4linux?
|
||
<label id="docu_mailinglist">
|
||
<p>
|
||
The mailing list contains the same messages as the newsgroup. A bidirectional
|
||
gateway ensures that both are in sync.
|
||
To subscribe to the mailing list, send an email message to
|
||
<tt><htmlurl url="mailto:majordomo@listserv.isdn4linux.de"
|
||
name="majordomo@listserv.isdn4linux.de"></tt>.
|
||
The subject doesn't matter. The message body should read <tt/subscribe
|
||
isdn4linux <email address>/, where <email address> is the
|
||
address to which mail from the list should be sent. To unsubscribe send a
|
||
message with the body <tt/unsubscribe isdn4linux <email address>/ at the
|
||
same address. Please note: there are about 20-50 messages per day on this
|
||
mailing list.
|
||
|
||
<sect1> docu_mailarchive: Is there an archive of the isdn4linux mailing list?
|
||
<p>
|
||
To quickly search for keywords, you can make use of
|
||
<tt><url url="http://www.deja.com"></tt>. Make sure to also select older
|
||
archive to do a complete search.
|
||
|
||
Messages are also saved (unsorted) at listserv.isdn4linux.de, collected by
|
||
month. To access the archive, send Email to
|
||
<tt><htmlurl url="mailto:majordomo@listserv.isdn4linux.de"
|
||
name="majordomo@listserv.isdn4linux.de"></tt>.
|
||
The subject doesn't matter. These commands are possible:
|
||
<itemize>
|
||
<item>index isdn4linux - list which archive files are available
|
||
<item>get isdn4linux filename - retrieves the file filename
|
||
</itemize>
|
||
The archives are named &dquot;archiv.yearmonth&dquot;, so
|
||
&dquot;archiv.9610&dquot; is the archive for October 1996.
|
||
|
||
Other archives are:
|
||
<itemize>
|
||
<item><tt><url
|
||
url="ftp://ftp.uni-oldenburg.de/pub/unix/linux/isdn/isdn4linux/Mailing-List"></tt>
|
||
<item><tt><url url="http://wws.mathematik.hu-berlin.de/ldr/ISDN/isdn4linux/"></tt>
|
||
</itemize>
|
||
|
||
|
||
<!-- Supported Hardware & hardware-specific stuff
|
||
-->
|
||
|
||
<sect> hardware: Supported hardware, its specialities, and hardware-related
|
||
problems
|
||
<label id="hardware">
|
||
|
||
<sect1> hardware_support: What hardware is supported?
|
||
<p>
|
||
Only internal cards that plug into an ISA or PCI slot are
|
||
supported. ISA Plug&Play cards are also supported, but need some additional
|
||
manual configuration by means of the <tt/isapnptools/. For details on the
|
||
configuration see question <ref id="config_pnp">.
|
||
|
||
Right now there is a driver for all passive card with certain Siemens
|
||
chipsets (HiSax driver). Have a look at the <tt/README.HiSax/ that comes with
|
||
the driver for the most up to date information on supported cards.
|
||
Here the latest status (8th June 1999):
|
||
<itemize>
|
||
<item>Teles 8.0/16.0/16.3 and compatible ones (like: Dr. Neuhaus Niccy
|
||
1016, Creatix 16/S0)
|
||
<item>Teles 16.3c (can not be used as reversed card)
|
||
<item>Teles S0/PCMCIA
|
||
<item>Teles PCI
|
||
<item>Teles S0Box
|
||
<item>Creatix S0Box
|
||
<item>Creatix PnP S0
|
||
<item>Compaq ISDN S0 ISA card
|
||
<item>AVM A1 (Fritz, Teledat 150)
|
||
<item>AVM Fritz PCMCIA
|
||
<item>AVM Fritz PnP
|
||
<item>AVM Fritz PCI
|
||
<item>ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8
|
||
<item>ELSA Quickstep 1000
|
||
<item>ELSA Quickstep 1000PCI
|
||
<item>ELSA Quickstep 3000 (same settings as QS1000)
|
||
<item>ELSA Quickstep 3000PCI
|
||
<item>ELSA PCMCIA
|
||
<item>ITK ix1-micro Rev.2
|
||
<item>Eicon.Diehl Diva 2.0 ISA and PCI (S0 and U interface, no PRO version)
|
||
<item>Eicon.Diehl Diva Piccola
|
||
<item>ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D)
|
||
<item>Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K
|
||
adapter)
|
||
<item>PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink)
|
||
<item>HFC-2BS0 based cards (TeleInt SA1)
|
||
<item>Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+)
|
||
<item>Sedlbauer Speed Star/Speed Star2 (PCMCIA)
|
||
<item>Sedlbauer ISDN-Controller PC/104
|
||
<item>USR Sportster internal TA (compatible Stollmann tina-pp V3)
|
||
<item>ith Kommunikationstechnik GmbH MIC 16 ISA card
|
||
<item>Traverse Technologie NETjet PCI S0 card
|
||
<item>Dr. Neuhaus Niccy PnP/PCI
|
||
</itemize>
|
||
Note:
|
||
<itemize>
|
||
<item>PCF, PCF-Pro: up to now, only the ISDN part is supported
|
||
<item>PCC-8: not tested yet
|
||
<item>Teles PCMCIA is EXPERIMENTAL
|
||
<item>Teles 16.3c is EXPERIMENTAL
|
||
<item>Teles PCI is EXPERIMENTAL
|
||
<item>Teles S0Box is EXPERIMENTAL
|
||
<item>Eicon.Diehl Diva U interface not tested
|
||
</itemize>
|
||
|
||
A few active cards that are also supported, see next question.
|
||
|
||
<sect1> hardware_activepassive: What is the difference between an active and a passive ISDN card?
|
||
<p>
|
||
An active ISDN card handles most of the ISDN connection protocols
|
||
(dialing, accepting calls, etc.) itself. The card includes a kind
|
||
of minicomputer with its own software (firmware). With a passive card, the
|
||
computer in which the card is installed has to perform these functions.
|
||
|
||
In principle, both types are supported by isdn4linux. However, since active
|
||
cards have non-standard interfaces, a driver can only be made when the producer
|
||
publishes the interface. Also, the card's firmware needs to be made freely
|
||
available. In contrast, many passive cards share the same chipset. Therefore
|
||
many passive cards can be supported once a driver supports this one chipset.
|
||
|
||
These active cards are currently supported by an individual driver:
|
||
<itemize>
|
||
<item>AVM B1
|
||
<item>ICN
|
||
</itemize>
|
||
|
||
<sect1> hardware_recommend: Which card is recommended by the developers?
|
||
<p>
|
||
The developers suggest to use ELSA cards. ELSA has made their specifications
|
||
available to the developers, and provided a lot of support, resulting in an
|
||
excellent driver. Also, their cards are certified for usage in Germany, see
|
||
question <ref id="country_certified">.
|
||
|
||
<sect1> hardware_external: Does isdn4linux support external terminal adapters?
|
||
<p>
|
||
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).
|
||
|
||
<sect1> hardware_irq: Why should I avoid IRQ 12 and 15 for my ISDN card?
|
||
<p>
|
||
On many PCI boards, interrupt 12 is often used by a PS/2 mouse (even though you
|
||
may not have any or the IRQ is not activated for it). It may be used even when
|
||
you have no PS/2 port. Interrupt 15 is also often used by the second IDE bus
|
||
(even when you are not using it or the IRQ is not activated for it).
|
||
Even though one thinks that some IRQs are available they are still somehow
|
||
reserved by the BIOS. Good IRQs to try are always IRQ 5 and IRQ 9. Without mice
|
||
or modems you could also try 4 and 3, which works even on very exotic boards.
|
||
|
||
<sect1> hardware_alpha: Can I run isdn4linux on a DEC Alpha with Linux?
|
||
<p>
|
||
Yes, most cards should run with isdn4linux on a DEC Alpha. Many cards have been
|
||
reported to work with the HiSax driver. Also the active ICN card has been
|
||
reported to work.
|
||
|
||
<sect1> hardware_maxcards: How many ISDN cards can I put into my computer?
|
||
<p>
|
||
It depends on the availability of slots, interrupts/IO addresses in your
|
||
computer as well as the possibilities of the ISDN card. Most passive cards
|
||
are limited by the supported IO addresses (e.g.: Teles 16.x: only 3 addresses
|
||
are legally possible), and the total usage of interrupts (every card needs one).
|
||
|
||
To use more cards, the ICN card may be your choice. It has no interrupts, a
|
||
more flexible port configuration and the driver places the shared memory area
|
||
of all ICN cards at the same address. The card memory is shown only as
|
||
needed. Therefore, one can use as many cards are there are slots.
|
||
|
||
<sect1> hardware_teles: What should I know about before buying an ISDN card from Teles?
|
||
<p>
|
||
Teles´ business practices are very customer- and developer-unfriendly when
|
||
compared to those of other companies. Naturally, the developers give
|
||
priority to cards for which support is available, and where the specifications
|
||
are freely available.
|
||
|
||
So far, Teles has had a very unfriendly attitude towards the i4l
|
||
developers. No support has ever been received from them, and they don´t publish
|
||
any information about how to access their card. The developers have invested a lot
|
||
of private effort into getting this card to work from the beginning without
|
||
receiving any support. The driver has been a complete private effort. Yet,
|
||
Teles has bragged on their web site that their cards run under Linux, without
|
||
giving proper credit.
|
||
|
||
Even companies that buy Teles cards and resell them under their own name have
|
||
not been able to improve the support. This has lead to the situation where a
|
||
re-branding company (!) itself had to go through the effort of obtaining
|
||
approval to legally use i4l in Germany on a Teles card.
|
||
|
||
From a customer point of view, check out the prices for their hotline before
|
||
you buy any hardware from them! The author of the FAQ refuses to use any
|
||
hotline that charges 216,- DM per hour. Reports about quality and waiting time
|
||
have not always been favorable.
|
||
|
||
Warning: Teles has often changed their cards without notice, while still
|
||
using the same name. When you buy a Teles card, you may find out that your
|
||
brand-new card can not be supported by i4l!
|
||
|
||
The developers will try to support new Teles cards when information about how
|
||
to access it becomes available, and when they have no other priorities. Of
|
||
course you can always send a patch.
|
||
|
||
<sect1> hardware_icn: What is special about the ICN card?
|
||
<p>
|
||
This was the first active card supported by isdn4linux. The manufacturer has
|
||
always supported i4l developers (<tt><url url="http://www.think.de/"></tt>).
|
||
The ICN does not need any interrupt (polling), therefore a PC can be equipped
|
||
with many of them without any interrupt conflicts. The newest firmware should
|
||
be available at <tt><url url="ftp://ftp.think.de/pub/isdn4linux/firmware/"></tt>.
|
||
Unfortunately, the ICN is not produced any more.
|
||
|
||
|
||
<!-- Trouble Hardware
|
||
-->
|
||
|
||
<sect1> hardware_crossedcable1: If i4l uses one B-channel then the other one
|
||
will be blocked (incoming as well as outgoing)...
|
||
<p>
|
||
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.
|
||
|
||
<sect1> hardware_crossedcable2: How can I test whether a a/b cable pair has been crossed?
|
||
<p>
|
||
This question assumes that you are connected by an internal bus that you
|
||
installed, attached directly to the NT (without using an RJ45 cable).
|
||
|
||
The easiest way to test it is to buy a little cable tester (the author of this
|
||
FAQ got one from Conrad Electronics in Germany for 29,- DM - just follow the
|
||
simple instructions).
|
||
|
||
Otherwise you have a bit more work. Switch line a1 and b1. If it doesn't work,
|
||
put them back and switch a2 and b2. If it still doesn't work, try switching
|
||
them both. As long as {a|b}1 and {a|b}2 are kept, nothing can break. If you
|
||
want to be sure, before plugging it in measure between pins 4 and 5 and between
|
||
Pins 2 and 6 on the socket; there should be no current, but between 3 and 4 and
|
||
between 6 and 5 should be 40 V, 6 and 3 positive.
|
||
|
||
With the Western plug this works similar. 4 lines are used:
|
||
<verb>
|
||
| | | |
|
||
| | | |
|
||
1 2 3 4
|
||
</verb>
|
||
Then you can try to switch (1 with 4) or (2 with 3) or both. Never switch the
|
||
outer with the inner lines - this would cross the RX and TX lines and nothing
|
||
will work.
|
||
|
||
Check the Cable FAQ for more details on which line should be connected how.
|
||
|
||
If both devices are attached via RJ45, then one of the cables
|
||
has been twisted. That usually happens if one of the RJ45 plugs
|
||
has been attached upside-down (a1/b1 are inside, a2/b2 are outside,
|
||
so the order of the sending/receiving pairs is maintained), then
|
||
you just need a new plug and of course pliers for the RJ45, old
|
||
plug off, and new plug (in the right direction) on.
|
||
|
||
<sect1> hardware_pbx: i4l is working on the internal bus of a PBX. Any problem?
|
||
<p>
|
||
Many PBX run non-standard ISDN protocolls on their internal bus. This may cause
|
||
i4l to print warnings when it encounters unexpected frames (some old versions
|
||
even crash). Also, they may run 1TR6 protocoll by default, instead of Euro ISDN
|
||
on their internal bus. You have to configure i4l (or the PBX) accordingly, best
|
||
is you try both on the same or similar protocolls.
|
||
|
||
Also the MSN may be different than you expect. Check several versions, one
|
||
digit, or two digits, or whole MSN. Best is you call some device (e.g. ISDN
|
||
telephone) on the internal bus and check what i4l writes into the log file.
|
||
|
||
<sect1> hardware_telestrouble: The PNP tools done work with my Teles 16.3 PNP card!
|
||
<p>
|
||
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.
|
||
|
||
<sect1> hardware_elsacabletrouble: On my ELSA card, the LED for the loss of the
|
||
TEI often blinks. My connections are also often disrupted...
|
||
<p>
|
||
These blinking LEDS are often caused by a bad cable or a too long or
|
||
unterminated SO bus.
|
||
|
||
<sect1> hardware_elsairq: My ELSA Quickstep 1000 ISA card produces very many
|
||
interrupts with the HiSax driver. Is this normal or a problem with the HiSax driver?
|
||
<p>
|
||
This is normal. The ELSA Quickstep 1000 ISA card has a hardware timer on the
|
||
card which can not be disabled by software. You have to modify the card
|
||
hardware to get rid of it. Check with Karsten Keil for this:
|
||
<tt><htmlurl url="mailto:keil@isdn4linux.de" name="keil@isdn4linux.de"></tt>
|
||
|
||
|
||
|
||
<!-- Configuration/Troubleshooting
|
||
-->
|
||
|
||
<sect> config: General information about Configuration
|
||
|
||
<sect1> config_msn: How should I set up isdn4linux with my MSNs?
|
||
<p>
|
||
See section <ref id="msn">.
|
||
|
||
<sect1> config_hardware: How should I configure my hardware? Is there something special I should
|
||
know about my ISDN card?
|
||
<p>
|
||
Have a look in section <ref id="hardware">.
|
||
|
||
<sect1> config_dialmode: When an IP packet should go over the link (which usually triggers a
|
||
dialout), all I see in the log is: &dquot;dial rejected: interface not in
|
||
dialmode `auto'&dquot;?
|
||
<label id="config_dialmode">
|
||
<p>
|
||
The new ISDN drivers in 2.0.36 defaults to manual dialmode, not
|
||
autodial. This is done to prevent unexpected (and unnoticed) dialouts.
|
||
|
||
To enable autodial for a given interface e.g. ippp0, use
|
||
<code>isdnctrl dialmode ippp0 auto</code>
|
||
|
||
The meaning of the values for dialmode is:
|
||
<descrip>
|
||
<tag/off/
|
||
means that you (or the system) cannot make any connection
|
||
(neither incoming nor outgoing connections are possible). Use
|
||
this if you want to be sure that no connections will be made.
|
||
|
||
<tag/auto/
|
||
means that the interface is in auto-dial mode, and will
|
||
attempt to make a connection whenever a network data packet needs
|
||
the interface's link. Note that this can cause unexpected dialouts,
|
||
and lead to a high phone bill! Some daemons or other pc's that use
|
||
this interface can cause this.
|
||
Incoming connections are also possible.
|
||
|
||
<tag/manual/
|
||
(DEFAULT) is a dial mode created to prevent the unexpected dialouts.
|
||
In this mode, the interface will never make any connections on its
|
||
own. You must explicitly initiate a connection with:
|
||
<code>isdnctrl dial ippp0</code>
|
||
Please note that the <tt/huptimeout/ may still end the connection
|
||
automatically! To ensure that you have to hang up manually, you have to switch
|
||
this off:
|
||
<code>isdnctrl huptimeout ippp0 0</code>
|
||
To end the connection, use:
|
||
<code>isdnctrl hangup ippp0</code>
|
||
</descrip>
|
||
To allow a normal user to initiate a dialout, have a look at question
|
||
<ref id="config_permission">.
|
||
|
||
<sect1> config_permission: How can I allow a normal user to initiate dialouts?
|
||
<label id="config_permission">
|
||
<p>
|
||
ISDN usage depends on the permissions to the devices <tt>/dev/ttyI*</tt> and
|
||
<tt>/dev/cui*</tt>. You have several choices to selectively allow users to do
|
||
ISDN transactions.
|
||
<enum>
|
||
<item>You can establish the group `isdn' in <tt>/etc/group</tt>, and do:
|
||
<code>
|
||
chgrp isdn /dev/ttyI* /dev/cui*
|
||
chmod o-rw /dev/ttyI* /dev/cui*
|
||
</code>
|
||
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'.
|
||
<item>You can allow only root to log out, but set up exceptions for other users
|
||
with the su1 functionality (see man su1). As root edit
|
||
<tt>/etc/su1.priv</tt>. Add these lines if they (or similar ones) are not yet
|
||
there, to allow users XXXX and YYYY to initiate dialups/hangups:
|
||
<code>
|
||
# log all dialouts in syslog
|
||
syslog all
|
||
define PPPUSER XXXX YYYY
|
||
alias dial /sbin/isdnctrl dial ippp0
|
||
alias hangup /sbin/isdnctrl hangup ippp0
|
||
ask never
|
||
allow PPPUSER prefix dial
|
||
allow PPPUSER prefix hangup
|
||
</code>
|
||
Then create two links for dial and hangup:
|
||
<code>
|
||
ln -s /usr/bin/su1 /usr/local/bin/dial
|
||
ln -s /usr/bin/su1 /usr/local/bin/hangup
|
||
</code>
|
||
Now the users XXXX and YYYY can dial out by typing <tt/dial/, and hangup with
|
||
<tt/hangup/.
|
||
<item>If you only have one user that you use for ISDN interactions, you can
|
||
make him owner of the ISDN interface.
|
||
</enum>
|
||
|
||
<sect1> config_pnp: How do I configure a PNP (Plug and Play) card?
|
||
<label id="config_pnp">
|
||
<p>
|
||
For PCI cards Plug and Play works automatically, they don´t need any manual
|
||
configuration if the correct card type is provided. ISA PNP cards will
|
||
require some manual configuration:
|
||
<enum>
|
||
<item>With &dquot;make menuconfig&dquot; (or &dquot;make config&dquot;) set the
|
||
following kernel options:
|
||
<itemize>
|
||
<item>ISDN = &dquot;M&dquot; (as module - otherwise PNP doesn't work!)
|
||
<item>HiSax = &dquot;M&dquot; (as module - otherwise PNP doesn't work!)
|
||
<item>16.3/PNP support
|
||
<item>EURO support
|
||
</itemize>
|
||
<item>Compile and install kernel and modules, depmod. (Reboot!)
|
||
<item>Read the configuration of the PNP card with:
|
||
<code>pnpdump > /etc/isapnp.conf</code>
|
||
<item>The configuration file <tt>/etc/isapnp.conf</tt> has to be set by
|
||
hand. Set the following values:
|
||
<itemize>
|
||
<item>INT0 - the interrupt used by the card (Default for Teles 16.3 PNP: 10)
|
||
<item>IO0, IO1 - the IO ports used by the card (Default for Teles 16.3 PNP:
|
||
0x580 and 0x180) (Attention: these values must be 64-bit aligned (ending with
|
||
0, 4, 8, or c)! Early versions of the PNP cards may suggest incorrect values!)
|
||
<item><bf>Remove comment in front of ACT Y!</bf>
|
||
</itemize>
|
||
<item>Activate the configuration with:
|
||
<code>isapnp /etc/isapnp.conf</code> (must be started at every boot)
|
||
<item>Now the HiSax module can be started for Euro-ISDN with:
|
||
<code>modprobe hisax io=4,2,INT,IO0,IO1</code>
|
||
(Replace INT, IO0, and IO1 with the your values in isapnp.conf.)
|
||
</enum>
|
||
|
||
<sect1> config_kerneld: Why shouldn´t I use <em>kerneld</em> to load the ISDN
|
||
modules in the kernel as needed?
|
||
<label id="config_kerneld">
|
||
<p>
|
||
<em>kerneld</em> does not work well with the ISDN modules, since the ISDN
|
||
modules can not store their status, and could miss important messages on the
|
||
D channel. Newer versions of i4l ensure that they won´t be unloaded by
|
||
kerneld, but you should not try to use kerneld with any version of i4l.
|
||
|
||
|
||
<sect1> config_runlevel: How can I boot Linux sometimes with
|
||
ISDN, and sometimes without?
|
||
<label id="config_runlevel">
|
||
<p>
|
||
Yes, you can define two different run level for this (under SysVInit) in
|
||
<tt>/etc/inittab</tt>. One run level includes the ISDN processes, where the
|
||
other one does not.
|
||
|
||
<!-- links outdated? - may need to be reworked! -->
|
||
|
||
<sect1> config_links: What helpful links are there about isdn4linux?
|
||
<p>
|
||
Please note: these link list may be outdated, they have not been checked for a
|
||
long while.
|
||
<itemize>
|
||
<item>Scripts and installation tips from several people:
|
||
<tt><url url="http://www.rosat.mpe-garching.mpg.de/˜web/ISDN.html"></tt>
|
||
<item>I4l, syncPPP, email, Usenet, Voicebox, this FAQ and more:
|
||
<tt><url url="http://www.lrz-muenchen.de/˜ui161ab/www/isdn/"></tt>
|
||
<item>Michael Hipp's page (general informations):
|
||
<tt><url url="http://www.sfs.nphil.uni-tuebingen.de/˜hipp/isdn/"></tt>
|
||
<item>Chargeint instructions:
|
||
<tt><url url="http://www.provi.de/˜gvz/chargeint.html"></tt>
|
||
<item>Stefan Nehlsen's instructions for syncPPP:
|
||
<tt><url url="http://www.techfak.uni-kiel.de/˜stn/i4l/"></tt>
|
||
<item>xled (formerly xvboxled) is at:
|
||
<tt><url url="http://fb4-1112.uni-muenster.de/pub/ffwd/"></tt>
|
||
<item>Example configurations for isdn4linux are said to be at:
|
||
<tt><url url="http://www.datenhighway.com/isdn4linux.html"></tt>
|
||
<item>This FAQ along with isdn4linux is at:
|
||
<tt><url url="ftp://ftp.franken.de/pub/isdn4linux/"></tt>
|
||
<item>This FAQ is also so:
|
||
<tt><url url="ftp://ftp.pop.de/pub2/linux/isdn4linux/FAQ"></tt>
|
||
<item>Configuration examples and scripts:
|
||
<tt><url url="http://www.rosat.mpe-garching.mpg.de/˜web/ISDN.html"></tt>
|
||
<item>Many HowTo's on basic installation, syncPPP, Email setup,
|
||
Usenet News, answering machine, and more:
|
||
<tt><url url="http://www.lrz-muenchen.de/˜ui161ab/www/isdn/"></tt>
|
||
<item>Further FAQs with example scripts:
|
||
<tt><url url="http://www.fzi.de/sim/people/trautw/i4l/index.html"></tt>
|
||
<item>Eurofile client + server software (alpha):
|
||
<tt><url url="ftp://ftp.hamburg.pop.de/pap/LOCAL/linux/i4l-eft/"></tt>
|
||
</itemize>
|
||
|
||
<sect1> trouble_tcpdump: Why does my tcpdump not work for ip packets going over
|
||
ISDN? How can I get a tcpdump patched for ISDN?
|
||
<label id="trouble_tcpdump">
|
||
<p>
|
||
The reason is that tcpdump does not always understand the special
|
||
encapsulations that are possible with isdn4linux, especially syncppp. To change
|
||
this, you need to patch tcpdump.
|
||
|
||
Michael Stiller <tt><htmlurl url="mailto:michael@toyland.ping.de"
|
||
name="michael@toyland.ping.de"></tt> wrote on 23 Oct 1996:
|
||
|
||
Tip for ftp:
|
||
|
||
<tt><url url="ftp://ftp.gwdg.de/pub/misc/isdn/linux/isdn4linux-gwdg"></tt>
|
||
|
||
There is the patch: &dquot;tcpdump-3.0.4-1-isdn.dif.gz&dquot;
|
||
|
||
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 <tt><htmlurl url="mailto:henning@pong.iconsult.com"
|
||
name="henning@pong.iconsult.com"></tt> further wrote on
|
||
30 Oct 1996:
|
||
<quote>
|
||
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
|
||
</quote>
|
||
<tt><url url="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/tools"></tt>
|
||
<quote>
|
||
This patch recognizes rawIP, ISDN-IP and CISCO-HDLC and can
|
||
dump these packets.
|
||
</quote>
|
||
(The patch was attached to the message - it should be easy to find in the
|
||
mailing list archive - Ed.)
|
||
|
||
Sascha Ottolski <tt><htmlurl url="mailto:sascha@alzhimer.isdn.cs.tu-berlin.de"
|
||
name="sascha@alzhimer.isdn.cs.tu-berlin.de"></tt> gave the following
|
||
tip on 5 Nov 1996:
|
||
<quote>
|
||
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(&dquot;ppp&dquot;, device, 3) == 0)
|
||
Either you name your ppp devices pppX instead of ipppX, or
|
||
change this line, e.g.
|
||
else if (strncmp(&dquot;ippp&dquot;, device, 4) == 0)
|
||
^^^^ ^^
|
||
Then tcpdump will also recognize syncPPP. At least it does for me.
|
||
</quote>
|
||
|
||
|
||
<!-- Config MSN
|
||
-->
|
||
|
||
<sect> msn: Configuration/MSNs
|
||
<label id="msn">
|
||
|
||
<sect1> msn_my1: What is my MSN? What if I don´t have any?
|
||
<p>
|
||
Your telephone company will tell you your MSN. It is your own telephone
|
||
number. Please note that you <bf/have/ to provide i4l with at least one MSN. If
|
||
you don´t have any you can use `0', which is assumed if no MSN is transmitted
|
||
from your telephone company. Check section <ref id="countries">, together with
|
||
the following questions, on how to configure your MSN(s).
|
||
|
||
<sect1> msn_my2: How can I find out how my telephone number is transmitted
|
||
to the calling party?
|
||
<p>
|
||
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: &dquot;isdn_tty: call from XXX - YYY ignored&dquot;
|
||
(in order for this to work, you must of course already have the ISDN
|
||
drivers in your kernel and active).
|
||
|
||
<sect1> msn_config: How do I configure my MSN?
|
||
<p>
|
||
If your telephone number were 56789, then it would be configured as follows:
|
||
<itemize>
|
||
<item>Modem emulation: <tt>&dquot;AT&e56789&dquot;</tt>
|
||
<item>Network interfaces: <tt>&dquot;isdnctrl msn interface 56789&dquot;</tt>
|
||
<item>For test calls to yourself add the area code (e.g. 01234):
|
||
<code>
|
||
&dquot;isdnctrl addphone interface in 123456789&dquot; (without leading zero)
|
||
&dquot;isdnctrl addphone interface out 0123456789&dquot; (with leading zero)
|
||
</code>
|
||
</itemize>
|
||
You may find national differences here (check section <ref id="countries">).
|
||
|
||
<sect1> msn_mindialin: How can I minimize usage of MSNs for digital data dialin?
|
||
<p>
|
||
i4l gives priority to net interfaces. Therefore, you can get away with only
|
||
one MSN when you set it up like this:
|
||
<enum>
|
||
<item>Set up net interfaces (sync ppp, rawip) for all users that will want to
|
||
use them (ipppd or rawip), with their incoming phone number (precondition is
|
||
that it is transmitted).
|
||
<item>Set up ttyI* for all other users (X.75, async ppp).
|
||
<item>Set option `secure on'.
|
||
</enum>
|
||
i4l gives priority to net interfaces. `secure on' ensures that only users
|
||
that have been set up will be connected to a net interface. Users that want
|
||
to choose between both will have to use different outgoing MSNs to call you.
|
||
|
||
<sect1> msn_onlyone: How can I use one MSN for everything?
|
||
<p>
|
||
In Germany, this is not an issue any more since you can get the first 10 MSN
|
||
for free, however minimizing MSN usage may still be very interesting for other
|
||
countries.
|
||
|
||
Digital data dialin can easily be distinguished from voice/analog modem
|
||
dialin by the 'Service Recognition' code (&dquot;digital, data&dquot;).
|
||
|
||
For the differentiation between net interfaces (ipppd, rawip) and ttyI*
|
||
(X.75) see last question.
|
||
|
||
To get voice/analog modem to work in parallel, use mgetty for the analog
|
||
modem. Mgetty can handle analog data calls, faxes, and even voice calls as
|
||
answering machine if the modem supports it. Configure it for 10 rings. If
|
||
you take the phone and hear a fax or modem, send mgetty a USR1 signal (kill
|
||
-USR1 mgetty-pid). If your phone socket is correctly wired, the modem will
|
||
take over the connection, cutting off the phone. If you have an ISDN PBX
|
||
then you can forward the call to a different analog port when you picked up
|
||
a fax/modem call.
|
||
|
||
If your analog modem can not handle voice calls, then you have to
|
||
choose since incoming voice calls can not be distinguished from analog
|
||
fax/data calls. Use either VBOX to take your voice calls as an answering
|
||
machine. Or forget about voice calls and set up your modem to handle only
|
||
faxes and/or analog data calls.
|
||
|
||
<sect1> msn_buendel: Can I have several NTBAs, all with the same MSN?
|
||
<p>
|
||
Yes, but you need the cooperation of your telecommunication company. They
|
||
can set up several BRIs in Point-to-point mode that have the same MSN. In
|
||
Germany it is called a bundled line (`Bündelanschluß').
|
||
|
||
<!-- Config for remote device
|
||
-->
|
||
|
||
<sect> remote: Configuration according to remote ISDN device
|
||
<label id="remote">
|
||
|
||
<!-- Config Win95
|
||
-->
|
||
|
||
<sect1> remote_w95: What do I have to watch out for to connect to Windows95?
|
||
<p>
|
||
VJ (i.e. header) compression should be turned off on both sides, at least for
|
||
the beginning (for more details on compression with ipppd see question
|
||
<ref id="syncppp_compression">). Windows95 is very touchy if this option is
|
||
rejected by isdn4linux.
|
||
|
||
<!-- Config Mac
|
||
-->
|
||
|
||
<sect1> remote_mac: I'd like to exchange data with a Macintosh (Leonardo card),
|
||
what do I or the Mac user have to watch out for?
|
||
<p>
|
||
Currently, the Leonardo protocol is not supported by i4l. When you call the
|
||
Mac, he should set the protocol to X.75 or HDLC. When he calls you, he must
|
||
explicitly set the protocol (e.g. by inserting an &dquot;X&dquot; for X.75) in
|
||
the called number.
|
||
|
||
|
||
<sect1> remote_macpap: A Macintosh with a Leonardo card tries to call in,
|
||
and wants to negotiate chap md5. How can I switch it to CHAP/PAP?
|
||
<p>
|
||
You can't. The user should use LeoPort (always included with the card) and
|
||
switch the CTB port to the ISDN card. Then with FreePPP 2.5v2
|
||
<tt><url url="http://www.rockstar.com"></tt> set the Leo as the modem and
|
||
configure FreePPP as usual. Then PAP/CHAP can be set.
|
||
|
||
<sect1> remote_cisco: How does isdn4linux work with a Cisco (HDLC) on the other side?
|
||
<p>
|
||
On the Cisco router the &dquot;keep alive&dquot; packets have to be turned off.
|
||
isdn4linux has to be configured with HDLC, transparent, with Cisco
|
||
encapsulation:
|
||
<code>
|
||
isdnctrl l2_prot <interface> hdlc
|
||
isdnctrl l3_prot <interface> trans
|
||
isdnctrl encap <interface> cisco-h
|
||
</code>
|
||
|
||
<sect1> remote_ispa: What settings does ISPA etc. (DOS, Windows) need to work with the
|
||
standard settings of isdn4linux?
|
||
<p>
|
||
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 <tt><url url="http://www.informatik.uni-bremen.de/˜henker/dank"></tt>
|
||
<verb>
|
||
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 /
|
||
----------------------------------------------------
|
||
</verb>
|
||
The parameter with the least problems is -h0.
|
||
|
||
|
||
<!-- ttyI* devices
|
||
-->
|
||
|
||
<sect> ttyI: Configuration of the ttyI* devices (`Modem emulation')
|
||
|
||
<sect1> ttyI_nomodem: Don´t the ttyI* devices emulate an analog modem?
|
||
<p>
|
||
No! The ttyI* devices just offer a similar communication interface, where
|
||
all commands are started with <em/AT/. This makes it easy to reuse software
|
||
that was written to communicate with a modem. <bf>Communication with a remote analog
|
||
modem is not possible via the ttyI* devices!</bf> The real communication
|
||
happens in digital, not analog form.
|
||
|
||
<sect1> ttyI_dev: Which devices should I use for calls out or calls in?
|
||
<p>
|
||
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).
|
||
|
||
<sect1> ttyI_hdlc: How to I switch the modem emulation from X.75 to HDLC?
|
||
<p>
|
||
With the option S14=3; for example &dquot;ATS13=3&dquot;.
|
||
|
||
<sect1> ttyI_uucp: How can I poll with Taylor-UUCP using isdn4linux?
|
||
<p>
|
||
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 &dquot;AT&Emsn/eaz&dquot;.
|
||
|
||
<sect1> ttyI_speed: What speed should I set for the ttyI* devices?
|
||
<p>
|
||
It doesn't matter. The driver internally always uses the full speed that
|
||
ISDN offers. This is also given in the connect string.
|
||
|
||
|
||
<!-- Trouble ttyI* devices
|
||
-->
|
||
|
||
<sect1> ttyI_nocarrier: When I dial with &dquot;ATD.....&dquot; I always
|
||
get a &dquot;NO CARRIER&dquot;.
|
||
<p>
|
||
Before dialing, you have to enter &dquot;AT&E123456&dquot; (if 123456 is your
|
||
own MSN; with 1TR6 give the one-digit EAZ).
|
||
|
||
|
||
<sect1> ttyI_noincall: My ttyI* device/pppd does not recognize an incoming
|
||
call.
|
||
<p>
|
||
Probably you did not tell the modem emulation with <tt>AT&E</tt> which
|
||
MSN to use. For example, use <tt>AT&E123456</tt>; if your MSN is 123456.
|
||
|
||
<sect1> ttyI_callphone: Why can't I dial my telephone or fax from the ttyI*
|
||
devices?
|
||
<p>
|
||
You can. However, ISDN differentiates different services. All outgoing calls
|
||
with the ttyI* devices use the service &dquot;Digital Data&dquot;, which is
|
||
incompatible with telephone or fax, so the call never gets through.
|
||
Change the service recognition with the <tt>ATS18=1</tt> command to audio, then
|
||
you can dial your telephone or fax.
|
||
|
||
<sect1> ttyI_noconnect: I can't get a connection to my ISDN mailbox/BBS.
|
||
<p>
|
||
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 <tt>AT&</tt>. Mostly
|
||
used is a block size of 2048 byte: <tt>AT&B2048</tt>.
|
||
|
||
<sect1> ttyI_forcehangup: My modem emulation hangs. How can I force my card to
|
||
hang up?
|
||
<p>
|
||
If there is really no process using your modem emulation any more, try:
|
||
<code>
|
||
cu -l /dev/ttyI0 dir
|
||
+++
|
||
ath0
|
||
˜.
|
||
</code>
|
||
Before and after &dquot;+++&dquot; 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 &dquot;ps -ax&dquot;) have something like
|
||
&dquot;I0&dquot; or &dquot;I1&dquot; in the second column, they have an ISDN
|
||
terminal as their controlling terminal. You may have to kill them with kill.
|
||
|
||
<sect1> ttyI_channelclosed: During a tty connection, I get a message from the kernel
|
||
&dquot;teles_writebuf: channel not open&dquot;. Then no more input is accepted
|
||
for this connection.
|
||
<p>
|
||
Can happen when the partner cannot handle the large frames from i4l and simply
|
||
closes the B channel during the transfer. Try making the frames smaller with
|
||
AT&B512.
|
||
|
||
<sect1> ttyI_uucp: When I use UUCP with X.75, I always get transfer errors!
|
||
<p>
|
||
Andreas Gutzwiller <tt><htmlurl url="mailto:andy@hippo.proxyon.imp.com"
|
||
name="andy@hippo.proxyon.imp.com"></tt> wrote on 5 Dec 1996:
|
||
<quote>
|
||
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.
|
||
</quote>
|
||
Holger Burbach <tt><htmlurl url="mailto:holly@cthulhu.pfalz.de"
|
||
name="holly@cthulhu.pfalz.de"></tt> on 5 Feb 1997 had another
|
||
solution:
|
||
<quote>
|
||
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 (&dquot;AT&B1024&dquot;) 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..
|
||
</quote>
|
||
|
||
|
||
|
||
|
||
<!-- Config Async PPP
|
||
-->
|
||
|
||
<sect> asyncppp: Configuration Async PPP
|
||
|
||
<sect1> asyncppp_whichppp: pppd, ipppd, async PPP, sync PPP - what are they?
|
||
Which should I use?
|
||
<label id="asyncppp_whichppp">
|
||
<p>
|
||
<bf>async PPP</bf> is a character-based protocol which is usually used over
|
||
analog serial lines (async = asynchronous). You have to use the program
|
||
<tt/pppd/ for it, and use it with the ttyI* devices.
|
||
|
||
In contrast, <bf>Sync PPP</bf> is a bit-oriented protocol (sync = synchronous),
|
||
for which the original <tt/pppd/ cannot be used. Michael Hipp has written an
|
||
adapted version called <tt/ipppd/ which will use ipppd* net devices.
|
||
|
||
With i4l you can have both. It all depends on what your ISDN counterpart
|
||
supports. If it immediately begins to send frames, then you´ve probably reached
|
||
an sync PPP machine. If you can log in via same terminal screen, and then can
|
||
start ´pppd´, this can be an indication of async PPP.
|
||
|
||
Usually using <bf/sync PPP/ works fine, and it is slightly more efficient. To
|
||
take advantage of newer features of the <tt/pppd/, use <bf/async PPP/.
|
||
|
||
<sect1> asyncppp_config: How do I configure async PPP?
|
||
<p>
|
||
Just set up a normal pppd, but tell it to use one of the ttyI* devices,
|
||
e.g. /dev/ttyI0. You can set up several pppd´s with different configuration on
|
||
different ttyI* devices.
|
||
On problems also check out the section about the syncppp problems, since many
|
||
configuration problems are common for pppd (async PPP) and ipppd (sync PPP).
|
||
|
||
<sect1> asyncppp_logindelay: How can I reduce login delay?
|
||
<p>
|
||
You can write out a login session with (&dquot;Debug-Log&dquot;), 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 &dquot;How to I create a log for ipppd&dquot;.
|
||
|
||
<sect1> asyncppp_fast: How can I increase my transfer rates with PPP?
|
||
<p>
|
||
You can add more channels with MPPP (see the appropriate section).
|
||
For everyone for whom that's to expensive and who use <em>async PPP</em>,
|
||
there's a little trick. With the option &dquot;asyncmap 0&dquot; you can avoid
|
||
escaping all control characters (ASCII32). If the other side goes
|
||
along with this, you can increase the transfer rate by about 12%.
|
||
|
||
|
||
<!-- Troubleshooting Async PPP
|
||
-->
|
||
|
||
<sect1> asyncppp_log: How can I get a log for pppd?
|
||
<p>
|
||
See this question for Sync PPP, it works the same way for pppd.
|
||
|
||
<sect1> asyncppp_suddendeath: Establishing the connection works fine, but pppd
|
||
crashes just after that (i.e. the first bytes gets through, but then everything
|
||
stops)
|
||
<p>
|
||
This is probably due to an incorrect block size on your side. Initialize your
|
||
ttyI* device with <tt/AT&B512/ or even smaller block sizes.
|
||
|
||
|
||
<!-- Config Sync PPP
|
||
-->
|
||
|
||
<sect> syncppp: Sync PPP
|
||
|
||
<sect1> syncppp_whichppp: pppd, ipppd, syncPPP, asyncPPP .. what is they? Which
|
||
should I use?
|
||
<p>
|
||
See this question in the <em/asnyc PPP/; section: <ref id="asyncppp_whichppp">.
|
||
|
||
|
||
<sect1> syncppp_compile: How do I compile isdn4linux with syncPPP?
|
||
<p>
|
||
To compile the kernel with syncPPP included in ISDN4Linux, you have to answer
|
||
the appropriate questions with &dquot;yes&dquot;. 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.)
|
||
|
||
<sect1> syncppp_netinterface: How should I name my network interface?
|
||
<p>
|
||
The name of the network interface should <em>always</em> begin with
|
||
&dquot;ippp&dquot;, <em>not</em> with &dquot;syncppp&dquot; or
|
||
&dquot;isdn&dquot;; otherwise the communication with ipppd will not work
|
||
correctly.
|
||
|
||
<sect1> syncppp_config: How do I configure isdn4linux with syncPPP?
|
||
<p>
|
||
Synchronous PPP is simply another encapsulation for ISDN4Linux. This
|
||
encapsulation is called &dquot;syncppp&dquot;. Here is an example to
|
||
configure the link level device ippp0:
|
||
<code>
|
||
/sbin/isdnctrl addif ippp0
|
||
/sbin/isdnctrl encap ippp0 syncppp
|
||
</code>
|
||
All ippp* devices in use must be configured separately. Each ippp* device
|
||
should be assigned to its own IP address (routing!). Several ippp* devices can
|
||
be assigned to a single MSN. Several callers can then simultaneously use this MSN.
|
||
|
||
To use these devices you need the program <tt/ipppd/, which you have to
|
||
configure. You have to start ipppd once after the modules are installed. ipppd
|
||
needs to be constantly running to allow dialout/dialin. It communicates with
|
||
the isdn4linux link level devices through <tt>/dev/ippp0</tt> to
|
||
<tt>/dev/ippp63</tt>. A single ipppd can handle all devices at once. If you
|
||
want two PPP connections at the same time, you need to bind ipppd to two
|
||
devices, etc. As a result, <tt/ipppd/ provides the network device
|
||
<tt>ippp0</tt>, which can be checked with ifconfig (even so it has the same
|
||
name, the network device <tt/ippp0/ is not to be confused with
|
||
<tt>/dev/ippp0</tt> which is used for communication between ipppd and link
|
||
level.
|
||
|
||
ipppd has an additional option: &dquot;useifip&dquot; uses the IP address
|
||
of the connected network interface (if it is not 0.0.0.0). (Even then, ipppd
|
||
tries to use the pointopoint address as the remote IP.) For the beginning,
|
||
disable all compression (lzs/stac, bsd, van jacobson), later you can try to
|
||
enable it (see question <ref id="syncppp_compression">).
|
||
|
||
You can find an example configuration in the file <tt>etc/rc.isdn.syncppp</tt>
|
||
in the isdn4kernel-util package.
|
||
|
||
<sect1> syncppp_busy: How can I tell if a connection is unsuccessful (busy)?
|
||
<p>
|
||
When giving the option ´defaultroute´, then you can wait a few seconds, then
|
||
check whether the default route exists. Another way, when giving option
|
||
<tt>useifip</tt> is to check whether you find entries like <tt>&dquot;Local IP:
|
||
x.y.z.a&dquot;</tt> and/or <tt>&dquot;Remote IP: x.y.z.a&dquot;</tt> in syslog.
|
||
In either case, the connection is up.
|
||
|
||
<sect1> syncppp_logindelay: How can I reduce login delay?
|
||
<p>
|
||
You can write out a login session with (&dquot;Debug-Log&dquot;), 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 &dquot;How to I create a log for ipppd&dquot;.
|
||
|
||
<sect1> syncppp_2configs: I want to talk to remote machines which needs different
|
||
configurations. The only way I found to do this is to kill the ipppd and start
|
||
a new one with another config to connect to the second machine.
|
||
<p>
|
||
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
|
||
<code>
|
||
&dquot;isdnctrl pppbind interface Number&dquot;
|
||
</code>
|
||
you can link the interface interface to the device ipppNummer. You can
|
||
release the link with &dquot;pppunbind&dquot;.
|
||
|
||
<sect1> syncppp_pppbind: How does the (little-documented) &dquot;pppbind&dquot;
|
||
command in isdnctrl work?
|
||
<p>
|
||
You have to first know how ipppd gets its data. All data that come in
|
||
over the ISDN line is received by the network devices (these are
|
||
set up with isdnctrl). Then the data given to one of the /dev/ippp*
|
||
devices - to one where a ipppd daemon is waiting for data.
|
||
|
||
To the network interfaces, all ipppd's appear to be able to handle the
|
||
just-received data - therefore it is normally impossible to predict
|
||
which ipppd will receive data from which network interface.
|
||
|
||
In practice, you usually install several ipppd's with differing
|
||
configurations. Each of these should receive data <em>exclusively</em>
|
||
from a certain network interface (that has also be specially configured).
|
||
The &dquot;pppdbind&dquot; command serves just this purpose. With:
|
||
<code>
|
||
&dquot;isdnctrl pppbind interface number&dquot;
|
||
</code>
|
||
attaches the interface interface to the device /dev/ipppnumber.
|
||
|
||
Example: To attach the interface &dquot;ippp5&dquot; to /dev/ippp2, the following
|
||
configuration should be used:
|
||
<code>
|
||
&dquot;isdnctrl pppbind ippp5 2&dquot;
|
||
</code>
|
||
Similarly, the command &dquot;pppunbind&dquot; will undo this attachment.
|
||
|
||
<sect1> syncppp_dynip: I want to use dynamic IP address assignment. How must I
|
||
configure the network device?
|
||
<p>
|
||
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.:
|
||
<code>
|
||
/sbin/ipppd :$REMOTE noipdefault /dev/ippp0
|
||
</code>
|
||
where REMOTE must be the address of the remote machine (the machine giving
|
||
your address to you)
|
||
|
||
<sect1> syncppp_ipx: How can I do IPX over ipppd?
|
||
<label id="syncppp_ipx">
|
||
<p>
|
||
Give the option <tt/+ipx-protocol/ to the ipppd.
|
||
|
||
<sect1> syncppp_faster: How can I increase my PPP data transfer rates?
|
||
<p>
|
||
You can establish more channels with MPPP (see the MPPP section). Another way
|
||
is to use compression, see question <ref id="syncppp_compression">.
|
||
|
||
<sect1> syncppp_compression: Which compressions can I use with ipppd?
|
||
<label id="syncppp_compression">
|
||
<p>
|
||
<em>Van Jacobson compression</em> (header compression) is in experimental state. It
|
||
works for some remote devices, but not for others. Check it out on your own
|
||
risk, to be sure disable it. <em>Lzs compression</em> (sometimes also called
|
||
<em>Stac compression</em>) works quite well. To enable it, some manual work has
|
||
to be done to add the code to the ipppd (see the isdn4k-util package).
|
||
<em>Bsd compression</em> also seems to work, but is in experimental stage. You
|
||
find it in the CVS tree.
|
||
|
||
|
||
<!-- Trouble ipppd
|
||
-->
|
||
|
||
<sect1> syncppp_strategy: I can't get a connect. How can I find out where the
|
||
problem is?
|
||
<p>
|
||
The output of ipppd is very helpful... (see next question: <ref id="syncppp_log">)
|
||
<itemize>
|
||
<item>Have a look at the error messages and see the following questions...
|
||
<item>Check whether you can find a few &dquot;LCP-conf-req SENT&dquot; messages
|
||
(less than ten) and then a &dquot;TERM-REF&dquot;.
|
||
<item>Check whether the ISDN card was configured properly. It seems the
|
||
computer doesn't dial (IRQ, IO, protocol wrong?)
|
||
<item>At least a few &dquot;RECV&dquot; messages: good! The card is dialing and
|
||
your dialin computer tries to communicate. Maybe the pap/chap authentication
|
||
doesn't work (see question <ref id="pap">). Check the ipppd
|
||
configuration!
|
||
<item>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.
|
||
<item>The error/cause E0010 is <bf/NOT/ an error! It is just the informal
|
||
message that the call has ended.
|
||
</itemize>
|
||
|
||
<sect1> syncppp_log: How can I get a log for ipppd?
|
||
<label id="syncppp_log">
|
||
<p>
|
||
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):
|
||
<code>
|
||
daemon.* /var/log/ppp-log
|
||
</code>
|
||
then every information from PPP demon will be logged to /var/log/ppp-log.
|
||
Emil Stephan <tt><htmlurl url="mailto:ste@esqhen.su.eunet.de"
|
||
name="ste@esqhen.su.eunet.de"></tt> also wrote:
|
||
<verb>
|
||
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 &dquot;kill -1 pid of
|
||
syslogd&dquot;.
|
||
The output in /tmp/debug can be used to optimize the handshaking of
|
||
PPP options.
|
||
</verb>
|
||
|
||
<sect1> syncppp_nopppsupport: Starting ipppd I get the error message
|
||
&dquot;this systems lacks ppp support&dquot;.
|
||
<p>
|
||
Check whether the device &dquot;ippp0&dquot; exists (i.e. with the program &dquot;ifconfig&dquot;).
|
||
The ipppd *needs* this device with exactly *that* name. If it doesn't exist
|
||
one has to define it:
|
||
<code>
|
||
isdnctrl addif ippp0
|
||
isdnctrl encap ippp0 syncppp
|
||
... (see i4l documentation for more information) ...
|
||
</code>
|
||
Maybe you compiled ipppd with the source of another kernel that you are not
|
||
using...
|
||
See also the question &dquot;How should I name my network interface?&dquot;
|
||
under &dquot;Sync PPP&dquot; in the &dquot;Configuration&dquot; section.
|
||
|
||
<sect1> syncppp_nousabledevice: When I try to start ipppd it says &dquot;Can't find usable
|
||
ippp device&dquot;
|
||
<p>
|
||
This message occurs when the linklevel interface is told to dial out, but ipppd
|
||
is not running, or not available.
|
||
|
||
<sect1> syncppp_starterror: When I start ipppd, I only get error messages from
|
||
the i4l driver.
|
||
<p>
|
||
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.
|
||
|
||
<sect1> syncppp_framesdelayed: I get the message <tt>IP frames delayed</tt> -
|
||
but no connection.
|
||
<p>
|
||
Have you really dialed out? Check question <ref id="config_dialmode"> and your
|
||
configuration on the different dialmodes.
|
||
|
||
<sect1> syncppp_noroute: I cannot dial out with <tt>isdnctrl dial
|
||
ippp0</tt>. It seems as if the route to ipppd is missing although I <bf/did/
|
||
set it (<tt>network unreachable</tt>). With my old kernel 2.0 everything works
|
||
fine!
|
||
<label id="syncppp_noroute">
|
||
<p>
|
||
In the newer kernels you have to place <tt>route</tt> as the very last command
|
||
before the dialout command. Otherwise the kernel will delete the route.
|
||
|
||
<sect1> syncppp_nodefaultroute: After ipppd dials out my default route is gone.
|
||
<label id="syncppp_nodefaultroute">
|
||
<p>
|
||
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:
|
||
<code>
|
||
#!/bin/sh
|
||
/sbin/route add default ippp*
|
||
</code>
|
||
If you make your connections manually, can use something like this script:
|
||
<code>
|
||
/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 &dquot;\a Usage: 'isdn on' or 'isdn off'&dquot;
|
||
;;
|
||
esac
|
||
</code>
|
||
|
||
<sect1> syncppp_packettoolarge: I often get the error message
|
||
<tt>hscx_empty_fifo: incoming packet too large</tt>
|
||
<p>
|
||
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 &dquot;Why should
|
||
I avoid IRQ 12 and 15 for my ISDN card?&dquot;.
|
||
Another problem can be `#' characters in your pap-secrets file. In this
|
||
case you have to surround user name and/or password with quotation marks
|
||
(depending on which one is affected).
|
||
|
||
<sect1> syncppp_slow: The connection with ipppd seems to work, but eventually it
|
||
crashes or is very slow.
|
||
<p>
|
||
It could be that some compression is activated (that i4l can't
|
||
handle properly). Common error: &dquot;-vj&dquot; has to be used *additionally*
|
||
to &dquot;-vjccomp&dquot; (to completely switch off the VJ compression) - the
|
||
example scripts coming with ipppd don't have that option included already.
|
||
Other compression modes (bsd, pccomp) can cause trouble, too. Therefore, you
|
||
should switch off all compression options (see also question
|
||
<ref id="syncppp_compression">). Also giving the option &dquot;noccp&dquot;
|
||
can help.
|
||
|
||
<sect1> syncppp_loadproblem: I only have problems with ipppd when the
|
||
connection is being heavily burdened. Then everything stops. What could be
|
||
causing this?
|
||
<p>
|
||
Sven Engelhardt <tt><htmlurl url="mailto:sven@sik.de"
|
||
name="sven@sik.de"></tt> wrote on 12 Dec 1996:
|
||
<quote>
|
||
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 &dquot;included&dquot; (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 &dquot;mtu 576&dquot; and &dquot;mru 576&dquot; in the PPP options.
|
||
(see also:
|
||
</quote>
|
||
<tt><url url="http://www.windows95.com/connect/trouble.html"></tt>)
|
||
Erik Corry <tt><htmlurl url="mailto:ec@sign-tronic.dk"
|
||
name="ec@sign-tronic.dk"></tt> added on 16 Dec 1996:
|
||
<quote>
|
||
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.
|
||
</quote>
|
||
|
||
<sect1> syncppp_mtu: My ipppd works, but I keep getting the message pppd(104):
|
||
ioctl(SIOCSIFMTU): Invalid argument&dquot;?
|
||
<p>
|
||
If mtu is not set, then a default value is assumed - possibly &dquot;0&dquot;
|
||
(which of course cannot be correct). Add <tt>&dquot;mtu 1024&dquot;</tt> to
|
||
your ipppd options (1500 could also be ok).
|
||
|
||
<sect1> syncppp_1stpacket: The first IP packet gets lost on automatic dialout
|
||
with dynamic IP address allocation.
|
||
<p>
|
||
There are some dialout problems in connection with syncPPP and dynamic IP
|
||
address allocation. In this case your IP address will change while packets
|
||
are waiting to be sent. All packets that should be sent before the change
|
||
in IP address have the wrong response ip address and will therefore never
|
||
receive an answer. Possible solutions:
|
||
<itemize>
|
||
<item>Dial out manually with &dquot;isdnctrl dial ippp*&dquot;
|
||
<item>Use diald to control when the connection goes up or down.
|
||
<item>Get a permanent IP address
|
||
<item>May be fixed in newer kernels.
|
||
</itemize>
|
||
|
||
<sect1> syncppp_droppacket: What does the message &dquot;No phone number, packet
|
||
dropped&dquot; mean?
|
||
<p>
|
||
Michael Engert <tt><htmlurl url="mailto:michi@bello.wor.de"
|
||
name="michi@bello.wor.de"></tt> 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.
|
||
|
||
<sect1> syncppp_leadingzero: Why does my ipppd dial one too many zeros
|
||
(<tt>&dquot;ippp0: dialing 0 089XXXXXX...&dquot;</tt>)? I don't have any
|
||
extensions!
|
||
<p>
|
||
The first zero is not dialed. It only shows which channel is used for
|
||
dialing.
|
||
|
||
<sect1> syncppp_ethfake: My ISDN device is shown with HWaddr and IRQ=0 and
|
||
base address = 0 when I list it with ifconfig
|
||
<p>
|
||
The ISDN device fakes an Ethernet device. It ignores IRQ and baseaddr and
|
||
just needs the HWaddr for the Ethernet encapsulation.
|
||
|
||
|
||
|
||
<!-- Config Network
|
||
-->
|
||
|
||
<sect> lan: ISDN4Linux in a LAN
|
||
|
||
<sect1> lan_config: How can I set up Linux so that other computers in my LAN can
|
||
access the internet via my Linux computer?
|
||
<p>
|
||
There are several possibilities:
|
||
<enum>
|
||
<item>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.
|
||
<item>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.
|
||
<item>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.
|
||
<item>Use ip masquerading. This is the most comfortable one to use, but more
|
||
difficult to set up. The Linux computer acts as a gateway. The trick is that it
|
||
hides the ip addresses of the LAN, by giving its own internet address as
|
||
response address. When receiving the response, it will forward it to the
|
||
correct computer on the LAN. You can also use masquerading with dynamic ip
|
||
addresses. If you don´t want to start the ISDN connection from the Linux
|
||
computer to your internet provider manually, then you can set up dial on demand
|
||
functionality (see section <ref id="dod">).
|
||
</enum>
|
||
|
||
|
||
<sect1> lan_modemserver: How can I allow the users in my LAN to dial out via
|
||
the ISDN card(s) in my Linux PC (like a modem server)?
|
||
<p>
|
||
On the Linux side use modemd, which is a very short perl script:
|
||
<code>
|
||
#!/usr/bin/perl
|
||
select((select(STDOUT), $| = 1)($());
|
||
select((select(STDIN), $| = 1)($());
|
||
exec &dquot;cu&dquot;,&dquot;-E&dquot;,&dquot;''&dquot;, &dquot;-l&dquot;, &dquot;$ARGV(0)&dquot;;
|
||
die &dquot;$0: Cannot exec cu: $!\n&dquot;;
|
||
</code>
|
||
It has to be started in inetd:
|
||
<code>
|
||
modem 20006/tcp modemd # Modem service via TCP
|
||
isdn 20007/tcp modemd # ISDN service via TCP
|
||
</code>
|
||
Additionally, you need some software on your non-ISDN computer which emulates a
|
||
serial port, but redirects it via telnet to the Linux ISDN computer.
|
||
Some telnet clients allow this functionality (e.g. some uucicos).
|
||
If you generally want to offer all applications a kind of &dquot;remote COM
|
||
port&dquot;, then there is COMT for Windows (95), and
|
||
&dquot;telser.device&dquot; for Amigas. Disadvantage of COMT: it is only visible
|
||
to 16bit applications.
|
||
|
||
COMT may be found on Simtel or one of its mirror:
|
||
<tt><url url="ftp://ftp.funet.fi/pub/simtelnet/win3/inet/comt200.zip"></tt>
|
||
|
||
|
||
<sect> isdnlog: Isdnlog
|
||
|
||
<sect1> isdnlog_servicetype: Can I see the service type from an incoming call in the output
|
||
from isdnrep?
|
||
<p>
|
||
Andreas Kool <tt><htmlurl url="mailto:akool@Kool.f.EUnet.de"
|
||
name="akool@Kool.f.EUnet.de"></tt> wrote on 3 Dec 1996:
|
||
|
||
Indirectly in isdnrep, yes -- as soon as you enter an alias for the
|
||
decoded service types in your &dquot;isdnlog.conf&dquot; ...
|
||
|
||
<sect1> isdnlog_callerid1: Why don't I always receive from the German Telekom
|
||
the number of a caller (&dquot;Caller ID&dquot;)?
|
||
<p>
|
||
For data privacy reasons, telephone numbers from the analog network
|
||
are not transmitted unless the caller has explicitly allowed the Telekom
|
||
to do so (costs nothing).
|
||
|
||
Those with an ISDN connection, on the other hand, must explicitly
|
||
deny permission for the Telekom to transmit the number, or apply to
|
||
be able to do this on a call-by-call basis (CLIR). Call-by-call
|
||
denial is free; call-by-call transmission costs extra. However, it
|
||
seems to be <em>very</em> 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.
|
||
|
||
<sect1> isdnlog_callerid2: Do I receive the Caller ID from foreign calls
|
||
(German Telekom)?
|
||
<p>
|
||
Yes, with calls from countries that don't view Caller ID quite as strictly
|
||
as does Germany (e.g. USA, Canada).
|
||
|
||
<sect1> isdnlog_spoofcallerid: I've heard that actually two Caller IDs are
|
||
transmitted?
|
||
<p>
|
||
That's right, there's one that is &dquot;User-Provided, not
|
||
screened&dquot;, and the other is &dquot;Network-Provided&dquot; (from the
|
||
telephone company). As the name says, the first one is provided by the
|
||
user, whereas the second one is transmitted by the network.
|
||
Providing a caller ID is only possible for a PBX connected in
|
||
Point-to-point configuration with the feature &dquot;CLIP no
|
||
screening&dquot;.
|
||
|
||
<!-- Feature reversed card
|
||
-->
|
||
|
||
<sect1> isdnlog_betterlogging: Why doesn't isdnlog record the number dialed by
|
||
my other ISDN devices, since it records the charges?
|
||
<p>
|
||
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 <tt><htmlurl url="mailto:keil@temic-ech.spacenet.de"
|
||
name="keil@temic-ech.spacenet.de"></tt>
|
||
wrote on 12 Feb 1997:
|
||
<quote>
|
||
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.
|
||
</quote>
|
||
See the next questions for a possible solution.
|
||
|
||
<sect1> isdnlog_reversedcard: How can I get isdnlog to also show the telephone
|
||
numbers for other ISDN devices?
|
||
<p>
|
||
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 &dquot;re-poled&dquot; 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:
|
||
<verb>
|
||
3 -- RX+ 2a ---------------\
|
||
ISDN 4 -- TX+ 1a -- open ------------ ISDN
|
||
bus 5 -- TX- 1b -- open ------------ card
|
||
6 -- RX- 2b ---------------/
|
||
</verb>
|
||
A third (theoretical) possibility exists for those who have their own
|
||
PBX to which the other devices are connected. If the PBX can protocol
|
||
all outgoing calls, this can be read (usually over a serial port).
|
||
|
||
There is a reason why isdnlog has not support this until now. To evaluate
|
||
this data, isdnlog has to be able to access the date immediately after
|
||
the RELEASE COMPLETE, before any new data is sent on the D channel. The
|
||
PBXs tested up to now have all been too slow (in particular the widely
|
||
used ISTEC). The only possibility is to combine the data afterwards. But
|
||
then there are problems with synchronizing the different times. Whoever
|
||
want to attempt to do this is welcome (I'll make the logs from my
|
||
Ackermann Euracom available - Matthias Heßler <tt><htmlurl url="mailto:hessler@wi-inf.uni-essen.de"
|
||
name="hessler@wi-inf.uni-essen.de"></tt>).
|
||
|
||
<!-- isdnlog Features
|
||
-->
|
||
|
||
<sect1> isdnlog_rategraphic: How can I display the data transfer rates graphically?
|
||
<p>
|
||
You can use &dquot;xisdnload&dquot;. Clemens Perz <tt><htmlurl url="mailto:listperz@gwsnet.ttt.de"
|
||
name="listperz@gwsnet.ttt.de"></tt> 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:
|
||
|
||
<tt><url url="ftp://ftp.region.trier.de/pub/unix/linux/sources/network/isdn/netload-0.92.isdn.tar.gz"></tt>
|
||
|
||
Simply start with netload isdnxx
|
||
|
||
|
||
<sect> Audio
|
||
<p>
|
||
(Most of the answers you will find here are taken from the vbox manual by
|
||
Matthias Hessler <tt><htmlurl url="mailto:hessler@wi-inf.uni-essen.de"
|
||
name="hessler@wi-inf.uni-essen.de"></tt> and
|
||
Bernhard Hailer <tt><htmlurl url="mailto:dl4mhk@lrz.uni-muenchen.de"
|
||
name="dl4mhk@lrz.uni-muenchen.de"></tt>; you can get the manual at:
|
||
|
||
<tt><url url="http://www.lrz-muenchen.de/˜ui161ab/www/isdn/"></tt>
|
||
|
||
- click on &dquot;Audio!&dquot; (still in German we're afraid - sorry...)
|
||
They are currently outdated, but may give you a few hints?
|
||
|
||
<sect1> audio_format: What is the format of the audio messages (.msg) vbox plays when it
|
||
answers a call?
|
||
<p>
|
||
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)
|
||
|
||
|
||
<sect1> audio_recordmsg: How can I record my own messages for vboxgetty?
|
||
<label id="audio_recordmsg">
|
||
<p>
|
||
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.
|
||
|
||
<sect1> audio_play: How can I play audio messages locally using /dev/audio?
|
||
<p>
|
||
This is best achieved with vbox using format 6 (uLaw - must be compiled
|
||
in). You can then easily play the messages using:
|
||
<code>
|
||
cat xxx /dev/audio
|
||
</code>
|
||
where xxx is the message-file.
|
||
|
||
<sect1> audio_convertto: How can I convert audio messages which where recorded by
|
||
vbox to other formats (i.e. from uLaw to WAV)?
|
||
<p>
|
||
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:
|
||
|
||
<tt><url url="http://www.powerweb.de/mpeg/util/msdos/sox10c.zip"></tt>
|
||
|
||
(including sources that compile under Linux).
|
||
|
||
<sect1> audio_convertfrom: How can I format WAV for uLaw (for my vbox
|
||
announcement message)?
|
||
<p>
|
||
We receive the following tip form Christian Stueble
|
||
<tt><htmlurl url="mailto:stueble@ls6.informatik.uni-dortmund.de"
|
||
name="stueble@ls6.informatik.uni-dortmund.de"></tt> on 15 Jan 1997:
|
||
|
||
For me, the following (somewhat indirect) method works:
|
||
<code>
|
||
sox file.wav -r 8000 file.ul rate
|
||
rmdcatheader -u file.ul file.msg
|
||
cat file.ul file.msg
|
||
</code>
|
||
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.
|
||
|
||
|
||
<!-- Audio Troubleshooting
|
||
-->
|
||
|
||
<sect1> audio_noanswer: My vboxgetty does not answer any incoming calls.
|
||
<p>
|
||
vboxgetty needs &dquot;.vboxrc&dquot; in the home directory of the user for which
|
||
vboxgetty is configured. The number of rings is taken from this file.
|
||
|
||
<sect1> audio_nocat: If vboxgetty has recorded a message in a format which can
|
||
not be played using &dquot;cat xxx/dev/audio&dquot; how can I still hear the
|
||
message?
|
||
<p>
|
||
Vboxgetty can play all formats. You can copy the message as the
|
||
standard message (standard.msg in the messages directory) and call
|
||
yourself, the message will be played then. (Don't forget to copy back the
|
||
original message when you are done :-) ). See question <ref id="audio_recordmsg">.
|
||
|
||
<sect1> audio_earlyrecording: At the beginning of a message recorded by vboxgetty,
|
||
there's often a part of my own announcement?
|
||
<p>
|
||
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.
|
||
|
||
|
||
|
||
<sect> chargeint: Chargeint
|
||
|
||
<!-- Feature Chargeint
|
||
-->
|
||
|
||
<sect1> chargeint_whatis: What does Chargeint?
|
||
<p>
|
||
Chargeint is a way to reduce your costs when you have charges based on your
|
||
<bf/time online/, and the interval between two charges (the Charge Interval) is
|
||
relatively large (e.g. per minute).
|
||
|
||
Chargeint only hangs up two seconds before the end of a charge unit. isdnlog
|
||
can be used to set the length of the charge unit (i.e. Charge Interval)
|
||
according to the time of day and the date.
|
||
|
||
<sect1> chargeint_config: How should I configure Chargeint?
|
||
<p>
|
||
You can set the length of a charge unit manually via the isdnctrl parameter
|
||
<tt/chargeset/, or set up isdnlog to do this automatically for you:
|
||
<enum>
|
||
<item>Set up isdnlog, so that it has all the information about your location
|
||
and your telephone company (so that it knows your rates).
|
||
<item>Start isdnlog with the options <tt>-h0</tt> and <tt>-w</tt>.
|
||
<item>Set your huptimeout as you like (idle time needed before i4l will
|
||
consider a hangup). E.g.:
|
||
<code>
|
||
/sbin/isdnctrl huptimeout ippp0 5
|
||
</code>
|
||
Then i4l will hang up 2 seconds before the end of your charge unit, if the 5
|
||
seconds before (huptimeout) no activity has happened on the line.
|
||
</enum>
|
||
|
||
<sect1> chargeint_whennot: When does it <bf/not/ make sense to use the
|
||
chargeint?
|
||
<p>
|
||
<enum>
|
||
<item>It does not make sense to use Chargeint when you are charged <bf/per data
|
||
volume/, or per <bf/flat fee/. Chargeint can only reduce your costs when you
|
||
are charged <bf/per time online/.
|
||
<item>Also it makes no sense if you are charged in small units (e.g. per second
|
||
rather than per minute).
|
||
<item>Chargeint may or may not make sense when every new dialup costs you fixed
|
||
amount on top of the variable charges (depending on the rates).
|
||
<item>There are problems when the ip address is assigned dynamically. A broken
|
||
connection cannot simply be restarted (since the IP address has changed). The
|
||
interrupted FTP, telnet or WWW connection must then be newly established.
|
||
</enum>
|
||
|
||
<sect1> chargeint_correcttime: How can I be sure that the chargeint patch is
|
||
using the correct time?
|
||
<p>
|
||
It's best to synchronize the clock in your own computer with that of the
|
||
switching station by calling isdnlog with option <tt>-t2</tt>.
|
||
|
||
<sect1> chargeint_nohangup: The connection doesn't end with timeout.
|
||
<p>
|
||
Chargeint will only hangup if there was no activity on the line. Possibly your
|
||
service provider uses a router (e.g. Cisco) which sends a &dquot;keep
|
||
alive&dquot; packets every ten seconds. If the Cisco doesn't get an answer for
|
||
its keep alive packets then it will stop routing. This normally happens after
|
||
the 4. or 5. keep alive packet. The best solution is to tell the provider not
|
||
to use keep alive packets (<tt>&dquot;no keepalive&dquot;</tt> in the Cisco
|
||
configuration).
|
||
|
||
It could also be that it's not the keep alive packets that are keeping the
|
||
connection open, but rather OSPF routing updates. The sending of these
|
||
updates can only be switched off on the Cisco. You can configure
|
||
&dquot;snapshot server&dquot; on the BRI interface. That means it will
|
||
send out routing updates only when they are received through this interface.
|
||
|
||
|
||
|
||
<sect> dialin: Configuration of a Dial-In Server
|
||
|
||
<!-- Config Dialin Server
|
||
-->
|
||
|
||
<sect1> dialin_config: How can I enable others to login via ISDN?
|
||
<p>
|
||
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:
|
||
<code>
|
||
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
|
||
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
|
||
</code>
|
||
The init string needs to be entered in the <tt>mgetty.config</tt>, since
|
||
mgetty needs to know which MSN or EAZ to listen to. For example, if your MSN is
|
||
123456:
|
||
<code>
|
||
port ttyI0
|
||
modem-type data
|
||
speed 38400
|
||
init-chat &dquot;&dquot; ATZ OK AT&E123456 OK AT&B512 OK
|
||
</code>
|
||
For X.75 the block size was set to 512 bytes.
|
||
Alternatively you can enter the entire configuration onto a single line
|
||
in /etc/inittab (here printed on two lines!):
|
||
<code>
|
||
i0:45:respawn:/sbin/mgetty -D -m '&dquot;&dquot; ATZ OK AT&E123456 OK
|
||
AT&B512 OK' -s 38400 ttyI0
|
||
</code>
|
||
The most elegant way is to use iprofd. This daemon takes advantage of
|
||
the <tt>AT&W0</tt> command in the i4l modem emulation. You start iprofd
|
||
with a path as parameter, e.g. &dquot;iprofd /etc/i4lprofile&dquot;
|
||
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
|
||
|
||
<sect1> dialin_manyparallel: How can I allow several people to call in to me at
|
||
the same time?
|
||
<p>
|
||
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.
|
||
|
||
<sect1> dialin_hdlc: Someone would like to dial in to my mgetty with HDLC. Is
|
||
ttyI1 correct, or do I have to start with ttyI0?
|
||
<p>
|
||
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).
|
||
|
||
<sect1> dialin_autoppp: Is it possible with mgetty to automatically start pppd when LCP frames
|
||
are received?
|
||
<p>
|
||
Yes, it is. This feature is called `AutoPPP'. See the configuration for
|
||
mgetty.
|
||
|
||
<sect1> dialin_passwd: How can I have (i)pppd check passwords from /etc/passwd
|
||
instead of /etc/ppp/pap-secrets when someone dials in?
|
||
<p>
|
||
ipppd needs to be started with the options &dquot;login&dquot; and
|
||
&dquot;auth&dquot;. In /etc/ppp/pap-secrets, each user must have the
|
||
following line to allow only certain users:
|
||
<code>
|
||
login-name * &dquot;&dquot; *
|
||
</code>
|
||
To allow all users simply:
|
||
<code>
|
||
* * &dquot;&dquot; *
|
||
</code>
|
||
The latter can also be achieved when the file pap-secrets does not
|
||
exist.
|
||
|
||
|
||
<sect> leased: Leased lines
|
||
|
||
<!-- Config Leased line/D64S
|
||
-->
|
||
|
||
<sect1> leased_nosignal: How does establishing and ending a connection work
|
||
with D64S without signaling?
|
||
<p>
|
||
The data are simply sent out! Other than a ping, there is no way to find out
|
||
whether the D64S or 2MB line is up or not. Only S01 or S02 lines have a D
|
||
channel and have something to use with signaling, however the best
|
||
known solutions also use this 16kb for data transfers to get 144kb
|
||
instead of 128kb (i4l can only to 128kb).
|
||
|
||
<sect1> leased_hisaxconfig: With i4l, how do I configure my card on a D64 leased
|
||
line?
|
||
<p>
|
||
A later version of the new HiSax driver supports D64. Configuration is normal
|
||
with the following specialities. HiSax has to be run in leased mode:
|
||
<code>
|
||
/sbin/telesctrl HiSax 5 0
|
||
</code>
|
||
in case HiSax was loaded with &dquot;id=HiSax&dquot;. Additionally to the normal
|
||
configuration, the following commands are important:
|
||
<code>
|
||
# bind interface on first BChannel (,1 for 2nd)
|
||
/sbin/isdnctrl bind HiSax,0
|
||
/sbin/isdnctrl eaz isdn0 1
|
||
/sbin/isdnctrl addphone isdn0 out 2
|
||
/sbin/isdnctrl addphone isdn0 in 3
|
||
</code>
|
||
if &dquot;isdn0&dquot; was used as interface name. The interface has to be set to
|
||
&dquot;up&dquot; and a route associated with it. See the readme´s in the HiSax
|
||
package.
|
||
|
||
<sect1> leased_splitline: With ISDN, can I use one channel as a leased line and
|
||
other as a dialup line?
|
||
<p>
|
||
Yes, you can. But you have to make sure that you use the correct channel!
|
||
|
||
|
||
<!-- Config/Feature MPPP, raw bundling
|
||
-->
|
||
|
||
<sect> 2channel: Channel bundling (MPPP, raw bundling)
|
||
|
||
<sect1> 2channel_whatis: What is channel bundling and how can I use it?
|
||
<p>
|
||
Channel bundling is currently supported by isdn4Linux in two variations:
|
||
<itemize>
|
||
<item><bf>Raw Bundling</bf> (configuration of so-called slave channels)
|
||
<item><bf>MPPP</bf> (based on syncPPP)
|
||
</itemize>
|
||
Both variations have their own advantages and disadvantages. See the following
|
||
questions.
|
||
|
||
<sect1> 2channel_raw: What is raw bundling?
|
||
<p>
|
||
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.
|
||
|
||
<sect1> 2channel_rawconfig: How do I configure raw bundling?
|
||
<p>
|
||
The master interface is created as usual with
|
||
<code>
|
||
isdnctrl addif master interface
|
||
</code>
|
||
and configured. For all required slave channels, slave interfaces
|
||
are created with the command:
|
||
<code>
|
||
isdnctrl addslave master interface slave interface
|
||
</code>
|
||
and configured as usual (e.g. &dquot;isdnctrl sdelay slave interface delay&dquot;).
|
||
|
||
<sect1> 2channel_rawgoodbad: What are the advantages and disadvantages of raw
|
||
bundling?
|
||
<p>
|
||
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.
|
||
|
||
<sect1> 2channel_mppp: What is MPPP?
|
||
<p>
|
||
MPPP or MP or MPP (Warning: MP is also an acronym for 'Multi Processor')
|
||
stands for Multi Point to Point and means bundling of several channels to
|
||
one logical stream. It's a variation of the normal syncPPP. Accordingly, it
|
||
inherits all its advantages and disadvantages. Just for your information: ipppd
|
||
does MPPP according to RFC 1717, instead of the newer RFC 1990 (MLP).
|
||
|
||
In contrast to raw bundling only one net interface is needed as interface
|
||
to the ipppd, since the ipppd handles all its channels by itself. Incoming
|
||
data is distributed round-robin by the ipppd on all available channels.
|
||
These channels do not necessarily have to be ISDN channels. In theory,
|
||
modem connections could be mixed with ISDN channels. However, here we only
|
||
cover ISDN channels.
|
||
|
||
<sect1> 2channel_mpppconfig: How do I configure MPPP?
|
||
<p>
|
||
First you define a (normal) interface for ipppd (e.g. &dquot;isdnctrl addif
|
||
ippp0&dquot;, etc). To enable MPPP negotiation you must call the ipppd with
|
||
the &dquot;+mp&dquot; 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:
|
||
<code>
|
||
isdnctrl addlink device
|
||
</code>
|
||
and close them with the command:
|
||
<code>
|
||
isdnctrl removelink ippp0
|
||
</code>
|
||
This is different to other encapsulations of isdn4linux!
|
||
|
||
With syncPPP, there is no automatic activation of slave devices, they have to
|
||
be added and removed. However, there is the program <tt>ibod</tt> available,
|
||
which can do this automatically. Have a look at:
|
||
<url url="http://www.compound.se/ibod.html">
|
||
|
||
In the file etc/rc.isdn.syncppp.MPPP in the isdn4k-utils package you
|
||
may find a sample script (unfortunately missing in some i4l version).
|
||
|
||
<sect1> 2channel_mpppgoodbad: What are the advantages and disadvantages of MPPP?
|
||
<p>
|
||
A disadvantage is that the slave channel has to be activated
|
||
&dquot;manually&dquot;. 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).
|
||
|
||
<sect1> 2channel_mpppcompile: I tried MPPP but it doesn't work. The ipppd
|
||
writes in the debug log something like:
|
||
&dquot; ... 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 ...&dquot;
|
||
<p>
|
||
You forgot to compile MPPP/RFC1717 support into the ISDN Subsystem.
|
||
Recompile with this option enabled.
|
||
|
||
|
||
|
||
<!-- Troubleshooting Strategy
|
||
-->
|
||
|
||
<sect> trouble: Troubleshooting
|
||
|
||
|
||
<sect1> trouble_strategy: My isdn4linux doesn't work! How do I best go about
|
||
finding the problem?
|
||
<p>
|
||
The following steps are recommended:
|
||
<enum>
|
||
<item>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.
|
||
<item>Try calling with a telephone. The number should be shown in
|
||
/var/log/messages. Otherwise, perhaps the driver was incorrectly
|
||
started?!
|
||
<item>As a next step we´ll try to get the telephone or fax to ring by dialing
|
||
ourself using a ttyI device with minicom. First we have to change the service
|
||
recognition with the <tt>ATS18=1</tt> command to audio. Now you can get the
|
||
telephone to ring by dialing <tt>ATDxxxxxx</tt>, where xxxxxx is your own MSN.
|
||
<item>Next we try to transmit data via ISDN. Open 2 different consoles as root,
|
||
and on each run &dquot;minicom -s&dquot;... in the first set &dquot;Serial Port
|
||
Setup Serial Device&dquot; to <tt>/dev/ttyI0</tt>, and the other to
|
||
<tt>/dev/ttyI1</tt>. Then choose &dquot;Exit&dquot; and start the modem
|
||
emulation with &dquot;ATZ&dquot; and &dquot;AT&Exxxxxx&dquot; (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 &dquot;CALLER NUMBER: xxxxxxx&dquot; and
|
||
&dquot;RING&dquot;. Accept the call on the second console with
|
||
&dquot;ATA&dquot;, and you should then see the message &dquot;CONNECT
|
||
64000/X.75&dquot; 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).
|
||
<item>Next, try calling a known ISDN BBS. If you don't know of any, try
|
||
Gernot (see &dquot;Are there sites that offer guest access where I can test my
|
||
isdn4linux setup?&dquot;). If you have problems with the modem emulation, see
|
||
&dquot;Troubleshooting Modem Emulation&dquot;
|
||
<item>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 &dquot;pppd, ipppd, syncPPP, asyncPPP -
|
||
what is that? What should I use?&dquot;), you can use the normal pppd with
|
||
modem emulation (i.e. /dev/ttyI*).
|
||
<item>Ensure that you set up your authentication configuration properly (see
|
||
questions in section <ref id="pap">.
|
||
</enum>
|
||
Otherwise, it is highly recommended that use an example script form
|
||
the HowTo (see the question &dquot;Where can I find scripts and other
|
||
information on configuring i4l?&dquot;). For testing you can try your own
|
||
provider or of the guest accounts (see &dquot;Are there sites that offer
|
||
guest access where I can test my isdn4linux setup?&dquot;). 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.... :-)
|
||
|
||
<sect1> trouble_notelrings: Neither my telephone nor my fax machine ring when I
|
||
call them with isdn4linux?
|
||
<p>
|
||
Isdn4linux sets &dquot;digital data&dquot; 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.
|
||
|
||
|
||
<sect1> trouble_boot: How can I tell whether my ISDN card has been corrected
|
||
recognized?
|
||
<p>
|
||
<enum>
|
||
<item>Check for error messages in the boot messages (you can review them at any
|
||
time with the command <tt/dmesg/.
|
||
|
||
<item>For the HiSax driver: During booting a message <tt>kernel: HSCX version
|
||
A:5 B:5</tt> and <tt>kernel: channels 2</tt> should appear. <tt>A:4 B:4</tt> is
|
||
also okay. Other values (in particular <tt>A:??? B:???</tt>) mean the card is not
|
||
recognized correctly.
|
||
HiSax is only loaded if the hardware can be found and the appropriate
|
||
interrupts can be generated. This means the card is installed correctly in the
|
||
computer, and there are no hardware conflicts. It does not mean that everything
|
||
will work (e.g. twisted cables, broken cables, terminators).
|
||
|
||
<item>Check that the interrupts are registered correctly. Check with
|
||
<code>
|
||
cat /proc/interrupts
|
||
</code>
|
||
The following entry indicates that the card is configured on interrupt 11, and
|
||
so far has received 3 interrupts:
|
||
<verb>
|
||
11: 3 + hisax
|
||
</verb>
|
||
When you call yourself, the number of received interrupts should increase.
|
||
|
||
<item>Check the io ports with
|
||
<code>
|
||
cat /proc/ioports
|
||
</code>
|
||
</enum>
|
||
|
||
<sect1> trouble_guestaccess: Are there sites that offer guest access where I
|
||
can test my isdn4linux setup?
|
||
<label id="trouble_guestaccess">
|
||
<p>
|
||
The following information is quite old. Please tell me if you find out that the
|
||
guest sites are not available any more:
|
||
|
||
The following sites offer guest access for modem emulation or IP:
|
||
<itemize>
|
||
<item>Eberhard Moenkeberg <tt><htmlurl url="mailto:emoenke@gwdg.de"
|
||
name="emoenke@gwdg.de"></tt>:
|
||
<itemize>
|
||
<item>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 &dquot;default&dquot; route is not your way.
|
||
/ftp is exported for NFS; try &dquot;showmount -e&dquot;.
|
||
You can login as &dquot;guest&dquot; without password.
|
||
FTP as &dquot;gast&dquot; with password &dquot;gast&dquot; avoids the
|
||
restricted shell.
|
||
<item>Under ++49-551-7704102, a 28800 bps modem and a Creatix ISDN
|
||
card (HDLC only, not X.75) are listening for logins.
|
||
<item>With the net setup from
|
||
<tt><url url="ftp://ftp.gwdg.de/pub/linux/isdn/isdn4linux-gwdg/rc.isdn-Beispiel"></tt>
|
||
you can test NetCall at 551-7704103 (works as is within Germany,
|
||
from outside Germany you just have to change the number).
|
||
</itemize>
|
||
|
||
<item>Gernot Zander <tt><htmlurl url="mailto:hifi@scorpio.in-berlin.de"
|
||
name="hifi@scorpio.in-berlin.de"></tt>:
|
||
<quote>
|
||
There's a &dquot;gast&dquot; 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.
|
||
</quote>
|
||
</itemize>
|
||
|
||
<sect1> trouble_unload: I can't unload my ISDN modules (&dquot;isdn: Device or
|
||
resource busy&dquot;), even so I closed all ISDN applications?
|
||
<p>
|
||
In this case &dquot;fuser -v /dev/isdn* /dev/ippp* /dev/cui* /dev/ttyI*&dquot;
|
||
is very helpful. This helpful program shows, which processes are using those
|
||
devices.
|
||
<itemize>
|
||
<item>Is some program still using an ISDN device?
|
||
<item>Did you remove all getty's? (They may have restarted automatically)
|
||
<item>Are isdnlog, imon, iprofd, etc., still running?
|
||
<item>Maybe there is still a route on your net interface and it's not yet
|
||
deleted with &dquot;route del xxx&dquot;?
|
||
<item>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
|
||
&dquot;kill -9 ipppd pid&dquot;. Then the net interface is left
|
||
&dquot;up&dquot;.
|
||
</itemize>
|
||
Sporadic errors of this type can be fixed by inserting sleep commands
|
||
between the unloading commands.
|
||
As a very, very last resort, there are two secret telesctrl commands to adjust
|
||
the module counter:
|
||
<code>
|
||
telesctrl id 3 1 --- dec module_count
|
||
telesctrl id 4 1 --- inc module_count
|
||
</code>
|
||
Please use with appropriate caution and on your own risk!
|
||
|
||
|
||
<!-- Trouble locate crash
|
||
-->
|
||
<sect1> trouble_locatecrash: My isdn driver crashes my machine! Since I've
|
||
configured it as a module, the addresses change each time it's loaded. How can
|
||
I find out where the driver is crashing?
|
||
<p>
|
||
The driver should be loaded with the command &dquot;insmod -m&dquot;. The output
|
||
has to be transformed somewhat to be a form similar to System.map. You can do
|
||
it like this:
|
||
<code>
|
||
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
|
||
</code>
|
||
(The line ending with &dquot;|&dquot; has to have the following text on
|
||
the same line!) iSystem.map should then be used instead of System.map for
|
||
finding the error.
|
||
|
||
|
||
<!-- Trouble/Config Finetuning
|
||
-->
|
||
<sect1> trouble_lotsdebug: My hard disk becomes very active when isdn4linux run. How can
|
||
I turn this off?
|
||
<p>
|
||
Check whether the reason for the hard disk activity is caused by the amount of
|
||
messages written into the logfile. If this is the case, you can reduce the
|
||
output by:
|
||
<code>isdnctrl verbose 0
|
||
</code>
|
||
and/or by removing the &dquot;debug&dquot; option for ipppd.
|
||
|
||
|
||
<sect1> trouble_outofbuffers: I get messages like &dquot;HSCX RME out of
|
||
buffers&dquot;, &dquot;HSCX RFP out of buffers&dquot;, &dquot;HSCX B EXIR
|
||
10&dquot; in the syslog?
|
||
<p>
|
||
These errors happen when i4l is not able to process its buffers fast
|
||
enough. They are often caused by bad sound cards or their drivers when
|
||
they disable the interrupts too long! It may also happen on old hardware
|
||
(happened to the author of this FAQ when using <tt/vbox/ on an old 386-25 with
|
||
only 4MB RAM). You may be able to work around it by increasing the number and
|
||
size of the buffers. Check the source code header files for definitions like:
|
||
<code>
|
||
#define HSCX_RBUF_ORDER 1
|
||
#define HSCX_RBUF_BPPS 2
|
||
#define HSCX_RBUF_MAXPAGES 3
|
||
</code>
|
||
The first two influence the size, the last one the maximum number of buffers.
|
||
|
||
<sect1> trouble_noresetinit: After a soft reset, my card does not initialize
|
||
correctly.
|
||
<p>
|
||
After you stopped your system with the <tt/reboot/ command or with
|
||
<tt/Ctrl-Alt-Del/, press the reset button (=hard reset). Sometimes the card
|
||
needs to receive a hardware signal to reinitialize properly.
|
||
|
||
|
||
<sect1> trouble_xosview: xosview doesn't show any network activity since
|
||
installing i4l.
|
||
<p>
|
||
Peter Hettkamp <tt><htmlurl url="mailto:Peter.Hettkamp@kassel.netsurf.de"
|
||
name="Peter.Hettkamp@kassel.netsurf.de"></tt> wrote:
|
||
<quote>
|
||
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.)
|
||
</quote>
|
||
|
||
<sect1> trouble_unknownhost: When I for example from a W95 box call up a page
|
||
with Netscape, I only get the answer &dquot;unknown host&dquot;.
|
||
<p>
|
||
What is entered on the &dquot;Win95 box&dquot; 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.
|
||
|
||
<sect1> trouble_noroute: Addresses are now found, but now I get &dquot;no route
|
||
to host&dquot;.
|
||
<p>
|
||
Please check:
|
||
<itemize>
|
||
<item>Is the Linux computer entered as the gateway? (Some 'operating systems'
|
||
have to be restarted before changes to the networking take effect)?
|
||
<item>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 &dquot;doorknob&dquot;)
|
||
<item>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
|
||
<item>Maybe your route was removed when using syncppp? Check the questions
|
||
<ref id="syncppp_noroute"> and <ref id="syncppp_nodefaultroute">.
|
||
</itemize>
|
||
|
||
<sect1> trouble_nolocalnet: After booting, my local network can no longer be
|
||
reached. I use the network interface ippp0 with ifconfig 0.0.0.0; the default
|
||
route points to ippp0.
|
||
<p>
|
||
Wolfgang Barth wrote on 5 Jan 1997:
|
||
<quote>
|
||
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.
|
||
</quote>
|
||
|
||
|
||
<!-- Trouble Authentication
|
||
-->
|
||
<sect> pap: Authentication Problems (especially with PAP)
|
||
<label id="pap">
|
||
|
||
<sect1> pap_optionauth: When dialing out, I get the message &dquot;pppd: peer
|
||
authentication required but no authentication files accessible.&dquot;
|
||
What does this mean?
|
||
<p>
|
||
Most likely the option &dquot;auth&dquot; was set by mistake. Then the
|
||
<em>other</em> side is required to be authorized.
|
||
|
||
<sect1> pap_requestauth: I cannot establish a connection - it's rejected by the
|
||
other side. In the log file I find a message that's something like: &dquot;sent (0)
|
||
(LCP ConfReq id=0x1 mru 1500 auth pap magic 0xcd12e9c4&dquot;
|
||
<p>
|
||
Like in the last question, an option was been set that requires the
|
||
<em>other</em> side to be authorized. These options shouldn't be set.
|
||
Possible candidates are: &dquot;+pap&dquot; as well as &dquot;+chap&dquot;.
|
||
|
||
<sect1> pap_rejectauth: I cannot establish a connection - it's rejected by the
|
||
other side. In the log file I find a message that's something like:
|
||
&dquot;sent (0) (LCP ConfRej id=0x1 auth pap&dquot;
|
||
<label id="pap_rejectauth">
|
||
<p>
|
||
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
|
||
&dquot;user XXX&dquot; and &dquot;remotename YYY&dquot; together with a correct (!)
|
||
/etc/ppp/pap-secrets. With a password of ZZZ it should ideally look
|
||
like this:
|
||
<code>
|
||
XXX YYY ZZZ *
|
||
</code>
|
||
If that doesn't work, you can use wild cards, something like:
|
||
<code>
|
||
* * ZZZ *
|
||
</code>
|
||
Then <em>every</em> 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:
|
||
<tt><url url="http://www.lrz-muenchen.de/˜ui161ab/www/isdn/"></tt>
|
||
Also have a look at the next question: <ref id="pap_passwd">.
|
||
|
||
<sect1> pap_passwd: I have problems with PAP or CHAP authentication. It does not
|
||
work although I'm sure I entered passwords etc. correctly.
|
||
<label id="pap_passwd">
|
||
<p>
|
||
Stefan A. Muehlenweg <tt><htmlurl url="mailto:Stefan.A.Muehlenweg@samhh.Hanse.DE"
|
||
name="Stefan.A.Muehlenweg@samhh.Hanse.DE"></tt> wrote on
|
||
4 Oct 1996:
|
||
<quote>
|
||
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.
|
||
</quote>
|
||
A further source of problems can be the password itself. If it contains
|
||
the &dquot;#&dquot; character, then everything after than is understood as a
|
||
comment. Spaces or tabs can cause similar problems. Solution: put
|
||
the password in quotes!
|
||
|
||
|
||
<!-- Isdnlog
|
||
-->
|
||
|
||
<sect> Isdnlog
|
||
|
||
<sect1> isdnlog_2callerid: Isdnlog (=2.52) shows for a caller <em>two</em>
|
||
telephone numbers! Which one is correct?
|
||
<p>
|
||
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 &dquot;I've heard
|
||
that actually two Caller IDs are transmitted?&dquot;.
|
||
|
||
Andreas Kool <tt><htmlurl url="mailto:akool@Kool.f.EUnet.de"
|
||
name="akool@Kool.f.EUnet.de"></tt> wrote on 26 Jan 1997:
|
||
|
||
In any case, you can only fool software/PBXs that do not evaluate
|
||
the screening indicator - isdnlog with version 2.52 shows both the
|
||
correct *and* the faked telephone number.
|
||
|
||
...CLIP, no screening was actually designed for transmitting internal
|
||
company numbers in the public network.
|
||
|
||
|
||
<sect1> isdnlog_soundbusy: I've set up a script to play sound per cat on
|
||
/dev/sound or some other device. When several events occur, then there is an error:
|
||
<tt>Can't open output file '/dev/sound': Device or resource busy</tt>
|
||
<p>
|
||
Only one process at a time can access the sound device. You need an upper
|
||
instance that coordinates access to the sound device. NAS (network audio
|
||
system), and rplay can be used for this.
|
||
|
||
<sect1> isdnlog_noshell: Isdnlog should call a program with redirected output
|
||
(e.g. <tt>play anruf.au 2/dev/null</tt>). Why does ISDN tell me
|
||
<tt>Can't start '/usr/local/bin/play anruf.au 2/dev/null' with execvp()</tt>?
|
||
<p>
|
||
Because isdnlog is not a (Bourne) shell ;-) Isdnlog can only start
|
||
<bf>real</bf> programs. Just write a little script for it and make it
|
||
executable (chmod +x):
|
||
<code>
|
||
#!/bin/sh
|
||
/usr/local/bin/play anruf.au 2/dev/null
|
||
</code>
|
||
|
||
<sect1> isdnlog_blankscreen: When dialing out, the screen goes momentarily black?
|
||
<p>
|
||
This may happen when you start isdnlog with the options <tt>-t
|
||
1</tt> or <tt>-t 2</tt>, then the time is synchronized with the digital
|
||
switching station. The screen saver thinks that more than x minutes have
|
||
passed, which causes a short blackout of the screen.
|
||
|
||
|
||
<!-- Unwanted dialouts
|
||
-->
|
||
|
||
<sect> dod: Unwanted dialout on demand
|
||
<label id="dod">
|
||
|
||
<sect1> dod_how: How does dialout on demand work?
|
||
<p>
|
||
After you habe set up a network interface, and defined a route to it, then all
|
||
ip packages will be routed to this interface. If the <tt/autodial/ mode has
|
||
been enabled (see question <ref id="config_dialmode"> on the dialmodes) then
|
||
the interface will automatically trigger a dialout when it receives ip
|
||
packages.
|
||
|
||
<sect1> dod_causes: What can cause a charge unit disaster?
|
||
<p>
|
||
There are many possibilities.
|
||
<enum>
|
||
<item>You compiled your kernel with the option Bridging by mistake
|
||
<item>ARP requests or broadcasts? You should run ifconfig with the options
|
||
<tt>-arp</tt> and <tt>-broadcast</tt> to keep from opening connections in this
|
||
way. You can recognize this one when you have a dialout, but <em/no/ data is
|
||
transferred.
|
||
<item>Other Broadcasts from the interfaces were being forwarded by ISDN
|
||
<item>If IP connections are still open with the line is disconnected and
|
||
IP addresses are dynamically assigned, then the disaster is inevitable.
|
||
Then a new connection is started to bring down the open IP connections,
|
||
which fails because the IP address is now different. The line is hung up,
|
||
but the IP connections are still open, the line is dialed again, and
|
||
so on... This can only be avoided with the RST-Revoking patch, which has found
|
||
its way into the 2.0.x kernels, but not into 2.1/2.2/2.3 (see the appropriate
|
||
question below).
|
||
</enum>
|
||
|
||
<sect1> dod_off: How can I safely turn off dialout on demand?
|
||
<p>
|
||
<enum>
|
||
<item>Set your dialmode properly (see question <ref id="config_dialmode">).
|
||
Alternatively you can use the dialmode feature (see question
|
||
<ref id="config_dialmode">.
|
||
<item>Delete the telephone number of the interface, or set an invalid one. Then you
|
||
can see from the complaints in the syslog whether a process wants to send
|
||
packets out to the world.
|
||
<item>Switch the system off.
|
||
<item>Delete your route to the ISDN device.
|
||
For example, to disable any automatic dialouts:
|
||
<code>
|
||
/sbin/route del default
|
||
/sbin/isdnctrl system off
|
||
/sbin/ifconfig ippp0 down
|
||
</code>
|
||
To get things running again:
|
||
<code>
|
||
/sbin/isdnctrl system on
|
||
/sbin/ifconfig ippp0 up
|
||
/sbin/route add $GATE-IP dev ippp0
|
||
/sbin/route add default ippp0
|
||
</code>
|
||
The latter method has the disadvantage that dialin is then no longer
|
||
possible.
|
||
</enum>
|
||
|
||
<sect1> dod_strategy: How can I track down unexplainable dialouts?
|
||
<p>
|
||
If you are using ipppd: get a tcpdump which can show data with the syncPPP
|
||
encapsulation (may require a patch - see question
|
||
<ref id="trouble_tcpdump">). Otherwise your only chance is to turn off one
|
||
daemon after the other and see if things have finally quieted down. named,
|
||
sendmail, and also smbd (Samba) are likely candidates to open connections (see
|
||
the following questions).
|
||
|
||
Christoph Trautwein <tt><htmlurl url="mailto:trautw@fzi.de"
|
||
name="trautw@fzi.de"></tt> added on 5 Nov 1996:
|
||
<quote>
|
||
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 quite can be found at:
|
||
<tt><url url="http://www.fzi.de/sim/people/trautw/i4l/index.html"></tt>
|
||
</quote>
|
||
Herbert Rosmanith <tt><htmlurl url="mailto:herp@wildsau.idv.uni-linz.ac.at"
|
||
name="herp@wildsau.idv.uni-linz.ac.at"></tt> added on 24 Nov 1996:
|
||
<quote>
|
||
Try to find out which lookup triggers the connection with
|
||
&dquot;isdnctrl verbose 3&dquot;. Then a message should appear in
|
||
the kernel message queue (visible with &dquot;dmesg&dquot;) 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).
|
||
</quote>
|
||
Please note: only the triggering packet will be logged.
|
||
|
||
Stefan Luethje <tt><htmlurl url="mailto:luethje@sl-gw.lake.de"
|
||
name="luethje@sl-gw.lake.de"></tt> wrote further on 27 Nov 1996:
|
||
<quote>
|
||
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.
|
||
</quote>
|
||
See all the last question in this section.
|
||
|
||
<sect1> Can it be that the Win95 machine on my LAN is causing automatic
|
||
dialouts?
|
||
<p>
|
||
Stefan Luethje <tt><htmlurl url="mailto:luethje@sl-gw.lake.de"
|
||
name="luethje@sl-gw.lake.de"></tt> wrote on 27 Nov 1996:
|
||
<quote>
|
||
If 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).
|
||
</quote>
|
||
|
||
<sect1> I have set up a local DNS name server. Why does it cause unwanted
|
||
dialouts? How can I find the cause?
|
||
<p>
|
||
Jens Ey <tt><htmlurl url="mailto:jens@jeyhh.shnet.org"
|
||
name="jens@jeyhh.shnet.org"></tt> 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 (caching) local DNS
|
||
is only used after the connection has been established.
|
||
|
||
<sect1> dod_win95: How can I turn off the DNS requests for WORKGROUP.xxx from my
|
||
Win95 machine?
|
||
<p>
|
||
Eike Stepper <tt><htmlurl url="mailto:isdn@esc-net.de"
|
||
name="isdn@esc-net.de"></tt> wrote on 30 Nov 1996:
|
||
<quote>
|
||
Why not simply set the &dquot;Use DNS for Windows Names Resolution&dquot;
|
||
(or similar) to No? Then it should be quiet, at least it
|
||
is for me.
|
||
</quote>
|
||
|
||
<sect1> dod_sendmail: How can I get sendmail to not initiate any connections
|
||
without local mail being left undelivered?
|
||
<p>
|
||
First you have to get sendmail to no long open any DNS connections.
|
||
You need to activate the following features: &dquot;nodns&dquot;, &dquot;nocanonify&dquot;.
|
||
|
||
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
|
||
&dquot;order hosts bind&dquot;)
|
||
|
||
You should set all non-local mailers as &dquot;expensive&dquot;
|
||
(&dquot;define(SMTP_MAILER_FLAGS, e)&dquot;), and then forbid sendmail with
|
||
&dquot;define(`confCON_EXPENSIVE', `True')&dquot; from automatically connection
|
||
to expensive mailers. The call to sendmail should no longer include
|
||
a time for the &dquot;-q&dquot; option (e.g. only &dquot;-bd -os -q&dquot;). &dquot;-os&dquot; 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 &dquot;sendmail -q&dquot;.
|
||
|
||
<sect1> dod_samba: The samba package always triggers dialouts for me. How can I
|
||
prevent this?
|
||
<p>
|
||
Andreas Glahn <tt><htmlurl url="mailto:andreas@tao.westfalen.de"
|
||
name="andreas@tao.westfalen.de"></tt> 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:
|
||
<code>
|
||
nmdb -S -B 192.168.99.255 -I 192.168.99.99
|
||
</code>
|
||
See also the above question: se -broadcast and possibly -arp
|
||
when defining the interfaces!
|
||
|
||
<sect1> dod_netscape: How can I get Netscape to quit initiating dialouts when
|
||
starting?
|
||
<p>
|
||
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.
|
||
&dquot;file://localhost/xxx&dquot;) 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 <tt><htmlurl url="mailto:henker@Informatik.Uni-Bremen.DE"
|
||
name="henker@Informatik.Uni-Bremen.DE"></tt>
|
||
wrote:
|
||
<quote>
|
||
Unfortunately reality has caught up with us. I've heard that
|
||
Netscape now in version.4.02 really does establish a
|
||
connection...
|
||
</quote>
|
||
|
||
<sect1> dod_closeipconnect: After closing the line, I discover with <tt>netstat
|
||
-nt</tt> that IP connections are still open. How can I close these manually?
|
||
<p>
|
||
You can bring the interface &dquot;down&dquot; then back &dquot;up&dquot;. When
|
||
you do this, it will try to dial out. But if you have removed the outgoing
|
||
telephone number, then &dquot;no outgoing number...&dquot; appears in the
|
||
syslog, and as soon as the interface is &dquot;up&dquot;, all connections will
|
||
be closed.
|
||
|
||
<sect1> dod_openlineoncrash: Is it possible that even with a crashed computer a
|
||
ISDN connection remains open (and the charge units accumulate)?
|
||
<p>
|
||
Karsten Keil <tt><htmlurl url="mailto:keil@temic-ech.spacenet.de"
|
||
name="keil@temic-ech.spacenet.de"></tt> 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.
|
||
|
||
|
||
<!-- Dialin Server
|
||
-->
|
||
|
||
<sect> Dialin
|
||
|
||
<sect1> dialin_ignored: I keep getting the message &dquot;isdn_tty: call from
|
||
XXX - YYY ignored&dquot;. Why does isdn4linux (syncPPP) ignore this dialin
|
||
attempt?
|
||
<p>
|
||
There are two possible explanations. Either your own MSN (here: YYY)
|
||
is not correctly set with &dquot;isdnctrl eaz interface YYY&dquot;. Or
|
||
&dquot;isdnctrl secure interface on&dquot; was set, without allowing calls from
|
||
the incoming number (here: XXX) with &dquot;isdnctrl addphone interface in XXX&dquot;.
|
||
|
||
<sect1> dialin_async: A SunISDN tries to dial into my i4l system.
|
||
<p>
|
||
The Sun tries to communicate with asyncPPP. ipppd can't handle
|
||
this, you have to use the ttyI* devices and the standard pppd.
|
||
|
||
|
||
|
||
<!-- Callback
|
||
-->
|
||
|
||
<sect> Callback
|
||
|
||
<sect1> callback_delay: An incoming call is rejected by i4l. i4l then calls
|
||
back. The reject is not recognized by the other side which keeps on dialing to
|
||
i4l.
|
||
<p>
|
||
Most problems with callback can be solved by adjusting the callback
|
||
delay with &dquot;isdnctrl cbdelay&dquot;. One second has been successful in
|
||
many cases.
|
||
|
||
<sect1> callback_cisco: Somehow i4l can not callback a Cisco?
|
||
<p>
|
||
Torsten Hentschel <tt><htmlurl url="mailto:Torsten.Hentschel@DInet.de"
|
||
name="Torsten.Hentschel@DInet.de"></tt> wrote on 3 Oct 1996:
|
||
<quote>
|
||
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 &dquot;dial on
|
||
demand&dquot; 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 &dquot;ping RemoteIP&dquot; 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 &dquot;callback
|
||
client&dquot; = 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).
|
||
</quote>
|
||
Torsten Hentschel <tt><htmlurl url="mailto:Torsten.Hentschel@DInet.de"
|
||
name="Torsten.Hentschel@DInet.de"></tt> additionally wrote on
|
||
20. Nov 1996:
|
||
<quote>
|
||
I've often tried callback over PPP with two CISCOs. From my experience,
|
||
trials in the combination CISCO - Linux will not be successful.
|
||
A CISCO always handshakes a callback request via PPP. To do this, the
|
||
other side has to first unhook and then do all the handshaking
|
||
(authentication,...). Then both hang up and the callback is placed.
|
||
isdnctrl commands of Linux influence only the kernels net devices
|
||
and have no or hardly any influence on how the ipppd handles callbacks.
|
||
He does not recognize that he is supposed to expect that the remote
|
||
side calls back.
|
||
Accordingly he rejects the offer of the CISCO via PPP, that the CISCO
|
||
is ready to call back. Then the CISCO assumes that it should not call
|
||
back (it wants to see an explicit callback request during the PPP
|
||
handshaking).
|
||
The CISCO will confirm this when you log onto it and check with these
|
||
commands:
|
||
deb ppp chap
|
||
deb ppp negotiotion
|
||
deb ppp error
|
||
term mon
|
||
its debug messages about the dial in trials of your Linux computer.
|
||
You have to do this via telnet instead of on the console - otherwise
|
||
the CISCO won't be able to handle the logging via the serial interface.
|
||
</quote>
|
||
|
||
<sect1> callback_ascend: Callback from an Ascend works only when I set
|
||
&dquot;Active=Yes&dquot; in the Ascend menu; but then the Ascend keeps calling
|
||
me, even when my machine is off.
|
||
<p>
|
||
Ulrich Klein <tt><htmlurl url="mailto:ulik@hprc.tandem.com"
|
||
name="ulik@hprc.tandem.com"></tt> wrote on 14 Dec 1996:
|
||
|
||
Somewhere in the Ascend menus you can set &dquot;dial broadcast&dquot; to &dquot;no&dquot;
|
||
or &dquot;off&dquot;. 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.
|
||
|
||
<sect1> callback_banzai: How can I callback a Banzai!?
|
||
<p>
|
||
Jan-Olaf Droese <tt><htmlurl url="mailto:jano@layla.RoBIN.de"
|
||
name="jano@layla.RoBIN.de"></tt> 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:
|
||
<code>
|
||
isdnctrl callback isdn0 in
|
||
isdnctrl cbdelay isdn0 1
|
||
</code>
|
||
|
||
|
||
<sect> Supported Countries
|
||
<label id="countries">
|
||
<!-- Countries and further features
|
||
-->
|
||
|
||
<sect1> country_which: In which countries does isdn4linux work?
|
||
<p>
|
||
We are aware of at least the following countries:
|
||
<itemize>
|
||
<item>Austria
|
||
<item>Australia
|
||
<item>Belgium
|
||
<item>Denmark
|
||
<item>Finland
|
||
<item>France
|
||
<item>Germany
|
||
<item>Ireland
|
||
<item>Israel
|
||
<item>Italy
|
||
<item>Norway
|
||
<item>Peru
|
||
<item>Portugal
|
||
<item>Singapore
|
||
<item>Spain
|
||
<item>Sweden
|
||
<item>Switzerland
|
||
<item>The Netherlands
|
||
<item>United Kingdom
|
||
<item>USA
|
||
</itemize>
|
||
If your country is not on this list does not mean it is not supported. It just
|
||
means we have not seen a confirmation about its usage there. Check the mailing
|
||
list for other users from your country.
|
||
|
||
<sect1> country_certified: Is isdn4linux approved for use by the
|
||
telecommunications authorities?
|
||
<label id="country_certified">
|
||
<p>
|
||
<descrip>
|
||
<tag/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 Elsa Quickstep 1000 PCI
|
||
driver is currently certified in Germany (and hence in most european
|
||
countries). This applies to the 2.0.36 kernel version.
|
||
<tag/Other countries/
|
||
Besides those countries that accept a german certification,
|
||
we don't have any information... does anyone know more?
|
||
</descrip>
|
||
|
||
<sect> 1tr6: German Pecularities (1TR6)
|
||
|
||
<sect1> 1tr6_eaz: Which EAZ should I use for i4l?
|
||
<p>
|
||
You can use all available EAZ. However, two EAZ have a special meaning and
|
||
can cause problems:
|
||
<verb>
|
||
EAZ 0: global call (all telephones ring)
|
||
EAZ 9: global call (no telephone rings)
|
||
</verb>
|
||
Gernot Zander <tt><htmlurl url="mailto:hifi@scorpio.in-berlin.de"
|
||
name="hifi@scorpio.in-berlin.de"></tt> wrote about this on 6. Jan 1997:
|
||
<quote>
|
||
I would not use 0, for my taste it is too likely that i4l will steal
|
||
all voice connections.
|
||
</quote>
|
||
|
||
<sect1> 1tr6:extension: I use 1TR6 on an extension - the extension number has
|
||
more than one digit (e.g. 206). What is my EAZ?
|
||
<p>
|
||
Jens Ey <tt><htmlurl url="mailto:jens@jeyhh.shnet.org"
|
||
name="jens@jeyhh.shnet.org"></tt> 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'.
|
||
|
||
<sect1> 1tr6_spv: What is a SPV?
|
||
<p>
|
||
SPV stands for &dquot;semipermanente Verbindung&dquot; (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.
|
||
|
||
This SPV is not to be confused with the Austrian understanding of SPV. The
|
||
Austrian `SPV' has one channel leased line, and one channel for dialing.
|
||
|
||
<sect1> 1tr6_spvavailavle: How long will there still be SPVs?
|
||
<p>
|
||
Steffen Sledz <tt><htmlurl url="mailto:sledz@dgroup.de"
|
||
name="sledz@dgroup.de"></tt> wrote on 5 Dec 1996:
|
||
<quote>
|
||
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
|
||
</quote>
|
||
<tt><url url="http://www.birch.de"></tt> (who is suing).
|
||
|
||
<sect1> 1tr6_spv: Does isdn4linux support SPVs? How?
|
||
<p>
|
||
To switch on the support for SPVs, add an &dquot;S&dquot; before the number
|
||
to be dialed. This works (quite well) for modem emulations as well
|
||
as for defined network interfaces.
|
||
|
||
|
||
<sect> Other countries
|
||
|
||
|
||
<sect1> country_austria: Austria: We have neither an MSN nor an EAZ, only a
|
||
normal plain telephone number. What do we have to use for i4l?
|
||
<p>
|
||
In Austria ISDN lines are by standard installed <em>without</em> MSN (which is
|
||
different from Germany). That means when somebody calls the installed ISDN
|
||
number the called party gets signalled a &dquot;global call&dquot;. i4l then says
|
||
&dquot;incoming call without CPN&dquot; - &dquot;CPN&dquot; means called party number.
|
||
Solution: Set the incoming &dquot;MSN&dquot; (in reality: none) to &dquot;0&dquot;, then i4l
|
||
responds to the global call. Otherwise it waits for the signalling of the
|
||
number you told i4l, and that won't happen (happens only for *additional*
|
||
MSN). The same applies to the setup of your getty.
|
||
|
||
On the other hand you should set the outgoing MSN correctly (without area
|
||
code) -- however, a wrong MSN will be replaced with the correct one by your
|
||
telecommunications provider.
|
||
|
||
<sect1> country_france: France: How does our MSN look like?
|
||
<p>
|
||
If you don't have MSN, you need to specify as local number only the last 4
|
||
digits of you phone number. A good thing is that you can also use
|
||
sub-addressing. If your phone number is 01 41 33 67 87, and you want to use
|
||
sub-address 02, then configure the local phone number of the HiSax driver as
|
||
6787.02 .
|
||
|
||
<sect1> countr_italy: Italy: What does our MSN look like?
|
||
<p>
|
||
isdn4linux also works in Italy (ICN card). The MSN must be the phone number
|
||
with the Italian area code but without the leading 0. For example, if my phone
|
||
number is 72004681 and my area code is 045, my MSN is 4572004681.
|
||
Now with the setting AT&E4572004681 isdn4linux works fine.
|
||
|
||
<sect1> country_netherland: Netherlands: What does our MSN look like?
|
||
<p>
|
||
In The Netherlands the MSN includes (as opposed to the German
|
||
Telekom) <em>also the area code</em> - but without the leading zero.
|
||
|
||
<sect1> country_northamerica: North America: Can we use isdn4linux in North
|
||
America?
|
||
<p>
|
||
Unfortunately, European ISDN cards can not be used in North America.
|
||
In Europe, the telephone company normally makes the network terminator
|
||
(NTBA) available. In North America <em>the customer</em> has to supply such
|
||
a device(NT-1) himself! Therefore, most ISDN cards offer an
|
||
integrated NT-1.
|
||
|
||
There are also other differences; e.g. in Europe a PRI (Primary
|
||
Rate Interface) has 30 B channels, in North America only 23. Also the
|
||
C channel protocol NI-1 is used. NI-1 is related to DSS1 (both are Q.931
|
||
Protocols), but both have totally different groups of functions and are
|
||
therefore not compatible to one other.
|
||
|
||
However, the firm &dquot;Spellcaster&dquot; has written an isdn4linux driver
|
||
for its own (active) cards. More information is available from:
|
||
<verb>
|
||
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
|
||
</verb>
|
||
E-mail: <tt><htmlurl url="mailto:ipj@spellcast.com"
|
||
name="ipj@spellcast.com"></tt> or <tt><htmlurl url="mailto:sales@spellcast.com"
|
||
name="sales@spellcast.com"></tt>
|
||
<tt><url url="http://www.spellcast.com"></tt>
|
||
|
||
<sect1> country_portugal: Portugal: What should we use as MSN?
|
||
<p>
|
||
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 &dquot;0&dquot;.
|
||
If more than one MSNs was applied for, then these should be set as usual.
|
||
|
||
<sect1> country_switherland: Switzerland: We have neither an MSN nor an EAZ, just a plain telephone
|
||
number. What do we have to use for i4l?
|
||
<p>
|
||
In Switzerland you have to use the <em>last digit</em> of your telephone
|
||
number as your MSN/EAZ (&dquot;6&dquot; if you have the telephone number &dquot;123456&dquot;).
|
||
|
||
<sect1> country_uk: UK: What should we use as MSN?
|
||
<p>
|
||
There are no normal MSNs in UK. 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. It was said that BT was going to offer &dquot;normal&dquot;
|
||
EuroISDN, which they wanted to call ISDN-2e (their current offering is
|
||
ISDN-2). However, so far I have not received any feedback on this.
|
||
|
||
|
||
<sect> misc: Miscellaneous
|
||
|
||
<sect1> misc_ntbadipWhere can I find information on the dip switches of my NTBA?
|
||
<p>
|
||
<tt><url url="ftp://novix.oih.rwth-aachen.de/pub/ntba.zip"></tt> (ca. 170kB)
|
||
|
||
<sect1> misc_nonullcable: Can I connect two ISDN devices directly with a kind
|
||
of &dquot;null modem cable&dquot;?
|
||
<p>
|
||
No, that's not possible. The concept of ISDN doesn't allow it. A NTBA or a
|
||
PBX with an internal bus is required.
|
||
|
||
<sect1> misc_uisdn: Can isdn4linux run in parallel to UISDN?
|
||
<p>
|
||
Yes. Both ISDN packages load the module isdn.o, otherwise the naming conventions
|
||
are different. Tip: rename Urlichs isdn.o to uisdn.o, and change
|
||
lib/modules/modules.isdn (or whatever the file is called that lists the modules
|
||
and is read by the script) accordingly. Happily the default names of the ISDN
|
||
devices are also different.
|
||
|
||
|
||
|
||
<!-- Glossary
|
||
-->
|
||
|
||
<sect> Glossary
|
||
<p>
|
||
<descrip>
|
||
<tag/AOC-D/
|
||
&dquot;Advice Of Charge During the Call&dquot;.
|
||
|
||
<tag/AOC-E/
|
||
&dquot;Advice of Charge at the End of the Call&dquot;. In Germany, this
|
||
service is included in the &dquot;Komfort&dquot; connection.
|
||
|
||
<tag/CLIR/
|
||
CLIR (Calling Line Identification Restriction) can be offered by
|
||
the ISDN provider: one can (from call to call) restrict the
|
||
identification of one's own caller ID to the other party. In Germany,
|
||
this must be applied for but is without charge (however call by call
|
||
transmission of the caller ID costs extra).
|
||
|
||
<tag/COLP/
|
||
COLP (Connected Line Identification Presentation) can also be offered
|
||
by the ISDN provider. If you've applied for COLP, you get an extended
|
||
dialing protocol. You will receive feedback from your telecommunication
|
||
company who picked up your outgoing call.
|
||
In Germany, it must be applied for, and costs extra. More information
|
||
than COLP can be obtained with the help of a reverse-connected ISDN
|
||
card.
|
||
|
||
<tag/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.
|
||
|
||
<tag/HDLC/
|
||
A widely used low-level protocol.
|
||
|
||
<tag/HSCX/
|
||
A Siemens chip which is, similar to ISAC, on many passive cards.
|
||
It takes over the serial bus from ISAC and demultiplexes when
|
||
receiving or multiplexes (i.e. inserts the bits in the correct
|
||
position) the B channels.
|
||
|
||
<tag/ISAC/
|
||
A Siemens chip which is, similar to HSCX, on many passive cards.
|
||
It is responsible for Level 1, so it sits (almost) directly on
|
||
the line. It handles the D channel protocol and sends the
|
||
S0 data to a special serial bus (IOM). When sending it does the
|
||
opposite.
|
||
|
||
<tag/TEI/
|
||
TEI stands for Terminal End Identifier. The local switching station, or
|
||
with an internal S0 the PBX, automatically or permanently assigns each
|
||
end device a TEI. This simply allows the addressing of the D
|
||
channels. TEIs have the following values:
|
||
0- 63 permanent TEIs (e.g. 0 is used for point to point connections)
|
||
64-126 automatically assigned
|
||
127 broadcast to all devices (e.g. an incoming call)
|
||
|
||
<tag/PBX/
|
||
A PBX (Private Branch eXchange) is used to connect different internal
|
||
devices to the ISDN network. This is usually for analog devices that
|
||
cannot be directly connected to an ISDN network. The PBX can also make
|
||
an internal digital S0 bus available, on which ISDN devices can be
|
||
connected. This allows for local calls without using the switching
|
||
station (thereby avoiding the charges from your telephone company).
|
||
|
||
<tag/MSN/
|
||
Unlike a normal telephone connection, an ISDN connection can have more
|
||
than one telephone number - each of these is called an MSN (Multiple
|
||
Subscriber Number).
|
||
|
||
<tag/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).
|
||
</descrip>
|
||
|
||
|
||
</article>
|
||
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-namecase-general:t
|
||
sgml-general-insert-case:lower
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:2
|
||
sgml-indent-data:nil
|
||
sgml-parent-document:nil
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
-->
|