关于 SIP 状态机的疑问

freeshoot 2008-04-11 11:16:36
做过SIP的人都知道RFC3261中的定义了Invite Client、Invite Server、NON-Invite Client、NON-Invite Server四个Transaction层状态机并用清晰的FSM图来说明,而Dialog层(或叫Transaction User层?)则只是用文字描述了其EARLY和CONFIRMED的状态及其转换,且没有清晰的FSM图。

我调查过一些开源SIP协议栈的Dialog层的状态处理,却各有不同。比如oSIP的Dialog State只包括:EARLY、CONFIRMED、CLOSE三种状态。RFC4235中却描述了五种状态。

请问大家了解Dialog层的FSM是否有特定标准或定义?或相关论述说明?
...全文
452 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mythfish 2008-11-09
  • 打赏
  • 举报
回复
SIP对Dialog层没标准的状态机,因为都是基于不同的应用实现的。而在事务层的状态机需要按标准的,一个事务内的事件是否能出现是有规定的。
yanghehong 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 freeshoot 的帖子:]
请问大家了解Dialog层的FSM是否有特定标准或定义?或相关论述说明?
[/Quote]

FSM似乎不必要有标准定义,即使在标准中出现,那也只是方便你的实现。具体状态机有几个状态,那是内部实现相关的。当然了,在标准中画出状态机图,可能也方便大家对协议交互的理解,但也只是出于直观示意,做参考。本质上可以不算协议得一部分,2个厂家的产品做交互测试,应该不会以这个作为基准。

在你具体实现时,可能你会根据具体情况减少一些状态或增加一些状态。(RFC4235就是细化,增加了实际创建dialog之前的2个状态Trying 和 Proceeding)

作为实现协议的人,当然希望这种东西越多,越详细越好。


- 千里孤行
CathySun118 2008-11-03
  • 打赏
  • 举报
回复
关注下
oo 2008-04-11
  • 打赏
  • 举报
回复
友情up

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