freeswitch单独编译模块
A. 如何在xshell5中编译freeswitch源代码
(1)使用安装包安装
Windows用户可以直接下载安装文件,然后根据自己的系统选择不同目录,32位系统的用户选择x86目录,64位系统的用户选择x64目录。freeswitch.msi是最新的安装程序,一般隔几天就会更新一次版本。笔者的测试环境是32位的Windows XP,下载界面如图3-3所示
如同安装其他程序一样,我们全部选择默认设置即可,也就是说只要连续单击“Next”按钮就能安装完毕。安装完成后选择”开始菜单”→“所有程序”→“FreeSWITCH”→ “FreeSWITCH”便可以启动FreeSWITCH了,启动后的界面如图3-4所示。
如果安装过程中你没有修改默认安装路径的话,那么FreeSWITCH的实际安装路径是:c:\Program Files\FreeSWITCH,配置文件在该目录的conf目录下
(2)从源代码安装
如果从源代码安装,则首先要下载源代码。
除此之外,也可以Git仓库获取源代码。Git是FreeSWITCH使用的版本控制工具,从Git仓库获取源代码的好处是可以随时更新,并可以很方便地切换到不同的代码分支,甚至“倒回”到任意提交点。
如果从Git仓库获取源代码,需要先在Windows上安装Git。
安装Git很简单,一般来说双击安装文件并连续单击“Next”按钮即可安装完毕。不过,在Windows平台编译FreeSWITCH有几个要注意的事情,因此在安装Git的过程中我们也需要注意以下问题,并做适当的选择:
将FreeSWITCH的源代码放到一个“干净”的目录下。为避免有时候遇到奇怪的问题,最好把代码放到一个比较不容易出问题的目录下,如可以放到
C:\src\freeswitch 或D:\src\freeswitch下,这两个都是比较好的目录。而像 C:\My
Documents(有空格)或C:\源代码中文目录\freeswitch(有中文)之类的则在编译或使用时可能会有问题。
B. CentOS7下FreeSwitch1.8源码安装过程完整记录
1、yum 安装相关的依赖包
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、安装 mod_shout 模块以支持 mp3 格式
yum install -y libshout-devel lame-devel libmpg123-devel
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-static --enable-shared
make
make install
vi /etc/ld.so.conf
#换行加入:/usr/local/lib
#保存退出 :wq
ldconfig
3、安装 cmake
yum remove cmake
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar vzxf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make
make install
4、 安装 libks
yum install libatomic
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make
make install
5、安装 signalwire-c
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make
make install
ln -sf
/usr/local/lib64/pkgconfig/signalwire_client.pc
/usr/lib64/pkgconfig/signalwire_client.pc
6、下载并安装 freeswitch1.8
如下 git 为国内址,速度较快,也可以从官方下载源码
git clone -b v1.8 https://git.oschina.net/nwaycn/freeswitch.git
./bootstrap.sh -j
./configure --enable-portable-binary
--prefix=/usr/local/freeswitch
--with-gnu-ld --with-python --with-openssl
--enable-core-odbc-support --enable-zrtp
--enable-libmp3lame
make
make -j install
如下安装语音文件,用时会较长
make -j cd-sounds-install
make -j cd-moh-install
7、安装后的一些操作
设置全局命令软连接
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
禁用 freeswitch 上 ipv6
mv external-ipv6.xml external-ipv6.xml.inactive
mv internal-ipv6.xml internal-ipv6.xml.inactive
8、启动 freeswitch
freeswitch -nc #后台启动
freeswitch 常用命令
#列出 internal SIP Profile 的状态
sofia status profile internal
#列出某个 Profile 上所有已注册用户
sofia status profile internal reg
#过滤某些符合条件
sofia status profile internal reg 1000
sofia status profile internal user 1000
#列出网关状态
sofia status gateway gw1
#以上命令都可以将 status 用 xmlstatus 来代替,以列出 XML 格式的状态,这样比较容易用
于其他程序解析
#启动、停止、重启某个 Profile 的命令
sofia profile internal start #启动
sofia profile internal stop #停止
sofia profile internal restart #重启
#有时候修改了某个 Profile 的某个参数,不需要重启(重启是影响通话的),可以使用下列
命令让 FreeSWITCH 重读 sofia 的配置
#注意并不是所有的参数都能生效
sofia profile internal rescan
#添加了一个新的 gateway 以后,也可以使用 rescan 指令读取
sofia profile external rescan
#如果是修改了一个网关,则可以先删除该网关,再 rescan
sofia profile external killgw gw1
sofia profile external rescan
#下列命令可以指定某个网关立即向外注册或注销
sofia profile external register gw1
sofia profile external unregister
#开启该 Profile 的 SIP 跟踪功能抓 SIP 包
sofia profile internal siptrace on
#有时候,希望将已经注册的用户清理掉,可以使用如下命令,注意此命令只是临时清理,
客户端重新注册的话还是可以注册成功的
sofia profile internal flush_inbound_reg [email protected]
#也可以根据 call-id 来清理
sofia profile internal reg 1000 #通过此命令查找到 call-id 的值
sofia profile flush_inbound_reg zsfsdfhdfgdfsdfsdfsdfsdf #清除 call-id=zsfsdfhdfgdfsdfsdfsdfsdf 的用户
C. freeswitch下载--安装--配置
configure只是检查你的环境是否满足编译条件,然后生成makefile
你的configure提示你不满足编译条件,你自然无法make
它提示你没装C编译器
先输入
$su
$yum install gcc
把gcc装了试试看吧
可能还会有其他包依赖关系不满足,缺什么就装什么吧