FreeSWITCH在虚拟机中的安装。

FreeSWITCH是一个开源的电话软交换平台,主要开发语言是C,某些模块中使用了C++,以 MPL1.1发布。更多的说明请参考 什么是FreeSWITCH?FreeSWITCH新手指南。您也可以阅读这本 《FreeSWITCH权威指南》。

准备相关的环境:ubuntu14.04系统

首先安装Git从它的库中下载代码安装FreeSWITCH  默认位置为/usr/local/freeswitch

apt-get install git-core

安装基础包

$ sudo yum install epel-release vim -y
$ curl -O  http://files.freeswitch.org/freeswitch-releases/freeswitch-1.6.6.tar.bz2
$ sudo yum install bzip2 -y
$ tar xvjf freeswitch-1.6.6.tar.bz2

安装依赖包

$ sudo yum install gcc-c++ sqlite-devel zlib-devel libcurl-devel pcre-devel  speex-devel ldns-devel  libedit-devel  openssl-devel -y
$ sudo yum install libjpeg-devel lua-devel libsndfile-devel libyuv-devel git libtool -y

代码依赖包

$ cd freeswitch-1.6.6
$ cd libs/
$ git clone https://freeswitch.org/stash/scm/sd/libyuv.git
$ cd libyuv/
$ make -f linux.mk CXXFLAGS="-fPIC -O2 -fomit-frame-pointer -Iinclude/"
$ sudo make install
$ sudo cp /usr/lib/pkgconfig/libyuv.pc /usr/lib64/pkgconfig/
$ cd ..
$ git clone https://freeswitch.org/stash/scm/sd/libvpx.git
$ cd libvpx/
$ sudo yum install yasm -y
$ ./configure --enable-pic --disable-static --enable-shared
$ make
$ sudo make install
$ sudo cp /usr/local/lib/pkgconfig/vpx.pc /usr/lib64/pkgconfig/
$ cd ..
$ git clone https://freeswitch.org/stash/scm/sd/opus.git
$ cd opus/
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ sudo cp /usr/local/lib/pkgconfig/opus.pc /usr/lib64/pkgconfig
$ cd ..
$ git clone https://freeswitch.org/stash/scm/sd/libpng.git
$ cd libpng/
$ ./configure
$ make
$ sudo make install
$ sudo cp /usr/local/lib/pkgconfig/libpng* /usr/lib64/pkgconfig/

编译

$ cd freeswitch-1.6.6
$ ./configure
$ make
$ sudo make install

安装声音文件

$ sudo make cd-sounds-install
$ sudo make cd-moh-install

新版本安装 上面的安装依赖包不用git到工程文件夹

$ git clone https://freeswitch.org/stash/scm/fs/freeswitch.git
$ cd freeswitch
$ sh support-d/prereq.sh
$ sh bootstrap.sh
$ ./configure --prefix=/usr/local/freeswitch
$ make
$ sudo make install

设置链接符号,便于使用

$ sudo ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
$ sudo ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/

部署成服务

sudo vim /usr/lib/systemd/system/freeswitch.service

[Unit]
Description=freeswitch
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/mintcode
ExecStart=/usr/local/freeswitch/bin/freeswitch
ExecStop=/usr/local/freeswitch/bin/freeswitch -stop 
Restart=always

[Install]
WantedBy=multi-user.target

配置文件

  • conf\sip_profiles\internal.xml 配置sip信息
1 添加H263~H2641.7版本
  1. $ sudo vim /usr/local/freeswitch/etc/freeswitch/autoload_configs/modules.conf.xml去掉注释
  2. $ sudo vim /usr/local/freeswitch/etc/freeswitch/vars.xml
  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,VP8,VP9,H263,H263-1998,H263-2000,H264"/>
  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,VP8,VP9,H263,H263-1998,H263-2000,H264"/>
2 添加授权注册 需要编译mod_xml_curl
  1. $ sudo vim /usr/local/freeswitch/etc/freeswitch/autoload_configs/modules.conf.xml去掉注释
  2. $ sudo vim /usr/local/freeswitch/etc/freeswitch/autoload_configs/xml_curl.conf.xml
    "directory">
      <param name="gateway-url" value="http://192.168.1.173:20501/freeswitch/dicectory" bindings="directory"/>
    binding>
  1. MSB配置
xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="netty4-http:http://{{msb.hostName}}:20501/freeswitch/dicectory"
    />
    <setHeader headerName="dial-string">
      <constant>
        {presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}
      constant>
    setHeader>
    <setHeader headerName="user">
      <javaScript>
        decodeURIComponent(request.headers.get('user'))
      javaScript>
    setHeader>
    <transform>
      <simple>
        
        
]]> simple> transform> <removeHeaders pattern="*" /> <setHeader headerName="Content-Type"> <simple> text/xml simple> setHeader> route> routes>

相关命令

  1. 显示哪些用户已注册 sofia status profile internal reg
  2. 控制台显示info级别日志 fs_cli -l info


作者:Jetsly
链接:https://www.jianshu.com/p/61ce097c9026#11-
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(FreeSWITCH在虚拟机中的安装。)