源码编译freeswitch-1.10.7遇到问题总结

这里先扯淡下,如果要论那个开源软件是个劝退大师,估计非freeswitch莫属了,对新人太不友好了。个人在源码编译freeswitch-1.10.7版本时,遇到过好多个问题,中间好几次就想放弃了,最后咬牙坚持下来,最终初步编译了一个可用版本。

编译过程及问题总结:

从freeswitch的1.10.x某个版本开始,freeswitch将sofia-sip和spandsp分离出来了,需要对这两个模块进行单独编译,因此在编译freeswitch前先检查下spandsp和sofia-sip,不然可能会报以下错误:

checking for spandsp >= 3.0... configure: error: no usable spandsp; please install spandsp3 devel package or equivalent

checking for sofia-sip-ua >= 1.xx.xx... configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent

安装sofia-sip和spandsp步骤如下:

安装sofia-sip:
git cloen https://github.com/freeswitch/sofia-sip.git 
如果网络不太好,git可能下载不下来,可以直接下载sofia-sip的zip压缩包
cd sofia-sip
./bootstrap.sh
./configure
make
make install

安装spandsp:
git clone https://github.com/freeswitch/spandsp
如果网络不太好,git可能下载不下来,可以直接下载spandsp的zip压缩包
cd spandsp
./bootstrap.sh
./configure
make
make install

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

编译freeswitch源码:

./configure --enable-portable-binary --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-gnu-ld --with-python --with-openssl --enable-core-odbc-support --enable-zrtp

可以根据实际需要开启不同的选项,之行上面命令后,会生成一个Makefile文件,然后执行make命令,可能会报不同的错误,主要是某个模块没有安装,可以根据实际需要,修改modules.conf,以linux下为例,如果不需要开启某个模块,可以使用#号将该模块注释掉,示例如下图:

然后重新执行make命令,可能会遇到以下错误:

看到这个错误,可能会一脸懵逼,明明freeswitch官网给的libav路径下载的该模块已经安装了,为什么还会遇到这个错误,如果稍微有点开发经验就会想到,是不是freeswitch代码引用的libav的版本跟实际安装libav版本的接口不一致导致,我的解决方法是:从libav官网下载最新的libav版本,如下图:

 

然后重新编译libav 12.3版本,然后再重新执行make命令编译freeswitch问题得到解决。

freeswitch配置更改如下:

由于本人的freeswitch测试环境是在公网部署的,需要更改vars.xml的external-rtp-ip和external-sip-sip地址为对应服务器的公网IP地址,如下图:

 

如果要更改freeswitch支持的音视频编码格式,需要更改vars.xml里的codec配置如下图:

然后启动freeswitch,将两个SIP终端注册到freeswitch上,然后一个SIP终端做为主叫去呼叫另外一个SIP终端,效果图如下:

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值