開源軟體架構總結之——Asterisk(DSL、組件、多線程)

來源:互聯網
上載者:User

標籤:esc   組成   通道   uri   橋接   define   抽象   放音   監視   

Asterisk 1是基於GPLv2協議發布的一款開源電話應用平台。簡單地說,這是一個服務端程式,用於處理電話的撥出、接入以及自訂流程。

一個人使用電話A呼叫另一個使用電話B的人。在此情境下,串連到Asterisk系統的有兩個電話終端,因而分配了兩個通道(1.2)。

圖1.2 兩個通道表示兩條呼叫線路

媒體傳輸使用的是P2P方式!

圖1.3 專用橋接執行個體

圖1.4 通道技術層和抽象通道層

 

Asterisk組件抽象

Asterisk是一款高度模組化的軟體。其核心程式可由源碼樹上的main/目錄的源碼構建而成。但是核心程式本身作用不大,因為其主要作用是註冊模組。系統還有一些代碼負責串連所有抽象介面,使撥打電話工作起來。這些介面的具體實現是由一些可載入模組在運行時完成註冊的。

預設狀態下,當主程式啟動時,Asterisk會在檔案系統上一個預先指定的模組目錄下找到所有模組,並載入之。選擇這種預設是出於簡便性的考慮。然而,還有一個可更改的設定檔,可具體指定載入哪些模組及其載入順序。系統配置變得有點複雜,但是能指定那些不需要的模組不被載入。這樣做的主要好處就是減少了程式的記憶體佔用,然而還有一些安全性的優點。如果一個模組可從網路接受串連,但實際並不需要用它,那麼最好還是不要載入它。

模組被載入後,它將在Asterisk核心程式中註冊它所有組件抽象的實現。可由模組實現並在Asterisk核心註冊的介面多種多樣。系統允許模組盡量多的註冊各類介面。通常相似的功能組成一個單獨的模組。

 

Asterisk管理員使用Asterisk撥號對應表(存於/etc/asterisk/extensions.conf檔案)來設定呼叫路由表。撥號對應表是由一系列被稱為擴充規則的呼叫規則群組成的。當有一個撥打電話接入,系統用被叫號碼在撥號對應表中尋找擴充規則,用以處理本次呼叫。(本質:DSL!)舉例說明之前,我們先看一個Asterisk撥號對應表的文法,此撥號對應表用於處理對號碼1234的呼叫。注意,這裡1234這個號碼系信手拈來。共有3個撥號程式被調用:首先,應答呼叫;其次,回放音頻檔案;最後,掛斷呼叫。

; Define the rules for what happens when someone dials 1234.;exten => 1234,1,Answer()    same => n,Playback(demo-congrats)    same => n,Hangup()


Asterisk的大多數線程可歸類為網路監視線程或通道線程(有時亦稱為PBX線程,因為其主要目的是在通道運行使用者級交換器PBX)。

圖1.7 普通呼叫橋接的元件圖表

 

迄今為止,Asterisk的架構已有十年以上的曆史。然而,儘管這個行業在不斷髮展,Asterisk的一些東西,如通道的基本概念、使用撥號對應表進行靈活的呼叫處理,仍然支援著複雜電話系統的開發。有一個領域Asterisk的架構還沒有處理的太好,即如何使系統在多伺服器間可伸縮。Asterisk開發社區正在開發一個叫做Asterisk SCF(可伸縮通訊架構)的夥伴項目,目的就是解決延展性的課題。

 

參考:http://www.ituring.com.cn/article/13057#

開源軟體架構總結之——Asterisk(DSL、組件、多線程)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.