---
name: "isdnctrl"
section: "8"
platform: "linux"
package: "isdnutils-base"
version: "1:3.25+dfsg1-10"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/isdnctrl"
---

# isdnctrl(8)

get/set ISDN device information

## NAME

isdnctrl - get/set ISDN device information

## SYNOPSIS

**isdnctrl** *action device* **...**

## DESCRIPTION

**isdnctrl** is used to create and delete network interfaces for ISDN, set up the various parameters and phone numbers for dial in and dial out. It is also used to list the current parameters of an already configured network interface. **isdnctrl** is **not** needed for configuration of ISDN ttys!

The use of **isdnctrl** is independent of the hardware driver.

## OPTIONS

The following  **actions** may be given to **isdnctrl**.

- **addif** *name*

  Adds a new ISDN interface *name* to the kernel. If *name* is omitted, the kernel will use **eth***X,* where *X* is an increasing number starting from 0. This is probably not useful with ISDN so using a name like **isdn0** (for raw ip interfaces) or **ippp0** (for synchronous PPP interfaces) is always recommended.

- **delif** *name* **\[force\]**

  Removes the ISDN interface *name* from the kernel. If the optional keyword **force** is appended, **isdnctrl** executes **ifconfig** *name* **down** before removing it.

- **reset \[force\]**

  Removes all ISDN interfaces from the kernel if it is possible. If the optional keyword **force** is appended, **isdnctrl** executes **ifconfig** *name* **down** before removing an interface.

- **ifdefaults** *name*

  resets the interface *name* to some reasonable defaults.

- **dialmode** *name* **\[***off***\|***manual***\|***auto***\]**

  Sets the dial mode of the interface to one of:

**off**\
 no connection can be made; an existing connection is terminated immediately. Incoming connections are also not possible.

**manual**\
 manual dialing / hangup; a connection will only be made after **isdnctrl dial** *name* but the line will be disconnected after the huptimeout value set if using kernel drivers updated since 1 Nov 1998; otherwise an explicit **isdnctrl hangup** *name* will be needed to cause the connection to be dropped.\
 Incoming connections are possible; however, if this interface is configured in **callback in** mode, the callback dial will not happen (as this is actually an outgoing connection, not an incoming one).

**auto**\
 autodial mode; an outgoing packet will trigger a dialout, and a hangup will occur after the huptimeout value specified (see below).\
 An interface in **auto** dial mode will call another system back (if configured in **callback in** mode).

**auto** was the "old" behaviour (as it was before **dialmode** was implemented).\

If no argument is given, the current dialmode value is displayed.\

You can give **all** as the interface name; the command will then be executed for all interfaces.

- **addphone** *name* **out** *num*

  Adds the phone number *num* to the list of outgoing numbers of the ISDN interface *name*. Numbers in this list are used to dial the remote station if the connection is down and packets are to be sent via the interface (Dial on demand). More than one number can be set by calling **isdnctrl addphone** repeatedly. If more than one number is set, these will be tried one after another (the last added number is tried first, etc.). When using a german SPV-type connection, the number has to be prefixed by a capital S.

- **addphone** *name* **in** *num*

  Adds the phone number *num* to the list of incoming numbers of the ISDN interface *name*. Numbers in this list are used to verify access permission of the remote station if an incoming call is received. The verification can be disabled by setting the interface into insecure mode using **isdnctrl** *name* **secure** *off.* If the list is empty, incoming calls are disabled. More than one number can be added by calling **isdnctrl addphone** repeatedly. Also wildcards can be used (see below).

- **delphone** *name* **in\|out** *num*

  Removes phone number *num* from the incoming or outgoing phone list.

- **eaz** *name* **\[***num***\]**

  Set the EAZ (German 1TR6 protocol) or MSN (Euro-ISDN E-DSS1) for ISDN interface *name* to *num*. For an EAZ this is only one digit, while for an MSN *num* is the whole MSN (usually the local phone number). If *num* is omitted, **isdnctrl** prints the current setting for ISDN interface *name*.

- **huptimeout** *name* **\[***seconds***\]**

  Set the hangup timeout for ISDN interface *name* to *seconds*. If there is inactivity (i.e. no traffic on the interface) for the given time the driver automatically shuts down the connection. If *seconds* is omitted **isdnctrl** prints the current setting for interface *name*.

