LTE下的CMAS和ETWS

♀尐吖头ヾ 提交于 2020-01-01 10:35:01

在步入本期的正题之前,Haykey哥要充实下上期《在俄罗斯,终端每几分钟弹个框,你这是干啥子呢?》的内容。目前在Q平台默认开启Duplication Detection,但是也为客户开放了两个开关,允许在两个层面上关闭重复检测功能,分别是:

在多模WMS层面上的EF文件,

nv/item_files/modem/sms/disable_lte_cb_dup_detection,看见了lte的字眼了么?顾名思义就是为了禁止掉LTE下CMAS,LTE/UMTS下primary和secondary notification的重复检测;

在NAS CB层面上的NV#65882, nv/item_files/modem/nas/nas_config_feature[cb_duplication_detection_disabled],目的是为了禁止掉GSM/UMTS普通的小区广播消息的重复检测;

连关闭重复检测功能都预留了两个接口,有一个还是专门给LTE的?!那么这期Haykey哥就带大家看看LTE下的CMAS和ETWS与第一期《CBS,国产手机出海你必须知道的》讲的UMTS下普通CBS有啥异同。

 

首先讲讲本期Topic的主语 ---  CMAS和ETWS

CMAS:

摘自3GPP TS22.268 Public Warning System (PWS) requirements

The Warning Alert and Response Network (WARN) Act was passed by the United States Congress in September 2006 and was signed into law on October 13, 2006, known then as CMAS via the GSM/UMTS Cell Broadcast functionality and warning message delivery via E-UTRAN

CMAS于06年被美国国会通过决议,并且同年10月13日正式立法。间接说明了无论菊花还是粗粮想要进军美帝的山头,CMAS一项都必须Zero Bug。CMAS功能的实现利用了GSM/UMTS下的CBS功能,但是在LTE下传输(注意不同于ETWS可以在GSM/UMTS上传输)

The following classes of Warning Notifications shall be supported: Presidential, Imminent Threat, Public Safety, Child Abduction Emergency (e.g. AMBER) , and State/Local WEA Test.

CMAS按照危险等级又分了5类,总统级别,极端威胁,严重威胁,安铂警报和CMAS测试广播。这里不得不提美帝的安铂警报,Haykey哥16年去SD出差时真实收到了此类CMAS消息,内容为本辖区有儿童被拐,请注意自家孩子,近期尽量不要独自外出等,多么希望天朝运营商也开展这个实用功能啊。而这五类是按照assign的Message ID不同来区分的。稍微要提及一下CMAS消息包含的字符数至多360个,远大于CBS page的93个。

Warning Notifications shall support up to 360 characters of GSM 7 bit Default Alphabet for E-UTRAN.

 

ETWS:

摘自3GPP TS22.268 Public Warning System (PWS) requirements

从上文中可以看到,ETWS不同的地方就是一直在强调唯快不破,在地震、海啸等重大灾难发生后,几秒最慢几分钟后就会殃及到整个受灾区域。所以ETWS按照时间顺序分为两部分,最先送到的叫Primary Notification(Quick Warning),随后送到的叫Secondary Notification。两者的出发点不同,Primary Notification只图能以最快速度传递到受灾地区的用户,所以负载的数据量很小。而Secondary Notification图的是准确性,以更多的数据量负载更多的信息,如从当前区域到安全区域的地图导航,紧急避难所,食物发放地的地址等等,如下解释:

 

非常有意思地是下面这段,按照Haykey哥的常识,Secondary Notification不会一直产生很容易理解,但是协议还提到了有时还会出现只有Secondary Notification , 没有Primary Notification的情况,完全依赖ETWS消息提供方策略。

 

 

 

再继续看看欧盟和韩国政府借鉴CMAS提出的适应本地区本国国情的变种, EU-Alert和KPAS,

EU-Alert:

欧盟提出的EU-Alert跟CMAS大同小异,只是类别减少到三类,并且还有和北美CMAS级别的对应关系,如EU-Alert Level1对应北美总统级,不能在MMI上勾选等。

 

