oSIP协议栈浅析

全文下载连接(不保证永久有效):http://u.sohu.com/download?fileid=11702529523807282 

 

oSIP 协议栈浅析
 
 
 


 
1. oSIP介绍
    oSIP是按照RFC3261(SIP)和RFC2327(SDP)标准,并使用标准c编写的一个SIP协议栈。它是一个公开源码的免费协议栈。oSIP协议栈结构简单而小巧,它并不提供高层的SIP会话控制的API,它主要提供一些解析SIP/SDP消息的API和事务处理的状态机。
oSIP支持线程安全,既可以用于多线程的编程模式,也可以用于单线程的编程模式;oSIP可以用来开发User Agent,IP soft-phone和SIP Proxy等等。
oSIP目前最后版本为V 0.9.7,不久oSIP版本将升级至oSIP2(V 1.99.7)。oSIP2主要调整了一些函数和结构名称,以及一些头文件的名称、内容结构的调整,整体的构架和功能不变。
本文以下描述都基于oSIP V0.9.6版本。
 
 
2. oSIP结构分析
2.1 oSIP结构
    oSIP主要包括三大部分的内容:状态机模块、解析器模块和工具模块。
    状态机模块的功能
完成对某个事务(注册过程,呼叫过程等等)状态记录,并在特定状态下触发相应的事件或回调函数。
    解析器模块的功能
       该模块主要完成对SIP消息结构剖析、SDP消息的结构剖析以及URI结构的剖析;
    工具模块的功能
       该模块提供一些SDP等处理的一些工具。
 
       oSIP的模块结构图如下(图2-1):


 

SIP parser
URL parser
SDP parser
Finite
State
Machines
Dialogue Facilities
SDP negotiation
Facilities
Application
状态机模块
解析器模块
工具模块(可选项)
oSIP 模块
图2-1 oSIP结构
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


2.2 状态机(Finite State Machines)模块
2.2.1 概述
    oSIP状态机(Finite State Machines)主要分为四类,分别为:
Ø        ICT    -- Invite Client (outgoing) Transaction
Ø        NICT   -- Non-Invite Client (outgoing) Transaction
Ø        IST    -- Invite Server (incoming) Transaction
Ø        NIST   -- Non-Invite Server (incoming) Transaction
 


 
2.2.2 ICT状态机
 

ICT_PRE_CALLING
ICT_COMPLETED
ICT_PROCEEDING
ICT_TERMINATED
Transaction initialization
ICT_CALLING
cb_ict_transport_error
cb_ict_invite_sent
cb_ict_invite_sent2
cb_ict_transport_error
图 2-2: ICT State Machine
cb_ict_kill_transaction
cb_ict_transport_error
cb_ict_1xx_received
cb_ict_2xx_received
cb_ict_transport_error
cb_ict_1xx_received
cb_ict_Nxx_received
cb_ict_Nxx_received
cb_ict_3456xx_received2
cb_ict_ack_sent2
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


cb_ict_xxx_xxxx
表示从一种状态转换到另一种状态时将调用该回调函数
表示从一种状态转换到另一种状态时不调用任何回调函数
注:

      
 
 
 
 
cb_ict_Nxx_received:其中N表示一下几个值
       3            --     cb_ict_3xx_received
       4            --     cb_ict_4xx_received
       5            --     cb_ict_5xx_received
       6            --     cb_ict_6xx_received
 


 
2.2.3 NICT状态机
 

NICT
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值