VoLTE通话中的语音承载,用于将用户的语音包在EPS网络中进行传递,将语音包送入IMS网络,是由网络侧动态实时发起建立的QCI=1的专用承载(Dedicated Bearer)来完成的,而负责传递通话建立的SIP消息的信令承载,则是由VoLTE手机在开机附着时就触发建立的QCI=5的缺省承载(Default Bearer)完成的。

那么,网络侧是何时去触发建立语音专用承载呢? 这取决于是否启用 PRECONDITION、是在SDP Offer还是SDP Answer阶段发起建立、通话是否涉及Early Media(如呼叫失败的语音通知、彩铃)等等。

下面让我们来看看影响语音承载建立触发点的最常见因素之一:是否启用PRECONDITION。 
PRECONDITION,定义在RFC3312中,是在被叫振铃前(被叫收到180 RINGING前),提前建立好用于通话的语音承载。这样可以避免在被叫用户应答时,由于语音承载建立失败,而引起无法通话的虚假振铃(GHOST RINGING)现象。

1、不启用PRECONDITION 

  • 呼叫双方的编解码协商,将通过INVITE和 200 OK(for INVITE)进行。

  • P-CSCF在收到被叫应答时(200 OK(for INVITE)),根据其中携带的SDP Answer信息,触发建立语音承载。

2、启用 PRECONDITION 

  • 呼叫双方的编解码协商,将通过INVITE和183 Session Progress 进行,并通过UPDATE和200 OK(for UPDATE)进行资源预留确认。

  • P-CSCF在收到被叫回复的响应消息时(183 Session Progress),根据其中携带的SDP Answer信息,触发建立语音承载预留,并在收到 200 OK(for UPDATE)时,再次触发语音承载的更新激活。

  • UE-A将通过在 INVITE消息中加入Supported:precondition来标识自己支持PRECONDITION功能;同时也在该消息的SDP中加入Media Attribute (a): curr:qos和 Media Attribute (a): des:qos来标识现有资源预留状态和期望资源预留状态。

  • UE-B在收到 INVITE消息后,将在回复的183 Session Progress 中的Require:precondition来标识启用 PRECONDITION功能,并也在该消息的SDP中加入 Media Attribute (a): curr:qos和Media Attribute (a): des:qos来标识现有资源预留状态和 期望资源预留状态的更新;同时也通过加入Media Attribute (a): conf:qos 来标识:当 UE-A 确认资源预留成功后,需要触发UPDATE流程确认。

VoLTE语音专用承载的建立、修改与更新相关推荐

  1. 运营商宣传的volte语音高清有啥好处啊?

    先说说Volte(Voice over LTE)咋念,读作"窝儿踢",Volte语音其实就是我们打电话时语音跑在4G的LTE基站上,比原来我们用2\3手机打电话是跑在的2\3G基站 ...

  2. C# 动态获取、修改、更新配置文件 实现思路

    1.添加System.Configuration.dll引用:程序中添加using System.Configuration; 读取数据:(tbHost为文本控件) [csharp] view pla ...

  3. phpcms如何修改数据库图片地址?域名变更后图片附件路径只能手动修改数据库更新?

    phpcms如何修改数据库图片地址?域名变更后图片附件路径只能手动修改数据库更新? phpcms数据库中,存放图片路径地址的那个表,是什么表? 举例说明: 以前的域名是 abc .com.文章里图片附 ...

  4. windows10更新服务器修改,修改win10更新服务器地址

    修改win10更新服务器地址 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 修 ...

  5. 如何修改chrome里的html,chrome css修改不更新怎么解决?

    在做web开发过程中,经常需要调试js代码,而在这个时候我们修改过的代码可能不能生效.这是因为浏览器默认是有缓存的,但是这个时候缓存就会影响我们的调试工作,在这里就介绍一下chrome浏览器解决该问题 ...

  6. MongoDB数组修改器更新数据

    MongoDB数组修改器更新数据 这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用来修改 ...

  7. c语言天选之点,【WOTC】天选者之战修改XCOM能力点数方法 意志力恢复加速 更新一个战斗中不掉意志力修改 再更新一个战斗视角缩放增大并固定修改...

    查看: 36591|回复: 60 [攻略] [WOTC]天选者之战修改XCOM能力点数方法 意志力恢复加速 更新一个战斗中不掉意志力修改 再更新一个战斗视角缩放增大并固定修改 游戏狂人, 积分 184 ...

  8. MongoDB 查询篇 及 数组修改器更新数据

    查询方法 1. 查询方法 mongoose查询使用最基础的方法就是find.findOne方法,前者查询所有满足条件的值,后者取满足条件的某一个值. 2. 查询条件 mongoose查询条件其实就是在 ...

  9. VOLTE语音时延问题定位

    现象 两个终端拨打VOLTE存在语音时延的问题.其中,一个终端为4G VOLTE,位于SMC站下,另外一个终端为2/3G,位于宏站下.在此场景下,随着呼叫时间变长,极大概率出现4G终端接收到的语音延迟 ...

最新文章

  1. 你还在认为 count(1) 比 count(*) 效率高?
  2. html 相对于父标签位置,css子元素如何相对父元素定位?
  3. Wi-Fi速度慢的十个原因以及解决办法
  4. 日本农商巨头50年布局多个领域 对话国际农民丰收节贸易会
  5. java反射 初始化bean_通用javabean初始化(反射机制)
  6. 责任链模式 和观察者模式
  7. 「ROI 2017 Day 2」反物质(单调队列优化dp)
  8. K均值聚类关于初始聚类中心选取的一种改进(python程序)
  9. 【BZOJ4774】修路 [斯坦纳树]
  10. 【iCore4 双核心板_ARM】例程二十九:SD_IAP_FPGA实验——更新升级FPGA
  11. SqlServer中Group By高级使用--Inner Join分组统计
  12. Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》
  13. 20135202闫佳歆——信息安全系统设计基础第十三周学习总结
  14. 【Redis】2. 入门篇
  15. JavaScript的事件委托(事件代理)原理
  16. 第11章 Linux的网络管理
  17. print的常用写法(python)
  18. matlab判断系统因果性,信号与系统如何判定一离散系统的因果稳定性
  19. Android-Activity生命周期、广播接收者、服务
  20. Quantopian教程系列四

热门文章

  1. 程序员成长的几件法宝
  2. 使用Redis在Hibernate中进行缓存
  3. 游戏编程技术贴:AI设计的若干规则阐述
  4. 【云栖大会】阿里云如何“计算”地震?
  5. 2022打游戏的笔记本电脑推荐哪款?来看看外星人!
  6. 【C语言】简易版_反弹小球游戏
  7. u8不显示登录到服务器,用友U8 不能登录到服务器
  8. Sql Server 2000 补丁惹的获
  9. 如何提高自己和员工的工作积极性
  10. 美容院营销宣传单怎样派发才有效?