KPAS:

韩国政府的KPAS类别进一步减少到两类,class 0和class 1,下面是Haykey哥翻墙找到的class 0和class 1对应的Message ID表

 

其次讲讲本期Topic的定语 ---  LTE下的

在第一期《CBS,国产手机出海你必须知道的》里,Haykey哥说过UMTS下CBS Message是通过User Plane下的CTCH逻辑信道承载,传递到RLC UM实体,而RLC UM实体给到L2 BMC层。扩充下,此后L2 BMC再传递给NAS CB -> 多模(若是Q平台就是WMS)-> AP侧。而LTE下CMAS/ETWS都是直接在Control Plane的BCCH上的系统消息承载,其传递路径为MAC DL -> RLC TM -> L-RRC SIB -> 多模(若是Q平台就是WMS)-> AP侧。

 

换言之,根据这个传递路径,现在明白为什么在多模WMS上单独开放这个接口nv/item_files/modem/sms/disable_lte_cb_dup_detection而不是直接采用NAS下的NV#65882做重复检测了吧?

 

 

ETWS Primary Notification在SIB10中,如下

其中,关于Message Id/Identifier和SN/Serial Number,我在前两期都已经讲过,这里不做过多阐述。通过下面三张图重点讲解下这个warning Type IE。

Warning Type IE目前有实际意义的主要有三个域, Type Value, Emergency User Alert和Popup。

 

Type value来表示具体灾害的类型,如上个例子中的0x00,第一个字节前7位全0意味着地震灾害。

而Emergency User Alert和Popup代表了是否立即振动,响铃,弹框

 

 

ETWS Secondary Notification在SIB11中,如下

Secondary Notification里多了WarningMessageSegmentType(是否是最后一个分段segment),warningMessageSegmentNumber(如果有多个分段,本分段号,0为第一个,1为第二个,以此类推),DCS,和包含准确信息的warningMessageSegment。而这个warningMessageSegment IE实际上就是UMTS CBS消息里的CB Data IE。

CB-Data IE:

CMAS在SIB12中,如下,和ETWS Secondary Notification的结构完全一致。

 

至此,有的读者朋友们会想到,向这些ETWS消息和CMAS消息由于地质灾难,恐怖袭击本身的突发性,是随机产生的。很可能前一分钟SIB1的SIB调度里还没有SIB10/11/12,后一分钟就出现了,那到底终端是如何得知的呢?不可能一直监听吧?

 

CMAS:

摘自3GPP TS36.331 Evolved Universal Terrestrial Radio Access (E-UTRA);Radio Resource Control (RRC);Protocol specification

 

协议上规定了基站是通过带有cmas-Indication IE的paging消息来通知具有CMAS功能的终端重新获取SystemInformationType1的SIB调度,从而获取到带有CMAS通知的SIB12。

 

ETWS:

摘自3GPP TS36.331 Evolved Universal Terrestrial Radio Access (E-UTRA);Radio Resource Control (RRC);Protocol specification

同理,协议上规定了基站是通过带有etws-Indication IE的paging消息来通知具有ETWS功能的终端重新获取SystemInformationType1的SIB调度,从而获取到带有ETWS Primary Notification的SIB10和ETWS Secondary Notificaion的SIB11。

 

 

示例:含有ETWS  Primary和Secondary Notification的SystemInformationType1

 

说了这么多Paging,那就看看Paging Procedure吧。

摘自3GPP TS36.331 Evolved Universal Terrestrial Radio Access (E-UTRA);Radio Resource Control (RRC);Protocol specification

Paging的四大目的里最后两项就是通知ETWS notification和CMAS notification。但是Haykey哥想说的是,世界之大无奇不有。协议规范里只是说了正常通知UE接收CMAS/ETWS消息的途径,但是Lab测试原来还可以这样干啊?!

