这里先扯淡下,如果要论那个开源软件是个劝退大师,估计非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 installexport 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终端,效果图如下:

源码编译freeswitch-1.10.7遇到问题总结相关推荐

  1. MT8516源码编译问题mDNSResponder-320.10.80 fetcher failure

    出于兴趣,最近空暇时间摸摸MT8516--一款智能语音开发平台,网上相关资料比较少,遇到点问题只能自己摸索,将遇到的第一个问题记录下来,并对接下来的问题提出,希望有这方面爱好的嵌友一起探讨. 按照官网 ...

  2. 【Android开发】构建Android源码编译环境

    原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...

  3. anaconda tensorflow 2.3_TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

    1 安装选择 1.1 平台 目前TensorFlow已支持Mac.Ubuntu和Windows三个主流平台(64位平台), 1.2 GPU vs CPU 在安装时可以选择安装版本是否支持GPU, 1. ...

  4. mysql5.1编译安装centos7_CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装

    在CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装过程记录. 一.安装Nginx 1.安装依赖扩展 # yum -y install wget ...

  5. [转组第10天] | Android6.0.0_r1源码编译和POC程序的编译

    2018-05-23 Android6.0.0_r1源码编译 简要说明:android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述. 主机环境 Ub ...

  6. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  7. 低CUDA算力显卡用上高版本pytorch(ubuntu18.04源码编译特定版本pytorch(v1.10.0))

    低CUDA算力显卡用上高版本pytorch(ubuntu18.04源码编译特定版本pytorch(v1.10.0)) 一 电脑配置 二 正常情况下源码编译步骤 三 我的编译过程及出现的问题 首先 安装 ...

  8. python 3.10.0源码编译安装

    python 3.10.0源码编译安装 文章目录 python 3.10.0源码编译安装 1. 安装编译依赖工具 2. 下载python 3.10.0 3. 编译安装 Python 4. 体验 1. ...

  9. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

最新文章

  1. FPGA之道(63)“万能”的查表法
  2. Asp.net SignalR 实现服务端消息推送到Web端
  3. 小 Q 与树(dsu on tree + segment tree)牛客练习赛 81 D
  4. 一颗接一颗的飞鸽传书
  5. html1怎样插入视频,HTML视频教程,第1章 HTML初识
  6. JavaScript Date(日期)对象
  7. JS学习总结(3)——运算符/字符串
  8. maxscript文件常规命令
  9. java 前后端分离_Java项目如何实现前后端分离
  10. 【STM32F407的DSP教程】第1章 初学数字信号处理准备工作
  11. 培根密码(Bacon)——python解密
  12. python实战笔记之(4):刷博客浏览量
  13. sed替换指定字符串为某变量的值
  14. java获取小数位数_Java获取小数位数 | 学步园
  15. 未来6英寸主战场,碳化硅-精密划片机
  16. NBA2K18手游显示无法连接服务器,nba2k18手游交易被拒绝 | 手游网游页游攻略大全...
  17. LoRa 学习Day4 LoRa无线通信设计(二)空空距离测试
  18. 计算机主机的光驱怎么打开,笔记本电脑光驱,教您笔记本光驱怎么打开
  19. php正则匹配字符_PHP正则表达式匹配字符的方法汇总
  20. Java基础:宾馆管理系统(一)

热门文章

  1. 动物乐园java_利用面向对象、接口编写动物乐园
  2. 个人永久性免费-Excel催化剂功能第35波-Excel版最全单位换算,从此不用到处百度找答案...
  3. CityEngine基于规则贴图的实现技巧(一)
  4. 牛顿法、雅克比矩阵、海森矩阵
  5. C语言和软件工程的教学视频,软件工程学习视频
  6. Android 飞机大战详解与感悟
  7. 儿童书写台灯哪个牌子比较好?盘点护眼学生用台灯品牌排行
  8. UC/OS的46个系统函数
  9. javascript每日习题
  10. 别再回来了!GandCrab勒索软件最终版本解密工具降世