VoLTE:别把Cancel与BYE搞混了!
在VOLTE通信流程的SIP会话中经常会遇到CANCEL消息,它与结束通话中的BYE有什么区别呢?
首先,我们来回顾一下SIP的基本呼叫流程;Andrew给Jennifer打电话,通话若干分钟后Jennifer挂机结束通话,这是一个典型的通话过程(图1)。本次通话从INVITE开始,由BYE结束(收到最终响应200 OK)。
Figure 1 VOLTE通话主要流程
在另一个场景Andrew呼叫Jennifer时,Jennifer正在忙着做饭不能接听电话;Andrew本可等待一段时间,呼叫转移到语音邮箱,但他又不愿意留下任何留言,而只是简单的挂断了电话。
Figure 2 通话Cancel流程
通过上图可看出,本次通话没有建立而是由主叫Andrew挂掉了,这就是CANCEL。
与BYE消息不同,CANCEL用于关闭一个还未收到最终响应的会话。
注意:图表3呼叫流程中的“200 OK”不是针对本次呼叫流程中INVITE消息的,它只是对CANCEL完成的确认,表示Jennifer已经收到了CANCEL并已经开始拆除这个会话,并返回487 Request Terminated响应给Andrew。
本次487(Request Terminated)是针对INVITE的最终响应。该消息将促使Andrew返回一个ACK请求消息,释放这个会话(ACK是对最终响应确认,这是与1xx--临时响应的区别)。
在VOLTE通话中有一种呼叫分叉(Call Forking),它是指当一个用户注册了多个终端;如果该用户做被叫,注册的多个终端将同时振铃,俗称“一号双(多)响”。虽然多个终端同时振铃,但只有一个终端会应答,而其他响铃的终端呼叫必须要释放。
Figure 3 Forking中的Cancel
不同于之前Andrew释放Jennifer未接听电话的场景,Andrew(UA1)并不发送CANCEL。本次Jennifer绑定了多个终端,如手机(UA2)和固定电话(UA3)同时振铃,而实际上Andrew(UA1)甚至并不知道有哪些终端会同时振铃,因为呼叫分叉操作是由SIP代理完成的。Andrew仅仅知道他发起了一次呼叫,有振铃音,并且呼叫被接听了;通过SIP代理将在Jennifer接听电话之后(假设是用UA2),发送CANCEL消息给所有剩余的振铃终端(UA3)。
BYE不是CANCEL,CANCEL也不是BYE;但他们都是执行释放会话的工作。做为通信工程师,幸运的是用户不需要关心这么多,仅仅只是挂掉电话,剩下的事情由SIP来完成。
VoLTE:别把Cancel与BYE搞混了!相关推荐
- 别把机器学习和人工智能搞混了!
智力就是理性思考和控制行为的能力.人类有智慧去思考和利用常识来作出决定.人工智能就是一个构建智能代理的研究领域,因此未来我们打造出来的人工智能可以像人一样思考并理性行事.图灵测试由艾伦·图灵(1950 ...
- 别把机器学习和人工智能搞混了! 1
智力就是理性思考和控制行为的能力.人类有智慧去思考和利用常识来作出决定.人工智能就是一个构建智能代理的研究领域,因此未来我们打造出来的人工智能可以像人一样思考并理性行事.图灵测试由艾伦·图灵(1950 ...
- 为什么程序员总是把圣诞节与万圣夜搞混
为什么程序员总是把圣诞节与万圣夜搞混? 因为 DEC 25 == Oct 31 二进制 的25 == 八进制的31 转载于:https://www.cnblogs.com/zy2012/archive ...
- select switch语句总是搞混,总结如下
select switch语句总是搞混,总结如下 类C:c c++ c# java : 比较 == switch(expression) { case constant-expression ...
- 开环控制的两轮差速驱动小车_汽车的差速器、差速锁有什么不同?很多车主容易把它俩搞混...
汽车上除了车灯.轮胎.方向盘这些显而易见的配置以外,还有差速器和差速锁这两个不常见的配置在默默无闻的工作着. 许多车友都不清楚什么是差速器.什么是差速锁,或很容易把它俩搞混,又或者根本就不认识它俩. ...
- lazarus控件怎么那么少_盘点5个常被搞混的控件与规范
© NANA UX DESIGN 努力周更原创干货与资源分享 2020年 第 34 篇原创分享 开篇先讲个故事: 上周偶然一次和开发对对碰视觉规范的时候,一位开发问了个问题:这个对话框是做成模态还是非 ...
- 不要再搞混Vue的响应式原理和双向数据绑定了
前言 之前公司招人,面试了一些的前端同学,因为公司使用的前端技术是Vue,所以免不了问到其响应式原理和Vue的双向数据绑定.但是这边面试到的80%的同学会把两者搞混,通常我要是先问响应式原理再问双向数 ...
- 固态硬盘的PCIE,SATA,M2,NVMe,AHCI分别都指什么?别再搞混了
原文:https://baijiahao.baidu.com/s?id=1616207956596122967&wfr=spider&for=pc 科技娱乐屋 18-11-0420:5 ...
- 雷电2接口_厉害!跟Type-C长得一毛一样的雷电3,原来区别这么大,别搞混了
欢迎转载,请注明出处,抄袭必究! 之前教授跟大家科普了一些关于Type-C接口的知识,让各位机友知道其实这个接口不仅仅只是可以"用来充电"而已,甚至说比小苏打的用途还多.教授留意到 ...
最新文章
- 【Linux学习】Ubuntu下内核编译(一)
- WINDOWS基础 ---- 系统目录
- codeforces1467 E. Distinctive Roots in a Tree(树上差分)
- 整数区间(信息学奥赛一本通-T1324)
- 关于球谐函数一些初步的理解
- 无网络环境下安装Dynamics CRM
- python webkit内核_GitHub - yufengsoft/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
- [圣诞大礼][android控]平板电脑HD精品游戏软件合集
- MonkeyTest小结
- 奶茶店收银系统php版,奶茶店收银系统
- 项目管理软件-禅道-内网部署
- html日期框样式设置
- 锁定计算机屏幕的快捷键是什么,锁住电脑屏幕的快捷键_打开电脑屏幕的快捷键...
- 怎么在Word文档中更改所有数字和英文字母的字体
- 自动控制原理中的MATLAB函数以及用法总结
- 什么是数字式KVM远程管理功能
- 制作报价单,制作价目表的软件和app
- VS Code 修改字体为JetBrains Mono
- 如果说war3是个游戏框架,那wow就是个操作系统
- 厦大博士学位论文抄袭案后续
热门文章
- Ehcache通俗易懂小案例
- 祝大家新年快乐,诸事大吉!
- linux cat命令详解,作用,说明
- 15种下载文件的方法
- python openpyxl详解_python openpyxl使用方法详解
- 与擎标同行 | etsme个人私有云获ISO27001 ISO27701隐国际双认证
- H5+ APP扫码测试完整版
- 微信最烧脑游戏计算机2sin,微信史上最烧脑游戏答案大全_史上最烧脑游戏攻略汇总_快吧小程序...
- 阿比特龙最长服用多久?阿比特龙吃多久PSA能降?
- 2011.12.7 一个研究生毕业后的职业规划 -----我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。