Professional Documents
Culture Documents
IMS
维护指导手册
Issue 01
Date 2011-02-10
内部使用
华为技术有限公司
华为技术有限公司为客户提供全方位的技术支持,用户可与就近的华为办事处联系,也可直接与公司总部联
系。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址: http://www.huawei.com
客户服务传真: 0755-28560111
客户服务邮箱: support@huawei.com
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本
文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
IMS 维护指导手册 关于本文档
关于本文档
拟制信息
作者 魏跃锋 00108078 时间 2011-02-10
评审 刘翔 00160693、陈春 时间 2011-04-22
华 00135570 、 毛 辉
55498、肖慧 66904、
刘华 58382、张帮芹
00149223 、 孙 远 东
00113700 、 董 愔
48268
签发 时间
内容简介
本文档介绍了 IMS SIP 信令方面的基础知识和相关问题的处理方法。本文档包含以下内
容:
SIP 协议简介
IMS 相关信令流程
SIP 相关数据配置
SIP 信令问题处理方法
案例
希望本文可以帮助您解决维护中遇到的问题,如您发现本文中有错误、描述不清等问题,
或者对本文有任何意见和建议,您可以随时发送邮件至 liuxiang@huawei.com 或
zhangmingyu@huawei.com 进行反馈,总部将指定产品专家闭环解决资料问题,提高资
料质量。
修改记录
文档版本 修改说明 发布日期 作者 签发
1.00 第一次正式发布 魏跃锋(00108078)
1.01 根据检视意见修 魏跃锋(00108078)
改
1.02 根据检视意见修 魏跃锋(00108078)
改
目 录
2 相关知识..........................................................................................................................................1
2.1 SIP 基本概念.....................................................................................................................................................1
2.1.1 SIP 相关术语............................................................................................................................................1
2.1.2 SIP 消息..................................................................................................................................................12
2.2 SIP 协议常见头域...........................................................................................................................................22
2.2.1 重要头域................................................................................................................................................22
2.2.2 常用头域................................................................................................................................................26
2.2.3 重要头域参数........................................................................................................................................35
2.3 SIP 呼叫路由机制...........................................................................................................................................36
2.3.1 响应消息路由........................................................................................................................................36
2.3.2 请求消息路由........................................................................................................................................36
2.4 SIP 协议在 IMS 中的应用..............................................................................................................................38
2.5 SIP 消息分发机制...........................................................................................................................................40
2.5.1 ATS9900 SIP 消息分发..........................................................................................................................40
2.5.2 CSC3300 SIP 消息分发.........................................................................................................................41
2.5.3 UGC3200 SIP 消息分发........................................................................................................................42
2.6 常见 SIP 流程..................................................................................................................................................44
2.6.1 用户注册注销流程................................................................................................................................44
2.6.2 用户基本呼叫流程................................................................................................................................44
2.6.3 媒体协商................................................................................................................................................47
2.6.4 临时响应可靠传输流程........................................................................................................................49
2.6.5 UPDATE 流程........................................................................................................................................51
2.6.6 re-INVITE 流程......................................................................................................................................52
2.6.7 SIP 心跳机制..........................................................................................................................................53
2.6.8 SIP-I/SIP-T 中继呼叫流程....................................................................................................................60
2.6.9 SIP 的 DTMF 传递机制.........................................................................................................................63
2.6.10 SIP 传真................................................................................................................................................65
2.6.11 回铃音、异常音流程..........................................................................................................................65
3 SIP 相关配置.................................................................................................................................67
3.1 基本呼叫配置.................................................................................................................................................67
3.2 SIP 心跳配置...................................................................................................................................................67
3.2.1 设备级 OPTION 心跳配置....................................................................................................................67
3.2.2 会话级 Session timer 心跳配置.............................................................................................................70
3.3 SIP 协议定时器配置.......................................................................................................................................72
3.3.2 T1 定时器配置.......................................................................................................................................72
3.3.3 T2 定时器配置.......................................................................................................................................74
3.3.4 TB 定时器配置。..................................................................................................................................75
3.4 SIP 的 DTMF 收号配置..................................................................................................................................75
3.5 SIP 头域相关配置...........................................................................................................................................76
3.5.1 ATS9900 头域相关配置........................................................................................................................76
3.5.2 SBC 头域相关配置................................................................................................................................77
3.5.3 UGC 头域相关配置...............................................................................................................................78
4 故障处理........................................................................................................................................79
4.1 呼叫失败类故障.............................................................................................................................................79
4.1.1 问题分析与处理....................................................................................................................................79
4.1.2 典型案例................................................................................................................................................82
4.2 SIP 呼叫接通后断话类故障...........................................................................................................................87
4.2.1 问题分析与处理....................................................................................................................................88
4.2.2 典型案例................................................................................................................................................88
5 缩略语............................................................................................................................................95
插图目录
图 2-1 早期对话......................................................................................................................................................3
图 2-4 被叫发送失败响应......................................................................................................................................4
图 2-5 最终对话......................................................................................................................................................5
图 2-11 响应消息结构..........................................................................................................................................20
图 2-12 响应消息的路由......................................................................................................................................36
图 2-22 基本呼叫关键头域..................................................................................................................................45
图 2-29 周期性的设备级心跳..............................................................................................................................54
图 2-30 启发式的设备级心跳..............................................................................................................................54
图 3-1 心跳配置说明............................................................................................................................................68
RFC 2833 RTP Payload for DTMF Digits, Telephony 2833 协议标准文档
Tones and Telephony Signals
RFC 3323 A Privacy Mechanism for the Session SIP 提供匿名机制,如 CLI
Initiation Protocol (SIP) 类业务
RFC 3325 Private Extensions to the Session Initiation SIP 提供匿名机制,如 CLI
Protocol (SIP) for Asserted Identity within 类业务
Trusted Networks
RFC 3326 The Reason Header Field for the Session Reason 头域用来在请求或响
Initiation Protocol (SIP) 应中携带产生的原因
RFC 3398 Integrated Services Digital Network (ISDN) ISUP 协议和 SIP 协议的映
User Part (ISUP) to Session Initiation 射关系(IETF 标准组织)
Protocol (SIP) Mapping
RFC 3515 The Session Initiation Protocol (SIP) Refer REFER 方法指示接受方用
Method 指定方法去联系第三方,可
以用来实现 Call Transfer 等
业务
RFC 3555 MIME Type Registration of RTP Payload 定义了 RTP Payload 格式,
Formats 如:audio/PCMA
RFC 3824 Using E.164 numbers with the Session SIP 协议中 E.164 号码应用
Initiation Protocol (SIP)
RFC 3842 A Message Summary and Message Waiting 定义了 SIP 协议的留言灯格
Indication Event Package for the Session 式
Initiation Protocol (SIP).
RFC 3966 The tel URI for Telephone Numbers 定义了 tel URI
2 相关知识
2. 对话(Dialog)
对话是 SIP 主叫和被叫间的一个端到端的信令联系,不涉及任何消息体的信息(不涉
及
任何媒体的信息)。一个 SIP 对话包括如下状态参数:
Dialog-id:由 Call-ID、remote tag(即 To tag)、local tag(即 From tag)组成。
A local sequence number:对于 UAC 为 CSeq 头域的数字部分,对于 UAS 则设置为
空值。
A remote sequence number:对于 UAS 为 CSeq 头域的数字部分,对于 UAC 则设置
为空值。
A local URI:对于 UAC 为 From 头域的 URI,对于 UAS 为 To 头域的 URI。
A remote URI:对于 UAC 为 To 头域的 URI,对于 UAS 为 From 头域的 URI。
Remote target:对于 UAS 为请求中 Contact 头域的 URI,对于 UAC 为响应
中 Contact 头域的 URI。
A boolean flag called “secure”:对于 UAS,如果请求是通过 TLS 过来的,并且
Request-URI 包含一个 SIPS URI,”secure”标志将
被赋值成为 TRUE;对于 UAC,如果请求是通过
TLS 发送的,并且 Request-URI 包含一个 SIPS
URI,
那么”secure”标志被设置成为 TRUE。
A route set:对于 UAS,该值设置为请求中 Record-Route 的 URIs,如果没有
Record-Route,则 route set 设置为空值;对于 UAC,该值设置为响应中
Record-Route 的 URIs,如果没有 Record-Route,则 route set 设置为
空值。
上述参数的详细描述可参见 RFC 3261 第 12 章。
对话也有一个创建/修改/销毁的过程。
在 RFC 3261 里面定义,只有 INVITE 才能创建对话;
RFC 3265 里面定义,INVITE 和 SUBSCRIBE 都可以创建对话;
RFC 3515 里面定义,REFER 可以创建对话;
对话(Dialog)分为早期对话(Early Dialog)和最终对话(Confirmed Dialog)。
1) 早期对话(Early Dialog)
图1.1 早期对话
主叫发送 CANCEL,被叫回失败响应,如下图
被叫发送失败响应,如下图
图1.4 被叫发送失败响应
2) 最终对话(Confirmed Dialog)
图1.5 最终对话
修改对话的状态;与早期对话建立一样,进入最终对话后,可以发起呼叫内的其他事
务,
比如上图中的 Re-INVITE 消息就属于新的事务。
进入 Confirmed Dialog 后,主叫或者被叫都能通过 BYE 消息来终结 Dialog,如下图:
3. 事务 (Transaction)
事务是指请求与响应的交互过程,一个事务由一个请求消息、零个或者多个临时响应,
以及一个最终响应构成。事物概念的详细描述可参见 RFC 3261 第 17 章。
事务以 Via 头域中的 branch 参数作为唯一标识,RFC 3261 第 8.1.1.7 中规定 branch 参数
必须以“z9hG4bK”开始。
事务主要分为两类:INVITE 事务(采用三次握手方式)、非 INVITE 事务(采用两次
握手方式)以及特殊事务,INVITE 事务和非 INVITE 事务按照状态机的不同,进一步
分为四类事务:
3) INVITE 客户端事务
4) INVITE 服务端事务
5) 非 INVITE 客户端事务
6) 非 INVITE 服务端事务。
1) INVITE 事务
如上图所示,INVITE、100、180、200 都属于同一事务
2) 非 INVITE 事务
3) 特殊的事务
ACK 事务和 CANCEL 事务都是比较特殊的事务。
ACK 事务:对于 200 of INVITE 的确认事务,是一个单独的事务。也就是说,一个消息
就是一个事务,如图 1.1 所示。
CANCEL 事务:CANCEL 事务只能用于 CANCEL INVITE 事务,而不能用于 CANCEL
非
INVITE 事务;CANCEL 事务的 branch 参数和 INVITE 的相同。CANCEL 事务只能在
收到 INVITE 的临时响应后(包括 100),最终响应之前发送。CANCEL
是一个逐跳的事务(关于逐跳的概念后续说明)。
4) 事务的匹配
客户端事务中匹配应答,当客户端的传输层收到一个应答后,需要决定一个客户端事
务来处理这个应答,一个应答基于以下情况来匹配一个客户端事务:
应答的 branch 值是否与创建这个事务的请求的 branch 值一致。
应答中 CSeq 头域的方法参数与创建这个事务的请求方法一样。
当一个请求被分发时,将会有多个应答,这些应答的 branch 值一样,但 To 头域的 tag
不一样。
服务端事务中匹配请求,在服务端通过以下方法来匹配一个请求和事务:
请求的 branch 值与创建这个事务的 branch 值一样。
Top Via 中 Sent-by 与创建该事务的请求一样。
请求的 method 与创建这个事务的请求方法一样,例外情况是 ACK。
当 branch 不存在,又或者不包含“z9hG4bk”时,对于 Invite 请求,使用 Request-
URI,
To tag,From tag,call-ID,CSeq 和 Top Via 来匹配。
4. 统一资源定位符(URI)
为了能正确传送协议消息,SIP 还需解决两个重要的问题。一是寻址,即采用什么
样的地址形式标识终端用户;二是用户定位(下面介绍)。SIP 沿用 WWW 技术解决这
两个问题。寻址采用 SIP URL(Uniform Resource Locators),按照 RFC 2396 规定的
URI
规则定义其语法,特别是用户名字段可以是电话号码,以支持 IP 电话网关寻址,实现
IP 电话和 PSTN 的互通。
SIP URL 的一般结构为:
sip:用户名:口令@主机:端口;传送参数;用户参数;方法参数;生存期参数;
服务器地址参数?头部名=头部值
“sip”表示需采用 SIP 协议和所指示的端系统通信。
“用户名”可以由任意字符组成,一般可取类似于 E-mail 用户名形式,也可以是电话号
码(IMS 目前开户时用户名是全局电话号码,如+867552878000)。
“主机”可为主机域名或 IPv4 地址(IMS 目前开户时主机部分是域名)。
“端口”指示请求消息送往的端口号,其缺省值为 5060,即公开的 SIP 端口号。该参数
只有当主机为 IP 地址时,才会携带。
“口令”可以置于 SIP URL 中,但一般不建议这样做,因为其安全性是有问题的。
“传送参数”指示采用 TCP 还是 UDP 传送,缺省值为 UDP。
“用户参数”,SIP URL 的一个特定功能是允许主机类型为 IP 电话网关,此时,用户名
可以为一般的电话号码。由于 BNF 语法表示无法区分电话号码和一般的
用户名,因此,在域名后增加了“User 参数”字段。该字段有两个可选值:
IP 和 phone,当其设定为“phone”时,表示用户名为电话号码,对应的端
系统为 IP 电话网关。
“方法参数”指示所用的方法(操作)。
“生存期参数”指示 UDP 多播数据包的寿命,仅当传送参数为 UDP、服务器地址参数为
多播地址时才能使用。
“服务器地址参数”指示和该用户通信的服务器的地址,它覆盖“主机”字段中的地址,
通常为多播地址。
“传送参数”、“生存期参数”、“服务器地址参数”和“方法参数”均属于 URL 参数,只
能在重定向地址,即后面所说的 Contact 字段中才能使用。
另外,IMS 主要支持两种 URI 格式:SIP URL 和 TEL URI。IMS 中,SIP URI 结构一般
为:
sip:用户名:口令@主机:端口;用户参数;方法参数
下面描述一下 TEL URI。TEL URI 的一般结构为(RFC 3966 对 TEL URI 格式有详细介
绍):
tel:telephone-subscriber
telephone-subscriber 可以是全局号码或者本地号码。
IMS TEL URI 样例如下:
包括国家码、地区码的国际号码
tel:+86-755-7770001
只包括国家码的国际号码
tel:+86-13456789012
tel:+8613456789012
国内号码
tel:0755-7770001;phone-context=+86
tel:07557770001;phone-context=+86
用户号码
tel: 7770001;phone-context=+86-755
tel: 7770001;phone-context=+86755
进一步的信息可以参考 RFC 3966。
5. 代理、代理服务器(Proxy、Proxy Server)
作为一个逻辑网络实体代表客户端转发请求或者响应,可以同时作为客户端和服务器
端。代理服务器有三种形态:Stateless、Stateful 和 Call Stateful,其可以采用分支、循环等
方式向多个地址尝试转发请求。
代理服务器的主要功能:路由、认证鉴权、计费监控、呼叫控制、业务提供等。在华为
IMS 解决方案中,CSC3300 兼任代理服务器的角色。进一步信息请参考 RFC 3261 第 16
章。
6. 重定向服务器(Redirect Server)
重定向服务器将请求中的目的地址映射为零个或多个新的地址,然后返回给客户端,
客户端直接再次向这些新的地址发起请求。重定向服务器并不接收或者拒绝呼叫,主要
完成路由功能,与注册过程配合可以支持 SIP 终端的移动性。在华为 IMS 解决方案中,
ATS9900 可以兼任重定向服务器的角色。进一步信息请参考 RFC 3261 第 8.3 章。
7. 注册员(Registrar)
注册员为接收注册请求的服务器,通常与 Proxy 或者 Redirect Server 共存。注册员需要
将注册请求中的地址映射关系保存到数据库中,供后续的相关呼叫过程使用,同时可
以提供定位服务。在华为 IMS 解决方案中,CSC3300 和 ATS9900 都可以兼任注册员的
角色。进一步信息请参考 RFC 3261 第 10 章。
8. 用户助理(User Agent)
用来发起或者接收请求的逻辑实体称为 User Agent。在华为 IMS 解决方案中,
ATS9900、UGC3200 可以兼任用户助理的角色。进一步信息请参考 RFC 3261 第 8 章。
11. 端(End)和跳(Hop)
SIP 网络中 UA 叫做端;SIP 网络中,UA 和下一个 Proxy 之间,Proxy 和下一个
Proxy,Proxy 和下一个 UA 之间,叫做一跳;有些消息是端到端(E2E)传送,中间设
备(比如 Porxy)直接透明传输即可,事务的可靠性是靠 UA 来保证的;有些消息是逐
跳发送,事务的可靠性由经过的每一个实体保证。
2.1.2 SIP 消息
SIP 消息采用文本方式编码,分为两类:请求消息和响应消息。
表1.1 请求消息
请求消息 消息含义
发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。
对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体
类型及其参数。被叫方必需在成功响应消息的消息体中指明其希
INVITE 望接受哪些媒体,还可以指示其将发送的媒体。
如果收到的是关于参加会议的邀请,被叫方可以根据 Call-ID 或
者会话描述中的标识确定用户已经加入该会议,并返回成功响应
消息。
BYE 结束会话
CANCEL 取消尚未完成的请求,对于已完成的请求(即已收到最终响应的
请求,比如 200 OK)则没有影响。
会话建立早期或确定阶段修改会话属性,更新会话参数请求。在
UPDATE IMS 中一般用于媒体更新、会话心跳检测,进一步信息请参考
RFC 3311。
指示接收方联系第三方请求,REFER 请求的发送者指引其接收
REFER 者去访问 REFER 请求中所标识的资源。在 IMS 中一般用于点击
类呼叫、呼叫转移、会议等业务,进一步信息请参考 RFC 3515。
表1.1 响应消息
序号 状态码 消息功能
表示已经接收到请求消息,正在对其进行处理,一次呼
临时响应
叫中临时响应可以有多个。
100 表示请求消息已收到,可以防止对局请求超时重传。
180 振铃
1XX
181 呼叫正在前转。在 IMS 中主要用于前转业务。
182 排队
183 呼叫处理中
成功响应 表示请求已经被成功接受、处理。
200 OK
2XX
Accepted,指示订阅请求已被初步接受,但还需等到最
202 终决策,最终决策将在 NOTIFY 请求中给出。进一步信
息请参考 RFC 3265。
重定向响应 表示需要采取进一步动作,以完成该请求。
3XX
300 多重选择
301 永久迁移
302 临时迁移
303 其它
305 使用代理
380 代换服务
400 错误请求
401 无权
402 要求付款
403 禁止
404 没有发现
405 不允许的方法
406 不接受
407 要求代理权
408 请求超时
410 消失
413 请求实体太大
414 请求 URI 太大
415 不支持的媒体类型
420 分机无人接听
421 要求转机
423 间隔太短
480 暂时无人接听
481 呼叫腿/事务不存在
482 相环探测
483 跳频太高
484 地址不完整
485 不清楚
486 线路忙
487 终止请求
488 此处不接受
491 代处理请求
493 难以辨认
500 内部服务器错误
501 没实现的
502 无效网关
5XX
503 不提供此服务
504 服务器超时
513 消息太长
600 全忙
603 拒绝
604 都不存在
606 不接受
请求消息示例
下面是 SIP 请求消息编码的示例(ATS 发送的 INVITE 消息):
Issue 01 (2011-02-10) 华为技术有限公司 23
IMS 维护指导手册 SIP 介绍 SIP 协议概述
From: <sip:+867556650001@ims.hw.com>;tag=1ccb6df3
To: <sip:66500002@ims.hw.com;user=phone>
CSeq: 1 INVITE
Call-ID: 20973e49f7c52937fc6be224f9e52543@ats9900.ats.ims.hw.com
Supported: 100rel
Max-Forwards:70
Allow:INVITE,ACK,CANCEL,OPTIONS,BYE,REGISTER,PRACK,INFO,UPDATE,SUBSCRIBE,
NOTIFY,MESSAGE,REFER
Content-Length:230
Content-Type: application/sdp
v=0
s=Sip Call
t=0 0
a=rtpmap:8 PCMA/8000
a=rtpmap 0 PCMU/8000
a=rtpmap 4 G723/8000
a=rtpmap 18 G729/8000
图1.1 响应消息结构
To: <sip:66500002@ims.hw.com;user=phone>;tag=58877b85
Cseq:1 INVITE
Call-ID: 20973e49f7c52937fc6be224f9e52543@ats9900.ats.ims.hw.com
Require:100rel
RSeq:1
Content-Length:157
Content-Type:application/sdp
v=0
s=Sip Call
t=0 0
a=rtpmap:8 PCMA/8000
第十七行:时间描述,给出会话激活的时间区段,允许会话周期性发生。
第十八行:媒体级描述,该部分给出只适用于该媒体流的信息。“audio”表示媒体类型为
音频。“30016”指明媒体流发往的传送层端口,即终端的 UDP 端口号。“RTP/AVP”为传送
层协议,其值和“c”行中的地址类型有关,对于 IP4 来说,大多数媒体业务流都在
RTP/UDP 上传送,已定义如下两类协议:RTP/AVP,音频/视频应用文档,在 UDP 上
传送;Udp,UDP 协议。“8”就是 RTP 音频/视频应用文档中定义的媒体静荷类型。
第十九行:rtpmap 属性行,指明从 RTP 静荷类型至编码的映射关系。RTP 静荷类型“8”
对应的编码为 PCMA。
2.2.1 重要头域
SIP 协议中最基本、最重要头域是 From、To、Via、Call-ID、Cseq、Max-Forwards 等 6 个头
域。
1. From
From 头域用于携带请求发起者的 URI 信息。以呼叫为例,可以是呼叫中的主叫也可以
是被叫。From 头域中号码可以是 TEL URI 也可以是 SIP URI,消息样例如下示。
From: “81002020”<sip:+8675581002020@ims.hw.com>;tag=45f84802
From: “Anonymous”<sip:anonymous@anonymous.invalid>;tag=45f84802
From 头域中必须包含一个由 UAC 产生的“tag”参数,用于关联一个对话。
From 头域定义于 RFC 3261。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 From 头域的处理如下。
ATS9900
ATS 收到的初始响应 INVITE 消息后,如果 INVITE 消息中无 P-Asserted-Identity 头
域,则从 From 头域中获取主叫号码。在被叫侧 ATS,会根据号码显示业务对 From
头域中的主叫号码进行调整。同时,ATS 在发出去的消息中,将 CCU 模块号携带
在 From 头域的 tag 参数和消息跟踪句柄中,如:tag=pwve1gz0-CC-20-TRC-
5303,CC-20 即表示用户所在 CCU 模块号为 20,TRC-5303 表示跟踪句柄为 5303。
CSC3300
CSCF 收到的初始响应 INVITE 消息后,如果 INVITE 消息中无 P-Served-User、P-
Asserted-Identity 头域,则从 From 头域中获取主叫号码(在用户未注册且局方容灾
场景下,CSCF 使用 From 头域中的号码去 HSS 下载用户数据)。
UGC3200
UGC 收到的初始响应 INVITE 消息后,如果 INVITE 消息中无 P-Asserted-Identity
头域,则从 From 头域中获取主叫号码,在 SI 与 ISUP 互通场景下,UGC 将 From
2. To
To 头域用于携带请求接收者的 URI 信息。To 头域中的号码可以是 TEL URI 也可以是
SIP URI,一般情况下,To 头域中的号码信息与 Request-URI 中的号码信息是一致的 。
To 头域消息样例如下示。
To: <tel:81002021>
在初始请求和会话外请求中,To 头域中不存在“tag”参数,会话内任何响应和请求都存
在“tag”参数。
To 头域定义于 RFC 3261。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 To 头域的处理如下。
ATS9900
基本呼叫场景下,ATS 对 To 头域无特殊处理,ATS 发出消息中的 To 头域与收到
消息中一致。注册场景下,ATS 会使用 To 头域中的号码去 HSS 下载用户及业务数
据。
CSC3300
基本呼叫场景下,CSCF 对 To 头域无特殊处理,ATS 发出消息中的 To 头域与收到
消息中一致。注册场景下,CFCF 会使用 To 头域中的号码去 HSS 下载用户及业务
数据。
UGC3200
无特殊处理。
3. Call-ID
Call-ID 头域用于唯一标识一次邀请或者一次注册,在对话中的任一 UA 的所有请求和
所有应答的 Call-ID 必须一致。Call-ID 消息样例如下示。
Call-ID: yy1hd0v4z40exgrvgzl40h144d4d04ve@ATS.ats01.ims.hw.com.201
注意:Call-ID 是大小写敏感的,即其中的某个字符大小写不一致,Call-ID 是不同的。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Call-ID 头域的处理如下。
ATS9900
ATS 作为 B2BUA 的角色,因此一次呼叫过程中,ATS 收到的消息和 ATS
发出的消息中 Call-ID 是不一致的, ATS 发出的消息 Call-ID 头域包含 ATS 的主机名
和 CCU 模块号,如:Call-ID: 1gilgzr4wx4x4rr0wr4ldhlr@ATS.ats01.ims.com.20。
CSC3300
无特殊处理,不会修改该头域的参数值。
UGC3200
4. Via
Via 头域用于携带请求经过的 SIP 实体和路由响应信息。Via 头域消息样例如下示。
Via: SIP/2.0/UDP 5.1.182.18:5061;branch=z9hG4bKuild4yuuf4gltvsutmwsdwtyw ;
Role=3;Dpt=7684_16;TRC=b5c-ffffffff,
Via: SIP/2.0/UDP 5.1.180.22:5060;branch=z9hG4bKmhpelrqh0op7xosmknlronloo;
X-DispCookie=1003;X-DispMsg=1400;X-TrunkGroup=19
在 SIP 协议中,Via 头域用于一次请求中,后续响应的路由。Via 头域中必须包含一个分
支(branch)参数。这个参数用于区分请求创建的事务。这个参数客户端和服务器都会使用。
Via 头域是一个多值头域,域值是有顺序的。
Via 头域定义于 RFC 3261。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Via 头域的处理如下。
ATS9900
ATS 会将 Via 头域中其他网元的 IP 地址和端口信息删除,发出去的消息中 Via 为
ATS 网元的 IP 地址和端口,如:收到的消息中 Via 头域的值为: Via:
SIP/2.0/UDP 154.112.8.22:5060;branch=z9hG4bKux0xccuuddhxzmwovauvoyov8;
Role=3;Dpt=7684_16;TRC=ffffffff-ffffffff,SIP/2.0/UDP 154.112.8.22:5060;
branch=z9hG4bKpv7ve88ukfm88upf8ul7vvtle;Role=3;Dpt=7674_16,SIP/2.0/UDP
154.112.8.30:5061;branch=z9hG4bKlegxdz0riihwrh1zd4dvevryv
发出的消息中 Via 头域的值为:Via: SIP/2.0/UDP
5.1.180.18:5061;branch=z9hG4bKuzx4ltduzlg4ntfumdmxflnsv
CSC3300
CSC 在发出的消息 Via 头域中增加自身网元的 IP 地址、端口号和 dpt 参数,dpt 参
数中会携带 CSC 网元 SCU 模块号,如:Dpt=7674_16(7674 是十六进制)。
UGC3200
UGC 在发出的初始请求 INVITE 消息 Via 头域中增加自身网元的 IP 地址、端口号 、
X-DispCookie 参数,X-DispMsg 参数和 X-TrunkGroup,如:Via: SIP/2.0/UDP
5.1.180.22:5060;branch=z9hG4bK0pmlohrl0mrpwdsrh7sp0ssro;X-DispCookie=1003;X-
DispMsg=1401;X-TrunkGroup=10
其中,X-DispCookie 参数携带 UGC 网元 CCU 模块号,X-DispMsg 参数携带 UGC
网元 BSG 模块号,X-TrunkGroup 携带中继群号。
5. Cseq
Cseq 头域用于表示请求的顺序号,RFC3261 中用于事务标识。它是由一个方法
(method)和一系列的顺序号码组成。方法(method)必须和请求的方法一致。对于
对话外的非 REGISTER 请求来说,顺序号码可以是任意的。
Cseq 头域的消息样例如下示。
CSeq: 1 INVITE
Cseq 头域定义于 RFC 3261。
6. Max-Forwards
Max-Forwards 头域用于标识一个实体能够经过 SIP 实体数,是一个计数器,用于限制
出现请求消息的死循环。RFC 3261 8.1.1.6 中规定 UAC 发起的请求消息中,Max-
Forwards 的值应该为 70,后续消息每经过一跳,值会逐跳减 1。
Max-Forwards 头域消息样例如下示。
Max-Forwards: 70
Max-Forwards 头域定义于 RFC 3261。
2.2.2 常用头域
16. Route
Route 头域用于强制一个请求经过一个 proxy 路由列表。Route 头域是一个多值头域,域
值是有顺序的。
Route 头域消息样例如下示。
Route: <sip:154.112.8.30:5060;lr>,<sip:154.112.8.22;lr;ORGDLGID=17217-5;Dpt=7684_6;
TRC=b5c-ffffffff>
Route 头域定义于 RFC 3261。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Route 头域的处理如下。
ATS9900
ATS 会将 Route 头域中 ATS 网元的 IP 地址和端口信息删除,如:收到的消息中
Route 头域的值为:Route: <sip:154.112.8.30:5060;lr;orig>,<sip:154.112.8.22;lr;
ORGDLGID=16976-1;Dpt=7674_6;TRC=b89-ffffffff> 发出的消息中
Via 头域的值为:Route: <sip:154.112.8.22;lr;ORGDLGID=16976-1;
Dpt=7674_6;TRC=b89-ffffffff>
CSC3300
CSC 在发出的消息 Route 头域中增加自身网元的 IP 地址、端口号、dpt 参数和
ORGDLGID 参数,dpt 参数中会携带 CSC 网元 SCU 模块号,如:Dpt=7674_16(7674
是十六进制), ORGDLGID 参数用于关联呼叫。
UGC3200
UGC 发出的初始请求 INVITE 消息 Route 头域中为消息接收网元的 IP 地址、端口号。
17. Record-Route
Record-Route 头域是 proxy 在请求中增加的,用于强制会话中的后续请求经过本
proxy 。Record-Route 头域是一个多值头域,域值是有顺序的。
Route 头域消息样例如下示。
Record-Route: <sip:154.112.8.22;lr;Dpt=7674_136;Role=3;CxtId=4;spln=S;
X-HwB2bUaCookie=844;TRC=b5c-ffffffff>
Record-Route 头域定义于 RFC 3261。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Record-Route 头域的处理
如下。
ATS9900
ATS 会将收到消息中的 Record-Route 头域删除,发出的消息中无此头域。
CSC3300
CSC 在发出的消息中增加 Record-Route 头域,头域中增加自身网元的 IP 地址、端
口号和 dpt 等参数。
UGC3200
无特殊处理。
18. Contact
Contact 头域携带了一个 URI,这个 URI 的含义取决于是在请求还是在应答中。在请求
中,该 URI 是主叫用户的 URI 信息,在响应中,则是被叫用户的 URI 信息。
在 SIP 协议中,Contact、Record-Route、Route 等三个头域将用于请求的后续路由,参见
2.3.2 示。
Contact 头域消息样例如下示。
Contact: <sip:+8675581002020@191.134.110.3:5060;transport=udp>
Contact 头域定义于 RFC 3261。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Contact 头域的处理如下。
ATS9900
ATS 会将收到消息 Contact 头域中的 IP 地址和端口号改为 ATS 网元的 IP 地址和端
口。
CSC3300
• 注册场景下,如果用户已注册,S-CSCF 会根据 Contact 头域中的 IP 地址和端
口判断与用户已注册的 IP 地址和端口不一致,则 S-CSCF 会刷新用户的注册
信息,并将原有旧的 IP 地址用户注销。
• 呼叫场景下,被叫 S-CSCF 会将 Contact 头域中的信息填写在 Request-URI 中。
UGC3200
UGC 会将收到消息 Contact 头域中的 IP 地址和端口号改为 ATS 网元的 IP 地址和端
口。
19. Privacy
Privacy 头域用于决定用户是否隐藏身份标识,一般是与 P-Asserted-Identity、From 来使
用。
Privacy 头域的消息样例如下示。
Privacy: none
Privacy 头域定义于 RFC 3323,协议中规定此头域的值有:
id 、none、header、session、user、critical。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Privacy 头域的处理如下。
ATS9900
ATS 会根据号码显示类业务对 Privacy 头域进行处理,这里不详细阐述。
CSC3300
CSC 网元对于 Privacy 头域无特殊处理。
UGC3200
在 SIP 与 ISUP 互通场景下,UGC 网元会根据 Privacy 头域中的值进行转换,具体
请参考统一维护资料之《IMS 互通类-IMS 与 CS 互通描述-维护指导手册.doc》。
20. Supported
Supported 头域用于列举所有 UAC 和 UAS 支持的 SIP 扩展方法。Supported 头域包含了
一个 option tag 的列表,表示这个 UAS 或者 UAC 所支持的 SIP 扩展方法。
Supported 头域的消息样例如下示。
Supported: 100rel, timer, in-band-dtmf, precondition
Supported 头域定义于 RFC 3261 20.37。
在 IMS 解决方案中,CSC3300、ATS9900、UGC3200 将根据该头域的值确定对端支持
的扩展方法。此头域的常见值有:100rel、timer、in-band-dtmf、precondition、history-
info 等。
21. Require
Require 头域用于 UAC 告诉 UAS 处理请求时需要 UAS 支持的扩展方法。如果 UAC 要
求 UAS 能够支持扩展,以便 UAS 能够处理 UAC 的特定请求,那么它必须在请求头中
增加一个 Require 头域来说明处理本特定请求需要什么样的一个扩展 option tags。此头
域一般与 Supported 头域同时使用。
Require 头域的消息样例如下示。
Require:100rel, timer
Require 头域定义于 RFC 3261 20.32。
22. Session-Expires
Session-Expires 头域用于指示会话刷新的时长。此头域只能放在 INVITE 或 UPDATE 请
求以及 INVITE 或 UPDATE 请求的 200 OK 响应中,一般用于 Session timer 会话心跳检
测机制中,该头域与 Min-SE 头域是同时使用的。此头域的最小值为 90s。
Issue 01 (2011-02-10) 华为技术有限公司 33
IMS 维护指导手册 SIP 介绍 SIP 协议概述
Session-Expires 头域的消息样例如下示。
Session-Expires: 1800; refresher=uac
Session-Expires 头域定义于 RFC 4028。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 Session-Expires 头域的处
理如下。
ATS9900
收到的请求消息中,如果携带有 Session-Expires 头域和 Min-SE 头域,ATS 则会检
查消息中 Session-Expires 头域值是否在配置范围内(配置可参见 3.2.2),如果
Session-Expires 头域中的值小于配置的最小值,则回 Session Interval Too Small 响
应;因为 ATS 作为 B2BUA 的角色,发出的消息中 Session-Expires 值根据配置填写。
CSC3300
CSC 网元会检查收到的消息中 Session-Expires 头域的值和 Min-SE 头域的值,如果
值小于 CSC 网元的配置值(配置可参见 3.2.2),则回 Session Interval Too Small 响
应;如果大于 CSC 网元的配置值,则透传。
UGC3200
UGC 网元会检查收到的消息中 Session-Expires 头域的值和 Min-SE 头域的值,如果
值小于 CSC 网元的配置值(配置可参见 3.2.2),则回 Session Interval Too Small 响
应。
23. History-Info
History-Info 头域用于记录呼叫过程中目标被更改的信息。
History-Info 头域的消息样例如下示。
History-Info: <tel:+8676928050080>;index=1; <tel:+8676928050085>;index=1.1
History-Info 头域定义于 RFC 4244。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 History-Info 头域的处理如
下。
ATS9900
ATS 对于 History-Info 头域的处理,主要应用于前转类业务,ATS 会将前转业务方
号码打包在第一跳中,即 index 为 1,将前转目的方号码打包放在第一跳之后。ATS
配置前转次数为 5,因此 ATS 会检查 History-Info 头域中的 Index 值,如果值大于
5, ATS 将拒绝呼叫。
CSC3300
CSC 网元对于 History-Info 头域无特殊处理。
UGC3200
在 SIP 与 ISUP 互通场景下,UGC 网元会根据 History-Info 头域转换为 ISUP,具体
请参考统一维护资料之《IMS 互通类-IMS 与 CS 互通描述-维护指导手册.doc》。
24. Reason
Reason 头域用于失败错误响应(如 3xx、456xx)中携带 Q850 失败原因值和状态码。在
ITUT Q850 协议中定义了 Reason 头域中的 Q850 原因值。
Reason 头域定义于 RFC3326。
在 IMS 解决方案中,CSC3300、ATS9900、UGC3200 等网元在回的错误响应中,会添
加上头域,指示失败原因。Reason 头域一般与 Warning 头域同时出现。
Reason 头域的消息样例如下示。
Reason: Q.850;cause=14;text="Subcriber ported",SIP;cause=410;text="Gone"
25. Warning
Warning 用于给应答的状态添加附加说明使用的。Warning 头域值是在应答中包含的,
并且包括了一个 3 位的警告代码,主机信息,和警告正文。
在 IMS 解决方案中,CSC3300、ATS9900、UGC3200、SBC 等网元主动释放呼叫时,
会在对应的错误响应中添加上该头域,以指示哪个网元发生错误。同时通过错误响应消
息中的 Warning 头域内容,也可以定位到该错误响应是哪个网元产生的。
Warning 头域的消息样例如下示。
Warning: 399 19804.7074.ATS.ats01.ims.huawei.com.20.337 "The callee is not registered"
Warning 头域的消息样例中,“399”表示 3 位的警告代码,在 IMS 发出的错误响应中,
该值一直是固定的。“19804.7074.ATS.ats01.ims.huawei.com.20.337”由主机部分生成,
包括内部模块文件代码、网元名、网元主机名等信息;“The callee is not registered”表
示产生错误的原因。因此判断错误响应消息的来源时,只需要看主机信息即可区分产生
失败响应的网元,需要注意的是,由协议栈产生的错误响应中,警告正文部分比较特
殊,警告正文部分以字符“SS”、“SSF”开始,
如下示。
Warning: 399 5.1.180.2 "SS060003F156L888[00000] Cancel received on initial invite"
Warning: 399 5.1.180.2 "SSF60003F156L888[00000] Cancel received on initial invite"
协议栈释放原因参考文档:
协议栈主动发请求
或应答的总结.doc
Warning 头域样例 网元
26. Path
Path 头域用于注册过程中携带 P-CSCF 的域名信息、终端的 IP 地址和端口,以及 Dpt 参
数给 S-CSCF 网元,当用户做被叫时,S-CSCF 网元。
Path 头域的消息样例如下示。
Path: <sip:term@pcscf.ims.huawei.com;lr;IP=191.134.110.3;PORT=5061;Dpt=7672_86>
Path 头域定义于 RFC 3327。
在 IMS 解决方案中, CSC3300 网元对 Path 头域的处理如下。
CSC3300
CSC3300 中的 P-CSCF 网元在发给 S-CSCF 网元的用户注册 REGISTER 消息中添加
Path 头域,Path 头域中填写的是 P-CSCF 的主机名,呼叫时当用户做被叫时,S-
CSCF 根据 Path 头域中的信息能够快速定位到 P-CSCF 网元。
27. Service-Route
Service-Route 头域用于注册过程中 S-CSCF 将自身信息携带给 P-CSCF,以便于呼叫时
的 P-CSCF 寻址。
Service-Route 头域的消息样例如下示。
Service-Route: <sip:orig@scscf.ims.huawei.com;lr;Dpt=7674_a35b1246;ca= ffffffff>
Service-Route 头域定义于 RFC 3608。
在 IMS 解决方案中,CSC3300 网元对 Service-Route 头域的处理如下。
CSC3300
28. P-Access-Network-Info
P-Access-Network-Info 头域是一个 3GPP 扩展头域,用于携带接入网信息,它向 IMS 网
络指示终端 UE 通过哪种技术接入到 IMS。
P-Access-Network-Info 头域的消息样例如下示。
P-Access-Network-Info: IEEE-802.11;"location-info=191.134.110.3"
P-Access-Network-Info 头域定义于 RFC 3455。
在 IMS 解决方案中,SBC、CSC3300、ATS9900 网元对 P-Access-Network-Info 头域的处
理如下。
SBC
如果终端发送给 SBC 的注册 REGISTER 消息和初始 INVITE 消息中无 P-Access-
Network-Info 头域,SBC 会在发个 P-CSCF 的注册 REGISTER 消息和初始 INVITE
消息中添加上 P-Access-Network-Info 头域,P-Access-Network-Info 头域中包含有
SBC 域名信息和终端的 IP 地址信息。
CSC3300
• 注册和呼叫场景下,如果终端发送给 P-CSCF 的注册 REGISTER 消息和初始
INVITE 消息中无 P-Access-Network-Info 头域,P-CSCF 会在发给 I-CSCF 的注
册 REGISTER 消息和初始 INVITE 消息中添加上 P-Access-Network-Info 头域,
P-Access-Network-Info 头域中包含有接入网类型和接入的 IP 地址信息。
• 紧急呼叫场景下,S-CSCF 会根据 P-Access-Network-Info 的 SBC 域名信息和终
端的 IP 地址信息来选择相应的紧急呼叫中心来路由。
ATS9900
ATS 会将 P-Access-Network-Info 头域中的信息携带在话单的 AVP:
P_ACCESS_NETWORK_INFO 中。
29. P-Visited-Network-ID
P-Visited-Network-ID 头域是一个 3GPP 扩展头域,用于携带用户所在的拜访网络。
P-Visited-Network-ID 头域的消息样例如下示。
P-Visited-Network-ID: "pcscf.ims.hw.com"
P-Visited-Network-ID 头域定义于 RFC 3455。
在 IMS 解决方案中,CSC3300、ATS9900 网元对 P-Visited-Network-ID 头域的处理如下。
CSC3300
注册场景下,如果终端发送给 P-CSCF 的注册 REGISTER 消息中无 P-Visited-
Network-ID 头域,P-CSCF 会在发给 I-CSCF 的注册 REGISTER 消息中添加上 P-
Access-Network-Info 头域,P-Visited-Network-ID 头域中为 P-CSCF 的域名信息。进
一步信息请参考《IMS 基本知识类-注册维护指导手册》。
ATS9900
ATS 会将 P-Visited-Network-ID 头域中的信息携带在话单的 AVP:
P_VISITED_NETWORK_INFO 中。
30. P-Charging-Vector
P-Charging-Vector 头域是一个 3GPP 扩展头域,用于携带 IMS 计费 ID 和运营商标识。该
头域包含两个参数:ICID 值和 IOI 信息(包括 orig 和 term),其中,在一路会话中,
ICID 值是全局唯一的,IOI 信息与用户所在的运营商相关。
P-Charging-Vector 头域消息样例如下示。
P-Charging-Vector: icid-
value="467eff9d377cfc6d2ad9ae1b70613134.3509234699.82958.20";orig-
ioi=ims.hw.com;term-ioi=ims.hw.com
P-Charging-Vector 头域定义于 RFC 3455。
在 IMS 解决方案中,CSC3300、ATS9900 网元对 P-Charging-Vector 头域的处理如下。
CSC3300
注册场景下,如果终端发送给 P-CSCF 的注册 REGISTER 消息中无 P-Charge-Vector
头域,P-CSCF 会在发给 I-CSCF 的注册 REGISTER 消息中添加上 P-Access-
Network-Info 头域,P-Visited-Network-ID 头域中为 P-CSCF 随即生成的 icid 信息。
ATS9900
ATS 会将 P-Charge-Vector 头域中的 icid 信息携带在话单的 AVP:
IMS_CHARGE_IDENTIFIER 中,CCF 会根据此 AVP 关联整个呼叫过程的话单。
31. P-Charge-Function-Address
P-Charge-Function-Address 头域是一个 3GPP 扩展头域,用于携带计费功能地址。
在 IMS 解决方案中,此头域由 CSC3300 中的 S-CSCF 网元产生,携带的计费功能地址
一般为 IMS 域内的计费实体,如 CCF(离线计费)、ECF(事件计费)。
P-Charging-Function-Address 头域消息样例如下示。
P-Charging-Function-Addresses: ccf=ccf.ims.hw.com;ecf=ecf.ims.hw.com
P-Charging-Function-Address 头域定义于 RFC 3455。
32. P-Associated-URI
P-Associated-URI 头域是一个 3GPP 扩展头域,用于携带注册用户所关联的其他身份,
即 URI 信息。
P-Associated-URI 头域消息样例如下示。
P-Associated-URI: <sip:+8675581002020@ims.huawei.com>,<sip:
+8675581002020@ims.hw.com;user=phone>
注意:由于 P-Associated-URI 只为传递 SIP URI 而定义,因此他将包含的与注册用户有
关的 TEL URI 都使用 SIP URI 的格式来表示。
P-Associated-URI 头域定义于 RFC 3455。
33. P-Preferred-Identity
P-Preferred-Identity 头域是一个 SIP 扩展头域,用于终端携带自身注册的公共用户身份
给代理服务器。
在 IMS 解决方案中,此头域应用于呼叫场景中,CSC3300 中的 P-CSCF 的网元将构造
P-Asserted-Identity 头域替代此头域,并带给 S-CSCF 网元。
P-Preferred-Identity 头域消息样例如下示。
P-Preferred-Identity: <sip:+8675581002020@ims.hw.com>
P-Preferred-Identity 头域定义于 RFC 3325。
在 IMS 解决方案中,CSC3300 网元对 P-Preferred-Identity 头域的处理如下。
CSC3300
呼叫场景下,P-CSCF 根据终端发送给 P-CSCF 的初始 INVITE 消息携带的 P-Preferred-
Identity 头域中的 IMPU 信息,构造 P-Asserted-Identity 头域,携带在发送给 S-CSF 的
INVITE 消息中。
34. P-Asserted-Identity
P-Asserted-Identity 头域是一个 SIP 扩展头域,用户携带用户的真实用户身份给代理服
务器。此头域中可以包含一个或两个身份标识,一个为 TEL URI,另一个为 SIP URI。
P-Asserted-Identity 头域消息样例如下示。
P-Asserted-Identity: <sip:+8675581002020@ims.huawei.com>,<tel:+8675581002020>
P-Asserted-Identity 头域定义于 RFC 3325。
在 IMS 解决方案中,ATS9900、CSC3300、UGC3200 等网元对 P-Asserted-Identity 头域的
处理如下。
ATS9900
ATS 收到的初始响应 INVITE 消息后,则从 P-Asserted-Identity 头域中获取主叫号
码。在被叫侧 ATS,ATS 会根据号码显示业务对 P-Asserted-Identity 头域中的主叫号
码进行调整。
CSC3300
CSCF 收到的初始响应 INVITE 消息后,如果 INVITE 消息中无 P-Served-User 头域,
则从 P-Asserted-Identity 头域中获取主叫号码,去 HSS 上下载用户数据。
UGC3200
UGC 收到的初始响应 INVITE 消息后,从 P-Asserted-Identity 头域中获取主叫号码,
在 SI 与 ISUP 互通场景下,UGC 将 P-Asserted-Identity 头域中的号码转换为 Caller
35. P-Profile-Key
P-Profile-Key 是一个 3GPP 扩展头域,用于携带 Proxy 查询用户数据使用的关键信息。
P-Profile-Key 头域消息样例如下示。
P-Profile-Key: <sip:+867558100!.*!@ims.hw.com>
P-Profile-Key 头域定义于 RFC 5002。
在 IMS 解决方案中,此头域主要用于 PBX 的通配 IMPU 方案。
2.2.3 重要头域参数
SIP 协议中某些头域携带了一些关联对话等重要参数,主要有 branch 和 tag 两个参数。
36. branch
Via 头域的一个参数,用于表示一个唯一的事务;以魔鬼数字 z9hG4bK 开头,样例如
下示。
Via: SIP/2.0/UDP 5.1.182.18:5061;branch=z9hG4bKuild4yuuf4gltvsutmwsdwtyw
;Role=3;Dpt=7684_16;TRC=b5c-ffffffff,
37. tag
tag 用于 From,To 头域;From Tag, To Tag 和 Call-ID 一起表示一个对话,样例如下示。
From: “81002020”<sip:+8675581002020@ims.hw.com>;tag=45f84802
2.3.1 响应消息路由
SIP 响应经过的路径和请求完全相同,SIP 请求消息每经过一个节点,每个节点都会将
自身地址添加到请求消息的 VIA 头域顶端。
图1.1 响应消息的路由
2.3.2 请求消息路由
对于 SIP 请求消息的路由,需要了解 Record-Route、Route、Contact 这几个头域的使用机
制。需要了解 UAC、UAS 是如何维护自己的路由集的。
图1.2 请求消息路由样例 1
图1.3 请求消息路由样例 2
图1.4 请求消息路由样例 3
2.6 常见 SIP 流程
下面主要讲解 IMS 中涉及的常见 SIP 流程。
2.6.1 用户注册注销流程
38. 注册流程
注册消息中关键头域包括 From、To、Contact 及 Expire,其他头域请参考“SIP 请求消息
类型”一节。用户注册基本流程详细描述,请参考统一维护资料之《IMS 业务类-注册注
销-维护指导手册.doc》。
39. 注册鉴权流程
在 IMS 解决方案中,最常用的鉴权方式有:HTTP Digest 鉴权、SIP Digest 鉴权(MD5
鉴权)。HTTP-DIGEST 鉴权流程如图 2-21 示。注册鉴权流程详细描述,请参考统一维
护资料之《IMS 业务类-注册注销-维护指导手册.doc》。
40. 注销流程
请参考统一维护资料之《IMS 业务类-注册注销-维护指导手册.doc》。
2.6.2 用户基本呼叫流程
用户基本呼叫需要区分有鉴权和没有鉴权的场景,用户基本呼叫鉴权方式采用的是
HTTP-DIGEST 方式鉴权(参考 RFC 2617),与注册鉴权类似,只有用户密码正确及
源 IP 地址与注册 IP 地址相同才允许呼叫。在 IMS 解决方案对用户发起的呼叫是否鉴权
图1.2 基本呼叫关键头域
头域 网元 作用描述
2.6.3 媒体协商
通讯信息是通过语音、数据、传真、视频等来转递的,通常我们将语音、数据、传真、视频
等称之为媒体,IMS 作为软交换设备要完成一个呼叫的接续和建立,需要参与通讯端
点之间的媒体处理和协商。
既然有媒体,就涉及媒体的表示及协商。
41. 媒体的表示
SIP 基本呼叫中媒体的表示是通过 SDP(Session Description Protocol)协议描述的,主
要可以参考 RFC 2327。媒体主要包括如下信息
媒体类型(比如音频 audio、视频 video、数据、传真 fax 等)
传输协议(比如 RTP/UDP/IP 等)
编解码(比如 G711a、G711u、G723、G729 等音频编解码和
H.261 、H263、H264、MPEG 等视频编解码等)
媒体收发 IP 地址及端口
打包时长
在此不讲述所有的参数的描述方法,主要描述几个重要的参数,见上图中标注的红色
方框。通常需要关注一下几个方面:
关注媒体类型,主要是音频 audio、视频 video 等。
关注 RTP 包收发 IP 地址及端口,当遇到呼叫类问题需要抓取 RTP 包分析时,往往
需要检查 RTP 包发送的源及目的地址是否与 SIP 信令中 SDP 协商的地址、端口一
致。
关注使用的编解码,主被叫是否协商到相同的编解码,每一个编解码对应一个
Payload Type 值,Payload Type 值分静态 Payload Type 和动态 Payload Type 两类,
值在 0~95 之间为静态;值在 96~127 之间为动态。对于静态编解码,协议规定
其对应一个固定的 Payload Type 值,比如上图中的 PCMA 编码对应 8,PCMU 对
应 0;对于动态编解码,Payload Type 值没有固定,只是每次呼叫中从 96~127 中
选择一个即可,比如上图中的 telephone-event(即 DTMF---2388,参见 RFC
2833)的 Payload Type 值为 101,即为动态的。更多信息请参考 RFC 3551。
关注打包时长,很多呼叫类问题可能是因为主被叫打包时长不一致所致。
关注媒体方向,媒体方向有四种取值:sendrecv(既发既收)、sendonly(只发送)
recvonly(只接收)、inactive(不发不收)。
42. 协商机制
媒体协商是通过 O/A(offer/Answer)机制保证的,在 RFC 3264 中有描述。
o If the initial offer is in the first reliable non-failure message from the UAS back to UAC, the answer
MUST be in the acknowledgement for that message (in this specification, ACK for a 2xx response).
假如初始请求是非失败的可靠响应,那么 answer 必须在这个响应的确认消息中。
这句话说明了下列媒体协商消息对:
可靠 18X(INVITE)和 PRACK 消息携带 SDP 完成媒体协商。
200(INVITE)和 ACK 消息携带 SDP 完成媒体协商。
o After having sent or received an answer to the first offer, the UAC MAY generate subsequent offers in
requests based on rules specified for that method, but only if it has received answers to any previous offers,
and has not sent any offers to which it hasn't gotten an answer.
在第一个 offer 应答完成后,UAC 才可以发送后续 offer。
这句话的意思可引申如下:如果 invite 和可靠的 18X 完成了媒体协商,UAC 可以使用下列消息对
进行媒体重协商。
PRACK 和 200(PRACK)消息携带 SDP 完成媒体协商。
UPDATE 和 200(UPDATE)消息携带 SDP 完成媒体协商。
o Once the UAS has sent or received an answer to the initial offer, it MUST NOT generate subsequent
offers in any responses to the initial INVITE. This means that a UAS based on this specification alone can
never generate subsequent offers until completion of the initial transaction.
一旦 UAS 发送 offer 请求或者接受了 answer 后,UAS 不能在初始 invite 的响应中发送 offer。
UAS 只能在 invite 事务结束后才能发起媒体改向。这句话的意思可引申如下:如果 INVITE 和可
靠的 18X 完成了媒体协商,200(invite)再携带媒体是非法的。
2.6.4 临时响应可靠传输流程
SIP 协议 RFC 3261 中定义,非 100 类临时响应消息的传输是不可靠的,即 UAS 发送临
时响应后并不能保证 UAC 能够接收到该消息,非 100 类临时响应消息允许丢失。如果
需要在该响应消息中携带媒体信息,那么就必须保证该消息能够可靠的传输到对端。所
以在 RFC 3262 里制定了临时响应的可靠性传输机制,引入了“100rel”的协商机制,通
过 Supported 和 Require 头域来实现。同时引入 PRACK,200(PRACK)消息。
2.6.5 UPDATE 流程
UPDATE 方法是在 RFC 3311 中引入的,主要用于在早期对话中更新会话参数,比如更
新媒体流中的编解码、媒体流方向等,在早期对话中,主叫或被叫可以多次发送
UPDATE 更新媒体。通话后,主叫或者被叫也可以发送 UPDATE 更新媒体,不过协议
不建议这样使用,因为通话后一般使用 Re-INVITE 更新媒体。另外 UPDATE 可以作为
Session timer 心跳检测消息使用,请参考 2.6.7。
2.6.6 re-INVITE 流程
在已经存在的对话中发送的 INVITE 请求消息称为 re-INVITE 消息。它与初始 INVITE
消息的区别是 re-INVITE 消息中 To 头域存在 Tag 参数,而初始 INVITE 的 To 头域不存
在 Tag 参数。
通话建立后,主叫或者被叫需要修改媒体,可以通过发送 Re-INVITE 携带新的媒体再
次进行媒体协商,协商主要有两种方式:INVITE 和 200 完成协商、200 和 ACK 完成协
商。
INVITE 和 200 完成协商
图1.4 Re-INVITE-200 协商
43. OPTION 心跳
OPTION 心跳即设备级心跳,在与其他厂商对接时,建议都打开,但是打开前需要对
方确认支持此功能。
图1.1 周期性的设备级心跳
图1.2 启发式的设备级心跳
粗体部分为对端地址。
CSC3300、ATS9900 其中之一可以是其他厂商设备,也可以为 SIP 终端,IMS 与 SIP 终
端之间的呼叫也是可以发送 OPTION 消息检测是否终结。
From: <sip:+8675581002020@ims.hw.com>;tag=45ff921a、
To:< tel:81002021>
CSeq: 1 INVITE
Max-Forwards: 69
Supported: timer
Contact: <sip:+8675581002020@191.134.110.3:5060;transport=udp>
Session-Expires: 300
Min-SE: 90
Allow:
INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,
UPDATE,MESSAGE,REFER
User-Agent: MC-1.1.6.3
Content-Length: 231
Content-Type: application/sdp
v=0
o=+8675581002020 3383350077 0 IN IP4 191.134.110.3
s=TOMORROW
c=IN IP4 191.134.110.3
t=3383350077 0
m=audio 10002 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
其中 Supported: timer 表示 SIP UE 支持 Session timer 心跳,Session-Expires: 300
表示 SIP UE 希望 Session timer 心跳时长是 300s,Min-SE: 90 表示心跳时长不得小于
90s。
如上图所示消息 200 (INVITE),ATS9900 发送 200 响应给 SIP UE,消息样例如下:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 154.112.8.30:5061;branch=z9hG4bKlrpdylpelyegrx1hilv4dy1pg
Call-ID: ggeppgi4yire0ezir1wpwyrhyire0ezi@ATS.ats01.ims.huawei.com.20
Record-Route: <sip:154.112.8.21;lr;Role=3;CxtId=3;Dpt=7676_216;spln=IS;X-
HwB2bUaCookie=1036;TRC=ffffffff-
ffffffff>,<sip:154.112.8.22;lr;Dpt=7674_136;Role=3;CxtId=3;spln=S;X-
HwB2bUaCookie=1035;TRC=ffffffff-ffffffff>
From: <sip:+8675581002020@ims.hw.com;user=phone>;tag=y1x1dgi0-CC-20-TRC-5378
To: <tel:81002021>;tag=0hiihw1r-CC-20-TRC-5379
CSeq: 1 INVITE
Allow:
INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,
UPDATE,MESSAGE,REFER
Session-Expires: 300;refresher=uas
Require: timer
Contact: <sip:154.112.8.30:5060>
P-Asserted-Identity: <sip:+8675581002021@ims.hw.com;user=phone>
P-Access-Network-Info: IEEE-802.11;"location-info=191.134.110.3"
P-Charging-Vector: icid-
value="467eff9d377cfc6d2ad9ae1b70613134.3509580959.88697.20";orig-
ioi=ims.hw.com;term-ioi=ims.hw.com
Content-Length: 187
Content-Type: application/sdp
v=0
o=HuaweiATS9900 7 7 IN IP4 154.112.8.30
s=Sip Call
c=IN IP4 191.134.110.3
t=0 0
m=audio 10004 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
其中 Session-Expires: 300;refresher=uac 表示最终心跳时长为 300s,refresher=uas 表示发
送心跳方为 uas,即 ATS9900。Require: timer 表示本次呼叫需要发送 Session timer 心跳。
200 响应中的 Session-Expires 值即为协商后的最终心跳时长。一般在一半心跳时长左右
需要发送心跳消息,如上图中 UPDATE 消息,样例如下:
UPDATE sip:+8675581002020@191.134.110.3:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 154.112.8.30:5061;branch=z9hG4bKvp4dw4vvz1ewdhyywwl1ehhdw
Route: <sip:154.112.8.22;lr;Role=3;CxtId=4;Dpt=7674_136;spln=PS;X-
HwB2bUaCookie=927 >
Call-ID: ZdmAg32675-ID00000004-H11M027S57@191.134.110.3
From: <tel:81002021>;tag=pvyxr1di-CC-20-TRC-5378
To: <sip:+8675581002020@ims.huawei.com>;tag=45ff921a
CSeq: 1 UPDATE
Session-Expires: 300;refresher=uas
Min-SE: 600
Supported: timer
Max-Forwards: 70
Contact: <sip:154.112.8.30:5060>
Content-Length: 0
46. 流程描述
请参考统一维护资料之《IMS 互通类-IMS 与 CS 互通-维护指导手册.doc》。
关于 SIP-I、SIP-T 的进一步信息,请参考:
SIP-I:RFC3204、RFC3372、RFC3398
SIP-T:ITU-T Q.1912.5
48. 场景描述
SIP 支持两种 DTMF 传递方式:带内和带外。
带内即 DTMF 在用户面传送,带外即 DTMF 在信令面传送。
带内:通过编解码的协商来确定 DTMF 带内传输使用的编解码方式、编解码速率以及支
持的事件。对于编解码方式现在统一使用 telephone-event 编解码,时钟速率一般为
8000。带内 DTMF 是 3GPP 中标准的 DTMF 传送方法。对于传递 DTMF 的 telephone-
event 编解码,可以参照 rfc2833 协议,通过 SDP 中的 fmtp 来表示。
带外:SIP 可以通过 INFO 消息来带外传输 DTMF。该做法为华为私有扩展使用方法,
只适用与华为 MSC 对接的局点。
带内 DTMF 的接收流程:
5、主被叫都是带内方式则由MGW带内自动实现。
2.6.10 SIP 传真
请参考统一维护资料之《IMS 业务类-传真-维护指导手册.doc》。
2.6.11 回铃音、异常音流程
请参考统一维护资料之《IMS 业务类-回铃音及异常音播放-维护指导手册.doc》。
3 SIP 相关配置
3.1 基本呼叫配置
这部分基本数据配置可以参考 IMS8.1 配置文档 《31184673-HUAWEI IMS IP 多媒体子
系统解决方案 产品文档-(V200R008C01_03)》中如下章节所示。
安装与描述 –> 初始配置 -> 配置 IMS 域内呼叫数据
• 说明
图1.1 心跳配置说明
2. CSC3300 配置
• 配置命令
• 说明
• 说明
4. SBC 配置
• 配置命令
R008C01 版本配置命令如下示。
容灾场景下,建议打开该开关。
5. AGCF 配置
通过 MOD DNSRR 命令配置,R010C05 版本如下图。
MOD DNSRR: UHB=YES;
2. CSC3300 配置
通过 MOD STMR 命令配置,R008C01 版本如下图。
MOD STMR: STEN=Y, SE=300, MINSE=90;
3. UGC3200 配置
通过 MOD SIPTG 命令配置,R008C01 版本如下图。
MOD SIPTG: ISST=START;
4. SBC 配置
R008C01 版本配置命令如下示。
1) 手工设置方式
a. 执行命令 system-view,进入系统视图。
b. 执行命令 sbc function-entity function-entity-index,进入功能实体视图
3.3.1 T1 定时器配置
T1 定时器在 RFC 3261 17.1.1 中定义。T1 定时器主要用于消息重发的间隔。T1 是一个估
计的循环时间(round-trip time,RTT),缺省设置成为 500ms。几乎所有的事务定时
器都以 T1 为单位,并且调整 T1 的值也就调整了那些定时器的值。不建议修改 T1 定时
器的值。
1. ATS9900 配置
2. CSC3300 配置
通过 MOD SIPPP 命令配置,R008C01 版本如下图。
MOD SIPPP: SIPID=32, SIPPV=500;
3. UGC3200 配置
通过 MOD FLEXTIMER 命令配置,R008C01 版本如下图。
4. AGCF 配置
通过 SET SIPCFG 命令配置,R010C05 版本如下图。
3.3.2 T2 定时器配置
T2 定时器是用于指示 INVITE 应答的最大重传时间间隔,缺省值为 4s。 即重传时间的
最大时长为 4s,第一次重传的时长为 T1 定时器,后续是 2*T1 的时长来重传,直到重
发的间距是 T2 为止。不建议修改 T2 定时器的值。
1. ATS9900 配置
2. CSC3300 配置
通过 MOD SIPPP 命令配置,R008C01 版本如下图。
MOD SIPPP: SIPID=33, SIPPV=4000;
3. UGC3200 配置
通过 MOD FLEXTIMER 命令配置,R008C01 版本如下图。
MOD FLEXTIMER: T2=40;
4. AGCF 配置
通过 SET SIPCFG 命令配置,R010C05 版本如下图。
3.3.3 TB 定时器配置。
TB 定时器是用于定义 INVITE 请求超时时间的定时器。此定时器与 T1 定时器紧紧相关,
一般是 T1 的倍数时长,默认是 32s,即 64 倍的 T1。非容灾场景下,不建议修改 TB 定
时器的值;容灾场景下,建议修改为 5s,即 10*T1。
1. ATS9900 配置
通过 MOD SIPCFG 命令配置,R003C01 版本如下图。
MOD SIPCFG: TB=64;
2. CSC3300 配置
通过 MOD SIPPP 命令配置,R008C01 版本如下图。
MOD SIPPP: SIPID=35, SIPPV=32000;
3. UGC3200 配置
通过 MOD FLEXTIMER 命令配置,R008C01 版本如下图。
MOD FLEXTIMER: TB=32;
4. SBC 配置
无。
DTMF 传输方式缺省是带内传输,但带内传输并不能完全由配置决定,在配置为带内
且编解码协商成功的情况下才使用带内传输,否则使用带外传输。
在 UMG 上,是通过命令 SET RFC2833 对 2833 的 DTMF 传输参数进行控制的,详细请
参考 UMG 产品指导文档,此处不作详细阐述。
3. From 头域号码格式变换
通过 MOD SIPCFG 命令配置,将主叫侧 ATS9900 发出的消息中 FROM 头域中的号
码为 SIP URI 格式。R003C01 版本如下图。
4. P-Asserted-Identity/From 头域号码变换
通过 MOD SIPCFG 命令配置,将 P-Asserted-Identity/From 中的 TEL URI 转换为 SIP
URI。R003C01 版本如下图。
2. Request-URI 格式变换配置
MOD SIPTG 命令的参数“业务控制软件参数”勾选为“预留业务 10”时,UGC 出局到
IMS 携带的 Request-URI 中号码格式为 SIP 格式(不带 user=phone),默认携带
user=phone。
3. Request-URI 格式配置
MOD SIPTG 命令的参数“业务控制软件参数”勾选为“预留业务 12”时,UGC 出局到
IMS 携带的 Request-URI 中号码格式为 SIP 格式,默认为 TEL 格式。
4 故障处理
序号 常见问题 问题处理
1 呼叫失败类 请查看 Error: Reference
source not found
2 接通后断话 请查看 Error: Reference
source not found
4.1 呼叫失败类故障
呼叫失败引起的原因可能很多,在此文档中主要介绍由于设备处理不符
合 SIP 协议等原因引起的呼叫无法成功建立,对于由于其他原因引起的
呼叫失败,请参考 IMS 各网元产品指导文档。
4.1.1 问题分析与处理
【故障描述】
呼叫失败
主被叫双不通或单通
【可能的故障原因】
序号 故障原因 备注
1 配置错误 呼叫失败
2 网络故障 呼叫失败
3 设备故障 呼叫失败
4 协议处理错误 呼叫失败
【故障分析及处理】
Issue 01 (2011-02-10) 华为技术有限公司 81
IMS 维护指导手册 故障处理
图1.1 RTP 分析
----结束
4.1.2 典型案例
【案例分析】
此问题需要首先从信令方面分析。
1. 从信令看,S-CSCF 给 P-CSCF 发送 BYE 消息,消息中提示“Wait
Peer Ack Timeout for INVITE”。根据该提示查看 24 节的协议栈文档,
可以知道原因是由于 S-CSCF 没有收到 200 OK 的 ACK 响应,导致
超时发送 BYE 消息释放呼叫。如 Error: Reference source not found 示。
2. 分析前面呼叫流程,P-CSCF 给主叫发送 200 OK(INVITE)消息后,
收到了 SBC 的 ACK 响应,但是 P-CSCF 没有将 ACK 前传给 S-
CSCF。如 Error: Reference source not found 示。
3. P-CSCF 将 ACK 消息转发给 S-CSCF 的原因是由于 ACK 消息中缺少
了参数。按照请求消息的路由(参考 2.3.2 节示),此时 SBC 作为
UAC,按照 RFC-3261 12.1.2 的描述,UAC 应该将 200
OK(INVITE)消息中的 Record-Route 原样填写放在 ACK 中的 Route
头域中,但是中兴 SBC 却不是。P-CSCF 发给 SBC 的 200 OK 消息
Record-Route 头域如 Error: Reference source not found 示, SBC 返回
的 ACK 响应中 Route 头域如 Error: Reference source not found 示。
图1.1 案例截图 1
图1.2 案例截图 2
图1.3 案例截图 3
图1.4 案例截图 4
【案例分析】
1. 检测网络及配置均正常,通过信令分析,发现 ATS 收到终端发起转
移的 Refer 消息后,回 400 BAD REQUEST 错误响应,消息如下:
图1.1 案例截图 1
图1.2 案例截图 2
4.2.1 问题分析与处理
【故障描述】
SIP 呼叫接通后断话
【可能的故障原因】
序号 故障原因 备注
1 网络故障 呼叫接通后断话
2 协议对接错误 呼叫接通后断话
【故障分析及处理】
呼叫接通后断话类问题,原因很多,也很复杂。主要按照下面的步骤分析
步骤 2 首先确认用户是否注销,可以使用 EXP USRINF 命令(CSCF)/DSP
GURS(ATS)查询终端的注册状态。
步骤 3 其次确认 IMS 各网元是否打开会话级 Session timer 心跳功能(配置请参
考 3.2.2 节)以及终端是否支持会话级 Session timer 心跳功能。如果 IMS
各网元配置不支持会话级 Session timer 心跳功能,且终端也不支持会话
级 Session timer 心跳功能,则导致断话;或者 Session timer 的协商结果
为由 UAC 发起检测,但是 UAC 却没有发起检测,从而导致断话。
步骤 4 如果上面的步骤都没有发现问题,打开 CSC/ATS(域内呼叫)或
CSC/ATS/UGC(域外呼叫)SIP 消息跟踪(包括内部模块间及外部信令
跟踪),分析 SIP 信令是否正常。
(1) 判断消息跟踪是否有失败响应消息,如:500、403、400、404 等。
(2) 根据失败响应消息中的 Warning 头域,判断是 IMS 哪个网元释放呼
叫,Warning 头域的判断方法请参考节 24 节;如果不是 IMS 网元释
放,请联系其他网元分析。
(3) 根据 Warning 头域中的警告正文部分初步判断问题原因。如果是 ATS
释放呼叫,可以将 Warning 头域拷贝至 ATS 的工具《ATS9900
Warning Header Error Code Table.xls》,对 Warning 头域进行解析后,
根据提示进行检查;如果是协议栈释放呼叫,则可以根据状态码和
Warning 头域中的描述查看下面文档,根据文档中的提示分析定位。
步骤 5 如果不是 IMS 网元释放呼叫,请联系其他网元分析。
4.2.2 典型案例
呼叫建立后,主叫用户和被叫用户并没有挂机,通话大约 17 分钟后,S-
CSCF 网元发出 408 Request Timeout 消息,继而呼叫断开。
【案例分析】
1. 这个问题可以从内部消息跟踪入手,首先确认释放呼叫的网元,根
据 408 Request Timeout 消息中的 Warning 头域确认释放原因。从内部
消息跟踪可以看出,是 S-CSCF 发送 408 消息,Warning 头域中释放
原因是“No Response From Network"”,消息截图如下。
图1.1 案例截图 1
图1.2 案例截图 2
图1.3 案例截图 3
【问题解决】
(1)优化网络。
(2)将 AR 设备的 SIP ALG(ALG:Application Layer Gateway 应用层
网关)功能关闭,NAT 转换功能使用 SBC 来完成。
P-CSCF IP 地址:10.23.28.68
呼叫建立后,主叫用户和被叫用户并没有挂机,通话大约 10 分钟后,
ATS 网元发出 BYE 消息,继而呼叫断开。
【案例分析】
这个问题可以直接从消息跟踪分析入手,并发现问题。分析步骤如下。
1. 从 ATS 网元内部消息跟踪可以看到,呼叫建立 10 分钟后,ATS 发
送 BYE 消息,并提示“Session Timer Expires Timeout”,消息截图如
下。查看协议参考文档,该提示说明,UAC 或 UAS 在 Expires 内没
有发起 Session timer 心跳检测,导致呼叫释放。
图1.4 案例截图 1
图1.5 案例截图 2
5 缩略语