sip协议详解_WebRTC/ICE/SIP呼叫延迟问题

本文深入探讨了ICE(Interactive Connectivity Establishment)在发送和接收媒体时的处理流程,特别是在全场景和轻量级部署中的应用。文章指出,ICE与SIP(Session Initiation Protocol)结合时,可能会遇到呼叫延迟问题,详细分析了INVITE中的offer消息和Response中的offer消息处理,以及SIP options标签和媒体功能标签的支持。同时,讨论了ICE如何在SIP分叉处理中发挥作用,解决媒体流匹配问题。
摘要由CSDN通过智能技术生成

前面的章节中笔者讨论了在ICE中更新状态和ICE选项支持的内容。这里,我们要进一步讨论ICE中媒体处理和配合SIP场景中可能面对的问题。关于在ICE在处理涉及了发送媒体和接收媒体的两个不同的流程。最后,笔者将介绍在ICE环境中,配合SIP使用时可能面对的一些问题。

说明,关于ICE环境中,针对媒体/数据处理两种规范有一定的区别。具体来说,在RFC5245规范中规范的是媒体收发处理,但是在其更新的规范RFC8445中讨论的是数据处理。首先,规范中使用的定义有所区别,另外,具体的处理流程也有所不同。这里,我们主要是根据RFC5245的规范做详解,没有根据RFC8445规范说明。因此,读者如果需要最新的关于数据收发的处理,应该参考RFC8445和RFC576(以及最新的RFC8656)。

6c7eb1968f5c1447f5f0aca3688c82dc.png

ICE环境中发送媒体

针对发送媒体的讨论仍然需要关注三个部分的内容。实现是全部署环境中发送媒体的讨论。在全部署场景中,agent总是使用一对候选配对来发送媒体,我们称之为“selected candidate pair”。Agent将会通过已选候选配对中将媒体发送到远端候选地址,设置数据包的目的地地址和端口等于远端候选地址, 从已选配对的本地候选地址发送媒体。当本地候选地址是server 或者 peer reflexive时,媒体是从基准地址来发起。从转发候选地址发送过来的媒体需要从基准地址通过STUN服务器端发送出去,发送处理流程按照RFC5766(最新规范参考RFC8656)的规范来执行。如果本地候选地址是转发候选地址的话,RFC5245规范推荐,针对远端候选地址,agent在STUN服务器端创建一个通道。关于agent创建通道的流程按照RFC5766-11的规范执行。针对媒体流的构件的已选配对有以下三种状态说明:

  • 如果此媒体流的检查列表的状态是运行状态,并且因为重启ICE,没有以前的已选配对,已选配对为空。
  • 如果此媒体流的检查列表的状态是运行状态,并且因为重启ICE,存在一对以前的已选配对,已选配对等于以前的已选配对。
  • 如果检查列表的状态是完成状态,针对此媒体构件来说,已选配对等于在有效列表中的最高优先级标识配对。

媒体流的构件影响着媒体流的发送方式,并且已选配对数量状态也决定agent是否可以针对具体构件发送媒体。具体来说,针对一个媒体流中的一个构件中(至少一个构件),如果一个已选配对为空,agent一定不能对其他构件发送媒体。针对媒体流的每个构件,已选配对都有一个值的话,agent可以为此媒体流的所有构件发送媒体。注意,媒体流的一个构件的已选配对可以不等于同样构件中最近offer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值