伴随着初秋带来的微微凉风,我们也迎来期待已久的2022年FreeSWITCH高手速成培训。本次高手速成培训为线上形式进行,但作为2022年唯一一次高手速成培训,培训效果并没有受到举办形式的影响,相反,杜老师把准备了大半年的纯纯干货压缩在两天时间带给大家!接下来就让小编带大家回顾一下这次精彩的培训吧!

为期两天的培训,从介绍FreeSWITCH开始,杜老师由面到点、深入浅出地为我们讲解了基于FreeSWITCH可以干什么,实操性远远大于理论性是这次培训中最大的亮点。因为我们的目的不是为了解决问题,而是掌握怎么去解决问题的方法。就像杜老师常说的“授之以渔不如授之以渔”,关于对这句话的理解,大家可以仔细阅读一下《橡皮鸭子解题法》,可能会让你豁然开朗。
好了,话不多说,让我们一起回顾一下杜老师这两天精彩课程。
杜老师从FreeSWITCH是什么开讲,作为一个出生于2006年的开源软交换系统,它的功能极其强大,具有很强的跨平台能力和多媒体处理能力。FreeSWITCH几乎可以用在任何与音视频相关的场景中,而且它做得更好。虽然这部分内容参加培训的同学都知道一些,但站在小编的角度,每次听这部分内容,都会有不同的收获,你们呢?

接下来由通信的发展历程,引入在音视频圈火过“羊了个羊”的技术---WebRTC。

由于WebRTC标准只规定了媒体,没有规定信令。因此,FreeSWITCH针对WebRTC实现了SIP over WebSocket和Verto这两种信令,各有千秋。前者基于标准SIP协议,可移植性较高;而后者基于WebSocket协议,属于FreeSWITCH自定义标准,定制化程度较高。

当然,FreeSWITCH除了支持WebRTC外,还支持与各种终端进行对接,比如微信小程序、腾讯TRTC SDK、传统话机、IP话机、网络摄像头等等。这都要得益于它的架构和底层实现机制。从架构上来讲,它是1个核心+N个外围模块,这使得它扩展性和兼容性极强;而从底层上来讲,它是基于Apache的APR库实现,这使得它拥有很强的跨平台性和优异的内存管理机制。
最近几年由于各种因素的影响,远程视频会议越来越被大家重视。杜老师为大家讲解了视频会议的几种方式,并介绍了各种会议模式的流程、优点和区别。简单的从图中就可以看出MCU综合评价最好的,好巧,而我们自己的产品XSwitch的会议系统就是MCU架构,各位同学如果想要测试,可以参考我们的《XSwitch快速入门》本地部署一台属于自己的XSwitch,心动不如行动!

在人人谈5G的当今社会,站在音视频通信的角度,我们的5G可以理解为智能语音、智能视频交互。而智能语音目前包括TTS、ASR、VAD,即语音合成、语音识别、人声检测。使用FreeSWITCH提供的这三项功能,加上应用系统的业务流程控制,FreeSWITCH就可以像真人一样和客户进行交谈。同时智能视频交互则是基于智能语音的基础加上类似数字人的概念,使客户体验从听觉扩展到了视觉,也包括人脸识别和其他特色功能。
我们的XSwitch目前已经集成讯飞、百度、阿里云、华为、Microsoft Speech等平台的TTS/ASR,同时也支持使用MRCP协议与自研Server对接。如有需要可直接联系邮箱:info@x-y-t.cn

接下来,杜老师又一次更加形象、更加全面地为我们讲解FreeSWITCH是如何实现桥接通话的。更加贴心的为我们提供了两段FreeSWITCH核心在桥接和会议两种模式下如何传输媒体的伪代码。毕竟是高手培训,还是要提升一下level的。


下午杜老师讲解了呼叫中心的起源、发展历程、云原生时代的呼叫中心,并给大家介绍了SIP在云原生部署中的问题,如SIP不适合互联网、协议中遍地都是IP地址、NAT穿越难、部署难、媒体层RTP需要单独的传输通道等。

