前言

  • 环境:

    • 系统版本:debian 11 x86_64
    • FreeSWITCH版本:1.10.6

安装步骤

  1. 安装依赖(安装之前最好换apt软件源为国内的)
apt install -y gnupg2 wget autoconf lsb-release libtool libtool-bin libtiff-dev uuid-dev pkg-config openssl libssl-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libspeexdsp-dev libldns-dev libedit-dev yasm nasm ffmpeg libswscale-dev libavformat-dev lua5.4 liblua5.4-dev libopus-dev libpq-dev libmariadb-dev unixodbc unixodbc-dev libsndfile1-dev
  1. 下载FreeSWITCH源码包
git clone https://github.com/signalwire/freeswitch.git -bv1.10 freeswitch
cd freeswitch
./bootstrap.sh -j
  1. 编译安装spandsp
git clone https://github.com/freeswitch/spandsp.git
cd spandsp
./bootstrap.sh -j
./configure
make
make install
ldconfig
  1. 编译安装sofia-sip
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh -j
./configure
make
make install
ldconfig
  1. 编译安装FreeSWITCH
# 预编译
./configure --prefix=/usr/local/freeswitch
# 编译。如果是多核处理器,比如4核,可以用make -j4,能加快编译速度
# 编译时可以编辑modules.conf,取消编译mod_signalwire、mod_opus
make
make install
  1. 启动
# 启动服务端
/usr/local/freeswitch/bin/freeswitch -nosql -nonat -nc
# 如果有ipv6相关报错,需要删掉/usr/local/freeswitch/etc/freeswitch/sip_profiles目录下名字带ipv6的目录和文件
# 进入控制台
/usr/local/freeswitch/bin/fs_cli

创建软链接

ln -s /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
ln -s /usr/local/freeswitch/bin/fs_cli /usr/local/bin/

FreeSWITCH连接MySQL

mysql版本:5.7

从版本1.10.0开始,FreeSWITCH通过mod_mariadb原生支持MySQL

  1. 编译时修改module.conf.xml,取消mod_mariadb的注释
  2. 编辑autoload_configs/pre_load_modules.conf,注释掉mod_pgsql,取消mod_mariadb的注释
<configuration name="pre_load_modules.conf" description="Modules">
<modules>
<!-- Databases -->
<load module="mod_mariadb"/>
<!-- <load module="mod_pgsql"/> -->
</modules>
</configuration>
  1. 编辑autoload_configs/switch.conf.xml,添加下面一行内容。注意修改IP、端口、数据库名、用户名、用户密码。如果有postgresql相关的配置信息,需要注释掉。
<param name="core-db-dsn" value="mariadb://Server=192.168.0.10;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />
  1. 编辑sip_profile,添加下面内容,注意修改IP、端口、数据库名、用户名、用户密码。
<param name="core-db-dsn" value="mariadb://Server=192.168.0.10;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />
  1. 测试启动:
/usr/local/freeswitch/bin/freeswitch -nonat
# 启动时会自动创建数据表
# 一些报错如"Specified key was too long; max key length is 3072 bytes"、"Duplicate key name"可忽略
  1. 使用软电话如MicroSIP注册,查看数据表registrations中有没有注册信息,有的话说明FreeSWITCH已连接MySQL
  2. 在FreeSWITCH控制台执行shutdown关闭FreeSWITCH,重新启动
/usr/local/freeswitch/bin/freeswitch -nonat -nosql -nc

