您當前的位置是:  首頁 > 新聞 > 國內(nèi) >
 首頁 > 新聞 > 國內(nèi) >

asterisk課堂-Asterisk技術架構(gòu)

2016-12-05 09:26:33   作者:james.zhu   來源:CTI論壇   評論:0  點擊:


\
  本章節(jié)介紹asterisk的技術架構(gòu)。官方介紹Asterisk是基于模塊化的設計理念,用戶可以靈活添加或者卸載不需要的相關模塊,這樣可以進行系統(tǒng)優(yōu)化。事實上,任何系統(tǒng)都需要核心模塊和周邊模塊,因為核心模塊是調(diào)用的系統(tǒng)資源,這些模塊是不能輕易卸載掉。通常大家說的加載模塊或者卸載模塊,很多時候是指的一些周邊的應用模塊。我們主要從以下幾個方面來介紹asterisk架構(gòu):
\

\

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

專題