- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于PJSIP的多媒体终端的设计与实现
基于PJSIP 的多媒体终端的设计与实现
林 韬
北京邮电大学信息与通信工程学院,北京(100876)
E-mail: nintendolintao@
摘 要:随着多媒体通信技术的发展,SIP协议得到了越来越广泛的应用和支持。本文首先
简要介绍了SIP协议和PJSIP开源协议栈,然后设计并实现了一个Windows平台下具有音视频
通话功能的SIP多媒体终端,其中重点阐述了多媒体终端的设计思路以及两大功能模块:SIP
引擎和视频引擎开发中的关键技术,包括视频媒体协商、视频数据的采集、编解码、传输和
显示。最终实现的多媒体终端在局域网内的音视频通话测试中表现良好,基本满足设计要求。
关键词:SIP;PJSIP ;多媒体终端;音视频通话
中图分类号:TP393
1. 引言
随着计算机网络技术的飞速发展,人们越来越多地利用互联网进行实时的多媒体通信,
其中包括即时消息、数据传输和音视频通话等。目前,国际上用于多媒体通信的信令协议主
要有SIP和H.323 ,两者都对IP系统信令提出了完整的解决方案,但由于SIP具有简单、开放、
灵活、可扩展等多方面明显优点,得到了业界的普遍认可,已成为下一代网络软交换体系中
的重要协议,并将在未来多媒体通信中起着重要作用。在微软、北电、思科等厂商以及3GPP
等标准制定机构的大力支持下,市场上出现了越来越多的SIP客户端软件、智能多媒体终端
[1]
以及支持SIP 协议的服务器和软交换设备 。
本文基于开源的SIP协议栈——PJSIP ,以H.263为视频编码格式,运用Windows平台下
的网络编程、视频捕捉以及界面开发等相关技术,设计并实现了可进行实时音视频通信的SIP
多媒体终端软件。
2. PJSIP
基于一个开放、成熟的 SIP 开源库进行开发不但可以大大提高效率,也能增强与其他
SIP 系统的兼容性。经过对几种常用SIP 开源库的使用和比较,本文最终选择了PJSIP 。PJSIP
是用C 编写的,相当优秀的一个SIP 协议栈,其主要特征包括:
(1)极具移植性。支持的平台有Windows、Windows Mobile 、Linux 、Unix 、MacOS X 、
RTEMS、Symbian OS 等。
(2 )非常小的存储空间。包含完整SIP 功能的代码库仅150K。
(3 )高性能。采用优秀的内存分配机制,运行速度快。
(4 )支持众多的SIP 特征和扩展。比如IM、presence 、event subscription、call transfer、
PIDF 等。
(5 )丰富的SIP 文档和范例。
PJSIP 开源库由一系列功能库所组成,如图1 所示,PJLIB 是系统抽象层,PJLIB-UTIL
提供有用的工具函数,PJNATH 解决NAT 穿越问题,PJMEDIA 和PJMEDIA-CODEC 负责
SDP 协商、媒体编码和媒体传输,PJSIP 是核心 SIP 协议栈,PJSIP-SIMPLE 实现Presence
和即时消息,PJSIP-UA 提供SIP 用户代理库,PJSUA 位于最高层,整合了下层模块的全部
功能。PJSIP 的每个功能库根据其所在的层次以及负责的功能都提供了丰富的编程接口,方
便开发人员使用。
- 1 -
图1 PJSIP 的框架图
PJSIP 协议栈内部包含多个SIP 消息处理层,如图2 所示,从下往上依次是TRANSPORT
层、ENDPOINT 层、TRANSACTION 层、UA 层和DIALOG 层。每个消息处理层以模块的
形式注册到协议栈中,开发者也可以编写并添加自己的消息处理模块,对SIP 消息进行解析
或修改。当TRANSPORT MANAGER 收到SIP 消息包时,会把该SIP
文档评论(0)