一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Linux|Centos|Ubuntu|系統(tǒng)進(jìn)程|Fedora|注冊(cè)表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務(wù)器之家 - 服務(wù)器系統(tǒng) - Ubuntu - Ubuntu20.04 下編譯和運(yùn)行 FreeSWITCH的問題匯總

Ubuntu20.04 下編譯和運(yùn)行 FreeSWITCH的問題匯總

2023-11-12 07:05未知服務(wù)器之家 Ubuntu

1. Ubuntu20.04 下編譯和運(yùn)行 FreeSWITCH的問題匯總 1.1. 環(huán)境 Ubuntu20.04.2 LTS (Linux 5.4.0-152-generic x86_64 GNU/Linux) FreeSWITCH-1.10.9-release 1.2. 結(jié)論 根據(jù)配置和編譯過程中的錯(cuò)誤提示,基本上就是一些依賴庫的缺失問題,根據(jù)提示給出的依賴庫及其

1. Ubuntu20.04 下編譯和運(yùn)行 FreeSWITCH的問題匯總

1.1. 環(huán)境

  • Ubuntu20.04.2 LTS (Linux 5.4.0-152-generic x86_64 GNU/Linux)
  • FreeSWITCH-1.10.9-release

1.2. 結(jié)論

根據(jù)配置和編譯過程中的錯(cuò)誤提示,基本上就是一些依賴庫的缺失問題,根據(jù)提示給出的依賴庫及其版本要求,只要能在apt源中有可用的直接安裝,不然就下載對(duì)應(yīng)的庫手動(dòng)編譯安裝。

由于筆者的機(jī)器系統(tǒng)環(huán)境之前可能已經(jīng)存在一些開發(fā)庫,下文中列出的問題可能未涵蓋其他可能的情況,具體情況需要對(duì)照各類日志排查解決。

1.2.1. 可以直接通過apt源安裝的依賴庫

apt install libpq-dev libspeex-dev libspeexdsp-dev libldns-dev libedit-dev libavformat-dev libswscale-dev liblua5.2-dev libopus-dev libsndfile-dev libpng-dev

1.2.2. 其他需要手動(dòng)下載源碼編譯和安裝的庫

  • spandsp
  • sofia-sip
  • libks
  • signalwire-c

1.3. 配置問題

在源碼根目錄中執(zhí)行

./bootstrap.sh

因此系統(tǒng)中需要安裝有 autotool 工具鏈。

生成configure文件后執(zhí)行

./configure

這一步可能會(huì)出現(xiàn)以下問題:

1.3.1. 缺少 PostgreSQL 庫

apt install libpq-dev

1.3.2. 缺少 spandsp 庫

因?yàn)?freeswitch 版本比較新,需要的 spandsp 庫版本是3,在 apt 源中的庫版本是2,不滿足要求,需要手動(dòng)下載 spandsp源碼編譯(可能需要依賴庫 libtiff-dev,可以在apt源中直接安裝)并安裝。

切換到git提交:e59ca8f (HEAD) Fix crash when FCD frame has bad length but CRC is OK.

依次執(zhí)行以下命令

git checkout e59ca8f
./bootstrap.sh
./configure
make && make install

1.3.3. 缺少 sofia-sip-ua 庫

因?yàn)?freeswitch 要求的這個(gè)依賴庫的版本需要在1.13.12及以上版本,apt源中版本為1.12.11,無法滿足要求,因此也需要手動(dòng)下載sofia-sip源碼包編譯并安裝。

創(chuàng)建對(duì)應(yīng)版本的新分支,并編譯安裝。

git checkout -b 1.13.12 v1.13.12
./bootstrap.sh
./configure
make && make install

1.3.4. 缺少 speex、speexdsp 庫

apt install libspeex-dev libspeexdsp-dev

1.3.5. 缺少 ldns 庫

apt install libldns-dev

1.3.6. 缺少 libks 庫

下載并安裝 libks-dev,版本在1.8.2及以上即可。

必須要在源碼根目錄下cmake,不能創(chuàng)建臨時(shí)文件夾編譯,否則安裝時(shí)會(huì)報(bào)錯(cuò)!

git checkout -b 1.8.2 v.1.8.2
cmake -DCMAKE_BUILD_TYPE=Release .
make && make install

1.3.7. Signalwire 模塊缺失

freeswitch中的這個(gè)模塊是用于和Signalwire云服務(wù)通信相關(guān)的,我用不到,所以直接在freeswitch源碼根目錄下的 modules.conf 中禁用該模塊即可。

同時(shí),在后續(xù)運(yùn)行freeswitch時(shí)也要在 conf/autoload_configs/modules.conf.xml中注釋掉 <load module="mod_signalwire"/>

1.3.8. 缺少 libedit 庫

apt install libedit-dev

1.4. 編譯問題

在上一步配置通過后,編譯時(shí)仍然會(huì)遇到一些依賴錯(cuò)誤,因此這一步可以在編譯前都解決掉,再從配置步驟開始編譯和安裝。

