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