


cross-platform, open source 3GPP NGN/IMS framework for embedded systems
doubango is an experimental cross-platform, open source 3GPP NGN/IMS
framework for embedded systems (it also works on Windows XP/Vista/7, Mac OS X and
unix-like systems). It is fully written in ANSI C.
The framework has been carefully designed to efficiently work on embedded systems
with limited memory and low computing power and to be extremely portable.
Supported Systems
SIP/IMS Stack
The SIP/IMS stack (RFC 3261) implements 3GPP TS 24.229 Rel-9 and can be used to develop
VoIP applications targeting embedded systems, desktop computers, laptops, tablet
PCs or handheld PCs.
You can also use the stack to develop IM clients (Both Page Mode and Session
Mode) using SIMPLE protocol.
Almost all SIP methods are supported (INVITE, MESSAGE, REFER,
UPDATE, INFO ...) and the stack could be easily extended to implement
any missing or custom method.
The Stack contains both
MMTel and PoC extensions
to allow developing rich multimedia applications.
The transport layer offers possibilities to use UDP, TCP, TLS
or SCTP protocols.
Networking
To ease portability, doubango framework contains several platform
independent network stacks such as HTTP/HTTPS(RFC
2616), DHCPv6(RFC 3315
and many othes), DHCPv4(RFC 2131
and many others) or DNS(RFC 1034,
1035 and many others).
- HTTP/HTTPS: used in conjunction with the XCAP stack and for SIP content indirection.
- DHCPv4/DHCPv6: used for Proxy-CSCF discovery (RFC 3319 and RFC 3361), Geoconf (RFC 3825), Civic Addresses Configuration Information (RFC 4676), Emergency call, ...
- DNS: used for Proxy-CSCF discovery (NAPTR), to locate SIP Servers (RFC 3263), to support E.164 numbers (RFC 2916), ...
All these stacks are part of tinyNET
Signaling Compression
(SigComp)
SIP messages can be compressed using SigComp (RFC 3320)
which is natively supported through tinySigComp.
Security
All SIP messages can be protected using
IPSec or TLS
with or without security agreement mechanism (RFC
3329).
IPSec is natively supported through
tinyIPSec and TLS through openssl.
NAT Traversal
NAT traversal is a key feature for any VoIP application and allows media (RTCP/RTP)
and signaling (SIP) packets to traverse NATs.
Symmetric Response Routing (RFC 3581)
is used by default for SIP signaling and either
STUN2 (RFC 5389) or
ICE (draft-ietf-mmusic-ice-19)
can be used at media layer.
ICE makes use of STUN protocol and its extension, traversal Using Relay NAT (TURN)
which is natively supported by tinyNET.
XCAP with OMA extensions
XCAP (RFC 4825) is used to remotely
manage your contacts (resource-lists), avatars (oma_status-icon),
pres-rules, poc-settings, rls-services ...
Only the engine (HTPP stack with support for basic/digest authentication and the
URL generator) is provided and it's up to you to parse the returned XCAP/XML messages.
XCAP is natively supported through tinyXCAP.
MSRP with OMA SIMPLE
IM extensions
MSRP (RFC 4975 and
RFC 5547) is used for Large message transfer and for either Image Sharing (GSMA
IR.79) and File transfer.
MSRP is natively supported through tinyMSRP.
SDP Offer-Answer
The media layer contains a complete SOA (SDP Offer-Answer)
framework with MMTel
and PoC extensions to develop
Multimedia telephony applications without having to read hundreds of technical specifications.
The SOA machine is designed as per RFC 3264
and draft-ietf-sipping-sip-offeranswer-12.
The media framework uses GStreamer
for audio/video transport. You don't need to understand how GStreamer works in order to develop your application but
it is up to you to compile it for your target platform. GStreamer is known to work on Windows, Mac OS X, Android,
Symbian (S60) and many other systems.