voip对接总结(1) 基础储备

一款产品在市场中的竞争力,除了产品本身的质量外,与其他商家产品之间的兼容能力也是至关重要的,毕竟当下是互联网市场,市场的开放性,产品的多样性与模式的统一性得到了淋漓尽致的体现,如果没有能力构建出ios这样的私有封闭系统,那么就请拥抱android这种开放模式吧。不同厂商之间的产品互联互通,在数据方面叫做互操作能力,在通信方面可称之为对接能力(我瞎起的)。

在VOIP视频会议领域,国外有Cisco、Polycom、Zoom、Pexip、Avaya、StarLeaf、BlueJeans等品牌,国内有华为、Hitry、中兴、亿联这些大厂,再加上移动、电信各种IM系统、PSTN语音网关以及未提到的商家产品,仅仅本人接触过的就有四五十种之多。自家产品要尽量做到和这些产品的无缝对接,绝非易事;对于开发者而言,也必将是一个痛并快乐的过程,本人就个人经验来总结一些VOIP对接的关键事项及遇到过的问题。

1.     基础储备

1.1网络基本协议

要想理解VOIP,网络基本协议是必备基础,不仅仅了解TCP/IP,UDP等基础协议,还要吃透基于TCP或UDP的传输控制,丢包重传,拥塞恢复等方案,协议只是一个基础,原理和使用才是关键。

VOIP中很多内容的制定都和TCP/IP,UDP等是相关的,如果知晓了TCP的建立连接过程,就可以理解BFCP 1.0版本TCP传输时为什么需要setup字段来协商协议发起方,进而明白BFCP UDP方式传输为何要补充一系列Ack响应协议,在应用中就能规避掉UDP线令丢包带来的异常问题。理解了TCP的滑动窗口和拥塞窗口、慢启动及快重传等就可以参照RTP/RTCP协议来做好流媒体传输。知道IP分片,MTU这些,遇到RTP的NAL、FU-A分包模式等就不会难懂。总之,基础性的东西掌握牢固,才好融会贯通。关于这方面的内容,可以看看《TCP/IP协议详解》卷一,经典,不必多说。

1.2  网络应用

之所以把网络应用单独拎出来,是因为它不像基本协议那样是一个非遵守不可的东西,这部分有很大的灵活性,需要具有宽广的知识面。

拿NAT而言,有这四种网络模型的存在,网络穿越方案就有了很多可选性。我们可以配置路由器映射,直接把端口透出去;也可以在知道外部网址时,协议里简单地址替换,再主动打洞即可轻松搞定,或者使用STUN/TRUN/ICE等方案,每种方案的利弊做好衡量。

这方面重要还体现在另一方面,有些背景下,一些先入的设备并不那么轻易让新的设备进入。一定要清楚他们可能会在哪儿,以何种方式为你设置了障碍。你无恶念,但需识得刀剑,否则,可怜的程序员就可能被拉来祭天了。这几句话,有经验的人自然会懂。狮子的存在,让羚羊更加快速的奔跑。

1.3  信息查阅

VOIP RFC文档必不可少,而且这些文档均为英文文献,翻译过来的很少,需要良好的英语基础。并且,VOIP的知识点很分散,很多文献一整篇只是讲了协议的一两个点,如SIP的PRACK,SDP的offer/answermodel等,你需要自己把这些内容一条一条收集并串起来,才能摸到VOIP的内容边界,搭建出自己的体系。一般可以通过如下几个方面收集信息:

①   产品的cookbook,在cisco、polycom官网上,都会有操作手册和产品介绍等,附录中会有产品所支持的协议以及rfc参考,可以一条一条翻阅这些产品所引用的rfc文档,参考几家厂商的产品之后,基本就可以跟上行业产品的主流思路,摸到技术边界,找准产品和技术定位,尤其对于技术积累不是很足的公司或团队而言,这种方法颇具成效。

②   rfc网站 研发做voip必上的网站,rfc资料应有尽有。

③   CSDN,各类公众号等,这个不必多说。

流行的开源代码,主要推荐freeswitch和webrtc这两个,都是很经典的,也是必需要了解的代码。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值