一直想写下这个东西,一个关于实时语音视频传输的路由控制和计算问题。在我组织开发实时互动通信产品CoFire已经实现了一个比较不错的智能路由算法,通过测试,语音和视频的效果都很不错。我今天大概说说一些和其他VOIP系统不一样的东西。 主要一下特别的地方:
1、在呼叫信令(相当SIP的INVITE)开始之前,主叫与被叫已经完成了媒体防火墙穿越。开始并保持3条以上的媒体通信路径。
2、主叫到被叫与被叫到主叫的媒体路由路径是分开计算的,主叫负责计算自己到被叫的路由路径,被叫负责计算自己到主叫的路由路径。这和RTP传输不太一样的地方。这样做的目的是防止媒体单通的问题。
3、媒体路由在通话的过程存在多条,由多个不同的中间节点构成,其中一条是主路由,其他都是备用路由,主路由负责传输媒体报文,备份路由负责发送媒体补偿报文。
4、每条路由的中间节点会实时不断的计算路径(需要中间节点是通过P2P的超级节点得到,如果是软交换系统,可以通过呼叫控制器得到),不断的调整路由路径,达到最佳效果。
以上是我在开发CoFire产品的时候采用的点对点媒体路由方法,从 CoFire的通信的效果来看,网通和电信之间效果不错,丢包率基本可以控制在5%一下,如果cofire网络节点更多的话,效果应该会更佳。