2. Online状态定义

在通信协议栈与业务逻辑的交叉点上,Online状态是终端设备在核心网或业务平台侧注册成功的标志性状态。它不仅是用户“可被寻址”的前提,更是会话(Session)生命周期管理的起点。本章从含义、与Session的关系、触发条件三个维度,对Online状态进行精确拆解。

2.1 Online状态的含义

Online状态表示终端与网络侧之间已建立可达性与可服务性。具体包含以下三层语义:

语义层 说明 协议体现
注册可达 终端已在网络侧完成身份认证与位置更新,网络可随时寻呼到该终端。 IMS REGISTER / SIP 200 OK
业务就绪 终端具备发起或接收业务的能力,如语音、消息、数据。 P-CSCF 发现 / S-CSCF 分配
状态保持 终端与网络之间维持周期性心跳或保活机制,防止隐式离线。 Re-registration / Keep-Alive
测试要点:Online状态不等于“用户正在通话”或“用户正在使用数据业务”。Online仅表示终端在网络侧处于可服务状态,业务激活是后续Session建立阶段的行为。
Online状态三层语义结构 Online 状态 注册可达 认证 + 位置更新 业务就绪 P-CSCF / S-CSCF 状态保持 心跳 / 重注册 Online ≠ 业务激活 Online仅表示终端可被寻址,业务承载需额外建立Session

2.2 Online状态与Session的关系

Online状态与Session(会话)是依赖但不同层的关系。Online是Session建立的前提条件,但Session的建立与释放不影响Online状态的维持。二者对比如下:

维度 Online状态 Session(会话)
生命周期 长周期(分钟~小时级) 短周期(秒~分钟级)
依赖关系 Session建立的前提 依赖Online状态存在
状态变化 Online ↔ Offline Idle ↔ Active ↔ Release
网络资源 仅占用注册数据 占用媒体通道、QoS资源
典型协议 SIP REGISTER / 200 OK SIP INVITE / 183 / 200 OK
关键规则:终端必须先进入Online状态,才能发起或接收Session建立请求。如果终端在Session进行中突然变为Offline,网络侧应主动释放该Session并回收资源。
Online状态与Session生命周期关系 Online 状态(持续存在) Session 1 Session 2 Session 3 Online状态贯穿始终,Session在其生命周期内独立建立与释放 Online → Offline 切换时,所有活跃Session必须被强制释放 Session释放不影响Online状态(除非是最后一个Session触发去注册)

2.3 Online状态切换的触发条件

Online状态并非静态不变,终端在网络侧的注册状态会因多种条件发生切换。以下是Online ↔ Offline切换的完整触发条件清单:

2.3.1 Online → Offline 触发条件

  • 显式去注册:终端主动发送SIP REGISTER(Expires=0)或网络侧下发401/403拒绝。
  • 注册超时:终端未在注册有效期(通常600~3600秒)内发起重注册,网络侧自动清除注册数据。
  • 网络侧强制踢出:如S-CSCF检测到终端异常、计费异常或网络过载,主动发起去注册流程。
  • 终端关机/网络断开:终端检测到无线链路丢失或关机,网络侧通过隐式去注册机制(如Diameter RTR)清除状态。
  • 用户切换网络:如从4G切换到5G但未完成IMS重注册,或从WiFi切换到蜂窝网络导致注册上下文失效。

2.3.2 Offline → Online 触发条件

  • 初始注册:终端开机后首次发起SIP REGISTER请求,经鉴权成功后进入Online状态。
  • 重注册:终端在注册有效期即将到期前,主动发起REGISTER刷新注册状态。
  • 网络触发重注册:网络侧通过SIP NOTIFY或Diameter PUSH通知终端重新注册(如网络升级、配置变更)。
  • 切换后重注册:终端完成接入网切换后,检测到IMS注册状态丢失,主动发起重注册。
测试风险提示:Online→Offline切换时,如果网络侧未及时释放关联的Session资源,会导致“僵尸Session”问题——网络侧仍保留媒体通道,但终端已无法响应,造成资源泄漏。测试用例必须覆盖异常断链场景下的资源回收验证。
Online状态切换触发条件 Online 状态 Offline 状态 Online → Offline • 显式去注册 • 注册超时 • 网络强制踢出 • 关机/断网 • 网络切换 Offline → Online • 初始注册 • 重注册 • 网络触发重注册 • 切换后重注册

2.4 状态切换的协议流程示例

以下是一个典型的Online → Offline → Online切换流程,以IMS网络为例:

终端                        P-CSCF                    S-CSCF
  |                          |                          |
  |--- 1. REGISTER (Exp=0) -|-- 2. RTR (去注册) ------>|
  |                          |                          |
  |<-- 3. 200 OK (Exp=0) ---|<-- 4. RTA (确认) -------|
  |                          |                          |
  | [Online → Offline]      |                          |
  |                          |                          |
  |--- 5. REGISTER (Exp=600) |-- 6. MAR (鉴权) ------->|
  |                          |                          |
  |<-- 7. 401 Unauthorized -|<-- 8. MAA (挑战) -------|
  |                          |                          |
  |--- 9. REGISTER (Auth) --|-- 10. SAR (注册) ------->|
  |                          |                          |
  |<-- 11. 200 OK (Exp=600) |<-- 12. SAA (确认) ------|
  |                          |                          |
  | [Offline → Online]      |                          |
测试关注点:步骤1~4验证显式去注册的完整性;步骤5~12验证重注册的鉴权与状态恢复。测试工具应能捕获每个SIP消息的Expires头域、Result-Code AVP,并验证网络侧注册数据库的更新。

2.5 状态切换的测试设计要点

测试场景 触发方式 预期结果 异常检测点
显式去注册 终端发送Expires=0的REGISTER 网络侧清除注册,返回200 OK 网络侧是否残留注册数据
注册超时 终端不发起重注册,等待超时 网络侧主动标记为Offline 超时定时器精度(±10%容差)
网络强制踢出 网络侧发送RTR(原因值) 终端收到NOTIFY后去注册 终端是否释放所有Session
关机断网 终端物理断网或关机 网络侧隐式去注册(等待检测周期) 隐式去注册检测周期是否过长
初始注册 终端开机发起REGISTER 鉴权通过后进入Online 鉴权挑战/响应完整性
重注册 终端在超时前发起REGISTER 网络侧刷新注册有效期 重注册窗口期是否触发竞争条件
测试策略建议:在自动化测试中,将Online状态切换作为前置条件(Precondition)进行参数化设计。例如:测试Session建立前,先通过API或协议指令将终端置于Online状态;测试Session释放后,再验证终端仍处于Online状态。这样可以隔离状态切换与业务逻辑的耦合。