sip信令超时机制

DIALOG
UA 发送初始INVITE 请求后,只有接收到失败响应才有可能建立DIALOG 。通过callid,FROM 域中的tag 参数,TO 域中的tag 参数来唯一标识DIALOG  FROM 域中的参数由主叫添加,TO 域中的参数由被叫添加。

根据DIALOG的定义,只有当101199200消息中的TO域中带有tag参数时,此时才建立dialog。对通过101199消息(目前一般是18×消息)建立的DIALOG,我们称之为早期会话(early dialog).

消息传送和定时器保护
无论是 Client 还是 Server 方,在定时器和消息重发的处理上,可分为与 INVITE 相关的 Transaction  和与 INVITE 不相关的 Transaction RFC3261 中定义了两个基准定时器 T1500msT24s
无论是可靠传送还是不可靠传送,当实体发送消息(包括请求或响应消息)后,都会启动一个64  倍的T1 定时器(计时器B、H、F),当此定时器终结时,如果没有收到相应的响应或确认消息,实体将会清掉相关的Transaction

一、与INVITE请求 消息相关的行为(Client 侧行为)
SIP 实体(包括UA Proxy )发送INVITE 消息后,无论是可靠传送还是不可靠传送,实体都会启动 Transaction 保护,启动定时器B Timer B=64*T1 ,如果T1 500ms, 则此定时器为32S )。
在不可靠传送的情况下,实体同时会启动 T1 500ms 定时器(A定时器) 如果 T1 终结了没有收到任何响应消息,实体将会重发 INVITE 消息,以后的间隔分别为 2T1,4T1,8T1,16T1,32T1, 在此期间,如果收到响应消息,实体将会终止重发行为。
当定时器B Timer B=64T1 )终结时,如果实体仍然没有收到响应消息,实体将终止该呼叫请求。

二、与INVITE 消息相关的最终响应行为(Server 侧行为)
当被叫用户应答时,被叫侧UA UAS )将会向对端发送200 消息,表示对INVITE 消息的确认,主叫侧UA UAC 收到200 消息)后,将会发送ACK 消息,表示收到200 消息。 因此,对Server 侧来讲,当发送200 消息后,为了等待ACK 消息,将会启动定时器H Timer H=64T1
在不可靠传送的情况下, Server 还会启动 T1 定时器(计时器G) 如果 T1 终结,没有收到 ACK 消息, UAS 将会重发 200  消息。以后的间隔分别为 2T1,4T1,8T1, 当时间达到 T2 T2 8T1 )后,后续重发的间隔将一直为 T2。
当定时器H Timer H=64T1 )终了时,如果实体仍然没有收到ACK 确认消息,实体将会终止该呼叫请求。
其它的最终响应消息,消息的重传和定时器保护也与200 消息的相同。

三、与INVITE消息无关的请求消息的行为(Client 侧行为)
其它请求(非INVITE 请求)消息,例如INFO 消息或BYE 消息,实体接收到最终响应后,由于不需要对最终响应消息进行确认,因此消息重发行为上与INVITE 消息的重发存在不同。
当实体发送INFO BYE 消息后,实体将会启动定时器F Timer F=64T1 )。如果定时器F 终了时,没有收到最终响应消息,实体将会清掉Transaction
在不可靠传送的情况下,实体同时启动T1 定时器(计时器E)。如果没有收到任何响应消息,实体重发的行为将与INVITE 消息相关的最终响应行为(Server )相同。如果在此期间没有收到临时响应消息,实体将会以T2 的间隔重发。

ACK 只有在响应非200 OK 时才和INVITE 一样,否则与INVITE 不为同一事务,只属于同一个对话。

定时器缺省值含义
T1500 ms17.1.1.1经历来回时间(RTT)
T24 秒17.1.2.2非 INVITE 请求和 INVITE 响应的最长重新传输时间间隔
T45 秒17.1.2.2消息可保留在网络中的最长持续时间
计时器 A最初为 T117.1.1.2INVITE 请求重新传输时间间隔(仅适用于 UDP)
计时器 B64*T117.1.1.2INVITE 事务超时计时器
计时器 D大于 32 秒(对于 UDP)17.1.1.2响应重新传输的等待时间
0 秒(对于 TCP 和 SCTP)
计时器 E最初为 T117.1.2.2非 INVITE 请求重新传输时间间隔(仅适用于 UDP)
计时器 F64*T117.1.2.2非 INVITE 事务超时计时器
计时器 G最初为 T117.2.1INVITE 响应重新传输时间间隔
计时器 H64*T117.2.1ACK 接收的等待时间
计时器 IT4(对于 UDP)17.2.1ACK 重新传输的等待时间
0 秒(对于 TCP 和 SCTP)
计时器 J64*T1(对于 UDP)17.2.2重新传输非 INVITE 请求的等待时间
0 秒(对于 TCP 和 SCTP)
计时器 KT4(对于 UDP)17.1.2.2响应重新传输的等待时间
0 秒(对于 TCP 和 SCTP)

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值