Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >FreeSWITCH新手指南

FreeSWITCH新手指南

作者头像
杜金房
发布于 2022-12-12 07:16:48
发布于 2022-12-12 07:16:48
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

欢迎使用FreeSWITCH。本文最早写于2009年,最后更新时间是2022年6月4日。

FreeSWITCH的官方网站是www.freeswitch.com,如果你对FreeSWITCH还不是很了解,可以先阅读什么是FreeSWITCH:http://www.freeswitch.org.cn/blog/2009/11/what-is-FreeSWITCH/。

最快的学习FreeSWITCH的方法是使用这个Docker镜像。随着互联网及云原生的发展,Docker已经成了大多数服务端软件事实上的运行方式和标准。只要你的电脑能运行Docker,你就可以运行FreeSWITCH。

如果你不使用上述Docker镜像,你也可以通过以下方式安装和使用FreeSWITCH。

FreeSWITCH最理想的运行平台是64位的Linux。FreeSWITCH核心开发者大部分都使用Debian(目前最新的FreeSWITCH版本支持Debian 10和Debian 11),当然,也有很多人在CentOSUbuntu或BSD系列的UNIX上安装FreeSWITCH,但如果你是个FreeSWITCH新手,使用Debian可以少踩好多“坑”。

在Debian上安装FreeSWITCH的方法见:https://freeswitch.org/confluence/display/FREESWITCH/Debian 。如果系统提示你需要一个PAT,可以参考如何创建一个FreeSWITCH PAT:http://www.freeswitch.org.cn/blog/2022/06/FreeSWITCH-PAT/。

如果你使用Windows,可以到files.freeswitch.org下载已编译好的安装包。如果你有Visual Studio的开发环境,也可以下载源代码自己编译。

你也可以下载源代码编译。如果你提交BUG时,官方也只对Git master分支中的代码提供支持。而且,从源代码安装FreeSWITCH,也不需要PAT。

源代码下载地址:https://files.freeswitch.org/freeswitch-releases/ 。

由于 FreeSWITCH 更新非常快,请自己查找最新的版本,如,截止 2022年6月4日,最稳定的发行版是:1.10.7。

如果你会使用Git,也可以从Github代码库下载源代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/signalwire/freeswitch.git

安装FreeSWITCH前需要安装一些依赖。在不同的平台上,依赖不同的包,如:

Debian/Ubuntu:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev

CentOS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y subversion autoconf automake libtool gcc-c++ ncurses-devel make

FreeSWITCH最新的源代码将Sofia-SIP和SpanDSP移出了FreeSWITCH代码仓库,分离到了独立的仓库中,在安装FreeSWITCH之前需要单独安装:

  • https://github.com/freeswitch/sofia-sip
  • https://github.com/freeswitch/spandsp

最新的mod_verto模块也需要libks,源代码可以从以下地址获取:

  • https://github.com/signalwire/libks

你最好参考一下http://www.freeswitch.org.cn/Makefile以确定你的平台上应该安装哪些包。当然,该文件不是永远能保证最新的。

编译安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./bootstrap.sh # 初始化源码环境和工具./configure    # 配置,如果将FreeSWITCH装到特定位置,可以使用 --prefix 指定make           # 编译make install   # 安装

详见:Installation Guide:https://freeswitch.org/confluence/display/FREESWITCH/Installation和FreeSWITCH Explained.:https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH+Explained

配置:FreeSWITCH 缺省的配置是作为一个Home PBX来运行,你可以先用它来试验各种功能。等熟悉了以后再进行高级的配置与开发。

FreeSWITCH社区:https://freeswitch.org/confluence/display/FREESWITCH/Community成员都很友好,你可以通过邮件列表(英文):http://www.freeswitch.org.cn/blog/2009/11/beginners-guide/lists.freeswitch.org,Slack等获取帮助和交流经验。

Pastebin是一个专供粘贴配置、Debug、Log 等文本信息的地方。提交问题时,先把相关Log、出错信息等贴完后再把对应的链接发到邮件列表或IRC,就可以让别人帮你看一看是哪儿出错了。

如果遇到FreeSWITCH的Bug,可以参照一个FreeSWITCHBug修复手记到Github上给FreeSWITCH提Issue:https://github.com/signalwire/freeswitch/issues。

获取中文帮助信息,可以到RTS.cn上的Github Discussions讨论区讨论,国内用户可以通过本站的相关链接加入知识星球、QQ群、微信群等。为了得到及时有效的帮助,请在发帖前仔细读一下橡皮鸭子问题:http://www.freeswitch.org.cn/2012/09/21/jie-jue-xiang-pi-ya-zi-wen-ti.html

