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