iDoubs v2.x is a beta version of our (Doubango Telecom) VoIP client for iOS (iPhone, iPod Touch and iPad) and MAC OS X and is based on Doubango v2.x while iDoubs v1.x (alpha version) was based on Doubango v1.x.
This new version is now split in two parts: iDoubs v2.x and ios-ngn-stack.
- iDoubs v2.x is the VoIP client and mostly contain UI related code. It depends on ios-ngn-stack project (see below).
- ios-ngn-stack is our NGN (Next Generation Network) Framework and contains Objective-C wrappers (around ANSI-C) for Doubango. This framework contains wrappers for the protocol stacks (SIP, MSRP, HTTP, RTP ...), utility services (Database storage, Call log management, Address Book ...).
To build the source code you will need: xcode 3.x or later, iOS SDK 4.x or later and git tools.
-
open new Terminal (Applications => Utilities => Terminal)
-
checkout doubango source code. Important: The destination folder MUST be named doubango:
git clone https://github.com/DoubangoTelecom/doubango.git doubango
- checkout idoubs source code. Important: The destination folder MUST be named idoubs:
git clone https://github.com/DoubangoTelecom/idoubs.git idoubs
This section explain how to build Doubango, the NGN Stack and iDoubs from xcode.
As stated in the Introduction section, iDoubs v2.x depends on the NGN Stack which means that you MUST build this target before building iDoubs target.
Note: iDoubs project already contains a reference to the NGN Stack (ios-ngn-stack) which means that you can build it directly from iDoubs. This is not advised if you are building iDoubs for the first time.
- open idoubs/ios-ngn-stack/ios-ngn-stack.xcodeproj
- Very Important: make sure that the right base sdk is selected (iOS SDK x.y): Right click on ios-ngn-stack => Get Info => Build tab => From Architectures group, adjust Base SDK and select "iOS x.y" where "x.y" is your preferred version of the iOS SDK
- build Doubango: Right click on Doubango aggregated target and select Build Doubango
- build the NGN stack: Right click on ios-ngn-stack target and select Build ios-ngn-stack
You are now ready to build the test applications if you want:
- testRegistration: to test SIP registration
- testAudioCall: to test audio calls
- testVideoCall: to test video calls
- testMessaging: to test Instant Messaging (SIP Pager Mode IM)
iDoubs is the VoIP client and depends on ios-ngn-stack target.
- open idoubs/ios-idoubs/idoubs.xcodeproj
- Very Important: make sure that the right base sdk is selected (iOS SDK x.y): Right click on ios-ngn-stack => Get Info => Build tab => From Architectures group adjust Base SDK and select "iOS x.y" where "x.y" is your preferred version of the iOS SDK
- build Doubango: Right click on Doubango aggregated target and select Build Doubango
- build the NGN stack: Right click on Ngn target and select Build Ngn
- build the iDoubs: Right click on iDoubs target and select Build iDoubs
Et voilà. You can now run iDoubs.
**Note:** As you have remarked, it's possible to build both the NGN stack and Doubango projects from **iDoubs**.
Before starting to use iDoubs, please take a look at the user guide in order to understand how to configure the client.
If you are license owner then, you can build a non-GPL version of Doubango and iDoubs like this:
-
open idoubs/ios-idoubs/idoubs.xcodeproj
-
Right click on idoubs target => Get Info => Build tab => Other Linker Flags then:
- remove -lx264
- remove -lg729b if you don't have required licenses
- replace -lswscale, -lavcore, -lavutil and -lavcodec with -lswscale-lgpl, -lavcore-lgpl, -lavutil-lgpl and -lavcodec-lgpl respectively
-
open idoubs/ios-ngn-stack/ios-ngn-stack.xcodeproj
-
Right click on ios-ngn-stack target => Get Info => Build tab => Other C Flags then:
- replace -DHAVE_H264=1 with -DHAVE_H264=0
- replace -DHAVE_G729=1 with -DHAVE_G729=0 if you don't have required licenses
If you are license owner then, you can build a commercial version of Doubango and iDoubs like this:
-
open idoubs/ios-idoubs/idoubs.xcodeproj
-
Right click on idoubs target => Get Info => Build tab => Other Linker Flags then:
- remove -lx264
- remove -lg729b if you don't have required licenses
- remove -lswscale, -lavcore, -lavutil and -lavcodec
-
open idoubs/ios-ngn-stack/ios-ngn-stack.xcodeproj
-
Right click on ios-ngn-stack target => Get Info => Build tab => Other C Flags then:
- replace -DHAVE_H264=1 with -DHAVE_H264=0
- replace -DHAVE_FFMPEG=1 with -DHAVE_FFMPEG=0
- replace -DHAVE_SWSCALE=1 with -DHAVE_SWSCALE=0
- replace -DHAVE_G729=1 with -DHAVE_G729=0 if you don't have required licenses
- Place your application code in the same folder than iDoubs: mydoubs/
iPhone/idoubs/branches/2.0/. This is not required but it's easier to avoid changing the paths by yourself.
- Add ios-ngn-stack project as reference to your xcode project as explained at http://www.weston-fl.com/blog/?p=2429
- Copy all "User-Defined" settings from iDoubs project (NOT target)
to your application project
- Copy "Other Linker Flags" value from iDoubs target (NOT project) to
you application target
- Same as (4) for "Header Search Paths"
- Same as (4) for "Library Search Paths"
Please check our issue tracker or developer group if you have any problem.