• Freeswitch 安装爬坑记录1


    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

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

    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

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

    • 安装高质量音频文件

      make -j cd-sounds-install
      make -j cd-moh-install

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

    • 启动freeswitch

      cd /usr/local/freeswitch/bin
      ./freeswitch

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

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

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

  • 相关阅读:
    第24课 多线程开发
    第23课 装饰器
    第22课 调用外部程序
    第20课 异常处理
    第19课 习题讲解
    第18课 面向对象
    第17课 调试程序
    第16课 pycharm 使用
    第15课 模块与包
    第14课 再识函数
  • 原文地址:https://www.cnblogs.com/aowind/p/15655308.html
Copyright © 2020-2023  润新知