在锤科,我司Lab测试人员去R&S实验室测试CBS功能时,R&S CMW500设备上开启ETWS后,仪表竟然是通过带有systemInfoModification IE的Paging来通知UE的,如下:

 

 

协议里明确提到了此IE目的是通知除了SIB10/11/12/14外的其他系统消息改变,让UE重新读取系统消息来设立的。我称之为被动接收CMAS/ETWS通知,如下,当UE空闲态上camp到一个新Cell,或者切换到Target Cell,或者RRC重建到一个新Cell,  如果此Cell SystemInformationBlockType1里SIB调度里包含SIB10/11,UE马上获取SIB10或SIB11,即使systemInfoValueTag没有发生改变。

 

 

那么当UE接收到含有ETWS notification的SIB10/11,CMAS notification的SIB12后,UE该如何处理呢?

对于包含ETWS Primary Notification的SIB10,非常简单,透传warningType, SN和Message ID给上层即可。

摘自3GPP TS36.331 Evolved Universal Terrestrial Radio Access (E-UTRA);Radio Resource Control (RRC);Protocol specification

 

 

包含ETWS Secondary Notification的SIB11处理,稍微复杂些,主要是由于分段的引入,需要重组成完整的ETWS Secondary Notification消息才可以透传上层,然后停止接收SIB11。

 

包含CMAS Notificaion的SIB12处理流程基本和SIB11处理流程相同,唯一差别就是把重组完整后的CMAS Notificaion透传上层后,还需要继续接收SIB12。

 

理论知识已经全部介绍完毕,最后按照惯例,理论+实践,Haykey哥带大家看看在Q平台上一个完整的CMAS和ETWS接收的日志流程:

 

过程1: CMAS接收

//L-RRC收到带有SI消息的MAC DL PDU

 

MSG 00:02:28.860 LTE RRC/High [       lte_rrc_sib.c  16889] MAC_DL_DATA (SIB1 or SI message) received for phy_cell_id = 0 & freq = 38000 at SFN 261   

//SIB位掩码0x1000,右数第1位为MIB, 第2位为SIB1,此为SIB12
MSG 00:02:28.860 LTE RRC/High [       lte_rrc_sib.c  18108] Received ind has SIBs 0x1000 for phy_cell_id = 0 & freq = 38000    
MSG 00:02:28.860 LTE RRC/High [       lte_rrc_sib.c  12653] ReadingLast segment of SIB12    
MSG 00:02:28.860 LTE RRC/High [       lte_rrc_sib.c  12655] SIB12 segment number 1 read 

//L-RRC SIB发送CMAS_IND原语到多模   
MSG 00:02:28.860 LTE RRC/High [       lte_rrc_sib.c  12737] Sent cmas_ind for phy_cell_id = 0 freq = 38000

 

MSG 00:02:28.860 Wireless Messaging Services/High [               wms.c    371] Received CMAS notification    
MSG 00:02:28.860 Wireless Messaging Services/High [            wmsmsg.c  20761] In wms_msg_lte_cmas_proc(): msg_id 0x1112 with serial 0x0320   

//当前缓存的CMAS消息列表里为空,不用开启重复检测功能
MSG 00:02:28.861 Wireless Messaging Services/High [             wmsbc.c    523] List is empty(0), entry is NULL(0xd15182fc), or compare_func is NULL(0xd013bf58)   

//缓存把msg_id 0x1112, sn 0x320 添加到内部列表
00:02:28.861 Wireless Messaging Services/High [             wmsbc.c    834] add(ser=0320, time=00015214),res(0), idx(start=0, end=1), count=1    
MSG 00:02:28.861 Wireless Messaging Services/High [             wmsbc.c   7641] Added non-duplicate message to list: res=0   

MSG 00:02:28.861 Wireless Messaging Services/High [            wmsmsg.c  20824] CMASDupDet returns 0 for msg_id 0x1112 with serial 0x0320   

 

