SipDroid开源软件的研究

原创 2010年08月09日 21:47:00

1、开发环境的配置

 

下载下来SipDroid源代码后,不能直接导入到eclipse中,否则是无法使用和编译的。

首先需要通过command line参照工程目录下的BUILT.txt文件对工程进行update。

如:android update project -p . -t 2(这里 -p指的是 --path -t指的是 --target)

由于是开源软件,需要版本控制的服务器,可以安装Subclipse(可以参见官网)

 

这样就可以将工程import到eclipse中了。

 

 

2、下面是我最近收集整理的一些Android视频通话技术开发的资料:

 

 

目前市场上在Android手机上支持视频通过并且已经实现的软件有:

SipDroidQikFring for Android.

(最近Skype公司透露也将开发Android上的视频通话软件:

http://www.opda.cn/2010/05/30/skype-mobile-coming-to-android-this-year-possibly-with-video-calling/

 

下面是一些网页链接(有的包含视频通话的演示)

Qikhttp://www.pin5i.com/showtopic-android-use-qik-for-video-chat.html

 

Fring for Android:

http://bbs.goapk.com/viewthread.php?tid=8887&extra=page%253D1%2526amp%3Borderby%253Ddateline%2526amp%3Bfilter%253D2592000

 

http://v.youku.com/v_show/id_XMTc2OTgxMTA4.html

 

SipDroid:(国外已经实现的SipDroid视频通话)

http://v.youku.com/v_show/id_XMTc3MTIzNjY0.html

 

在上面三个软件中:SipDroid为开源软件项目 Fring for Android为免费但是不开源 Qik是收费的

从通话质量来说:SipDroidFring for Android要好。

 

下面就最有前途的SipDroid的简单介绍

 

SipDroid是一款开源的SIP/Voip客户端软件,针对Android手机开发平台。

它是通过SIP provider来提供电话通信服务的,在它的最新的版本1.5.5beta中也提供了视频通话的服务。

它运行在标准的SIP协议之上,由于Android内核本身没有提供SIP协议栈,所以SipDroid软件中通过JNI直接实现了SIP协议栈。

它能够在如下一些网络中提供VoiP服务:WLAN3GEDGE网络。甚至能够和SkypeGoogle Talk, MSN, Yahoo, AIM, and ICQ等用户进行通话。但前提必须到一些SIP provider注册账号(有免费的,也有收费的),SipDroid强烈建议使用PBXes这个sip provider来得到服务。

 

 

有关支持视频通话主要的特新如下:

What types of video calls are supported?

There are three levels of operation for video calls.

Sending

By pressing the MENU button and choosing "Send Video" you can start video transmission to a SIP phone with video.

Receiving

This is not supported natively. If you are registered to PBXes and the other party starts sending video it will show up on the Android phone.

Streaming

When you start sending video as described above while you are in a call to a regular phone, and you have a PBXes Premium Account, the other party can open your webcall URL, click on your photo and see your video.

Streaming can also be used if you call somebody on his Android phone who is not registered to PBXes. Then he can still open your webcall URL from his mobile browser and see you.

 

SipDroid只要支持的特点和功能如下:

· Change number format (e.g. convert the + codes)

· Music on hold

· Support of several modes for DTMF tones

· Support for NAT (network address translation)

· Simultaneous Outbound Calling

· Screening anonymous callers

· Time-based routing for incoming calls

· Attended Call Transfer

· Conferences

· Video Reception (Video Transmission is supported by Sipdroid natively)

· Trigger callback or callthru (if no suitable data network available)

· Calls to Skype users

详细的SipDroid开源软件的介绍见官网:

 

http://code.google.com/p/sipdroid/ (可能需要翻墙访问)

 

对于SipDroid实现视频通话的原理,我目前的理解是:

发送方是将是将视频数据传输到视频流媒体服务器,然后再传输给接收方的。具体细节目前不是很清楚,因为涉及到许多通信协议。

 

SipDroid的源代码可以在官网下载:大概有几M的样子。

开发环境需要EclipsesubclipseSVN客户端)插件。