debian11编译安装freeswitch的更多相关文章

  1. freeswitch编译安装,初探, 以及联合sipgateway, webrtc server的使用场景。

    本文主要记录freeswitch学习过程. 一 安装freeswitch NOTE 以下两种安装方式,再安装的过程中遇到了不少问题,印象比较深刻的就是lua库找到不到这个问题.这个问题发生在make ...

  2. 64位FreeSWITCH编译安装(版本1.4.20)

    1.安装64位的CentOS6.5操作系统(勾选的服务器版本安装). 2.下载FreeSWITCH安装包以及关联的lib库.下载地址http://files.freeswitch.org/downlo ...

  3. Centos 6 安装FreeSWITCH

    为了安装FreeSWITCH ,我选择的Linux是CentOS,目前最新的Centos版本是6.具体安装CentOS的是步骤详见网上的其它资料,本节的主要目的是为了记录FreeSWITCH的安装过程 ...

  4. Centos7源代码安装freeswitch和启动freeswitch

    centos7下安装freeswitch版本:1.6. 1.下载源代码: 进入目录 cd /usr/local/src 克隆原代码 git clone -b v1.6 https://freeswit ...

  5. centos 安装 freeswitch,开启与关闭

    ---恢复内容开始--- 官网说明地址 :https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7 1.获取源码 ...

  6. Ubuntu安装FreeSWITCH亲测

    本人在安装FreeSWITCH的时候遇到了相当多的坑,网上很多方法都模棱两可,经常装失败,最后终于装成功后做一下总结 最顺利的安装方式 1. 下载压缩文件 下载地址:http://files.free ...

  7. 记录安装freeswitch的日常

    已知安装版本:Linux:Centos7 Freeswitch:1.10.2 解: 注意:(最好呢是先下载好包,然后上传到这个所用的环境中) 1.安装对应依赖 yum install -y git a ...

  8. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  9. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  10. Linux下编译安装Vim8.0

    什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版 ...

随机推荐

  1. java中各引用类型的生存时间

    引用类型由上往下一次减弱: 强引用:Object obj=new Object(),无论什么情况下,只要强引用关系还存在,就不会回收被引用的对象. 软引用:像系统中缓存这些,在系统即将报内存溢出异常时 ...

  2. 音视频八股文(12)-- ffmpeg 音频重采样

    1重采样 1.1 什么是重采样 所谓的重采样,就是改变⾳频的采样率.sample format.声道数等参数,使之按照我们期望的参数输出. 1.2 为什么要重采样 为什么要重采样?当然是原有的⾳频参数 ...

  3. 音视频八股文(7)-- 音频aac adts三层结构

    AAC介绍 AAC(Advanced Audio Coding)是一种现代的音频编码技术,用于数字音频的传输和存储领域.AAC是MPEG-2和MPEG-4标准中的一部分,可提供更高质量的音频数据,并且 ...

  4. 2020-10-19:golang里defer为什么要逆序执行?顺序执行不是更符合人的习惯吗?

    福哥答案2020-10-19: 后面定义的函数可能会依赖前面的资源,所以要先执行.如果前面先执行,释放掉这个依赖,那后面的函数就不能找到它的依赖了.***[评论](https://user.qzone ...

  5. 2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行,如何实现?

    2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行 ...

  6. TypeError: Cannot read property 'upgrade' of undefined

    解决方案: 在你的.env.dev配置文件中配置VUE_APP_BASE_API并对target赋值

  7. Jan 2023-Prioritizing Samples in Reinforcement Learning with Reducible Loss

    1 Introduction 本文建议根据样本的可学习性进行抽样,而不是从经验回放中随机抽样.如果有可能减少代理对该样本的损失,则认为该样本是可学习的.我们将可以减少样本损失的数量称为其可减少损失(R ...

  8. 简单记录一下从网上找到的python的渗透方面的第三方库

    python的hacker三方库 Scapy, Scapy3k:发送,嗅探和剖析并伪造网络数据包,可以做交互式应用或单纯的作为库来使用 pypcap, Pcapy and pylibpcap:几个不同 ...

  9. Doris(七) -- 修改表、动态和临时分区、join的优化

    修改表 修改表名 -- 1.将名为 table1 的表修改为 table2 ALTER TABLE table1 RENAME table2; -- 示例 ALTER TABLE aggregate_ ...

  10. 如何解决PyCharm中运行不了python代码的问题

    一.问题分析 一般是新手小白才会出现这个问题.刚入门python或者Web自动化测试的集美们很多都会选择使用PyCharm来运行python,但是下载安装完PyCharm后,新建了一个python项目 ...