支持视频的开源SIP客户端不多,IMSDroid看起来不错,准备研究下。(另外还有SIPDroid和linphone了,SIPDroid好像不支持视频,linphone怎么样? )。
有几个问题考虑:
1) IMSDroid的架构,哪些部分使用C/C++实现,及数据流?
2) 编解码是否可以使用硬件编码器?
3) 回声抑制问题?
4) 网络传输NAT问题?
下载源码,源码目录下有个android-ngn-stack.pdf文档介绍了软件的基本组成,一共有三层:
1) IMSDroid: 客户端界面
2)
3)
- tinySAK
(Swiss Army Knife): Utilities functions (SHA-1, MD5, HMAC, String, List, Timers, Thread, Mutex, Semaphore, ...) - tinyNET:
Networking (DNS, DHCPv4/v6, STUN, TURN, ICE, ENUM, Sockets, ...) - tinyHTTP:
HTTP stack (CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE, ...) - tinyXCAP:
XCAP stack (AUID manager, URL generator) without XML parser (See Java code for parsers) - tinyIPSec:
IPSec SA manager. Useless for Android but you MUST have it - tinySMS:
SMS over IP (SM-TL, SM-RL) for IMS/LTE networks - tinySIGCOMP:
Signaling Compression - tinySDP:
SDP protocol - tinyRTP:
RTP/RTCP protocols - tinyMSRP:
MSRP protocol (Chat and File Transfer) - tinyMEDIA:
Media plugins manager (Audio, video, Codecs, sessions, MSRP, QoS, ...) - tinyDAV(Doubango
Audio Video): Media plugins implementation - tinySIP:
SIP/IMS stack
下面是IMSDroid最新版本的特征:
IMSDroid v2.x preview is now available for developers
The source code is under
New features:
- The SIP/IMS Stack is 7 times faster
- NGN (Next Generation Network) stack for developers ( android-ngn-stack )
- Better audio quality (Adaptive jitter buffer, noise suppression, automatic resampling, gain control, ...)
- Better video quality (low latency, low cpu usage, ...)
- VP8 video codec
- Multi-line
- MSRP chat
- Fix many issues