Next Previous Contents

10. dialout: Configuration of Dial-Out

10.1 dialout_config: How do I configure dialout properly?

First you have to decide on how you want to dial out. You will have to use whatever your counterpart requires. These are your main options:

Have a look on section dod on how to configure dial on demand - and on the dangers attached to it.

For more advanced dialout features see question dialout_advanced.

Also you may have a look at section remote when you try to connect to a special remote ISDN device.

10.2 dialout_dialmode: When an IP packet should go over the link (which usually triggers a dialout), all I see in the log is: "dial rejected: interface not in dialmode auto"?

The new ISDN drivers in 2.0.36 defaults to manual dialmode, not autodial. This is done to prevent unexpected (and unnoticed) dialouts. (See the big section about those and their dangers: dod). To enable autodial for a given interface e.g. ippp0, use


isdnctrl dialmode ippp0 auto

The meaning of the values for dialmode is:

off

means that you (or the system) cannot make any connection (neither incoming nor outgoing connections are possible). Use this if you want to be sure that no connections will be made.

auto

means that the interface is in auto-dial mode, and will attempt to make a connection whenever a network data packet needs the interface's link. Note that this can cause unexpected dialouts, and lead to a high phone bill! Some daemons or other pc's that use this interface can cause this. Incoming connections are also possible.

manual

(DEFAULT) is a dial mode created to prevent the unexpected dialouts. In this mode, the interface will never make any connections on its own. You must explicitly initiate a connection with:


isdnctrl dial ippp0

To end the connection, use:
isdnctrl hangup ippp0

Please note that the huptimeout may still end the connection automatically! To ensure that you have to hang up manually, you have to switch this off:
isdnctrl huptimeout ippp0 0

To allow a normal user to initiate a dialout, have a look at question dialout_permission.

10.3 dialout_advanced: What special dialout features are available?

Check out these special dialout features:

10.4 dialout_permission: How can I allow a normal user to initiate dialouts?

ISDN usage depends on the permissions to the devices /dev/ttyI* and /dev/cui*. You have several choices to selectively allow users to do ISDN transactions.

  1. You can establish the group `isdn' in /etc/group, and do:
    chgrp isdn /dev/ttyI* /dev/cui*
    chmod o-rw /dev/ttyI* /dev/cui*
    

    It has been reported that you also may have to change group and permissions on the programs ipppd and isdnctrl to 'isdn'. Then all users not in the group 'isdn' have no reading or writing privileges for the ISDN ttys. Those allowed to use ISDN have to be explicitly added to the group 'isdn'.
  2. You can allow only root to log out, but set up exceptions for other users with the su1 functionality (see man su1). As root edit /etc/su1.priv. Add these lines if they (or similar ones) are not yet there, to allow users XXXX and YYYY to initiate dialups/hangups:
    # log all dialouts in syslog
    syslog all
    define PPPUSER XXXX YYYY
    alias dial /sbin/isdnctrl dial ippp0
    alias hangup /sbin/isdnctrl hangup ippp0
    ask never
    allow PPPUSER prefix dial
    allow PPPUSER prefix hangup
    

    Then create two links for dial and hangup:
    ln -s /usr/bin/su1 /usr/local/bin/dial
    ln -s /usr/bin/su1 /usr/local/bin/hangup
    

    Now the users XXXX and YYYY can dial out by typing dial, and hangup with hangup.
  3. isdnctrl can be set SETUID root. Please not that if it is called by a user different from root, isdnctrl will only allow you to dialin/hangup, and addlink/removelink/show. However, the setup/configuration data can only be modified by root.
  4. If you only have one user that you use for ISDN interactions, you can make him owner of the ISDN interface.

10.5 dialout_manycards: How do I configure dialout with more than 1 ISDN card?

There are several possibilities to configure dialout.

10.6 dialout_fixedchannel: How can I force HiSax to always dial out on a specific B channel?

HiSax has an undocumented feature for this. Add 'P1' in front of the dialout phone number for the first B channel, or 'P2' for the second B channel, like this:


isdnctrl addphone <device> out P1<your_out_number>

This will indicate the preferred B channel in the outgoing SETUP message. Please note that some PBX may not like this. Obviously, a dialout will fail when another device already uses the second B channel.

10.7 dialout_dynip: On dynamic ip assignment, how do I find out which ip address is being used for dialout?

Create a script called ip-up. It will be called by the ipppd whenever the connection is established with several parameters. The ip address is passed in as the fourth parameter (access it as $4).

10.8 dialout_bind: A dns query causes bind to dial out. Why does it take about a minute before it is answered? How do I work around it?

You are probably using the name server in 'forward' mode, and your ISP works with dynamic ip addresses. The initial UDP query will be lost since it carries the wrong source address. Unfortunately, bind will wait a whole minute before retransmitting the query again if you have only one forwarder.

As a workaround, you can enter 4 times the same forwarder in named.conf to adjust retransmission timing (in 'forward' mode, bind retransmits its queries after the following period of time: 60 seconds divided by the number of nameservers given in the section "forwarders" of named.conf).


forwarders { 10.0.0.40; 10.0.0.40; 10.0.0.40; 10.0.0.40; }

Bind will then retransmit the query every 15 seconds to your forwarder (here the forwarder is 10.0.0.40). The same principle applies to two or more forwarders.

Another option are the programs ip_resend and ip_resend_wakeup which you can find on: http://www.baty.hanse.de/ip_resend/


Next Previous Contents