1.4.1. mod_av 編譯報(bào)錯(cuò)

缺少依賴庫 avformatswscale,這兩個(gè)庫屬于ffmpeg組件??梢灾苯釉赼pt源中獲取安裝。

apt install libavformat-dev libswscale-dev

1.4.2. lua.h 頭文件查找失敗

因?yàn)槲蚁到y(tǒng)中安裝的是lua5.3,但是freeswitch-1.10.9中會(huì)查找lua5.0、lua5.1、lua5.2,而lua5.3即使安裝也無法識(shí)別,正好apt源中也有l(wèi)ua5.2的版本可以安裝。

apt install liblua5.2-dev

1.4.3. 缺少 opus 庫

apt install libopus-dev

1.4.4. 缺少 sndfile 庫

apt install libsndfile-dev

1.5. 安裝問題

上一步編譯成功后,會(huì)出現(xiàn)安裝提示:

 +---------- FreeSWITCH Build Complete ----------+
 + FreeSWITCH has been successfully built.       +
 + Install by running:                           +
 +                                               +
 +                make install                   +
 +                                               +
 + While you're waiting, register for ClueCon!   +
 + http://m.ythuaji.com.cn/uploads/allimg/24mu3yw2dxj.com                       +
 +                                               +
 +-----------------------------------------------+

按照提示安裝完成后,會(huì)出現(xiàn)安裝聲音文件的提示:

 +---------- FreeSWITCH install Complete ----------+
 + FreeSWITCH has been successfully installed.     +
 +                                                 +
 +       Install sounds:                           +
 +       (uhd-sounds includes hd-sounds, sounds)   +
 +       (hd-sounds includes sounds)               +
 +       ------------------------------------      +
 +                make cd-sounds-install           +
 +                make cd-moh-install              +
 +                                                 +
 +                make uhd-sounds-install          +
 +                make uhd-moh-install             +
 +                                                 +
 +                make hd-sounds-install           +
 +                make hd-moh-install              +
 +                                                 +
 +                make sounds-install              +
 +                make moh-install                 +
 +                                                 +
 +       Install non english sounds:               +
 +       replace XX with language                  +
 +       (ru : Russian)                            +
 +       (fr : French)                             +
 +       ------------------------------------      +
 +                make cd-sounds-XX-install        +
 +                make uhd-sounds-XX-install       +
 +                make hd-sounds-XX-install        +
 +                make sounds-XX-install           +
 ...

直接安裝最高質(zhì)量的聲音文件,這會(huì)同時(shí)安裝其他質(zhì)量的聲音文件,這個(gè)過程會(huì)從freeswitch官方網(wǎng)站上下載聲音文件并解壓到安裝目錄的sound子目錄下。

make cd-sounds-install

1.6. 運(yùn)行問題

1.6.1. 配置修改

index b5a58d1..d77f585 100644
--- a/conf/autoload_configs/modules.conf.xml
+++ b/conf/autoload_configs/modules.conf.xml
@@ -50,7 +50,7 @@
     <load module="mod_verto"/>
 
     <!-- Applications -->
-    <load module="mod_signalwire"/>
+    <!-- <load module="mod_signalwire"/> -->
     <load module="mod_commands"/>
     <load module="mod_conference"/>
     <!-- <load module="mod_curl"/> -->
diff --git a/conf/sip_profiles/internal.xml b/conf/sip_profiles/internal.xml
index eb07779..aa8f768 100644
--- a/conf/sip_profiles/internal.xml
+++ b/conf/sip_profiles/internal.xml
@@ -135,6 +135,11 @@
     <!--<param name="dtmf-type" value="info"/>-->
 
 
+    <!--沒有這些設(shè)置jssip呼叫時(shí)freeswitch會(huì)響應(yīng)488-->
+    <param name="apply-candidate-acl" value="rfc1918.auto"/>
+    <param name="apply-candidate-acl" value="localnet.auto"/>
+    <!-- <param name="apply-candidate-acl" value="wan_v4.auto"/> -->
+
     <!-- 'true' means every time 'first-only' means on the first register -->
     <!--<param name="send-message-query-on-register" value="true"/>-->
 
@@ -293,8 +298,9 @@
          auto                  - Use guessed ip.
          auto-nat              - Use ip learned from NAT-PMP or UPNP
     -->
-    <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
-    <param name="ext-sip-ip" value="$${external_sip_ip}"/>
+    <!-- 解決呼叫后30s左右就自動(dòng)掛斷的問題 -->
+    <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> -->
+    <!-- <param name="ext-sip-ip" value="$${external_sip_ip}"/> -->
 
     <!-- rtp inactivity timeout -->
     <param name="rtp-timeout-sec" value="300"/>
diff --git a/conf/vars.xml b/conf/vars.xml
index 8948d17..be9ab07 100644
--- a/conf/vars.xml
+++ b/conf/vars.xml
@@ -12,7 +12,7 @@
 
        WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
   -->