//当前CMAS Notification只有一页消息,并且该页长度为27个字节 
MSG 00:02:28.861 Wireless Messaging Services/High [            wmsmsg.c  20888] CMAS notification has 1 page(s)    
MSG 00:02:28.861 Wireless Messaging Services/High [            wmsmsg.c  20923] Successfully retrieved CMAS notification page 1 of 1, len=27  
MSG 00:02:28.861 Wireless Messaging Services/High [            wmsmsg.c  18405] Received CB SMS with page length = 27

 

 

 

//产生WMS_MSG_EVENT_RECEIVED_MESSAGE事件给监听者

MSG 00:02:28.862 Wireless Messaging Services/High [            wmsmsg.c   1447] Notify: 15WMS_MSG_EVENT_RECEIVED_MESSAGE

 

//监听者1 wmsdiag诊断模块只是为了便于debug,把CMAS notification的内容一一打印

Coffee is running out!!!!

MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c   1029] Receiving CMAS message with message id: 4370    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    766] Recving CMAS with alphabet: 0 language: 1 geo scope: 0 message code: 50 page number: 1 raw serial number: 800 update number: 0 total_page: 1    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    768] Number of chars 24    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 0 ]: C    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 1 ]: o    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 2 ]: f    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 3 ]: f    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 4 ]: e    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 5 ]: e    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 6 ]:      
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 7 ]: i    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 8 ]: s    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 9 ]:      
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 10 ]: r    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 11 ]: u    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 12 ]: n    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 13 ]: n    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 14 ]: i    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 15 ]: n    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 16 ]: g    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 17 ]:      
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 18 ]: o    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 19 ]: u    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 20 ]: t    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 21 ]: !    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 22 ]: !    
MSG 00:02:28.863 Wireless Messaging Services/High [           wmsdiag.c    773] CMAS Msg[ 23 ]: !   

 

//监听者2 qmi_wms会把此消息上传到AP侧

MSG 00:02:28.864 Wireless Messaging Services/High [           qmi_wms.c   7600] Generating MT message indication 

