基本了解

参考:
SIP [RFC3261]

请求类型

1681437832180
1681437950698

响应类型

  • 100试呼叫(Trying)
  • 180振铃(Ringing)
  • 181呼叫正在前转(Call is Being Forwarded)
  • 200成功响应(OK)
  • 302临时迁移(Moved Temporarily)
  • 400错误请求(Bad Request)
  • 401未授权(Unauthorized)
  • 403禁止(Forbidden)
  • 404用户不存在(Not Found)
  • 408请求超时(Request Timeout)
  • 480暂时无人接听(Temporarily Unavailable)
  • 486线路忙(Busy Here)
  • 504服务器超时(Server Time-out)
  • 600全忙(Busy Everywhere)

参考:
wiki

消息示例

参考:
SIP常用消息实例参考

会议相关

参考:
SIP的视频会议系统结构和原理介绍【详解】
SIP视频会议框架与信令控制流程

过程分析

以下是A,B注册到代理服务器,然后A呼叫B,B接听,B挂断的过程。
A的ip为192.168.1.18,用户名101;B的ip为192.168.1.31,用户名100;代理服务器的ip为192.168.1.175。
注册成功的过程,看抓包得发两次REGISTER两次,第一次不携带鉴权信息,第二次携带鉴权信息。
通过观察,REGISTER会定时发送,不是说只发开始的一次而已。

一. A,B注册到代理服务器

说明

第一次注册时,可能不携带Authorization字段或携带了但内容不对,这时候代理服务器会应答401,客户端重新携带Authorization字段或携带正确的内容,进行注册成功。

图解

未命名文件 (3)

抓包详解(B客户端)

  1. 两次注册,两次应答
    1681439419080
  2. 客户端第一次注册(无鉴权信息/鉴权信息有误)
    1681439665149
  3. 代理服务器第一次应答(失败401)
    1681439693771
  4. 客户端第二次注册(有鉴权信息)
    1681439718533
  5. 代理服务器第二次应答(成功200)
    1681439750465

二. A呼叫B

说明

通过观察抓包可以知道,A呼叫B时,我们可知INVITE请求头和请求行携带的号码和IP信息:

From字段规律:通过观察A呼叫B的整个过程(包括B接听),所有来回的通信中携带的信息都为<sip:101@192.168.1.175>
To字段规律:通过观察A呼叫B的整个过程(包括B接听),所有来回的通信中携带的信息都为<sip:100@192.168.1.175>
说明From字段和To字段并不是按某个节点的理解,而是按最开始的INVITE携带到整个完整的处理周期,且完全一样这两个值。
挂断类似上面的,按挂断的第一包BYE的信息为主。

Contact存在INVITE包,且携带的信息按各自发起的。
Via字段,携带的ip,则按照A-代理服务器之间的指令都以A的ip,代理服务器-B之间的指令都以代理服务器的为主。

图解

未命名文件 (4)

抓包详解

A开始呼叫B,A与代理服务器通信
  1. 两次呼叫,两次应答
    1681441006160-1681441050578
  2. 客户端第一次呼叫(无鉴权信息)
    1681441211865
    1681441279323
  3. 代理服务器第一次应答(失败401)
    1681441303401
  4. 客户端响应ACK给代理服务器
    1681441425993
  5. 客户端第二次呼叫(有鉴权信息)
    1681441493125
    1681442028809
  6. 代理服务器第二次应答(成功100)
    1681441527179
代理服务器与B通信
  1. 一次呼叫一次应答一次振铃
    1681441809379
  2. 呼叫
    1681441934140
    1681441985886
  3. 应答
    1681441958748
  4. 振铃
    1681441969605
代理服务器与A通信
  1. 振铃
    1681442390418

三. B开始接听

图解

未命名文件 (1)

抓包详解

  1. xx
    1681442676340
  2. 接听
    1681442742036
    1681442761333
  3. 应答
    1681442779356
  4. 回复
    1681442798467
    1681442810027
  5. 应答
    1681442830953
四. B开始挂断

图解

未命名文件 (2)

抓包详解

  1. 11
    1681442891152
  2. 挂断
    1681442925231
  3. 应答
    1681442939487-1681442944824
  4. 挂断
    1681442974149
  5. 应答
    1681442991677