-  <X-PRE-PROCESS cmd="set" data="default_password=1234"/>
+  <X-PRE-PROCESS cmd="set" data="default_password=123456"/>
   <!-- Did you change it yet? -->
   <!--
       The following variables are set dynamically - calculated if possible by freeswitch - and

默認(rèn)密碼若不修改,呼叫時(shí)可能有10s左右的延時(shí),若想沿用默認(rèn)密碼,可以修改以下地方去掉呼叫時(shí)的延時(shí)

index c3edafc..e36dda7 100644
--- a/conf/dialplan/default.xml
+++ b/conf/dialplan/default.xml
@@ -132,7 +132,7 @@
        <action application="log" data="CRIT Open $${conf_dir}/vars.xml and change the default_password."/>
        <action application="log" data="CRIT Once changed type 'reloadxml' at the console."/>
        <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
-       <action application="sleep" data="10000"/>
+       <!-- <action application="sleep" data="10000"/> -->
       </condition>
       <!--
          This is an example of how to auto detect if telephone-event is missing and activate inband detection

因?yàn)槭窃趦?nèi)網(wǎng)下部署的,不需要用到nat。

freeswitch -nonat -nc

1.6.2. 運(yùn)行時(shí)的報(bào)錯(cuò)

筆者在呼叫時(shí),雖然可以成功,但是一直有一個(gè)報(bào)錯(cuò)

[ERR] switch_core_video.c:3099 This function is not available, libpng not installed

后來重新安裝了 libpng-dev,然后重新配置編譯安裝后解決

1.6.3. tryit-jssip 與 freeswitch 對(duì)接呼叫遇到的問題

  • tryit-jssip使用websocket方式與freeswitch交互,所以需要使用ws或者wss,參考freeswitch的 conf/sip_profile/internal.xml 中開通的ws和wss的端口設(shè)置。

  • 在上述freeswitch修改的配置中有針對(duì)jssip的修改,否則呼叫時(shí)會(huì)收到488,在freeswitch日志中可以看到如下信息:no suitable candidates found,按照上述修改之后可解決。

  • tryit-jssip默認(rèn)的會(huì)話刷新時(shí)間是90s,若直接呼叫freeswitch的話,會(huì)收到422,提示最小刷新時(shí)間是120s,所以需要修改下tryit-jssip源碼,將會(huì)話刷新時(shí)間調(diào)整為120s及以上或者干脆禁用Session Timers。
    具體修改可參考:fs-tryit-jssip

關(guān)于 tryit-jssip 的使用參考:tryit-jssip 本地部署

1.6.4. 寶利通呼叫一段時(shí)間后被掛斷并且無法再次被呼叫

RealPresenceDesktop 3.5.1 UDP下會(huì)出現(xiàn)此問題,換成TCP即可。

1.7. 參考資料

FreeSWITCH: FreeSWITCH-Explained
FreeSWITCH權(quán)威指南-杜金房 張令考
FreeSWITCH 中文文檔
Ubuntu下freeSwitch安裝指導(dǎo)
FreeSWITCH 常見問題(個(gè)人整理匯總)
通過JsSip使用WebRTC與FreeSwitch進(jìn)行交互
JsSIP-JsSIP.UA
解決freeswitch30s就掛掉的問題
freeswitch對(duì)接WEBRTC的一個(gè)candidate問題

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结衣伦理在线观看 | 亚洲精品色婷婷在线影院麻豆 | 四虎永久在线精品免费影视 | 天天操婷婷 | 亚欧有色在线观看免费版高清 | 欧美一级裸片 | 亚洲女同一区二区 | 女同学高中你下面好紧 | 免费福利资源站在线视频 | 青草午夜精品视频在线观看 | 免费370理论片中文字幕 | 护士让我吃奶我扒她奶 | 亚洲AV永久无码精品澳门 | 天天av天天翘天天综合网 | 美味情缘韩国在线观看视频 | 美女脱得一二净无内裤全身的照片 | 无遮18禁在线永久免费观看挡 | 亚洲男人的天堂视频 | 深夜免费在线观看 | 国产aaa伦理片 | 欧美日韩在线一区二区三区 | 久久成人永久免费播放 | 娇喘高潮教室h | 手机看片1024国产 | 垫底辣妹免费观看完整版 | 狠狠干在线观看 | 2012中文字幕中字视频 | 国产日韩欧美色视频色在线观看 | 久久综合老色鬼网站 | 天美影视文化传媒mv免费 | 99热国产这里只有精品99 | 543精品视频 | 国产精品一久久香蕉产线看 | 女人张开腿让男人做爽爽 | 俄罗斯女人与公拘i交酡 | 国产精品反差婊在线观看 | 天天快乐高清在线观看 | 免费91麻豆精品国产自产在线观看 | 好男人资源在线观看免费的 | 青青草一区二区免费精品 | 波多野结衣黑人系列在线观看 |