我正在尝试实现一个sip服务器,用于连接HTML
sip客户端(使用sipml5制作)。在我研究这个过程中,我遇到了可能对我有用的网络套接字,但是,我不确定通过web-sockets
sip连接到兼容服务器的用户代理是否能够使用不兼容的服务器成功调用某个服务器(即从web-sockets
上的SIP呼叫到真正的SIP)。
我知道webrtc2sip
可以用于连接到传统网络,但我宁愿避免使用其他代理。那么,是否可以使用SIP
通过SIP
连接到兼容的web-sockets
服务器,然后从此用户代理拨打另一个不支持SIP
web-sockets
的用户1}}不使用gateway
?
答案 0 :(得分:3)
你是对的,SIP over Websockets是一个草案,而不是规范。我不知道很多支持该草案的SIP供应商。
可能的解决方案是真正的websocket-SIP网关。例如,Flashphoner Web Call Server实现为一个网关,它通过带有浏览器的websockets工作,并通过SIP(TCP和UDP)与SIP服务器一起工作。因此,它与任何支持RFC3261的服务器兼容 - 标准SIP规范。
简要信令方案是:
浏览器 - [Websockets] - 网络呼叫服务器 - [SIP TCP,UDP] - 任何SIP服务器
简短的流媒体方案:
浏览器 - [WebRTC = SRTP,DTLS,ICE,STUN] - 网络电话服务器 - [RTP UDP] - 任何SIP / RTP服务器
答案 1 :(得分:1)
Mobicents SIP
Servlets示例已经提供了一个B2BUA
应用程序来处理这个问题。媒体是点对点(或通过TURN
中继服务器),但如果您需要桥接到媒体服务器,您确实可以修补SDP
正文以使各方的媒体通过媒体服务器(等待它支持来自WebRTC的媒体相关编解码器,DTLS-SRTP
等)以添加会议,记录功能类型。
答案 2 :(得分:0)
另一种方法是使用kamailio,因为它理解sip和ws sip。
当你说“实现一个sip服务器”是一个简单的注册商或代理服务器,还是你想要cal控制逻辑/存在其他功能?
在所有情况下,kamailio都满足所有要求,而且它是开源的。