搜索
首页
大数快讯
大数活动
服务超市
文章专题
出海平台
流量密码
出海蓝图
产业赛道
物流仓储
跨境支付
选品策略
实操手册
报告
跨企查
百科
导航
知识体系
工具箱
更多
找货源
跨境招聘
DeepSeek
首页
>
FreeSWITCH 高手速成培训 2023 冬季班北京站圆满结束
>
FreeSWITCH 高手速成培训 2023 冬季班北京站圆满结束
小樱桃科技
2024-01-03
2
导读:再见,北京!
2023 RTSCon 结束之后,紧接着我们迎来了2023冬季 FreeSWITCH 培训,培训仍然在
北京
,大家不辞辛苦,从四面八方赶来,共赴一场双向奔赴的盛会。伴着浓浓的京味儿,我们开始了为期三天的培训。
小樱桃是
烟台
的企业,这次培训,在我们烟台人的北京大本营烟台协同创新中心举办。现场设施不错,心也温暖。
工作人员到了现场以后,先让大家按要求签到,确保小伙伴们整整齐齐的一个不少,参加我们的培训。由我们公司的颜值小担当来负责给大家签到~ 2023RTSCon 结束之后,紧接着我们迎来了 2023 冬季 FreeSWITCH 培训。这次培训仍然在北京,大家不辞辛苦,从四面八方赶来,共赴一场双向奔赴的盛会。伴着浓浓的京味儿,我们开始了为期三天的培训。工作人员到了现场以后,先让大家按要求签到,确保小伙伴们整整齐齐的一个不少,参加我们的培训。由我们公司的颜值小担当来负责给大家签到~
培训第一天是 12 月 24 日,杜老师为大家播放了 Jingle Bells 音乐,也感谢大家在周末且
平安夜
来到北京一起学习。
最辛苦的还是我们的杜老师,沙龙结束后又开始了培训,但是杜老师好像一点也不累。
第一天上午杜老师先讲了 FreeSWITCH 的精髓,杜老师说 FreeSWITCH 就是个电话
服务
器,它的精髓就是呼叫。课上,杜老师介绍了 VoIP 网络电话的基本原理,首先通话双方都要在 FreeSWITCH 服务器上注册账号,才能实现通话。需要注意的是注册时需要提供用户名、密码等信息。服务器会根据这些信息,在用户目录中查找并验证用户身份。在通话时,呼叫方发送一个 INVITE 消息给被叫方,包含通话双方的地址等信息。被叫方收到后,会回复一个 200 OK 消息,建立通话。
在通话中,音频数据通过 RTP 协议传输。RTP 运行在一个独立的端口上。通话结束时,任意一方可以发送 BYE 消息,挂断电话。简单休息以后,接着上课,杜老师通过一个示例,演示了使用 FreeSWITCH 客户端软件注册用户、打通电话的全过程,让学员们更直观地理解 VoIP 通信流程——首先定义用户账户,如用户名 1000,密码 1234;使用客户端软件注册此用户,若注册成功,服务器会回复 200 OK;用另一个客户端软件使用不同用户名,如 1001,向 1000 发起呼叫,1000 用户收到呼叫 INVITE,验证通过后,回复 200 OK,双方通过 RTP 端口开始音频通话,任意一方发 BYE 消息,可结束通话。
FreeSWITCH 是一个 Application Server,“跟 FreeSWITCH 交互,就是跟 FreeSWITCH 中的一个 Application 交互”,杜老师说。以 FreeSWITCH 中几个经典的 Application 为例,配合伪代码实现,杜老师讲了 FreeSWITCH 的核心工作原理。
最后,杜老师带大家简单回顾了课上的主要内容,其一 VoIP 通话原理:注册、呼叫、回复、通话、挂断;其二通过示例让学员们对原理有直观理解,其三实际演练让学员熟悉如何使用 FreeSWITCH 服务器来实现 VoIP 通话。
上午讲的内容相比较来说比较简单,大家都听懂了。
中午大家简单吃了点中饭以后,就在自己的位置上休息了一会,方便下午能以好的状态听课,大家学习的态度和方法都很值得学习呢 。
下午,杜老师先分析了一个典型的通话失败案例:服务器端发起呼叫,但客户端未收到 INVITE 消息,杜老师带领大家一起寻找错误点,并告诉大家遇到错误不要怕,通过分析服务器日志,找到问题解决错误就好了。经过检查日志发现,发现 INVITE 消息
时间
间隔不正常(超过 1 秒),推断是因为 UDP 报文大小超过路由器的 MTU 限制,进行了优化,最后找到是 NAT 端口预留时间过短导致连接断开的问题,接着又解释了 NAT 端口映射的工作原理:内网设备需要通过 NAT 设备才能访问外网;NAT 会开启端口映射,但映射会在一定时间后关闭,需要内网设备每隔一段时间发送数据包来保持 NAT 映射,接着又演示了不同的 NAT 保活方法:频繁重发 REGISTER 消息来保持端口映射,使用 UDP OPTIONS 心跳包周期性刺激 NAT 设备,调整 SIP 协议选项,减少报文大小,用抓包
工具
分析了 REGISTER 和 INVITE 报文,解释了 NAT 导致的连接问题,总结了 NAT 穿透的原理,以及保持端口映射的常用方法。
下午同学们都掌握的非常好,都能跟得上杜老师的流程,所以培训第一天下午的课程提前讲完了,杜老师本想领着大家复习一下今天的课程,奈何杜老师讲的通俗易懂又细致,大家都说没复习的必要了,看到大家求知若渴的眼神,杜老师决定给大家接着往下多讲点。
杜老师讲解了 WebRTC,解释了 WebRTC 的基本工作流程:getUserMedia 获取音视频,通过 ICE 候选连接协商建立点对点连接,建立 P2P 连接后进行音视频传输,杜老师提醒大家由于浏览器限制,需要通过信令服务器交换信息。
杜老师现场演示了使用 Verto 协议和 SIP over Websocket 协议通过 WebRTC 连接 FreeSWITCH 的 Demo。
杜老师讲到这里特地停顿了一下,问大家有没有不懂的地方,解答了同学们的疑问后,接着又分析了移动端 WebRTC 支持情况。iOS 系统限制第三方应用使用摄像头和麦克风,Android 和微信小程序支持较好,主流浏览器基本都已支持 WebRTC,又介绍了多方通话的两种实现方案,对 MCU、SFU 和 Mesh 进行了分析。
时间转眼来到了培训的第二天,也是个好日子,是
圣诞节
,在这个欢乐的日子,杜老师先介绍、演示了 FreeSWITCH 中的一些 Appplication:
answer:接听
birdge:桥接,是阻塞的,b-leg 释放才继续往下走
hangup:挂机
record:录音
echo:回声
用户代理客户端-UAC(User Agent Client),用于发起请求,用户代理服务器-UAS(User Agent Server),用于接收请求。UAC/UAS 的划分是针对一个事务的。在一个呼叫中的多个事务里,UAC 和 UAS 的角色是可以互换的。例如在 A 和 B 的呼叫中,A 向 B 发起呼叫,在呼叫建立的事务中,A 是 UAC,B 是 UAS;呼叫结束时,B 先挂机,在呼叫释放的事务中,B 是 UAC,A 是 UAS。换句话说,每个一般的 UA 都是 UAS 和 UAC 的结合体。
如果 SIP 消息的大小超过了 MTU,则有可能被网络中的某一节点分片,而 UDP 处理分片会有很大的问题,从而导致 SIP 消息传输失败。要解决该问题的话,两种方案:
减少 SIP 消息的
体积
,比如减少 codecs、x headers 等。
使用 TCP 来替代 UDP 传输 SIP 消息。
上午的时间过得很快,转眼间就到 12 点了,虽然到了午餐时间,但是杜老师仍然坚持回答完同学的问题再去吃饭,生怕时间推迟,同学们忘记了自己的问题或者理解的不够深入,毕竟要趁热打铁,杜老师这种对技术孜孜不倦的追求令所有的同学动容,对同学负责任的态度令人在心里自然升腾出一种深深的敬意,大家更加爱戴、尊重、理解杜老师了。
中午的时候,伴着冬日的暖阳,大家吃完午饭回来后,放松了会儿,有的刷会小品,有的在桌子上小憩一会,有的出去抽根烟,学习的时候认真学,休息的时候好好休息,一切都在有序的进行着,小编也在码字,用文字记录着杜老师上课的内容,也记录着同学们的状态,有种岁月静好的感觉。
下午杜老师还担心大家会困,其实杜老师的担心是多余的,在一楼的时候,学员们在一起聊天,都说杜老师讲课既细致又幽默,根本听不够,哪里会困。大家都在认真听课,不懂的同学积极提问,自己的疑问也得到了及时的解答。
接着杜老师展示了常用的的 TTS 配置,先需要在控制
台中
创建一个语音合成应用,获取相应的应用 ID 和应用密钥,用于进行身份认证和授权。然后在获取到应用 ID 和应用密钥之后,可以通过
阿里
云语音合成 API 接口,将需要转换为语音的文本内容发送给阿里云服务器进行处理,生成对应的语音文件。
在语音文件生成完成之后,可以通过 API 接口获取该文件的流,进行播放。接着杜老师又解释了双流,很多 SIP 终端都支持双流,思科等支持双流,一般有一个人开会,分别开一个摄像头,另外一个就是要看 PPT,那么它就有两个流,然后两个视频就是双流。FreeSWITCH 将一个 SDP 分成了 2 个了,增加了一路假的 channel,在 MCU 中看到是两路流。
在下午的时间,其实杜老师又遇到了很多问题,但这也难不倒有着丰富经验的杜老师,只见杜老师一番操作,终于把这个问题给解决了,这个问题原来是这样的,命令没有写对,连续两天都是这个问题,所以说天下大事必做于细,我们一定要细心。晚上大家一起吃完饭,又进行了一些技术交流,大家也交到了很多好朋友。
时间过得很快,转眼间来到了第三天,杜老师分析了电话接通的流程 FreeSWITCH 具备 RTP 地址自动校正功能。
该功能的原理很简单:FreeSWITCH 会向终端发送一个公网 IP 和端口的通知,告知终端将所有接收到的媒体数据包视为从该 IP 端口发出的。当 FreeSWITCH 接收到数据包时,它会比较数据包的源地址和源端口与之前终端 SDP 通知的是否一致。如果不一致,FreeSWITCH 会将终端的地址校正为该数据包的源地址。从此以后,属于该终端的媒体数据包将通过校正后的地址发送给终端,从而真正建立起媒体通信连接。
当通信建立起后,SIP 发送 INVITE 消息等待 FreeSWITCH 相应,如果 Auth 验证成功则 SIP 再发送 ACK 消息确认电话已经接通,如果没收到响应则以 1 的 2 的倍数(1,2,4,8)秒进行多次重试,最终在 301 秒左右多次未响应后挂断电话。
接着休息了 15 分钟后,杜老师又解释了 Dialplan 的功能和配置,拨号计划可以分为上下文,允许不同类型的呼叫遵循不同的路径。呼叫也可以转移到其他上下文。例如,可以配置两种拨号计划:一种处理来自公共电话网络 (PSTN)的呼叫,另一种处理来自内部分机的呼叫。当一个用户拨号时,FreeSWITCH 会对用户所拨的号码进行分析,进而决定下一步该做什么,FreeSWITCH 拨号方案不是一个单一的实体。客户可以选择本地运行不同的拨号方案子系统。这些并不都被翻译成与其他系统可能使用的相同的后端。相反,每种方法都是独特、独立的方法,您可以通过它访问信息。
杜老师生怕同学们不会,给同学讲解的很细致,而且一个模块讲解完以后,就跟着回答同学不懂的问题,让同学安心地听接下来的课程,大概对一个老师最好的反馈就是老师我都听懂了。
下午,杜老师着重回答了同学们的问题,简述了 OpenSSL 的问题,OpenSSL 的版本号会导致冲突和报错,不同的 Debian 之间的 OpenSSL 的版本号不同,早起的版本对于多线程的版本支持的并不好,所以在对于支持多线程的程序中,如果支持多线程的话会造成报错或者性能严重下降的问题。
学员们提问的问题,都比较具体,形象,杜老师很快 get 到了学员的意思,如果您也想学想和这位学员一样,提问问题很有水平的话,可以参考《
橡皮鸭解题法
》。
接着杜老师又回答了另外一位学员的问题,FreeSWITCH 怎么获取语音流?杜老师说这个问题问的太好了,值好几百块钱。接着就把墨问便签小程序上的课程给大家详细讲了一遍。
杜老师讲完了以后,就下课了,但是小伙伴们都舍不得走,毕竟最后一个问题太重量级了,很多学员都在仔细回味,争取尽可能多的吸收杜老师讲的知识。
下午的时候有两位来自福建的同学分享了 FreeSWITCH 带给他们的实打实的收益,因为杜老师的这项技术,辅助同学完成了自己公司的项目,实现了升职加薪,走上了人生巅峰,另外,他还讲,幸亏杜老师的《FreeSWITCH 权威指南》,他说这本书非常的系统,他从去年 8 月份开始看,到今年的三月份就已经看明白了,因为杜老师的书不仅仅有满满的干货,还有很多鲜活生动的例子供他参考、练习,大大提高了自己的开发效率,让自己的产品能提前上线,获得了领导的赏识,有心动的小伙伴,快快来买杜老师的书吧,在小樱桃官网就可以购买。
另外一个小伙伴他说,很喜欢杜老师,因为杜老师很亲切,让人愿意靠近,而且讲课能照顾到基础好和基础一般般的同学,他买的是《Kamailio 实战》这本书,本来这种书放在家里都落灰了,但经过长时间对杜老师的了解,发现杜老师技术很牛,而且很乐意分享,所以就拾起来重新读,结果公司把话机换成 SIP 的,正好就用到了,化解了工作危机,同学们都很赞杜老师,在同学们分享完之后,杜老师对两位同学的分享赞不绝口,并说道,要敢于自己解决问题,就要扣问题,笨办法往往是最快的办法,了解了自己的边界以后,再去寻找帮助,先是书,然后再是线下课,灵活的解决大家遇到的问题,这样问题才能得到真正的解决。
不知不觉就到了 4 点 20,杜老师为大家书写结业证书,并合影留念,标志着大家三天的培训合格,也意味着三天培训完美的落下了帷幕。
米兰·昆德拉说:这是一个流行离开的世界,可我们都不擅长告别。美好的时光总是短暂的,我们依然迎来了离别的时刻。杜老师跟大家拍了合照,又送了祝福,大家也踏上了归途。同学们带着满满的收获离开,杜老师带着满满的祝福送别,这大概就是最好的离别。
期待更多的同学来参加培训,给自己充满电,再出发!
广告时间:
如果你本次没有参加北京的培训,但还想听杜老师讲课,那不妨来购买杜老师的新课吧:
课程限时优惠中,据说还要涨价哦~早买学习
更多详情可点击左下角【
阅读原文
】了解
【声明】内容源于网络
0
0
小樱桃科技
FreeSWITCH 培训及解决方案、呼叫中心及指挥调度、电话软交换、VoIP、WebRTC\云通信系统等专业FreeSWITCH技术服务。
内容
165
粉丝
0
关注
在线咨询
小樱桃科技
FreeSWITCH 培训及解决方案、呼叫中心及指挥调度、电话软交换、VoIP、WebRTC\云通信系统等专业FreeSWITCH技术服务。
总阅读
122
粉丝
0
内容
165