- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號:asterisk-cn
- Asterisk課堂-如何通過(guò)源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統部署環(huán)境要求
- asterisk課堂-Asterisk技術(shù)架構



CORE, Codecs, Functions, Applications, Resources, Formats, Channel drivers
CORE 模塊從字面意思就可以理解,它是Asterisk的核心模塊,負責控制管理配置文件,系統時(shí)鐘,通道管理等等任務(wù)。文件格式為so 命名。系統默認配置文件路徑可參考官方文檔,當然用戶(hù)也可以修改配置文件來(lái)保存系統的so 文件路徑。
Channel drivers 負責和Asterisk通信接口的通信,例如Asterisk語(yǔ)音卡的chan_dahdi.so 文件,此文件控制語(yǔ)音板卡的應用層配置。chan_sip.so 文件,此模塊控制舊版本的SIP協(xié)議,用戶(hù)呼入呼出通過(guò)SIP配置來(lái)和SIP通信設備進(jìn)行呼叫。目前官方已經(jīng)使用了PJSIP,所以未來(lái)的SIP 通道驅動(dòng)器就是chan_pjsip.so 文件。還有官方自定義的IAX2 通道,就是chan_iax.so 文件,此文件負責IAX 終端和IAX2 trunk的控制,實(shí)現和其他Asterisk系統對接。
Formats 負責系統對媒體文件寫(xiě)入到系統存儲介質(zhì)中,可以實(shí)現對不同語(yǔ)言編碼的支持。
Codecs負責語(yǔ)音編碼規則的處理,來(lái)控制通話(huà)過(guò)程中不同語(yǔ)音編碼轉換和算法的處理。如果呼叫是否存在語(yǔ)音編碼不一致的情況,需要Codecs 模塊進(jìn)行轉換協(xié)商。
Applications 模塊包括了很多撥號規則中的應用模塊,主要用在對呼叫通道的處理,例如dial,playback,voicemail的處理。
Functions 模塊負責獲得或設置呼叫通道數據等功能,例如讀取CDR數據,讀取來(lái)電顯示號碼,利用數學(xué)函數進(jìn)行號碼變換或者其他計算。
Resources 模塊是一個(gè)靜態(tài)模塊,實(shí)現對其通道的資源共享,例如對通道播放音樂(lè )等待,或者對呼叫通話(huà)通道進(jìn)行錄音,這時(shí)就需要res 前綴的模塊,例如res_musiconhold.so, res_monitor.so。
CLI,AMI,AGI 接口控制Asterisk呼叫流程。Asterisk CLI 命令是一個(gè)管理員命令,用戶(hù)可以通過(guò)SSH,登錄到Asterisk系統,執行CLI命令來(lái)檢查排查系統問(wèn)題,發(fā)起呼叫,設置其他變量。AMI 是一個(gè)管理員接口,可以實(shí)現對Asterisk 發(fā)起呼叫,在呼叫中心開(kāi)發(fā)中可以實(shí)現定期發(fā)起呼叫,隊列檢測,坐席檢測等等功能。用戶(hù)可以非常靈活地通過(guò)開(kāi)發(fā)語(yǔ)言例如PHP,Java 等等開(kāi)發(fā)第三方程序。AGI是在撥號規則中執行的一種接口控制方式,可以對呼叫進(jìn)行各種處理。支持各種Linux 腳本語(yǔ)言實(shí)現強大靈活的呼叫控制。網(wǎng)上有很多關(guān)于A(yíng)MI/AGI 的開(kāi)發(fā)實(shí)例,用戶(hù)可以下載測試。
以上僅介紹了Asterisk核心架構中的一些關(guān)鍵技術(shù)點(diǎn),可以幫助用戶(hù)快速了解Asterisk基本流程和基本概念。更多技術(shù)細節我們在未來(lái)的章節中會(huì )逐一介紹。