OSIP协议栈及其在SIP用户代理中的应用.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:4 大小:218KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

OSIP协议栈及其在SIP用户代理中的应用.pdf

OSIP协议栈及其在SIP用户代理中的应用.pdf

预览

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

15 金币

下载此文档

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

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

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

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

第25卷第3期中南民族大学学报(自然科学版)Vol.25No.32006年9月JournalofSouth2CentralUniversityforNationalities(Nat.Sci.Edition)Sep.2006aOSIP协议栈及其在SIP用户代理中的应用董坤朱翠涛3(中南民族大学电子信息工程学院,武汉430074)摘要介绍了一种具有广泛应用前景、小巧而快速的开源SIP协议栈2OSIP.在详细分析OSIP协议栈的结构、特点及其运行机制的基础上,给出了基于OSIP协议栈的SIP用户代理(UA)方案.此方案利用SIP以及SDP等开放协议,完成了通讯双方实时的交互,既可以扩展到即时通讯(IM)方面,也可以作为视频会议实现的基础,具有较好的兼容性.关键词SIP协议;OSIP协议栈;用户代理中图分类号TN915文献标识码A文章编号167224321(2006)0320066204ApplicationinUserAgentBasedonSIPwithOSIPLibraryDongKunZhuCuitaoAbstractTheOSIPlibraryisanimplementofSIPprotocol.Itislittleinsizeandcodeandthuscouldbeveryuse2fulatdevelopingdevicesbasedonSIP.Thispaperanalyzesthestructure,featureanduseofOSIPlibraryindetail.Attheendofthispaper,wediscusshowtouseOSIPlibrarytodesignandimplementuseragentofSIPphone.ThistypeofuseragentisimplementedbasedonopenprotocolincludingSIP,SDPinordertofulfillinstantinfor2mationexchange.ItcanbeappliednotonlytoIM,buttovideoconference.Meanwhileitismorecompatible.KeywordsSIPprotocol;OSIP;useragentDongKunMaster′sCandidate,CollegeofElectronicandInformationEngineering,SCUFN,Wuhan430074,Chi2naSIP协议作为下一代网络应用层的核心协议,正得到越来越广泛的应用[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用户代理中的应用76OSIP解析模块主要用于对于SIP请求与响应2OSIP初始化及事件处理进行封装与解析处理,分为SIP解析、URL解析与SDP解析.SIP解析主要负责SIP标题头的解析与2.1OSIP初始化封装.SDP解析除了对数据包中SDP会话各类型进在使用OSIP栈之前必须对其进行初始化,主行解析外还包含对各类型的初始化和释放操作以及要使用函数OSIPinit()和OSIPglobalinit(),对整个SDP包的一些基本操作.URL解析主要负具体代码如下:责对SIPURL中包含的host,port,username,pass2OSIPt3OSIP;word等信息进行解析与设置.if(