= Developing PJSIP for Symbian S60 3rd Edition using Carbide C++ = == Introduction == Previously PJSIP did not support Carbide C++ as the development tools for Symbian target, since Carbide did not import PJSIP's MMP files properly. But with the release of Carbide C++ version 1.2, it seems that Carbide is now able to build PJSIP projects properly. And since it seems that Nokia strongly suggests to use Carbide for the development tools instead of !CodeWarrior, it may worth to write some small documentation to help you get started with developing PJSIP applications on Symbian using this tool. ---- == Requirements == For this tutorial, we will need: - [http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html Symbian S60 3rd Edition Maintenance Release (MR)]. Other SDK versions may work, but I did not test it. - [http://www.forum.nokia.com/info/sw.nokia.com/id/dbb8841d-832c-43a6-be13-f78119a2b4cb.html Carbide C++ version 1.2]. You will need the Developer Edition to do on-device debugging (21 days evaluation is available). - [http://europe.nokia.com/A4144903 Nokia PC Suite] for the connectivity between the device and your PC (I use version 6.85) - Latest PJSIP from SVN trunk - Nokia S60 3rd Edition device (I use Nokia E70, but any S60 3rd Edition device should do, I think) - Nokia data cable for on-device debugging (you can also use Bluetooth connection, but this tutorial will not cover it) ---- == Installations == === SDK and Carbide Installations === Follow the installation instructions in the SDK and Carbide documentation. Please install Symbian SDK on the same drive as PJSIP. === Nokia PC Suite === Install PC Suite, connect your device with the USB cable, and make sure your PC can access your device. Leave PC Suite running with the device connected throughout the session. === PJSIP === Checkout PJSIP from the usual location (see [http://www.pjsip.org/download.htm PJSIP Download page] for details). Fill in your {{{config_site.h}}} with: {{{ #include }}} ---- == Importing PJSIP Projects == Run Carbide C++. When it asks the workspace location, just accept the default value and press OK button: [[Image(carbide-workspace.JPG)]] You will now be presented with Carbide Welcome page. Now we need to import PJSIP's project files (the MMP files) into Carbide's workspace. Select File --> Import from the menu: [[Image(file_import.JPG)]] This dialog below will pop up. Select '''Symbian OS Bld.inf file''' from the list, then press '''Next''' button: [[Image(import.JPG)]] On the next dialog, click '''Browse..''' button to select '''bld.inf''' file from PJSIP's {{{build.symbian}}} directory, then press '''Next''' button: [[Image(import_bld.JPG)]] Then on the SDK selection dialog, select the build configurations that you want to support. For this tutorial, select WINSCW and GCCE from S60 3rd Edition MR SDK, and press '''Next''' button: [[Image(import_sdk.JPG)]] You will then presented with MMP selection dialog. Leave the default selection (normally it should select all MMPs) and press '''Next''': [[Image(import_mmp.JPG)]] The project now is ready to be imported, press the '''Finish''' button: [[Image(import_finished.JPG)]] Carbide is now exporting the MMP files into the workspace and this progress window will be displayed: [[Image(import_creating.JPG)]] Wait for the process to complete. Once it completes, you will see the PJSIP project tree on the bottom left part of the Carbide main window: [[Image(carbide_main.JPG)]] On the '''Problems''' pane (bottom center of the main window) you can see there is one ''Warning'' about duplicate path, but we can ignore this for now. ---- == Building the Projects == First select the build target by selecting '''Project''' --> '''Active Build Configuration''' from main menu, or right clicking the ''Bld.inf'' or ''pjproject'' item from ''Symbian Project Navigator'' pane from the bottom left part of the main window. Select '''Phone Debug (GCCE) [S60_3rd_MR]''' from the menu: [[Image(build_config.JPG)]] Then right click ''Bld.inf'' or ''pjproject'' item from ''Symbian Project Navigator'' pane from the bottom left part of the main window, and select '''Build Target Only''': [[Image(build.JPG)]] Wait for the build process to complete. Once it completes, watch out for any errors in the ''Problems'' pane (at the bottom center). There shouldn't be any errors, although there may be few warnings which I think can be ignored, for now: [[Image(build_problems.JPG)]]