新闻中心

EEPW首页>手机与无线通信>设计应用> 基于Android的VoIP系统的设计与实现

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

作者: 时间:2011-04-21 来源:网络 收藏

摘要:为一个平台的网络电话,提出一个PJSIP堆栈的方案。该方案符合NDK开发规范,即上层使用Java语言开发,下层采用纯C语言的PJSIP库开发其协议栈,并使用JNI连接上下两部分。在此叙述了PJSIP的原理,并以此为出发点,分析并了一个具体的。最后通过测试,该方案能很好地完成会话的发起、应答、通信,以及会话的注销等功能,达到了要求。
关键词:;网络电话;PJSIP;JNI;NDK

0 引言
(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层。最后一层是驱动层,这部分一般是由手机厂商来实现的,本文将不做重点介绍。

本文引用地址://m.amcfsurvey.com/article/156376.htm

a.JPG


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