行业新闻 (News) 芯片封装主页/ 行业新闻 / IMS/SIP知多少?来测试下
< 返回列表

IMS/SIP知多少?来测试下

 

原题来自 realtimecommunication.info

这套题的平均得分为42,所谓平均分是该网站大量测试结果的统计均值。因为一共20题,每题5分,所以可以认为45分是及格线。原网站并未提供答案解析,题目中有几个我也是蒙着答的,所以答案解析仅供参考,欢迎留言指正。

1)下面消息的目的是什么?

INVITE sip:sccas.ims.operator.com SIP/2.0
Via: SIP/2.0/UDP atcf.ims.mnc001.mcc234.3gppnetwork.org:5070;branch=z9hG4bK0613
Max-Forwards: 69
From: tel:+123456789012;tag=9920
To: tel:+123456789055
Call-ID: 09843147
CSeq: 41 INVITE
Accept: application/sdp,application/vnd.3gpp.state-and-event-info+xml
P-Early-Media: supported
Supported: histinfo,100rel
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,INFO,PRACK,UPDATE
Require: tdialog
Accept-Contact: *;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"
Target-Dialog: 3637840310@10.1.1.11;remote-tag=3523432871011;local-tag=4528602c
P-Asserted-Service: urn:urn-7:3gpp-service.ims.icsi.mmtel
Recv-Info: g.3gpp.state-and-event
P-Asserted-Identity: tel:+123456789012
Content-Type: application/sdp
Content-Length: 540
  1. 更新 tel:+123456789055 的一个新对话(dialog)
  2. 开始一个新的早期媒体会话(Session)
  3. 因转接 (access transfer) 而更新 SSCAS
  4. 强制 tel:+123456789055 终止对话(dialog)
    
    

有SRVCC流程分析经验的同学们对 3gpp.state-and-event 一定不陌生,所以答案选C; 参见 3GPP 24237 (IMS Service Continuity);

2)哪个SIP method 用于中止在振铃中的呼叫?

  1. SIP CANCEL
  2. SIP REFER
  3. SIP TERM
  4. SIP BYE

本题答案显然在CANCEL和BYE中选择,CANCEL取消非稳态(未接通)的呼叫,BYE中止稳态(已接通)的呼叫,所以选CANCEL。 此外,在SIP协议中的描述稍有不同,对于稳态呼叫,BYE中止一个Dialog,CANCEL可中止整个呼叫(可能有多个Dialog)。

3)以下表述哪个是正确的?

  1. SIP是一个二进制协议,可用于传送语音数据
  2. SIP是一个文本协议,且不能用于传送二进制数据
  3. SIP含有文本头域,且Body部分既可以是空的也可以包含且仅包含文本格式的SDP负荷
  4. SIP含有文本头域,且Body部分可以包含文本和二进制类型的负荷

常识排除A和B,本题答案显然在C和D中选择。C和D的分歧在于BODY中是否可以包含二进制负荷,实际上如果见过在BODY中封装的MIME或GSM SMS就知道该选D了。 通常大家不会注意到这个细节,我也是在做报文解码时遇到bug才注意到这个情况。

4)在多设备(多振)场景中,我们使用下面哪个头域来唯一标识一个设备?

  1. P-Asserted-Identity
  2. From tag
  3. +sip.instance
  4. P-Access-Network-Info
用排除法直接干掉A、B和D,所以选C。

5) 对于下面消息的发送者,哪个表述正确?

