- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简介
WebRTC
网页实时通信(Web Real-Time Communication)目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件
WebRTC架构图
Web开发者只关注”The web” 层,即调用浏览器提供的javascript接口;从图中可以看出WebRTC传输使用SRTP协议,NAT穿越使用的是ICE+STUN+TURN
[参考1]
JsSIP
提供了一个兼容WebRTC的JS SIP库
从截图中可以看出,需要一个用户名和密码;Sip的URL和WS(WebSocket)URL
Freeswitch
本文搭建的环境是在虚拟机上实现安装linux,版本是centos6;
安装过程保证能够连接外网,需要下载安装包
获取Freeswitch源码
git clone /stash/scm/fs/freeswitch.git
转到Freeswitch目录下
./bootstrap.sh –j
./configure –C –prefix=/usr/local/freeswitch
make
make install
安装声音插件
make sounds-install
make moh-install
注:
过程中需要的一些库,系统没有提供,导致编译失败;使用yum install的方法安装
可已通过modules.conf 配置那些模块一起编译;opus没有编译过,在此文件注释掉了
如果Freeswitch中的某个模块出现连接错误,可以clean后重新make试一下
修改配置
(1)修改vars.xml文件变量(黑色部分为添加的项)
X-PRE-PROCESS cmd=set data=global_codec_prefs=PCMU,PCMA,GSM,H264,H263/
X-PRE-PROCESS cmd=setdata=outbound_codec_prefs=PCMU,PCMA,GSM,H264,H263/
(2) 修改配置文件conf/sip_profiles/interanl.xml, 打开
中去掉ws-binding 5066 的注释
(3)关闭linux的防火墙(如不关闭客户端可能会有访问拒绝错误)
service iptables stop?
呼叫
Freeswitc默认设置了20个用户(用户名1000-1019) 密码:1234;使用默认用户测试
环境:
ClientA: PC端使用虚拟摄像头播放一段视频,用户名1012
ClientB: 笔记本,使用摄像头采集实时视频 用户名1011
Freeswitch – Sip IP:44:5060
Freeswitch – WS URL 44:5066
ClientA和ClientB可以通过音视频通信,同时可以发送文字chat
流程分析
WebRTC
在WebRTC的实现过程中对于音视频数据的传输有两种方式,一、网页点对点,只有信令通过服务器,而音视频数据通过P2P的方式直接传输;二、音视频数据也通过服务器中转转。
网页点对点
WebRTC 实现了网页点对点交流。但WebRTC 仍然需要服务器:
1.交换客户端元数据协调通讯,即信令(Signaling)。
应对NATs(Network Address Translators) 和防火墙
但这种方式主要用在一对一模式中,在一对多的情况下,还需要服务器端的媒体服务器,也是本文主要的讨论方式
[参考]
通过服务器中转
不管是信令还是数据,BrowserA想要传递给BrowserB的数据通过Server转发给BrowserB。这种方式可以较容易的实现一对多或多对多的方式;如直播的应用。
本文中的实现虽然是一对一的形式,但采用的传输的方式是此种
JsSIP+Freeswitch
信令交互
为了避免冗余,以及做到与现有技术的最大兼容,信令方法和协议都不由WebRTC标准来指定背靠背用户代理(B2BUA,Back-to-Back UA)
SIP信令
注册
呼叫流程
Freeswitch对于SIP的支持使用的是开源的Sofia协议栈
[参考]
传输协议:用于信令传输协议可以是TCP、UDP或其他;在WebRTC中使用的是WebSocket协议,其优点是:通信是全双工的客户端/服务器(消息可以同时双向传输)NAT(Network Address Translation,网络地址转换)本地地址的主机在和外界通信时,都要在NAT将其本地地址转换成全球IP地址,才能和因特网连接1.宽带分享
2.安全防护
NAT4种,分别如下:
1.????Full Cone NAT
完全锥形NAT,所有从同一个内网IP和端口号发送过来的请求都会被
您可能关注的文档
最近下载
- 2021-2022学年初中化学人教版九年级上册 4.4.4 有关相对分子质量的计算 同步习题.docx VIP
- 浙教版科学九年级上册化学方程式汇总复习.docx
- WWT 0050-2014 文物建筑维修基本材料+青瓦.pdf
- 砂浆作业指导书.doc
- TCI 313-2024 碳酸锂中碳酸锂含量测定 电位滴定法.pdf
- 垃圾填埋场飞灰安全填埋专区扩建及环境综合整治工程可行性研究报告.pdf
- (新课标)新冀人版小学科学五年级上册第五单元12课《火山》说课稿.docx
- 中国基层房颤中心认证标准(试行).PDF
- 快递行业研究框架:“战国”时代,静待改善.pdf
- 《指向高中历史核心素养的大单元教学设计研究》课题研究方案.doc
文档评论(0)