| 1 | |
| 2 | '''Note:''' :: |
| 3 | '''This Python module has been deprecated. Please use the [wiki:Python_SIP_Tutorial newer tutorial] instead''' |
| 4 | |
| 5 | = Getting Started = |
| 6 | |
| 7 | The Python language binding for PJSUA-API is available in PJSIP release 0.5.10 or later. |
| 8 | |
| 9 | |
| 10 | == What is it? == |
| 11 | |
| 12 | '''[/repos/browser/pjproject/trunk/pjsip-apps/src/py_pjsua py_pjsua]''' is a Python module implemented in C language to provide '''[http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-API]''' for [http://www.python.org Python] applications. Using '''[/repos/browser/pjproject/trunk/pjsip-apps/src/py_pjsua py_pjsua]''' enables Python application to exploit the features of PJSIP, for example: |
| 13 | * multiple SIP accounts |
| 14 | * SIP for presence (SIMPLE) and instant messaging |
| 15 | * multiple/unlimited calls |
| 16 | * call hold and transfer (attended or unattended) |
| 17 | * DTMF support |
| 18 | * conferencing with multiple/unlimited sources |
| 19 | * wideband and ultra-wideband audio support |
| 20 | * WAV files playback, playlist, and recording |
| 21 | * adaptive jitter buffer, silence detection, packet lost concealment, etc. |
| 22 | * tone generation |
| 23 | * multiple sound devices (planned) |
| 24 | * ICE support (planned) |
| 25 | * and so on. |
| 26 | |
| 27 | == Status == |
| 28 | |
| 29 | The '''py_pjsua''' module has just been released on 0.5.10 version and therefore it's expected to contain few bugs, so it's still in alpha/beta stage. |
| 30 | |
| 31 | Also since the Python abstraction is created manually (rather than using automated Python abstraction generation tools), it is expected that there will be time lag between introduction of new API in PJSUA-API (the C API) and the implementation in the Python module. |
| 32 | |
| 33 | |
| 34 | == Building py_pjsua Module == |
| 35 | |
| 36 | Using Microsoft Visual Studio projects: |
| 37 | * Open '''pjsip-apps.dsw''' from {{{pjsip-apps\build}}} directory. |
| 38 | * Select '''py_pjsua''' project. |
| 39 | * Build the project |
| 40 | * The Python module will be placed in {{{pjsip-apps\lib}}} directory. |
| 41 | |
| 42 | Using Python build script: |
| 43 | * Go to {{{pjsip-apps/src/py_pjsua}}} directory. |
| 44 | * Run '''{{{'python ./setup.py build'}}}''' |
| 45 | * The Python module will be placed in {{{build}}} directory inside current directory. |
| 46 | * Alternatively run '''{{{'python ./setup.py install'}}}''' to install the '''py_pjsua''' module to Python's site_packages directory. |
| 47 | |
| 48 | |
| 49 | = Developing Python SIP Application = |
| 50 | |
| 51 | == Introduction == |
| 52 | |
| 53 | The Python API is pretty much the same like PJSUA-API - each Python function corresponds to one function in PJSUA-API, therefore one can use [http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-API Documentation] or [wiki:PJSIP_Tutorial PJSUA Tutorial] to learn about the Python API. |
| 54 | |
| 55 | To highlight the similarities between PJSUA-API and the py_pjsua API, below are some sample names: |
| 56 | |
| 57 | {{{ |
| 58 | PJSUA-API: py_pjsua API: |
| 59 | |
| 60 | #include <pjsua-lib/pjsua.h> ==> import py_pjsua |
| 61 | |
| 62 | pjsua_create() ==> py_pjsua.create() |
| 63 | pjsua_init() ==> py_pjsua.init() |
| 64 | |
| 65 | pjsua_call_make_call() ==> py_pjsua.call_make_call() |
| 66 | }}} |
| 67 | |
| 68 | |
| 69 | |
| 70 | |
| 71 | == Sample Application == |
| 72 | |
| 73 | Please see [/repos/browser/pjproject/trunk/pjsip-apps/src/py_pjsua/pjsua_app.py pjsua_app.py] for a sample/simple Python application. |
| 74 | |
| 75 | |
| 76 | == Documentation == |
| 77 | |
| 78 | The documentation for the Python module is integrated with '''[http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-API Documentation]'''. Please follow the step by step on how to use the API there, as well as specific instructions to use each PJSUA feature. |
| 79 | |