预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第25卷第3期中南民族大学学报(自然科学版)Vol.25No.3 2006年9月JournalofSouth2CentralUniversityforNationalities(Nat.Sci.Edition)Sep.2006 aOSIP协议栈及其在SIP用户代理中的应用 董坤朱翠涛3 (中南民族大学电子信息工程学院,武汉430074) 摘要介绍了一种具有广泛应用前景、小巧而快速的开源SIP协议栈2OSIP.在详细分析OSIP协议栈的结构、特 点及其运行机制的基础上,给出了基于OSIP协议栈的SIP用户代理(UA)方案.此方案利用SIP以及SDP等开放 协议,完成了通讯双方实时的交互,既可以扩展到即时通讯(IM)方面,也可以作为视频会议实现的基础,具有较好 的兼容性. 关键词SIP协议;OSIP协议栈;用户代理 中图分类号TN915文献标识码A文章编号167224321(2006)0320066204 ApplicationinUserAgentBasedonSIPwithOSIPLibrary DongKunZhuCuitao AbstractTheOSIPlibraryisanimplementofSIPprotocol.Itislittleinsizeandcodeandthuscouldbeveryuse2 fulatdevelopingdevicesbasedonSIP.Thispaperanalyzesthestructure,featureanduseofOSIPlibraryindetail. Attheendofthispaper,wediscusshowtouseOSIPlibrarytodesignandimplementuseragentofSIPphone. ThistypeofuseragentisimplementedbasedonopenprotocolincludingSIP,SDPinordertofulfillinstantinfor2 mationexchange.ItcanbeappliednotonlytoIM,buttovideoconference.Meanwhileitismorecompatible. KeywordsSIPprotocol;OSIP;useragent DongKunMaster′sCandidate,CollegeofElectronicandInformationEngineering,SCUFN,Wuhan430074,Chi2 na SIP协议作为下一代网络应用层的核心协议, 正得到越来越广泛的应用[1].OSIP作为开源的SIP1OSIP体系结构 协议栈,以其结构简单、快速、小巧、功能齐全等特点 而在SIP客户端、服务器端及嵌入式系统中具有广OSIP主要由解析模块、工具模块和状态机模块 泛的应用前景.构成,其核心是状态机模块.OSIP结构如图1所示. OSIP是按照RFC3261(SIP)和RFC2327 (SDP)标准,使用标准C语言编写,并公开源代码. OSIP不提供高层的SIP会话控制的API,它主要提 供一些解析SIPöSDP消息的API和事务处理的状 态机,因而具有较大的灵活性.本文在OSIP协议栈 基础上设计并实现了SIP用户代理,其结构清晰、系 统功能易于扩展,可通过添加功能模块实现IM和 图结构 会议功能,对基于OSIP协议栈开发SIP应用具有1OSIP 指导意义. a收稿日期20052122123通讯联系人 作者简介董坤(19792),男,硕士研究生,研究方向:计算机网络,E2mail:dongkun1129@163.com 基金项目国家自然科学基金资助项目(30370393) ©1994-2007ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net 第3期董坤,等:OSIP协议栈及其在SIP用户代理中的应用76 OSIP解析模块主要用于对于SIP请求与响应 2OSIP初始化及事件处理 进行封装与解析处理,分为SIP解析、URL解析与 SDP解析.SIP解析主要负责SIP标题头的解析与2.1OSIP初始化 封装.SDP解析除了对数据包中SDP会话各类型进在使用OSIP栈之前必须对其进行初始化,主 行解析外还包含对各类型的初始化和释放操作以及要使用函数OSIPinit()和OSIPglobalinit(), 对整个SDP包的一些基本操作.URL解析主要负具体代码如下: 责对SIPURL中包含的host,port,username,pass2OSIPt3OSIP; word等信息进行解析与设置.if(