基于Android的VoIP系统的设计与实现

2011-05-27 23:52:56来源: 现代电子技术

  0 引言

  VoIP(Voice over Internet Protocol)即首先数字化语音信号并压缩成帧,转换为IP数据包在网络上传输,以此完成语音通话的业务,是一种利用IP协议传输语音数据的、新兴的通信技术。

  随着我国三网融合的推进,VoIP与IPTV(Interactive Personality TV)一起成为这一庞大工程的重要标志。而目前手机中,VoIP的解决方案并不是很多,特别是在Google公司推出的开源操作系统Android中。尽管该系统推出时间不长,凭借强大的功能、良好的界面、广泛的商业支持,为用户带来很好的体验,成为2010年最热门且发展最快的手机操作系统。因此,两者的结合,将是未来的发展趋势。本文提出一种基于PJSIP协议栈的解决方案,通过Android本地开发工具(NDK),实现一个高效、稳定且功能强大的VoIP系统,具有较高的参考和实用价值。

  1 VoIP设计方案

  1.1 设计目标

  本方案所设计的系统包含以下功能:首先,完成用户终端(如手机)中语音数据的采集与编码,并通过RTP(实时传输协议)/RTCP(RTP传输控制协议)进行传输和控制;其次,完成会话的控制,包括会话的注册、发起、维护与结束、注销等;再次,作为一个应用程序,必须实现一个良好的界面,与用户交互;最后,作为一个开放系统,需具有良好的可扩展性。

  1.2 总体设计

  本方案基本上符合Android的NDK框架的开发规范,将系统分为4层,如图1所示。最上层为应用层,该层将在Android SDK的框架内,采用Java语言来实现;第二层为JNI层,SIP协议栈有很多种实现,其中,采用C语言的SIP协议栈在效率、速度、系统占用方面有着超越其他库(如Java协议栈)的优势,因此,该方案将在第三层采用纯C语言实现的PJSIP协议栈。为了让Java应用层能调用协议栈层,在两层之间需要一个衔接的桥梁,这就是JNI层。最后一层是驱动层,这部分一般是由手机厂商来实现的,本文将不做重点介绍。

符合Android的NDK框架

  2 VoIP的具体实现

  这里将实现一个完整的VoIP系统,包括协议栈的实现、JNI的编写以及上层UI的设计实现等。

  2.1 SIP协议栈及UA

  SIP协议栈直接关系到整个系统的质量与效率,本文将采用纯C语言开发的PJSIP库。该库采用C语言开发,且源码开放,在兼容性与效率上有明显优势,不仅体积小(完整的SIP封装也不过150 KB),同时还实现了一个内存池,使得安全系数与运行效率大为提高,该系统所采用的就是优化后的PJSIP库。

[1] [2] [3] [4] [5]

关键字:VoIP  Android  PJSIP

编辑:小甘 引用地址:http://www.eeworld.com.cn/xfdz/2011/0527/article_6688.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
VoIP
Android
PJSIP

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved