2 Freeswitch的安装

2.1 准备工作

  • 服务器安装CentOS

  • 因为是内部环境,可以关闭一些防火墙设置,保证不会因为网络限制而不能连接

    关闭防火墙

    查看防火墙 systemctl status firewalld

    关闭防火墙 systemctl stop firewalld

    查看防火墙服务是否开机启动 systemctl is-enabled firewalld

    关闭防火墙开机启动 systemctl disable firewalld

    关闭 SELinux

    查看当前SELinux状态 getenforce

    关闭SElinux setenforce 0

    编辑配置文件 vim /etc/selinux/config

    SELINUX=permissive

    修改此参数,修改为 disabled

  • 更新环境

    yum -y update

  • 先大概的安装一些编译环境需要的模块,在安装过程中再根据报错提示进行需要的模块安装

    yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release

    yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libks libks-devel signalwire-client-c signalwire-client-c-level

2.2 下载freeswitch

2.3 编译

  • 编译

    cd /usr/local/src/freeswitch

    ./bootstrap.sh -j

    ./configure --enable-portable-binary \

    --prefix=/usr --localstatedir=/var --sysconfdir=/etc \

    --with-gnu-ld --with-python --with-erlang --with-openssl \

    --enable-core-odbc-support --enable-zrtp

    ./bootstrap.sh

    ./configure

  • 运行后应该会有一些编译环境没有安装完成,会有报错提示,根据提示安装完所有模块,注意要使用正确的模块名称,一般是去掉版本号,同时还要安装一个同名的带-devel结尾的开发版本模块

    yum install -y 模块名称

  • 缺少模块出现如下提示

    checking for spandsp >= 3.0... configure: error: no usable spandsp; please install spandsp3 devel package or equivalent

  • 根据提示对应需要安装spandsp3和spandsp3-devel

    yum install -y spandsp3

    yum install -y spandsp3-devel

  • 安装spandsp3p这个包时,有可能会出现下载镜像点没有对应的包体,阿里,网易,教育网等都没有对应的镜像,所以需要给系统添加更多的第三方镜像,这里推荐以下镜像:

    Install OKey repository:

    yum install http://repo.okay.com.mx/centos/7/x86_64/release/okay-release-1-1.noarch.rpm

    Install cheese repository:

    yum install http://www.nosuchhost.net/~cheese/fedora/packages/epel-7/x86_64/cheese-release-7-1.noarch.rpm

  • 安装完成这个第三方镜像后,下载包体时会从这个第三方镜像FTP下载,下载后会进行密钥校验,会出现校验报错

    警告:/var/cache/yum/x86_64/7/okay/packages/spandsp-3.0.0-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 13d0a55d: NOKEY

    从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OKAY 检索密钥

    源 "Extra OKay Packages for Enterprise Linux - x86_64" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。

    失败的软件包是:spandsp-3.0.0-1.el7.x86_64

    GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OKAY

  • 我们需要把第三方镜像FTP下载后的密钥校验给关闭,之后可正常安装第三方包体,方法如下:

    找到文件 /etc/yum.repos.d/okey.repo

    打开后将其中所有 gpgcheck=0 改为 gpgcheck=1

  • 其它第三方镜像源出现问题,同理处理。

  • 安装spandsp3-devel时如果发生依赖关系问题,因为spandsp3已经依赖关系对应到spandsp-devel上了,所以无法安装成功,这时我们需要把spandsp和spandsp-devel都移除后就可以正确安装spandsp3-devel了

    yum remove -y spandsp

    yum remove -y spandsp-devel

  • 安装完重成,要重新进行编译步骤的两个命令,再看是否提示其它模块需要安装

  • 缺少模块出现如下提示

    checking for sofia-sip-ua >= 1.13.6... configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent

  • 需要安装对应的devel包,建立依赖关系

    yum install -y sofia-sip

    yum install -y sofia-sip-devel

  • 编译成功会看到如下图提示



    jpeg)

2.4 安装

  • 开始安装,使用安装命令

    make

    make install

  • 安装中会出现错误提示,并且安装过程会中止。其原因为安装环境需要的模块没有安装完成,如下提示:

    Makefile:1442: *** You must install libavformat-dev and libswscale-dev to build mod_av。 停止。

  • 处理这种提示错误,可以发现需要安装 libavformat-devel 和 libswscale-devel ,直接使用yum进行安装

    cd libs

    git clone https://freeswitch.org/stash/scm/sd/libav.git

    或者 wget https://freeswitch.org/stash/rest/api/latest/projects/SD/repos/libav/archive?format=zip

    cd libav

    ./configure

    make

    make install

  • 安装完成后,需要重新编译后才能再次安装,否则安装仍会提示相同问题

    ./bootstrap.sh

    ./configure

    make

  • 另一种解决方案

    编译libav成功

    sudo ldconfig

    修改freeswitch 编译脚本:

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

    ./configure

  • 最终还是没有成功解决,由于mod_av这个模块是用于视频通话的,在呼叫中心当前暂时不会使用到,所以可以直接不安装这个模块先,那么我们可以找到对应安装配置文件,把此模块注释掉,随便把mod_callcenter这个呼叫中心模块打开

    vi /etc/local/src/freeswitch/modules.conf

    applications/mod_av

    applications/mod_callcenter

  • 见到如下图所示,则安装成功:

  • 安装高质量音频文件

    make -j cd-sounds-install

    make -j cd-moh-install

  • 见到如下图所示,则安装成功:

  • 启动freeswitch

    cd /usr/local/freeswitch/bin

    ./freeswitch

  • 见到如下图所示,则运行成功

  • 为了使用方便,可以把启动freeswitch和其命令端做符号链接放到搜索路径中,之后可以在任何路径下直接执行freeswitch 和 fs_cli 来启动

    ln sf /usr/local/freeswitch/bin/freeswitch /usr/bin/

    ln sf /usr/local/freeswitch/bin/fs_cli /usr/bin/

