Changeset 2738 for pjproject


Ignore:
Timestamp:
Jun 3, 2009 8:40:24 AM (15 years ago)
Author:
bennylp
Message:

Misc (ticket #838): removed all Python doxygen comments/documentations from pjsua.h as these has been deprecated by new Python abstraction long time ago

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r2724 r2738  
    5656 
    5757/** 
    58  * @defgroup PJSUA_LIB PJSUA API - High Level Softphone API for C/C++ and Python 
     58 * @defgroup PJSUA_LIB PJSUA API - High Level Softphone API 
    5959 * @brief Very high level API for constructing SIP UA applications. 
    6060 * @{ 
    6161 * 
    62  * @section pjsua_api_intro A SIP User Agent API for C/C++ and Python 
    63  * 
    64  * PJSUA API is very high level API, available for C/C++ and Python language, 
    65  * for constructing SIP multimedia user agent 
     62 * @section pjsua_api_intro A SIP User Agent API for C/C++ 
     63 * 
     64 * PJSUA API is very high level API for constructing SIP multimedia user agent 
    6665 * applications. It wraps together the signaling and media functionalities 
    6766 * into an easy to use call API, provides account management, buddy 
     
    8685 * page. 
    8786 * 
    88  * @subsection pjsua_for_python Python Binding 
    89  * 
    90  * The Python binding for PJSUA-API is implemented by <b>py_pjsua</b> 
    91  * module, in <tt>pjsip-apps/py_pjsua</tt> directory. This module is 
    92  * built by building <tt>py_pjsua</tt> project in <tt>pjsip_apps</tt> 
    93  * Visual Studio workspace, or by invoking the usual <tt>setup.py</tt> 
    94  * Python installer script. 
    95  * 
    96  * The Python script then can import the PJSUA-API Python module by 
    97  * using <b>import py_pjsua</b> construct as usual. 
    98  * 
    99  * 
    10087 * @section pjsua_samples 
    10188 * 
    102  * Few samples are provided both in C and Python. 
     89 * Few samples are provided: 
    10390 * 
    10491  - @ref page_pjsip_sample_simple_pjsuaua_c\n 
     
    11299    available in PJSIP and PJMEDIA.\n 
    113100 
    114   - Python sample\n 
    115     For a real simple Python sample application, have a look at 
    116     <A HREF="http://www.pjsip.org/trac/browser/pjproject/trunk/pjsip-apps/src/py_pjsua/pjsua_app.py"> 
    117     <tt>pjsip-apps/src/py_pjsua/pjsua_app.py</tt></A> file. 
    118  
    119101 * @section root_using_pjsua_lib Using PJSUA API 
    120102 * 
     
    143125 * @subsection creating_pjsua_lib Creating PJSUA 
    144126 * 
    145  * Before anything else, application must create PJSUA by calling #pjsua_create() 
    146  * (or <tt>py_pjsua.create()</tt> from Python). 
     127 * Before anything else, application must create PJSUA by calling  
     128 * #pjsua_create(). 
    147129 * This, among other things, will initialize PJLIB, which is crucial before  
    148130 * any PJLIB functions can be called, PJLIB-UTIL, and create a SIP endpoint. 
     
    207189 * 
    208190 * 
    209  * @subsubsection init_pjsua_lib_python PJSUA-LIB Initialization (in Python) 
    210  * Sample code to initialize PJSUA in Python code: 
    211  
    212  \code 
    213  
    214 import py_pjsua 
    215  
    216 # 
    217 # Initialize pjsua. 
    218 # 
    219 def app_init(): 
    220         # Create pjsua before anything else 
    221         status = py_pjsua.create() 
    222         if status != 0: 
    223                 err_exit("pjsua create() error", status) 
    224  
    225         # We use default logging config for this sample 
    226         log_cfg = py_pjsua.logging_config_default() 
    227  
    228         # Create and initialize pjsua config 
    229         # Note: for this Python module, thread_cnt must be 0 since Python 
    230         #       doesn't like to be called from alien thread (pjsua's thread 
    231         #       in this case)        
    232         ua_cfg = py_pjsua.config_default() 
    233         ua_cfg.thread_cnt = 0 
    234         ua_cfg.user_agent = "PJSUA/Python 0.1" 
    235  
    236         # Override callbacks. At the very least application would want to 
    237         # override the call callbacks in pjsua_config 
    238         ua_cfg.cb.on_incoming_call = ... 
    239         ua_cfg.cb.on_call_state = ... 
    240  
    241         # Use default media config for this cample 
    242         med_cfg = py_pjsua.media_config_default() 
    243  
    244         # 
    245         # Initialize pjsua!! 
    246         # 
    247         status = py_pjsua.init(ua_cfg, log_cfg, med_cfg) 
    248         if status != 0: 
    249                 err_exit("pjsua init() error", status) 
    250  
    251  
    252  
    253 # Utility: display PJ error and exit 
    254 # 
    255 def err_exit(title, rc): 
    256         py_pjsua.perror(THIS_FILE, title, rc) 
    257         exit(1) 
    258  
    259  \endcode 
    260191 
    261192 
     
    315246 \endcode 
    316247 
    317  * @subsubsection starting_pjsua_lib_python Python Example for starting PJSUA 
    318  * For Python, starting PJSUA-LIB takes one more step, that is to initialize 
    319  * Python worker thread to poll PJSUA-LIB. This step is necessary because 
    320  * Python doesn't like it when it is called by an "alien" thread (that is, 
    321  * thread that is not created using Python API). 
    322  * 
    323  * Because of this, we cannot use a worker thread in PJSUA-LIB, because then 
    324  * the Python callback will be called by an "alien" thread and this would 
    325  * crash Python (or raise assert() probably). 
    326  * 
    327  * So because worker thread is disabled, we need to create a worker thread 
    328  * in Python. Note that this may not be necessary if we're creating a 
    329  * GUI application, because then we can attach, for example, a GUI timer 
    330  * object to poll the PJSUA-LIB. But because we're creating a console  
    331  * application which will block at <tt>sys.stdin.readline()</tt>, we need 
    332  * to have a worker thread to poll PJSUA-LIB. 
    333  
    334  \code 
    335  
    336 import thread 
    337  
    338 C_QUIT = 0 
    339  
    340  
    341 def app_start(): 
    342         # Done with initialization, start pjsua!! 
    343         # 
    344         status = py_pjsua.start() 
    345         if status != 0: 
    346                 py_pjsua.destroy() 
    347                 err_exit("Error starting pjsua!", status) 
    348  
    349         # Start worker thread 
    350         thr = thread.start_new(worker_thread_main, (0,)) 
    351      
    352         print "PJSUA Started!!" 
    353  
    354 # 
    355 # Worker thread function. 
    356 # Python doesn't like it when it's called from an alien thread 
    357 # (pjsua's worker thread, in this case), so for Python we must 
    358 # disable worker thread in pjsua and poll pjsua from Python instead. 
    359 # 
    360 def worker_thread_main(arg): 
    361         global C_QUIT 
    362         thread_desc = 0 
    363         status = py_pjsua.thread_register("python worker", thread_desc) 
    364         if status != 0: 
    365                 py_pjsua.perror(THIS_FILE, "Error registering thread", status) 
    366         else: 
    367                 while C_QUIT == 0: 
    368                         py_pjsua.handle_events(50) 
    369                 print "Worker thread quitting.." 
    370                 C_QUIT = 2 
    371  
    372  
    373  \endcode 
    374248 */ 
    375249 
     
    436310 * #pjsua_init(). Application must call #pjsua_logging_config_default() to 
    437311 * initialize this structure with the default values. 
    438  * 
    439  * \par Sample Python Syntax: 
    440  * \code 
    441     # Python type: py_pjsua.Logging_Config 
    442   
    443     log_cfg = py_pjsua.logging_config_default() 
    444     log_cfg.level = 4 
    445  * \endcode 
    446312 */ 
    447313typedef struct pjsua_logging_config 
     
    486352     * application specific device. This function will be called for 
    487353     * log messages on input verbosity level. 
    488      * 
    489      * \par Sample Python Syntax: 
    490      * \code 
    491      # level:   integer 
    492      # data:    string 
    493      # len:     integer 
    494  
    495      def cb(level, data, len): 
    496             print data, 
    497      * \endcode 
    498354     */ 
    499355    void       (*cb)(int level, const char *data, int len); 
     
    507363 * 
    508364 * @param cfg   The logging config to be initialized. 
    509  * 
    510  * \par Python Syntax: 
    511  * The Python function instantiates and initialize the logging config: 
    512  * \code 
    513  logging_cfg = py_pjsua.logging_config_default() 
    514  * \endcode 
    515365 */ 
    516366PJ_DECL(void) pjsua_logging_config_default(pjsua_logging_config *cfg); 
     
    523373 * @param dst       Destination config. 
    524374 * @param src       Source config. 
    525  * 
    526  * \par Python Syntax: 
    527  * Not available (for now). Ideally we should be able to just assign 
    528  * one config to another, but this has not been tested. 
    529375 */ 
    530376PJ_DECL(void) pjsua_logging_config_dup(pj_pool_t *pool, 
     
    538384 * although definitely application would want to implement some of 
    539385 * the important callbacks (such as \a on_incoming_call). 
    540  * 
    541  * \par Python Syntax: 
    542  * This callback structure is embedded on pjsua_config structure. 
    543386 */ 
    544387typedef struct pjsua_callback 
     
    551394     * @param call_id   The call index. 
    552395     * @param e         Event which causes the call state to change. 
    553      * 
    554      * \par Python Syntax: 
    555      * \code 
    556      # call_id: integer 
    557      # e:       an opaque object 
    558  
    559      def on_call_state(call_id, e): 
    560             return 
    561      * \endcode 
    562396     */ 
    563397    void (*on_call_state)(pjsua_call_id call_id, pjsip_event *e); 
     
    570404     *                  the call. 
    571405     * @param rdata     The incoming INVITE request. 
    572      * 
    573      * \par Python Syntax: 
    574      * \code 
    575      # acc_id:  integer 
    576      # call_id: integer 
    577      # rdata:   an opaque object 
    578  
    579      def on_incoming_call(acc_id, call_id, rdata): 
    580             return 
    581      * \endcode 
    582406     */ 
    583407    void (*on_incoming_call)(pjsua_acc_id acc_id, pjsua_call_id call_id, 
     
    607431     * 
    608432     * @param call_id   The call index. 
    609      * 
    610      * \par Python Syntax: 
    611      * \code 
    612      # call_id: integer 
    613  
    614      def on_call_media_state(call_id): 
    615             return 
    616      * \endcode 
    617433     */ 
    618434    void (*on_call_media_state)(pjsua_call_id call_id); 
     
    632448     *                      point to different media port to be registered 
    633449     *                      to the conference bridge. 
    634      * 
    635      * \par Python: 
    636      * Not applicable.  
    637450     */ 
    638451    void (*on_stream_created)(pjsua_call_id call_id,  
     
    648461     * @param sess          Media session for the call. 
    649462     * @param stream_idx    Stream index in the media session. 
    650      * 
    651      * \par Python: 
    652      * Not applicable.  
    653463     */ 
    654464    void (*on_stream_destroyed)(pjsua_call_id call_id, 
     
    661471     * @param call_id   The call index. 
    662472     * @param digit     DTMF ASCII digit. 
    663      * 
    664      * \par Python Syntax: 
    665      * \code 
    666      # call_id: integer 
    667      # digit:   digit string 
    668  
    669      def on_dtmf_digit(call_id, digit): 
    670             return 
    671      * \endcode 
    672473     */ 
    673474    void (*on_dtmf_digit)(pjsua_call_id call_id, int digit); 
     
    685486     * @param code      Status code to be returned for the call transfer 
    686487     *                  request. On input, it contains status code 200. 
    687      * 
    688      * \par Python Syntax: 
    689      * \code 
    690      # call_id: integer 
    691      # dst:     string 
    692      # code:    integer 
    693  
    694      def on_call_transfer_request(call_id, dst, code): 
    695             return code 
    696  
    697      * \endcode  
    698488     */ 
    699489    void (*on_call_transfer_request)(pjsua_call_id call_id, 
     
    717507     *                      to receie further notification (for example, 
    718508     *                      after it hangs up the call). 
    719      * 
    720      * \par Python Syntax: 
    721      * \code 
    722      # call_id: integer 
    723      # st_code: integer 
    724      # st_text: string 
    725      # final:   integer 
    726      # cont:    integer 
    727  
    728      # return:  cont 
    729  
    730      def on_call_transfer_status(call_id, st_code, st_text, final, cont): 
    731             return cont 
    732      * \endcode 
    733509     */ 
    734510    void (*on_call_transfer_status)(pjsua_call_id call_id, 
     
    747523     *                      should only return a final status (200-699). 
    748524     * @param st_text       Optional status text to be set by application. 
    749      * 
    750      * \par Python Syntax: 
    751      * \code 
    752      # call_id: integer 
    753      # rdata:   an opaque object 
    754      # st_code: integer 
    755      # st_text: string 
    756  
    757      # return:  (st_code, st_text) tuple 
    758  
    759      def on_call_replace_request(call_id, rdata, st_code, st_text): 
    760             return st_code, st_text 
    761      * \endcode 
    762525     */ 
    763526    void (*on_call_replace_request)(pjsua_call_id call_id, 
     
    778541     * @param new_call_id   The new call. 
    779542     * @param rdata         The incoming INVITE with Replaces request. 
    780      * 
    781      * \par Python Syntax: 
    782      * \code 
    783      # old_call_id: integer 
    784      # new_call_id: integer 
    785  
    786      def on_call_replaced(old_call_id, new_call_id): 
    787             return 
    788      * \endcode 
    789543     */ 
    790544    void (*on_call_replaced)(pjsua_call_id old_call_id, 
     
    798552     * 
    799553     * @param acc_id        Account ID. 
    800      * 
    801      * \par Python Syntax: 
    802      * \code 
    803      # acc_id:  account ID (integer) 
    804  
    805      def on_reg_state(acc_id): 
    806             return 
    807      * \endcode 
    808554     */ 
    809555    void (*on_reg_state)(pjsua_acc_id acc_id); 
     
    887633     * 
    888634     * @param buddy_id      The buddy id. 
    889      * 
    890      * \par Python Syntax: 
    891      * \code 
    892      # buddy_id:    integer 
    893  
    894      def on_buddy_state(buddy_id): 
    895             return 
    896      * \endcode 
    897635     */ 
    898636    void (*on_buddy_state)(pjsua_buddy_id buddy_id); 
     
    914652     * @param mime_type     MIME type of the message. 
    915653     * @param body          The message content. 
    916      * 
    917      * \par Python Syntax: 
    918      * \code 
    919      # call_id:     integer 
    920      # from:        string 
    921      # to:          string 
    922      # contact:     string 
    923      # mime_type:   string 
    924      # body:        string 
    925      # acc_id:      integer 
    926  
    927      def on_pager(call_id, from, to, contact, mime_type, body): 
    928             return 
    929      * \endcode 
    930654     */ 
    931655    void (*on_pager)(pjsua_call_id call_id, const pj_str_t *from, 
     
    967691     * @param status        Delivery status. 
    968692     * @param reason        Delivery status reason. 
    969      * 
    970      * \par Python Syntax 
    971      * \code 
    972      # call_id:     integer 
    973      # to:          string 
    974      # body:        string 
    975      # user_data:   string 
    976      # status:      integer 
    977      # reason:      string 
    978      # acc_id:      integer 
    979  
    980      def on_pager_status(call_id, to, body, user_data, status, reason): 
    981             return 
    982      * \endcode 
    983693     */ 
    984694    void (*on_pager_status)(pjsua_call_id call_id, 
     
    1030740     * @param is_typing     Non-zero if peer is typing, or zero if peer 
    1031741     *                      has stopped typing a message. 
    1032      * 
    1033      * \par Python Syntax 
    1034      * \code 
    1035      # call_id:     string 
    1036      # from:        string 
    1037      # to:          string 
    1038      # contact:     string 
    1039      # is_typing:   integer 
    1040  
    1041      def on_typing(call_id, from, to, contact, is_typing): 
    1042             return 
    1043      * \endcode 
    1044742     */ 
    1045743    void (*on_typing)(pjsua_call_id call_id, const pj_str_t *from, 
     
    1134832 * Before setting the values, application must call #pjsua_config_default() 
    1135833 * to initialize this structure with the default values. 
    1136  * 
    1137  * \par Python Sample Syntax: 
    1138  * The pjsua_config type in Python is <tt>py_pjsua.Config</tt>. Application 
    1139  * creates the instance by calling <tt>py_pjsua.config_default()</tt>: 
    1140  * \code 
    1141     cfg = py_pjsua.config_default() 
    1142  * \endcode 
    1143834 */ 
    1144835typedef struct pjsua_config 
     
    13131004 * 
    13141005 * @param cfg   pjsua config to be initialized. 
    1315  * 
    1316  * \par Python Sample Syntax: 
    1317  * The corresponding Python function creates an instance of the config and 
    1318  * initializes it to the default settings: 
    1319  * \code 
    1320     cfg = py_pjsua.config_default() 
    1321  * \endcode 
    1322  
    13231006 */ 
    13241007PJ_DECL(void) pjsua_config_default(pjsua_config *cfg); 
     
    13491032 * Application MUST call #pjsua_msg_data_init() to initialize this 
    13501033 * structure before setting its values. 
    1351  * 
    1352  * \par Python Syntax 
    1353  * The data type in Python is <tt>py_pjsua.Msg_Data</tt>. Application is 
    1354  * recommended to instantiate the structure by using this construct: 
    1355  * \code 
    1356     msg_data = py_pjsua.msg_data_init() 
    1357  * \endcode 
    13581034 */ 
    13591035struct pjsua_msg_data 
     
    13641040     * or from temporary local variable, and add the header using 
    13651041     * linked list operation. See pjsip_apps.c for some sample codes. 
    1366      * 
    1367      * \par Python: 
    1368      * This field is implemented as string linked-list in Python, where each 
    1369      * string describes the header. For example: 
    1370      \code 
    1371         msg_data = py_pjsua.Msg_Data() 
    1372         msg_data.hdr_list = ["Subject: Hello py_pjsua!", "Priority: very low"] 
    1373      \endcode 
    13741042     */ 
    13751043    pjsip_hdr   hdr_list; 
     
    13921060 * 
    13931061 * @param msg_data  Message data to be initialized. 
    1394  * 
    1395  * \par Python 
    1396  * The corresponding Python function creates and initializes the structure: 
    1397  * \code 
    1398     msg_data = py_pjsua.msg_data_init() 
    1399  * \endcode 
    14001062 */ 
    14011063PJ_DECL(void) pjsua_msg_data_init(pjsua_msg_data *msg_data); 
     
    14091071 * 
    14101072 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1411  * 
    1412  * \par Python: 
    1413  * \code 
    1414     status = py_pjsua.create() 
    1415  * \endcode 
    14161073 */ 
    14171074PJ_DECL(pj_status_t) pjsua_create(void); 
     
    14341091 * 
    14351092 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1436  * 
    1437  * \par Python: 
    1438  * The function is similar in Python: 
    1439  * \code 
    1440     status = py_pjsua.init(ua_cfg, log_cfg, media_cfg) 
    1441  * \endcode 
    1442  * Note that \a ua_cfg, \a log_cfg, and \a media_cfg are optional, and 
    1443  * the Python script may pass None if it doesn't want to configure the  
    1444  * setting. 
    14451093 */ 
    14461094PJ_DECL(pj_status_t) pjsua_init(const pjsua_config *ua_cfg, 
     
    14571105 * 
    14581106 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1459  * 
    1460  * \par Python: 
    1461  * The function is similar in Python: 
    1462  * \code 
    1463     status = py_pjsua.start() 
    1464  * \endcode 
    14651107 */ 
    14661108PJ_DECL(pj_status_t) pjsua_start(void); 
     
    14791121 * 
    14801122 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1481  * 
    1482  * \par Python: 
    1483  * The function is similar in Python: 
    1484  * \code 
    1485     status = py_pjsua.destroy() 
    1486  * \endcode 
    14871123 */ 
    14881124PJ_DECL(pj_status_t) pjsua_destroy(void); 
     
    15021138 *          poll. Negative value indicates error, and application 
    15031139 *          can retrieve the error as (status = -return_value). 
    1504  * 
    1505  * \par Python: 
    1506  * The function is similar in Python: 
    1507  * \code 
    1508     n = py_pjsua.handle_events(msec_timeout) 
    1509  * \endcode 
    15101140 */ 
    15111141PJ_DECL(int) pjsua_handle_events(unsigned msec_timeout); 
     
    15211151 * 
    15221152 * @return              The pool, or NULL when there's no memory. 
    1523  * 
    1524  * \par Python: 
    1525  * Python script may also create a pool object from the script: 
    1526  * \code 
    1527     pool = py_pjsua.pool_create(name, init_size, increment) 
    1528  * \endcode 
    15291153 */ 
    15301154PJ_DECL(pj_pool_t*) pjsua_pool_create(const char *name, pj_size_t init_size, 
     
    15391163 * 
    15401164 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1541  * 
    1542  * \par Python: 
    1543  * The function is similar in Python: 
    1544  * \code 
    1545     status = py_pjsua.reconfigure_logging(log_cfg) 
    1546  * \endcode 
    15471165 */ 
    15481166PJ_DECL(pj_status_t) pjsua_reconfigure_logging(const pjsua_logging_config *c); 
     
    15551173 *  
    15561174 * @return              SIP endpoint instance. 
    1557  * 
    1558  * \par Python: 
    1559  * Application may retrieve the SIP endpoint instance: 
    1560  * \code 
    1561     endpt = py_pjsua.get_pjsip_endpt() 
    1562  * \endcode 
    1563  * However currently the object is just an opaque object and does not have 
    1564  * any use for Python scripts. 
    15651175 */ 
    15661176PJ_DECL(pjsip_endpoint*) pjsua_get_pjsip_endpt(void); 
     
    15711181 * 
    15721182 * @return              Media endpoint instance. 
    1573  * 
    1574  * \par Python: 
    1575  * Application may retrieve the media endpoint instance: 
    1576  * \code 
    1577     endpt = py_pjsua.get_pjmedia_endpt() 
    1578  * \endcode 
    1579  * However currently the object is just an opaque object and does not have 
    1580  * any use for Python scripts. 
    15811183 */ 
    15821184PJ_DECL(pjmedia_endpt*) pjsua_get_pjmedia_endpt(void); 
     
    15871189 * 
    15881190 * @return              Pool factory currently used by PJSUA. 
    1589  * 
    1590  * \par Python: 
    1591  * Application may retrieve the pool factory instance: 
    1592  * \code 
    1593     endpt = py_pjsua.get_pool_factory() 
    1594  * \endcode 
    1595  * However currently the object is just an opaque object and does not have 
    1596  * any use for Python scripts. 
    15971191 */ 
    15981192PJ_DECL(pj_pool_factory*) pjsua_get_pool_factory(void); 
     
    16501244 * 
    16511245 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1652  * 
    1653  * \par Python: 
    1654  * \code 
    1655     status = py_pjsua.verify_sip_url(url) 
    1656  * \endcode 
    16571246 */ 
    16581247PJ_DECL(pj_status_t) pjsua_verify_sip_url(const char *url); 
     
    16661255 * @param title         Message title for the error. 
    16671256 * @param status        Status code. 
    1668  * 
    1669  * \par Python: 
    1670  * \code 
    1671     py_pjsua.perror(sender, title, status) 
    1672  * \endcode 
    16731257 */ 
    16741258PJ_DECL(void) pjsua_perror(const char *sender, const char *title,  
     
    17171301 * MUST call #pjsua_transport_config_default() to initialize its 
    17181302 * values with default settings. 
    1719  * 
    1720  * \par Python: 
    1721  * The data type in Python is <tt>py_pjsua.Transport_Config</tt>, 
    1722  * although application can just do this to create the instance: 
    1723  * \code 
    1724     transport_cfg = py_pjsua.transport_config_default() 
    1725  * \endcode 
    17261303 */ 
    17271304typedef struct pjsua_transport_config 
     
    17731350 * 
    17741351 * @param cfg       The UDP config to be initialized. 
    1775  * 
    1776  * \par Python: 
    1777  * The corresponding Python function is rather different: 
    1778  * \code 
    1779     transport_cfg = py_pjsua.transport_config_default() 
    1780  * \endcode 
    17811352 */ 
    17821353PJ_DECL(void) pjsua_transport_config_default(pjsua_transport_config *cfg); 
     
    17891360 * @param dst           The destination config. 
    17901361 * @param src           The source config. 
    1791  * 
    1792  * \par Python: 
    1793  * Not applicable. One should be able to just copy one variable instance 
    1794  * to another in Python. 
    17951362 */ 
    17961363PJ_DECL(void) pjsua_transport_config_dup(pj_pool_t *pool, 
     
    18021369 * This structure describes transport information returned by 
    18031370 * #pjsua_transport_get_info() function. 
    1804  * 
    1805  * \par Python: 
    1806  * The corresponding data type in Python is <tt>py_pjsua.Transport_Info</tt>. 
    18071371 */ 
    18081372typedef struct pjsua_transport_info 
     
    18661430 * 
    18671431 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1868  * 
    1869  * \par Python: 
    1870  * The corresponding Python function returns (status,id) tuple: 
    1871  * \code 
    1872     status, transport_id = py_pjsua.transport_create(type, cfg) 
    1873  * \endcode 
    18741432 */ 
    18751433PJ_DECL(pj_status_t) pjsua_transport_create(pjsip_transport_type_e type, 
     
    18861444 * 
    18871445 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1888  * 
    1889  * \par Python: 
    1890  * Not applicable (for now), because one cannot create a custom transport 
    1891  * from Python script. 
    18921446 */ 
    18931447PJ_DECL(pj_status_t) pjsua_transport_register(pjsip_transport *tp, 
     
    19061460 * 
    19071461 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1908  * 
    1909  * \par Python: 
    1910  * The function returns list of integers representing transport ids: 
    1911  * \code 
    1912     [int] = py_pjsua.enum_transports() 
    1913  * \endcode 
    19141462 */ 
    19151463PJ_DECL(pj_status_t) pjsua_enum_transports( pjsua_transport_id id[], 
     
    19241472 * 
    19251473 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1926  * 
    1927  * \par Python: 
    1928  * \code 
    1929     transport_info = py_pjsua.transport_get_info(id) 
    1930  * \endcode 
    1931  * The Python function returns None on error. 
    19321474 */ 
    19331475PJ_DECL(pj_status_t) pjsua_transport_get_info(pjsua_transport_id id, 
     
    19451487 * 
    19461488 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1947  * 
    1948  * \par Python: 
    1949  * \code 
    1950     status = py_pjsua.transport_set_enable(id, enabled) 
    1951  * \endcode 
    19521489 */ 
    19531490PJ_DECL(pj_status_t) pjsua_transport_set_enable(pjsua_transport_id id, 
     
    19681505 * 
    19691506 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    1970  * 
    1971  * \par Python: 
    1972  * \code 
    1973     status = py_pjsua.transport_close(id, force) 
    1974  * \endcode 
    19751507 */ 
    19761508PJ_DECL(pj_status_t) pjsua_transport_close( pjsua_transport_id id, 
     
    20741606 * adding a new account with #pjsua_acc_add(). Application MUST initialize 
    20751607 * this structure first by calling #pjsua_acc_config_default(). 
    2076  * 
    2077  * \par Python: 
    2078  * The data type in Python is <tt>py_pjsua.Acc_Config</tt>, but normally 
    2079  * application can just use the snippet below to create and initialize 
    2080  * the account config: 
    2081  * \code 
    2082     acc_cfg = py_pjsua.acc_config_default() 
    2083  * \endcode 
    20841608 */ 
    20851609typedef struct pjsua_acc_config 
     
    21641688    /** 
    21651689     * Number of proxies in the proxy array below. 
    2166      * 
    2167      * \par Python: 
    2168      * Not applicable, as \a proxy is implemented as list of strings. 
    21691690     */ 
    21701691    unsigned        proxy_cnt; 
     
    21821703     * then these account proxies will be placed after the global outbound 
    21831704     * proxies in the routeset. 
    2184      * 
    2185      * \par Python: 
    2186      * This will be list of strings. 
    21871705     */ 
    21881706    pj_str_t        proxy[PJSUA_ACC_MAX_PROXIES]; 
     
    21961714    /**  
    21971715     * Number of credentials in the credential array. 
    2198      * 
    2199      * \par Python: 
    2200      * Not applicable, since \a cred_info is a list of credentials. 
    22011716     */ 
    22021717    unsigned        cred_count; 
     
    22081723     * example when the requests are expected to be challenged by the 
    22091724     * proxies in the route set. 
    2210      * 
    2211      * \par Python: 
    2212      * This field is a list of credentials. 
    22131725     */ 
    22141726    pjsip_cred_info cred_info[PJSUA_ACC_MAX_PROXIES]; 
     
    22891801 * 
    22901802 * @param cfg       The account config to be initialized. 
    2291  * 
    2292  * \par Python: 
    2293  * In Python, this function both creates and initializes the account 
    2294  * config: 
    2295  * \code 
    2296     acc_cfg = py_pjsua.acc_config_default() 
    2297  * \endcode 
    22981803 */ 
    22991804PJ_DECL(void) pjsua_acc_config_default(pjsua_acc_config *cfg); 
     
    23151820 * Account info. Application can query account info by calling  
    23161821 * #pjsua_acc_get_info(). 
    2317  * 
    2318  * \par Python: 
    2319  * The data type in Python is <tt>py_pjsua.Acc_Info</tt>. 
    23201822 */ 
    23211823typedef struct pjsua_acc_info 
     
    23871889 * 
    23881890 * @return              Current number of accounts. 
    2389  * 
    2390  * \par Python: 
    2391  * \code 
    2392     count = py_pjsua.acc_get_count() 
    2393  * \endcode 
    23941891 */ 
    23951892PJ_DECL(unsigned) pjsua_acc_get_count(void); 
     
    24021899 * 
    24031900 * @return              Non-zero if account ID is valid. 
    2404  * 
    2405  * \par Python: 
    2406  * \code 
    2407     is_valid = py_pjsua.acc_is_valid(acc_id) 
    2408  * \endcode 
    24091901 */ 
    24101902PJ_DECL(pj_bool_t) pjsua_acc_is_valid(pjsua_acc_id acc_id); 
     
    24181910 * 
    24191911 * @return              PJ_SUCCESS on success. 
    2420  * 
    2421  * \par Python: 
    2422  * \code 
    2423     status = py_pjsua.acc_set_default(acc_id) 
    2424  * \endcode 
    24251912 */ 
    24261913PJ_DECL(pj_status_t) pjsua_acc_set_default(pjsua_acc_id acc_id); 
     
    24341921 * @return              The default account ID, or PJSUA_INVALID_ID if no 
    24351922 *                      default account is configured. 
    2436  * 
    2437  * \par Python: 
    2438  * \code 
    2439     acc_id = py_pjsua.acc_get_default() 
    2440  * \endcode 
    24411923 */ 
    24421924PJ_DECL(pjsua_acc_id) pjsua_acc_get_default(void); 
     
    24621944 * 
    24631945 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2464  * 
    2465  * \par Python: 
    2466  * The function returns (status, account_id) tuple: 
    2467  * \code 
    2468     status, account_id = py_pjsua.acc_add(acc_cfg, is_default) 
    2469  * \endcode 
    24701946 */ 
    24711947PJ_DECL(pj_status_t) pjsua_acc_add(const pjsua_acc_config *acc_cfg, 
     
    24891965 * 
    24901966 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2491  * 
    2492  * \par Python: 
    2493  * The function returns (status, account_id) tuple: 
    2494  * \code 
    2495     status, account_id = py_pjsua.acc_add_local(tid, is_default) 
    2496  * \endcode 
    24971967 */ 
    24981968PJ_DECL(pj_status_t) pjsua_acc_add_local(pjsua_transport_id tid, 
     
    25312001 * 
    25322002 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2533  * 
    2534  * \par Python: 
    2535  * \code 
    2536     status = py_pjsua.acc_del(acc_id) 
    2537  * \endcode 
    25382003 */ 
    25392004PJ_DECL(pj_status_t) pjsua_acc_del(pjsua_acc_id acc_id); 
     
    25472012 * 
    25482013 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2549  * 
    2550  * \par Python: 
    2551  * \code 
    2552     status = py_pjsua.acc_modify(acc_id, acc_cfg) 
    2553  * \endcode 
    25542014 */ 
    25552015PJ_DECL(pj_status_t) pjsua_acc_modify(pjsua_acc_id acc_id, 
     
    25692029 * 
    25702030 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2571  * 
    2572  * \par Python: 
    2573  * \code 
    2574     status = py_pjsua.acc_set_online_status(acc_id, is_online) 
    2575  * \endcode 
    25762031 */ 
    25772032PJ_DECL(pj_status_t) pjsua_acc_set_online_status(pjsua_acc_id acc_id, 
     
    26092064 * 
    26102065 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2611  * 
    2612  * \par Python: 
    2613  * \code 
    2614     status = py_pjsua.acc_set_registration(acc_id, renew) 
    2615  * \endcode 
    26162066 */ 
    26172067PJ_DECL(pj_status_t) pjsua_acc_set_registration(pjsua_acc_id acc_id,  
     
    26252075 * 
    26262076 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2627  * 
    2628  * \par Python: 
    2629  * \code 
    2630     acc_info = py_pjsua.acc_get_info(acc_id) 
    2631  * \endcode 
    2632  * The function returns None if account ID is not valid. 
    26332077 */ 
    26342078PJ_DECL(pj_status_t) pjsua_acc_get_info(pjsua_acc_id acc_id, 
     
    26482092 * 
    26492093 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2650  * 
    2651  * \par Python: 
    2652  * The function takes no argument and returns list of account Ids: 
    2653  * \code 
    2654   [acc_ids] = py_pjsua.enum_accs() 
    2655  * \endcode 
    26562094 */ 
    26572095PJ_DECL(pj_status_t) pjsua_enum_accs(pjsua_acc_id ids[], 
     
    26672105 * 
    26682106 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2669  * 
    2670  * \par Python: 
    2671  * The function takes no argument and returns list of account infos: 
    2672  * \code 
    2673     [acc_info] = py_pjsua.acc_enum_info() 
    2674  * \endcode 
    26752107 */ 
    26762108PJ_DECL(pj_status_t) pjsua_acc_enum_info( pjsua_acc_info info[], 
     
    26852117 * 
    26862118 * @return              Account id. 
    2687  * 
    2688  * \par Python: 
    2689  * \code 
    2690     acc_id = py_pjsua.acc_find_for_outgoing(url) 
    2691  * \endcode 
    26922119 */ 
    26932120PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_outgoing(const pj_str_t *url); 
     
    27012128 * 
    27022129 * @return              Account id. 
    2703  * 
    2704  * \par Python: 
    2705  * \code 
    2706     acc_id = py_pjsua.acc_find_for_outgoing(url) 
    2707  * \endcode 
    27082130 */ 
    27092131PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_incoming(pjsip_rx_data *rdata); 
     
    27392161 * 
    27402162 * @return              PJ_SUCCESS on success, other on error. 
    2741  * 
    2742  * \par Python: 
    2743  * This function is still experimental in Python: 
    2744  * \code 
    2745     uri = py_pjsua.acc_create_uac_contact(pool, acc_id, uri) 
    2746  * \endcode 
    27472163 */ 
    27482164PJ_DECL(pj_status_t) pjsua_acc_create_uac_contact( pj_pool_t *pool, 
     
    27632179 * 
    27642180 * @return              PJ_SUCCESS on success, other on error. 
    2765  * 
    2766  * \par Python: 
    2767  * This function is still experimental in Python: 
    2768  * \code 
    2769     uri = py_pjsua.acc_create_uas_contact(pool, acc_id, rdata) 
    2770  * \endcode 
    27712181 */ 
    27722182PJ_DECL(pj_status_t) pjsua_acc_create_uas_contact( pj_pool_t *pool, 
     
    27922202 * 
    27932203 * @return              PJ_SUCCESS on success. 
    2794  * 
    2795  * \par Python: 
    2796  * Not yet implemented. 
    27972204 */ 
    27982205PJ_DECL(pj_status_t) pjsua_acc_set_transport(pjsua_acc_id acc_id, 
     
    28522259/** 
    28532260 * This structure describes the information and current status of a call. 
    2854  * 
    2855  * \par Python: 
    2856  * The type name is <tt>py_pjsua.Call_Info</tt>. 
    28572261 */ 
    28582262typedef struct pjsua_call_info 
     
    29292333 * 
    29302334 * @return              Maximum number of calls configured. 
    2931  * 
    2932  * \par Python: 
    2933  * \code 
    2934     count = py_pjsua.call_get_max_count() 
    2935  * \endcode 
    29362335 */ 
    29372336PJ_DECL(unsigned) pjsua_call_get_max_count(void); 
     
    29412340 * 
    29422341 * @return              Number of currently active calls. 
    2943  * 
    2944  * \par Python: 
    2945  * \code 
    2946     count = py_pjsua.call_get_count() 
    2947  * \endcode 
    29482342 */ 
    29492343PJ_DECL(unsigned) pjsua_call_get_count(void); 
     
    29582352 * 
    29592353 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2960  * 
    2961  * \par Python: 
    2962  * This function takes no argument and return list of call Ids. 
    2963  * \code 
    2964     [call_ids] = py_pjsua.enum_calls() 
    2965  * \endcode 
    29662354 */ 
    29672355PJ_DECL(pj_status_t) pjsua_enum_calls(pjsua_call_id ids[], 
     
    29832371 * 
    29842372 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    2985  * 
    2986  * \par Python: 
    2987  * The Python function returns (status, call_id) tuple: 
    2988  * \code 
    2989     status, call_id = py_pjsua.call_make_call(acc_id, dst_uri, options,  
    2990                                               user_data, msg_data) 
    2991  * \endcode 
    2992  * Note: the \a user_data in Python function is an integer, and the  
    2993  * \a msg_data can be set to None if not required. 
    29942373 */ 
    29952374PJ_DECL(pj_status_t) pjsua_call_make_call(pjsua_acc_id acc_id, 
     
    30082387 * 
    30092388 * @return              Non-zero if call is active. 
    3010  * 
    3011  * \par Python: 
    3012  * \code 
    3013     bool = py_pjsua.call_is_active(call_id) 
    3014  * \endcode 
    30152389 */ 
    30162390PJ_DECL(pj_bool_t) pjsua_call_is_active(pjsua_call_id call_id); 
     
    30232397 * 
    30242398 * @return              Non-zero if yes. 
    3025  * 
    3026  * \par Python: 
    3027  * \code 
    3028     bool = py_pjsua.call_has_media(call_id) 
    3029  * \endcode 
    30302399 */ 
    30312400PJ_DECL(pj_bool_t) pjsua_call_has_media(pjsua_call_id call_id); 
     
    30652434 * @return              Conference port ID, or PJSUA_INVALID_ID when the  
    30662435 *                      media has not been established or is not active. 
    3067  * 
    3068  * \par Python: 
    3069  * \code 
    3070     slot = py_pjsua.call_get_conf_port(call_id) 
    3071  * \endcode 
    30722436 */ 
    30732437PJ_DECL(pjsua_conf_port_id) pjsua_call_get_conf_port(pjsua_call_id call_id); 
     
    30802444 * 
    30812445 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3082  * 
    3083  * \par Python: 
    3084  * \code 
    3085     call_info = py_pjsua.call_get_info(call_id) 
    3086  * \endcode 
    3087  * \a call_info return value will be set to None if call_id is not valid. 
    30882446 */ 
    30892447PJ_DECL(pj_status_t) pjsua_call_get_info(pjsua_call_id call_id, 
     
    30992457 * 
    31002458 * @return              The user data. 
    3101  * 
    3102  * \par Python: 
    3103  * \code 
    3104     status = py_pjsua.call_set_user_data(call_id, user_data) 
    3105  * \endcode 
    3106  * The \a user_data is an integer in the Python function. 
    31072459 */ 
    31082460PJ_DECL(pj_status_t) pjsua_call_set_user_data(pjsua_call_id call_id, 
     
    31172469 * 
    31182470 * @return              The user data. 
    3119  * 
    3120  * \par Python: 
    3121  * \code 
    3122     user_data = py_pjsua.call_get_user_data(call_id) 
    3123  * \endcode 
    3124  * The \a user_data is an integer. 
    31252471 */ 
    31262472PJ_DECL(void*) pjsua_call_get_user_data(pjsua_call_id call_id); 
     
    31642510 * 
    31652511 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3166  * 
    3167  * \par Python: 
    3168  * \code 
    3169     status = py_pjsua.call_answer(call_id, code, reason, msg_data) 
    3170  * \endcode 
    3171  * Arguments \a reason and \a msg_data may be set to None if not required. 
    31722512 */ 
    31732513PJ_DECL(pj_status_t) pjsua_call_answer(pjsua_call_id call_id,  
     
    31942534 * 
    31952535 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3196  * 
    3197  * \par Python: 
    3198  * \code 
    3199     status = py_pjsua.call_hangup(call_id, code, reason, msg_data) 
    3200  * \endcode 
    3201  * Arguments \a reason and \a msg_data may be set to None if not required. 
    32022536 */ 
    32032537PJ_DECL(pj_status_t) pjsua_call_hangup(pjsua_call_id call_id, 
     
    32452579 * 
    32462580 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3247  * 
    3248  * \par Python: 
    3249  * \code 
    3250     status = py_pjsua.call_set_hold(call_id, msg_data) 
    3251  * \endcode 
    3252  * Argument \a msg_data may be set to None if not required. 
    32532581 */ 
    32542582PJ_DECL(pj_status_t) pjsua_call_set_hold(pjsua_call_id call_id, 
     
    32692597 * 
    32702598 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3271  * 
    3272  * \par Python: 
    3273  * \code 
    3274     status = py_pjsua.call_reinvite(call_id, unhold, msg_data) 
    3275  * \endcode 
    3276  * Argument \a msg_data may be set to None if not required. 
    32772599 */ 
    32782600PJ_DECL(pj_status_t) pjsua_call_reinvite(pjsua_call_id call_id, 
     
    33102632 * 
    33112633 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3312  * 
    3313  * \par Python: 
    3314  * \code 
    3315     status = py_pjsua.call_xfer(call_id, dest, msg_data) 
    3316  * \endcode 
    3317  * Argument \a msg_data may be set to None if not required. 
    33182634 */ 
    33192635PJ_DECL(pj_status_t) pjsua_call_xfer(pjsua_call_id call_id,  
     
    33442660 * 
    33452661 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3346  * 
    3347  * \par Python: 
    3348  * \code 
    3349     status = py_pjsua.call_xfer_replaces(call_id, dest_call_id, options, msg_data) 
    3350  * \endcode 
    3351  * Argument \a msg_data may be set to None if not required. 
    33522662 */ 
    33532663PJ_DECL(pj_status_t) pjsua_call_xfer_replaces(pjsua_call_id call_id,  
     
    33632673 * 
    33642674 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3365  * 
    3366  * \par Python: 
    3367  * \code 
    3368     status = py_pjsua.call_dial_dtmf(call_id, digits) 
    3369  * \endcode 
    33702675 */ 
    33712676PJ_DECL(pj_status_t) pjsua_call_dial_dtmf(pjsua_call_id call_id,  
     
    33862691 * 
    33872692 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3388  * 
    3389  * \par Python: 
    3390  * \code 
    3391     status = py_pjsua.call_send_im(call_id, mime_type, content, msg_data, user_data) 
    3392  * \endcode 
    3393  * Note that the \a user_data argument is an integer in Python. 
    33942693 */ 
    33952694PJ_DECL(pj_status_t) pjsua_call_send_im( pjsua_call_id call_id,  
     
    34102709 * 
    34112710 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3412  * 
    3413  * \par Python: 
    3414  * \code 
    3415     status = py_pjsua.call_send_typing_ind(call_id, is_typing, msg_data) 
    3416  * \endcode 
    3417  * Argument \a msg_data may be set to None if not required. 
    34182711 */ 
    34192712PJ_DECL(pj_status_t) pjsua_call_send_typing_ind(pjsua_call_id call_id,  
     
    34422735 * Terminate all calls. This will initiate #pjsua_call_hangup() for all 
    34432736 * currently active calls.  
    3444  * 
    3445  * \par Python: 
    3446  * \code 
    3447     py_pjsua.call_hangup_all() 
    3448  * \endcode 
    34492737 */ 
    34502738PJ_DECL(void) pjsua_call_hangup_all(void); 
     
    34612749 * 
    34622750 * @return              PJ_SUCCESS on success. 
    3463  * 
    3464  * \par Python: 
    3465  * \code 
    3466     string = py_pjsua.call_dump(call_id, with_media, max_len, indent) 
    3467  * \endcode 
    3468  * The \a max_len argument is the desired maximum length to be allocated. 
    34692751 */ 
    34702752PJ_DECL(pj_status_t) pjsua_call_dump(pjsua_call_id call_id,  
     
    35192801 * the structure with #pjsua_buddy_config_default() to initialize this 
    35202802 * structure with default configuration. 
    3521  * 
    3522  * \par Python: 
    3523  * In Python this structure is <tt>py_pjsua.Buddy_Config</tt>. However 
    3524  * it is recommended that application instantiates the buddy config 
    3525  * by calling: 
    3526  * \code 
    3527     buddy_cfg = py_pjsua.buddy_config_default() 
    3528  * \endcode 
    35292803 */ 
    35302804typedef struct pjsua_buddy_config 
     
    35772851 * This structure describes buddy info, which can be retrieved by calling 
    35782852 * #pjsua_buddy_get_info(). 
    3579  * 
    3580  * \par Python: 
    3581  * This structure in Python is <tt>py_pjsua.Buddy_Info</tt>. 
    35822853 */ 
    35832854typedef struct pjsua_buddy_info 
     
    36462917/** 
    36472918 * Set default values to the buddy config. 
    3648  * 
    3649  * \par Python: 
    3650  * \code 
    3651     buddy_cfg = py_pjsua.buddy_config_default() 
    3652  * \endcode 
    36532919 */ 
    36542920PJ_DECL(void) pjsua_buddy_config_default(pjsua_buddy_config *cfg); 
     
    36592925 * 
    36602926 * @return              Number of buddies. 
    3661  * 
    3662  * \par Python: 
    3663  * \code 
    3664     buddy_count = py_pjsua.get_buddy_count() 
    3665  * \endcode 
    36662927 */ 
    36672928PJ_DECL(unsigned) pjsua_get_buddy_count(void); 
     
    36742935 * 
    36752936 * @return              Non-zero if buddy ID is valid. 
    3676  * 
    3677  * \par Python: 
    3678  * \code 
    3679     is_valid = py_pjsua.buddy_is_valid(buddy_id) 
    3680  * \endcode 
    36812937 */ 
    36822938PJ_DECL(pj_bool_t) pjsua_buddy_is_valid(pjsua_buddy_id buddy_id); 
     
    36942950 * 
    36952951 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3696  * 
    3697  * \par Python: 
    3698  * The Python function takes no argument and returns list of buddy IDs: 
    3699  * \code 
    3700     [buddy_ids] = py_pjsua.enum_buddies() 
    3701  * \endcode 
    37022952 */ 
    37032953PJ_DECL(pj_status_t) pjsua_enum_buddies(pjsua_buddy_id ids[], 
     
    37212971 * 
    37222972 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3723  * 
    3724  * \par Python: 
    3725  * \code 
    3726     buddy_info = py_pjsua.buddy_get_info(buddy_id) 
    3727  * \endcode 
    3728  * The function returns None if buddy_id is not valid. 
    37292973 */ 
    37302974PJ_DECL(pj_status_t) pjsua_buddy_get_info(pjsua_buddy_id buddy_id, 
     
    37633007 * 
    37643008 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3765  * 
    3766  * \par Python: 
    3767  * The function returns (status, buddy_id) tuple: 
    3768  * \code 
    3769     status, buddy_id = py_pjsua.buddy_add(buddy_cfg) 
    3770  * \endcode 
    37713009 */ 
    37723010PJ_DECL(pj_status_t) pjsua_buddy_add(const pjsua_buddy_config *buddy_cfg, 
     
    37813019 * 
    37823020 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3783  * 
    3784  * \par Python: 
    3785  * \code 
    3786     status = py_pjsua.buddy_del(buddy_id) 
    3787  * \endcode 
    37883021 */ 
    37893022PJ_DECL(pj_status_t) pjsua_buddy_del(pjsua_buddy_id buddy_id); 
     
    38003033 * 
    38013034 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3802  * 
    3803  * \par Python: 
    3804  * \code 
    3805     status = py_pjsua.buddy_subscribe_pres(buddy_id, subscribe) 
    3806  * \endcode 
    38073035 */ 
    38083036PJ_DECL(pj_status_t) pjsua_buddy_subscribe_pres(pjsua_buddy_id buddy_id, 
     
    38663094 * 
    38673095 * @param verbose       Yes or no. 
    3868  * 
    3869  * \par Python: 
    3870  * \code 
    3871     py_pjsua.pres_dump() 
    3872  * \endcode 
    38733096 */ 
    38743097PJ_DECL(void) pjsua_pres_dump(pj_bool_t verbose); 
     
    38983121 * 
    38993122 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3900  * 
    3901  * \par Python: 
    3902  * \code 
    3903     status = py_pjsua.im_send(acc_id, to, mime_type, content, msg_data, user_data) 
    3904  * \endcode 
    3905  * Arguments \a mime_type and \a msg_data may be set to None if not required. 
    39063123 */ 
    39073124PJ_DECL(pj_status_t) pjsua_im_send(pjsua_acc_id acc_id,  
     
    39243141 * 
    39253142 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    3926  * 
    3927  * \par Python: 
    3928  * \code 
    3929     status = py_pjsua.im_typing(acc_id, to, is_typing, msg_data) 
    3930  * \endcode 
    3931  * Argument \a msg_data may be set to None if not requried. 
    39323143 */ 
    39333144PJ_DECL(pj_status_t) pjsua_im_typing(pjsua_acc_id acc_id,  
     
    40803291 * when calling #pjsua_init(). Application MUST initialize this structure 
    40813292 * by calling #pjsua_media_config_default(). 
    4082  * 
    4083  * \par Python: 
    4084  * This data type in Python is <tt>py_pjsua.Media_Config</tt>. To create 
    4085  * an object of this type, it is recommended to call  
    4086  * <tt>py_pjsua.media_config_default()</tt> function instead: 
    4087  * \code 
    4088     media_cfg = py_pjsua.media_config_default() 
    4089  * \endcode 
    40903293 */ 
    40913294struct pjsua_media_config 
     
    43183521 * 
    43193522 * @param cfg   The media config to be initialized. 
    4320  * 
    4321  * \par Python: 
    4322  * \code 
    4323     media_cfg = py_pjsua.media_config_default() 
    4324  * \endcode 
    43253523 */ 
    43263524PJ_DECL(void) pjsua_media_config_default(pjsua_media_config *cfg); 
     
    43553553 * has been registered into the conference bridge. Application can query 
    43563554 * this info by calling #pjsua_conf_get_port_info(). 
    4357  * 
    4358  * \par Python: 
    4359  * In Python, this type is <tt>py_pjsua.Conf_Port_Info</tt>. 
    43603555 */ 
    43613556typedef struct pjsua_conf_port_info 
     
    43933588 * This structure holds information about custom media transport to 
    43943589 * be registered to pjsua. 
    4395  * 
    4396  * \par Python: 
    4397  * Not applicable. 
    43983590 */ 
    43993591typedef struct pjsua_media_transport 
     
    44193611 * 
    44203612 * @return              Maximum number of ports in the conference bridge. 
    4421  * 
    4422  * \par Python: 
    4423  * \code 
    4424     port_count = py_pjsua.conf_get_max_ports() 
    4425  * \endcode 
    44263613 */ 
    44273614PJ_DECL(unsigned) pjsua_conf_get_max_ports(void); 
     
    44323619 * 
    44333620 * @return              The number. 
    4434  * 
    4435  * \par Python: 
    4436  * \code 
    4437     count = py_pjsua.conf_get_active_ports() 
    4438  * \endcode 
    44393621 */ 
    44403622PJ_DECL(unsigned) pjsua_conf_get_active_ports(void); 
     
    44503632 * 
    44513633 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4452  * 
    4453  * \par Python: 
    4454  * The Python functions returns list of conference port Ids: 
    4455  * \code 
    4456     [port_ids] = py_pjsua.enum_conf_ports() 
    4457  * \endcode 
    44583634 */ 
    44593635PJ_DECL(pj_status_t) pjsua_enum_conf_ports(pjsua_conf_port_id id[], 
     
    44683644 * 
    44693645 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4470  * 
    4471  * \par Python: 
    4472  * \code 
    4473     port_info = py_pjsua.conf_get_port_info(port_id) 
    4474  * \endcode 
    4475  * The function will return None if \a port_id is not valid. 
    44763646 */ 
    44773647PJ_DECL(pj_status_t) pjsua_conf_get_port_info( pjsua_conf_port_id port_id, 
     
    44923662 * 
    44933663 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4494  * 
    4495  * \par Python: 
    4496  * Not applicable (for now) 
    44973664 */ 
    44983665PJ_DECL(pj_status_t) pjsua_conf_add_port(pj_pool_t *pool, 
     
    45093676 * 
    45103677 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4511  * 
    4512  * \par Python: 
    4513  * \code 
    4514     status = py_pjsua.conf_remove_port(port_id) 
    4515  * \endcode 
    45163678 */ 
    45173679PJ_DECL(pj_status_t) pjsua_conf_remove_port(pjsua_conf_port_id port_id); 
     
    45333695 * 
    45343696 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4535  * 
    4536  * \par Python: 
    4537  * \code 
    4538     status = py_pjsua.conf_connect(source, sink) 
    4539  * \endcode 
    45403697 */ 
    45413698PJ_DECL(pj_status_t) pjsua_conf_connect(pjsua_conf_port_id source, 
     
    45503707 * 
    45513708 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4552  * 
    4553  * \par Python: 
    4554  * \code 
    4555     status = py_pjsua.conf_disconnect(source, sink) 
    4556  * \endcode 
    45573709 */ 
    45583710PJ_DECL(pj_status_t) pjsua_conf_disconnect(pjsua_conf_port_id source, 
     
    45693721 * 
    45703722 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4571  * 
    4572  * \par Python: 
    4573  * Not implemented (yet) 
    45743723 */ 
    45753724PJ_DECL(pj_status_t) pjsua_conf_adjust_tx_level(pjsua_conf_port_id slot, 
     
    45853734 * 
    45863735 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4587  * 
    4588  * \par Python: 
    4589  * Not implemented (yet) 
    45903736 */ 
    45913737PJ_DECL(pj_status_t) pjsua_conf_adjust_rx_level(pjsua_conf_port_id slot, 
     
    46063752 * 
    46073753 * @return              PJ_SUCCESS on success. 
    4608  * 
    4609  * \par Python: 
    4610  * Not implemented (yet) 
    46113754 */ 
    46123755PJ_DECL(pj_status_t) pjsua_conf_get_signal_level(pjsua_conf_port_id slot, 
     
    46323775 * 
    46333776 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4634  * 
    4635  * \par Python: 
    4636  * The function returns (status, id) tuple: 
    4637  * \code 
    4638     status, id = py_pjsua.player_create(filename, options) 
    4639  * \endcode 
    46403777 */ 
    46413778PJ_DECL(pj_status_t) pjsua_player_create(const pj_str_t *filename, 
     
    46583795 * 
    46593796 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4660  * 
    4661  * \par Python: 
    4662  * Not implemented yet. 
    46633797 */ 
    46643798PJ_DECL(pj_status_t) pjsua_playlist_create(const pj_str_t file_names[], 
     
    46743808 * 
    46753809 * @return              Conference port ID associated with this player. 
    4676  * 
    4677  * \par Python: 
    4678  * \code 
    4679     port_id = py_pjsua.player_get_conf_port(id) 
    4680  * \endcode 
    46813810 */ 
    46823811PJ_DECL(pjsua_conf_port_id) pjsua_player_get_conf_port(pjsua_player_id id); 
     
    46903819 * 
    46913820 * @return              PJ_SUCCESS on success. 
    4692  * 
    4693  * \par Python: 
    4694  * Not applicable. 
    46953821 */ 
    46963822PJ_DECL(pj_status_t) pjsua_player_get_port(pjsua_player_id id, 
     
    47053831 * 
    47063832 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4707  * 
    4708  * \par Python: 
    4709  * \code 
    4710     status = py_pjsua.player_set_pos(id, samples) 
    4711  * \endcode 
    47123833 */ 
    47133834PJ_DECL(pj_status_t) pjsua_player_set_pos(pjsua_player_id id, 
     
    47223843 * 
    47233844 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4724  * 
    4725  * \par Python: 
    4726  * \code 
    4727     status = py_pjsua.player_destroy(id) 
    4728  * \endcode 
    47293845 */ 
    47303846PJ_DECL(pj_status_t) pjsua_player_destroy(pjsua_player_id id); 
     
    47563872 * 
    47573873 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4758  * 
    4759  * \par Python: 
    4760  * \code 
    4761     status, id = py_pjsua.recorder_create(filename, enc_type, enc_param, max_size, options) 
    4762  * \endcode 
    4763  * The \a enc_param is a string in Python. 
    47643874 */ 
    47653875PJ_DECL(pj_status_t) pjsua_recorder_create(const pj_str_t *filename, 
     
    47773887 * 
    47783888 * @return              Conference port ID associated with this recorder. 
    4779  * 
    4780  * \par Python: 
    4781  * \code 
    4782     port_id = py_pjsua.recorder_get_conf_port(id) 
    4783  * \endcode 
    47843889 */ 
    47853890PJ_DECL(pjsua_conf_port_id) pjsua_recorder_get_conf_port(pjsua_recorder_id id); 
     
    47933898 * 
    47943899 * @return              PJ_SUCCESS on success. 
    4795  * 
    4796  * \par Python: 
    4797  * Not applicable. 
    47983900 */ 
    47993901PJ_DECL(pj_status_t) pjsua_recorder_get_port(pjsua_recorder_id id, 
     
    48073909 * 
    48083910 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4809  * 
    4810  * \par Python: 
    4811  * \code 
    4812     status = py_pjsua.recorder_destroy(id) 
    4813  * \endcode 
    48143911 */ 
    48153912PJ_DECL(pj_status_t) pjsua_recorder_destroy(pjsua_recorder_id id); 
     
    48423939 * 
    48433940 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4844  * 
    4845  * 
    4846  * \par Python: 
    4847  * The function returns list of sound device info: 
    4848  * \code 
    4849     [dev_infos] = py_pjsua.enum_snd_devs() 
    4850  * \endcode 
    4851  * 
    48523941 */ 
    48533942PJ_DECL(pj_status_t) pjsua_enum_snd_devs(pjmedia_snd_dev_info info[], 
     
    48653954 * 
    48663955 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4867  * 
    4868  * \par Python: 
    4869  * The function takes no argument and return an (integer,integer) tuple: 
    4870  * \code 
    4871     capture_dev, playback_dev = py_pjsua.get_snd_dev() 
    4872  * \endcode 
    48733956 */ 
    48743957PJ_DECL(pj_status_t) pjsua_get_snd_dev(int *capture_dev, 
     
    48843967 * 
    48853968 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4886  * 
    4887  * \par Python: 
    4888  * \code 
    4889     status = py_pjsua.set_snd_dev(capture_dev, playback_dev) 
    4890  * \endcode 
    48913969 */ 
    48923970PJ_DECL(pj_status_t) pjsua_set_snd_dev(int capture_dev, 
     
    49003978 * 
    49013979 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    4902  * 
    4903  * \par Python: 
    4904  * \code 
    4905     status = py_pjsua.set_null_snd_dev() 
    4906  * \endcode 
    49073980 */ 
    49083981PJ_DECL(pj_status_t) pjsua_set_null_snd_dev(void); 
     
    49163989 *                      so that application can connect this to it's own 
    49173990 *                      sound device or master port. 
    4918  * 
    4919  * \par Python: 
    4920  * Not applicable (for now). 
    49213991 */ 
    49223992PJ_DECL(pjmedia_port*) pjsua_set_no_snd_dev(void); 
     
    49474017 * 
    49484018 * @return              PJ_SUCCESS on success. 
    4949  * 
    4950  * \par Python: 
    4951  * \code 
    4952     status = py_pjsua.set_ec(tail_ms, options) 
    4953  * \endcode 
    49544019 */ 
    49554020PJ_DECL(pj_status_t) pjsua_set_ec(unsigned tail_ms, unsigned options); 
     
    49634028 * 
    49644029 * @return              PJ_SUCCESS on success. 
    4965  * 
    4966  * \par Python: 
    4967  * \code 
    4968     tail_ms = py_pjsua.get_ec_tail() 
    4969  * \endcode 
    49704030 */ 
    49714031PJ_DECL(pj_status_t) pjsua_get_ec_tail(unsigned *p_tail_ms); 
     
    50494109 * 
    50504110 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    5051  * 
    5052  * \par Python: 
    5053  * This function takes no argument and returns list of codec infos: 
    5054  * \code 
    5055     [codec_info] = py_pjsua.enum_codecs() 
    5056  * \endcode 
    50574111 */ 
    50584112PJ_DECL(pj_status_t) pjsua_enum_codecs( pjsua_codec_info id[], 
     
    50704124 * 
    50714125 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    5072  * 
    5073  * \par Python: 
    5074  * \code 
    5075     status = py_pjsua.codec_set_priority(codec_id, priority) 
    5076  * \endcode 
    50774126 */ 
    50784127PJ_DECL(pj_status_t) pjsua_codec_set_priority( const pj_str_t *codec_id, 
     
    50874136 * 
    50884137 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    5089  * 
    5090  * \par Python: 
    5091  * The Python function is experimental: 
    5092  * \code 
    5093     codec_param = py_pjsua.codec_get_param(codec_id) 
    5094  * \endcode 
    50954138 */ 
    50964139PJ_DECL(pj_status_t) pjsua_codec_get_param( const pj_str_t *codec_id, 
     
    51054148 * 
    51064149 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    5107  * 
    5108  * \par Python: 
    5109  * The Python function is experimental: 
    5110  * \code 
    5111     status = py_pjsua.codec_set_param(codec_id, param) 
    5112  * \endcode 
    5113  
    51144150 */ 
    51154151PJ_DECL(pj_status_t) pjsua_codec_set_param( const pj_str_t *codec_id, 
     
    51284164 * 
    51294165 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    5130  * 
    5131  * \par Python: 
    5132  * Not implemented yet. 
    51334166 */ 
    51344167PJ_DECL(pj_status_t)  
     
    51484181 * 
    51494182 * @return              PJ_SUCCESS on success, or the appropriate error code. 
    5150  * 
    5151  * \par Python: 
    5152  * Note applicable. 
    51534183 */ 
    51544184PJ_DECL(pj_status_t)  
Note: See TracChangeset for help on using the changeset viewer.