zoukankan      html  css  js  c++  java
  • centos7 安装freeswitch

     1、安装运行库

      yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel 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 libtiff-devel libtheora-devel libtool 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 libuuid-devel which yasm zlib-devel

    2、 cd /usr/local

    3、wget  http://files.freeswitch.org/freeswitch-releases/freeswitch-1.8.2.tar.bz2

    4、tar xvjf freeswitch-1.8.2.tar.bz2

    5、cd freeswitch-1.8.2

    6、./configure

    7、make install

    ---------------------------以上是安装freeswitch    下面是安装声音文件---------------------------

    语音包是安装在 /usr/local/freeswitch-1.8.2/sounds 下的

    1、make sounds-install

    2、make moh-install

     

     

    安装错误及其他

    一. 编译出错

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

    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

    #下载包libsndfile-x.x.xx.tar.gz  from地址 http://www.mega-nerd.com/libsndfile/#Download,  然后

    tar zxvf libsndfile-1.0.26.tar.gz

    ./configure

    make

    make install

    cp /usr/local/lib/pkgconfig/sndfile.pc /usr/lib64/pkgconfig

    #然后 重新 configure   FreeSWITCH...

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

     

    vim src/mod/formats/mod_sndfile/Makefile

    # Comment line 897 & 898

    #install: error

    #all: error

    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 ....

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

    cd libav

    ./configure             #CFLAGS="-fPIC" ./configure --enable-pic --enable-shared

    make                    # make CXXFLAGS="-fPIC"

    make install

     

     . 其他问题

    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">

    或者修改zh.xml
      <language name="zh" say-module="zh" sound-prefix="$${sound_prefix}/zh/cn/link" tts-engine="mod_tts_commandline" tts-voice="link">
    7、/usr/local/freeswitch/
    conf/freeswitch.xml
      在61行增加   <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>
    8
    、控制台 reloadxml

    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>

     

    FreeSwitch开启录音功能

    修改拨码计划

    打开文件../freeswitch/conf/dialplan/default.xml

    找到Local_Extension节点

     

    <extension name="Local_Extension">

    <condition field="destination_number" expression="^(10[01][0-8])$">

    在其下,添加:

    <action application="set" data="RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}"/> 

    <action application="set" data="RECORD_COPYRIGHT=(c) 2011"/> 

    <action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/>

    <action application="set" data="RECORD_ARTIST=FreeSWITCH"/>

    <action application="set" data="RECORD_COMMENT=FreeSWITCH"/>

    <action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/>

    <action application="set" data="RECORD_STEREO=true"/>

    <action application="record_session" data="$${base_dir}/recordings/archive/${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/>

     

    freeswitch呼叫慢的问题

    安装完freeswitch后,测试中发现呼叫请求服务器处理的特别慢,后来跟踪发现在/usr/local/freeswitch/conf/dialplan/default.xml中有个sleep 10s的处理,

    <condition field="${default_password}" expression="^1234$" break="never">

            <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>

            <action application="log" data="CRIT Open $${conf_dir}/vars.xml and change the default_password."/>

            <action application="log" data="CRIT Once changed type 'reloadxml' at the console."/>

     

  • 相关阅读:
    POJ 1840 Eqs 二分+map/hash
    【vijos】P1514天才的记忆
    函数介绍
    函数参数和函数返回值
    函数参数和函数返回值
    前端项目里常见的十种报错及其解决办法
    前端项目里常见的十种报错及其解决办法
    BootstrapTable的使用教程
    BootstrapTable的使用教程
    前端js实现打印(导出)excel表格
  • 原文地址:https://www.cnblogs.com/allen-zhang/p/11797876.html
Copyright © 2011-2022 走看看