天天看點

《 FreeSWITCH權威指南》——3.4 FreeSWITCH用作軟電話

本節書摘來自華章計算機《 freeswitch權威指南》一書中的第3章,第3.4節,作者:杜金房 張令考 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

也可以把freeswitch簡單地用作一個軟電話(可以看作用freeswitch做了一個x-lite)。雖然相比而言,freeswitch比配置x-lite略微複雜一些,但你會從中得到更多好處:freeswitch是開源的,更強大、靈活。關鍵是它是目前筆者所知道的唯一支援celt高清通話的軟電話。

freeswitch使用mod_portaudio子產品支援你本地的音頻裝置,該子產品預設是不編譯的。在你的源代碼目錄下執行如下指令,以安裝該子產品:

其他的子產品也可以依照上面的方式進行重新編譯和安裝。安裝完成後到控制台中執行:

如果得到“cannot find an input device”之類的錯誤,則可能是你的聲霸卡驅動有問題。如果是提示“+ok”就是成功了。接着執行pa devlist指令,可以看到如下輸出:

以上是筆者的筆記本電腦上的輸出,它列出了所有的聲音裝置。其中,3和4最後的“o”和“i”分别代表聲音輸出(out)和輸入(in)裝置。在你的電腦上可能不一樣,如果你想選擇其他裝置,可以使用指令進行修改。例如下列指令可以選擇使用筆者電腦上内置的麥克風和耳機:

至此你就有了一個可以用指令行控制的軟電話了。嘗試輸入以下指令:

如上所示,你可以呼叫剛才試過的所有号碼。現在假設想從sip分機1000呼叫到你,那麼需要修改撥号計劃(dialplan)。用你喜歡的編輯器編輯以下檔案并放到conf/dialplan/default/portaudio.xml中:

然後,在控制台中按f6或輸入以下指令使之生效:

在分機1000上呼叫me或12345678(你肯定想為自己選擇一個更酷的号碼),然後在控制台上應該能看到類似[debug] mod_portaudio.c:268 brrrring! brrrring! call 1的輸出(如果看不到,按f8能得到詳細的log),這說明你的軟電話在振鈴。多按幾個回車,然後輸入pa answer就可以接聽電話了。輸入pa hangup可以挂斷電話。

當然,你肯定希望在振鈴時能聽到真正的振鈴音而不是看什麼brrrrring。好辦,選擇一個好聽的聲音檔案(wav格式),編輯conf/autoload_configs/portaudio.conf.xml,将ring-file一行修改為下面的樣子,其中,value指定你的聲音檔案的路徑:

然後重新加載子產品:

再打打試試,看是否能聽到振鈴音了?

如果你用不習慣字元界面,可以看一下freeswitch-air,它是使用adobe air開發的,為 freeswitch 提供一個簡潔的軟電話的圖形界面。另外,如果你需要高清通話,除需要設定相關的語音編解碼器(codec)外,你還需要有一個好的耳機才能達到最好的效果。筆者使用的是一款logitech的usb耳機。除此之外,還有兩款基于freeswitch的軟電話,分别是fscomm(qt實作)和fsclient(c#實作)。

繼續閱讀