SIP协议实验
SIP 拨打电话实验
需要工具
PC机两台 Wireshark 软件 MicroSIP 软件
实验步骤
安装下载Wireshark软件、MicroSIP软件
使用wireshark对SIP数据流进行分析
注册流程


a. 终端代理向代理服务器发送注册请求(REGISTER);
b. 代理服务器回送 401 Unauthorized,要求进行安全认证;
c. 终端代理向代理服务器发送加入安全认证信息的注册请求(REGISTER);
d. 代理服务器回送 200 OK,表示请求成功,即注册成功。
注销流程


a. 终端代理向代理服务器发送注销请求(REGISTER);
b. 代理服务器回送 401 Unauthorized,要求进行安全认证;
c. 终端代理向代理服务器发送加入安全认证信息的注销请求(REGISTER);
d. 代理服务器回送 200 OK,表示请求成功,即注销成功。
基本呼叫建立流程
终端A(主叫):10.129.147.228
注册服务器:212.79.111.155
终端B(被叫):10.29.157.115


主叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 6 | INVITE | 主叫请求呼叫 etonan@iptel.org |
| 7 | 100 Trying | 服务器接收请求,正在查找被叫 |
| 8 | 407 Proxy Authentication Required | 要求身份验证 |
| 9 | ACK | 主叫确认收到 407 |
| 10 | INVITE(重新发起) | 带认证信息的第二次 INVITE |
| 11 | 100 Trying | 再次尝试建立连接 |
| 13 | 180 Ringing | 被叫响铃 |
| 24 | 200 OK (INVITE) | 被叫接听了电话 |
| 28 | ACK | 主叫确认,通话建立完成 |
被叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 3199 | INVITE | 来自主叫的通话请求 |
| 3205 | 100 Trying | 被叫回应“正在尝试处理” |
| 3206 | 180 Ringing | 被叫响铃中,等待用户操作 |
| 3582 | 200 OK (INVITE) | 用户点击“接听” |
| 3671 | 200 OK (INVITE) | 继续确认(重发) |
| 3689 | ACK | 来自主叫的确认 |
| 3741 | ACK | 再次确认(重传) |
| 5136 | 200 OK | 对方确认挂断成功 |
符合下面的流程:
a. 终端代理 A 向代理服务器发送呼叫建立请求(INVITE);
b. 代理服务器回送 100 Trying,表示正在尝试建立呼叫连接;
c. 代理服务器向终端代理 A 发送 407 Proxy Authentication Required,要求进行终端代理安全认证;
d. 终端代理 A 回送 ACK 表示确认;
e. 终端代理 A 向代理服务器发送加入终端代理安全认证信息的呼叫建立请求(INVITE);
f. 代理服务器向终端代理 B 发送呼叫建立请求(INVITE);
g. 代理服务器向终端代理 A 发送 100 Trying,表示正在尝试建立呼叫连接;
h. 终端代理 B 向代理服务器发送 100 Trying,表示正在尝试建立呼叫连接;
i. 终端代理 B 向代理服务器发送 180 Ringing,送回铃声;
j. 代理服务器向终端代理 A 发送 180 Ringing,送回铃声;
k. 终端代理 B 向代理服务器发送 200 OK,表示请求成功;
l. 代理服务器向终端代理 A 发送 200 OK,表示请求成功;
m. 终端代理 A 向代理服务器回送 ACK 表示确认;
n. 代理服务器向终端代理 B 回送 ACK 表示确认;
o. 终端代理 A 和终端代理 B 通过 RTP 流进行通话。
实验任务
正常呼叫释放过程


主叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 24 | 200 OK (INVITE) | 被叫接听通话,请求建立成功 |
| 28 | ACK | 主叫确认接听,正式建立通话 |
| 605 | BYE | 主叫发起挂断通话请求 |
| 631 | BYE(重传) | 主叫再次发送挂断请求(UDP无确认机制) |
| 639 | 200 OK (BYE) | 被叫确认接收到挂断请求,释放会话 |
| 642 | 200 OK (BYE)(重传) | 被叫重传 OK 作为应答确认 |
被叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 3689 | ACK | 主叫确认建立通话(对应 200 OK) |
| 3741 | ACK(重传) | 重传 ACK,确保建立通话 |
| 5135 | BYE | 被叫主动挂断通话 |
| 5136 | 200 OK (BYE) | 主叫确认挂断,释放完成 |