Freeswitch 安装爬坑记录1的更多相关文章

  1. mac M1 php扩展 xlswriter 编译安装爬坑记录

    电脑配置 MacBook Pro(14英寸,2021年) 系统版本 macOS Monterey 12.4 芯片 Apple M1 Pro PHP环境 MAMP Pro Version 6.6.1 ( ...

  2. centos7安装Mysql爬坑记录

    centos7安装Mysql爬坑记录   查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...

  3. mybatis-generator 详细配置及使用,爬坑记录

    mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...

  4. elasticsearch 单节点搭建与爬坑记录

    elasticsearch 单节点搭建与爬坑记录   prepare   虚拟机或者云服务器(这里用的是阿里云ECS) linux---centos7 安装完毕的jdk 相应的安装包(在https:/ ...

  5. 03、Swagger2和Springmvc整合详细记录(爬坑记录)

    时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容. swagg ...

  6. FreeSwitch安装和配置记录

    安装FreeSwitch 主要示例,下面的命令: git clone -b v1.2.stable git://git.freeswitch.org/freeswitch.git cd freeswi ...

  7. Linux mint 安装踩坑记录

    记得之前电脑上的那个Ubuntu是去年寒假的时候安装的,算下来自己用Linux也快一年了.虽然在去年暑假的时候我也曾经想过要把Ubuntu升级到18.04可是当时安装了几次都没有成功,自己也就放弃了. ...

  8. Ubuntu18.04 显卡驱动+Cuda安装踩坑记录 以及Ubuntu虚拟内存的添加

    前几天买了张亮机卡,终于把主显卡成功直连到Unraid OS的虚拟机上了.然后就开始安装ubuntu系统开始配置环境,遇到了不少坑,特此记录. gcc版本问题 在安装显卡驱动的时候,不要修改gcc版本 ...

  9. vuex2.0.0爬坑记录 -- mutations的第一个参数state不能解构

    今天在学习vuex的过程中,遇到了一个很困扰人的问题,最终利用vuex的状态快照工具logger解决了问题. 问题是这样的,我在子组件中使用了mapState()函数来将状态映射至子组件中,使子组件能 ...

随机推荐

  1. Vue:Vue的介绍以及组件剖析

    介绍 现在,随着基于JavaScript的单页应用程序(SPA)和服务器端渲染(SSR)的兴起,可以用JavaScript编写整个前端应用程序,并整洁地管理和维护该应用程序的前端代码.诸如Angula ...

  2. Treevalue(0x01)——功能概述

    TreeValue--一个通用树状数据结构与函数计算库 Treevalue v1.0.0版本已经于2021年10月24日正式发布,欢迎下载体验:opendilab / treevalue. 这算是tr ...

  3. MVC之三个单选按钮的切换选择

    实现需求: 1.三个多选按钮中:只能同时选择限时抢购和分享金或者拼团特惠和分享金,其中限时抢购和拼团特惠不能同时选择.并且点击后显示,再次点击赢隐藏. 1 @*活动信息*@ 2 <div> ...

  4. Python matplotlib numpy 曼德尔布罗特集合 曼德尔布罗特 B.Madelbrot

    import numpy as np import matplotlib.pyplot as plt def mandelbrot(h,w,maxit=20): y,x = np.ogrid[-1.4 ...

  5. 输出单层结点 牛客网 程序员面试金典 C++ Python

    输出单层结点 牛客网 程序员面试金典 C++ Python 题目描述 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表. 给定二叉树的根结点指针TreeNode* root,以及链表上 ...

  6. UVA 10004 Bicoloring(DFS染色)

    题意: 给N个点构成的无环无向图,并且保证所有点对都是连通的. 给每个点染色,要么染成黑要么染成白.问是否存在染色方案使得所有有边相连的点对颜色一定不一样. 是输出 BICOLORABLE 否则输出 ...

  7. PWN二进制漏洞学习指南

    目录 PWN二进制漏洞学习指南 前言 前置技能 PWN概念 概述 发音 术语 PWN环境搭建 PWN知识学习途径 常见漏洞 安全机制 PWN技巧 PWN相关资源博客 Pwn菜鸡小分队 PWN二进制漏洞 ...

  8. DeWeb进阶 :控件开发 --- 1 完成一个纯html的demo

    最近随着DeWeb(以下简称DW)的完善,和群友的应用的深入,已经有网友开始尝试做DeWeb支持控件的开发了! 这太令人兴奋了! 作为DeWeb的开发者,感觉DeWeb的优势之一就是简洁的第三方控件扩 ...

  9. Redis去重方法

    目录 1.基于 set 2.基于 bit 3.基于 HyperLogLog 4. 基于bloomfilter 这篇文章主要介绍了Redis实现唯一计数的3种方法分享,本文讲解了基于SET.基于 bit ...

  10. 目录扫描工具 dirsearch 使用详解

    介绍 dirsearch 是一个python开发的目录扫描工具.和我们平时使用的dirb.御剑之类的工具一样,就是为了扫描网站的敏感文件和目录从而找到突破口. 特点 多线程 可保持连接 支持多种后缀( ...