begin body
TITLE
AUTHOR
Version
CREATEDATE
1
2
Table of Contents
Table of contents
Foreword
Foreword
android-ngn-stack is a NGN (Next Generation Network) stack for Android 2.x (or later)
devices.
The Stack is based on doubango framework. doubango is the world's most advanced open source
3GPP IMS/RCS framework for both embedded and desktop systems.
The main purpose is to provide an open source stack for the developers to build their own VoIP
applications.
This framework offers a unique set of features ranging from audio/video calls, content sharing,
messaging, conferencing, enhanced address book to social presence. All these features are
implemented in accordance with the standards: GSMA RCS, 3GPP IMS or VoLTE.
Introduction
This document has been written by us (Doubango Telecom) to help developers to quickly create
innovative multimedia applications for the Android OS. If you are a developer and is looking for
the best way to develop a NGN (VoIP, Messaging, Video Conferencing, ...) or rich application
for Android then your are at the right place.
If you want to get help or have some feedbacks then please visit our website:
http://code.google.com/p/imsdroid/
Doubango Solution
android-ngn-stack is part of Doubango Solution which include many components such as:
Client-side components
1 Boghe : IMS/RCS Client for Windows
2 IMSDroid : IMS/RCS Client for Android using android-ngn-stack
3 iDoubs : IMS/RCS Client for iOS (iPhone, iPad and iPod Touch)
Server-side components
4 OpenVCS : OpenVCS stands for Open Source Video Conferencing Server and is used to manage
Multipoint Control Units (MCU). Each MCU (a.k.a Bridge) can handle up to 64 participants
5 Flash2IMS : Adobe® Flash® to SIP/IMS Gateway.
3
Highlights
6 SIP(RFC 3261, 3GPP TS 24.229 Rel-9)
7 TCP and UDP over IPv4 or IPv6
8 Signaling Compression, SigComp(RFC 3320, 3485, 4077, 4464, 4465, 4896, 5049, 5112 and
1951)
9
10 Enhanced Address Book (XCAP storage, authorizations, presence, ...)
11 GSMA Rich Communication Suite release 3
12 Partial supports for One Voice Profile V1.0.0 (GSMA VoLTE)
13 Partial supports for MMTel UNI (used by GSMA RCS and GSMA VoLTE)
14
15 IMS-AKA registration (both AKA-v1 and AKA-v2), Digest MD5, Basic
16 3GPP Early IMS Security (3GPP TS 33.978)
17 Proxy-CSCF discovery using DNS NAPTR+SRV
18 Private extension headers for 3GPP
19 Service Route discovery
20 Subscription to reg event package (Honoring network initiated (re/de/un)-registration events)
21
22 3GPP SMS Over IP (3GPP TS 23.038, 24.040, 24.011, 24.341 and 24.451)
23 Voice Call (G729AB1, AMR-NB, iLBC, GSM, PCMA, PCMU, Speex-NB)
24 Video Call (H264, MP4V-ES, Theora, H.263, H.263-1998, H.261)
25 DTMF (RFC 4733)
26 QoS negotiation using Preconditions (RFC 3312, 4032 and 5027)
27 SIP Session Timers (RFC 4028)
28 Provisional Response Acknowledgments (PRACK)
29 Communication Hold (3GPP TS 24.610)
30 Message Waiting Indication (3GPP TS 24.606)
31 Calling E.164 numbers by using ENUM protocol (RFC 3761)
32 NAT Traversal using STUN2 (RFC 5389) with possibilities to automatically discover the server
by using DNS SRV (TURN already implemented and ICE is under tests)
33
34 One2One and Group Chat
35 File Transfer and Content sharing
36
Setting up NGN project
This section explain how to setup a NGN project using Eclipse.
Checking out the source code
To check out the source code of the NGN library you will need a SVN client.
Use this command to anonymously check out the last project source:
svn checkout http://imsdroid.googlecode.com/svn imsdroid
The source code of the library is under:
imsdroid/branches/2.0/android-ngn-stack
4
Importing the NGN project into Eclipse
The NGN project is the Next Generation Network library.
37 Open eclipse
38 Go to File -> Import -> General -> Existing Project into workspace
39 Select android-ngn-stack folder and click Finish
Creating you first NGN application using Eclipse
40 Open Eclipse and select File -> New -> Android Project
41 From the next window ("New Android Project" ) fill the text fields like this:
42
43 Project name: myFirstApp
44 Location: < set any path >
45 Build Target: Android 2.0 (at least)
46 Application name: myFirstApp
47 Package name: org.doubango.test
48 Check "Create Activity" and name it "Main"
49
50
51 Click on Finish to create the project
52 From the Eclipse package explorer, right click on myFirstApp and select "Properties" then
"Android" from the left
53
54
55 From the properties window, select "Add" button then select android-ngn-stack from the list of
the available libraries
56
57
58 Select "Java Compiler" from the left and change the version from 1.5 to 1.6
59
60
61 Select "Java Build Path" from the left, then "Libraries"
62
63
64 From "Java Build Path 1/2", select "Add JARs..." then android-ngn-stack/libs/simple-xml-
2.3.4.jar , then "OK" to close the window
65
66
67 Click on "OK" to close the window
Setting up Android Permissions
In order to use the framework you must enable some user-permission in your Android manifest.
Open myFirstApp/AndroidManifest.xml , then add this:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
5