ATTENTION! The following header is not fully valid yet!
From: dl4mhk@lrz.uni-muenchen.de (Bernhard Hailer)
Newsgroups: de.alt.comm.isdn4linux,de.answers,news.answers
Subject: ISDN4linux-FAQ
Followup-To: de.alt.comm.isdn4linux
Summary: This posting describes what every reader of de.alt.comm.isdn4linux
ought to know about ISDN under Linux using isdn4linux.
This is an English translation of the original document, which is
in German, like the Newsgroup.
Archive-name: eng-i4l-faq
Posting-frequency: monthly
Last-modified: 18-Mar-97
URL: http://www.lrz-muenchen.de/~ui161ab/www/isdn/
+49 931 781464 Zyxel U-1496E V.32(bis), V.42(bis), Zyxel 19200
+49 931 781465 Atrie 1914A V.32(bis), V.42(bis), V32terbo
+49 931 781467 Atrie 1914A V.32(bis), V.42(bis), V32terbo
+49 931 781468 Atrie 1914A V.32(bis), V.42(bis), V32terbo
+49 931 79002055 Motorola 3400 V.32(bis), V.42(bis), V.34
+49 931 7840724 ICN X.75 2 B channels
+49 931 7841020 ICN X.75 2 B channels
+49 931 7841060 ICN X.75 2 B channels
+49 931 7841070 ICN X.75 2 B channels
+49 931 7841080 ICN X.75 2 B channels
ftp://ftp.cs.tu-berlin.de/pub/net/isdn/isdn4linux/ ftp://ftp.fokus.gmd.de/pub/Linux/isdn/isdn4linux/ ftp://ftp.franken.de/pub/isdn4linux/ ftp://ftp.kiss.de/pub/linux/isdn4linux/ ftp://ftp.leo.org/pub/comp/os/unix/linux/isdn/isdn4linux/ ftp://linux.mathematik.th-darmstadt.de/pub/linux/mirrors/misc/isdn4linux/ ftp://ftp.nvg.unit.no/pub/linux/isdn/ ftp://ftp.pop.de/pub/linux/isdn/ ftp://ftp.rz.fh-hannover.de/pub/linux/local/isdn4linux/ ftp://ftp.rz.hu-berlin.de:/pub/linux/isdn4linux/ ftp://ftp.tu-dresden.de/pub/soft/isdn/isdn4linux/ ftp://ftp.uni-mainz.de/pub/internet/starter-kit/isdn/isdn4linux/ ftp://ftp.uni-wuppertal.de/pub/linux/isdn4linux/ ftp://ftp.xlink.net/pub/mirror.ftp.franken.de/isdn4linux/ ftp://fvkma.tu-graz.ac.at/pub/isdn4linux/ ftp://wildsau.idv.uni-linz.ac.at/pub/isdn4linux/
ISDN kernel subsystem:/usr/src/linux/Documentation/isdn/README
ISDN cards: /usr/src/linux/Documentation/isdn/README.<card>
Synchronous PPP: /usr/src/linux/Documentation/isdn/README.syncppp
/usr/src/linux/Documentation/isdn/README.syncPPP.FAQ
Voice capability: /usr/src/linux/Documentation/isdn/README.audio
ISDN Utilities: /usr/src/isdn4k-utils-<version>/README(.*)
Many of the utilities also have man pages!
In a Suse distribution the following information might also be
helpful:
Synchronous PPP: /usr/doc/faq/faq/PPP-FAQ
Email configuration: /usr/doc/howto/mini/Mail-Queue.gz
index isdn4linux - list which archive files are available
get isdn4linux <filename> - retrieves the file <filename>
Austria
Belgium
Finland
France
Germany
Israel
Italy
Norway
Peru
Portugal
Spain
Sweden
Switzerland
The Netherlands
United Kingdom
USA
[Translator's note: I've also seen messages on the mailing list from isdn4linux users in Canada, Denmark, Hungary and Slovenia . I've also seen mentions of isdn4linux from Australia, the Czech Republic and Poland, but I'm not sure if it is actually in use in those countries.]
* ITK ix1 micro V2.0 and V2.1
* Cisco 200
* ITK Columbus
* Teles 8.0/16.0/16.3 and compatible ones * Teles 16.3c * Teles S0/PCMCIA * Teles PCI * Teles S0Box * Creatix S0Box * Creatix PnP S0 * Compaq ISDN S0 ISA card * AVM A1 (Fritz, Teledat 150) * AVM Fritz PCMCIA * AVM Fritz PnP * AVM Fritz PCI * ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8 * ELSA Quickstep 1000 * ELSA Quickstep 1000PCI * ELSA Quickstep 3000 (same settings as QS1000) * ELSA Quickstep 3000PCI * ELSA PCMCIA * ITK ix1-micro Rev.2 * Eicon.Diehl Diva 2.0 ISA and PCI (S0 and U interface, no PRO version) * Eicon.Diehl Diva Piccola * ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D) * Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter) * PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink) * HFC-2BS0 based cards (TeleInt SA1) * Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+) * Sedlbauer Speed Star/Speed Star2 (PCMCIA) * Sedlbauer ISDN-Controller PC/104 * USR Sportster internal TA (compatible Stollmann tina-pp V3) * ith Kommunikationstechnik GmbH MIC 16 ISA card * Traverse Technologie NETjet PCI S0 card * Dr. Neuhaus Niccy PnP/PCINote: PCF, PCF-Pro: up to now, only the ISDN part is supported PCC-8: not tested yet Teles PCMCIA is EXPERIMENTAL Teles 16.3c is EXPERIMENTAL Teles PCI is EXPERIMENTAL Teles S0Box is EXPERIMENTAL Eicon.Diehl Diva U interface not tested
The first goal of the HiSax driver was to add support for more ISDN
cards to i4l, and this goal remains. Secondly, it should be as simple
as possible to configure and not appear to work when there is a
hardware problem (IRQ, reset problems with Teles). I can't fix the
hardware problems directly, but driver will not load if such problems
appear. Third (this part has just now begun) is to fully rewrite the
state machines into a complete DSS1 or 1TR6 that could be approved
(which doesn't mean that I personally can or want to obtain approval).
In addition, if possible I'd like to support US ISDN protocols, so
that i4l can be used outside of Europe. Also, further l2/l3 protocols
should be added (e.g. V110), leased line support.... a lot of work,
that I'm sure I cannot do alone. Anyone with any knowledge of
programming and ISDN (I myself first heard of ISDN in January, and my
work has nothing to do with ISDN... I learned everything on my own
time), and anyone who wants to help can contact me.
1st choice ELSA
ELSA (as opposed to AVM) makes the specifications available.
2nd choice Creatix PNP
Creatix employees are also not completely negative towards Linux ;-).
By the way, this card has been developed by Creatix and
is not identical to the Teles 16.3 PNP.
56k asynchronous : no
64k synchronous : yes
128k synchronous : yes (channel bundling - see the next question)
* Welcome to Linux at eberhard.moenkeberg.de (LAN, 192.168.99.1).
Under ++49-551-7704103, ISDN NetCalls (HDLC-trans-rawip)
for 192.168.99.1 get accepted. You should come as 192.168.*.*
because sometimes my "default" route is not your way.
/ftp is exported for NFS; try "showmount -e".
You can login as "guest" without password.
FTP as "gast" with password "gast" avoids the restricted shell.
* Under ++49-551-7704102, a 28800 bps modem and a Creatix ISDN
card (HDLC only, not X.75) are listening for logins.
There's a "gast" at +49 30 67 19 81 01 (X.75, mgetty). There's the
stones-html-page with pics in postscript to test downloading. Whoever
needs a target to call can use it. At ...81 03 there's a getty with
HDLC. As guest you enter a kind of BBS and can read some news.
#!/bin/sh
exec rsh -l guest $*
cvs -z9 checkout isdn4k-utils
checkout
diff
export
status
update
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
They run parallel. And they run under 2.0.X.
Both ISDN packages load the module isdn.o, otherwise the naming conventions
are different. Tip: rename Urlichs isdn.o to uisdn.o ,
and change lib/modules/modules.isdn (or whatever the file is called
that lists the modules and is read by the script) accordingly.
Happily the default names of the ISDN devices are also different.
"Advice Of Charge During the Call".
"Advice of Charge at the End of the Call". In Germany, this service
is included in the "Komfort" connection.
CLIR (Calling Line Identification Restriction) can be offered by
the ISDN provider: one can (from call to call) restrict the identification
of one's own caller ID to the other party. In Germany, this must be applied
for but is without charge (however call by call transmission of the
caller ID costs extra).
COLP can also be offered by the ISDN provider. In Germany, it must be
applied for, and costs an extra 10.-- DM per month. If you've applied
for COLP, you get an extended dialing protocol that, for example, can be
evaluated in the PBX. Current the possibility is being worked on to get
around this with the help of a backwards-connected Teles card. One could
then get more information than with a running COLP without using any units.
That could quickly pay off...
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.
A widely used low-level protocol.
A Siemens chip, that similar to ISAC is on many passive cards.
It takes over the serial bus from ISAC and demultiplexes when
receiving or multiplexes (i.e. inserts the bits in the correct
position) the B channels.
A Siemens chip, that similar to HSCX is on many passive cards.
Et is responsible for "Level 1", so it sits (almost) directly on
the line. It handles the D channel protocol and sends the
S0 data to a special serial bus (IOM). When sending it does the
opposite.
The local switching station, or with an internal S0 the PBX, automatically
or permanently assigns each end device a TEI. This simply allows
the addressing of the D channels. TEIs have the following values:
0- 63 permanent TEIs (e.g. 0 is used for PBX connections)
64-126 automatically assigned
127 call for all (e.g. an incoming call)
A PBX is used to connect different internal devices to the
ISDN network. This is usually for analog devices.
that cannot be directly connected to an ISDN network.
The PBX can also make an internal digital S0 bus available,
on which ISDN devices can be connected.
Try out port 0x080h, DIP-SW in the undocumented
position!
dial rejected: interface not in dialmode `auto'
isdnctrl dialmode ippp0 auto
1. HiSax has to be patched into the kernel
(Attention: use the "-pn" parameter!)
2. With "make menuconfig" (or "make config") set the following
kernel options :
* ISDN = "M" (as module - otherwise PNP doesn't work!)
* HiSax = "M" (as module - otherwise PNP doesn't work!)
* 16.3/PNP support
* EURO support
3. Compile and install kernel and modules, depmod. (Reboot!)
4. Read the configuration of the PNP card with:
"pnpdump > /etc/isapnp.conf".
5. The configuration file "/etc/isapnp.conf" has to be set by hand.
Set the following values:
INT0 - the interrupt used by the card
(Default for Teles 16.3 PNP: 10)
IO0, IO1 - the IO ports used by the card
(Default for Teles 16.3 PNP: 0x580 and 0x180)
(Attention: these values must be 64-bit aligned! Early
versions of the PNP cards my suggest incorrect values!)
6. Activate the configuration with:
"isapnp /etc/isapnp.conf"
(must be started at every boot)
7. Now the HiSax module can be started with:
"modprobe hisax io=4,<P>,<INT>,<IO0>,<IO1>"
4 - PNP card
<P> - Protocol:
2 - for Euro-ISDN (normally)
1 - for 1TR6-ISDN (German predecessor to Euro-ISDN)
<INT> - the value in etc/isapnp.conf for INT0
<IO0> - the value in etc/isapnp.conf for IO0
<IO1> - the value in etc/isapnp.conf for IO1
On my computer I've defined 2 run levels (3 and 4), 3 runs without ISDN,
4 with. If I want to quit ISDN with all the associated processes like
ipppd, isdnlog and mgetty, as root I enter "init 3"; and to start "init
4". init then makes sure with "/sbin/init.d/i4l start" or
"... stop" that the necessary things are done.
That's no problem - we've done that for a while now.
- Simply set up an ISDN interface.
- Important: encap isdnX ethernet
The rest is done by "mars_nwe" (incl. routing).
By default, kerneld unloads a module after it has not been needed for one
minute. This is no problem for device drivers ala floppy, etc., but it is
a problem for drivers that need to keep settings over a longer period
of time, e.g. the mixer settings for a sound card or the configuration of
dialin and dialout parameters for ISDN. Unloading the ISDN drivers also
kills the IP interface ippp0 or isdn0. The entries in the IP layer of the
kernel then disappear. If you look in the start-up scripts for i4l,
you'll a lot of things that are configured with isdnctrl, etc.; they
would have to be reconfigured by kerneld each time the module is
reloaded. The status of the D channel could also be lost. Therefore, my
recommendation is not to use kerneld, rather load the modules at start-up
and only unload if necessary for some technical reason.
For some time now there has been an extension to the modules package just
for this purpose; it allows the installation of a databank with the
current status of the modules. Unfortunately, this feature usually not
supported by the modules. An alternative are such options as the
"post-install" hook in "/etc/conf.modules". It would then be necessary to
write the appropriate scripts by hand, but in principle that would work
just as well as the modules automatically using the initializations
settings from a database.
After finding the patch from Eberhard Moenkeberg at ftp.gwdg.de cannot
dump cisco HDLC, I made my own patch for
tcpdump-3.0.4 that asks the interface which
encapsulation it used and sets itself accordingly. The patch is
against a tcpdump-3.0.4-1.tar.gz distribution, for example at
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/tools.
This patch recognizes rawIP, ISDN-IP and CISCO-HDLC and can
dump these packets.
This is a isdn4k-utils-2.0/tcpdump-3.0.3-isdn.diff ! It work,
if one makes some changes:
In the file tcpdump-3.0.3-isdn/libpcap-0.0/pcap-linux.c after patching
you find the following:
else if (strncmp("ppp", device, 3) == 0)
Either you name your ppp devices pppX instead of ipppX, or
change this line, e.g.
else if (strncmp("ippp", device, 4) == 0)
^^^^ ^^
Then tcpdump will also recognize syncPPP. At least it does for me.
chgrp isdn /dev/ttyI* /dev/cui*
chmod o-rw /dev/ttyI* /dev/cui*
* Telephone * Analogue modem (used for data, fax or voice mailbox) * Dialin for X.75 (modem emulation) * Dialin for syncPPP
- Telephony (voice) - VBOX (voice, of course) - X.75 login (mgetty, /dev/ttyI?) - IP interface for IP connections to other computers?
The first comes from the PBX and is not checked.
The second is that assigned by the Telekom.
Here I had calls where a Siemens employee from Munich called
in with a long Caller ID with a Berlin area code (030).
I called the Telekom to ask what was going on; they didn't know
either until they found somewhat competent who told me that
it's allowed.
"CLIP no screening". The caller has the feature (which costs extra
and is only available with the "Komfort" PBX connection(!)),
that allows him to transmit any Caller ID he chooses.
The addresses actually used are:
isac 980
hscx 180/580
cfg d80
The confusion is the result of a misunderstanding. Teles gives the
HSCX0 address as a reference, while the old Teles driver needs the
cfg address. Since users were confused by this, both driver can
now use either address (which confuses the users even further ;-))
#define NEW_GET_FREE_PAGES
/* #define NEW_GET_FREE_PAGES */
/* #define NEW_TIMERS */
struct IsdnCard cards[]={
{ (byte *)0xd0000,11,0xd00,NULL } ,
/* 1. Karte */ { (byte *)0xd8000,10,0xe80,NULL } ,
/* 2. Karte */ ...
/* u.s.w. */
};
# load modules
/sbin/modprobe isdn.o
echo "teles0 - Teles S0/16.2"
/sbin/insmod $MODPATH/misc/teles.o -o teles0 teles_id=teles0
io=0xd0000,5,0xd80,2
echo "teles1 - Teles S0/16.2"
/sbin/insmod $MODPATH/misc/teles.o -o teles1 teles_id=teles1
io=0xd2000,9,0xe80,2
echo "teles2 - Teles S0/16.2"
/sbin/insmod $MODPATH/misc/teles.o -o teles2 teles_id=teles2
io=0xd4000,12,0xf80,2
/sbin/lsmod | grep teles > /dev/null
If you want to read more about Teles's business practices, look at
http://www.inx.de/~chris/isdn.htm
HiSax checks the hardware and the behavior of the IRQ, so that the
driver will only be loaded if it can access the register and the
interrupts can be generated.
THEREFORE:
loading twice is taken care of
HSCX version 0 or F is taken care of
BUSY with minicom only if :
* REALLY BUSY
* no MSN/EAZ
* cable/line problems
It can never hurt to first backup the original kernel sources.
Then go to /usr/src/linux (where the current source should be.
The patch itself:
zcat HiSax_1.1.patch.gz |patch -p1 >& /tmp/HiSax.log
The -p1 is very important, otherwise all files will end up in new
directories under /usr/src/linux.
Then look at /tmp/HiSax.log for errors/warnings/rejects, if there are
any then look at those files and correct by hand, if necessary.
If you have Gnu Patch, you can also use "... |patch -s -p1 ". Then
_only_ the errors will be reported. If you want a log, you can also
"... |patch -s -p1 | tee /tmp/HiSax.log". Then you get a logfile in
addition to the screen output.
The patches (until the next version) will be "numbered" with letters
and be available via FTP.
1. The above statement is not quite correct:
if ((channel &1)+1 == B-channel )
2. I described the bug the other way around: if B channel 1 is
being used by another ISDN device and i4l dials out, then the
logical channel 0 from the VST is assigned B channel 2 ---> OK
The other ISDN device hangs up. Another call comes in for i4l,
this time on B channel 1. Since channel 0 is taken, and there is
a fixed order B1->chan 0,2,4... B2->chan 1,3,5... the call is
not accepted. (chan 2,3 is for 2 cards, etc.) This happens only
seldomly, and will be fixed soon (if I get a brilliant idea).
l1 is down
=> both LEDs blink ca. 1s on 1s off.
l1 is activated (also though the telephone or whatever)
=> Blink in sequence 0.5 yellow 0.5 green
In use
=> 1.5 on 0.5 off
green HSCX A active
yellow HSCX B active
The constant blinking is caused when the card hangs, as I noticed
during development.
Thinking Objects Software GmbH Obere Heerbergstr. 17 97078 Würzburg Germany Tel: +49-931-2877950 Fax: +49-931-2877951 email isdn-support@think.de WWW http://www.think.de/
The newest firmware should be available under the URL
ftp://ftp.think.de/pub/isdn4linux/firmware/
/sbin/insmod -m /lib/modules/1.2.13/misc/isdn.o >/etc/isdn.map
/sbin/insmod -m /lib/modules/1.2.13/misc/icn.o >/etc/icn.map
/sbin/insmod -m -o icn2 /lib/modules/1.2.13/misc/icn.o >/etc/icn2.map
/sbin/insmod -m /lib/modules/`uname -r`/misc/isdn.o > /etc/isdn.map
#
# ICN-2B, default port and mem (0x320, 0xd0000)
#
/sbin/insmod -m /lib/modules/`uname \
-r`/misc/icn.o icn_id=icn0 > /etc/icn.map
#
# ICN-4B inserted at port 0x328
#
/sbin/icnctrl add 0x328 icn1 icn2
#
# Another ICN-4B at port 0x300
#
/sbin/icnctrl add 0x300 icn3 icn4
#
# Load firmware
# ICN-2B: 1TR6
# 1. ICN-4B, both S0 EDSS1
# 2. ICN-4B, 1. S0: 1TR6, 2. S0: EDSS1
#
/sbin/icnctrl -d icn0 \
load /etc/loadpg.bin /etc/pc_1t_ca.bin
/sbin/icnctrl -d icn1 \
load /etc/loadpg.bin /etc/pc_eu_ca.bin /etc/pc_eu_ca.bin
/sbin/icnctrl -d icn3 \
load /etc/loadpg.bin /etc/pc_1t_ca.bin /etc/pc_eu_ca.bin
I use the following script to "start" the card:
#!/bin/sh
#
# load modules
/sbin/modprobe isdn.o
/sbin/modprobe icn.o icn_id=icn0 icn_id2=icn2
# ^^^^^^^^^^^^
# Important here is the entry for
# icn_id2. Then the driver recognizes,
# that a 4B should be used.
#
# download firmware
cd /usr/src/isdn4k-utils-1.3.97/icn
icnctrl load download/loadpg.bin download/pc_1t_ca.bin \
download/pc_1t_ca.bin
/sbin/isdnctrl verbose 2
modprobe icn icn_id=line0 icn_id2=line1 icnctrl io 0xd0000 0x340
icnctrl add 0x340 line0 line1
icnctrl load /sw/linux-i386/isdn4kutils-2.0.0/lib/loadpg.bin \
/sw/linux-i386/isdn4kutils-2.0.0/lib/pc_1t_ca.bin \
/sw/linux-i386/isdn4kutils-2.0.0/lib/pc_1t_ca.bin
For EDSS1:
DRV1.11EC-Q.931-CAPI-CNS-BETA-15.07.95,BRV2.3
For 1TR6:
DRV1.01TC-1TR6-CAPI-CNS-BETA-03.05.95,BRV2.3
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 /
----------------------------------------------------
Modem network: yes. This might also be possible with CINDI,
WISPA etc. from Herbert Hahnewinkel (costs ca 80 DM per license, and
every user needs one), but I didn't spend the money.
use AVMPort (Capi modem emulation for Win' 95), important: on
Win 0.95 "Register on network" should be turned on.
Control Panels/Software/Diskette CD-ROM Admin/Apptools/Dscript
- Script administration for modem networks (after installing
see Start/Programs/Utilities)
So that the script receives something, with ISDN turn echo. With
the AVMPort put E1 in the init string.
When you call the Mac, he should set the protocol to X.75 or HDLC.
When he calls you, he must explicitly set the protocol (e.g.
by inserting an "X" for X.75) in the called number - otherwise the Mac
might call with the Leonardo protocol.
isdnctrl l2_prot <interface> hdlc
isdnctrl l3_prot <interface> trans
isdnctrl encap <interface> cisco-h
isdnctrl addif <interface>
Since Cisco-IOS 11.0.x (x = 7 is the only one I know about) I've had no
more problems with Cisco <-> HDLC <-> non-Cisco. That applies for netgw
as well as i4l and Banzai! on the other side, although in each case the
special Cisco HDLC options are important.
Until yesterday we had problems with AVM+W95 and Mini Port driver
(PPP with PAP). The Ascend took the call and 3-4 sec later hung up.
In the Ascend Log is just Call refused, which isn't right, since
the Ascend did take the call... With a new firmware on the
Ascend (4.6C+) instead of 4.6B+p2, the problem seems to be gone.
Since before we had another RACK (from ITK) that did _not_ behave
this way with our customers, I'm assuming that is was the Ascend.
New firmware for the Ascend can be found at
ftp://ftp.ascend.com/
or
ftp://ftp.ascend.de/
although you have to pay very close attention that you are taking the
correct image!
subscribe [my mail alias address] ascend-users-de
subscribe ascend-users-de
There is a more widely subscribed mailing list on Ascend.
It is in English (so Ascend technicians also read and send
messages there).
One can subscribe at:
majordomo@bungi.com
In the message body:
subscribe ascend-users
It could by, that the Authentication Type works this way, however
I use password "Ascend-CLID" to do this.
An entry in the users file has to look like this:
69123456 Password="Ascend-CLID"
User-Name = "Username"
User-Service = Framed-User
That means, the Caller ID as username, and "Ascend-CLID" as Password.
[...] Here I have several clean connections every day to a
EL310, I poll using ifcico FIDO with it. Here is the config
for the Elink:
ati Elink 310 Version 1.36 OK ati4
Baudrate: 115k2,N
SIN unbekannt: Ruf annehmen
Anschaltung: EDSS1
SIN ungleich &B: Ruf annehmen
Betriebsart: X.75
SIN gesendet: neutral
Mehrfachrufnummer: 980031
E1 M1 Q0 V1 X2 &B049 &C1 &D2 &R0 &S1
\A3 \J0 \N3 \Q3 \V1 %A013 %C1 %F1 FCLASS=000
S00=000 S01=000 S02=043 S03=013
S04=010 S05=008 S06=002 S07=040
S08=003 S09=000 S10=007 S11=000
S12=050 S13=01010000B S14=10011010B S15=00001110B
S16=10110011B S17=049 S18=013 S19=003
S20=000 S21=00000100B S22=000 S23=006
S24=120 S25=128 S26=016 S27=002
S28=003 S29=128 S30=000 S31=000
OK
(the same works of course with a modem. However, the initializing
sequence looks different.)
Step 1: Get diald. I don't know where to find it - ask archie.
(diald is used to set a default route to a physically
non-existent SLIP or CSLIP connection; when packets are set to
this pseudo-interface, diald establishes the (C)SLIP connection;
which packets start the connections and when/how the connection
is terminated can all be configured.) Then install the binary and
config files (you can use the sample files as they are, but if
you want e.g. ping to start a connection, you need to make minor
changes, the timeouts can also be adjusted as needed - simply
try it out).
Step 2: Use a kernel with integrated SLIP/CSLIP or with SLIP/CSLIP
modules (which has to be loaded, of course).
Step 3: Isdn4Linux also has to be installed, of course; the important
part is the modem emulation (ttyIX),
Step 4: Start diald, e.g. with the following script (I call it
/etc/rc.d/rc.diald.t-online):
/usr/sbin/diald /dev/ttyI2 -m aslip local 192.168.90.9 \
remote 192.168.90.1 defaultroute dynamic modem crtscts \
lock speed 38400 connect "chat -v -f /etc/diald/t-online" \
mtu 1500 dslip-mode local-remote
(This can also be sensibly written in a _single_ line :-)
Step 5: Write the script, I call it "etc/diald/t-online".
Looks something like this:
TIMEOUT 30
ABORT "NO CARRIER"
ABORT ERROR
ABORT "NO DIALTONE"
ABORT BUSY
ABORT "NO ANSWER"
ABORT "NO MSN/EAZ"
"" ATZ
OK AT&B2000&E<MyMSN>&X1
OK ATD01910
CONNECT .
"[?25h" <ZugangsKennung>\c
"[?25h" ""
"[?25h" ""
"[?25h" <passwort>
"[?25h" *53#\c
"[?25h" *190144100#\c
"[?25h" 19\c
"STATUS OK" LIN
"" "OK"
Certain place holders need to be replaced, of course:
<MyMSN> is the MSN, that you want to explore the world with.
<Zugangskennung>: The digit monster than usually begins with "000..."
that has been given to you by the Telekom.
<passwort>: The password.
This example script assumes that the default "Anschlußnummer" and
"Mitbenutzernummer" are used. If this is not the case, you have to
adjust the two lines before "[?25h" <passwort> accordingly. For example,
for the Mitbenutzernummer "0003", the line before "[?25h" <passwort>
should read:
"[?25h" 0003\c
(since the entry field is full after "0003", no CR is entered
afterwards) When diald is running, an interface "sl0" should
suddenly be available (ask ifconfig), and the default route
should point to it (route -n will tell you; without "-n", "route"
will try to resolve the fantasy IP addresses (which are later
replaced with real addresses) - we don't need it do to
that). Those who don't work only with numeric addresses, but also
want to successfully try to "ftp ftp.sunsite.edu", should of
course enter a name server in /etc/resolv.conf (one from the
Telekom has the address 94.25.2.129). Then start ftp, telnet,
netscape, whatever. That's it. By the way, diald will write
novels in your syslog. You can read the entire login procedure,
even if it looks somewhat chaotic. If a request doesn't work, use
"kill" to stop diald (routes will be automatically erased) and
check the syslog - if there is something like "Zur Zeit keine
verbindung möglich", then the Telekom's gateway is down. Or
perhaps the login is incorrect... watch out, after three
unsuccessful login attempts, the login will be closed and has to
be reactivated (either per telephone or directly from BTX
(e.g. seyon or minicom, dial 01910, slowly go through the login
screen by hand and follow the instructions).
In the mentioned version of chat, there is a small mistake in logf():
it keeps writing in a 256 byte buffer until a line feed comes in.
"T-Offline" sends many more bytes for its login page. Therefore, either
use chat without -v or enlarge the bugger (best with capacity checking).
* No handshaking
=> faster connections
* Authorization by Caller ID
=> fast, safe, no password
* Fixed IP address
=> a broken connection can be continued by redialing
* Higher data transfer rates
* Better stability (smaller driver => almost no bugs)
* No handshaking
=> Configuration must occur beforehand (IP addresses,...)
=> sensible to use for only for one provider at a time
* Authorization only by Caller ID
=> Dialin only possible from one's own number
* Fixed IP address
=> must be known ahead of time, more IP addresses required,
no dynamic assignment of addresses possible.
tail -f /var/log/messages |
awk '/isdn0 connected/ { system ("ip-up") }
/hangup isdn0/ { system ("ip-down") } '
(The following questions are mostly from the syncPPP FAQ by Michael Hipp.)
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
[...]
# PPPD for asyncPPP over ISDN
i1:45:respawn:/usr/sbin/pppd -detach silent noipdefault /dev/ttyI0
(The following questions are mostly from the syncPPP FAQ by Michael Hipp.)
/sbin/isdnctrl encap ippp0 syncppp
"isdnctrl pppbind <interface> <number>"
"isdnctrl pppbind ippp5 2"
/sbin/ipppd :$REMOTE noipdefault /dev/ippp0
lcp-restart 1
1. Your LAN is an official Class C net with IP addresses valid on
the Internet.
This case is the easiest of configure. You give each network
card on your network one of these addresses and set a
default route on the ISDN card that goes to your
provider.
2. You'd only like to do http in Internet from your LAN.
In this case you can make up IP addresses for your LAN;
the only official IP address is that for your ISDN card.
Then install a proxy server on your Linux router, and
enter it in all of your browsers. In this case you do
not need a default route.
3. From your LAN you only want to log in to your Linux ISDN
router and FROM THERE do your work on the Internet.
This is even simpler, then you don't even need a proxy
server.
There is a fourth possibility I'd like to add, although I've
never tried it out (since I prefer the 1st choice and have a
a Class C Subnet, hehe ;), but I have a friend who after
some playing with the Linux kernel has actually gotten IP
masquerading to work.
It works somewhat like a proxy (when looking at the effect of
hiding the IP). It doesn't offer any caching, of course, but
masks to the outside all internal IPs with that of the ISDN
interface. Don't ask me how the routing functions, but it
works...
If I'm not completely mistaken, my friend does this with a
dynamically assigned IP ?!
The following instructions were assembled by Rainer May
<r_may@khavi.desaster.heide.de>.
Prompt for development and/or incomplete code/drivers Y
Enable loadable module support Y
Networking support Y
Network firewalls Y
TCP/IP networking Y
IP: forwarding/gatewaying Y
IP: firewalling Y
IP: masquerading Y
PPP (point-to-point) support (if you PPP to the ISP) Y
SLIP (serial line) support Y
Ethernet (10 or 100Mbit) (or Arcnet or ...) Y
ISDN support [1] M
Support synchronous PPP (if you're using ipppd) Y
HiSax SiemensChipSet driver support M
(Then select the HiSax support)
(You can also choose to make a kernel with build in ISDN support
instead of modules)
Then do a "make dep", "make zImage", "make modules" and "make
modules_install" to build the kernel. The installation of ISDN and PPP is
explained somewhere else in this FAQ. We now continue with the following
assumptions:
* The ISDN system is operational; you can build a connection to your ISP.
* The LAN is operational (i.e. Ethernet or Arcnet) and IP addresses
have been assigned (i.e. 192.168.xx.xx). The Linux box can be reached by
the other computers (i.e. by ping).
Now we need to accomplish two things:
* A computer in the LAN with a "non-local" IP address will request the
Linux router to establish a connection to the provider
* The Linux router itself will connect the computers in the LAN to the
provider. It will also "hide" the computers in the LAN from the ISP, and
all the IP packets will appear to come from or go to the router. While in
fact the are coming from the computers in the LAN.
We'll start with the second one: This hiding doesn't mean we're trying
to cheat our provider. (Although it is possible to provide "clients" with
a cheap connection to the Internet). It is required technically. Only the
IP address of the Linux box is known to the provider. So the Linux box must
"mask" all the packet with it's own IP address and keep track of which
computer in the LAN sent which packet so the it can return the
incoming packets to the correct computer in the LAN. Luckily this
function is built in kernels>=2.0.0 and is called "IP-Masquerading". Here's
how it works:
A computer on the LAN sends a packet that contains (next to the IP address
and target port of the receiver) it's own sender address (in IP form) and
an answering port. The masquerading Linux router will replace this address
with it's own and the answering port with a free one. Under this free port
the sender address is stored. Now when a packet comes in from the Internet
the receiver address and port gets overwritten with the return address and
port and the packet is send to the correct computer in the LAN. Packet for
packet. This only works if the application sends along a return address,
telnet, http, (irc, tcp differently) all do this (ping doesn't work).
To get TCP and IRC to work while masquerading 2 modules need to be loaded:
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
/sbin/ipfwadm -F -a m -P all -S 192.168.123.0/24 -D 0.0.0.0/0 -b
The way I see it, that doesn't matter, the computers in the LAN will
continue to communicate over the fake IP addresses. You can test this by
turning off your Linux box (shutdown). Nothing will happen. This is because
masquerading is a forwarding rule in the firewall and will only be used
when forwarding (literally "passing on"). On the LAN nothing is forwarded
so nothing is masqueraded, unless you have multiple Ethernet cards in one
computer then you need to enter some extra firewall rules.
#!/usr/bin/perl
select((select(STDOUT), $| = 1)[$[]);
select((select(STDIN), $| = 1)[$[]);
exec "cu","-E","''", "-l", "$ARGV[0]";
die "$0: Cannot exec cu: $!\n";
modem 20006/tcp modemd # Modem service via TCP
isdn 20007/tcp modemd # ISDN service via TCP
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.
B 3 -- RX+ 2a ---------------\
U 4 -- TX+ 1a -- open ------------
S 5 -- TX- 1b -- open ------------ card
6 -- RX- 2b ---------------/
#!/bin/bash
#ISDNBUTTON: Disconnect ISDN
/sbin/isdnctrl list isdn0 | grep Outgoing | grep -q 0251XYZ &&
/sbin/isdnctrl delphone isdn0 out 0251XYZ
/sbin/isdnctrl hangup isdn0
exit 0
#!/bin/bash
#ISDNBUTTON: Connect ISDN
/sbin/isdnctrl list isdn0 | grep Outgoing | grep -q 0251925020 ||
/sbin/isdnctrl addphone isdn0 out 0251925020
exit 0
GREEN - at least one ISDN connection is active. Unfortunately
I'm unable to check how the connection was activated.
It doesn't have to be a network connection, and can
also be an incoming connection (at least for me, it would
be useful to distinguish these).
YELLOW- no active ISDN connection was found, but at least one
ISDN interface has an outgoing telephone number for
demand dialing. There is therefore the "danger" that
a connection will occur automatically.
RED - Neither of the above is true. This usually means that
a) the kernel doesn't recognize ISDN, or the ISDN
subsystem is not active, or
b) the outgoing ISDN connections are deactivated.
(Most of the answers you will find here are taken from the vbox manual by
Matthias Hessler <hessler@wi-inf.uni-essen.de> and
Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>; you can get the manual at:
http://www.lrz-muenchen.de/~ui161ab/www/isdn/
- click on "Audio!" (still in German we're afraid - sorry...)
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0
#/AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login kdebug 7 debug
<login-name> * ""
* * ""
MSN Analog Digital
=== ====== =======
1 Voice + ISDN answering machine HDLC, PPP
2 Voice (Mother) Net interface
3 Modem/Fax X.75
There seems to be a lot of routers with 1 BRI, those that have more
are expensive (Cisco 4000 with four connection about DM 15000.--,
Ascend Pipeline 400: ?).
ISDN routers with 4xBRI are less expensive from a German
manufacturer - see http://www.conware.de/
A Banzai! might also help. As hardware any PC with (e.g.) Teles
cards would work, the software costs around 800-1000 DM. Axgetty 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.
cat xxx > /dev/audio
sox <file>.wav -r 8000 <file>.ul rate
rmdcatheader -u <file.ul> > <file>.msg
cat <file>.ul >> <file>.msg
At boot "diald" is configured:
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp \
local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
In /etc/ppp/chat.provider the following entry is made:
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret
(phone number, name and password are fictional)
I use chargeint, it works great; for me charge units come during the
connections, but I think that can be adjusted by hand. The two patches in
isdnlog-2.50/contrib/chargeint are for the kernel sources and for
isdn4k-utils-2.0; then compile isdn with the -Dchargeint flag (see
Makefile). The kernel and isdnctrl of course also have to be recompiled.
Then start isdnlog with the -hx option, where x is the number of seconds
left until the next charge unit. Then chargeint will hang up. In the
start script for ISDN, define a huptimeout as usual to activate the
chargeint:
/sbin/isdnctrl huptimeout ippp0 80 # in sec;
if needed /sbin/isdnctrl chargeint ippp0
The chargeint always hangs up two seconds before the end of the charge
unit. isdnlog, if compiled with -Dchargeint, sets the length of the
charge unit (i.e. Charge Interval) according to the time of day and the
date. An additional parameter for "-h" will reduce this length of time by
the given value. This additional parameter should not be used with
chargeint, otherwise chargeint will end the connection too early. This
error increases with the number of charge units. Therefore: "-h0" to
avoid this problem.
> /sbin/isdnctrl huptimeout ippp0 80 # in sec;
In this example is can be much short; I use 5 seconds. Then I can use the
last charge unit up the last 7 seconds (huptimeout + 2 seconds
"chargeint reserve").
> /sbin/isdnctrl chargeint ippp0
Not needed; taken care of with by isdnlog with "-h".
1. Apply the patch "isdnlog-2.50/contrib/chargeint/patch-chargeint-2.04"
to the kernel, rebuild the kernel and reboot.
2. Patch isdn4k-utils-2.0 with
"isdnlog-2.50/contrib/chargeint/patch-chargeint-kutils",
make clean; make install
3. In etc/isdnlog/isdnlog.conf" enter the appropriate interface
in column 4 for those partners you wish to add, and double check
that the zone entries are correct.
4. In the "Makefile" for isdnlog, insert "-DCHARGEINT" for "COPTS",
make clean; make install
5. start isdnlog the additional option "-h0", done!
#
# ISDN Lines
#
I0:56:respawn:/usr/local/sbin/mgetty ttyI0
I1:56:respawn:/usr/local/sbin/mgetty ttyI1
port ttyI0
modem-type data
speed 38400
init-chat "" ATZ OK AT&E0 OK AT&B512 OK
i0:45:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&E0 OK AT&B512 OK'
-s 38400 ttyI0