然后杜老师带着我们一起动手学习xswitch-free,这是我千辛万苦拿到的教程连接,大家自取吧xswitch-free。从拉取代码,到部署、再到启动、再到配置、最后到拨通第一个电话的流程,杜老师每一步讲解得都很详细。并带着大家解读注册流程、通话流程中的每个SIP消息,讲解其作用。同时也讲解了SDP中各个参数代表的含义,如何查看主叫、被叫号,以及通过SIP结束消息(BYE)判断是谁先发起的挂断。
信令讲完就该讲媒体了,杜老师从傅里叶变化开始,讲解人的听觉频率范围,和降噪滤波的理论基础,以及音频抽样原理。毕竟做音频传输的离不开这些最基础的理论支撑。比如PCMU/8000中的8000就是每秒8000个采样点。最后杜老师通过抓包分析,给大家详细地讲解了RTP流,以及在音频质量不好的时候应该怎么去处理(调高FreeSWITCH内部的jitter-buffer,增大数据缓冲区)。

在杜老师认真地回答完各位学员的问题后,第一天的培训就告一段落。
如果说第一天杜老师讲解的内容理论和实操的占比为5:5,那么第二天的理论和实操占比则为2:8。因此小编相信第二天的内容对于各位高手学员来讲更有意义。毕竟我们学习的不是问题本身,而是学习解决问题的思路,学习怎么去定位问题出在哪。
首先杜老师从配置文件开始讲解XSwitch,以及在XSwitch内如何配置路由,如何进行录音,如何使用ASR/TTS等功能,在实际操作过程中,杜老师也会遇到问题。但他总是调理很清晰、很迅速的定位到问题所在,这让小编这样的初学者也会很快明白其中的道理。

杜老师针对学员的问题,并不是简单的回答是或者不是,而是从理论基础出发,结合各种可能出现的场景,给出一个综合的答案。如果是实际操作中的问题(如下图中最后一个),杜老师则是实际给大家演示,先复现问题,再通过配置并结合源码解决问题。

接下来杜老师为大家演示了XSwitch的会议系统,它丰富的画布布局方式,让小编看的眼花缭乱。相较于开源FreeSWITCH,XSwitch也在性能和带宽等方面作出了很多优化,使其表现更加优异!

然后杜老师为大家讲解了人工智能相关的ASR/TTS与FreeSWITCH的对接,也讲了流行的MRCP协议与自研模块的区别和优缺点。并结合Lua脚本和ESL进行了实际演示。

后面杜老师又为大家详细讲解了ESL协议,如何使用ESL控制FreeSWITCH,如控制通话接听、进行录音、放音、TTS等功能。并为大家解释了inbound和outbound的区别,以及两者的选型问题:outbound适合IVR类应用,适合控制一个channel;inbound则能控制更多的channel,适合做CTI、中间件类应用。但大多时候需要两者结合才能更好地支撑起实际业务需求。
紧接着杜老师从伪代码层面为大家介绍一些常用App是如何工作的,如echo、playback、record、bridge、conference等,使得各位高手们能够更加熟练的从源码层面解决自己在实际工作中遇到的问题。杜老师在课上多次强调这些App,目的就是为了通过多次重复让大家记住这些简单又重要的概念。
最后,杜老师还幽默地专门总结了“杜老师语录”,小编在此晒出来,与大家共勉!

两天的高手速成培训在眨眼间结束,每个学员都有自己的收获,希望大家可以将这次培训内容真正地应用到实际工作中。也非常感谢杜老师的辛苦付出,期待下一次与大家的见面!
最后,小编在这里偷偷告诉大家,杜老师在10月22日-10月23日将为大家带来Kamailio高手速成培训,想要报名的小伙伴赶快行动起来啦,现在报名还有更多惊喜活动。
报名参加以上任一培训即可免费参加后面的XSwitch运维开发培训。XSwitch基于FreeSWITCH开发,两天的培训也将会是干货满满。期待再次与大家见面。
正值国庆佳节,烟台小樱桃网络科技有限公司祝大家国庆节快乐!

