grazie Leonzio, comunque sia la scheda, sia l'interfaccia, sia il provider sono già ben configurati... 
posto il mio script d'avvio (/etc/init.d/isdn), magari puo' chiarire un po' le cose...
codice:
#!/bin/bash
# Copyright (c) 2002-2005 SuSE Linux Products GmBH, Nuernberg, Germany.
# All rights reserved.
#
# /etc/init.d/isdn
#
# (c) Karsten Keil, SuSE Linux AG, Nuernberg <kkeil@suse.de>
#
# Version: 1.5 14.03.2005
# Maintainer: kkeil@suse.de
#
#
### BEGIN INIT INFO
# Provides: isdn
# Required-Start:
# Required-Stop: $network
# X-UnitedLinux-Should-Stop: hylafax smpppd capisuite
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: This script is loading the needed ISDN drivers
### END INIT INFO
usage() {
test -n "$1" && echo $1
echo "Usage: $0 <ACTION> [INTERFACE] [OPTIONS]"
echo "ACTION:={start|stop|status|reload|force-reload|try-restart|restart}"
echo "OPTIONS:={-o onboot|hotplug|manual|all}"
}
# Force MODE=onboot if started via init
# else MODE=manual
if test -z "$INIT_VERSION" ; then
MODE=manual
else
MODE=onboot
fi
. /etc/rc.status
ACTION=$1
shift
AFTER_ACTION=$@
CONTR_FILES=""
test $# -gt 0 -a "$1" != "-o" && CONTR_FILES=cfg-$1
shift
test "$1" = "-o" && shift
OPTIONS=$@
while [ $# -gt 0 ]; do
case $1 in
boot|onboot) MODE=onboot ;;
hotplug) MODE=hotplug ;;
manual) MODE=manual ;;
all) MODE=all ;;
*) usage "unknown option $1" ;;
esac
shift
done
SBIN=/sbin
# test for program is here and executable (will fail if /usr is not mounted)
# I only check one and not all used
test -x $SBIN/hisaxctrl || exit 5
cd /etc/sysconfig/isdn
test -f scripts/functions && . scripts/functions
test -f config && . config
# find all ISDN controller configuration files.
# These files start with contr- and do # not contain a '.' or '~'.
test -z "$CONTR_FILES" && ALL_CONTR=yes
test -z "$CONTR_FILES" && for c in cfg-contr* ; do
case $c in
*~*|*.*)
# drop backup files, rpm{save,new,orig}
;;
*)
CONTR_FILES="$CONTR_FILES $c"
;;
esac
done
#echo "CONTR_FILES = $CONTR_FILES"
rc_reset
case "$ACTION" in
start)
MESSAGE="Setting up ISDN card"
test -c /dev/ippp0 || . scripts/mkdev.sh
set -- $CONTR_FILES
for CONTR in "${@#cfg-contr}"; do
ID="contr${CONTR}"
test -f "cfg-${ID}" || continue
STARTMODE=manual
. cfg-${ID}
echo -n "$MESSAGE $ID $NAME"
test_startmode
RET=$?
if [ $RET -eq 0 ]; then
test "$MODE" = "hotplug" || test_driver_loaded $DRIVER
RET=$?
if [ $RET -eq 10 ]; then
echo -n " ${warn}$DRIVER busy${norm}"
RET=1
fi
if [ $RET -eq 15 ]; then
echo -n " in use"
RET=0
fi
elif [ $RET -eq 99 ]; then
# MODE = all with hotplug, if device is here (driver loaded)
# execute to catch first configure (all is used by yast)
test_driver_loaded $DRIVER
RET=$?
if [ $RET -ne 10 ]; then
RET=5
else
RET=0
fi
fi
if [ $RET -eq 0 ]; then
test_driver_loaded
if [ -x scripts/add-$DRIVER ] ; then
. scripts/add-$DRIVER
else
LOAD_CONTR="$LOAD_CONTR $CONTR"
RET=0
fi
fi
rc_failed $RET
rc_status -v
MESSAGE=" "
done
CONTR_CNT=0
test -n "$LOAD_CONTR" && for CONTR in $LOAD_CONTR; do
MESSAGE="Loading Driver"
ID="contr$CONTR"
echo -n "${MESSAGE} ${ID}"
. cfg-${ID}
RET=0
if [ -x scripts/load-$DRIVER ] ; then
. scripts/load-$DRIVER
else
/sbin/modprobe $DRIVER $PARAMETER
RET=$?
if [ -n "$EAZMAP" ]; then
I4L_EAZMAP_$CONTR="${ID} ${EAZMAP}"
I4L_EAZMAP_IDX="$I4L_EAZMAP_IDX $CONTR"
fi
fi
if [ $RET -ge 6 ]; then
RET=1;
fi
rc_failed $RET
rc_status -v
done
MESSAGE="Mapping EAZ"
test -n "$I4L_EAZMAP_IDX" && for idx in $I4L_EAZMAP_IDX; do
echo -n "${MESSAGE} contr${idx}"
eval I4L_EAZMAP=\$I4L_EAZMAP_$idx
$SBIN/isdnctrl mapping $I4L_EAZMAP >& /dev/null
RET=$?
rc_failed $RET
rc_status -v
MESSAGE=" "
done
# reload smpppd if exist
test -x /etc/init.d/smpppd && \
/etc/init.d/smpppd reload >& /dev/null
;;
stop)
# due to races and also for speedup we do not unload drivers
echo -n "Stopping ISDN "
# terminate isdnlog now, it should flush data to disk
killall -15 isdnlog
rc_failed 0
rc_status -v
;;
unload)
set -- $CONTR_FILES
unset REMOVE_DRV
unset REMOVE_EXTRA
MESSAGE="Unloading ISDN driver "
echo -n "${MESSAGE}"
# if some other monitor processes are running
fuser -k /dev/isdninfo >> /dev/null
RET=$?
FCNT=0
while [ "$RET" = "0" -a $FCNT -lt 10 ]; do
echo -n "."
FCNT=$(($FCNT + 1))
fuser /dev/isdninfo >> /dev/null
RET=$?
done
RET=0
for CONTR in "${@#cfg-contr}"; do
ID="contr$CONTR"
test -f cfg-${ID} || continue
unset DISABLE
. cfg-${ID}
unset FOUND
for drv in $REMOVE_DRV ; do
test "$drv" = "$DRIVER" && FOUND="yes"
done
test -n "$FOUND" || REMOVE_DRV="$REMOVE_DRV $DRIVER"
kill_isdnlog ${ID}
test -x scripts/stop-$DRIVER && . scripts/stop-$DRIVER
done
echo -n "${REMOVE_DRV}"
RET=0
if [ -n "$REMOVE_DRV" -o -n "$REMOVE_EXTRA" ] ; then
RETSTRING=`/sbin/modprobe -r $REMOVE_DRV $REMOVE_EXTRA 2>&1`
RET=$?
if [ $RET -ne 0 ]; then
case "$RETSTRING" in
*"busy"*)
RET=1
echo -n " ${warn}busy${norm}"
;;
*"not loaded"*)
RET=0
echo -n " (not loaded)"
;;
*)
RET=1
;;
esac
fi
fi
rc_failed $RET
rc_status -v
;;
status)
echo -n "Checking for service isdn: "
grep -q ttyI /proc/devices || rc_failed 3
rc_status -v
;;
try-restart)
$0 status >/dev/null && $0 restart
rc_status
;;
restart|force-reload)
$0 stop $AFTER_ACTION
$0 unload $AFTER_ACTION
$0 start $AFTER_ACTION
rc_status
;;
reload)
;;
*)
usage "unknown action $ACTION"
exit 1
esac
rc_exit