現(xiàn)在你已經(jīng)安裝好了FreeeSWITCH,是開始了解更多本書舉例配置的時刻了(例如書中的舉例)。書中的實例是按照用戶配置文件提前配置好的,包括了撥號規(guī)則,安全設(shè)置和更多內(nèi)容。實例的目的是讓用戶能夠盡可能多地掌握第一手的FreeSWITCH配置經(jīng)驗,了解FreeSWITCH可以做實現(xiàn)什么。
在本章節(jié)中,我們將介紹以下內(nèi)容:
· VoIP和 FreeSWITCH的重要概念
· 使用FreeSWITCH 命令接口 (fs_cli)
· 配置一部話機,測試FreeSWITCH
· 呼叫系統(tǒng)中不同的分機
需要了解的重要概念
FreeSWITCH 是一款功能豐富的軟件。一個最主要的原因是,它強大是因為通信世界是動態(tài)的。作為一個軟件開發(fā)人員,當我們做一個決定的時候,我們會經(jīng)常碰到類似艱難的決定,F(xiàn)reeSWITCH應該如何實現(xiàn)各種需求和復雜靈活的環(huán)境。我們常常會碰到一個難題,一些潛在的用戶經(jīng)常會提一些特別的需求,但是相反的,其他用戶有希望另外一種相反的需求。我們可以輕松地添加一些設(shè)備功能,并且確保設(shè)備正常工作,但是同時我們必須調(diào)整一些需求,適當靈活地支持非常特別的設(shè)備功能。FreeSWITCH設(shè)計的目的是就是支持擴展,所以我們也需要設(shè)計一些特別的地方,用戶可以從這個地方開始進行獨立靜態(tài)配置,并且可以拓展出動態(tài)的配置,并且不會可以跟上開發(fā)的節(jié)奏。 這是比較痛苦的,但是它也不是一個非常煩躁的事情。當你從上一個章節(jié)安裝FreeSWITCH時,你已經(jīng)安裝了一個功能完整的實例配置文件,這些配置文件將貫穿本書的大部分章節(jié),只需修改小部分就可以工作。
就像我們在第一章討論FreeSWITCH架構(gòu),F(xiàn)reeSWITCH是基于一個核心內(nèi)核,借助了XML 注冊模塊,所有的應用接口模塊圍繞中心模塊來運行。我們使用幾個默認注冊的用戶來做一些簡單的呼叫測試。當你發(fā)起一個呼叫時,SIP模塊將推送一個請求到XML 撥號規(guī)則,撥號規(guī)則通過正式表達式做一些邏輯匹配,然后發(fā)送到相應的接口。一旦找到匹配條件,XML 分機數(shù)據(jù)將被拷貝到本地的通道,然后按照一個指令表來執(zhí)行下一個呼叫動作。可能在撥號規(guī)則中同時匹配了幾個分機,這依賴于配置關(guān)鍵詞的選擇。對于第一次測試我們使用一個分機做呼叫測試,當呼叫的通道進入路由狀態(tài)時,你可以看到相關(guān)的呼叫數(shù)據(jù)(例如,通道狀態(tài)等等,參考第八章 高級路由概念)。
在通信的專有名詞中,我們把兩個設(shè)備之間的連接稱之為一個呼叫l(wèi)eg。A leg 用來描述呼叫方和FreeSWITCH的通信路徑。B leg 用來描述接聽方和FreeSWITCH的通信路徑。
讓我們看看以下的圖例解釋:
如果你使用一個分機電話發(fā)起呼叫,聽一個系統(tǒng)的一個demo,那么這時只有一個leg,只有你的分機電話機和FreeSWITCH之間通信。如果你撥打一個號碼注冊在FreeSWITCH平臺的號碼,或者通過中繼呼出到運營商那里,運營商接通你的手機,你們這里,系統(tǒng)有兩個leg。第一個就是A leg,你的電話呼叫到FreeSWITCH,另外一個就是B leg, 這個leg 就是通過FreeSWITCH 連接另外一個電話或者運營商服務設(shè)備。在每個呼叫中,每個leg 都有自己獨有的屬性并且通過特別的關(guān)系和對應的leg關(guān)聯(lián)。當呼叫中的legs 進行媒體交互時,我們稱之為一個bridge 或者橋接。 在橋接的呼叫中,任何一方都可以對另外一方進行某些操作或者控制,例如可以將對方置于語音等待,轉(zhuǎn)接到另外的分機,或者加入到一個三方通話中。
未完待續(xù)······