简介WebRTC网页实时通信(WebReal-munication),由google发布的一版开源项目,目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件。使用支持webrtc的浏览器提供的接口,可以实现对视频的采集、编码、显示、传输。目前WebRTC支持HTML5和JavaScriptWebRTC架构图Web开发者只关注”Theweb”层,即调用浏览器提供的javascript接口;从图中可以看出WebRTC传输使用SRTP协议,NAT穿越使用的是ICE+STUN+TURN[参考1]JsSIP提供了一个兼容WebRTC的JSSIP库;本文中使用的是JsSIP的一个Demo作为视频通话的客户端。FreeswitchFreeswitch是一个C\C++实现的开源的电话软交换平台,作为服务端在VOIP中应用比较广泛。。本文中使用Freeswitch()作为视频通话的服务端,包含了SIP服务器、STUN服务器、视频转发服务器等。本文实现场景使用Freeswitch提供的默认账号,两个用户在不同的计算机上登录;通过拨号的方式双发可以进行视频通话。安装JsSIPJsSip实现是嵌入在Html页面中,搭建一个页面服务器,然后把相关的文件拷贝到根目录下;使用浏览器访问即可。本文中使用IIS作为网页服务器,Firefox浏览器测试 从截图中可以看出,需要一个用户名和密码;Sip的URL和WS(WebSocket)URLFreeswitch本文搭建的环境是在虚拟机上实现安装linux,版本是centos6;安装过程保证能够连接外网,需要下载安装包获取Freeswitch源码gitclonehttps:///stash/scm/fs/./–j./configure–C–prefix=/usr/local/freeswitchmakemakeinstall安装声音插件makesounds-installmakemoh-install注:过程中需要的一些库,系统没有提供,导致编译失败;;opus没有编译过,在此文件注释掉了如果Freeswitch中的某个模块出现连接错误,可以clean后重新make试一下修改配置(1)(黑色部分为添加的项)<X-PRE-PROCESScmd="set"data="global_codec_prefs=PCMU,PCMA,GSM,H264,H263"/><X-PRE-PROCESScmd="set"data="outbound_codec_prefs=PCMU,PCMA,GSM,H264,H263"/>(2)修改配置文件conf/sip_profiles/,打开 中去掉ws-binding5066的注释(3)关闭linux的防火墙(如不关闭客户端可能会有访问拒绝错误)serviceiptablesstop 呼叫Freeswitc默认设置了20个用户(用户名1000-1019)密码:1234;使用默认用户测试环境:ClientA:PC端使用虚拟摄像头播放一段视频,用户名1012ClientB:笔记本,使用摄像头采集实时视频用户名1011Freeswitch–SipIP::5060Freeswitch–:5066ClientA和ClientB可以通过音视频通信,同时可以发送文字chat流程分析WebRTC在WebRTC的实现过程中对于音视频数据的传输有两种方式,一、网页点对点,只有信令通过服务器,而音视频数据通过P2P的方式直接传输;二、音视频数据也通过服务器中转转。网页点对点WebRTC实现了网页点对点交流。但,WebRTC仍然需要服务器,作用:,即信令(Signaling)。)和防火墙让信令服务器和媒体服务器分开,只有信令交互通过服务器,而媒体传输通过P2P的方式,这样做的优势在于降低了服务器端的流量。ServerBrowserABrowserB信令传输数据传输但这种方式主要用在一对一模式中,在一对多的情况下,还需要服务器端的媒体服务器,也是本文主要的讨论方式[参考]通过服务器中转不管是信令还是数据,BrowserA想要传递给BrowserB的数据通过Server转发给BrowserB。这种方式可以较容易的实
WebRtc-Freeswitch 搭建视频通话 来自淘豆网www.taodocs.com转载请标明出处.