linux服务之asterisk
由于Asterisk過于專業(yè)且復(fù)雜,所以目前也存在大量衍生自Asterisk但簡化過的通信系統(tǒng),以讓用戶較容易使用。比如在歐美比較流行的elastix、trixbox、或以簡體中文為基礎(chǔ)的Freeiris等。
Asterisk[1] 是一個開放源代碼的軟件VoIP PBX系統(tǒng),它是一個運(yùn)行在Linux環(huán)境下的純軟件實(shí)施方案。Asterisk[1]是一種功能非常齊全的應(yīng)用程序,提供了許多電信功能,能夠把你的x86機(jī) 器變成你自己的交換機(jī),還能夠當(dāng)作一臺企業(yè)級的商用交換機(jī)。Asterisk[1]讓人激動的事情是它在小企業(yè)預(yù)算可承受的范圍內(nèi)提供了商業(yè)交換機(jī)的功能和可伸 縮性。你可以使用一臺老式的奔騰3計算機(jī),讓你的機(jī)構(gòu)看起來就同世界上的大企業(yè)一樣。
從架構(gòu)的角度看來,Asterisk是由許多不同的模塊組成的。在設(shè)計基于Asterisk的系統(tǒng)時,這種模塊化的特性,提供了幾乎無限的靈活必。作為Asterisk系統(tǒng)管理員,你擁有選擇加載模塊的權(quán)利。你所加載的每一個模塊,都提供了不同的系統(tǒng)功能。比如說,有的模塊能夠讓你的Asterisk與模擬電話線路通信,有的模塊則提供話務(wù)報告的功能。后續(xù),我們還將討論到各種模塊的功能和類別。
http://www.cnblogs.com/einyboy/archive/2012/11/08/2759969.html
http://blog.csdn.net/yetyongjin/article/details/7520567
asterisk的sip功能
Asterlsk 能夠支持傳統(tǒng)的線路:
TDM (Time Division Multiplexing)
T1/ E1 PRI/ PRA & RBS (Robbed Bit Signal)
modesAnalog phone lines/ phones (POTS)
ISDN (Integrated Services Digital Network)
Both BRI (Basic Rate)and PRI (Primary Rate)
Asterisk 支持的協(xié)議包括:
Session Initiation Protocol (SIP)
H. 323 (ITU standard, contributed support)
Inter- Asterisk eXchange (IAX)
Media Gateway Control Protocol (MGCP)
Asterisk的模塊類型
通道驅(qū)動模塊
框架圖的頂部,藍(lán)色部分描述的就是通道驅(qū)動。通道驅(qū)動程序與Asterisk外部的設(shè)備通信,并為內(nèi)核轉(zhuǎn)換某種特定的信令或協(xié)議。
所有從外部呼入的呼叫,在抵達(dá)內(nèi)核之前,都要經(jīng)過某種通道驅(qū)動;所有外呼的呼叫,在抵達(dá)外圍設(shè)備之前,也一定要經(jīng)過某種通道驅(qū)動。
例如:SIP通道驅(qū)動,用于與使用SIP協(xié)議的終端設(shè)備通信。它為內(nèi)核轉(zhuǎn)換SIP信令。這意味著Asterisk的內(nèi)核是與信令無關(guān)的。因此,Asterisk不僅僅是SIP PBX,它是多協(xié)議的PBX。
所有通道驅(qū)動都以 chan_xxxxx.so命名,比如說chan_sip.so、chan_dahdi.so
撥號規(guī)則應(yīng)用模塊
Application為系統(tǒng)提供呼叫相關(guān)的功能。這些應(yīng)用可能是應(yīng)答、播放提示音、掛機(jī)等功能。
應(yīng)用模塊為系統(tǒng)提供呼叫功能。這些應(yīng)用,在撥號方案中按(草種)順序腳本化。比如說,一個呼叫進(jìn)入Asterisk撥號方案,可能會有一個應(yīng)用作出應(yīng)答;另一個應(yīng)用從磁盤中讀取一個文件,播放一段提示音;第三個應(yīng)用,則讓呼叫方在指定的語音信箱中留言。
有關(guān)撥號計劃應(yīng)用的更詳細(xì)信息,請參考: Dialplan Fundamentals
所有應(yīng)用模塊,都以app_xxxxx.so命名,比如說 app_voicemail.so
撥號規(guī)則功能模塊
從某種程度上來說,撥號規(guī)則的功能類似于應(yīng)用,但是,它們不是作用于某個特定通道或呼叫,而是簡單地檢索或設(shè)置通道上的某個設(shè)定,或者執(zhí)行文本操作。比如說,某個功能模塊會檢索呼叫的主叫ID信息,過濾某些文本,或?yàn)閬黼娬咴O(shè)置一個超時時間。
撥號規(guī)則功能模塊,都以 func_xxxxx.so命名,比如說func_callerid.so
資源模塊
顧名思義,資源就是Asterisk需要用到的資源服務(wù)。常見資源如呼叫保持音樂、呼叫停泊等。
資源模塊為Asterisk提供可以在呼叫過程中任意時刻調(diào)用的一些擴(kuò)展功能,即使另一個應(yīng)用正在某個通道上執(zhí)行,也能夠調(diào)用。資源模塊典型應(yīng)用于事件同步,比如說在呼叫置保持或掛起時播放音樂。
資源模塊以res_xxxxx.so命名,比如說 res_musiconhold.so
編解碼模塊
一種CODEC,就是某種音頻或視頻的編解碼模塊。通常用于壓縮媒體,以減少帶寬消耗。
編解碼模塊都以codec_xxxxx.so命名,比如說codec_alaw.so、 codec_ulaw.so
編解碼模塊提供媒體流的編碼和解碼算法。Asterisk在接收和發(fā)送媒體(音頻和視頻)時,都用到編解碼模塊。這個模塊還完成不同編碼算法間的轉(zhuǎn)換工作。
Asterisk提供了多種媒體格式的支持,包括:ADPCM, 32kbit/s、G.711 alaw, 64kbit/s、G.711 ulaw, 64kbit/s、G.726, 32kbit/s、G.726, 32kbit/s、GSM, 13kbit/s、LPC-10, 2.4kbit/s。
其它的如G.729A、G.723.1,是需要專利許可的。
文件格式驅(qū)動模塊
這些模塊讓Asterisk能夠支持的一系列文件格式。Asterisk利用文件模塊從網(wǎng)絡(luò)上獲取媒體流(音頻或視頻),轉(zhuǎn)換成文件,存儲在磁盤中;或者反過來從磁盤中讀取文件并轉(zhuǎn)換為媒體流。這些模塊常常關(guān)系到編解碼模塊,對于某種編解碼來說,磁盤上可能存在多種可用的文件格式。
文件格式模塊以format_xxxxx.so命名,比如說 format_wav.so、format_xxxxx.so
呼叫詳細(xì)記錄(CDR)驅(qū)動
CDR模塊的用途是把呼叫詳細(xì)記錄按不同的格式要求存儲。常用的存儲機(jī)制包括CSV文件、關(guān)系型數(shù)據(jù)庫(比如PostgreSQL)。通常每一通呼叫生成一條通話記錄,記錄內(nèi)容包括主叫、被叫、通話時長等等。
CDR模塊都以cdr_xxxxx.so命名,比如說cdr_csv.so、 cdr_pgsql.so
呼叫事件日志(Call Event Log)驅(qū)動
CEL和CDR類似,但它更側(cè)重于記錄在呼叫過程中,Asterisk內(nèi)部發(fā)生了什么。
CEL記錄呼叫過程中發(fā)生的各種事件。正因如此,它通常記錄了比CDR更詳盡的事情。比如說CEL可能會記錄下這樣的內(nèi)容:ALICE呼叫BOB;BOB的電話在振鈴20秒后,BOB的移動電話響鈴了,再過15秒,呼叫轉(zhuǎn)到BOB的語音信箱去了,然后ALICE留下一條25秒長的語音留言,然后掛機(jī)。系統(tǒng)還能夠自定義需要記錄的事件。
CEL模塊以cel_xxxxx.so命名,比如cel_custom.so、cel_adaptive_odbc.so
橋接模塊
從Asterisk1.6.2開始,Asterisk引入了橋接呼叫的一種新方法。它依賴各種橋接模塊,控制為呼叫參與者間的媒體流混頻方式。新的橋接方式,是一種更靈活、更高效的設(shè)計。
橋接模塊以 bridge_xxxxx.so命名,比如bridge_simple.so、 bridge_multiplexed.so.
總結(jié)
以上是生活随笔為你收集整理的linux服务之asterisk的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序image bindload事
- 下一篇: last, lastb