【问题标题】:SIP Timer inside core内核内部的 SIP 定时器
【发布时间】:2016-05-23 06:18:57
【问题描述】:

我有以下关于 SIP 通信中 SIP 核心行为的问题。

假设 A 主叫 B. B 收到 INVITE 并生成“200 OK”。在生成“200 OK”后,B 进入终止状态(SIP 状态机),因此 B 中没有状态机。

现在如果'200 OK'没有到达A,假设B重新发送'200 OK',因为它没有收到ACK。 RFC 3261 表示重新传输“200 OK”是 SIP 核心的责任。

那么在 B 的 SIP 核心中发送这个重传的触发器是什么?它是否维护任何计时器?还是依赖于实现?

问候, 苏丹苏

【问题讨论】:

    标签: sip


    【解决方案1】:

    从B重传2xx在13.3.1.4 The INVITE is Accepted部分解释

    确切的文字是这样的:

    The 2xx response is passed to the transport with an
    interval that starts at T1 seconds and doubles for each
    retransmission until it reaches T2 seconds (T1 and T2 are defined in
    Section 17).  Response retransmissions cease when an ACK request for
    the response is received.
    

    重传结束说明如下:

    If the server retransmits the 2xx response for 64*T1 seconds without
    receiving an ACK, the dialog is confirmed, but the session SHOULD be
    terminated.  This is accomplished with a BYE, as described in Section
    15.
    

    这意味着应用层(即:不是事务层) 需要管理计时器。

    定时器 T1 和 T2 在表 4 中定义:定时器值表

    T1       500ms default    Section 17.1.1.1     RTT Estimate
    T2       4s               Section 17.1.2.2     The maximum retransmit
                                                   interval for non-INVITE
                                                   requests and INVITE
                                                   responses
    T4       5s               Section 17.1.2.2     Maximum duration a
                                                   message will
                                                   remain in the network
    

    是否允许修改 T1、T2 和 T4 值。但是,理论上,对于通常的 Internet,它们不应该更改。

    例如,如果所有 ACK 都丢失,则将在这些间隔内进行重传:

    500 毫秒 1s 2s 4s 4s 4s 4s ...

    直到总计 64*T1 = 32 秒

    【讨论】:

    • 期待您的答复。谢谢解决了我的疑问。
    猜你喜欢
    • 2015-05-17
    • 2011-05-21
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多