IMS 呼叫流程简单分析

时间:2024-04-09 22:20:11

 

呼叫流程可以分为主叫侧和被叫侧,这里分开进行分析

主叫流程如下

  1. UE向P-CSCF发出SIP Invite请求,包含初始SDP消息,里面包含具体的媒体信息
  2. 当P-CSCF收到INVITE消息时候,需要响应100 Trying消息,意味着该消息P-CSCF已经收到
  3. 被叫侧对Invite请求进行响应,主叫UE收到P-CSCF发来的183 Session Progress,该消息里面携带SDP报文
  4. UE发送PRACK消息进行响应
  5. 收到被叫侧发来的响应200 OK
  6. 主叫UE发送Update消息 用来更新媒体信息(需要支持EARLY-MEDIA)
  7. 被叫侧对Update进行响应(200 OK),同样携带更新的媒体信息
  8. 被叫侧产生振铃消息(180 Ringing),并且对Invite消息进行响应(200 OK)
  9. 主叫收到200 OK响应发送ACK进行应答,这个时候通话Session已经建立

 

被叫流程如下

  1. UE收到P-CSCF发送来的Invite请求消息
  2. UE发送消息100 Trying进行临时响应
  3. UE发送183 Session Progress消息,携带媒体信息在SDP报文里面
  4. 收到主叫侧发送过来的PRACK消息,发送响应消息200 OK
  5. 收到主叫侧发来的Update消息,以200 OK消息响应,该消息里面携带协商过后的媒体流信息
  6. UE产生振铃消息,发送180 Ringing给主叫侧
  7. 发送响应Invite消息的200 OK,收到主叫侧发来的ACK应答消息,至此通话流程建立

具体的消息流程图参考如下

IMS 呼叫流程简单分析

同时可以参考手机抓取的Log进行同步分析

主叫侧 

IMS 呼叫流程简单分析

  1. Invite消息里面携带的字段,并且包含媒体信息SDP内容

    P-Early-Media: supported

    Accept: application/sdp,application/3gpp-ims+xml

IMS 呼叫流程简单分析

2. 183 Session Progress 消息里面携带SDP媒体信息

IMS 呼叫流程简单分析

被叫侧消息类似

IMS 呼叫流程简单分析

以上都是个人基于对4G VoLTE的呼叫流程的理解,如有不正确的地方还希望各位朋友能够指出,谢谢!