Development guidelines
Preparation
Essential: Familiarise yourself with SIP. While there is no need to be an expert, some SIP knowledge is essential.
Check out the features in Features/Datasheet.
Familiarize with the structure of https://docs.pjsip.org. All documentations are hosted here.
Development
Essential: Follow the Getting Started instructions to build PJSIP for your platform.
Essential: Interactive debugging capability is essential during development
Coding Style
Below is the PJSIP coding style. You need to follow it if you are submitting patches to PJSIP:
Indent by 4 characters and use spaces only.
All public API in header file must be documented in Doxygen format.
Use K & R style, which is the only correct style anyway.
The PJSIP distribution includes an .editorconfig file to set indentation to 4 spaces. Check https://editorconfig.org/ to see if your editor supports it or if a plugin needs to be downloaded.
Note
PJSIP indentation scheme was changed to use spaces only since version 2.13.
Deployment
Essential: Logging is essential when troubleshooting any problems. The application MUST be equipped with logging capability. Enable PJSIP log at level 5.
config_site.h
Depending on the platform, you may need to create pjlib/include/pj/config_site.h
file.
This file contains compile-time customizations that are specific for your application, hence this
file is not included in PJSIP distribution.
If you’re using GNU make build system, the ./configure
script will create an empty
config_site.h
if it doesn’t exist.
It is recommended to start with default settings in pjlib/include/pj/config_site_sample.h,
by including this file in your config_site.h
, i.e.:
#include <pj/config_site_sample.h>
The default settings should be good to get you started. You can always optimize later after things are running okay.