FreeSWITCH異常原因總結


  最經在玩FreeSWITCH的時候,遇到很多的問題,特此總結一下,希望以后不要犯類似的錯誤了:

  1、Client端無法注冊,但是FS運行正常?

     解決辦法:查看防火牆是否關閉。/etc/init.d/iptables stop ,這條指令的僅僅是在運行FS的時候關閉一次防火牆,如果想每次開機都關閉防火牆,使用chkconfig iptables off。

  2、打開FS的WebSOCKET功能?

    解決辦法:在/usr/local/freeswitch/conf/sip_profiles/internal.xml中去掉WS的注釋即可,該行代碼為:<param name="ws-binding" value=":5066"/>

  3、修改完FS之后,發現FS並沒有按照自己修改的方式進行?

    解決辦法:在fs_cli 中輸入reloadxml,或者重新開啟FreeSWITCH。

  4、開啟FreeSWITCH的常用方法有哪些?

    A、/usr/local/freeswitch/bin/freeswtich -nonat

    B、/etc/init.d/freeswitch start

    C、service freeswitch start 

  5、如何讓FS實現媒體流和SIP信令分開傳輸,即媒體流實現P2P,SIP信令來維持通話過程的建立?

    解決辦法:設置FS為媒體繞行方式,默認的是流媒體(RTP包)和SIP 信令是在一起傳輸,都經過FS,目的是FS做監控或者錄音錄影的功能。

           要讓RTP 和SIP 分離,只要在/usr/local/freeswitch/conf/dialplan/default.xml中的Local_Extension中添加如下的代碼即可。

          <action application="set" data="bypass_media=true"/>
          <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>

  6、在fs_cli中使用show calls,或者使用 sofia status profile internal reg查看注冊賬號是,發現已經注銷的賬號還沒有及時更新?

  原因:FreeSWITCH分為內核部分(FS Core)和外圍兩部分。內核使用其內部的隊列、哈希表以及外部的SQL數據庫,當前,系統的核心數據庫使用SQLite,默認村放在db/core.db。

  使用外部數據庫的好處是:查詢數據不用鎖定內存數據結構。這樣不僅能提供性能,而且降低了死鎖的風險,保證了系統的穩定。

     系統對數據庫操作做了優化,在高並發狀態時,核心會盡量將幾百條 SQL 一齊執行,這大大提高了性能。show calls 等都是直接從數據庫中讀取內容並顯示,所以在低並發的狀態下執行就顯得稍微有點慢。

  7、從SDP協議應該看到的訊息:(2013/12/25)

    A、所要描述的RTP的IP以及端口PORT;

    B、編碼器的種類,以及是否支持視頻;

    C、是否支持按鍵功能

           注:很多情況下呼叫不成功都是因為SDP協商不成功導致的

   以上是近期遇見問題的一個小結,以后的FS問題和解決方法也會及時的更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM