欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

webrtc代码走读六

时间:2023-07-17
        一、呼叫流程图

 webrtc的ICE符合rfc5245标准协议。该协议的链接为:https://tools.ietf.org/html/rfc5245

        每个终端都有一系列传输地址(包括传输协议、IP地址和端口)的候选,可以用来和其他端点进行通信。其中可能包括:

        1)直接和网络接口联系的传输地址(host address)

        2)经过NAT转换的传输地址,即反射地址(server reflective address)

         3)TURN服务器分配的中继地址(relay address)

        虽然潜在要求任意一个主叫Client的候选地址都能用来和被叫Client的候选地址进行通信。但是实际中发现有许多组合是无法工作的。举例来说,如果主叫Client和被叫Client都在NAT之后而且不处于同一内网,他们的直接地址就无法进行通信。ICE的目的就是为了发现哪一对候选地址的组合可以工作,并且通过系统的方法对所有组合进行测试(用一种精心挑选的顺序)。
        在rfc5245定义里面,实现ICE一共有六个步骤:收集候选地址、连通性测试、候选排序、冻结候选、检查的安全性、ICE结束。webrtc结合实际应用,优化这六步为如下五步:收集候选地址、在信令通道中交换候选选项、执行连接检查、选定并启动媒体。

        1)实现收集候选地址核心函数:BasicPortAllocatorSession::DoAllocate。

 

        2)在信令通道中交换候选选项:AddIceCandidate

 

        3)  P2PTransportChannel::SortConnectionsAndUpdateState

 

         4)选定并启动媒体核心函数:P2PTransportChannel::OnReadyToSend

        

        5) P2PTransportChannel::SwitchSelectedConnection

 

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。