新闻中心

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

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

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

主程序中的基本方式均按照上节中的过程,创建并初始化PJSUA;当call按键被触发时发起会话,调用make-call()方法;当用户接受通话时,点击hang或cancel按键,触发hang()或采用destry()方法等。
用户接口是通过SDK来的,这部分几乎全都是Java语言,由于UI不是本文的重点,因此只介绍一个简单的界面,实际应用中用户交互是非常重要的。为了所需的功能,至少需要一个文本框来提供SIP地址,以及两个按键来控制会话发起和结束。另外,在呼叫与通话过程中,还需要一个页面来显示,这里可以通过对话框来显示,最后的界面如图2所示。

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

d.JPG



3 封装与调试
为了能在平台上方便地使用该,在了PJSIP协议栈、JNI接口以及UI之后,还需将上面所有的模块进行封装。SDK提供了一些很有用的工具,如aapt等,由于本文重点不在AndriodSDK,所以可以采用集成开发工具(如集成在Eclipse中的ADT)来封装。在工程libs(如果不存在则新建)目录下新建一个名为armeabi的目录,将上节生成的.so库文件放到该目录下。ADT在封装资源时会自动将该库文件封装到apk文件中,apk是Android操作中应用程序的封装形式,在所有android平台中均能使用。
封装后安装到Android手机、MID或虚拟机中,并发起会话。与开源SIP软件Linphone通信的结果如图2所示。

4 结语
通过测试表明,该能够对发起并很好地控制SIP信令,该系统由于采用SIP协议,因此与所有采用这一协议的软件均能通信,如Lin-phone,Kphone等,功能测试中表现良好,实现了的基本需求。同时如果要增加功能,可以在Java类中添加相应的方法并在应用层调用即可,具有一定的可扩展性。
由于手机等手持设备在规格和配置上的差异,该系统在具体的设备上使用时,界面略有不同,但是同系统架构的手机使用时并不影响功能,在HTC Desire和MOTO Milestone上测试均能正常使用。但是,当移植到不同的架构时(即使同时ARM架构),仍需做一定的优化,一般采取主流平台的多种版本方式来解决,这也是所有多厂商移动设备上一个无法避免的问题。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