经常上网的用户肯定有类似经验,有时下载一个大文件花费了好几个小时,结果下载完后却发现由于线路质量差,误码率高,下载的文件不能使用。而使用ISDN几乎不会发生这种问题。由于ISDN采用端到端的数字连接,传输质量很高,它不会象模拟线路一样受到静电和噪音的影响。此外,由于ISDN中的数字设备便于故障检测,系统可靠性也得到提高。
使用灵活方便:
ISDN提供各种业务,用户只需一个入网接口,就能使用网络提供的各种业务。例如,您可以把电话和个人电脑接入ISDN,在上网的同时可以打电话。还可接入可视电话、会议电视、ISDN路由器等设备。由于这些设备均有相应的国际标准,可以象家用电器一样具有便携性,可以从一个插座上拔到另一个有插座的地方去使用。
总的来说,ISDN是一个非常成熟的技术,它必将以其优质的服务、平民化的价格将您带入一个全新的数字时代。
8.2 内置ISDN的安装
8.2.1 说明
内置ISDN卡的安装比较麻烦,造成这种情况的主要原因是卡的型号比较多,而内核支持的范围十分有限,所以,笔者向大家推荐上海贝尔出的几种,我们只需要重新编译内核,加上我们用ISDN的型号就可以啦。
8.2.2 配置
1. 内核配置文件
实例:
以下是我们需要的选项,由于现在市面上见到的所有中文Linux的发行版均不支持内置的ISDN,所以,我们要想用这个好东东只能自己动手啦。
在/usr/src/linux目录下执行make menuconfig,然后在ISDN项中选择一下选项:
<*> ISDN support
[*] Support synchronous PPP
[*] Use VJ-compression with synchronous PPP
[*] Support generic MP (RFC 1717)
[*] Support audio via ISDN
[*] HiSax Support for EURO/DSS1
[*] Support for german chargeinfo
[*] Disable sending complete
[*] Disable sending low layer compatibility
[*] HiSax Support for Teles 16.3 or PNP or PCMCIA
[*] HiSax Support for Winbond W6692 based cards
然后存盘退出,执行make dep,make clean,make bzImage,make modules,make modules_install,depmod -a,make install。
此时,新的核心已经生成啦,而我们老的核心并没有被删除,只是做了一个备份,要是有什么问题,还是可以恢复的。最后我们需要重新启动使得新内核生效。
2. isdn4k-utils-3.1beta7_mini-1.i386.rpm
这是一个支持内置ISDN的包,安装上之后,系统就会识别我们的内置卡了,当然,为了实现拨号,我们还需要写一个拨号脚本以及相应的挂断脚本,它们是isdnon和isdnstop。
3. isdnon
实例:
#!/bin/sh
echo -n E > /dev/ttyS1
modprobe hisax type=36 protocol=2
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
#Kill previous ipppd process
if [ -r /var/run/ipppd.ippp0.pid ]
then kill -9 `cat /var/run/ipppd.ippp0.pid`
fi
if [ -r /var/run/ipppd.ippp1.pid ]
then kill -9 `cat /var/run/ipppd.ippp1.pid`
fi
#Variables
MYIP=0.0.0.0
REMIP=0.0.0.0
MYMSN=62986638
REMMSN=169
MYUSER=169
REMNAME=169
#Init
/sbin/isdnctrl verbose 3
#/sbin/isdnlog -sS -v1 -m0x17d7 -l0x3d7 -C /dev/console -D /dev/isdnctrl
#Add and set ippp0
/sbin/isdnctrl system on
/sbin/isdnctrl addif ippp0
/sbin/isdnctrl eaz ippp0 $MYMSN
/sbin/isdnctrl addphone ippp0 out $REMMSN
/sbin/isdnctrl huptimeout ippp0 3600
/sbin/isdnctrl l2_prot ippp0 hdlc
/sbin/isdnctrl l3_prot ippp0 trans
/sbin/isdnctrl encap ippp0 syncppp
/sbin/isdnctrl dialmode ippp0 auto
#Add and set ippp1
/sbin/isdnctrl addslave ippp0 ippp1
/sbin/isdnctrl eaz ippp1 $MYMSN
/sbin/isdnctrl addphone ippp1 out $REMMSN
/sbin/isdnctrl huptimeout ippp1 3600
/sbin/isdnctrl l2_prot ippp1 hdlc
/sbin/isdnctrl l3_prot ippp1 trans
/sbin/isdnctrl encap ippp1 syncppp
/sbin/isdnctrl dialmode ippp1 auto
/sbin/ifconfig ippp0 -arp -broadcast
#Startup PPP
/sbin/ipppd user $MYUSER remotename $REMNAME \
lock \
noipdefault \
+mp \
ipcp-accept-local \
ipcp-accept-remote \
name $MYUSER \
-detach \
mru 552 \
mtu 552 \
lcp-restart 1 \
defaultroute \
/dev/ippp0 &
/sbin/ipppd user $MYUSER remotename $REMNAME \
lock \
noipdefault \
+mp \
ipcp-accept-local \
ipcp-accept-remote \
name $MYUSER \
-detach \
mru 552 \
mtu 552 \
lcp-restart 1 \
defaultroute \
/dev/ippp1 &
4. isdnstop
实例:
#!/bin/sh
echo -n G > /dev/ttyS1
ifconfig ippp0 down >/dev/null 2>&1
isdnctrl delif ippp0 >/dev/null 2>&1
killall -9 ipppd >/dev/null 2>&1
sleep 2
echo -n H > /dev/ttyS1
8.3 外置ISDN的安装
8.3.1 说明
由于现在最新的内核2.4.0-test6不支持USB接口的ISDN.所以,我们这里所说的外置ISDN指的是串口的.
安装串口ISDN的方法有许多种,笔者从自身实践中感觉,将ISDN当成Modem一样用比较方便,这样不需要安装其余RPM包,又不用设置DNS,所以将外置串口的ISDN当Modem用既简单,又实用.
8.3.2 配置
1./etc/ppp/isdndial
实例:
" " ATZ
OK ATX0
OK AT%B8
#启动双信道
OK "ATB31"
#有时候直接上双信道不成,所以在线路忙的时候可以注释掉这行