当前位置: 首页 > news >正文

Ubuntu系统下编译安装FreeSWITCH 1.10.12

在Ubuntu系统下编译FreeSWITCH 1.10.12版本,需按以下步骤操作:

一、环境准备

  1. 更新系统

    sudo apt update
    sudo apt upgrade
  2. 安装基础编译工具

    sudo apt install -y build-essential pkg-config cmake autoconf automake libtool
  3. 安装依赖库

    sudo apt install -y uuid-dev zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff5-dev yasm libopus-dev libsndfile1-dev libavformat-dev libswscale-dev liblua5.2-dev libpq-dev unixodbc-dev libxml2-dev ntpdate sngrep wget vim
    注意:Ubuntu 22.04及以上版本需额外安装liblua5.2-0,并使用libswresample-dev替代已废弃的libavresample-dev

二、下载源码

  1. 创建工作目录

mkdir -p ~/opt && cd ~/opt

克隆源码

git clone https://github.com/signalwire/freeswitch.git -b v1.10.12
cd freeswitch

或者下载

wget https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.12.-release.tar.xz
tar vxf freeswitch-1.10.12.-release.tar.xz 
cd freeswitch-1.10.12.-release

三、编译依赖库

  1. 编译libks

    git clone https://github.com/signalwire/libks.git
    cd libks
    mkdir build
    cd build
    cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local
    make 
    sudo make install
    cd ../../
  2. 编译signalwire-c
    git clone https://github.com/signalwire/signalwire-c.git
    cd signalwire-c
    mkdir build
    cd build
    cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local
    make 
    sudo make install
    cd ../..

  3. 编译sofia-sip

    git clone https://github.com/freeswitch/sofia-sip.git
    cd sofia-sip
    ./bootstrap.sh
    ./configure
    make
    sudo make install
    cd ..

  4. 编译spandsp

    git clone https://github.com/freeswitch/spandsp.git
    cd spandsp
    git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4
    ./bootstrap.sh
    ./configure
    make -j$(nproc)
    sudo make install
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}
    cd ..

四、编译FreeSWITCH主程序

  1. 配置与编译

    ./bootstrap.sh
    ./configure
    make
    sudo make install
  2. 安装音频包(可选)

    sudo make cd-sounds-install
    sudo make cd-moh-install

  3. 刷新系统动态库

    sudo ldconfig

五、配置服务

  1. 创建systemd管理脚本
    sudo vim /etc/systemd/system/freeswitch.service

    脚本内容

    [Unit]
    Description=FreeSWITCH
    After=network.target local-fs.target[Service]
    Type=forking
    User=root
    Group=root
    ExecStart=/usr/local/freeswitch/bin/freeswitch -nc -nonat
    ExecStop=/usr/local/freeswitch/bin/freeswitch -stop
    Restart=always
    LimitCORE=infinity
    LimitNOFILE=100000
    LimitNPROC=60000
    PIDFile=/usr/local/freeswitch/run/freeswitch.pid[Install]
    WantedBy=multi-user.target

  2. 激活服务
    sudo systemctl daemon-reload
    sudo systemctl enable freeswitch
    sudo systemctl start freeswitch
    sudo systemctl status freeswitch

六、验证安装

  • 检查服务状态
sudo systemctl status freeswitch

若显示active (running),则表示服务已成功启动。

  • 进入FreeSWITCH CLI
fs_cli

在CLI中输入status命令,查看运行状态。

http://www.xdnf.cn/news/1142227.html

相关文章:

  • 指定阿里镜像原理
  • 工业数据集成中间件工具OPC Router详细介绍
  • Redis原理之哨兵机制(Sentinel)
  • [Linux]如何設置靜態IP位址?
  • Unity 堆栈分析实战指南 C#
  • wx小程序设置沉浸式导航文字高度问题
  • HIVE实战处理(二十四)留存用户数
  • Web3+AI融合新纪元:Sollong用智能终端重塑协作计算未来
  • 区别下IO多路复用,reactor,事件循环(EventLoop),Epoll这几个的概念以及之间的关系
  • 文献分享0719
  • 大数据时代下的时序数据库选型指南:基于工业场景的IoTDB技术优势与适用性研究
  • 脚手架本地link标准流程
  • 在 OpenSUSE Tumbleweed 和 Leap 上安装 VirtualBox
  • 【Linux】环境基础与开发工具的使用
  • x86上编译jetson nano的docker
  • Nestjs框架: 基于TypeORM的多租户功能集成
  • Android性能优化之网络优化
  • 分布式面试点
  • 在云端解锁硬件的无限可能 —— 深圳航天科技创新研究院赋能新一代仿真教学平台
  • Zabbix安装-Server
  • 低代码开发实践博客
  • AWS(基础)
  • AWS SSL证书无缝迁移完整指南 - 零业务中断方案
  • 开发避坑短篇(2):uni-app微信小程序开发‘createIndependentPlugin‘模块缺失问题分析与解决方案
  • 零基础入门:用C++从零实现TCP Socket网络小工具
  • 电脑插上u盘不显示怎么回事
  • Vue (Official) v3.0.2 新特性 为非类npm环境引入 globalTypesPath 选项
  • 实习十三——传输层协议
  • c语言笔记---结构体
  • Java 大视界 -- Java 大数据在智能医疗电子健康档案数据挖掘与健康服务创新中的应用(350)