被叫忙呼叫释放


主叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 144 | INVITE | 主叫发起呼叫 etonan@iptel.org |
| 145 | 100 Trying | 服务器正在尝试建立连接 |
| 146 | 407 Proxy Authentication Required | 要求身份验证 |
| 147 | ACK | 主叫确认收到 407 |
| 148 | INVITE(带认证) | 主叫带认证信息再次呼叫 |
| 153 | 100 Trying | 服务器继续尝试建立连接 |
| 154 | 486 Active calls limit | 被叫当前正忙或已达到呼叫限制,拒绝呼叫 |
| 155 | ACK | 主叫确认收到拒绝响应,释放呼叫流程 |
被叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 491 | INVITE | 主叫向被叫发起呼叫请求 |
| 494 | 100 Trying | 被叫尝试处理请求 |
| 495 | 486 Active calls limit | 被叫返回忙响应,拒绝呼叫 |
| 526 | ACK | 主叫确认收到 486,释放流程 |
| 1386 | BYE | 被叫当前通话主动挂断 |
| …… | …… | …… |

被叫无应答(主叫挂机)


主叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 120 | INVITE | 主叫发起呼叫 etonan@iptel.org |
| 125 | 100 Trying | 服务器处理中 |
| 126 | 407 Proxy Authentication Required | 需要身份验证 |
| 127 | ACK | 主叫确认 407 响应 |
| 128 | INVITE(带认证) | 主叫再次发起呼叫 |
| 130 | 100 Trying | 服务器继续处理中 |
| 131 | 180 Ringing | 被叫响铃,等待接听 |
| 159 | CANCEL | 主叫因无人应答主动挂断 |
| 164 | 200 OK (CANCEL) | 服务器确认取消请求成功 |
| 165 | 487 Request Terminated | 服务器终止先前的 INVITE |
| 166 | ACK | 主叫确认终止状态码,流程结束 |
被叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 40 | INVITE | 主叫向被叫发起通话请求 |
| 41 | 100 Trying | 被叫尝试处理请求 |
| 42 | 180 Ringing | 被叫响铃状态 |
| 51 | CANCEL | 主叫取消通话 |
| 52 | 200 OK (CANCEL) | 被叫确认收到取消请求 |
| 53 | 487 Request Terminated | 被叫终止 INVITE 事务 |
| 54 | ACK | 主叫确认 487 响应,流程释放完成 |

被叫无应答(长时间被叫无应答)
注:Register相关报文是Register Refresh,忽略即可。


主叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 10 | INVITE | 主叫向注册服务器发起通话请求 |
| 11 | 100 Trying | 注册服务器确认收到请求,正在处理 |
| 12 | 407 Proxy Authentication Required | 要求主叫进行身份认证 |
| 13 | ACK | 主叫确认 407 响应 |
| 14 | INVITE(带认证) | 主叫重新发起认证后的请求 |
| 16 | 100 Trying | 注册服务器再次处理中 |
| 18 | 180 Ringing | 注册服务器通知主叫:被叫响铃中 |
| 5203 | 408 Request Timeout | 注册服务器通知主叫:被叫长时间无应答,呼叫超时失败 |
| 5204 | ACK | 主叫确认收到 408 响应,呼叫流程结束 |
被叫侧:
| No. | 协议内容 | 分析 |
|---|---|---|
| 18 | INVITE | 注册服务器将主叫的请求转发给被叫 |
| 19 | 100 Trying | 被叫收到 INVITE,请求处理中 |
| 20 | 180 Ringing | 被叫设备开始响铃 |
| 161 | 180 Ringing(重传) | 被叫未操作,继续发送响铃状态 |
| 4666 | 180 Ringing(重传) | 被叫未操作,继续发送响铃状态 |
| 4668 | CANCEL | 取消通话 |
| 4669 | 200 OK (CANCEL) | 被叫确认收到取消请求 |
| 4670 | 487 Request Terminated | 被叫终止 INVITE 事务 |
| 4672 | ACK | 服务器向用户B发送ACK确认 |





