| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame^] | 1 | README for the ISDN-subsystem | 
 | 2 |  | 
 | 3 | 1. 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 |  | 
 | 319 | 2 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 |  | 
 | 327 | 3. 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 |  | 
 | 332 | 4. 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 |  | 
 | 341 | 5. 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 |  | 
 | 423 | 5. 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 |  | 
 | 586 | 6. 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 |  | 
 | 596 | Have fun! | 
 | 597 |  | 
 | 598 |  -Fritz | 
 | 599 |  |