REGISTER sip:ims.operator.com SIP/2.0
To: <sip:12345678901234@ims.mnc001.mcc234.3gppnetwork.org>
From: <sip:12345678901234@ims.mnc001.mcc234.3gppnetwork.org>;tag=h75905
Call-ID: 6170318
CSeq: 2 REGISTER
Max-Forwards: 69
Content-Length: 0
Via: SIP/2.0/TCP 10.156.97.20:5060;branch=z9hG4bKg3Zqkv7ik7e6x9u6rcd
Route: <sip:ims.operator.com;lr>
Contact: <sip:12345678901234@[aa01:b598:a111:2221:0:222b:aa33]:6000;
  q=1.0;
  +g.3gpp.smsip;
  +g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";
  video;
  +sip.instance="<urn:gsma:imei:12340005-123456-0>"
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, UPDATE, INFO, REFER, NOTIFY, MESSAGE, PRACK
Path: <sip:421537@10.156.97.20;transport=tcp;lr>;
  +g.3gpp.atcf="<tel:+123400000100>";
  +g.3gpp.atcf-mgmt-uri="<sip:421537@20.156.97.20>"
Require: path
Supported: gruu, path
Authorization: Digest username="22334455667788@ims.mnc001.mcc234.3gppnetwork.org",...
P-Visited-Network-ID: epc.ims.mnc001.mcc234.3gppnetwork.org
P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=12345000af123a00
Feature-Caps: *;+g.3gpp.atcf="<tel:+123400000100>";
  +g.3gpp.atcf-mgmt-uri="<sip:1234567@atcf.ims.operator.com>";
  +g.3gpp.atcf-path="<sip:1234567@atcf.ims.operator.com;transport=tcp;lr>"
  1. 不可以使用 eSRVCC
  2. 是VoWifi签约用户
  3. 无法接收短消息(SMS)
  4. 可以接收话音呼叫、视频呼叫和IP短消息(IP SMS)

根据Feature-Caps中的atcf信息可知支持eSRVCC,排除A; 根据P-Access-Network-Info信息可知是LTE签约用户,排除B; 根据Contact中的+g.3gpp.smsip可知支持短消息(SMS),排除C; 所以选D,根据Contact中的video可知支持视频呼叫;

6)SIP Client 发送什么消息?

  1. 每会话 (Session) 仅一个请求 (Request)
  2. 仅发送响应 (可多个)
  3. 仅发送请求 (可多个)
  4. 既发送请求也发送相应 (均可多个)

建立一个会话至少需要INVITE/ACK,标准的VoLTE呼叫VoLTE过程还有PRACK/UPDATE/,显然可以有不止一个请求,所以排除A; 如果理解UAC和UAS的概念,就可以在B/C/D中确定选C;

7)对于如下消息,下面的表述哪个正确?

INFO sip:msml@10.1.1.2:5060 SIP/2.0
Via: SIP/2.0/TCP tas.operator.com:5060;rport;branch=z9hG4bKm8105
Max-Forwards: 70
Allow: INVITE,BYE,CANCEL,ACK,SUBSCRIBE,NOTIFY,PUBLISH,MESSAGE,REFER,REGISTER,UPDATE
From: Anonymous <sip:anonymous@anonymous.invalid;user=phone>;tag=abc12
To: sip:msml@10.1.1.3:5060;tag=cdf
Call-ID: aba51
CSeq: 3 INFO
Contact: <sip:12345abc@tas.operator.com:5060;transport=tcp>
Content-Type: application/msml+xml
Content-Length: 502

<?xml version="1.0" encoding="UTF-8"?>
<msml xmlns:cvd="http://convedia.com/ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1">
<dialogstart type="application/moml+xml" target="conn:10.1.1.3" name="playAnnouncement" mark="1">
<play id="annc" iterate="20" barge="true" cleardb="true">
<audio uri="file://annoucements/test.wav"/>
<playexit>
<exit namelist="play.amt play.end"/>
</playexit>
</play>
</dialogstart>
</msml>
  1. 可能是由TAS发送给MRF的
  2. 消息的 method 错误,应该是 INVITE
  3. 消息的 method 错误,应该是 UPDATE
  4. 消息的 method 错误,应该是 OPTIONS
根据标红的信息可以看出,该消息指定了一个音频文件用来播放通知音(playAnnouncement),所以肯定选A;而INVITE/UPDATE/OPTIONS都不会有这个信息。

