关于 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是否有特定标准或定义?或相关论述说明?
...全文
347 点赞 收藏 4
写回复
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
回复 点赞
发动态
发帖子
通信技术
创建于2007-08-27

2783

社区成员

2.8w+

社区内容

通信技术相关讨论
社区公告
暂无公告