SIP 协议的主要流程

目录

目录

SIP 协议的呼叫模型图

基本呼叫建立流程

基本呼叫拆除流程

经过代理的呼叫建立流程

经过代理的呼叫拆除流程

SIP 协议在软交换 SoftX3000(华为推出的一个支持sip协议的交换机设备) 流程图

sip注册过程:

注销sip过程

使用soft3000的呼叫过程


  • SIP 协议的呼叫模型图

 MGC 负责将 PSTN 前向信令映射为 SIP 请求,并且将 SIP 响应映射为 PSTN 后向信令,并且应该实现 Megaco/h.248 协议以及 SIP 用户助理部分。

SIP 代理逻辑上是一个独立的实体,实现是可以作为单独的物理实体也可以与 MGC 捆绑在一起。负责转发或重定向 SIP 请求和响应。

SIP 客户是一个单独的物理实体,可以是 SIP 电话,SIP 会议终端等。

MG 负责 PSTN 域 IP 网之间媒体流的转换和转发。 MG 之间,MG 与 SIP 终端之间使用 RTP/RTCP 协议传输媒体流。 MG 与 MGC 之间使用 Megaco/h.248 协议或 MGCP 协议传输 MGC 对 MG 的 控制信息以及 MG 向 MGC 上报的通知消息。 MGC 与 SIP 代理,MGC 与 SIP 客户或者 SIP 代理之间使用 SIP 协议来传输 呼叫控制消息。

  • 基本呼叫建立流程

(1) 主叫摘机

(2) S1 向 MGC1 发 IAM

(3) MGC1 向 MG1 发 CreateConnection 命令

(4) MG1 在响应中返回 MG1 的 RTP/RTCP 传输地址

(5) MGC1 向 MGC2 发送 INVITE,其消息体中包含完整的 IAM 消息

(6) MGC2 收到 INVITE 向 MG2 发送 CreateConnection 命令

(7) MGC2 从 INVITE 消息中拆离 IAM,将其发送到 S2

(8) MG2 建立与 MG1 的 RTP 连接,并在确认响应中返回自己的 RTP/RTCP 传输地址

(9) MGC2 向MGC1返回100(TRYING)响应,其中包含MG2的RTP/RTCP 传输地址信息 (10) MGC1 向 MG1 发送 ModifyConnection 命令

(11) MG1 建立与 MG2 的 RTP 并且向 MGC1 返回确认消息

(12) S2 向 MGC2 发送 ACM

(13) MGC2 向 MGC1 发送 180( RINGING)响应,其消息体包含 ACM

(14) MGC1 收到 180 响应,拆离 ACM 并将其发送给 S1 (15) 被叫摘机

(16) S2 向 MGC2 发送 ANM

(17) MGC2 向 MGC1 返回 200(OK)响应,其消息体中包含 ANM

(18) MGC1 收到 200 响应,拆离 ANM 并将其发送到 S1

(19) MGC1 向 MGC2 发送 ACK

(1)用户摘机发起一路呼叫,终端代理A向该区域的代理服务器发起Invite请求;

