freeswitch 使用記錄

2021-10-09 07:07:40 字數 1317 閱讀 3699

當新建(new)乙個channel時,它首先會進行初始化(init),然後進入路由(routing)階段,也就是我們

查詢解析dialplan的階段。在這裡,要注意乙個專門的術語——hunting(在傳統的交換機裡,它譯為選線,在這

裡我就譯為選路吧)。找到合適的路由入口後,hunting會執行(execute)一系列動作,最後無論哪一方掛機,

都會進入掛機(hangup)階段。後面的報告(reporting)階段一般用於進行統計、計費等,最後將channel銷毀

(destroy),釋放系統資源。

在execute狀態,可能會發生轉移(transfer,該轉移跟我們通常說的來電轉駁不太一樣),它可以轉移到同

一context下其他的extension,或者轉移到其他context下的extension,但無論發生哪種轉移,都會重新進行路

由,也就是重新進入routing階段(圖6-1中虛線部分),重新hunt dialplan。

我們在前面的章節也講過,一定要記住routing和execute是屬於兩個不同階段的,只有routing完畢後才會進

行execute階段的操作。當乙個channel進入routing階段時,它首先會到達dialplan(英文叫hit the

dialplan),然後對預設的dialplan進行解析(是的,每個**都會重新解析dialplan),解析dialplan的這一

過程稱為parsing或hunting。解析完畢(成功)後,會得到一些action,然後channel進入execute階段,依次執

行所有的action。

對dialplan的hunting和executing分屬於不同的階段。在hunting階

段,只解析dialplan,並不執行任何動作,而是將所有滿足條件的action都放到乙個動作列表(佇列)中,待呼

叫流程進行到executing階段時,再依次執行動作列表中的動作。

在freeswitch中,每一次呼叫都由一條或多條「腿」(call leg)組成,其中的

一條腿又稱為乙個 channel(通道)

,每乙個channel都有很多屬性,用於標識channel的狀態、效能等,這些屬性稱為channel variable(通道變數),可簡寫為channel var、chan var或var。

在這裡使用x-pre-process設定的變數都稱為全域性變數,它們在freeswitch執行期間永遠都是有效的。

而區域性變數,它們通常在撥號計畫中,在乙個呼叫的生命週期中才有效。

如果需要引用這些變數,則全域性變數以$$表示,臨時變數以$表示

FreeSwitch安裝配置記錄

主要命令如下 git clone b v1.2.stable git cd freeswitch bootstrap.sh configure make make install make hd sounds install make hd moh install make samples 最後乙個...

FreeSwitch安裝配置記錄

主要命令如下 git clone b v1.2.stable git cd freeswitch bootstrap.sh configure make make install make hd sounds install make hd moh install make samples 最後乙個...

freeswitch 使用外部directory

freeswitch 例子中提供了靜態檔案的directory 實際應用中都是從資料庫載入的 配置方法如下 1.首先要開啟 mod xml curl 模組 quote quote 2.配置 xml curl.conf檔案 配置了乙個 dialplan閘道器和乙個directory 閘道器 quote...