浏览器之间的SIP语音通话?
我正在尝试在 一个浏览器和另一个浏览器之间
进行通话。
我做了什么:
- 我设置了我的
asterisk 服务器
,就像getonsip.com
一样。 - 我使用
pjsua python 绑定
编写了一个客户端
,它充当服务器
。
现在的情况是:
我可以从我的浏览器(我的浏览器和运行 pjsua 客户端的机器是同一台)拨打电话到我的安卓手机上的 sip 客户端。
但是我无法从另一台机器上的浏览器拨打电话。
我该怎么做才能实现浏览器之间的通话呢?
进行这种通话是否需要流媒体和 Flash?
2 个回答
0
现在这是可能的,因为WebRTC终于成为了标准,并且在浏览器和SIP服务器中已经有了实现。
- Asterisk 11正式支持WebRTC
- 谷歌浏览器从第23版开始就内置了WebRTC支持。
想了解更多细节,可以查看这个教程 http://www.html5rocks.com/en/tutorials/webrtc/basics/
3
你不能直接在浏览器之间用SIP进行通话,至少不可能不借助很多插件的帮助。首先,SIP默认使用UDP的5060端口,而浏览器的沙箱环境不允许你在这个端口上进行通信,所以你需要一个插件(比如Flash、Silverlight或者Java Applet等)。一旦你解决了SIP的问题,并处理了网络地址转换(NAT)带来的麻烦,你还得想办法让浏览器处理RTP媒体流。这又需要更多的插件。
其实,有一个即将推出的标准正好解决了你想要的功能,具体可以查看RTC-WEB。在你等待这个标准的时候,你可以试试phono,这是Tropo提供的一个JavaScript/Flash组件,支持基于浏览器的通话,但需要注意的是,通话会经过Tropo的SIP服务器。