8)在IMS网络中,SIP Clients 和 SIP Servers 的标识是什么 ?

  1. 在IMS 网络中所有SIP Clients通过电话号码标识,而SIP Servers 通过FQDN 或 IP标识。
  2. SIP Servers 和SIP Clients都必须与一个电话号码关联,该号码可以从ENUM 数据库查询取回。
  3. 所有的SIP网元都由URI (SIP, SIPS, TEL) 来标识。
  4. IMS网络中的SIP Clients 在注册期间使用共享的动态标识,SIP Servers 使用SIP/SIPS URIs。

A/B/D都说的似乎头头是道,然而答案是C; 排除法在这里不大管用,真正知道才是唯一法门;我不知道也没蒙对:( 不过这句话简单粗暴"所有的SIP网元都由URI (SIP, SIPS, TEL) 来标识",很容易记!

9)以下哪个表述是正确的?

  1. SIP REGISTER、SIP PUBLISH和SIP SUBSCRIBE都可以设置Expires 头域值为0
  2. 只有SIP REGISTER和SIP SUBSCRIBE可以设置Expires头域值为0
  3. 只有SIP REGISTER和SIP PUBLISH可以设置Expires头域值为0
  4. 只有SIP REGISTER可以设置Expires头域值为0
对注册消息有所了解的话就可以蒙对;

10)关于下面的消息,哪个表述是正确的?

MESSAGE sip:+123456789012@ims.operator.com;user=phone SIP/2.0 
v:SIP/2.0/TCP 192.168.220.1:5090;branch=z9hG4bK2e7d76 
P-Asserted-Identity:<tel:+123456789055> 
v:SIP/2.0/UDP 192.168.220.4:5070;branch=z9hG4bK953a8a
c:application/vnd.3gpp.sms 
d:no-fork 
Allow:MESSAGE 
P-Access-Network-Info:3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=123450abc1245ab03 
f:<sip:+123456789055@ims.operator.com>;tag=3385482 
t:<sip:+123456789012@ims.operator.com> 
i:354077107@192.168.220.176 
CSeq:1 MESSAGE 
Max-Forwards:68 
v:SIP/2.0/UDP 192.168.220.176:5060;branch=z9hG4bK2516377;
l:31
P-Asserted-Identity:<sip:+123456789055@ims.operator.com>

P-Served-User:<sip:+123456789055@ims.operator.com>;sescase=orig;regstate=reg

Route:<sip:ipsmgw.ims.operator.com:5060;transport=TCP;orig;lr;mode=originating>
Route:<sip:isc@scscf.ims.operator.com:5090;

Route:<sip:isc@scscf.ims.operator.com:5090;lr> 

\000 \000\a\221!\230#U\020\361\023\021 \v\221!\230#UW\370\000\000\251\005\324\362\234\016\002
  1. 在三方注册期间由SCC-AS发送的
  2. 更新AS一个mid-call事件
  3. 可以看出S-CSCF的IP地址是192.168.220.1
  4. 未使用 ”loose routing“

根据标红的信息可以看出,该MESSAGE消息的确是三方注册期间发送的,不过是发给ipsmgw(IP短消息网关)的,via的IP就是S-CSCF,所以可以判断C是正确的; 三方注册是S-CSCF向AS发起的,所以A不正确;至于B,消息中完全看不出有和mid-call相关的信息;最后是D,消息中已经标出了route头域信息包含的lr,即使用了loose routing;

11)关于 P-Served-User 头域,以下哪个表述是正确的?

  1. 由TAS插入到消息中
  2. 由S-CSCF插入到消息中
  3. 由签约用户插入到消息中
  4. 取代P-Associated-Identity头域
根据RFC5502,P-Served-User由支持该头域的Proxy产生并插入到消息中,Proxy就是CSCF喽。

12)紧急呼叫时,哪个SIP头域包含了位置信息?

  1. Record-Route
  2. From
  3. Contact
  4. P-Access-Network-Info
