在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搞混了!相关推荐

  1. 别把机器学习和人工智能搞混了!

    智力就是理性思考和控制行为的能力.人类有智慧去思考和利用常识来作出决定.人工智能就是一个构建智能代理的研究领域,因此未来我们打造出来的人工智能可以像人一样思考并理性行事.图灵测试由艾伦·图灵(1950 ...

  2. 别把机器学习和人工智能搞混了! 1

    智力就是理性思考和控制行为的能力.人类有智慧去思考和利用常识来作出决定.人工智能就是一个构建智能代理的研究领域,因此未来我们打造出来的人工智能可以像人一样思考并理性行事.图灵测试由艾伦·图灵(1950 ...

  3. 为什么程序员总是把圣诞节与万圣夜搞混

    为什么程序员总是把圣诞节与万圣夜搞混? 因为 DEC 25 == Oct 31 二进制 的25 == 八进制的31 转载于:https://www.cnblogs.com/zy2012/archive ...

  4. select switch语句总是搞混,总结如下

    select switch语句总是搞混,总结如下 类C:c c++ c# java   : 比较 == switch(expression) {    case constant-expression ...

  5. 开环控制的两轮差速驱动小车_汽车的差速器、差速锁有什么不同?很多车主容易把它俩搞混...

    汽车上除了车灯.轮胎.方向盘这些显而易见的配置以外,还有差速器和差速锁这两个不常见的配置在默默无闻的工作着. 许多车友都不清楚什么是差速器.什么是差速锁,或很容易把它俩搞混,又或者根本就不认识它俩. ...

  6. lazarus控件怎么那么少_盘点5个常被搞混的控件与规范

    © NANA UX DESIGN 努力周更原创干货与资源分享 2020年 第 34 篇原创分享 开篇先讲个故事: 上周偶然一次和开发对对碰视觉规范的时候,一位开发问了个问题:这个对话框是做成模态还是非 ...

  7. 不要再搞混Vue的响应式原理和双向数据绑定了

    前言 之前公司招人,面试了一些的前端同学,因为公司使用的前端技术是Vue,所以免不了问到其响应式原理和Vue的双向数据绑定.但是这边面试到的80%的同学会把两者搞混,通常我要是先问响应式原理再问双向数 ...

  8. 固态硬盘的PCIE,SATA,M2,NVMe,AHCI分别都指什么?别再搞混了

    原文:https://baijiahao.baidu.com/s?id=1616207956596122967&wfr=spider&for=pc 科技娱乐屋 18-11-0420:5 ...

  9. 雷电2接口_厉害!跟Type-C长得一毛一样的雷电3,原来区别这么大,别搞混了

    欢迎转载,请注明出处,抄袭必究! 之前教授跟大家科普了一些关于Type-C接口的知识,让各位机友知道其实这个接口不仅仅只是可以"用来充电"而已,甚至说比小苏打的用途还多.教授留意到 ...

最新文章

  1. 【Linux学习】Ubuntu下内核编译(一)
  2. WINDOWS基础 ---- 系统目录
  3. codeforces1467 E. Distinctive Roots in a Tree(树上差分)
  4. 整数区间(信息学奥赛一本通-T1324)
  5. 关于球谐函数一些初步的理解
  6. 无网络环境下安装Dynamics CRM
  7. python webkit内核_GitHub - yufengsoft/wke: 基于Webkit精简的纯C接口的浏览器内核,可用于桌面UI、浏览器。...
  8. [圣诞大礼][android控]平板电脑HD精品游戏软件合集
  9. MonkeyTest小结
  10. 奶茶店收银系统php版,奶茶店收银系统
  11. 项目管理软件-禅道-内网部署
  12. html日期框样式设置
  13. 锁定计算机屏幕的快捷键是什么,锁住电脑屏幕的快捷键_打开电脑屏幕的快捷键...
  14. 怎么在Word文档中更改所有数字和英文字母的字体
  15. 自动控制原理中的MATLAB函数以及用法总结
  16. 什么是数字式KVM远程管理功能
  17. 制作报价单,制作价目表的软件和app
  18. VS Code 修改字体为JetBrains Mono
  19. 如果说war3是个游戏框架,那wow就是个操作系统
  20. 厦大博士学位论文抄袭案后续

热门文章

  1. Ehcache通俗易懂小案例
  2. 祝大家新年快乐,诸事大吉!
  3. linux cat命令详解,作用,说明
  4. 15种下载文件的方法
  5. python openpyxl详解_python openpyxl使用方法详解
  6. 与擎标同行 | etsme个人私有云获ISO27001 ISO27701隐国际双认证
  7. H5+ APP扫码测试完整版
  8. 微信最烧脑游戏计算机2sin,微信史上最烧脑游戏答案大全_史上最烧脑游戏攻略汇总_快吧小程序...
  9. 阿比特龙最长服用多久?阿比特龙吃多久PSA能降?
  10. 2011.12.7 一个研究生毕业后的职业规划 -----我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。