我正在实现从 android 应用程序到浏览器(Web 应用程序)的 voip。我使用基于 sip 的 linphone 作为 android 客户端,使用 SipML5 作为浏览器部分(webapp)。任何人都可以解释一下当从基于 sip 的客户端调用时 voip 呼叫的流程是什么linphone to web browser.sip在这其中的作用是什么,以及sip和webrtc浏览器应用程序之间的媒体传输是如何发生的。还有,什么是webRtc2sip网关,请帮我解决这个困惑。
问问题
2782 次
2 回答
1
调用流程如下所示:
SIP 客户端 -> [SIP/RTP] -> SIP 服务器 -> [SIP/RTP] -> WebRTC-SIP 网关 -> [WebSocket/DTLS/SRTP] -> WebRTC 客户端。
(或从 WebRTC 到 SIP 的调用的确切相反方向)
将需要以下软件:
- sip 客户端:任何 SIP 端点(软电话或 IP 电话,例如您提到的linphone )
- SIP 服务器:任何软交换或 PBX,例如Asterisk
- WebRTC-SIP 网关:这是一个最棘手的组件。您需要一个能够从简单的 SIP/RTP 转换为 WebRTC 和反向的软件,例如 mizu webrtc2sip网关。(我提到这一点是因为它具有内置的 SSL/WSS 支持和 TURN/STUN)
- WebRTC 客户端:这通常在浏览器中运行,但也有本地解决方案。确保它符合 RFC 7118。您可以为此使用SipML5,但我建议您也检查SIP.js和webphone,因为这些似乎得到了更好的维护。
确保使用 HTTPS 来托管您的 WebRTC 客户端,否则它将无法与 Chrome 一起使用(Chrome 仅允许来自 HTTPS 网站的 WebRTC,并且仅允许使用 wss websocket 连接到 WebRTC2SIP 网关。
于 2017-02-24T07:53:57.893 回答
0
由于 WebRTC 需要 DTLS-RTP、RTCP-FB、ICE 和许多其他最新标准,但 VoIP 标准已有 10 多年的历史,因此您需要设置一个网关来转换信令和转码 RTP。
于 2017-05-05T16:35:23.237 回答