显然不会是A/B/C,直接选D;

13)Record-Route头域的用途是?

  1. 用于路由后续的请求消息
  2. 包含了如何路由早期媒体的信息
  3. 用于路由响应消息
  4. 包含了路由当前消息时所用代理的记录
根据RFC2161,该头域由Proxy插入到请求消息中,用于把同一Dialog中的后续请求都强制路由到该Proxy,所以选A;

14)对于下面的消息的作用,哪个表述是正确的?

REGISTER sip:ims.operator.com SIP/2.0
To: <sip:12345678901234@ims.mnc001.mcc234.3gppnetwork.org>
From: <sip:12345678901234@ims.mnc001.mcc234.3gppnetwork.org>;tag=h75905
Call-ID: 6170318
CSeq: 2 REGISTER
Max-Forwards: 69
Content-Length: 0
Expires: 600000
Via: SIP/2.0/TCP 10.156.97.20:5060;branch=z9hG4bKg3Zqkv7ik7e6x9u6rcd
Route: <sip:ims.operator.com;lr>
Contact: <sip:12345678901234@[aa01:b598:a111:2221:0:222b:aa33]:6000;
  q=1.0;+g.3gpp.smsip;
  +g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";
  video;
  +sip.instance="<urn:gsma:imei:12340005-123456-0>"
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, UPDATE, INFO, REFER, NOTIFY, MESSAGE, PRACK
Path: <sip:421537@10.156.97.20;transport=tcp;lr>;
  +g.3gpp.atcf="<tel:+123400000100>";
  +g.3gpp.atcf-mgmt-uri="<sip:421537@20.156.97.20>"
Require: path
Supported: gruu, path
Authorization: Digest username="22334455667788@ims.mnc001.mcc234.3gppnetwork.org",...
P-Visited-Network-ID: epc.ims.mnc001.mcc234.3gppnetwork.org
P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=12345000af123a00
Feature-Caps: *;+g.3gpp.atcf="<tel:+123400000100>";
  +g.3gpp.atcf-mgmt-uri="<sip:1234567@atcf.ims.operator.com>";
  +g.3gpp.atcf-path="<sip:1234567@atcf.ims.operator.com;transport=tcp;lr>"
  1. 从S-CSCF发起的注销
  2. 一次初始注册
  3. 从MMTEL发起的注销
  4. 一次三方注册
根据Expires头域知道这是注册而非注销;其次看到Authorization头域可以知道这是初始注册而非三方注册;

15)SIP Dialog 可由以下哪个信息唯一标识?

  1. CSeq
  2. branch
  3. Call-ID, From-tag and To-tag
  4. Call-ID
选C,不用解释;

16)对于SIP ACK消息,下面哪个表述正确?

  1. 不会触发任何服务端的响应
  2. 仅在200 OK for SIP INVITE之后发送
  3. 可以被SIP PRACK 重写(overwrite)
  4. 当在SIP INVITE中含有100rel指示时发送
INVITE事务包括一个ACK,而不论这个INVITE的最终响应是否为200 OK,所以B不正确;C没听说过,不知道从何说起,而PRACK是在D的情况中用来应答180/183的,所以D不正确;既然PRACK和ACK毫无关系,C也就没有道理;

17)如果SIP Server位于一个和SIP Client不同的子网,而它们使用了相同的地址。为了正确的媒体路由,可以采用下面的哪个方法?

  1. OMR (Optimal Media Routing)
  2. RTP Latching
  3. Topology Hiding
  4. LBO (Local Breakout)

此题其实没弄懂!请懂的朋友留言赐教! 不过不懂也可以蒙: OMC是在SIP漫游场景中媒体面的一种路由方式;Topology Hiding是PSBC的功能之一;LBO则是用户流量走漫游地PGW的漫游方案;RTP Latching(RTP封锁?)则没有了解,既然其他三个都无关,所以就选B了。

