• VoLTE基础自学系列 | VoLTE呼叫流程之VoLTE打VoLTE,主被叫接入域为LTE


    视频来源:51学通信《VoLTE基础》

    一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

    附上汇总贴:VoLTE基础自学系列 | 汇总_COCOgsta的博客-CSDN博客


    VoLTE呼叫流程中的主要子流程

    IMS公共流程

    • SDP(媒体面) 协商/资源预留
    • Precondition
    • 基础语音及补充业务、智能网业务、运营商自有增值业务等(呼转、彩铃等)
    • DNS/eNUM查询
    • 计费

    VoLTE特有流程

    • Netloc位置上报及区号补全(漫游用户拨打本地PSTN用户场景)
    • 主叫或被叫业务锚定(用于CS接入域拨打VoLTE用户场景)
    • 被叫接入域选择(T-ADS)
    • 主叫及被叫侧的专有承载建立(语音及视频转载)
    • eSR VCC相关流程(如切换)
    • 与VoWiFi的互通
    • ICS

    高层来看一个VoLTE的基本呼叫流程

    广州用户到了北京,给人在成都的长沙用户打VoLTE电话,路由怎么走的?

    高层来看一个VoLTE基本呼叫的会话建立

    路由原则:VoLTE用户附着在LTE, 如果被叫是VoLTE用户, 则将呼叫路由至被叫归属IMS域, 由被叫归属IMS进行被叫域选, 根据域选结果进行后续路由。

    采用Precondition的基本呼叫建立流程

    T-ADS流程图

    SCCAS执行T-ADS的通用选择原则

    用户仅在IMS注册, 选IMS。

    用户仅在CS注册,选CS。

    用户在IMS和CS均未注册, 选IMS。

    用户在IMS和CS均注册, 则进一步查询:

    • 有SGSN注册信息, 选CS。
    • 无SGSN注册信息, 有MME注册信息, 向MME进一步查询

    1)若MME返回IMS Voice Over PS为支持, 则选IMS。

    2)若MME返回IMS Voice Over PS为不支持, 则选CS。

    3)无SGSN注册信息, 也无MME注册信息, 选CS。

    VoLTE基本呼叫流程中的专用承载建立

    VoLTE中的主被叫号码规整

    通常都是在AS上完成。

    主叫号码规整,即把国际格式的主叫号码反向规整为国内号码格式,甚至更为简单的本地号码格式,以使被叫终端的来电显示更为简洁易懂。

    被叫号码规整,即把它们转换为E.164国际格式(比如+861088888888,+8613912345678),以方便地执行业务逻辑(比如用于比对MTAS黑白名单列表中的号码, 或ENUM服务器中的国际格式号码)。

    VoLTE打VoLTE信令(主被叫接入域LTE)

    VoLTE打VoLTE信令(挂机)

    附录:部分VoLTE基本呼叫关键消息分析

    UE发出的第一个Invite消息分析实战

    1. 下载一个实际Invite消息。链接如下:

    51xuetongxin.com/doc/invite.…

    (备注, 该Invite消息由实际呼叫的pcap导出, 出于隐私保护需要, 替换了运营商信息, 转换成txt文档供下载。130多行。)

    1. 咱们来一起分析一下这个Invite消息。

    SIP头部的Route和Record-Route头域

    理解Route和Record-Route消息头(会话流程)

    第一个AAR和第二个AAR的Service-Info-Status AVP

    修订1:有哪些步骤是信令流程图没有体现的?

    在当期70多步的Volte打VoLTE信令流程图中, 还有很多步骤由于很多网元是合设的,所以并未体现,这里总结一下:

    • DNS/eNUM(IMS网络都靠SIP-URI寻址)
    • DRA
    • 主叫和被叫可能触发多个AS(通常有SCC AS、智能网AS、电话AS等)
    • SAE-GW图中是合设的, 实际可能SGW和PGW是分离的。
    • VoLTE SBC图中是和合设的, 实际包含SBC、P-CSCF、ATCF、ATGW功能。
    • I/S-CSCF是合设的, 实际可能分离。或者在图中有内部转发未能标出。
    • 如果被叫UE是ECM-IDLE态, 被叫MME要发起被叫寻呼流程, UE响应Service Request流程进入ECM连接态。被叫SGW才能把Invite转给UE。

    修订2:主叫收到183后的更新专载是否必选?

    信令流程图中, 主叫SBC收到主叫Invite会触发专载建立, 在收到被叫侧返回的带SDP的183后会触发专载更新(Rx接口的AAR/AAA、Gx接口的RAR/RAA以及GTP的Update Bearer Request/Response),那这个专载更新是必选的吗?

    答:直播时的答案是如果被叫183和主叫Invite里所选择的编码相同,可以不更新专载。这里更新一下,这个更新专载流程是必选的。因为即使主被叫所选择编码相同,还需要更新关于该媒体流的地址和端口信息, 即TFT。因为Invite消息的SDP里还不知道被叫侧的媒体流IP和端口号。

    修订3:关于主叫Invite消息中Suppor头域及Require头域中的Precondition

    主叫Invite消息中的Support头域通常携带Precondition来表示支持该机制。但Require头域通常不带该字段。为什么?

    答:Support头域是声明自己的支持能力, 用于和被叫侧协商。但Require头域则是强制要求, 如果对端不支持的话, 那呼叫就会失败。Require头域通常不携带Precondition, 通常是为了支持VoLTE和固网IMS的互通, 因为固网IMS并不支持Precondition。所以实际上就是把Precondition的启用判决交给了被叫来决定。

    修订4:关于呼叫中的SDP AMR-WB选择?

    某运营商要求终端在建立VoLTE语音呼叫过程中, AMR-WB默认编码模式为23.85kpbs, 那这个23.85kbps在SDP协商中怎么体现的?

    答:AMR-WB默认有9种编码速率, 在SDP中a line中通过mode-set来表示。取值为8代表23.85kbps。主叫Invite的SDP中如果不带mode-set,则代表支持所有的AMR-WB编码。

    修订5:关于T-ADS

    “Single-Registration-Indication”是S6a接口Diameter消息中的一个bit位, 如果设置了该字段, 指示HSS应该向SGSN发送Cancel Location, 将SGSN的地址信息清除。

    如果该UE从23G回到4G发起附着或者TAU, 会在附着请求/TAU请求中携带Additional GUTI(代表自己是从23G来的) 。看到这个参数, MME向HSS发ULR, 并将“Single-Registration-Indication”置1, HSS将把SGSN的信息清除。

    反过来, UE从4G到23G, SGSN不会触发HLR/HSS向MME发起Cancel Location, 所以此时UE是双注册到23G和4G。

    修订6:适用场景

    本地VoLTE打本地VoLTE

    本地VoLTE打外地VoLTE

    外地VoLTE漫游到本地, 打本地VoLTE

    外地VoLTE漫游到本地, 打外地VoLTE

    本地VoLTE漫游到外地, 打本地VoLTE

    本地VoLTE漫游到外地, 打外地VoLTE

  • 相关阅读:
    教你几个MATLAB中数组索引的方法技巧
    springboot集成swagger3与knife4j
    《安卓逆向》Magisk的编译踩坑记录-安装方法-分享魔改后的Magisk过root检测方法
    stable diffusion 的controlNet 安装和使用
    Go 文件操作
    并发编程之CompletableFuture全网最细最全用法(一)
    chrome实用插件分享
    使用 docker buildx 构建跨平台镜像
    第11章 虚拟实验室概述
    HBuilderX连接安卓模拟器
  • 原文地址:https://blog.csdn.net/guolianggsta/article/details/126310588