5 | | Development Considerations |
6 | | ************************** |
7 | | |
8 | | Let's review various aspects that you need to consider when developing your application. |
9 | | |
10 | | |
11 | | Target Platforms |
12 | | ================ |
13 | | Platform selection will affect all aspects of development, and here we will cover considerations for each platforms that we support. |
| 5 | Development Guidelines and Considerations |
| 6 | ***************************************** |
| 7 | |
| 8 | Development Guidelines |
| 9 | ====================== |
| 10 | |
| 11 | Preparation |
| 12 | ------------ |
| 13 | * **Essential:** Familiarise yourself with SIP. You don't need to be an expert, but SIP knowledge is essential. |
| 14 | * Check out our features in `Datasheet <http://trac.pjsip.org/repos/wiki/PJSIP-Datasheet>`_. Other features may be provided by our `community <http://trac.pjsip.org/repos/wiki/Projects_Using_PJSIP>`_. |
| 15 | * All PJSIP documentation is indexed in our `Trac site <http://trac.pjsip.org/repos>`_. |
| 16 | |
| 17 | |
| 18 | Development |
| 19 | ------------- |
| 20 | * **Essential:** Interactive debugging capability is essential during development |
| 21 | * Start with default settings in `<pj/config_site_sample.h>`. |
| 22 | |
| 23 | Coding Style |
| 24 | ------------- |
| 25 | **Essential:** set your editor to use 8 characters tab size in order to see PJSIP source correctly. |
| 26 | |
| 27 | These below are PJSIP coding style. You don't need to follow it unless you are submitting patches to PJSIP: |
| 28 | |
| 29 | * indentation uses tabs and spaces. Tab size is 8 characters, indentation 4. |
| 30 | * all public API in header file must be documented in Doxygen format. |
| 31 | * other than that, we mostly just use `K & R style <http://en.wikipedia.org/wiki/1_true_brace_style#K.26R_style>`_, which is the only correct style anyway. |
| 32 | |
| 33 | |
| 34 | Deployment |
| 35 | ----------- |
| 36 | * **Essential:** Logging is essential when troubleshooting any problems. The application MUST be equipped with logging capability. Enable PJSIP log at level 5. |
| 37 | |
| 38 | |
| 39 | Platform Consideration |
| 40 | ======================== |
| 41 | Platform selection is usually driven by business motives. The selection will affect all aspects of development, and here we will cover considerations for each platforms that we support. |