18)对于该消息的发送者,以下表述哪个是正确的?

v=0
o=SAMSUNG-IMS-UE 1234565 0 IN IP4 10.116.97.20
s=SS VOIP
i=A VOIP Session
c=IN IP4 10.116.97.4
t=0 0
m=audio 2632 RTP/AVP 116 107 9 118 96 111 110 8 0
b=AS:128
b=RS:375
b=RR:1125
a=rtpmap:116 AMR-WB/16000/1
a=fmtp:116 mode-set=0,1,2; mode-change-capability=2; max-red=220
a=rtpmap:107 AMR-WB/16000/1
a=fmtp:107 mode-set=0,1,2; mode-change-capability=2; max-red=220; octet-align=1
a=rtpmap:9 G722/8000
a=rtpmap:118 AMR/8000/1
a=fmtp:118 mode-change-capability=2; max-red=220
a=rtpmap:96 AMR/8000/1
a=fmtp:96 octet-align=1; mode-change-capability=2; max-red=220
a=rtpmap:111 telephone-event/16000
a=fmtp:111 0-15
a=rtpmap:110 telephone-event/8000
a=fmtp:110 0-15
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos optional remote sendrecv

a=inactivea=ptime:20

a=maxptime:40
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
  1. 需要资源预留(preconditions)
  2. 无法播放高清语音(HD voice)
  3. 已经为multimedia session.ong预留资源
  4. 不支持DTFM

该消息是SDP(用于资源预留和媒体协商,由SIP的BODY携带),其中有带宽需求: b=AS... 音频所需带宽 B=RS... RS-RTCP sender所需带宽 B=RR... RS-RTCP receiver所需带宽 所以A是正确的; 再看其它选项 AMR-WB就是高清语音,显然是支持的,B不正确;A是正确的所以C就错了;DTFM(双音调频,也叫二次拨号),实现方式包括带外检测(走SIP INFO)、带内检测(走RTP)两类,其中带内检测可以通过SDP协商提供telephone-event参数,消息中有此参数,因此是支持DTFM的,D不正确;

19)哪个/哪些传输协议可以用于SIP?

  1. udp, ntp
  2. tcp, udp, sctp
  3. tcp, rtp
  4. rtp, rtcp

经常看信令的朋友至少见过tcp和udp封装的SIP,所以就直接选B了; 即使初学者也能通过排除法,剔除ntp/rtp/rtcp这些乱入项而选B;

20)对于下列消息,哪个表述正确?

SIP/2.0 200 OK
Via: SIP/2.0/UDP scscf.operator.com:5070;branch=z9hG4bK80d1d0dc11a
Record-Route: <sip:4c-26f-1-1@scscf.operator.com:5070;lr>
From: <sip:123456789012@mnc001.mcc234.3gppnetwork.org>;tag=2890962
To: <sip:111222333444555666@mnc001.mcc234.3gppnetwork.org>;tag=2846c
Call-ID: a6176cd
CSeq: 1000 INVITE
Contact: <sip:34239j234@tas.operator.com:5060;isfocus>
Content-Type: application/sdp
Content-Length: 296
  1. 表明一个早期媒体(early media)
  2. 是一个标准的语音呼叫200响应消息
  3. 包含了一个电话会议URI
  4. 消息非法,因为Contact头域和To头域不匹配

答对这题需要了解电话会议/多方通话(CONF)的消息; 暴露该消息是电话会议的信息是isfocus;

· 2019-03-23 19:34  本新闻来源自:流鲨集结号,版权归原创方所有

阅读:995
  • 联系长芯

    重庆总部:重庆市长寿区新市街道新富大道5号佳禾工业园8栋2层
    电话:023 40819981 (前台)

    深圳办事处:深圳市南山区留仙大道 1213 号众冠红花岭工业南区 2 区 1 栋 1 楼
    电话:0755-26975877 (前台)

    电子邮件:sales@longcore.com

    网址:http://www.longcore.com