(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;若没有问题,代理服务器在请求消息的Via头域插入自身地址,并向Invite消息的To域所指示的被叫终端代理B传送Invite请求。

(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。

(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。

(5)终端代理B指示被叫用户振铃,用户振铃后向代理服务器发送180Ringing振铃信息。

(6)代理服务器向终端代理A转发被叫用户振铃信息。

(7)被叫用户摘机,终端代理B向代理服务器返回表示连接成功的应答(200OK)

(8)代理服务器向终端代理A转发该成功指示(200OK)

(9)终端代理A收到信息后,向代理服务器发ACK信息进行确认

(10)代理服务器将ACK确认消息转发给终端代理B。

(11)主被叫用户之间建立通信连接,开始通话。

  • 基本呼叫拆除流程

(1) 主叫挂机

(2) S1 向 MGC1 发送 REL

(3) MGC1 向 MG1 发 DeleteConnection 命令

(4) MG1 向 MGC1 返回 DeleteConnectionACK 响应

(5) MGC1 向 S1 发送 RLC

(6) MGC1 向 MGC2 发送 BYE 消息

(7) MGC2 向 MG2 发送 DeleteConnection 命令

(8) MG2 向 MGC2 返回 DeleteConnectionACK 响应

(9) MGC2 向 MGC1 返回 200(OK)响应

(10) MGC2 向 S2 发送 REL

(11) S2 向 MGC2 发送 RLC

  • 经过代理的呼叫建立流程

 (1) Caller goes off hook

(2) S1 向 MGC1 发 IAM

(3) MGC1 向 MG1 发 CreateConnection 命令

(4) MG1 在响应中返回 MG1 的 RTP/RTCP 传输地址

(5) MGC1 向 SIP 代理发送 INVITE,其消息体中包含完整的 IAM 消息

(6) SIP 代理向 MGC1 发送 INVITE,其消息体中包含完整的 IAM 消息

(7) MGC2 收到 INVITE 向 MG2 发送 CreateConnection 命令

(8) MGC2 从 INVITE 消息中拆离 IAM,将其发送到 S2

(9) MG2 建立与 MG1 的 RTP 连接,并在确认响应中返回自己的 RTP/RTCP 传输地址

(10) MGC2 向 SIP 代理返回 100(TRYING)响应,其中包含 MG2 的 RTP/RTCP 传输地址信息

(11) SIP 代理向 MGC1 返回 100(TRYING)响应,其中包含 MG2 的 RTP/RTCP 传输地址信息

(12) MGC1 向 MG1 发送 ModifyConnection 命令

(13) MG1 建立与 MG2 的 RTP 并且向 MGC1 返回确认消息

(14) S2 向 MGC2 发送 ACM

(15) MGC2 向 SIP 代理 发送 180( RINGING)响应,其消息体包含 ACM

(16) SIP 代理 向 MGC1 发送 180( RINGING)响应,其消息体包含 ACM

(17) MGC1 收到 180 响应,拆离 ACM 并将其发送给 S1

(18) 被叫摘机

(19) S2 向 MGC2 发送 ANM

(20) MGC2 向 SIP 代理返回 200(OK)响应,其消息体中包含 ANM

(21) SIP 代理向 MGC1 返回 200(OK)响应,其消息体中包含 ANM

(22) MGC1 收到 200 响应,拆离 ANM 并将其发送到 S1

(23) MGC1 向 SIP 代理发送 ACK

  • 经过代理的呼叫拆除流程

(1) 主叫挂机

(2) S1 向 MGC1 发送 REL

(3) MGC1 向 MG1 发 DeleteConnection 命令

(4) MG1 向 MGC1 返回 DeleteConnectionACK 响应

(5) MGC1 向 S1 发送 RLC

(6) MGC1 向 SIP 代理发送 BYE 消息

(7) SIP 代理向 MGC2 转发 BYE 消息

(8) MGC2 向 MG2 发送 DeleteConnection 命令

(9) MG2 向 MGC2 返回 DeleteConnectionACK 响应

(10) MGC2 向 SIP 代理 返回 200(OK)响应

(11) SIP 代理向 MGC1 转发 200(OK)响应

(12) MGC2 向 S2 发送 REL (13) S2 向 MGC2 发送 RLC

  • SIP 协议在软交换 SoftX3000(华为推出的一个支持sip协议的交换机设备) 流程图

 


sip注册过程:

 使用wireshark抓包得到数据

 


注销sip过程

 

 使用wireshark抓包得到数据

 

 


使用soft3000的呼叫过程

主叫:

 被叫:

(1) A 用户拨打 B 用户号码后,A 用户向 SoftX3000 发 INVITE 的 SIP 请求;

(2) SoftX3000 受到 A 用户 INVITE 的请求后,发 100 TRYING 的 SIP 临时 响应,表示请求正在处理中;

(3) SoftX3000 认证通过后,发 407 AUTHENTICATION 消息给 A 用户,A 用户从中获得域名等信息;

(4) A 用户受到 AUTHENTICATION 消息后,向 SoftX3000 反馈 ACK 确认 消息;

(5) A 用户重发 INVITE 请求,但与原 INVITE 请求的消息内容有所区别(详 细见主要消息说明);

(6) SoftX3000 受到 A 用户的 INVITE 请求后,发 100 TRYING 的 SIP 临时 响应,表示请求正在处理中;

(7) SoftX3000 向 B 用户发 INVITE 请求,准备创建连接;

(8) B 用户受到 INVITE 请求后,向 SoftX3000 送 100 TRYING 临时响应;

(9) B 用户判断可以接受本次呼叫后,向 SoftX3000 送 180 RINGING 振铃 消息;

(10) SoftX3000 向 A 用户转发 180 RINGING 消息;

(11) B 用户摘机后向 SoftX3000 送 200 OK 消息,包含会话能力的描述等内 容;

(12) SoftX3000 向 A 用户转发该消息;

(13) A 用户向 SoftX3000 反馈 ACK 确认消息;

(14) SoftX3000 向 B 用户转发 ACK 消息;

(15) B 用户发送 OPTIONS 给 SoftX3000,通知 A 用户修改连接;

(16) SoftX3000 向 A 用户转发 OPTIONS 消息,进入通话状态

(17) B 用户挂机后向 SoftX3000 送 BYE 消息,准备删除连接;

(18) SoftX3000 向 B 用户送 200 消息,表示成功删除 B 用户到 SoftX3000 的连接;

(19) SoftX3000 向 A 用户转发 BYE 消息;

20) SoftX3000 向 A 用户送 200 消息,表示成功删除 A 用户到 SoftX3000 的连接;

注:以上消息只是 SoftX3000 对 SIP 协议处理过程,不同产品可能实现方式 不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smilehjl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值