00:02:28.864 [0x1544] MCS QCSI Payload Packet
packetVersion = 2
V2 {
   MsgType = Indication
   Service_WMS {
      ServiceWMSV1 {
         wms_set_event_report {
            wms_event_report_indTlvs[0] {
               Type = 0x11
               Length = 35
               transfer_route_mt_message {
                  ack_indicator = WMS_ACK_INDICATOR_DO_NOT_SEND_ACK
                  transaction_id = 4294967295
                  format = WMS_MESSAGE_FORMAT_GW_BC
                  len = 27
                  data = { 
                     3, 32, 17, 18, 1, 17, 195, 183, 
                     217, 92, 46, 131, 210, 115, 144, 188, 
                     238, 118, 167, 221, 103, 208, 187, 78, 
                     15, 133, 66
                  }
               }
            }
           
      }
   }
}

MSG 01:25:26.133 Android QCRIL/High [             qcril.c   6440] RIL[0][event] qcril_process_event: RIL <--- QCRIL_EVT_QMI_SMS_HANDLE_INDICATIONS(655401), RID 0, MID 0 --- AMSS    
MSG 01:25:26.133 Android QCRIL/Medium [     qcril_qmi_sms.c   5847] RIL[0][event] qcril_qmi_sms_unsolicited_indication_cb_helper: msg_id (0x0001) QMI_WMS_EVENT_REPORT_IND    
MSG 01:25:26.135 Android QCRIL/Medium [     qcril_qmi_sms.c   5303] RIL[0][event] qcril_sms_process_event_report_ind: .. transfer_route_mt_message_valid 1    
MSG 01:25:26.135 Android QCRIL/Medium [     qcril_qmi_sms.c   5306] RIL[0][event] qcril_sms_process_event_report_ind: .. transfer_route_mt_message.format 7    
MSG 01:25:26.135 Android QCRIL/Low [     qcril_qmi_sms.c   5324] RIL[0][event] qcril_sms_process_event_report_ind: GSM Broadcast SMS Message    
MSG 01:25:26.135 Android QCRIL/High [             qcril.c   4305] RIL[0][event] qcril_send_unsol_response_epilog: UI <--- RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS (1021) --- RIL [RID 0, Len 27, (null)]


过程2: CMAS重复接收并丢弃

MSG 00:02:28.880 Wireless Messaging Services/High [               wms.c    371] Received CMAS notification    
MSG 00:02:28.880 Wireless Messaging Services/High [            wmsmsg.c  20761] In wms_msg_lte_cmas_proc(): msg_id 0x1112 with serial 0x0320 

//在缓存的CMAS notification list里找到相同Message ID项   
MSG 00:02:28.880 Wireless Messaging Services/High [             wmsbc.c    601] Found entry with message_id 0x1112: ser=0320, index 0  

//SN也相同 ,后续的GS判断后确定为重复消息
MSG 00:02:28.880 Wireless Messaging Services/High [             wmsbc.c   7467] SER Match found: ser=800    
MSG 00:02:28.880 Wireless Messaging Services/High [             wmsbc.c   7528] message_compare: is_duplicate=1    
MSG 00:02:28.880 Wireless Messaging Services/High [            wmsmsg.c  20824] CMASDupDet returns 1 for msg_id 0x1112 with serial 0x0320   

 

过程3:ETWS Primary Notification接收

 

MSG 00:02:19.900 LTE RRC/High [       lte_rrc_sib.c  16889] MAC_DL_DATA (SIB1 or SI message) received for phy_cell_id = 0 & freq = 38000 at SFN 389    
MSG 00:02:19.900 LTE RRC/High [       lte_rrc_sib.c  18108] Received ind has SIBs 0x400 for phy_cell_id = 0 & freq = 38000    
MSG 00:02:19.900 LTE RRC/High [       lte_rrc_sib.c  12120] Sent etws_prim_ind for phy_cell_id = 0 freq = 38000

 

MSG 00:02:19.900 Wireless Messaging Services/High [               wms.c    361] Received ETWS primary notification    
MSG 00:02:19.900 Wireless Messaging Services/High [            wmsmsg.c  20502] In wms_msg_lte_etws_prim_proc(): msg_id 0x1100 with serial 0x0320 Sub ID = 0 
MSG 00:02:19.901 Wireless Messaging Services/High [             wmsbc.c    523] List is empty(0), entry is NULL(0xd1518374), or compare_func is NULL(0xd013bf58)    
MSG 00:02:19.901 Wireless Messaging Services/High [             wmsbc.c    834] add(ser=0320, time=0001520b), res(0), idx(start=0, end=1), count=1    
MSG 00:02:19.901 Wireless Messaging Services/High [             wmsbc.c   7641] Added non-duplicate message to list: res=0    
MSG 00:02:19.901 Wireless Messaging Services/High [            wmsmsg.c  20521] PriDupDet returns 0 for msg_id 0x1100 with serial 0x0320    
MSG 00:02:19.901 Wireless Messaging Services/High [            wmsmsg.c   1447] Notify: 22WMS_MSG_EVENT_ETWS_NOTIFICATION   

 

MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c(Client 1 listening to WMS_MSG_EVENT_ETWS_NOTIFICATION)   1049] Receiving ETWS notification    
MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c    859] MCC 0 0 1    
MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c    860] Number of MNC digits 2    
MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c    864] MNC 0 1 15    
MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c    872] Receiving ETWS primary notification    
MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c    886] ETWS with service id: 4352 alphabet: 0 language: 0 geo scope: 0 message code: 50 page number: 0    
MSG 00:02:19.902 Wireless Messaging Services/High [           wmsdiag.c    891] ETWS with raw serial number: 800 update number: 0 total_page: 0 emergency user alert: 0 popup: 0 warning type: 0   


MSG 00:02:19.902 Wireless Messaging Services/High [           qmi_wms.c(Client 2 listening to WMS_MSG_EVENT_ETWS_NOTIFICATION)   7600] Generating MT message indication

 

