第一章 代理接入服務器
第七節 ISDN撥號
7.1 簡 介
近兩年來,ISDN在我國蓬勃發展起來,各省市的電信部門相繼開通ISDN業務。尤其在上海、廣州、福州、北京等地,ISDN的發展趨勢更是勢不可擋。就上海來說,到今年5月份,ISDN用戶已達32,000。ISDN憑借其連接速度快、傳輸質量高等優勢正吸引著越來越多的用戶。
什麼是ISDN?
ISDN是綜合業務數字網的簡稱,它由電話綜合數字網(IDN)發展而來。ISDN是數字交換和數字傳輸的結合,它以迅速、准確、經濟、有效的方式提供目前各種通信網絡中現有的業務,而且將通信和數據處理結合起來,開創了很多前所未有的新業務。 ISDN是一個全數字的網絡,也就是說,不論原始信號是話音、文字、數據還是圖象只要可以轉換成數字信號,都能在ISDN網絡中進行傳輸。在傳統的電話網絡中,實現了網絡內部的數字化,但在用戶到電話局之間仍采用模擬傳輸,很容易由於沿途噪聲的積累引起失真。而對於ISDN來說,實現了用戶線的數字化,提供端到端的數字連接,傳輸質量大大提高。
由於ISDN實現了端到端的數字連接,它可以支持包括話音、數據、圖象等各種業務。隨著電子通信在全球不斷擴大,我們許多人需要和不同地區的用戶交換信息。而現在人們對通信的要求已經不僅是簡單的聲音交換,還需要共享各種格式的不同信息。例如,有些人需要高速數據和文件傳輸;有些人可能需要多媒體和會議電視;有些人則希望能訪問中央數據庫。ISDN的業務覆蓋了現有通信網的全部業務,例如傳真、電話、可視圖文、監視、電子郵件、可視電話、會議電視等,可以滿足不同用戶的需要。 ISDN還有一個基本特性是向用戶提供了標准的入網接口。用戶可以隨意地將不同業務類型的終端結合起來,連接到同一接口上,並且可以隨時改變終端類型。
ISDN主要有兩種類型:基本速率(BRI)和基群速率(PRI)。電信局向普通用戶提供的均為BRI接口,采用原有的雙絞線,速率可達144Kb/s。BRIISDN可在一對雙絞線上提供兩個B通道(每個64K)和一個D通道(16K),D通道用於傳輸信令,B通道則用於傳輸話音、數據等。一路電話只占用一個B通道,因此,在同時進行多種業務或對話。PRI接口速率為2.048Mb/s,用於需要傳輸大量數據的應用,如PBX,LAN互聯等。
ISDN能做些什麼?
ISDN可向用戶提供各種各樣的業務。目前CC99vT將ISDN的業務分為三類:承載業務,用戶終端業務和補充業務。
承載業務是ISDN網絡提供的信息傳送業務,它提供用戶之間的信息傳送而不改變信息的內容。常用的承載業務有:話音業務、3.1KHz音頻業務和不受限64K數字業務。打電話時一般采用話音業務,該種承載業務向網絡表明目前用戶是在打電話,網絡可以對其做語音壓縮、回波消除、數字話音插空等處理。3.1KHz音頻承載業務主要用於用調制解調器進行數據傳輸或用模擬傳真機發傳真的情況,這類業務可在網絡中對信號進行數模變換,但是其他形式的話音處理技術必須禁止。若要使用ISDN撥號上網,則需要用不受限64K數字業務,此時網絡對於傳送的數據不做任何處理。有時用戶若碰到申請的ISDN線路能打電話卻無法撥號上網的情況,即可能是由於線路上為開放不受限64K數據承載業務所致。
用戶終端業務是指所有面向用戶的應用業務,它即包含了網絡的功能,又包含了終端設備的功能。用戶可以使用電話、4類傳真、數據傳輸、會議電視等用戶終端業務,但均需要終端設備的支持。
補充業務則是ISDN網絡在承載業務和用戶終端業務的基礎上提供的其他附加業務,目的是為了給用戶提供更方便的服務。目前上海市電信局向用戶提供的補充業務有:多用戶號碼、子地址、主叫號碼顯示、呼叫等待、呼叫保持等。其中除多用戶號碼由於號碼資源緊張需每個月交納一定費用外,其他補充業務均為免費開放,當然首先您需要到電信局去申請這些業務。這些業務確實可給用戶帶來很大的方便。例如,呼叫等待業務可以使您在兩個電話同時使用時,外面電話還能打進來。呼叫保持則使您在打電話時,將現有的電話暫時掛起,去打新的電話或接聽其他電話,結束後在將原來的電話恢復。
為什麼要用ISDN?
無論是個人還是公司,ISDN都應成為您的首選。因為它有以下諸多好處:
價格便宜:
由於使用單一的網絡提供不同的業務,ISDN大大提高了網絡資源的利用率。用戶不必要購買不同的設備和線路接入不同的網絡。就上海來說,目前電信局對用戶推出ISDN優惠大套餐,只需花490元,即可獲得上海貝爾生產的智能網絡終端和ISDN適配卡,家中原有的模擬電話、傳真機等都可直接接入,通過ISDN適配卡可以128Kb/s的速率上網,所花的費用不到一塊56K調制解調器的價錢。而且每條ISDN線路的月租費為24元,與模擬電話線相同,卻可當兩條模擬線路使用,何樂而不為呢?
高速數據傳輸:
使用ISDN,最高數據傳輸速率可達128Kb/s,相對於現有電話網中的數據速率提高了好幾倍。對於因特網用戶來說,使用56K調制解調器時文件下載速率最快時在4KB/s左右,還需視網絡情況而定,而使用ISDN,若同時使用兩個B信道,下載文件是速率最快可達12KB/s左右,提高整整3倍!這樣,省下來的時間、電話費、上網費就相當可觀了。
高的傳輸質量:
經常上網的用戶肯定有類似經驗,有時下載一個大文件花費了好幾個小時,結果下載完後卻發現由於線路質量差,誤碼率高,下載的文件不能使用。而使用ISDN幾乎不會發生這種問題。由於ISDN采用端到端的數字連接,傳輸質量很高,它不會象模擬線路一樣受到靜電和噪音的影響。此外,由於ISDN中的數字設備便於故障檢測,系統可靠性也得到提高。
使用靈活方便:
ISDN提供各種業務,用戶只需一個入網接口,就能使用網絡提供的各種業務。例如,您可以把電話和個人電腦接入ISDN,在上網的同時可以打電話。還可接入可視電話、會議電視、ISDN路由器等設備。由於這些設備均有相應的國際標准,可以象家用電器一樣具有便攜性,可以從一個插座上拔到另一個有插座的地方去使用。
總的來說,ISDN是一個非常成熟的技術,它必將以其優質的服務、平民化的價格將您帶入一個全新的數字時代。
7.2 內置ISDN卡
內置ISDN卡的安裝比較麻煩,造成這種情況的主要原因是卡的型號比較多,而內核支持的范圍十分有限,所以,筆者向大家推薦上海貝爾出的幾種,我們只需要重新編譯內核,加上我們用ISDN的型號就可以啦。
7.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 SiemensChipSet driver support
[*] 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。
此時,新的核心已經生成啦,而我們老的核心並沒有被刪除,只是做了一個備份,要是有什麼問題,還是可以恢復的。最後我們需要重新啟動使得新內核生效。
isdn4k-utils-3.1beta7_mini-1.i386.rpm
這是一個支持內置ISDN的包,安裝上之後,系統就會識別我們的內置卡了,當然,為了實現撥號,我們還需要寫一個撥號腳本以及相應的掛斷腳本,它們是isdnon和isdnstop。
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 <
right">