1. IMS专业词汇解释
User Agent/UAC/UAS
用户代理(User Agent)是发起或者接收呼叫的逻辑实体。
用户代理客户端-UAC(User Agent Client),用于发起请求;
用户代理服务器-UAS(User Agent Server),用于接收请求。
UAC/UAS的划分是针对一个事务的。在一个呼叫过程的多个事务里,UAC和UAS的角色是可以互换的。例如在A和B的呼叫中,A向B发起呼叫,此时A是UAC,B是UAS;呼叫结束时,如果B先挂机,此时B是UAC,A是UAS。换句话说,每个一般的UA都是UAS和UAC的结合体。
183 Session Progress
在UE2收到invite的时候,将自己的支持能力发给UE1。The media stream capabilities of the destination are returned along the signalling path, in a 183 Session Progress provisional(临时的,暂时的) response.
PRACK
the Provisional Response ACKnowledgement, PRACK用来保证临时消息(101-199)的可靠传输. PRACK就是仿照200 OK的可靠性响应,对除100以外的1xx临时响应消息进行可靠性传输。PRACK一般是对收到183 call in progress/180 ringing的确认,
UAC与UAS对是否支持该扩展是通过一个option tag – 100rel 选项来协商的。为达到该目的,UAC有两种选择,在INVITE消息中加入Require:100rel或者Supported:100rel。UAS在接受到上述消息后,按如下方式处理。
- 当INVITE中含有Supported:100rel,如果UAS支持PRACK,则在临时消息里加入 Require:100rel 和 Rseq 字段,UAC接收后临时消息后就会发送PRACK来做一个ack;否则UAC不发PRACK。
- 当INVITE中含有Require:100rel而UAS不支持PRACK时,需要使用420(不正确的扩展)来拒绝呼叫。
例如:UAC发起的INVITE中含有Supported:100 rel,而UAS也支持该扩展并且在183响应中有Require:100rel,说明接下来的会话中,无论是UAC还是UAS都要对所有100以外的1xx临时响应消息返回一个PRACK确认。
IMPI and IMPU
User identities:
Various identities may be associated with IMS: IP multimedia private identity (IMPI), IP multimedia public identity (IMPU), globally routable user agent URI (GRUU), wildcarded public user identity. Both IMPI and IMPU are not phone numbers or other series of digits, but uniform resource identifier (URIs), that can be digits (a Tel URI, such as tel:+1-555-123-4567) or alphanumeric identifiers (a SIP URI, such as sip:john.doe@example.com” ).
IP Multimedia Private Identity:
The IP Multimedia Private Identity (IMPI) is a unique permanently allocated global identity assigned by the home network operator, it has the form of an Network Access Identifier(NAI) i.e. user.name@domain, and is used, for example, for Registration, Authorization, Administration, and Accounting purposes. Every IMS user shall have one IMPI.
详细的说:该标识最大的用处不是用来区分用户,而是标识用户不同的订阅业务。因此,对于每个用户而言,都可以包含一个或者几个这样的私有用户标识,该标识并不被用来进行SIP消息的路由寻址,而是被用来进行注册、鉴权、管理和统计。私有标识由归属地网络运营商进行分配,遵循Network Access Identifier格式。
如果没有ISIM应用,通常该私有标识会从IMSI标识中继承;
如果从IMSI中继承,则变成了:”@ims.mnc.mcc.3gppnetwork.org”;
该标志是永久性的,不是临时分配的。在IMS域注册/去注册阶段,该私有标识需要被鉴权,HSS和S-CSCF需要存储该私有标识以便区分用户信息。
IP Multimedia Public Identity:
The IP Multimedia Public Identity (IMPU) is used by any user for requesting communications to other users (e.g. this might be included on a business card). Also known as Address of Record (AOR). There can be multiple IMPU per IMPI. The IMPU can also be shared with another phone, so that both can be reached with the same identity (for example, a single phone-number for an entire family).
用于请求与其他用户通信时使用的身份;用于SIP消息的路由;一个IMS用户可以分配一个或多个公有用户标识,可以采用SIP URI或者Tel URL的格式。使用IMPU发起会话或会话终结者之前,IMPU首先应被注册。
其用途:
IMS用户通过注册过程可以完成用户对网络和网络对用户的双向认证。IMS注册包含两个注册消息,消息中携带IMPI、IMPU等参数:
1。 当I-CSCF需要确定S-CSCF的时候要向HSS查询,而HSS根据I-CSCF查询信息中的用户IMPI,进行能力匹配,然后返回所需S-CSCF地址;
2。 S接收到注册消息之后,将发起对用户的鉴权(含IMPI),用户又用IMPI来生成回应信息以进行二次注册鉴权;
而IMS注册会将将UE的IP地址和IMPU的绑定关系存储到到IMS系统中。具体是S-CSCF对HSS中用户的IMPU是否注册进行判断和标记。
一个详细介绍sip的网站
http://www.sharetechnote.com/html/IMS_SIP.html
这个博客里写了SIP SUBSCRIBE, NOTIFY, AND PUBLISH的用途。
https://andrewjprokop.wordpress.com/2013/06/21/sip-subscribe-notify-and-publish/
signal plane and media plan
进行volte电话和视频需要建立两个承载:
- 默认承载,用来传输sip信令(non-GBR, QCI = 5)。sip信令包括ims注册、去注册消息、打电话的invite请求和挂断请求等。传输层使用TCP协议
- 专用承载,用来传输语音和视频的RTP数据包。(GBR, QCI = 1/2). 传输层使用UDP协议。
Note that depending on the carrier, a separate dedicated bearer for video may or may not be assigned。
IMS呼叫流程
UE1发送invite 请求给UE2;
和UE1对应的P-CSCF1发送 100 rel给UE1;
If the IMS client in UE2 supports at least one of the codecs proposed by IMS client1, it responds to the INVITE with 180 (Ringing) response, since it is configured as a QoS Unaware client.
- 180 (Ringing) message contains only one codec choice in the SDP.
- 180 (Ringing) message reaches IMS client1 through the reverse path of the one followed by the INVITE message.