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确认