Asterisk学习进阶
Asterisk學習進階
介紹篇
拋開所有概念,首先從單詞學起。估計很多人和我一樣沒有明白這個詞是什么意思,或許猜測他還可能是一個組合詞。其實它就是“*”,作為搞程序的我們看到這個東東想到的也許會是乘號,當然有另外一大幫人想到的是通配符,在這兒恭喜想到通配符的兄弟,你們答對啦,這兒我們認定它的含義就是如此。
?
通過我上面牽強附會的關聯,Asterisk的含義就浮出水面了,它就是一個通配的電話,這樣組合的話看起來應該有點難受,我們重新潤色它就變成了無所不能的電話系統。有了上面的這段廢話,我其實只想傳達asterisk的兩個特點:
1.??????功能巨強大
2.??????是一個支持語音的系統
追本溯源,下面還是看看官方是怎么定義它的:www.asterisk.org
Asterisk is the most popular and extensible open source telephonesystem in the world, offering flexibility, functionality andfeatures not available in advanced, high cost proprietary businesssystems. Asterisk is a complete IP telephony platform for business,and can be downloaded for free.
通過這段話我琢磨出下面一些意思,不曉得各位的想法。首先就是它功能很強大,成本低廉,另外就是它是免費的。
展開一下,因為它是開源代碼,就容許你在已有的基礎上進行修改定制,削弱了開發成本,另外就是asterisk可以跑在多個通過操作系統上,而且基本x86這個通用平臺,降低了專用系統昂貴的成本。但是功能強大這個我們先懸著這個疑問,下面在慢慢的進行剖析。我們現在只要從概念上曉得asterisk是一個功能強大的IP?PBX就夠了。
?
安裝篇
??????使用之前請購買這個陋習可以更改一下啦,因為我們已經進入GNU主義,get what you want。
?
下載通道為http://downloads.digium.com/pub/asterisk/releases/,選擇一個穩定版本下載就是了。對于一個程序員而言,獲得了代碼還有什么不能做的。難道你給士兵一把槍還怕他打不死腿上的蚊子?解壓倒合適的目錄,按照他的指導手冊操作就是了,不過看文檔提示里面建議釋放在/usr/src下面。
而且看到手冊上面要下載一堆的東西,例如zaptel*,libpri*等等,這些對于我們目前都是不需要的,因為我們想構建的是一個純粹的IPTEL,其他和老式電話的接口暫時都由我們的網關路由器完成,例如E1/T1,ISDNBRI/PRI,FXO,FXS等等,我們通過asterisk想完成的只是IP TEL,例如sip,h323等等。
我們需要下載的只是asterisk,后續操作步驟如下:
cd /usr/src
tar zxvf asterisk-*.tar.gz
通過上述命令,文件就被解壓出來,接下來肯定就是編譯了,略過不表,步驟如下:
#cd /usr/src
#cd asterisk-*
# ./configure
#make
#make install
#make samples?? 安裝默認的配置文件
#make webvmail 安裝語音信箱圖形界面
#make config
如果對于上面的命令以及作用有疑惑的話,建議多花時間看看linux的基本操作維護命令,然后再回頭繼續往下。這兒需要提及的最后一點,增加了一個makesamples,正如其名,他的作用就是生成默認的配置文件。眾多的編譯選項我也不介紹了,詳細參見手冊。
?
常見問題解決方案:
1.如出現找不到 PTLIB 庫,則找到在LOG輸出上找到有 ...ptlib.h----YES的那一條,找到對應目錄把文件改名,就不會再出錯了,一般目錄為:/usr/lib/ptlib.h。
2.如果出現 func_rurl.c: 106 常量無定義之類的錯誤,則直接在MAKEFILE中取消此文件的編譯,因為Makefile中是定義 func_*.c參與編譯,所以修改此文件為其它名字即可,如 __func_rurl.c 。
?
這兒我們就假設編譯很成功,沒有遇到任何編譯問題,當然不可能100%都不遇到的,一部分問題在手冊里面給了指點,另外的問題則需要你個人多動手,多動腦,而且baidu,google也不會拒絕你使用他的。
?
使用篇
??????經過前面的步驟,代碼已經編譯完了,可執行文件安裝完畢同時默認的配置文件也安裝了,那么我們就從使用上首先簡單的做個介紹,給大家帶來一個直觀的認識。下文所舉例子都會以sip為例,其他h323,iax,mgcp等等類似,不再贅述。
??????使用之前大致說明一下安裝后的asterisk文件分布情況以及作用。
/etc/asterisk Asterisk主目錄,包含其它關于Asterisk的配置文件; *zaptel.conf這個配置文件放在/etc,因為其它軟件也可以使用Zaptel這個硬件及其驅動,所以不是放在/etc/asterisk里.
?
/usr/lib/asterisk/modules 這個目錄包含所有可以加載Asterisk模塊(應用程序\編輯器\格式和有用通道),在Asterisk啟運時會加載這些模塊(可以編輯modules.conf).
?
/var/lib/asterisk ??????比較重要的是astdb文件與agi-bin目錄; astdb包含Asterisk
當地數據庫信息.
?
sounds/ ?????????????所有聲音提示的文件在里面,包括Asterisk原代碼中的sounds.txt文件
?
mohmp3/ ???????????如果配置了音樂保持,應用程序會在這個目錄下查找mp3(用CBR
從文件中去除身份標簽).
?
keys/ ??????????????使用公鑰和私鑰系統認證與一個由RSA數字簽名形成的一對等連接.公鑰和私鑰的擴展名分別為.pub和.key
?
firmware/ ???????????這個目錄含了很多Asterisk相兼容的設備固件,它只有iax/這個子目錄,其中有Digium的IAXy的二進制固件鏡像.
?
images/ ????????????只有在較多的支持并且利用圖解式的圖像設備被發布,這個目錄將會與相應的目錄有更大的關聯.
?
/var/lib/asterisk/agi-bin agi-bin包含所有腳本,可以通過許多已經建立的AGI應用程序與Asterisk連接.
/var/spool/asterisk
outgoing/??????????????現在打電話的通道——呼叫信息目錄普遍使用。
?
gcall/?????????????????撤銷了——包含了特殊呼叫方法的呼叫信息文件——不是打電話的好方法,因為這種方式太硬性了——不再使用。使用outgoing替代
?
tmp/??????????????????中間/臨時數據
?
voicemail/?????????????語音和問候語。
運行調試asterisk
1. 運行調試常用命令
./asterisk & 在后臺啟動asterisk
./asterisk –vvvc 啟動asterisk并盡量多的在控制臺顯示調試信息
./asterisk –r 連接asterisk控制臺
set verbose 9999 設置打印詳細信息
?
2.asterisk控制臺下常用命令
?
sip reload 重新加載sip配置信息
sip set debug??設置顯示更多的sip信息
sip set debug off關閉顯示更多的sip信息
sip show channels 顯示所有活動的SIP通道
sip show peers 顯示所有已定義的SIP peer
?
?
dialplan show 顯示撥號方案
dialplan reload重新加載撥打方案
?
stop gracefully 優雅地停止asterisk
stop now 立即停止運行asterisk
?
module show 顯示所有已加載模塊
module loadcdr_radius.so????加載模塊cdr_radius.so
module reload cdr_radius.so 重新加載模塊cdr_radius.so
module unload cdr_radius.so 卸載模塊cdr_radius.so
?
core show applications 顯示所有的應用,比如Dial, Radius, Hangup,Answer等
core show channels 顯示所有的通話頻道
core show codecs 顯示所有支持的編解碼器
core show functions 顯示所有的功能函數?
?在asterisk源碼目錄下運行makemenuselect可以進入模塊選擇頁面,在里面可以選擇和去除一些模塊。
?看完這些目錄之后,對其大體的功能也可能會有點認識,還是從啟動服務器還是聊起。啟動服務器方法很多,我們按照手冊中的描述選取一種
Asterisk –cvvvv?? 具體參數含義請參考手冊
?
也可以通過運行 /usr/sbin/safe_asterisk 來運行。
我們下文的描述就會基于這個簡單的拓撲展開討論,這兒的tel都是sip電話,我們假定tel1號碼為808,tel2號碼為830,現在的簡單需求就是我808能夠打通830,實現雙向通話。開始配置前,先了解主要配置文件的作用。
/etc/asterisk/asterisk.conf 主要配置文件,
/etc/zaptel.conf 硬件接口的基本層. 修改這個配置文件要用modprobe裝載LinuxKernel使用模塊.
/etc/asterisk/zapata.conf 為硬件配置Asterisk的接口.
/etc/asterisk/extensions.conf 撥號方案.
/etc/asterisk/sip.conf SIP協議配置文件
/etc/asterisk/iax.conf 呼入和呼出IAX通道
/etc/asterisk/extensions.conf 撥號方案配置文件
/etc/asterisk/moduprobe.conf 加載模塊配置文件
?
后續的工作主要就在這兩份文件中開展,如果多了h323,則需要編輯h323.conf,其他通道協議類似。
我們要做的就是定義兩個用戶,添加到sip.conf里面,目前只做基于文件的用戶管理,后續可以擴充到數據庫之類的。這兒撥號規則細節就不在贅述,欲知詳情,參見手冊。
?
原文: http://hi.baidu.com/zengshengwen/blog/item/ccf61a06ca6022d87a8947eb.html總結
以上是生活随笔為你收集整理的Asterisk学习进阶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能存款和结构性存款的区别,哪个更划算?
- 下一篇: makefile 的export问题