00:02:19.903 [0x1544] MCS QCSI Payload Packet
V2 {
   MsgType = Indication
   Service_WMS {
      ServiceWMSV1 {
         wms_set_event_report {
            wms_event_report_indTlvs[0] {
               Type = 0x13
               Length = 9
               etws_message {
                  notification_type = WMS_ETWS_NOTIFICATION_TYPE_PRIMARY
                  len = 6
                  data = { 3, 32, 17, 0, 0, 0 }
               }
            }
            wms_event_report_indTlvs[1] {
               Type = 0x14
               Length = 4
               etws_plmn_info {
                  mobile_country_code = 1
                  mobile_network_code = 1
               }
            }
         }
      }

MSG 01:25:17.174 Android QCRIL/High [             qcril.c   6440] RIL[0][event] qcril_process_event: RIL <--- QCRIL_EVT_QMI_SMS_HANDLE_INDICATIONS(655401), RID 0, MID 0 --- AMSS    
MSG 01:25:17.175 Android QCRIL/Medium [     qcril_qmi_sms.c   5847] RIL[0][event] qcril_qmi_sms_unsolicited_indication_cb_helper: msg_id (0x0001) QMI_WMS_EVENT_REPORT_IND    
MSG 01:25:17.179 Android QCRIL/High [             qcril.c   4305] RIL[0][event] qcril_send_unsol_response_epilog: UI <--- RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS (1021) --- RIL [RID 0, Len 6, (null)]  

过程4:ETWS Secondary Notification接收

MSG 00:02:19.940 LTE RRC/High [       lte_rrc_sib.c  16889] MAC_DL_DATA (SIB1 or SI message) received for phy_cell_id = 0 & freq = 38000 at SFN 393    

MSG 00:02:19.940 LTE RRC/High [       lte_rrc_sib.c  18108] Received ind has SIBs 0x800 for phy_cell_id = 0 & freq = 38000    
MSG 00:02:19.940 LTE RRC/High [       lte_rrc_sib.c  12479] Sent etws_sec_ind for phy_cell_id = 0 freq = 38000

MSG 00:02:19.940 Wireless Messaging Services/High [            wmsmsg.c  20610] In wms_msg_lte_etws_sec_proc(): msg_id 0x1100 with serial 0x0320  Sub ID = 0    
MSG 00:02:19.940 Wireless Messaging Services/High [             wmsbc.c    523] List is empty(0), entry is NULL(0xd151836c), or compare_func is NULL(0xd013bf58)    
MSG 00:02:19.940 Wireless Messaging Services/High [             wmsbc.c    834] add(ser=0320, time=0001520b), res(0), idx(start=0, end=1), count=1    
MSG 00:02:19.940 Wireless Messaging Services/High [             wmsbc.c   7641] Added non-duplicate message to list: res=0    
MSG 00:02:19.940 Wireless Messaging Services/High [            wmsmsg.c  20629] SecDupDet returns 0 for msg_id 0x1100 with serial 0x0320    
MSG 00:02:19.940 Wireless Messaging Services/High [            wmsmsg.c   1447] Notify: 22 WMS_MSG_EVENT_ETWS_NOTIFICATION   


MSG 00:02:19.940 Wireless Messaging Services/High [           wmsdiag.c   1049] Receiving ETWS notification    
MSG 00:02:19.940 Wireless Messaging Services/High [           wmsdiag.c    859] MCC 0 0 1    
MSG 00:02:19.940 Wireless Messaging Services/High [           wmsdiag.c    860] Number of MNC digits 2    
MSG 00:02:19.940 Wireless Messaging Services/High [           wmsdiag.c    864] MNC 0 1 15    
MSG 00:02:19.940 Wireless Messaging Services/High [           wmsdiag.c    918] Receiving ETWS secondary notification    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    932] ETWS with service id: 4352 alphabet: 0 language: 1 geo scope: 0 message code: 50 page number: 1    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    937] ETWS with raw serial number: 800 update number: 0 total_page: 1 emergency user alert: 0 popup: 0 cb_data length: 24    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 0 ]: C    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 1 ]: o    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 2 ]: f    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 3 ]: f    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 4 ]: e    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 5 ]: e    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 6 ]:      
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 7 ]: i    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 8 ]: s    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 9 ]:      
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 10 ]: r    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 11 ]: u    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 12 ]: n    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 13 ]: n    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 14 ]: i    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 15 ]: n    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 16 ]: g    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 17 ]:      
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 18 ]: o    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 19 ]: u    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 20 ]: t    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 21 ]: !    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 22 ]: !    
MSG 00:02:19.941 Wireless Messaging Services/High [           wmsdiag.c    943] ETWS Msg[ 23 ]: ! 
MSG 00:02:19.941 Wireless Messaging Services/High [           qmi_wms.c   7600] Generating MT message indication

