1README for the ISDN-subsystem 2 31. Preface 4 5 1.1 Introduction 6 7 This README describes how to set up and how to use the different parts 8 of the ISDN-subsystem. 9 10 For using the ISDN-subsystem, some additional userlevel programs are 11 necessary. Those programs and some contributed utilities are available 12 at 13 14 ftp.isdn4linux.de 15 16 /pub/isdn4linux/isdn4k-utils-<VersionNumber>.tar.gz 17 18 19 We also have set up a mailing-list: 20 21 The isdn4linux-project originates in Germany, and therefore by historical 22 reasons, the mailing-list's primary language is german. However mails 23 written in english have been welcome all the time. 24 25 to subscribe: write a email to majordomo@listserv.isdn4linux.de, 26 Subject irrelevant, in the message body: 27 subscribe isdn4linux <your_email_address> 28 29 To write to the mailing-list, write to isdn4linux@listserv.isdn4linux.de 30 31 This mailinglist is bidirectionally gated to the newsgroup 32 33 de.alt.comm.isdn4linux 34 35 There is also a well maintained FAQ in English available at 36 http://www.mhessler.de/i4lfaq/ 37 It can be viewed online, or downloaded in sgml/text/html format. 38 The FAQ can also be viewed online at 39 http://www.isdn4inux.de/faq/ 40 or downloaded from 41 ftp://ftp.isdn4linux.de/pub/isdn4linux/FAQ/ 42 43 1.1 Technical details 44 45 In the following Text, the terms MSN and EAZ are used. 46 47 MSN is the abbreviation for (M)ultiple(S)ubscriber(N)umber, and applies 48 to Euro(EDSS1)-type lines. Usually it is simply the phone number. 49 50 EAZ is the abbreviation of (E)ndgeraete(A)uswahl(Z)iffer and 51 applies to German 1TR6-type lines. This is a one-digit string, 52 simply appended to the base phone number 53 54 The internal handling is nearly identical, so replace the appropriate 55 term to that one, which applies to your local ISDN-environment. 56 57 When the link-level-module isdn.o is loaded, it supports up to 16 58 low-level-modules with up to 64 channels. (The number 64 is arbitrarily 59 chosen and can be configured at compile-time --ISDN_MAX in isdn.h). 60 A low-level-driver can register itself through an interface (which is 61 defined in isdnif.h) and gets assigned a slot. 62 The following char-devices are made available for each channel: 63 64 A raw-control-device with the following functions: 65 write: raw D-channel-messages (format: depends on driver). 66 read: raw D-channel-messages (format: depends on driver). 67 ioctl: depends on driver, i.e. for the ICN-driver, the base-address of 68 the ports and the shared memory on the card can be set and read 69 also the boot-code and the protocol software can be loaded into 70 the card. 71 72 O N L Y !!! for debugging (no locking against other devices): 73 One raw-data-device with the following functions: 74 write: data to B-channel. 75 read: data from B-channel. 76 77 In addition the following devices are made available: 78 79 128 tty-devices (64 cuix and 64 ttyIx) with integrated modem-emulator: 80 The functionality is almost the same as that of a serial device 81 (the line-discs are handled by the kernel), which lets you run 82 SLIP, CSLIP and asynchronous PPP through the devices. We have tested 83 Seyon, minicom, CSLIP (uri-dip) PPP, mgetty, XCept and Hylafax. 84 85 The modem-emulation supports the following: 86 1.3.1 Commands: 87 88 ATA Answer incoming call. 89 ATD<No.> Dial, the number may contain: 90 [0-9] and [,#.*WPT-S] 91 the latter are ignored until 'S'. 92 The 'S' must precede the number, if 93 the line is a SPV (German 1TR6). 94 ATE0 Echo off. 95 ATE1 Echo on (default). 96 ATH Hang-up. 97 ATH1 Off hook (ignored). 98 ATH0 Hang-up. 99 ATI Return "ISDN for Linux...". 100 ATI0 " 101 ATI1 " 102 ATI2 Report of last connection. 103 ATO On line (data mode). 104 ATQ0 Enable result codes (default). 105 ATQ1 Disable result codes (default). 106 ATSx=y Set register x to y. 107 ATSx? Show contents of register x. 108 ATV0 Numeric responses. 109 ATV1 English responses (default). 110 ATZ Load registers and EAZ/MSN from Profile. 111 AT&Bx Set Send-Packet-size to x (max. 4000) 112 The real packet-size may be limited by the 113 low-level-driver used. e.g. the HiSax-Module- 114 limit is 2000. You will get NO Error-Message, 115 if you set it to higher values, because at the 116 time of giving this command the corresponding 117 driver may not be selected (see "Automatic 118 Assignment") however the size of outgoing packets 119 will be limited correctly. 120 AT&D0 Ignore DTR 121 AT&D2 DTR-low-edge: Hang up and return to 122 command mode (default). 123 AT&D3 Same as AT&D2 but also resets all registers. 124 AT&Ex Set the EAZ/MSN for this channel to x. 125 AT&F Reset all registers and profile to "factory-defaults" 126 AT&Lx Set list of phone numbers to listen on. x is a 127 list of wildcard patterns separated by semicolon. 128 If this is set, it has precedence over the MSN set 129 by AT&E. 130 AT&Rx Select V.110 bitrate adaption. 131 This command enables V.110 protocol with 9600 baud 132 (x=9600), 19200 baud (x=19200) or 38400 baud 133 (x=38400). A value of x=0 disables V.110 switching 134 back to default X.75. This command sets the following 135 Registers: 136 Reg 14 (Layer-2 protocol): 137 x = 0: 0 138 x = 9600: 7 139 x = 19200: 8 140 x = 38400: 9 141 Reg 18.2 = 1 142 Reg 19 (Additional Service Indicator): 143 x = 0: 0 144 x = 9600: 197 145 x = 19200: 199 146 x = 38400: 198 147 Note on value in Reg 19: 148 There is _NO_ common convention for 38400 baud. 149 The value 198 is chosen arbitrarily. Users 150 _MUST_ negotiate this value before establishing 151 a connection. 152 AT&Sx Set window-size (x = 1..8) (not yet implemented) 153 AT&V Show all settings. 154 AT&W0 Write registers and EAZ/MSN to profile. See also 155 iprofd (5.c in this README). 156 AT&X0 BTX-mode and T.70-mode off (default) 157 AT&X1 BTX-mode on. (S13.1=1, S13.5=0 S14=0, S16=7, S18=7, S19=0) 158 AT&X2 T.70-mode on. (S13.1=1, S13.5=1, S14=0, S16=7, S18=7, S19=0) 159 AT+Rx Resume a suspended call with CallID x (x = 1,2,3...) 160 AT+Sx Suspend a call with CallID x (x = 1,2,3...) 161 162 For voice-mode commands refer to README.audio 163 164 1.3.2 Escape sequence: 165 During a connection, the emulation reacts just like 166 a normal modem to the escape sequence <DELAY>+++<DELAY>. 167 (The escape character - default '+' - can be set in the 168 register 2). 169 The DELAY must at least be 1.5 seconds long and delay 170 between the escape characters must not exceed 0.5 seconds. 171 172 1.3.3 Registers: 173 174 Nr. Default Description 175 0 0 Answer on ring number. 176 (no auto-answer if S0=0). 177 1 0 Count of rings. 178 2 43 Escape character. 179 (a value >= 128 disables the escape sequence). 180 3 13 Carriage return character (ASCII). 181 4 10 Line feed character (ASCII). 182 5 8 Backspace character (ASCII). 183 6 3 Delay in seconds before dialing. 184 7 60 Wait for carrier. 185 8 2 Pause time for comma (ignored) 186 9 6 Carrier detect time (ignored) 187 10 7 Carrier loss to disconnect time (ignored). 188 11 70 Touch tone timing (ignored). 189 12 69 Bit coded register: 190 Bit 0: 0 = Suppress response messages. 191 1 = Show response messages. 192 Bit 1: 0 = English response messages. 193 1 = Numeric response messages. 194 Bit 2: 0 = Echo off. 195 1 = Echo on. 196 Bit 3 0 = DCD always on. 197 1 = DCD follows carrier. 198 Bit 4 0 = CTS follows RTS 199 1 = Ignore RTS, CTS always on. 200 Bit 5 0 = return to command mode on DTR low. 201 1 = Same as 0 but also resets all 202 registers. 203 See also register 13, bit 2 204 Bit 6 0 = DSR always on. 205 1 = DSR only on if channel is available. 206 Bit 7 0 = Cisco-PPP-flag-hack off (default). 207 1 = Cisco-PPP-flag-hack on. 208 13 0 Bit coded register: 209 Bit 0: 0 = Use delayed tty-send-algorithm 210 1 = Direct tty-send. 211 Bit 1: 0 = T.70 protocol (Only for BTX!) off 212 1 = T.70 protocol (Only for BTX!) on 213 Bit 2: 0 = Don't hangup on DTR low. 214 1 = Hangup on DTR low. 215 Bit 3: 0 = Standard response messages 216 1 = Extended response messages 217 Bit 4: 0 = CALLER NUMBER before every RING. 218 1 = CALLER NUMBER after first RING. 219 Bit 5: 0 = T.70 extended protocol off 220 1 = T.70 extended protocol on 221 Bit 6: 0 = Special RUNG Message off 222 1 = Special RUNG Message on 223 "RUNG" is delivered on a ttyI, if 224 an incoming call happened (RING) and 225 the remote party hung up before any 226 local ATA was given. 227 Bit 7: 0 = Don't show display messages from net 228 1 = Show display messages from net 229 (S12 Bit 1 must be 0 too) 230 14 0 Layer-2 protocol: 231 0 = X75/LAPB with I-frames 232 1 = X75/LAPB with UI-frames 233 2 = X75/LAPB with BUI-frames 234 3 = HDLC 235 4 = Transparent (audio) 236 7 = V.110, 9600 baud 237 8 = V.110, 19200 baud 238 9 = V.110, 38400 baud 239 10 = Analog Modem (only if hardware supports this) 240 11 = Fax G3 (only if hardware supports this) 241 15 0 Layer-3 protocol: 242 0 = transparent 243 1 = transparent with audio features (e.g. DSP) 244 2 = Fax G3 Class 2 commands (S14 has to be set to 11) 245 3 = Fax G3 Class 1 commands (S14 has to be set to 11) 246 16 250 Send-Packet-size/16 247 17 8 Window-size (not yet implemented) 248 18 4 Bit coded register, Service-Octet-1 to accept, 249 or to be used on dialout: 250 Bit 0: Service 1 (audio) when set. 251 Bit 1: Service 5 (BTX) when set. 252 Bit 2: Service 7 (data) when set. 253 Note: It is possible to set more than one 254 bit. In this case, on incoming calls 255 the selected services are accepted, 256 and if the service is "audio", the 257 Layer-2-protocol is automatically 258 changed to 4 regardless of the setting 259 of register 14. On outgoing calls, 260 the most significant 1-bit is chosen to 261 select the outgoing service octet. 262 19 0 Service-Octet-2 263 20 0 Bit coded register (readonly) 264 Service-Octet-1 of last call. 265 Bit mapping is the same as register 18 266 21 0 Bit coded register (readonly) 267 Set on incoming call (during RING) to 268 octet 3 of calling party number IE (Numbering plan) 269 See section 4.5.10 of ITU Q.931 270 22 0 Bit coded register (readonly) 271 Set on incoming call (during RING) to 272 octet 3a of calling party number IE (Screening info) 273 See section 4.5.10 of ITU Q.931 274 23 0 Bit coded register: 275 Bit 0: 0 = Add CPN to RING message off 276 1 = Add CPN to RING message on 277 Bit 1: 0 = Add CPN to FCON message off 278 1 = Add CPN to FCON message on 279 Bit 2: 0 = Add CDN to RING/FCON message off 280 1 = Add CDN to RING/FCON message on 281 282 Last but not least a (at the moment fairly primitive) device to request 283 the line-status (/dev/isdninfo) is made available. 284 285 Automatic assignment of devices to lines: 286 287 All inactive physical lines are listening to all EAZs for incoming 288 calls and are NOT assigned to a specific tty or network interface. 289 When an incoming call is detected, the driver looks first for a network 290 interface and then for an opened tty which: 291 292 1. is configured for the same EAZ. 293 2. has the same protocol settings for the B-channel. 294 3. (only for network interfaces if the security flag is set) 295 contains the caller number in its access list. 296 4. Either the channel is not bound exclusively to another Net-interface, or 297 it is bound AND the other checks apply to exactly this interface. 298 (For usage of the bind-features, refer to the isdnctrl-man-page) 299 300 Only when a matching interface or tty is found is the call accepted 301 and the "connection" between the low-level-layer and the link-level-layer 302 is established and kept until the end of the connection. 303 In all other cases no connection is established. Isdn4linux can be 304 configured to either do NOTHING in this case (which is useful, if 305 other, external devices with the same EAZ/MSN are connected to the bus) 306 or to reject the call actively. (isdnctrl busreject ...) 307 308 For an outgoing call, the inactive physical lines are searched. 309 The call is placed on the first physical line, which supports the 310 requested protocols for the B-channel. If a net-interface, however 311 is pre-bound to a channel, this channel is used directly. 312 313 This makes it possible to configure several network interfaces and ttys 314 for one EAZ, if the network interfaces are set to secure operation. 315 If an incoming call matches one network interface, it gets connected to it. 316 If another incoming call for the same EAZ arrives, which does not match 317 a network interface, the first tty gets a "RING" and so on. 318 3192 System prerequisites: 320 321 ATTENTION! 322 323 Always use the latest module utilities. The current version is 324 named in Documentation/Changes. Some old versions of insmod 325 are not capable of setting the driver-Ids correctly. 326 3273. Lowlevel-driver configuration. 328 329 Configuration depends on how the drivers are built. See the 330 README.<yourDriver> for information on driver-specific setup. 331 3324. Device-inodes 333 334 The major and minor numbers and their names are described in 335 Documentation/devices.txt. The major numbers are: 336 337 43 for the ISDN-tty's. 338 44 for the ISDN-callout-tty's. 339 45 for control/info/debug devices. 340 3415. Application 342 343 a) For some card-types, firmware has to be loaded into the cards, before 344 proceeding with device-independent setup. See README.<yourDriver> 345 for how to do that. 346 347 b) If you only intend to use ttys, you are nearly ready now. 348 349 c) If you want to have really permanent "Modem"-settings on disk, you 350 can start the daemon iprofd. Give it a path to a file at the command- 351 line. It will store the profile-settings in this file every time 352 an AT&W0 is performed on any ISDN-tty. If the file already exists, 353 all profiles are initialized from this file. If you want to unload 354 any of the modules, kill iprofd first. 355 356 d) For networking, continue: Create an interface: 357 isdnctrl addif isdn0 358 359 e) Set the EAZ (or MSN for Euro-ISDN): 360 isdnctrl eaz isdn0 2 361 362 (For 1TR6 a single digit is allowed, for Euro-ISDN the number is your 363 real MSN e.g.: Phone-Number) 364 365 f) Set the number for outgoing calls on the interface: 366 isdnctrl addphone isdn0 out 1234567 367 ... (this can be executed more than once, all assigned numbers are 368 tried in order) 369 and the number(s) for incoming calls: 370 isdnctrl addphone isdn0 in 1234567 371 372 g) Set the timeout for hang-up: 373 isdnctrl huptimeout isdn0 <timeout_in_seconds> 374 375 h) additionally you may activate charge-hang-up (= Hang up before 376 next charge-info, this only works, if your isdn-provider transmits 377 the charge-info during and after the connection): 378 isdnctrl chargehup isdn0 on 379 380 i) Set the dial mode of the interface: 381 isdnctrl dialmode isdn0 auto 382 "off" means that you (or the system) cannot make any connection 383 (neither incoming or outgoing connections are possible). Use 384 this if you want to be sure that no connections will be made. 385 "auto" means that the interface is in auto-dial mode, and will 386 attempt to make a connection whenever a network data packet needs 387 the interface's link. Note that this can cause unexpected dialouts, 388 and lead to a high phone bill! Some daemons or other pc's that use 389 this interface can cause this. 390 Incoming connections are also possible. 391 "manual" is a dial mode created to prevent the unexpected dialouts. 392 In this mode, the interface will never make any connections on its 393 own. You must explicitly initiate a connection with "isdnctrl dial 394 isdn0". However, after an idle time of no traffic as configured for 395 the huptimeout value with isdnctrl, the connection _will_ be ended. 396 If you don't want any automatic hangup, set the huptimeout value to 0. 397 "manual" is the default. 398 399 j) Setup the interface with ifconfig as usual, and set a route to it. 400 401 k) (optional) If you run X11 and have Tcl/Tk-wish version 4.0, you can use 402 the script tools/tcltk/isdnmon. You can add actions for line-status 403 changes. See the comments at the beginning of the script for how to 404 do that. There are other tty-based tools in the tools-subdirectory 405 contributed by Michael Knigge (imon), Volker G�tz (imontty) and 406 Andreas Kool (isdnmon). 407 408 l) For initial testing, you can set the verbose-level to 2 (default: 0). 409 Then all incoming calls are logged, even if they are not addressed 410 to one of the configured net-interfaces: 411 isdnctrl verbose 2 412 413 Now you are ready! A ping to the set address should now result in an 414 automatic dial-out (look at syslog kernel-messages). 415 The phone numbers and EAZs can be assigned at any time with isdnctrl. 416 You can add as many interfaces as you like with addif following the 417 directions above. Of course, there may be some limitations. But we have 418 tested as many as 20 interfaces without any problem. However, if you 419 don't give an interface name to addif, the kernel will assign a name 420 which starts with "eth". The number of "eth"-interfaces is limited by 421 the kernel. 422 4235. Additional options for isdnctrl: 424 425 "isdnctrl secure <InterfaceName> on" 426 Only incoming calls, for which the caller-id is listed in the access 427 list of the interface are accepted. You can add caller-id's With the 428 command "isdnctrl addphone <InterfaceName> in <caller-id>" 429 Euro-ISDN does not transmit the leading '0' of the caller-id for an 430 incoming call, therefore you should configure it accordingly. 431 If the real number for the dialout e.g. is "09311234567" the number 432 to configure here is "9311234567". The pattern-match function 433 works similar to the shell mechanism. 434 435 ? one arbitrary digit 436 * zero or arbitrary many digits 437 [123] one of the digits in the list 438 [1-5] one digit between '1' and '5' 439 a '^' as the first character in a list inverts the list 440 441 442 "isdnctrl secure <InterfaceName> off" 443 Switch off secure operation (default). 444 445 "isdnctrl ihup <InterfaceName> [on|off]" 446 Switch the hang-up-timer for incoming calls on or off. 447 448 "isdnctrl eaz <InterfaceName>" 449 Returns the EAZ of an interface. 450 451 "isdnctrl delphone <InterfaceName> in|out <number>" 452 Deletes a number from one of the access-lists of the interface. 453 454 "isdnctrl delif <InterfaceName>" 455 Removes the interface (and possible slaves) from the kernel. 456 (You have to unregister it with "ifconfig <InterfaceName> down" before). 457 458 "isdnctrl callback <InterfaceName> [on|off]" 459 Switches an interface to callback-mode. In this mode, an incoming call 460 will be rejected and after this the remote-station will be called. If 461 you test this feature by using ping, some routers will re-dial very 462 quickly, so that the callback from isdn4linux may not be recognized. 463 In this case use ping with the option -i <sec> to increase the interval 464 between echo-packets. 465 466 "isdnctrl cbdelay <InterfaceName> [seconds]" 467 Sets the delay (default 5 sec) between an incoming call and start of 468 dialing when callback is enabled. 469 470 "isdnctrl cbhup <InterfaceName> [on|off]" 471 This enables (default) or disables an active hangup (reject) when getting an 472 incoming call for an interface which is configured for callback. 473 474 "isdnctrl encap <InterfaceName> <EncapType>" 475 Selects the type of packet-encapsulation. The encapsulation can be changed 476 only while an interface is down. 477 478 At the moment the following values are supported: 479 480 rawip (Default) Selects raw-IP-encapsulation. This means, MAC-headers 481 are stripped off. 482 ip IP with type-field. Same as IP but the type-field of the MAC-header 483 is preserved. 484 x25iface X.25 interface encapsulation (first byte semantics as defined in 485 ../networking/x25-iface.txt). Use this for running the linux 486 X.25 network protocol stack (AF_X25 sockets) on top of isdn. 487 cisco-h A special-mode for communicating with a Cisco, which is configured 488 to do "hdlc" 489 ethernet No stripping. Packets are sent with full MAC-header. 490 The Ethernet-address of the interface is faked, from its 491 IP-address: fc:fc:i1:i2:i3:i4, where i1-4 are the IP-addr.-values. 492 syncppp Synchronous PPP 493 494 uihdlc HDLC with UI-frame-header (for use with DOS ISPA, option -h1) 495 496 497 NOTE: x25iface encapsulation is currently experimental. Please 498 read README.x25 for further details 499 500 501 Watching packets, using standard-tcpdump will fail for all encapsulations 502 except ethernet because tcpdump does not know how to handle packets 503 without MAC-header. A patch for tcpdump is included in the utility-package 504 mentioned above. 505 506 "isdnctrl l2_prot <InterfaceName> <L2-ProtocolName>" 507 Selects a layer-2-protocol. 508 (With the ICN-driver and the HiSax-driver, "x75i" and "hdlc" is available. 509 With other drivers, "x75ui", "x75bui", "x25dte", "x25dce" may be 510 possible too. See README.x25 for x25 related l2 protocols.) 511 512 isdnctrl l3_prot <InterfaceName> <L3-ProtocolName> 513 The same for layer-3. (At the moment only "trans" is allowed) 514 515 "isdnctrl list <InterfaceName>" 516 Shows all parameters of an interface and the charge-info. 517 Try "all" as the interface name. 518 519 "isdnctrl hangup <InterfaceName>" 520 Forces hangup of an interface. 521 522 "isdnctrl bind <InterfaceName> <DriverId>,<ChannelNumber> [exclusive]" 523 If you are using more than one ISDN card, it is sometimes necessary to 524 dial out using a specific card or even preserve a specific channel for 525 dialout of a specific net-interface. This can be done with the above 526 command. Replace <DriverId> by whatever you assigned while loading the 527 module. The <ChannelNumber> is counted from zero. The upper limit 528 depends on the card used. At the moment no card supports more than 529 2 channels, so the upper limit is one. 530 531 "isdnctrl unbind <InterfaceName>" 532 unbinds a previously bound interface. 533 534 "isdnctrl busreject <DriverId> on|off" 535 If switched on, isdn4linux replies a REJECT to incoming calls, it 536 cannot match to any configured interface. 537 If switched off, nothing happens in this case. 538 You normally should NOT enable this feature, if the ISDN adapter is not 539 the only device connected to the S0-bus. Otherwise it could happen that 540 isdn4linux rejects an incoming call, which belongs to another device on 541 the bus. 542 543 "isdnctrl addslave <InterfaceName> <SlaveName> 544 Creates a slave interface for channel-bundling. Slave interfaces are 545 not seen by the kernel, but their ISDN-part can be configured with 546 isdnctrl as usual. (Phone numbers, EAZ/MSN, timeouts etc.) If more 547 than two channels are to be bundled, feel free to create as many as you 548 want. InterfaceName must be a real interface, NOT a slave. Slave interfaces 549 start dialing, if the master interface resp. the previous slave interface 550 has a load of more than 7000 cps. They hangup if the load goes under 7000 551 cps, according to their "huptimeout"-parameter. 552 553 "isdnctrl sdelay <InterfaceName> secs." 554 This sets the minimum time an Interface has to be fully loaded, until 555 it sends a dial-request to its slave. 556 557 "isdnctrl dial <InterfaceName>" 558 Forces an interface to start dialing even if no packets are to be 559 transferred. 560 561 "isdnctrl mapping <DriverId> MSN0,MSN1,MSN2,...MSN9" 562 This installs a mapping table for EAZ<->MSN-mapping for a single line. 563 Missing MSN's have to be given as "-" or can be omitted, if at the end 564 of the commandline. 565 With this command, it's now possible to have an interface listening to 566 mixed 1TR6- and Euro-Type lines. In this case, the interface has to be 567 configured to a 1TR6-type EAZ (one digit). The mapping is also valid 568 for tty-emulation. Seen from the interface/tty-level the mapping 569 CAN be used, however it's possible to use single tty's/interfaces with 570 real MSN's (more digits) also, in which case the mapping will be ignored. 571 Here is an example: 572 573 You have a 1TR6-type line with base-nr. 1234567 and a Euro-line with 574 MSN's 987654, 987655 and 987656. The DriverId for the Euro-line is "EURO". 575 576 isdnctrl mapping EURO -,987654,987655,987656,-,987655 577 ... 578 isdnctrl eaz isdn0 1 # listen on 12345671(1tr6) and 987654(euro) 579 ... 580 isdnctrl eaz isdn1 4 # listen on 12345674(1tr6) only. 581 ... 582 isdnctrl eaz isdn2 987654 # listen on 987654(euro) only. 583 584 Same scheme is used with AT&E... at the tty's. 585 5866. If you want to write a new low-level-driver, you are welcome. 587 The interface to the link-level-module is described in the file INTERFACE. 588 If the interface should be expanded for any reason, don't do it 589 on your own, send me a mail containing the proposed changes and 590 some reasoning about them. 591 If other drivers will not be affected, I will include the changes 592 in the next release. 593 For developers only, there is a second mailing-list. Write to me 594 (fritz@isdn4linux.de), if you want to join that list. 595 596Have fun! 597 598 -Fritz 599 600