- **cbdelay** *name* **\[***seconds***\]**

  Set the callback delay for ISDN interface *name* to *seconds*. If callback mode for this interface is **in**, dialing is delayed the given time. If the callback mode is **out**, after dialing out and waiting the given time, a hangup is issued to free the line for the incoming callback from the remote machine. This hangup-after-dial is disabled by setting **cbdelay** to 0. If *seconds* is omitted **isdnctrl** prints the current setting for interface *name*.

- **dialmax** *name* **\[***num***\]**

  Set the number of dial attempts for ISDN interface *name* to *num*. If dialing, each phone number is tried this many times before giving up. If *num* is omitted **isdnctrl** prints the current setting for interface *name*.

- **ihup** *name* **\[on\|off\]**

  Turn on or off the hangup timeout for incoming calls on interface *name*. If on or off is omitted the current setting is printed.

- **chargehup** *name* **\[on\|off\]**

  Turn on or off hangup before next charge info for interface *name*. This can only be used if the ISDN provider transmits charge info during and after the connection. If set to on, the driver will close the connection just before the next charge info will be received if the interface is inactive. If on or off is omitted the current setting is printed.

- **chargeint** *name* **\[***seconds***\]**

  If *seconds* are given, the charge interval for the given interface is set. This may be useful on ISDN lines with no chargeinfo or no online chargeinfo. The connection will be closed 2 seconds before the end of the next estimated charge interval if  *huptimeout* seconds of inactivity have been reached. If  *ihup* is **on**, incoming connections are closed by this mechanism also. On lines with online charge info you also might ask by  **chargeint** *name* for the current charge interval as delivered from the telecom on a given interface.

- **secure** *name* **\[on\|off\]**

  Turns on or off the security feature for interface  *name*. If set to **on**, incoming calls will only be accepted if the calling number can be found in the incoming access list. See description of action **addphone** for information about how to add numbers to this list. If **on** or **off** is omitted, the current setting is printed.

- **callback** *name* **\[***mode***\]**

  Set callback mode for interface  *name* to mode *mode*. If callback mode is **in**, then after getting an incoming call, a callback is triggered. If callback mode is **out**, then the local system does the initial call and then waits for callback of the remote machine. The option **on** is available only for compatibility with older versions. Its meaning is the same like **in**. If callback mode is **off**, calls are handled normally without special processing.

- **cbhup** *name* **\[on\|off\]**

  Turns on or off Hangup (Reject) for interface  *name* before starting callback. If cbhup is **on**, when receiving an incoming call, the interface first rejects that call before the callback sequence is started. If **on** or **off** is omitted, the current setting is printed.

- **encap** *name* **\[***encapsulation***\]**

  Set the encapsulation mode for interface *name*. Possible encapsulations are:

**rawip**\
 raw ip encapsulation (default)

**ip**\
 IP + typefield encapsulation

**cisco-h**\
 Special mode for communicating with a Cisco in HDLC-mode with Cisco-keepalive switched off.

**ethernet**\
 ethernet over ISDN (MAC-header included)

**syncppp**\
 Synchronous PPP over ISDN

**uihdlc**\
 raw ip with additional ui-header

**cisco-hk**\
 Special mode for communicating with a Cisco in HDLC-mode with Cisco-keepalive switched on.

**x25iface**\
 Provides an interface as required by the Linux X.25 PLP protocol implementation (requires Linux 2.1.x or newer).

If *encapsulation* is omitted, the current setting is printed.

- **l2\_prot** *name* **\[***protocol***\]**

  Set the layer-2 protocol for interface  *name*. Possible values for  *protocol* are:\
   **x75i**, **x75ui**, **x75bui** and **hdlc**. If *protocol* is omitted the current setting is printed.

- **l3\_prot name \[ protocol \]**

  Set the layer-3 protocol for interface  *name*. At the moment only **trans** is supported here. If *protocol* is omitted the current setting is printed.

- **list** *name*

  List all parameters and the charge info for interface *name*. If *name* is **all**, then all interfaces are listed.

- **status** *name*

  Show the connection status for interface *name*. The output can be one of the following types:

  **ippp0 not connected**\
   There is no connection

  **ippp0 connected to 0123456789**\
   There is an outgoing connection to phone number 0123456789

  **ippp0 connected from 0123456789**\
   There is an incoming connection from phone number 0123456789

  If the interface is connected, the exit status of the command is true, else it is false.\
   If *name* is **all**, then the connection status for all interfaces is shown. The exit status is always true in this case.\
   If *name* is **active**, then only those interfaces that are currently connected are shown. The exit status is always true in this case.