00:02:19.941 [0x1544] MCS QCSI Payload Packet
packetVersion = 2
V2 {
   MsgType = Indication
   Service_WMS {
      ServiceWMSV1 {
         wms_set_event_report {
            wms_event_report_indTlvs[0] {
               Type = 0x13
               Length = 93
               etws_message {
                  notification_type = WMS_ETWS_NOTIFICATION_TYPE_SECONDARY_UMTS
                  len = 90
                  data = { 
                     1, 17, 0, 3, 32, 1, 1, 195, 
                     183, 217, 92, 46, 131, 210, 115, 144, 
                     188, 238, 118, 167, 221, 103, 208, 187, 
                     78, 15, 133, 66, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 0, 0, 0, 0, 0, 0, 0, 
                     0, 21
                  }
               }
            }
            wms_event_report_indTlvs[1] {
               Type = 0x14
               Length = 4
               etws_plmn_info {
                  mobile_country_code = 1
                  mobile_network_code = 1
               }
            }
         }

MSG 01:25:17.209 Android QCRIL/High [             qcril.c   6440] RIL[0][event] qcril_process_event: RIL <--- QCRIL_EVT_QMI_SMS_HANDLE_INDICATIONS(655401), RID 0, MID 0 --- AMSS    
MSG 01:25:17.210 Android QCRIL/Medium [     qcril_qmi_sms.c   5847] RIL[0][event] qcril_qmi_sms_unsolicited_indication_cb_helper: msg_id (0x0001) QMI_WMS_EVENT_REPORT_IND    
MSG 01:25:17.210 Android QCRIL/High [             qcril.c   4305] RIL[0][event] qcril_send_unsol_response_epilog: UI <--- RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS (1021) --- RIL [RID 0, Len 90, (null)] 

 

给能够跟读到这里的读者朋友们点个赞,这篇的篇幅确实有些长,Haykey哥写得也很累,但为了故事的完整性,再上一个实际案例收尾。

 

话说14年夏天,Haykey哥被派去芬兰N记现场技术支持打微软logo的第一款WP手机GCF预测试。其中两项ETWS相关的协议一致性测试TC14.1和TC14.2均失败。

 

摘自3GPP TS36.523 -1 Evolved Universal Terrestrial Radio Access (E-UTRA) and Evolved Packet Core (EPC); User Equipment (UE) conformance specification;
Part 1: Protocol conformance specification

 

 

以TC14.1测试步骤为例,我们的手机在第一个断言Verdict就告失败,因为UE在收到ETWS消息后无任何反应。

从日志中,很容易看到由于Message ID 4354=0x1102不在"search list"中,L-RRC直接丢弃了这个ETWS通知消息。

 

吐槽下WP系统,号称世界第三大手机OS,微软竟然在设置里连小区广播设置都没有,今天的没落现在想来也是必然的。所以当时直接是用QPST -> Service Programming -> SMS CB页面下直接修改那四个NV项#1014/1015/1016/1017来解决此问题的。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!