SIP协议呼叫流程及协议分析

时间:2025-01-31 12:02:45

用户通话结束后,被叫用户挂机,终端代理B 向代理服务器发送Bye 消息;

3)代理服务器转发Bye 消息至终端代理A,同时向认证/计费中心送用户通话的详细信息,请求计费;

4)主叫用户挂机后,终端代理A 向代理服务器发送确认挂断响应消息200 OK;

5)代理服务器转发响应消息200OK;

注:RFC3621上结束流程为:终端代理B直接发送Bye至终端代理A(未通过代理服务器转发),测试时使用的X-Lite软件Bye消息目的IP为代理服务器。此现象待分析确认。

注销流程:

  

1) 终端向代理服务器送Register 消息注销,其头中expire 字段置0。

2) 代理服务器收到后回送200 OK 响应,并将数据库中的用户有关信息注销。

 

三、SIP报文分析:

注册报文分析

Register报文:

 

Max-Forwards:最大转发次数,就是经过SIP服务器的转发次数,主要是为了防环

Via:SIP版本号2.0、传输类型UDP、呼叫地址

     Branch是一种随机码,它被看作传输标识

     Via字段中地址是消息发送方或代理转发方设备地址,一般由主机地址和端口号组成

     传输类型可以为UDP/TCP/TLS/SCTP

Contact:INVITE消息所必须的,它用来路由到被叫地址设备,也称为用户代理(UA)

To:使用用户名888去10.11.58.8登录

From:表示请求消息的发送方和目标方,如果里面有用户名标签,地址要求用尖括号包起来,Tag:随机码

Call-ID:呼叫ID由本地设备生成,全局唯一。每次呼叫该值唯一不变。

本地生成的From tag和Call-ID全局唯一码,被叫方生成To tag全局唯一码。这三个随机码做为整个对话中对话标识在通话双方使用。

CSeq:命令队列,每发送一个新的请求,该数自动加1

Expires:到期时间

 

 

 

 

 

 

 

 

 

 

 

 

回复认证报文:

 

407:要求代理权

呼叫方回应的认证报文:

 

 

代理服务器回应200OK:

 

呼叫流程:

INVITE报文:

 

0SDP版本号,目前都是0

O:主叫源地址,类型等

S:呼叫主题

C:连接信息,告诉对端我的连接信息

T:时间戳

M:媒体传输类型,媒体编码,开放端口等

A:媒体属性 (采样率等)

服务器转发后Trying报文:

 

响铃Ringing报文:

 

接听电话后回应200OK报文:

 

Content-Type:说明消息类型

Content-Length:消息长度

收到200OK报文后回复ACK:

 

结束流程报文:

Bye报文:

 

收到Bye后回应200OK:

 

用户在代理服务器上注销流程:

REGISTER报文:

 

Expires:注销时,此值置为0

200OK报文: