最近做android上面的IP通话,所有对sipdroid做了一个简单分析,希望对各位做voip的朋友有点帮助,同时在这里抛砖引玉,希望高手加以指点。我主要是修改Sip那块,将sipdroid的Sip换成自己的私有Sip,同时做一个自己的sip和标准Sip的状态映射,所以对UI这块还不太明白
Sipdroid是一款相对成熟的Voip软件,本身提供了视频语音通话功能,支持各种网络接入模式(蓝牙,wifi,3G等),多种语音视频编码处理,同时Sip完全用java上层编写,模块比较清晰,相对比较好修改。
1、SipDroid模块简单分析
UI层,负责界面显示模块和界面时间传递
Engine层:软件核心处理层,启动各种服务,初始化软件参数。处理各种UI时间,维持配置文件信息,保存全局属性变量。其中包括UserAgenProfile(用户配置文件属性),UserAgent(用户事件处理),SipdroidEngine(核心处理,所有的UI的事件,参数设计,服务的启动都由此文件调度),RegisterAgent(注册服务处理)
Sip层:提供所有sip消息模型,所有sip消息的处理流程,包括发送,接收,封装,解码等等
网络传输:提供音频,视频信息的处理,此模块会对音频视频进行即时编码解码,同时发送数据。同时还提供JSTN NAT透传技术。
2、SipDroid流程分析:
拨号:拨号请求由UI通过Receiver广播信息交给SipDroidEngine处理,在SipDroidEngine做一些验证,然后交给UserAgine处理。其中call(String
target_url, boolean send_anonymous)为判断是否匿名拨号再此方法中,会创建一个ExtendedCall对象,以提供给sip协议栈使用,然后调用ExtendedCall的call方法处理,之后由ExtendedCall的call,调用ExtendedInviteDialog来发送invite请求。由InviteDialog执行具体的invite调用InviteTransactionClient的request方法,最后由InviteTransactionClient发送request请求,在InviteTransactionClient中会通过SipProvider,来发送消息,并打开对端口监听,来收sip消息。发送消息主要有(UDP传输UdpTransport
TCP传输TcpTransport)
来电:在启动程序的时候会通过SipDroidEngine会根据配置,创建一个Provider,这里用到udp传输,创建一个Udpprovider,udpprover是一个Thread,创建的时候就会启动线程,开始监听收到的信息,当受到信息后,通过onServiceTerminated方法,把对象传出到UdpTransport,由UdpTransport处理,再通过onTransportTerminated方法传出到SipProvider对象,最后将在SipProvider的processReceivedMessage方法中处理收到的消息,最后从listeners(map)中取出相应的listener,最后通过相应的listener中的OnReceiveMessage()来处理具体Sip请求
转自http://blog.csdn.net/Leixin525/article/details/6299050
分享到:
相关推荐
Sipdroid目前有24个包,140多个java文件.首先学习Sipdroid,至少得明白Sipdroid是怎么玩的,实现的主要功能是什么,具体的流程操作是怎么执行的。本文就是教你认识sipdroid架构
SipDroid客户端源码.zip
sipdroid源码
源码参考,欢迎下载
Sipdroid is an open-source SIP client for Android See http://sipdroid.org for more info Copyright (C) 2009 The Sipdroid Open Source Project (http://sipdroid.org) Copyright (C) 2008 Hughes Systique ...
已经编译过的sipdroid.大致在三步就可以自己动手编译,1.到其他的项目拷贝project.properties到sipdroid目录下,2.修改jni目录下的Application.mk文件中:APP_PROJECT_...之前加上include $(CLEAR_VARS) OK 就这么简单
Sipdroid3.4 官方APK,测试Sipdroid的同学可以下载
sipdroid已编译源码 android2.2下编译。
Sipdroid是开源的一款SIP协议网络电话。标准SIP的软件,可以随便更换网络电话服务商。里面包括Sipdroid的安装包及源码。
Android手机的VoIP客户端 Sipdroid.rar
sipdroid 语音 视频通话
最新的sipdroid源文件,做android多媒体开发很好的例子
android android android android 视频通话 sipdroid.4.4.apk
SipDroid教程、Sipdroid介绍
这是国外的一个开源的sip android前段测试app,sipdroid可以直接使用,也可以自己在对应的网站获取源码编译之后获取自己的apk使用。。当然欢迎下载。。thank's a lot
SIPdroid源代码
编译完的Sipdroid源码,可以直接运行
sipdroid 目前为止最新的 好多源码不好使 所以直接apk了
Sipdroid是一个运行于Android手机平台上的SIP/VoIP客户端。
sipdroid-master源码,是一个很不错的Android源码,有兴趣的伙伴们抽时间可以看一下把。