TCP 上的注册消息

时间:2021-01-07 12:03:45

标签: tcp sip registration

我已经通过 TCP 实现了 SIP 调用。 现在我打算将它外推到 TCP 上的注册。

我有一个参考 PCAP,流程如下:

初始注册的序列号和确认号的逻辑:

A------------------------------------B Seq - Ack - 大小

           REGISTER

-----------------------------------→ 1 - 1 - 709

        100 Giving a Try

<--------------------------------- 1 - 710 - 358

        401 Unauthorized

<--------------------------------- 359 - 710 - 459

          REGISTER

-----------------------------------→ 710 - 818 - 931

        100 Giving a Try

<--------------------------------- 818 - 1641 - 358

       200OK

<--------------------------------- 1176 - 1641 - 450

当前腿的序列号=(前一条同方向腿的序列号+前一条同方向腿的窗口大小。)

当前腿的确认数=(前一条腿的确认数){如果当前腿与前一条方向相同}

=(前一航段的序列号)+(前一航段的窗口大小){else}

我试图理解以下内容:

  1. 刷新实例应该是同一个 TCP 流的一部分吗? 那就是说刷新实例的Src和dest IP地址以及Src和Dest Port地址应该和初始注册的一样?
  2. 应该对 Seq 和 Ack 编号应用什么逻辑? 它们应该延续之前的消息(初始注册尝试),还是应该将这些值视为在给定设备之间生成新实例?

PS:我正在开发一种在设备之间生成调用的工具,因此 src 和 dest 消息代码在我的范围内。

1 个答案:

答案 0 :(得分:0)

SIP 注册独立于使用的传输协议。如果您想更新通过 TCP 连接建立的现有 SIP 注册,您可以通过相同的 TCP 连接、另一个 TCP 连接甚至通过 UDP 发送注册更新请求。只要请求被发送到同一个注册商,更新请求就会被处理。

有关在 Registration section of RFC 3261 中使用序列号和 SIP 注册(更新)的更多信息。 更多信息 SIP 注册路径和 RFC 5626 中(不同的)传输协议的使用。

相关问题