centos 7.9 编译安装 freeswitch 1.10.12

  1. 准备工作
bash 复制代码
# 更新系统
sudo yum update -y

# 安装基础依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y epel-release
sudo yum install -y git wget libtool autoconf automake make gcc-c++
sudo yum install -y yum-utils
sudo yum install yasm

2. 安装必要依赖包

bash 复制代码
# 安装音频/视频相关依赖
sudo yum install -y libogg-devel libvorbis-devel libcurl-devel \
    libtiff-devel libjpeg-devel python-devel \
    libtheora-devel speex-devel ldns-devel \
    openssl-devel sqlite-devel libsndfile-devel \
    opus-devel lua-devel libpng-devel libedit-devel

# 安装其他依赖
sudo yum install -y libuuid-devel libpqxx-devel libicu-devel \
    erlang libatomic_ops-devel libunistring-devel \
    libyuv-devel libvpx-devel libbroadvoice-devel \
    libcodec2-devel libilbc-devel
bash 复制代码
#debian 12 安装使用这个
sudo apt install -y git build-essential autoconf automake libtool pkg-config \
    libncurses5-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev \
    libpcre3-dev libspeex-dev libspeexdsp-dev libldns-dev libedit-dev \
    libssl-dev yasm liblua5.2-dev libopus-dev libsndfile1-dev libavformat-dev \
    libavcodec-dev libavutil-dev libswscale-dev libavfilter-dev \
    libshout3-dev libmpg123-dev libmp3lame-dev libmodplug-dev libvpx-dev \
    libx264-dev libvorbis-dev libflac-dev libogg-dev libuv1-dev libpq-dev \
    libssh-dev libfdk-aac-dev libopenal-dev libcodec2-dev 

3. 安装 Spandsp 和 Sofia-SIP 和其他的依赖

复制代码
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$PKG_CONFIG_PATH
bash 复制代码
git clone https://github.com/freeswitch/spandsp
cd spandsp

git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4

# 生成配置文件(关键步骤,缺少会导致 configure 失败)
./bootstrap.sh  # 若提示缺少 autoconf 等,需安装上述依赖
# 配置安装路径(确保64位系统识别)
./configure --prefix=/usr --libdir=/usr/lib64 --enable-pkg-config
# 编译并安装
make -j4  # 多线程编译加速
sudo make install
# 更新系统库缓存,确保能被找到
sudo ldconfig
bash 复制代码
wget https://codeload.github.com/freeswitch/sofia-sip/tar.gz/refs/tags/v1.13.17 -O sofia-sip-1.13.17.tar.gz
# 解压并进入目录
tar -zxvf sofia-sip-1.13.17.tar.gz 
cd sofia-sip-1.13.17
# 生成配置脚本(关键步骤)
./bootstrap.sh
# 配置安装路径(适配64位系统,确保pkg-config能识别)
./configure --prefix=/usr --libdir=/usr/lib64 --enable-pkg-config
# 编译并安装(-j4启用多线程加速)
make -j4
sudo make install
# 更新系统库缓存,确保能被FreeSWITCH识别
sudo ldconfig
bash 复制代码
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make
make install

git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c
cmake .
make
make install
复制代码
wget https://github.com/drowe67/codec2/archive/refs/tags/1.2.0.tar.gz
mkdir build && cd build
cmake ..  # 生成 Makefile
make      # 编译
sudo make install  # 安装(默认路径:/usr/local/include/codec2/ 和 /usr/local/lib/)
bash 复制代码
yum install -y libopus-devel
wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xvfz opus-1.3.1.tar.gz
cd opus-1.3.1
./configure
make
make install

4. 编译安装

bash 复制代码
# 执行 bootstrap
./bootstrap.sh -j

# 配置编译选项
./configure

# 开始编译(使用多核加速,根据CPU核心数调整)
make -j$(nproc)

# 安装
sudo make install

5. 安装声音文件

安装默认声音文件(英文)

make cd-sounds-install

make cd-moh-install

相关推荐
码农阿豪1 小时前
多服务器批量指令管理:从Xshell到自动化运维
运维·服务器·自动化
Pocker_Spades_A1 小时前
在家也能连公司服务器写代码?GoLand+CPolar 远程开发实测
运维·服务器
CSCN新手听安1 小时前
【linux】网络基础(三)TCP服务端网络版本计算器的优化,Json的使用,服务器守护进程化daemon,重谈OSI七层模型
linux·服务器·网络·c++·tcp/ip·json
普马萨特1 小时前
GPS、WiFi、基站定位:为什么在 Agent 时代不仅不受影响,反而更重要
linux·运维·服务器
REDcker1 小时前
埋点系统设计:从成熟工具到自建方案
运维·服务器·网络·用户分析·埋点·埋点系统
ai_xiaogui2 小时前
【开源前瞻】从“咸鱼”到“超级个体”:谈谈 Panelai 分布式子服务器管理系统的设计架构与 UI 演进
服务器·分布式·架构·分布式架构·panelai·开源面板·ai工具开发
RisunJan2 小时前
Linux命令-lpr(从命令行提交文件到打印机打印)
linux·运维·服务器
历程里程碑2 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun2 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
一个网络学徒2 小时前
python5
java·服务器·前端