- **verbose** *num*

  Set verbosity level to *num*.

- **hangup** *name*

  The connection of interface *name* is closed immediately.

- **bind** *name driverId***,***channel* **\[exclusive\]**

  Binds an interface *name* to a physical channel. The *driverId* identifies a specific S0-Port. The channels of a port start counting with zero. If  **exclusive** is given, other interfaces cannot use that channel anymore. Otherwise, the channel may be used by other interfaces.

- **unbind** *name*

  Unbinds a the previously bound interface *name*.

- **pppbind** *name* **\[***num***\]**

  Binds the interface *name* to an ippp device **/dev/ippp***num***.** This works only for synchronous ppp. The value must be a number. If *num* is omitted and *name* is called **ippp***X* , then the interface is bound to **/dev/ippp***X***.**

- **pppunbind** *name*

  Unbinds the previously bound interface *name*.

- **busreject** *driverId* **\[on\|off\]**

  If switched **on**, instead of ignoring incoming calls not matching any interface, isdn4linux responds with a **REJECT** to those calls. If switched **off**, isdn4linux is passive, allowing other devices connected to the same S0-bus to answer the call. You normally should **not** enable this feature, if the ISDN adaptor is not the only device connected to the S0-bus. Otherwise it could happen, that isdn4linux rejects an incoming call which belongs to another device on the bus.

- **addslave** *name slave*

  Adds a slave interface named *slave* to interface *name* for raw channel-bundling. For bundling of more than two channels, any number of slaves can be added to an interface by using this command repeatedly. *name* must refer to an existing "master" interface (not a slave). Slave interfaces are not visible to the kernel, however all usual ISDN settings can be configured. Because slave interfaces are not visible to the kernel, they are configured "through" their "master", so **it is important** that slave interfaces are added **before** the corresponding "master" is started by **ifconfig**. If the "master" is already up, it has to be shutdown with **ifconfig down ...** otherwise the **addslave** command will be rejected.

- **sdelay** *name num*

  Set delay for slave-dialing. The master interface *name* has to have a load of more than **trigger** cps for at least *num* seconds, before its slave starts dialing.\
   Note that this only works for rawIP, not MPPP!

- **trigger** *name num*

  Set trigger level for slave-dialing. The master interface *name* has to have a load of more than *num* cps for at least **sdelay** seconds, before its slave starts dialing.\
   Note that this only works for rawIP, not MPPP!

- **addlink** *name*

  For MPPP, this adds a slave interface to the existing connection, i.e. connect the extra channel now. It is like a **dial** command for the extra channel.\
   This also means that **addlink** will only work if the master interface *name* must already be connected! Also, the **dialmode** for the slave interface must be *auto*.

- **removelink** *name*

  For MPPP, this removes a slave interface from the existing connection, i.e. hangup the extra channel now.

- **dial** *name*

  Force dialing of interface *name*.

- **mapping** *driverId MSN0***\[,***MSN1***\[,***MSN2***\]\] ... \[,***MSN9***\]**

  Installs a mapping-table for MSN\<-\>EAZ-mapping. See README for details.

## WILDCARDS

When using **isdnctrl addphone** *name* **in** *num* to add phone numbers to the incoming-call accept-list of an interface, wildcards similar to shell wildcards can be used. The following wildcards are supported:

- **?**

  one arbitrary digit

- **\***

  zero or arbitrary number of digits

- **\[***list***\]**

  one of the digits in *list*

- **\[***1***-***5***\]**

  one digit in the range of (including) *1* and *5*.

- **^**

  if this appears as the first character in a list, inverts the list.

## BUGS

This man page is not complete.

## AUTHOR

Fritz Elfert \<fritz@isdn4linux.de\>

## SEE ALSO

[**ttyI**(4)](/ttyI/4.md), [**isdnctrl**(4)](/isdnctrl/4.md), [**isdninfo**(4)](/isdninfo/4.md), [**isdn\_audio**(4)](/isdn_audio/4.md),  [**isdn\_cause**(7)](/isdn_cause/7.md).