Github讨论区和知识星球里面的网友都很好,如果不是特别必要,请尽量不要往私人邮箱发邮件和在QQ及微信上发起私聊,因为:

  • 对方可能正在忙,相反,如果你发到公共列表或群里,更多的网友能看见,就有更多的机会得到帮助。
  • 对方可能对你提的问题不专业。相反,如果你发到公共列表或群里,更多的网友能看见,就有更多的机会得到帮助。
  • 你这样做可能不是很礼貌。

使用公共讨论区的好处:

公共讨论区的消息是异步的,这意味着,你的问题可能总会有人看到并给你答案。相反,如果你在QQ群中提问一个问题,这时候知道答案的人正好不在,而等他回来的时候你已经下线了。

另外,FreeSWITCH 知乎专栏:https://zhuanlan.zhihu.com/freeswitch上的文章或许对你有用,尤其是这一篇《说说FreeSWITCH社区》:https://zhuanlan.zhihu.com/p/19648543。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
每天进步一点点
很抱歉昨天没有给大家发消息。昨天在写这篇文章的时候,我的Mac的Spotlite突然又在后台建立索引,显示只剩下4分钟,但是一个4分钟过去了,两个4分钟过去了……20个4分钟过去的时候它还没有完,而且,由于我中途切换了几次窗口导致系统彻底失去响应,只好睡觉去了。问题是我睡醒了以后,它还没醒,就只好暴力重启了。Mac平时工作的挺好的,就这一点有点烦人。我一般不用Spotlite,因此回头想个办法把看能否把该功能禁了。
杜金房
2020/12/21
5380
FreeSWITCH安全漏洞怎么破?
其实呢,这个出了有一段时间了,如果刚刚看到,肯定是后知后觉,大概,是刚看到了下面一篇中文文章。
杜金房
2021/11/12
1.1K0
mod_cluechoo
今天,来说一说mod_cluechoo这个模块。在QQ群中看到好多朋友对此很好奇。 从名字看,不知道该模块是干什么的,而Wiki上对它的介绍也就只有一句话:mod_cluechoo implements Toyoda Masashi's famous Steam Locomotive (SL) command for FreeSWITCH。即,该模块在FreeSWITCH中实现了Toyoda Masashi的蒸汽机车命令。那么,该蒸汽机车又到底是什么东东呢?说来话长,可以看这里: http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html 。在UNIX系统上有一个ls命令,但有时候容易输错,成了sl,便会提示命令错误。而该蒸汽机车实现了一个sl命令,即蒸汽机车(Steam Locomotive)的英文缩写。实际上,该程序只是一个小小的玩笑,没什么实际用处。 该程序主要上对SL的介绍是这样的:SL (Steam Locomotive) runs across your terminal when you type "sl" as you meant to type "ls". It's just a joke command, and not usefull at all. Put the binary to /usr/local/bin. 那么,在FreeSWITCH中怎么玩呢? 该模块是默认编译和加载的,在FreeSWITCH控制台上重新加载一下该模块,便可以从日志中看出一些信息: freeswitch> reload mod_cluechoo 2014-01-18 22:30:17.610597 [CONSOLE] switch_loadable_module.c:1464 Successfully Loaded [mod_cluechoo] 2014-01-18 22:30:17.610597 [NOTICE] switch_loadable_module.c:269 Adding Application 'cluechoo' 2014-01-18 22:30:17.610597 [NOTICE] switch_loadable_module.c:315 Adding API Function 'cluechoo' 从上面的日志中可以看出,该模块实现了一个cluechoo App,以及一个cluechoo API。如果对App和API是什么东东不了解的同学可以复习一下前几天发的文章(我发文章有时候也是有伏笔的,呵呵)。 接着在命令控制台上输入以下命令,便会看到一辆小火车开过: freeswitch> cluechoo 那么App怎么使用呢?构造如下的Dialplan,拨打cluechoo试一试。 <extension name="cluechoo"> <condition field="destination_number" expression="^cluechoo$"> <action application="answer" data=""/> <action application="cluechoo" data=""/> </condition> </extension> 到这里,如果还不明白的同学继续回去看前几天讲的API和App。有兴趣的同学也要以看一看其源代码实现,挺有趣的哟 :) 。 ---------------------------------------- 题图:Steam Locomotive 来自FreeSWITCH cluechoo ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的“FreeSWITCH中文社... ”,或在通迅录->订阅号中搜索“FreeSWITCH-CN”来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2
杜金房
2020/12/21
3880
超级好用的FreeSWITCH资源列表
A curated list of awesome FreeSWITCH resources, modules, frameworks, libraries and software. Inspired by awesome-go.
杜金房
2022/12/12
1.4K0
Kamailio新手指南
Kamailio典型的仅支持Linux操作系统,直接在操作系统上安装也很方便。当然,最方便的是直接使用Docker启动Kamailio。Docker可以在Windows、macOS和Linux等宿主机操作系统上运行,所以,不管你使用何种操作系统,都可以很方便地运行Kamailio。
杜金房
2022/12/12
4.8K0
Kamailio新手指南
freeswitch笔记(2)-voip初体验
上一篇学习了如何安装freeswitch,接下来我们利用2个voip软件来体验如何互打电话(注:仍然是mac环境,windows用户可参考mac上的做法,原理相通)
菩提树下的杨过
2020/02/18
2.8K0
freeswitch笔记(2)-voip初体验
我们为FreeSWITCH做了一个免费的 Docker
很多初学FreeSWITCH的同学经常会问一个问题,我该使用哪个操作系统?FreeSWITCH支持Linux、Mac、Windows平台,Wiki页面上也有相关的说明。但随着时间的流逝,总会有一些文档来不及更新,因此,在安装时就总会遇到这样那样的问题。 FreeSWITCH的核心开发人员都使用Debian,但国内好像用CentOS的比较多,再加上各种版本差异,因此,这个问题其实没有一个最好的答案。我们一般会推荐Debian 10,但大多数人其实不听我们的推荐。 不过,Docker的出现在一定情况下解决了这个问题。因此,我们做了一个xswitch-free Docker解决方案,献给大家。希望大家能快速上手。
杜金房
2020/12/21
4.1K9
FreeSWITCH v1.10.5 版本发布
FreeSWITCH新版本发布,1.10.4版本将sofia-sip和spandsp两个库都移到了代码树外面,这造成了在某些平台上的编译依赖问题,这个版本主要是修复这些问题的。主要内容如下:
杜金房
2020/12/21
1.3K0
基于Freeswitch的语音视频通话
之前写过一篇《阿里云 opensips nat内网穿透》,当时是为了解决对讲机视频对讲的问题。但是之前的方案存在一个问题,那就是虽然服务器能够正常提供服务。但是在接通之后如果设备不在同一个局域网内就会导致有音频但是没有视频信息。这个问题困扰了很久,直到现在算是能够解决这个问题。出现上面这个问题的根本原因在于设备的网络层次关系太过复杂,视频信息没有办法透传。我不是语音视频方面的专家,集中nat结构我也不在叙述了,感兴趣的访问这个链接:https://www.cnblogs.com/zhumengke/articles/11204924.html
obaby
2023/02/22
4.5K0
FreeSWITCH模块
今天有一个朋友留言问如果要对freeswitch做监控或者功能扩展开发,有没有专门的对外的插件接口之类的。我想,使用ESL可能比较合适。在我们书里第十一章有简单的介绍,可以点击左下角的查看原文查看。
杜金房
2020/12/21
1.1K0
FreeSWITCH架构
在QQ群里老是看到有的朋友问到不同的模块都是干什么的。因此,我打算从今天起,把所有的模块都大体讲一遍。如果有时间我就多写点例子,时间少的话就写少点。 当然,说到模块,我们还得从FreeSWITCH的架构说起。我们先用一两天的间说一下FreeSWITCH的整体架构以及模块列表,然后,就可以式一一介绍所有模块了。当然,在讲的期间大家有什么问题话,也可以向我提问,我会有选择性的回答或“插播”一下。 FreeSWITCH的整体架构我们已经在最前面看到了,更详细一点的,我们看下图。
杜金房
2020/12/21
1.7K0
FreeSWITCH架构
雪中的LuaSocket
昨天在微信公共账号上接了一些粉丝,并发了一篇图文消息。今天盘点一下,送达人数59,图文页阅读人数12,共收到消息回复3条。看来,我的粉丝还不够活跃啊。
杜金房
2020/12/21
1.4K0
一个FreeSWITCH Bug修复手记
今天有人在微信群里提了一个问题:“杜老师,想麻烦您看一下,电话打进去之后就会出现崩溃,卡了两天了,麻烦您有时间可否帮忙看一下,多谢多谢了,加您好友了。”
杜金房
2022/04/28
7770
小尾巴
昨天讲了将SIP Trace放入日志文件的方法。有读者回复说正好用上,这也算是一点功德吧。 当然,昨天还留了一个小尾巴。将SIP Trace放入日志文件不止一种方法,其实还有更简单的方法,那就是,可以不用修改任何文件直接在控制台上修改SIP Trace日志的级别,如 sofia tracelevel info 将Sofia调试级别设为info以后,Trace出来的日志就自然都到日志文件中去了。另外,在FreeSWITCH控制台上也将看到绿色的输出(info级别的日志默认是绿色显示的)。 该命令极其简单,但还是有好多人不知道。不过,读者群中也有知道这一招的,他给我发来了正确的命令。虽然我已经知道了,但还是要感谢他一下。 当然,你也可以尝试其它颜色,如: sofia tracelevel err 使用如下命令改回原来的级别 sofia tracelevel console 当然,你也可以打完 sofia tracelevel 后按一下Tab键看看会出现什么。 需要指出,该命令不仅对于SIP Trace有效,而是对于所有的Sofia调试信息有效,如,你可以使用如下命令打开Sofia-SIP底层协议栈的调试: sofia loglevel all 9 然后,所有的调试信息不仅在控制台上输出,也会同时输出到日志里。 下面,再说一点Windows命令行窗口的一点小技巧。 有时候还是要从命令行窗口里复制文字信息(再强调一遍,我不喜欢看抓屏)。在命令行窗口标题栏上可以点击右键,选择标记,然后就可以在窗口中选择文字了。选择好以后,再次右击标题栏,点击复制就可以将标记的文字复制到剪贴板了。 当然,命令行窗口默认的缓冲区比较小,能回滚的行数有限,因此,需要看或者复制更多文本的话首先要调整回滚缓冲区,这个,可以右击标题栏选择属性,找一找相关的行数设置(具体的我忘了,一般我也不用Windows)。当然,现在大家都用大屏大分辨率了,顺便改一改窗口的尺寸也起来也不错… Windows烂归烂,但还是有办法让它稍微表现好一点的。据说微软对XP的结束支持进入倒计时了,对你有影响吗? ---------------------------------------- 题图:Tail 来自 Google图片 ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的“FreeSWITCH中文社... ”,或在通迅录->订阅号中搜索“FreeSWITCH-CN”来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2011~2013连续三年参加了在美国芝加哥举办的ClueCon全球VoIP开发者大会,该会议是由FreeSWITCH核心团队主办的。 如果你在学习和使用FreeSWITCH的过程中,有什么有趣的故事,也欢迎与我分享。移动设备上打字不方便,如果想写长的留言可以发邮件到 wechat@freeswitch.org.cn 。
杜金房
2020/12/21
4450
我Donate,我快乐
昨天由于太忙,没有发文章。今天看了一下统计信息,3篇图文信息的阅读人数分别人34、41、20,虽然最后一篇发的比较晚,但也过去两天了,看来,周末时间看的人比较少。大家可能都去娱乐了吧,看来周末我小休一下也是对的。
杜金房
2020/12/21
6430
mod_cdr_csv
这几天由于来回打飞机参加公司年会,来去匆匆,因此没顾上写东西。不过,在后台倒是收到不少消息。有关心的有问候的有祝福的,总之,在此一起谢谢了。
杜金房
2020/12/21
1.4K0
在FreeSWITCH中写一个简单的IVR
IVR(Interactive Voice Response)即交互式语音应答,也就是我们说的电话语音菜单,可以使用预先录制的语音或者TTS进行自动应答,提供菜单导航,主要用于呼叫中心系统。我们主要介绍FreeSWITCH提供的IVR功能。
杜金房
2022/12/12
4.4K2
在FreeSWITCH中写一个简单的IVR
FreeSwitch Linux(CentOS 6.5) 安装教程
这是资源站点,自行选择版本:http://files.freeswitch.org/freeswitch-releases/
Jensen_97
2023/07/19
8520
mod_unimrcp从FreeSWITCH代码树中删除
FreeSWITCH从代码树中删除了mod_unimrcp(https://github.com/signalwire/freeswitch/commit/3c7e8ff989355bf518eabaeea83036585e4782b7)。
杜金房
2022/12/12
3.1K0
mod_unimrcp从FreeSWITCH代码树中删除
FreeSwitch:send_dtmf/uuid_send_dtmf发送按键注意事项
很多时候我们打电话到公司前台,会听到类似“欢迎致电XXX,办公电话请直拨分机,咨询XX请按1,咨询YY请按2”这样的语音提示。在一些特定流程中,系统自动发起呼叫打到前台,希望实现自动按键(即:不用人手动按键),FreeSwitch提供了2个基本命令: send_dtmf及uuid_send_dtmf ,这2个基本功能一样,send_dtmf常用于ESL Outbound外联模式,不需要指定uuid,而uuid_send_dtmf则需要指定uuid.
菩提树下的杨过
2021/09/06
1.5K0
相关推荐
每天进步一点点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验