共计 874 个字符,预计需要花费 3 分钟才能阅读完成。
前两篇文章我简单介绍了开发 WebRTC2SIP 的设计架构图和报文逻辑,看着简简单单,做起来还是有很多事情要考虑的。我们在开发的过程中,也是磕磕绊绊,一步一个脚印 (坑) 走过来的。碰到的很多问题都是兼容的问题。
我们碰到过哪些问题呢?总结下来,开发时遇到了这些问题:
1 怎么处理早起媒体?
2 怎么处理加密不被过滤?
3 怎么防止 SIP 注册攻击和匿名呼叫攻击?
4 怎么支持消息扩展,扩展支持更多服务?
5 正在通话呼叫(calling ringing)过程中,主叫或者被叫断线了,怎么探测?怎么 recover,自动重连话务?
6 通话双方任一方突然杀死 SDK 进程 怎么通知对方?
7 SIP 呼入的时候,如果被叫不在线?怎么个处理逻辑?
8 客户要求实现同一个账户同振怎么实现?
9 客户要求支持新版本的的 SDK 呼入呼出的同时,让同一套账户体系支持 SIP 的呼入和呼出;如果有人呼入,要求 SIP 客户端和声网客户端,都要响铃,即要兼容原来的客户固定资产(SIP 话机等)可以继续被使用。
除了这些还有在测试阶段发现很多诡异的问题
1、比如电话接通后,说着说着就没声音了(⊙_⊙)
2、说话会卡断,有时候接通就会卡有的时候通话几分钟后会卡(⊙_⊙)+1
3、经常碰到被叫挂机,声网的 SDK 还在写日志,一天 50 个电话写日志几十 G,G,G,G,G,G (°ー°〃)
4、单通,一方听不到声音(ʘ╻ʘ)
5、编码问题,码率不一致…(⊙ˍ⊙;)…
6、各种莫名崩溃:启动崩溃,接通崩溃,挂机崩溃,神经病似得说崩就崩溃…╥﹏╥…
一路走来,几个同事经常分析代码到半夜。终于在测试 4 个月后稳定下来。其实现在回头看,就是因为 没有吃透声网的 API 文档,没有好好利用社区 的功能。如果你碰到的坑是上述的问题,那么花点时间仔细撸几遍 API 文档就可以搞定了。
系统运行了几个月没出过问题,公司要求总结下开发中碰到的问题,声网的小伙伴说,要学会回馈社区,完善一下学习交流的氛围。有感于这一段时间的开发工作,于是就写下这几篇文章,希望能对大家有所帮助。我会敲代码,不太会表达,如果大家在实现这个模块的过程中也碰到问题,想了解一些细节。欢迎联系交流。