简单的完成SIP客户端注册和消息转发到服务器,媒体流不必关心,由客户端之间直接rtp,这类服务器较容易实现,收费的产品如mixiSipServer(老外开发的,较为常见),我写的免费LxjSipServer(没有路数限制,无需安装,没有广告,在这里可以免费下载:http://www.bluespace.com.cn/koodoo/download/LxjSipServer.rar)。
如果服务器部署在公网,分机在内网,则存在NAT穿透的问题,解决这个古老问题的办法一般是要求客户端支持STUN。
问题来了:1、不是所有的sip客户端都支持STUN;2、STUN不能解决全部NAT或防火墙问题,比如对称NAT就不行;3、对于一个呼叫中心,一部分座席在内网,一部分远程座席在外网,实际上内网座席不需要设置STUN,带来设置的混乱,而且即使这样,内网分机也没办法和外网座分机话。
解决这个问题的办法是Full Proxy SIP服务器。
所谓Full Proxy,是客户端的信令和媒体流都发给他,由他来进行转发。这种模式能解决几乎所有的NAT问题,但要求服务器本身有足够的带宽。
客户端1 ---SIP消息和RTP媒体---> FullProxy ---SIP消息和RTP媒体--->客户端2
实现要点:
1、FullProxy要有注册服务器功能,接受SIP客户端注册,记录客户端的真实地址比如公网地址和端口;
2、FullProxy同时实现成一个B2B即背靠背服务器,进行媒体转发。
3、在接受rtp的时候,如果侦测到对端地址(协议-ip-端口)和SDP的不一致,采用实际的进行rtp发送。
4、在带宽允许的情况下,要能实现大规模并发,比如2000路的并发。
经过用户实际测试,效果很好,FullProxy很有效地抹平了内外网的鸿沟。
因为是在蓝星际平台的基础上实现的,这个蓝星际FullProxy暂时是收费的。