Changeset 4772


Ignore:
Timestamp:
Feb 27, 2014 11:48:34 AM (8 years ago)
Author:
bennylp
Message:

Re #1742 (misc): Updated latest pjsip-book and added make install target to install the book to WWWDIR

Location:
pjproject/trunk/doc/pjsip-book
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/doc/pjsip-book/Makefile

    r4762 r4772  
    4545        -rm -rf xml 
    4646        -rm -rf html 
     47 
     48install: 
     49        @if test -z "$(WWWDIR)" ; then \ 
     50          echo WWWDIR is not set; \ 
     51        else \ 
     52          echo Copying html dir to $(WWWDIR)/docs/book-latest/..; \ 
     53          cp -a -f _build/html $(WWWDIR)/docs/book-latest/; \ 
     54          echo Copying PJSUA2Doc.pdf to $(WWWDIR)/docs/book-latest/..; \ 
     55          cp -f _build/latex/PJSUA2Doc.pdf $(WWWDIR)/docs/book-latest/; \ 
     56        fi 
    4757 
    4858xml:    Doxyfile ../../pjsip/include/pjsua2 
  • pjproject/trunk/doc/pjsip-book/consider.rst

    r4763 r4772  
    1  
    21 
    32Development Guidelines and Considerations 
     
    1615Development 
    1716------------- 
     17* **Essential:** Follow the `Getting Started <http://trac.pjsip.org/repos/wiki/Getting-Started>`_ instructions to build PJSIP for your platform. 
    1818* **Essential:** Interactive debugging capability is essential during development 
    19 * Start with default settings in `<pj/config_site_sample.h>`. 
     19* Start with default settings in `<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. 
    2020 
    2121Coding Style 
     
    7373All features except video are expected to work (video is coming soon!). Considerations for Android: 
    7474 
    75 #. You can only use pjsua2 Java binding for this target. 
     75#. You can only use PJSUA2 Java binding for this target. 
    7676#. It has been reported that Android audio device is not so good in general, so some audio tuning may be needed. Echo cancellation also needs to be checked. 
    7777#. This is also a new platform for us.  
     
    104104Windows Phone 8 
    105105--------------- 
    106 Windows Phone 8 (WP8) support is being added to PJSIP version 2.2 and is still under development. Specific considerations for this platform are: 
     106Windows Phone 8 (WP8) support is being added and is still under development on `projects/winphone` branch. Specific considerations for this platform are: 
    107107 
    108108#. WP8 governs specific interaction with WP8 GUI and framework that needs to be followed by application in order to make VoIP call work seamlessly on the device. Some lightweight process will be created by WP8 framework in order for background call to work and PJSIP needs to put its background processing in this process' context. Currently this feature is under development. 
     
    156156 
    157157 
    158 pjsua2 C++ API 
     158PJSUA2 C++ API 
    159159-------------- 
    160160pjsua2 is a new, objected oriented, C++ API created on top of PJSUA-LIB. The API is different than PJSUA-LIB, but it should be even easier to use and it should have better documentation too (such as this book). The pjsua2 API removes most cruxes typically associated with PJSIP, such as the pool and pj_str_t, and add new features such as object persistence so you can save your configs to a file, for example. All data structures are rewritten for more clarity.  
     
    170170 
    171171 
    172 Some considerations on pjsua2 C++ API are: 
     172Some considerations on PJSUA2 C++ API are: 
     173 
    173174#. Instead of returning error, the API uses exception for error reporting 
    174 #. pjsua2 uses standard C++ library 
     175#. It uses standard C++ library (STL) 
    175176#. The performance penalty due to the API abstraction should be negligible on typical modern device 
    176177 
    177178 
    178179 
    179 pjsua2 API for Java, Python, and Others 
     180PJSUA2 API for Java, Python, and Others 
    180181--------------------------------------- 
    181 The pjsua2 API is also available for non-native code via SWIG binding. Configurations for Java and Python are provided with the distribution. Thanks to SWIG, other language bindings may be generated relatively easily. 
     182The PJSUA2 API is also available for non-native code via SWIG binding. Configurations for Java and Python are provided with the distribution. Thanks to SWIG, other language bindings may be generated relatively easily. 
    182183  
    183184The pjsua2 API for non-native code is effectively the same as pjsua2 C++ API. However, unlike C++, you cannot access PJSUA-LIB and the underlying C libraries from the scripting language, hence you are limited to what pjsua2 provides. 
     
    193194NAT Issues 
    194195---------- 
    195  
     196TBD. 
    196197 
    197198TCP Requirement 
     
    205206Latency 
    206207------- 
    207  
     208TBD. 
    208209 
    209210Echo Cancellation 
    210211----------------- 
    211  
    212  
    213  
    214  
     212TBD. 
     213 
     214 
     215 
  • pjproject/trunk/doc/pjsip-book/intro.rst

    r4763 r4772  
    44This documentation is intended for developers looking to develop Session Initiation Protocol (SIP) based client application. Some knowledge on SIP is definitely required, and of course some programming experience. Prior knowledge of PJSUA C API is not needed, although it will probably help. 
    55 
    6 PJSIP libraries provide multi-level APIs to do SIP calls, presence, and instant messaging, as well as handling media and NAT traversal. Knowledge of SIP protocol details (such as the grammar, transaction, dialog, and whatnot) are not required (but it will help a lot!), however you should know how SIP works in general and particularly how to configure SIP clients to, e.g. register to a SIP provider, specify SIP URI to make call to, and so on, to use the module. 
     6PJSIP libraries provide multi-level APIs to do SIP calls, presence, and instant messaging, as well as handling media and NAT traversal. PJSUA2 API is the highest API from PJSIP, on top of PJSUA-LIB API. PJSUA-LIB API itself is a library that unifies SIP, audio/video media, NAT traversal, and client media application best practices into a high level, integrated, and easy to use API. The next chapter will guide you on selecting which API level to use depending on your requirements. 
     7 
     8This documentation can be `viewed online <http://www.pjsip.org/docs/book-latest/html/index.html>`_, or alternatively you can `download the PDF format <http://www.pjsip.org/docs/book-latest/PJSUA2Doc.pdf>`_ for offline viewing. 
    79 
    810Getting Started with PJSIP 
    911============================== 
    10 Check `PJSIP's Features List`_ to make sure that it has the features that you require. 
     12Check `PJSIP Datasheet <http://trac.pjsip.org/repos/wiki/PJSIP-Datasheet>`_ to make sure that it has the features that you require. 
    1113 
    12 .. _`PJSIP's Features List`: http://trac.pjsip.org/repos/wiki/PJSIP-Datasheet 
     14To start using PJSIP, the `Getting Started Guide <http://trac.pjsip.org/repos/wiki/Getting-Started>`_ contains instructions to acquire and build PJSIP on various platforms that we support. 
    1315 
    14 To start using PJSIP, the `Getting Started Guide`_ contains instructions to acquire and build PJSIP on various platforms that we support. 
    15  
    16 .. _`Getting Started Guide`: http://trac.pjsip.org/repos/wiki/Getting-Started  
    1716 
    1817PJSIP Info and Documentation 
     
    2019To get other relevant info and documentations about PJSIP, you can visit: 
    2120 
    22 - `PJSIP General Wiki`_ 
    23 - `PJSIP FAQ`_ 
    24 - `PJSIP Reference Manual`_ - please see Reference Manual section 
    25  
    26 .. _`PJSIP General Wiki`: http://trac.pjsip.org/repos/wiki 
    27 .. _`PJSIP FAQ`: http://trac.pjsip.org/repos/wiki/FAQ 
    28 .. _`PJSIP Reference Manual`: http://trac.pjsip.org/repos/wiki 
     21- `PJSIP General Wiki <http://trac.pjsip.org/repos/wiki>`_ is the home for all documentation 
     22- `PJSIP FAQ <http://trac.pjsip.org/repos/wiki/FAQ>`_ 
     23- `PJSIP Reference Manual <http://trac.pjsip.org/repos/wiki>`_ - please see Reference Manual section 
    2924 
    3025 
  • pjproject/trunk/doc/pjsip-book/intro_pjsua2.rst

    r4763 r4772  
    5151---------- 
    5252For platforms that require polling, the PJSUA2 module provides its own worker thread to poll PJSIP, so it is not necessary to instantiate own your polling thread. Having said that the application should be prepared to have the callbacks called by different thread than the main thread. The PJSUA2 module itself is thread safe. 
     53 
     54Often though, especially if you use PJSUA2 with high level languages such as Python, it is required to disable PJSUA2 internal worker threads by setting EpConfig.uaConfig.threadCnt to 0, because the high level environment doesn't like to be called by external thread (such as PJSIP's worker thread). 
     55 
    5356 
    5457Problems with Garbage Collection 
     
    97100Building PJSUA2 
    98101====================== 
    99 The PJSUA2 C++ library will be built by default by PJSIP build system. 
     102The PJSUA2 C++ library will be built by default by PJSIP build system. Standard C++ library is required. 
    100103 
    101104Building Python and Java SWIG Modules 
     
    106109------------ 
    107110 
     111#. `SWIG <http://www.swig.org>`_ 
    108112#. ``JDK``. 
    109113#. ``Python``, version 2.7 or above is required. 
Note: See TracChangeset for help on using the changeset viewer.