-
2020-07-19 15:04:18
一切要重头说起,从电话技术发明,到大哥大(1G移动通讯)诞生,发展到2G数字移动通讯(GSM、CDMA),以及现在的3G(WCDMA、TD-SCDMA、CDMA-2000),4G(TD-LTE、FDD-LTE),本质上是追求成本的降低,产品功能的多样化!
1G很简单,就是为了让固定电话能随身携带,没有额外功能,纯粹的模拟电话信号通过无线电传输;
2G以及后面的2.5G, 2.75G,是把模拟的电话信号转换成了数字化的编码,简单些理解就是家里无绳电话的模拟无线和2.4G数字无绳的区别,然后附带着,就象在电话线上提供猫拨号上网一样,提供了GPRS、EDGE的上线功能,当然,和猫上网一样,速度慢是典型的特点,这一时期还提供了象短信、彩信等一些有限的增值服务;
3G的重点放在了上网速度上,语音电话弱化了,但其本质是在2G上发展而来的,大量的科学家的精力花在了如何在旧体系上,有没有办法多压榨些资源来传输上网数据——这有点象把一个书架上的放书的格子和位置好好规范了一下,比随便乱放能放更多书了,但根本问题没解决,有限的通讯资源要保留着随时准备让语音电话使用,所以成本还是居高不下;
4G其实对普通用户意义不大,真正商用能稳定提供的下行带宽也就10M左右,与联通WCDMA宣传的3G的速度差别不大,虽然4G理论上能提供的速度能达到100M,但理论就只是理论,而已。
之前有过一篇文章说到过,4G之所以在用户需求层面没有动力时,运营商仍要大力去推,这好象有些不符合商业规律——技术本应该是根据市场用户需求而诞生的,但根源,是因为4G改变了从2G到3G时的运营商网络的建设方式和运营成本,4G不再保留 无线通讯资源来专门跑语音了,而是所有资源全部用来跑数据——就是全部用来上网;
▽
打电话时,走2G、3G线路上的语音保留资源,这是“独占”的资源,而4G所有的资源,都用来跑数据,电话语音也变成数据,大家可以“共享”网络带宽速率,显而易见,共享的资源的成本,肯定要大大低于独占的资源了,所以4G的数据资费,成本会远远低于3G时的上网成本,当然,这是对于运营商有利的,最终定什么价,还是运营商定;
虽然我们这里主要是说4G——也就是手机、移动通讯,但固定电话和固定宽带,技术上也是有相似性的,和上面移动通讯要发展1G、2G、3G、4G一样,固定电话和固定宽带也在从电话线——电话线+拨号上网——电话线+ADSL上网——纯光纤上网(送终端设备,从光纤上面接电话出来),几乎是和移动通讯类似的发展轨迹。
不管是4G的最终发展目标,还是光纤上网整合宽带上网和固定电话,他们都有一个统称,NGN下一代网络,美好的规范图是这样描绘的——在一个网络(NGN)上,同时能提供上网、电话、电视以及各种增值服务,三网融合。
手机移动通讯要实现这些美好愿景,在可以预见的未来,不太容易实现,特别是第一阶段,能让大家用习惯了的电话,顺顺当当跑在4G网络上,就是一项艰巨的任务,所以,3G会在相当长的时间里,和4G是共存的,并且4G更长一段时间,可能只是用来提供数据服务,因为—VoLTE还不成熟;
目前市面上的4G手机,都只是用4G来上网,而打电话仍走原来的3G或2G的通道,因为4G要想独立打电话,需要有IMS服务器和IMS软件终端,但无论是IMS服务器的成熟度和软件的终端的成熟度,还不够成熟,所以中国移动要采购的第一批产品中的MIFI和CPE,MIFI称为能提供4G接入的无线路由器的理解没错,而对CPE的名词解释,很多家专业媒体都说错了,CPE是在MIFI基础上,还留有一个模拟电话的接口,接上电话机就能打电话,而电话就是走的IMS服务器,真正的VoLTE,这算是移动用来试水的举措吧,用来测试IMS服务器的,稳定了才在手机上跑VoLTE。
VoIP
上面我们提到多个通讯行业的国际标准化组织,他们这么多年做的大量工作,就是为了让4G这个纯IP网络化的移动通讯网络,能让语音在共享的数据网络上(PS,即包交换),能象从前在独占的语音网络上(CS,即电路交换)跑的一样遛,他们想到了VoIP。
VoIP里面有许多标准,Skype是私有的,H323是通讯行业的标准,SIP是IETF也就是互联网组织定的,为什么通讯行业定未来下一个几十年的标准时,不是从他们自己的H323上面发展,而是选互联网行业标准组织IETF提出的SIP标准呢?大家都笑而不语……
但互联网的原则是开放,还有一个就是免费,所以SIP在脱离于通讯行业标准约束时,非常自由,对于不同供应商提供的SIP服务之间的结算啊、费用啊之类的没有通讯行业那么细——说白了,就是SIP提供的许多服务都是免费的,要想收费不太好下手,由此,3GPP等等一众通讯行业的标准化组织,在SIP基础上,提出了IMS,到此,我们标题里说的SIP、VoIP、VoLTE、IMS这些名词全部出场了。
VoIP解释起来简单,就是Voice on IP,语音跑在IP网络上,就是VoIP,这是一个比较上层的统称的名词,那么同样的VoLTE也只是说语音跑在LTE网络上——LTE就是指的4G的两个标准,TD-LTE、FDD-LTE——需要注意的是,TD-LTE和TD-SCDMA没有任何关系,其它的我就不多说了。
LTE全称是Long Time Evolution,从名字上就知道,4G这个东西提出的很匆忙,许多东西还没定好就被运营商急着要上线。
▽
IMS
而IMS这个东西就要复杂的多了,虽然SIP很好理解,大家暗地里可能也用了好多年的VoIP,对SIP也很熟悉了,它本质上就是一个服务器,放账号,大家注册上去就能打电话,很简单吧,但要收费呢,目前VoIP一般也只提供了便宜的网络电话,按时长或者包月收费,没有增值服务——这对于移动通讯运营商来说可是不能忍受的。
来电显示为什么不能收费?为什么彩铃不能收费?为什么留言不能收费?为什么为什么?
所以,IMS干的第一件是,就是加入了一个HSS子服务(Home Subscriber Server),这个是什么东西呢?SIP虽然也分为注册服务器Register Server、呼叫代理服务器Proxy Server,但SIP的注册服务器只是记录一下一个SIP账号的当前的IP地址数据、认证一下账号密码是不是正确;但IMS里的HSS就不简单了,他是在SIP的注册服务器基础上,增加了一个很明显的运营商特征——业务订购数据库,也就是在移动开手机卡时,那一堆附加增值服务,好了,你在这里可以看到来电显示业务、呼叫等待业务、彩铃业务……,的开关——也意味着收费的计费点;
因为VoIP很简单,一般是企业内部用,或者小规模的虚拟运营商在有限的几台服务器上提供服务,所以VoIP的SIP软件、SIP电话机网关就可以直接通过IP地址和账号就能注册上去,然后呼叫在多台服务器上互相路由就可以完成呼叫的目的了,这些服务器,一般就是SIP Proxy Server,涉及到和固定电话、手机号码互通时,会有FXO网关,E1网关等负责转换,这里不多说了。
而IMS作为运营商的方案,动辄上亿用户规模,而且又分为各省市地分公司,当然,还有一个不得不提的,漫游——IP还区分漫游?VoIP不是宣传不区分本地长途,没有漫游的概念么?是的,但IMS认为这样不行,所以,他要加入漫游的概念……
▽
SIP
IMS的核心是SIP,所以类似SIP Proxy Server这么重要的核心组件,IMS是不会少的,IMS里称它为Call Session Control Function,即CSCF,并且又把它分成了多个子系统,其中代理CSCF(P-CSCF)从用户终端角度看,基本就是SIP里的Proxy Server了(但其实不是,下述),负责直接与IMS的终端(类似SIP的软电话、硬件电话等等,但同样的,也扩展了不少东西,这里跳过不述);P-CSCF直接与终端交互,可能会把SIP进行压缩或者加密,然后就交给查询CSCF(I-CSCF),I-CSCF会查询HSS数据,来对用户名和密码进行认证,当然,他也从HSS里查询你是否欠费了,开通或关闭了某些业务,以及你是从哪个P-CSCF来的,用来判断你是不是漫游。
整个呼叫过程中,P-CSCF是不做复杂工作的,P-CSCF只负责接收SIP消息,它相当于是对外联络点,然后SIP消息会到达I-CSCF,I-CSCF是运营商的核心网络——就是运营商内部网络的入口,他会根据HSS查找到用户是属于哪个地区的,会对应分配一个空闲的为该地区服务的服务CSCF(S-CSCF),一直到了这里,S-CSCF才是真正的VoIP里Proxy Server的角色,S-CSCF完成用户注册认证和呼叫的路由处理,以及电话业务的触发(IMS称为AS,另外独立成一个子系统,下述)。
所以如果综合来分析,P-CSCF和I-CSCF只是起到一个边界安全防护SBC服务器和负载平衡、服务器分流这一类功能,真正处理SIP注册和呼叫的原先VoIP里标准逻辑的组件,是S-CSCF,从物理上看,P-CSCF可能是全国或省一级中心统一的服务器集群,配合更多的I-CSCF服务器分布在主干核心网上做分流,背靠一个大的HSS服务器群,将不同市县的用户分配到各地的S-CSCF上进行实际的处理,并且S-CSCF会更多地与当地的通讯机房里原有的2G、3G发生交流,也就是媒体网关(MGW),负责把新的走4G的手机终端和旧的3G、2G以及固定电话之类的对接起来,保持兼容(也就是PS、CS域的互通)。
所以,一个最最精简的IMS系统,它的核心组件是包含HSS、CSCF(P、I、S)即可,即把VoIP SIP的核心Register和Proxy Server进行按运营需求的发展:
▽
MGW
MGW,其实就是市面上大量被使用的VoIP的模拟网关,数字中继网关,而已……当然,运营商对稳定性要求需要更高一些,并且需要额外的集中管理和控制能力;
总结
zongjie
如果上了4G也只是为了提供和原来类似的语音通话功能,运营商的面子还是挂不住的,得与时俱进,提供一些IM服务,面向个人用户,所以一般还要加一个Presence Server,推送服务器,离线存储服务器等云的概念,提供的,无非是类似qq或微信的功能了,当然,可能是收费的,再次笑而不语……
同样的,通讯不只是面向个人的,也要面向企业,所以上面也提到了AS子系统,即Application Server,其实就是现在的通讯行业内的增值方案服务供应商了,一般就是提供例如电话会议、语音留言,企业语音导航IVR,电话呼入自动分配ACD等等;
因为象4G或者NGN,大家全是跑在IP网络上的,所以就不再需要象原先做电话呼叫中心,CTI系统等等,让电话与电脑信息系统对接需要额外购买一台电话程控交换机、语音板卡等等才能使用的问题了,只要有能接入网络的智能的设备,电脑、手机、平板,都可以直接与IMS的AS子系统对接,这可能才是真正的推4G或ngn的价值吧,让电话也完全融入电脑的IP网络世界里,电话、手机独立在企业的信息化系统外面已经太多年了,如果这一均势发展良好,那些老掉牙的定制的CTI通讯系统,终于可以跟上互联网产品发展的节奏,让我们接触的象银行、快递公司的电话系统,医院的挂号、火车飞车的买票的电话系统,真正的能跟上时代发展的脚步了,IVR语音菜单导航这种逆天反人类的存在,早就该被淘汰了!更多相关内容 -
华为-IMS网络简介.pdf_ims网络_
2021-09-30 09:31:25IMS技术已成为业界公认的下一代网络核心技术 -
基于IMS网络的核心网能力开放部署方式
2021-01-19 18:24:19电信运营商基于已有通信网络能力打造能力开放平台,吸引第三方开发者开发更多、更丰富多彩的个性化通信服务...对能力开放的系统架构、IMS 网络能力平台的建设方案和能力开放方式进行分析,为能力开放实际部署提供参考。 -
EPC核心网对IMS的影响剖析.pdf
2020-03-24 16:07:54介绍了IMS演进的需求、方案建议和相关标准化在3GPP R8、R9阶段的进展,并列出3种IMS业务本地路由 疏导方式。 -
IMS核心网中基于卫星接入网络的QoS方案
2021-01-12 22:19:24作为下一代网络NGN核心网解决方案,IMS(IP多媒体子系统)可以支持多种终端接入方式,为固定网络和移动网络集成提供基础,所以IMS的带宽和时延就显得尤为重要。而卫星通信系统在地理和带宽方面具有优势,因此有必要... -
IMS核心网网络安全指标体系分析.pdf
2021-09-20 00:08:43IMS核心网网络安全指标体系分析.pdf -
理解IMS 核心网架构
2021-07-12 10:23:02IMS 核心网架构 IMS总体架构通常分为三层,接入层、呼叫控制层、业务应用层: 接入层 :将各种接入网络汇总到IMS核心网,完成对现有网络的互通及完成对承载的控制。 呼叫控制层:IMS的核心层,完成呼叫控制...IMS 核心网架构
IMS总体架构通常分为三层,接入层、呼叫控制层、业务应用层:
接入层 :将各种接入网络汇总到IMS核心网,完成对现有网络的互通及完成对承载的控制。
呼叫控制层:IMS的核心层,完成呼叫控制、安全管理、业务触发、资源控制、网络互通等核心功能。
业务应用层:提供各种业务实现,如PSTN仿真业务集、Centrex业务集、呈现业务、即时消息业务等。
VoLTE呼叫流程
可以看到,pcscf和scscf的功能都像一个网关,最终业务还是icscf来处理,那为啥要这俩网元呢?
这要从号码归属地和漫游说起。因为号码的开户、鉴权等信息都存放在号码归属地的HSS,手机在使用地完成网络接入,在归属地完成业务处理。就呼叫来说,手机呼叫时的过程是:
1、手机把呼叫请求发给访问接入地的代理服务器;
2、接入地代理服务器找到归属地代理服务器并转发呼叫请求;
3、归属地代理服务器找到呼叫控制服务器并转发呼叫请求;
4、呼叫控制服务器与HSS交互处理呼叫业务。
这里的pcscf就是本地代理服务器,scscf就是归属地代理服务器,icscf就是归属地呼叫控制服务器。icscf可以有多个实现,那这时候scscf还有负载均衡的作用。
手机要上网或呼叫都需要先接入本地网络,因此第一关必须是本地代理服务器。如果你的手机没有漫游,那pcscf和scscf在物理上可以部署在一起。
网元说明
P-CSCF:代理呼叫控制功能模块,是IMS核心网络与用户终端的接口网元;与用户终端侧配合完成AKA鉴权、安全机制协商、IPSec加密保护、信令压缩等功能,在与有PDF功能模块的接入终端还可以配合完成资源预留功能;与I-CSCF/S-CSCF侧配合完成呼叫的接续处理。
I-CSCF:问询呼叫控制功能模块,为归属网络中P-CSCF的呼入选择 合适的S-CSCF,为拜访网络的外部IMS网提供接入。
S-CSCF:服务呼叫控制功能模块,IMS核心网中呼叫控制核心模块,负责对终端的注册鉴权、会话控制、用户业务信息管理及向AS触发指定业务等功能。
SIP Terminals:包括SIP软终端、SIP硬终端、SIP IAD接入设备、SIP AG接入设备等,当前我们设备就属于这一类。
GGSN:GGSN是GPRS网络中的关键部分,用于GPRS网络和IP网络的交互。
PDF:PDF是策略决策功能模块,基于策略控制完成鉴权、业务请求许可、Qos、资源预留等功能。
BGCF:BGCF是出口网关控制功能,BGCF有基于电话号码的路由功能,用来选择与PSTN网络的接口点,当BGCF发现被叫网络位于一个PSTN网络时,负责IMS网络到CS/PSTN网络呼叫选择合适的MGCF。
MGCF:媒体网关控制功能,负责IMS网络与CS网络之间进行通信
IM-MGW:IMS多媒体网关提供CS与IMS之间的用户平面链路转换,类似H248终端设备就是属于这一类。
HSS:归属用户服务模块,IMS网络中核心用户数据库,保存归属网络中IMS用户的签约信息,包括基本标识、路由信息、业务签约信息等。
SLF:签约数据定位功能模块,当运营商网络中存在多个HSS时,为I-CSCF/S-CSCF选择合适的HSS。
MRFC:媒体资源功能控制器,解析来自S-CSCF、AS的资源控制命令,并控制MRFP提供媒体资源,如三方会议混音、通告音等。
MRFP:媒体资源功能处理器,在MRFC控制下,为终端提供媒体资源。
SIP AS:SIP应用服务器,提供各种业务处理,如仿真PSTN业务、Centrex业务等。
-
核心网技术-IMS技术.pdf
2021-11-21 09:41:00核心网技术-IMS技术.pdf -
核心网技术—IMS技术.docx
2021-10-07 20:21:50核心网技术—IMS技术.docx -
IMS核心网网络安全指标体系研究.pdf
2021-09-20 15:46:05IMS核心网网络安全指标体系研究.pdf -
MTK IMS框架简析(2)——IMS注册过程
2018-05-12 10:13:59之前在《MTK IMS框架简析(1)——代码架构及模块初始化》中已经分析了ims代码的构成和重点类的初始化,接下来以启用VOLTE子功能为例,具体分析AP侧IMS服务的注册过程。 概要 IMS注册前提是系统启用了volte或wifi ...之前在《MTK IMS框架简析(1)——代码架构及模块初始化》 中已经分析了ims代码的构成和重点类的初始化,接下来以启用VOLTE子功能为例,具体分析AP侧IMS服务的注册过程。
概要
IMS注册前提是系统启用了volte或wifi calling等功能,Volte开关一般在网络设置界面会提供(如下图),用户切换开关状态将触发ims的注册或注销。
启用Volte后的消息传递序列(这里时序图避免复杂化,只表现消息的正向传递,忽略消息的返回)
frameworkframeworkims appims apprild imsrild imsvolte_imsmvolte_imsmrildrildTurn on IMS feature打开IMS子功能RIL_REQUEST_SET_VOLTE_ENABLERIL_REQUEST_SET_IMS_VOICE_ENABLERIL_REQUEST_SET_IMS_ENABLERIL_UNSOL_IMS_ENABLE_STARTIMS_SERVICE_UPMSG_ID_IMS_ENABLE_INDMSG_ID_WRAP_IMSM_IMSPA_PDN_ACT_REQRequest Network建立IMS承载SETUP_DATA_CALL(ims apn)MSG_ID_WRAP_IMSPA_IMSM_PDN_ACT_ACK_RESP成功建立承载RIL_UNSOL_IMS_REGISTRATION_INFO上报IMS注册状态
整个过程大致分为3步:
1. 设置并启用ims
2. 建立ims承载
3. 注册ims服务
接下来结合代码详细分析。
IMS注册过程
从界面启用ims
此过程会向rild-ims下发3个消息,通知rild需要打开哪些ims业务,然后开启ims服务:
//启用volte语音服务 RIL_REQUEST_SET_VOLTE_ENABLE RIL_REQUEST_SET_IMS_VOICE_ENABLE //启动ims功能 RIL_REQUEST_SET_IMS_ENABLE
这里就从用户打开界面开关开始分析。
ImsManager::setAdvanced4GMode方法为volte功能的开关,设置界面即通过此接口实现volte开关。
1. 向ImsConfig设置了feature(ImsConfig::setFeatureValue)
2. 打开ims (turnOnIms)。//ImsManager.java private void setAdvanced4GMode(boolean turnOn) throws ImsException { checkAndThrowExceptionIfServiceUnavailable(); try { ImsConfig config = getConfigInterface(); if (config != null) { //设置启用volte语音 config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE, TelephonyManager.NETWORK_TYPE_LTE, turnOn ? 1 : 0, null); } } catch (ImsException e) { } //启用ims服务 if (turnOn) { turnOnIms(); } else if (isImsTurnOffAllowed()) { turnOffIms(); } }
ImsConfig::setFeatureValue 作用是告诉ril目前要启用ims的哪些功能.
当前讨论的例子是打开volte,因此参数为”FEATURE_TYPE_VOICE_OVER_LTE”。
其他业务的定义在ImsConfig.java中://ImsConfig.java public static class FeatureConstants { public static final int FEATURE_TYPE_UNKNOWN = -1; /** * FEATURE_TYPE_VOLTE supports features defined in 3GPP and * GSMA IR.92 over LTE. */ public static final int FEATURE_TYPE_VOICE_OVER_LTE = 0; /** * FEATURE_TYPE_LVC supports features defined in 3GPP and * GSMA IR.94 over LTE. */ public static final int FEATURE_TYPE_VIDEO_OVER_LTE = 1; /** * FEATURE_TYPE_VOICE_OVER_WIFI supports features defined in 3GPP and * GSMA IR.92 over WiFi. */ public static final int FEATURE_TYPE_VOICE_OVER_WIFI = 2; /** * FEATURE_TYPE_VIDEO_OVER_WIFI supports features defined in 3GPP and * GSMA IR.94 over WiFi. */ public static final int FEATURE_TYPE_VIDEO_OVER_WIFI = 3; }
ImsConfig实际上是ims app/ImsConfigImpl的代理,setFeatureValue方法具体逻辑在ImsConfigImpl中。
这里传入的feature为FEATURE_TYPE_VOICE_OVER_LTE,因此会向rild-ims下发2个消息:RIL_REQUEST_SET_VOLTE_ENABLE及RIL_REQUEST_SET_IMS_VOICE_ENABLE。//ImsConfigImpl.java public void setFeatureValue(int feature, int network, int value, ImsConfigListener listener) { try { try { //将设置值保存到数据库 mStorage.setFeatureValue(feature, network, value); //不同的feature需要不同的设置,这里只分析volte的处理 switch(feature) { case ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE: case ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_WIFI: ... break; case ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_WIFI: ... break; case ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE: int oldVoLTEValue = SystemProperties.getInt(PROPERTY_VOLTE_ENALBE, 0); int wfcEnable = SystemProperties.getInt(PROPERTY_WFC_ENALBE, 0); if (value != oldVoLTEValue) { //打开 if (value == ImsConfig.FeatureValueConstants.ON) { //设置property SystemProperties.set(PROPERTY_VOLTE_ENALBE,"1"); //向rild-ims下发RIL_REQUEST_SET_VOLTE_ENABLE mRilAdapter.turnOnVolte(null); if (wfcEnable == 0){ //向rild-ims下发RIL_REQUEST_SET_IMS_VOICE_ENABLE mRilAdapter.turnOnImsVoice(null); } } else {//关闭 SystemProperties.set(PROPERTY_VOLTE_ENALBE,"0"); mRilAdapter.turnOffVolte(null); if (wfcEnable == 0){ mRilAdapter.turnOffImsVoice(null); } } } break; default: break; } ... } catch (ImsException e) { ... } } catch (RemoteException e) { throw new RuntimeException(e); } }
ImsConfig处理完成,继续执行ImsManager::turnOnIms,这同样是aidl调用,实际操作由ImsService.turnOnIms执行。
//ImsManager.java private void turnOnIms() throws ImsException { checkAndThrowExceptionIfServiceUnavailable(); try { mImsService.turnOnIms(mPhoneId); } catch (RemoteException e) { throw new ImsException("turnOnIms() ", e, ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN); } }
turnOnIms同样是向rild-ims下发消息:RIL_REQUEST_SET_IMS_ENABLE。
//ImsService.java @Override public void turnOnIms(int phoneId) { if (mActivePhoneId != phoneId) { mActivePhoneId = phoneId; } if (mImsState != PhoneConstants.IMS_STATE_ENABLE) { mImsRILAdapter.turnOnIms(mHandler.obtainMessage(EVENT_SET_IMS_ENABLED_DONE)); mImsState = PhoneConstants.IMS_STATE_ENABLING; } else { } }
下发了这3条消息后,等待ImsRilAdapter上报RIL_UNSOL_IMS_ENABLE_START来确认IMS服务已经启用。
ImsService在构造方法中注册了RIL_UNSOL_IMS_ENABLE_START消息的监听,消息上报后便会由它处理。
//ImsService.java mImsRILAdapter.registerForImsEnableStart(mHandler, EVENT_IMS_ENABLING_URC, null);
- ImsService中对RIL_UNSOL_IMS_ENABLE_START的处理如下:
1. 发送ACTION_IMS_SERVICE_UP广播;
2. 调用enableImsAdapter()//ImsService.java case EVENT_IMS_ENABLING_URC: //+EIMS: 1 if (mActivePhoneId != phoneId) { mActivePhoneId = phoneId; } // notify AP Ims Service is up intent = new Intent(ImsManager.ACTION_IMS_SERVICE_UP); intent.putExtra(ImsManager.EXTRA_PHONE_ID, mActivePhoneId); mContext.sendBroadcast(intent); // enable ImsAdapter enableImsAdapter(); mImsState = PhoneConstants.IMS_STATE_ENABLE; break;
在《MTK IMS框架简析(1)——代码架构及模块初始化》 中提到过,ACTION_IMS_SERVICE_UP会触发ImsPhone和相关telephony类的初始化,因此这里跳过。
而ImsAdatper的流程涉及到建立ims承载,在第二节中继续分析。以流程图小结这部分:
建立IMS PDN连接
在ims注册之前,需要建立专用的数据连接。连接的建立由volte_imsm.so来触发,与普通数据连接一样,通过ConnectivityManager请求网络,并由telephony发起SETUP_DATA_CALL。
先了解下volte_imsm.so的作用。根据readme文件的描述,volte_imsm.so库用于建立承载,P-CSCF,鉴权等过程,MTK并没有开源:
#README IMS relay module, handling NAS bearer, P-CSCF address discovery, IMS AKA and relay message among IMCB/IMSA/MAL modules WHAT IT DOES? ============= handle the request from IMCB/IMSA/MAL module Send the event to IMCB/IMSA/MAL module, and receive the Response
ims app负责与volte_imsm.so对接,一张图来表示相关的工作过程。
VaSocketIO运作在线程中,负责维护socket和输入输出,循环从socket中读取消息交由ImsEventDispatcher。
ImsEventDispatcher根据消息的类型分发给对应的VaEventDispatcher处理。
实现了VaEventDispatcher的类共有4个,分别负责:通话,数据,补充业务还有Timer(具体作用尚需研究)。
ImsAdapter负责控制功能的总开关。大概清楚这块流程后,下面接着第一节的思路,继续分析ImsAdapter:enableImsAdapter()方法。
ImsAdapter.java public void enableImsAdapter() { synchronized (ImsEnabledThreadLock) { if (!misImsAdapterEnabled) { if (mIO.connectSocket() == true) { //调用所有VaEventDispatcher的enableRequest方法 mImsEventDispatcher.enableRequest(); misImsAdapterEnabled = true; synchronized (mIO.VaSocketIOThreadLock) { mIO.VaSocketIOThreadLock.notify(); } //启用ims栈(向volte_imsm下发一条消息) enableImsStack(); } else { sendMessageDelayed( obtainMessage(MSG_IMSA_RETRY_IMS_ENABLE), IMSA_RETRY_SOCKET_TIME); } } } }
DataDispatcher负责建立承载相关处理,直接看DataDispatcher.enableRequest()方法的处理:
注册DATA_CONNECTION_STATE_CHANGED和SIM_STATE_CHANGED的监听。监听这2个消息是为了维护ims的连接,响应Data和SIM卡的变动。DataDispatcher.java public void enableRequest() { synchronized (mHandler) { Arrays.fill(mSimStatus, false); IntentFilter filter = new IntentFilter(); filter.addAction(TelephonyManager.ACTION_PRECISE_DATA_CONNECTION_STATE_CHANGED); filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED); mContext.registerReceiver(mBroadcastReceiver, filter); mIsEnable = true; } }
返回到ImsAdapter继续看enableImsStack()方法。从方法的命名上看,作用是启用ims栈,
向volte_imsm发送MSG_ID_IMS_ENABLE_IND消息:private void enableImsStack() { // Send IMS Enable to IMSM VaEvent event = new VaEvent(Util.getDefaultVoltePhoneId(), MSG_ID_IMS_ENABLE_IND); mIO.writeEvent(event); return; }
消息的定义如下:
int MSG_ID_IMS_ENABLE_IND = 900003; // MSG_ID_WRAP_IMSPA_IMSM_ENABLE_IND int MSG_ID_IMS_DISABLE_IND = 900004; // MSG_ID_WRAP_IMSPA_IMSM_DISABLE_IND,
- 1
- 2
从Log看,MSG_ID_WRAP_IMSPA_IMSM_ENABLE_IND消息的作用应该是初始化volte_imsm相关模块,VoLTE Stack/UA/REG等模块被初始化:
volte_imsm随后会上报MSG_ID_WRAP_IMSM_IMSPA_PDN_ACT_REQ,通知上层发起IMS PDN连接,消息由DataDispatcher处理。
消息分发到DataDispatcher::handleDefaultBearerActivationRequest方法:
将请求数据封装成TransactionParam,设置超时处理,最后调用requestNwRequest方法。这里能看到请求的apn类型是IMS。DataDispatcher.java private void handleDefaultBearerActivationRequest(VaEvent event) { //apn type为IMS String apnType = PhoneConstants.APN_TYPE_IMS; int phoneId = event.getPhoneId(); //请求数据封装成TransactionParam DataDispatcherUtil.PdnActivationInd actInd = mDataDispatcherUtil .extractDefaultPdnActInd(event); TransactionParam param = new TransactionParam(actInd.transactionId, event.getRequestID(), phoneId, apnType); ... putTransaction(param); if (apnType == PhoneConstants.APN_TYPE_IMS) { int subId = SubscriptionManager.getSubIdUsingPhoneId(phoneId); if (mSimStatus[phoneId] || subId > 0) { mSimStatus[phoneId] = true; //判断是否有合法的ims apn if (!isImsApnExists(phoneId)) { rejectDefaultBearerDataConnActivation(param, FAILCAUSE_UNKNOWN, 500); return; } //设置超时,如果超过10秒没有进入开始连接的状态即触发 mHandler.removeMessages(MSG_ON_NOTIFY_ACTIVE_DATA_TIMEOUT); mHandler.sendMessageDelayed(mHandler.obtainMessage( MSG_ON_NOTIFY_ACTIVE_DATA_TIMEOUT, param), MAX_NETWORK_ACTIVE_TIMEOUT_MS); } else { return; } } //发起IMS连接请求 if (requestNwRequest(apnType, phoneId) < 0) { rejectDefaultBearerDataConnActivation(param, FAILCAUSE_UNKNOWN, 0); } }
requestNwRequest方法实例化NetworkRequest并填充数据后,通过ConnectivityManager.requestNetwork发起连接请求。
private int requestNwRequest(String requestApnType, int phoneId) { ... NetworkCallback nwCb = mDataNetworkRequests[pos].nwCb; Builder builder = new NetworkRequest.Builder(); //IMS & EIMS builder.addCapability(APN_CAP_LIST[pos]); builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); //指定为当前subId builder.setNetworkSpecifier(String.valueOf(subId)); mDataNetworkRequests[pos].nwRequest = builder.build(); NetworkRequest nwRequest = mDataNetworkRequests[pos].nwRequest; releaseNwRequest(requestApnType); synchronized (mAPNStatuses) { ApnStatus apnStatus = mAPNStatuses.get(requestApnType); apnStatus.mName = requestApnType;//IMS apnStatus.mStatus = TelephonyManager.DATA_DISCONNECTED; apnStatus.isSendReq = true; apnStatus.ifaceName = ""; //发起request getConnectivityManager().requestNetwork(nwRequest, nwCb, ConnectivityManager.MAX_NETWORK_REQUEST_TIMEOUT_MS); } ... return nRet; } private static final int[] APN_CAP_LIST = new int[] { NetworkCapabilities.NET_CAPABILITY_IMS, NetworkCapabilities.NET_CAPABILITY_EIMS };
接下来SETUP_DATA_CALL的工作由ConnectivityService和telephony数据模块完成。返回成功后,检查手机的网络接口发现新建了一个Interface——ccmni4
root@x6:/ # ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope: Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:46 errors:0 dropped:0 overruns:0 frame:0 TX packets:46 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3992 TX bytes:3992 ccmni4 Link encap:Ethernet HWaddr 12:7A:92:06:07:BE inet6 addr: 2409:8809:8590:da21:279:6506:7e0d:afdc/64 Scope: Global inet6 addr: fe80::279:6506:7e0d:afdc/64 Scope: Link UP RUNNING NOARP MTU:1410 Metric:1 RX packets:26 errors:0 dropped:0 overruns:0 frame:0 TX packets:29 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:17494 TX bytes:18434
ccmni4是mtk在底层指定的ims默认承载接口的名称,连接建立后DataDispatcher还需要检查这个Interface的名字是否正确,最后发送ACT消息通知volte_imsm连接已经建立
//DataDispatcher.java private static final String IMS_INTERFACE_NAME = "ccmni4"; private void handleDefaultBearerActivationResponse(Network network, String type) { TransactionParam deacTrans = findTransaction (VaConstants.MSG_ID_WRAP_IMSM_IMSPA_PDN_DEACT_REQ, type); synchronized (mAPNStatuses) { ApnStatus apnStatus = mAPNStatuses.get(type); if (deacTrans == null) { apnStatus.mStatus = TelephonyManager.DATA_CONNECTED; ConnectivityManager cm = (ConnectivityManager) mContext .getSystemService(Context.CONNECTIVITY_SERVICE); LinkProperties mLink = cm.getLinkProperties(network); ... apnStatus.ifaceName = mLink.getInterfaceName(); //检查iface名字是否为"ccmni4" if (IMS_INTERFACE_NAME.equals(apnStatus.ifaceName) || EMERGENCY_INTERFACE_NAME.equals(apnStatus.ifaceName)) { //发送MSG_ID_WRAP_IMSM_IMSPA_PDN_ACT_REQ通知volte_imsm responseDefaultBearerDataConnActivated( findTransaction(VaConstants.MSG_ID_WRAP_IMSM_IMSPA_PDN_ACT_REQ, type), network.netId, apnStatus.ifaceName); } ... } ... } }
这部分的代码量较多,理解了设计意图后其实结构和流程都比较简单,同样以流程图总结:
注册IMS服务
完成注册
IMS注册基于SIP,这部分由ims核心模块处理,需要分析协议和模块设计,这里先不作深入探讨。
注册成功后,返回200 OK。
rild_ims将注册状态及capability通过RIL_UNSOL_IMS_REGISTRATION_INFO消息上报:
ImsService在构造方法中注册过对RIL_UNSOL_IMS_REGISTRATION_INFO的监听,因此处理方法就在ImsService的handler中能找到。mImsRILAdapter.registerForImsRegistrationInfo(mHandler, EVENT_IMS_REGISTRATION_INFO, null);
- 1
ImsService 处理:
从EVENT_IMS_REGISTRATION_INFO中读取到ims注册状态和Capability,并通知监听者。//ImsService.java //IMS所支持的capability private static final int IMS_VOICE_OVER_LTE = 1; private static final int IMS_RCS_OVER_LTE = 2; private static final int IMS_SMS_OVER_LTE = 4; private static final int IMS_VIDEO_OVER_LTE = 8; private static final int IMS_VOICE_OVER_WIFI = 16; public void handleMessage(Message msg) { AsyncResult ar; Intent intent; int phoneId = getMainCapabilityPhoneId(); switch (msg.what) { case EVENT_IMS_REGISTRATION_INFO: ar = (AsyncResult) msg.obj; //根据协议的规定,CIREGU返回消息的第一字段表示注册状态,第二个表示capability /** * According to 3GPP TS 27.007 +CIREGU format * * AsyncResult.result is an Object[] * ((Object[])AsyncResult.result)[0] is integer type to indicate the IMS regiration status. * 0: not registered * 1: registered * ((Object[])AsyncResult.result)[1] is numeric value in hexadecimal format to indicate the IMS capability. * 1: RTP-based transfer of voice according to MMTEL (see 3GPP TS 24.173 [87]) * 2: RTP-based transfer of text according to MMTEL (see 3GPP TS 24.173 [87]) * 4: SMS using IMS functionality (see 3GPP TS 24.341[101]) * 8: RTP-based transfer of video according to MMTEL (see 3GPP TS 24.183 [87]) * */ //对比socketId是否当前的active phoneId int socketId = ((int[]) ar.result)[2]; if (socketId != mActivePhoneId) { break; } int newImsRegInfo = ServiceState.STATE_POWER_OFF; //读取Ims的注册状态 if (((int[]) ar.result)[0] == 1) { newImsRegInfo = ServiceState.STATE_IN_SERVICE; } else { newImsRegInfo = ServiceState.STATE_OUT_OF_SERVICE; } //读取当前支持的capability int newImsExtInfo = ((int[]) ar.result)[1]; mImsRegInfo = newImsRegInfo; //通知ims注册状态更新 notifyRegistrationStateChange(mImsRegInfo); if ((mImsRegInfo == ServiceState.STATE_IN_SERVICE)) { mImsExtInfo = newImsExtInfo; } else { mImsExtInfo = 0; } //通知ims capability更新 notifyRegistrationCapabilityChange(mImsExtInfo); break; ... } ... }
从LOG来看,此次CIREGU指令返回的结果是“1,5”,按照定义,1表示已注册,5代表同时支持IMS_VOICE_OVER_LTE和IMS_SMS_OVER_LTE,即语音和短信业务。
AT< +CIREGU: 1,5
- 1
注册状态的同步
ImsManager获得注册状态和capability后,回调ImsPhoneCallTracker中实例化的ImsConnectionStateListener,数据最终将传递到ImsPhone。
ImsPhone中有ServiceState实例来标记data和ims voice服务状态,并有布尔值mImsRegistered来标记ims注册情况。//ImsManager.java private class ImsRegistrationListenerProxy extends IImsRegistrationListener.Stub { private int mServiceClass; private ImsConnectionStateListener mListener; public ImsRegistrationListenerProxy(int serviceClass, ImsConnectionStateListener listener) { mServiceClass = serviceClass; mListener = listener; } ... @Override public void registrationConnected() { if (mListener != null) { mListener.onImsConnected(); } } @Override public void registrationProgressing() { if (mListener != null) { mListener.onImsProgressing(); } } @Override public void registrationDisconnected(ImsReasonInfo imsReasonInfo) { if (mListener != null) { mListener.onImsDisconnected(imsReasonInfo); } } @Override public void registrationResumed() { if (mListener != null) { mListener.onImsResumed(); } } @Override public void registrationSuspended() { if (mListener != null) { mListener.onImsSuspended(); } } @Override public void registrationFeatureCapabilityChanged(int serviceClass, int[] enabledFeatures, int[] disabledFeatures) { if (mListener != null) { mListener.onFeatureCapabilityChanged(serviceClass, enabledFeatures, disabledFeatures); } } }
ImsPhoneCallTracker如何处理注册信息和capability的上报:
1. 注册状态同步到ImsPhone;
2. Capability同步到mImsFeatureEnabled数组中,标记可用的ims业务;
3. 最后发出ACTION_IMS_STATE_CHANGED广播。ImsPhoneCallTracker.java /** * Listen to the IMS service state change * */ private ImsConnectionStateListener mImsConnectionStateListener = new ImsConnectionStateListener() { @Override public void onImsConnected() { mPhone.setServiceState(ServiceState.STATE_IN_SERVICE); mPhone.setImsRegistered(true); } @Override public void onImsDisconnected(ImsReasonInfo imsReasonInfo) { mPhone.setServiceState(ServiceState.STATE_OUT_OF_SERVICE); mPhone.setImsRegistered(false); mPhone.processDisconnectReason(imsReasonInfo); if (imsReasonInfo != null && imsReasonInfo.getExtraMessage() != null && !imsReasonInfo.getExtraMessage().equals("")) { mImsRegistrationErrorCode = Integer.parseInt(imsReasonInfo.getExtraMessage()); } } @Override public void onImsProgressing() { } @Override public void onImsResumed() { mPhone.setServiceState(ServiceState.STATE_IN_SERVICE); } @Override public void onImsSuspended() { mPhone.setServiceState(ServiceState.STATE_OUT_OF_SERVICE); } @Override public void onFeatureCapabilityChanged(int serviceClass, int[] enabledFeatures, int[] disabledFeatures) { if (serviceClass == ImsServiceClass.MMTEL) { boolean tmpIsVideoCallEnabled = isVideoCallEnabled(); // Check enabledFeatures to determine capabilities. We ignore disabledFeatures. for (int i = ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE; i <= ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_WIFI; i++) { if (enabledFeatures[i] == i) { mImsFeatureEnabled[i] = true; } else if (enabledFeatures[i] == ImsConfig.FeatureConstants.FEATURE_TYPE_UNKNOWN) { mImsFeatureEnabled[i] = false; } else { } } if (tmpIsVideoCallEnabled != isVideoCallEnabled()) { mPhone.notifyForVideoCapabilityChanged(isVideoCallEnabled()); } for (ImsPhoneConnection connection : mConnections) { connection.updateWifiState(); } mPhone.onFeatureCapabilityChanged(); broadcastImsStatusChange(); } } };
ImsPhone更新ServiceState的Log:
06-02 16:47:44.925 D/ImsPhone( 2170): updateDataServiceState: defSs = 0 0 voice home data home 中国移动 中国移动 46000 中国移动 中国移动 46000 LTE LTE_CA CSS not supported 0 0 RoamInd=-1 DefRoamInd=-1 EmergOnly=false Ril Voice Regist state: 1 Ril Data Regist state: 1 mProprietaryDataRadioTechnology: 0 VoiceRejectCause: 0 DataRejectCause: -1 IsDataRoamingFromRegistration=false //imsServiceState imsSs = 0 0 voice home data home null null null null null null Unknown LTE_CA CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false Ril Voice Regist state: 0 Ril Data Regist state: 0 mProprietaryDataRadioTechnology: 0 VoiceRejectCause: -1 DataRejectCause: -1 IsDataRoamingFromRegistration=false
小结
以上分析只分析了AP侧流程,相对于完整的ims注册过程来说并不完整,核心部分的协议及信令流程许多对上层来说是透明的,需要对这些部分深入了解后再做补充。
原文地址:https://blog.csdn.net/wilschan0201/article/details/72846897
-
通信与网络中的IMS融合网络
2020-11-14 03:33:143G核心网技术标准的持续发展,体现为36PP的UMTS标准的几个版本:R99、R4、R5、R6和R7,R4引入了分组软交换技术,R5进而引入了IP多媒体子系统IMS以实现全IP多业务移动网络的最终发展目标。R5以后,36PP核心网的电路域... -
以IMS构建多媒体时代的融合核心网
2020-10-26 05:28:25对同时运营固定移动话音、宽带业务的综合运营商而言,最大的挑战就是实现网络的融合…… -
IMS核心网网络安全指标体系研究 (1).pdf
2021-09-20 16:10:41IMS核心网网络安全指标体系研究 (1).pdf -
人工智能-机器学习-移动核心网IMS安全和NAT穿越的研究.pdf
2022-05-27 05:18:30人工智能-机器学习-移动核心网IMS安全和NAT穿越的研究.pdf -
IMS核心网基础原理介绍
2012-07-18 15:54:18IMS核心网的架构及基本原理介绍,是中兴的培训资料,ppt做得挺好的。 -
移动通信核心网技术总结(四)IMS的网络架构和功能
2021-06-15 08:49:16核心网技术总结(四) IMS的网络分层结构 从上往下可分为,应用层、业务能力层、会话控制层、承载控制与接入层。 承载与接入层:主要功能是用户接入(GPRS /UMTS/CDMA/WiFi/xDSL/LAN)、连接传统网络(PSTN/PLMN/...核心网技术总结(四)
- IMS的网络分层结构
从上往下可分为,应用层、业务能力层、会话控制层、承载控制与接入层。
承载与接入层:主要功能是用户接入(GPRS /UMTS/CDMA/WiFi/xDSL/LAN)、连接传统网络(PSTN/PLMN/H.323/SIP VoIP)、控制承载资源
网元:SBC、MGW等
会话层:主要的功能是呼叫控制、用户管理、业务触发、资源控制、网络互通
包括的网元有:P-CSCF、I-CSCF、S-CSCF、AGCF、MGCF
业务能力层:提供各种各样的业务能力,由各种不同的应用服务器与资源服务器组成,提供的业务能力包括立即消息(IM)/呈现(Presence)/群组、PoC/通用电信业务
应用层:主要提供第三方的应用,通过OSA提供的接口来实现对下层业务能力的调用。如:游戏中心、会议中心、交友中心、企业应用等。
2.IMS各网元的主要功能
会话控制层:
CSCF(call Session Control Function)呼叫会话控制功能
CSCF类型
(1)P-CSCF:代理CSCF(proxy CSCF)用户在归属或者拜访网络的第一个连接点
(2)I-CSCF:问询CSCF(interrogating CSCF)用户的归属网络第一入口点,分配S-CSCF、路由查询以及域间拓扑隐藏功能。
(3)S-CSCF:服务CSCF(serving CSCF)多媒体模块的核心,附着对终端的注册鉴权,会话控制,业务触发。
HSS(Home subscriber server)归属用户服务器,用于保存用户的签约信息,主要信息包括:
- 用户标识(包括公共及私有标识)、号码和地址信息
- 用户安全上下文:用户网络接入认证的密钥信息、漫游限制信息
- 用户的路由信息:HSS支持用户的注册,并且存储用户的位置信息
- 用户的业务签约信息:包括其他的AS的增值业务数据
SLF(subscription locator function)签约数据定位功能,用于多个HSS的选择定位
互联互通功能
MGCF(Media Gateway Control Function)
实现IMS核心控制面与PSTN/PLMN的交互,控制MGW完成TDW承载与IP承载的实时转换。
IM-MGW(IP multimedia media gateway)
完成IMS与PSTN及CS域用户宽带、窄带承载互通及必要的编解码变换
BGCF(breakout Gateway control function)
S-CSCF将会话控制信令前转到BGCF,BGCF选择MGCF,把会话路由到传统PSTN/PLMN网络
SGW(signaling Gateway)信令网关
完成ISUP over IP到ISUP over TDM的转换
媒体资源
MRF(multimedia Resource Function)媒体资源功能,包含两个部分:
解析来自S-CSCF及SIP资源控制命令
实现对MRFP的媒体资源控制
MRFP(Multimedia Resource Function Process)媒体资源功能处理器。
在MRFC的控制下,MRFP为终端提供媒体资源,包含多媒体信息播放(提示音、流媒体)和媒体内容解析处理(编解码变换等)
其他网元
DNS服务器负责URL地址到IP地址的解析
ENUM server服务器负责电话号码到URL的转换
NAT/ALG/SBC设备:
完成公司网的IP地址转换、媒体流转发以及网络安全保证等功能
业务能力层
AS—应用服务器
为IMS用户提供IM增值业务,可以位于用户归属网,也可以由第三方提供,其主要功能为:
- 处理从IMS发来的SIP会话
- 发起SIP请求,发送计费信息给CCF和OCS
IMS AS 的类型
- OSA-SCS
提供OSA服务网关功能,为第三方服务器提供接口
- IM-SSF
作为网关,提供与传统智能网服务器的接口
- SIP AS
直接提供IMS业务
3.IMS中设计的接口和协议
IMS网络中使用到的协议
SIP:用于建立,更改和终止多媒体会话或呼叫的应用层协议
SDP:会话描述协议,描述了承载层面的相关信息
Diameter:基于RADIUS构建的,由IETF开发的认证,授权和计费协议
H.248:用于媒体网关控制器管理媒体网关的资源
各协议直接的参考点:
核心网的IMS业务
(1)语音业务:电话业务、紧急呼叫业务、特服类紧急呼叫业务
(2)补充业务:支持呼叫前转类业务、支持呼叫限制类业务、支持闭合用户业务
(3)智能业务:预付费、主被叫付费、IP直通车业务等智能业务
(4)增值业务: 多媒体业务、语音彩铃业务
-
IMS构架下广电网络业务核心网元的建设.ppt
2022-02-27 14:14:31IMS构架下广电网络业务核心网元的建设.ppt -
IMS构架下广电网络业务核心网元的建设.pptx
2021-10-31 08:38:39IMS构架下广电网络业务核心网元的建设.pptx -
IMS核心网总体技术方案
2011-07-31 12:10:57IMS核心网总体技术方案 完整的设计方案 -
通信与网络中的基于IMS的电信网融合
2020-12-08 18:45:19引言 现阶段,我国各运营商面临着网络演进的问题,即...IMS已经被定义为支持所有IP接入网的多媒体业务的核心网。虽然IMS最初是为第三代移动网而制定的标准,但是IMS的体系架构能够很好地支持固定网和移动网在各种层 -
华为IMS基础培训_核心网维护中心
2011-03-23 10:12:25硬件开发相关内容 华为IMS基础培训_核心网维护中心 -
移动通信核心网技术总结(五)IMS的信令流程及VoLTE的实现
2021-06-16 09:01:20核心网技术总结(5) 1.IMS的信令流程 注册流程的相关概念 为什么要注册 用户使用IMPU(SIP URI)通信 建立用户当前的IP与其IMPU的对应关系 掌握用户当前的位置信息及业务能力 注册过程的鉴权与认证保证了网络... -
5月22日核心网IMS-L3等级考试总结
2019-05-24 09:47:02现在网上大学对于认证等级考试提供后评估数据,因为考试结束...因为涉及IMS的知识相对会熟悉一些,对于安全规程/运维管理办法/虚拟化平台/数据库/流量清洗等内容并不是十分了解。对于没听过的项目还是百度找了一下相... -
通信与网络中的IMS在NGN系统中的作用及应用
2020-11-19 08:59:18一、前言 在经历了十几年的高速发展后,移动运营商越来越认清了一条重要的规律,那就是电信业务必须不断地发展以不断靠近经济发展...在3GPP的文件R5中,IMS是UMTS核心网络中提供端到端多媒体业务和集群多媒体业务的 -
5G核心网专业试题-169题.xls
2021-09-08 15:27:49[5G核心网部署与网络规划设计]VoNR/VoeLTE相对VoLTE,IMS网络的改造点主要包括哪些? 多选 支持5G位置信息获取|支持5G接入话单|被叫域选增加对5G接入的处理|紧急呼叫支持5G小区格式 [5G核心网部署与网络规划设计]... -
直击IMS的NGN网络架构的移动核心网演进细节
2020-03-04 21:48:56移动通信网在经历了两代发展之后,目前3G标准已经成熟,并在一些国家...R99在无线接口引入了新的频率、新的无线技术,但在核心网络方面则保持了2.5G的GPRS引入后的网络架构,仅需升级支持3G的功能和2G、3G协同工作。