Subclipse的官网:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

 

下面是一些参考链接:

SIPhttp://baike.baidu.com/view/51013.htm

PBXeshttp://baike.baidu.com/view/2380496.htm

PBXes官网:https://www1.pbxes.com/index_e.php(需要翻墙)

Edge网络:http://baike.baidu.com/view/84625.htm?fr=ala0_1

 

 

3、Sipdroid源代码分析之org.sipdroid.sipua.phone

 

这个包的核心功能是提供拨打语音电话,同时附加有来电显示,通话历史记录,

 

ButtonGridLayout.java

这个类主要的作用是设置显示的格式,它继承于父类:ViewGroup。

Call.java

这个类主要提供手机通话状态的信息。它会与Connection类产生交互,因为在Connection类型会判断当前通话的状态是什么。

CallCard.java

这个类一开始以为是与Card相关的类,其实它本质上就是一个提供UI element的类,它会在通话开始到结束的整个过程中显示不同的界面变化。 是一个非常庞大的类,其中提供了很多的调试函数,看了以后,对Android大程序如何调试会有进一步的认识。

CallInfo.java

这个类用于对于给定的电话号码,查找出拨号人的信息,因此这个类会与Contacts后台的数据库会发生交互。

Connection.java

这个类提供关于通话连接信息,同时会对每一次的通过连接进行历史记录。

Phone.java

这是一个接口类,提供了一些手机状态信息。

 

 

 

Sipdroid3.4 官方APK

  • 2015年08月11日 17:23
  • 1.05MB
  • 下载

sipdroid代码分析指导文章

sipdroid代码分析指导文章 http://wenku.baidu.com/view/f42b7f43be1e650e52ea9928.html
  • jueqing007
  • jueqing007
  • 2011年11月19日 17:14
  • 3176

SIPdroid2.4源代码及word版程序解析 已调试可运行

  • 2014年08月19日 09:54
  • 6.42MB
  • 下载

sipdroid网络电话android源码

  • 2013年10月29日 19:22
  • 6.43MB
  • 下载

再谈SipDroid

研究了SipDroid2.7,自己对它的理解也渐渐的清晰了。 那它是怎样实现电话拨打以及电话监听的?它的音频接收以及发送是怎么实现的?它的视频又是怎么一回事?它在模拟器上的端口为什么总是变化的?它又是...
  • banketree
  • banketree
  • 2012年09月14日 22:07
  • 21565

sipdroid开源项目简要分析

  • 2011年05月26日 14:15
  • 1.12MB
  • 下载

Sipdroid源码初探(一):用户注册(RegisterAgent)

这里分析sipdroid源码中的用户注册部分
  • qq_15650553
  • qq_15650553
  • 2016年02月15日 20:45
  • 1812

SipDroid的研究

由于工作需要,对SipDroid和协议Sip进行了研究。以下是前期的研究记录。 从Sipdroid开始,因为程序是从这开始的。 这是Sip进入的界面, 启动时程序实例话了一个Sip引擎并进行了注册...
  • banketree
  • banketree
  • 2012年08月24日 17:32
  • 8670

sipdroid的编译以及导入Eclipse环境

sipdroid是一款Android平台上开源的voip,当前版本已经更新到3.0了,支持视频通话。sipdroid的源码和apk可在该项目的主页下载到。 一 sipdroid项目官方地址 项目主...
  • netwalk
  • netwalk
  • 2014年01月10日 17:26
  • 4645

Sipdroid的封装

之前分析了Sip,过了这么久,再到官方看一下sipdroid项目,已经3.4版本了,心中产生一个念头,重新封装Sipdroid项目成.jar(项目名称为SipCore.jar),其它项目使用只要引入j...
  • banketree
  • banketree
  • 2014年01月22日 09:26
  • 6266
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SipDroid开源软件的研究
举报原因:
原因补充:

(最多只允许输入30个字)