zoukankan      html  css  js  c++  java
  • FreeSWITCH 安装配置的 各种坑, 填坑

    个人安装环境:
    OS:CentOS6.7 64位
    FreeSWITCH Ver:1.6.17

    一. 编译出错

    安装 之前, 最好 先安装 这几个东西(如果有, 请忽略):

    yasm (有nasm的话 不用装这个) , 
    opus-devel(可能 提示 libopus-dev 或 libopus-devel 等) , 
    lua-devel , libsndfile-devel , libtiff-devel

    当然了,  你也可以 先不管, 等 出错 提示了, 在按照下面的方法安装:

    1. 安装 yasm ,  yasm 和 nasm 必须要有一个,必须装了!

    错误提示: Neither yasm nor nasm have been found

    ((which nasm) || (which yasm) || (git clone https://github.com/yasm/yasm.git && cd yasm && ./autogen.sh && make && make install))

    2.安装 lua-devel

    错误提示:  找不到 lua.h 等lua的头文件

    yum install lua lua-devel

    3.安装 opus-devel

    错误提示: You must install libopus-dev to build mod_opus

    yum -y install opus-devel
    #可能需要清理:  make clean && ./configure && make

    如果还是报这个错误, 就注释这两行,在Makefile:

    vim freeswitch/src/mod/codecs/mod_opus/Makefile
    # Comment line 896 & 897
    #install: error 
    #all: error

    4.安装 sndfile

    错误提示 :  You must install libsndfile-dev to build mod_sndfile

    yum install libsndfile-devel

    或者源代码编译安装:

    #下载包libsndfile-x.x.xx.tar.gz  from地址 http://www.mega-nerd.com/libsndfile/#Download,  然后
    wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz
    tar zxvf libsndfile-1.0.28.tar.gz ./configure make make install cp /usr/local/lib/pkgconfig/sndfile.pc /usr/lib64/pkgconfig

    然后 重新 configure FreeSWITCH , 再 make

    如果还是报这个错误,就修改这两行,在 Makefile 末尾:

    vim src/mod/formats/mod_sndfile/Makefile
    # 修改这两行install: install-am
    all: install

    然后 再 make

    5.安装 libyuv 

    错误提示: You must install libyuv-dev to build mod_fsv

    cd freeswitch/libs  
    git clone https://freeswitch.org/stash/scm/sd/libyuv.gitcd libyuv
    make -f linux.mk CXXFLAGS="-fPIC -O2 -fomit-frame-pointer -Iinclude/"
    make install
    cp /usr/lib/pkgconfig/libyuv.pc /usr/lib64/pkgconfig/

    6.安装 libvpx

    错误提示: You must install libvpx-dev to build ....

    cd freeswitch/libs 
    git clone https://freeswitch.org/stash/scm/sd/libvpx.git
    cd libvpx
    ./configure --enable-pic --disable-static --enable-shared
    make
    make install
    cp /usr/local/lib/pkgconfig/vpx.pc /usr/lib64/pkgconfig/

    7.安装 libpng

    错误提示: You must install libpng-dev to build ....

    git clone https://freeswitch.org/stash/scm/sd/libpng.git
    cd libpng
    ./configure
    make
    make install
    cp /usr/local/lib/pkgconfig/libpng* /usr/lib64/pkgconfig/

    8.安装 libav

    错误提示: You must install libav-dev to build mod_av

    或者 : You must install libavformat-dev to build mod_av

    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 #CFLAGS="-fPIC" ./configure --enable-pic --enable-shared make # make CXXFLAGS="-fPIC" make install

    安装完成,如果 make 还是 提示这个错误,重新执行:

    ./bootstrap.sh -j
    ./configure
    make

     二. 其他问题

    1.错误提示: libs/spandsp

    configure: loading cache ../../config.cache
    configure: error: `CFLAGS' was not set in the previous run
    configure: error: `CPPFLAGS' was not set in the previous run
    configure: error: in `/usr/src/freeswitch.git/libs/spandsp':
    configure: error: changes in the environment can compromise the build
    configure: error: run `make distclean' and/or `rm ../../config.cache' and start over

    解决: 重新 configure

    ./configure -C && make

    三. 安装中文语音

    fs默认不加载中文语音。需要在fs的src中首先编译中文模块。

    1.编译:

    a.在 configure 之前, 编辑 modules.conf,  取消 "#say/mod_say_zh"  这行的注释 ->"say/mod_say_zh"

    b.补救安装 `make mod_say_zh-install` 

    2.加载(不重启fs)

    在fs控制台上加载该模块 `load mod _say_zh` 
    若想fs在每次启动的时候都加载该模块,就在`autoload_configs/modules.conf.xml`中`<load module="mod_say_zh">`的注释去掉即可。

    也可以这样:

    sed -i 's#<!-- <load module="mod_say_zh"/> -->#<load module="mod_say_zh"/>#g' autoload_configs/modules.conf.xml

    3.修改 `var.xml`中的配置 

    `<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/>`修改为中文语音文件的目录
    `<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/zh/cn/link"/>`
    加入以下几行(也可以不加)

    <X-PRE-PROCESS cmd="set" data="default_language=zh"/>
    <X-PRE-PROCESS cmd="set" data="default_dialect=cn"/>
    <X-PRE-PROCESS cmd="set" data="default_voice=sue"/>

    4.加入中文语音配置

    cd conf/lang
    cp -R en zh
    mv zh/en.xml zh/zh.xml
    vim zh/zh.xml 
    (替换路径`en/us/callie`和 `en`等:第二行修改为)
    <language name="zh" say-module="zh" sound-prefix="$${sounds_dir}/zh/cn/link" tts-engine="cepstral" tts-voice="link">

    5. 载入中文配置

    在`freeswitch.xml`的`<section name="languages" `节点中增加一行 (或那一行取消注释)

    ` <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>`

    四. 解决ESL拒绝连接问题

    默认是只接受本机连接的,稍一改动就 内外都不能连接了,或者只能接受内外之一连接 

    解决方法:

    1. event_socket.conf.xml 加入:
    <param name="apply-inbound-acl" value="domains"/>
    
    2. acl.conf.xml 加入:
    <list name="domains" default="deny">
    <node type="allow" domain="$${domain}"/>
    <node type="allow" cidr="192.168.1.0/24"/>
    <node type="allow" cidr="127.0.0.1/24"/>
    </list>

     <未完待续,欲知后事如何,且听下回分解> 

  • 相关阅读:
    关于报错”已有打开的于此Command相关联的DataReader,必须首先将它关闭。“的问题
    Dockerjenkins环境搭建跟配置
    Python+selenium 【第十章】封装config类,读取配置文件,封装驱动类,适配windows/mac
    —— “欢迎来到我的小屋”
    Python+selenium 【第九章】封装excel类,封装test_data类 读取测试元素信息
    Linux搭建docker
    Python+selenium 【第十二章】封装日志类优化其他方法并添加日志(异常处理)
    【selenium】Python自动化面试题
    Dockerjenkins容器安装python并配置环境变量
    【优化框架】新增期望结果,断言为mysql情况下动态化参数替换
  • 原文地址:https://www.cnblogs.com/lzpong/p/6740188.html
Copyright © 2011-2022 走看看