Index: /pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h
===================================================================
--- /pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h	(revision 2737)
+++ /pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h	(revision 2738)
@@ -56,12 +56,11 @@
 
 /**
- * @defgroup PJSUA_LIB PJSUA API - High Level Softphone API for C/C++ and Python
+ * @defgroup PJSUA_LIB PJSUA API - High Level Softphone API
  * @brief Very high level API for constructing SIP UA applications.
  * @{
  *
- * @section pjsua_api_intro A SIP User Agent API for C/C++ and Python
- *
- * PJSUA API is very high level API, available for C/C++ and Python language,
- * for constructing SIP multimedia user agent
+ * @section pjsua_api_intro A SIP User Agent API for C/C++
+ *
+ * PJSUA API is very high level API for constructing SIP multimedia user agent
  * applications. It wraps together the signaling and media functionalities
  * into an easy to use call API, provides account management, buddy
@@ -86,19 +85,7 @@
  * page.
  *
- * @subsection pjsua_for_python Python Binding
- *
- * The Python binding for PJSUA-API is implemented by <b>py_pjsua</b>
- * module, in <tt>pjsip-apps/py_pjsua</tt> directory. This module is
- * built by building <tt>py_pjsua</tt> project in <tt>pjsip_apps</tt>
- * Visual Studio workspace, or by invoking the usual <tt>setup.py</tt>
- * Python installer script.
- *
- * The Python script then can import the PJSUA-API Python module by
- * using <b>import py_pjsua</b> construct as usual.
- *
- *
  * @section pjsua_samples
  *
- * Few samples are provided both in C and Python.
+ * Few samples are provided:
  *
   - @ref page_pjsip_sample_simple_pjsuaua_c\n
@@ -112,9 +99,4 @@
     available in PJSIP and PJMEDIA.\n
 
-  - Python sample\n
-    For a real simple Python sample application, have a look at
-    <A HREF="http://www.pjsip.org/trac/browser/pjproject/trunk/pjsip-apps/src/py_pjsua/pjsua_app.py">
-    <tt>pjsip-apps/src/py_pjsua/pjsua_app.py</tt></A> file.
-
  * @section root_using_pjsua_lib Using PJSUA API
  *
@@ -143,6 +125,6 @@
  * @subsection creating_pjsua_lib Creating PJSUA
  *
- * Before anything else, application must create PJSUA by calling #pjsua_create()
- * (or <tt>py_pjsua.create()</tt> from Python).
+ * Before anything else, application must create PJSUA by calling 
+ * #pjsua_create().
  * This, among other things, will initialize PJLIB, which is crucial before 
  * any PJLIB functions can be called, PJLIB-UTIL, and create a SIP endpoint.
@@ -207,55 +189,4 @@
  *
  *
- * @subsubsection init_pjsua_lib_python PJSUA-LIB Initialization (in Python)
- * Sample code to initialize PJSUA in Python code:
-
- \code
-
-import py_pjsua
-
-#
-# Initialize pjsua.
-#
-def app_init():
-	# Create pjsua before anything else
-	status = py_pjsua.create()
-	if status != 0:
-		err_exit("pjsua create() error", status)
-
-	# We use default logging config for this sample
-	log_cfg = py_pjsua.logging_config_default()
-
-	# Create and initialize pjsua config
-	# Note: for this Python module, thread_cnt must be 0 since Python
-	#       doesn't like to be called from alien thread (pjsua's thread
-	#       in this case)	    
-	ua_cfg = py_pjsua.config_default()
-	ua_cfg.thread_cnt = 0
-	ua_cfg.user_agent = "PJSUA/Python 0.1"
-
-	# Override callbacks. At the very least application would want to
-	# override the call callbacks in pjsua_config
-	ua_cfg.cb.on_incoming_call = ...
-	ua_cfg.cb.on_call_state = ...
-
-	# Use default media config for this cample
-	med_cfg = py_pjsua.media_config_default()
-
-	#
-	# Initialize pjsua!!
-	#
-	status = py_pjsua.init(ua_cfg, log_cfg, med_cfg)
-	if status != 0:
-		err_exit("pjsua init() error", status)
-
-
-
-# Utility: display PJ error and exit
-#
-def err_exit(title, rc):
-	py_pjsua.perror(THIS_FILE, title, rc)
-	exit(1)
-
- \endcode
 
 
@@ -315,61 +246,4 @@
  \endcode
 
- * @subsubsection starting_pjsua_lib_python Python Example for starting PJSUA
- * For Python, starting PJSUA-LIB takes one more step, that is to initialize
- * Python worker thread to poll PJSUA-LIB. This step is necessary because
- * Python doesn't like it when it is called by an "alien" thread (that is,
- * thread that is not created using Python API).
- *
- * Because of this, we cannot use a worker thread in PJSUA-LIB, because then
- * the Python callback will be called by an "alien" thread and this would
- * crash Python (or raise assert() probably).
- *
- * So because worker thread is disabled, we need to create a worker thread
- * in Python. Note that this may not be necessary if we're creating a
- * GUI application, because then we can attach, for example, a GUI timer
- * object to poll the PJSUA-LIB. But because we're creating a console 
- * application which will block at <tt>sys.stdin.readline()</tt>, we need
- * to have a worker thread to poll PJSUA-LIB.
-
- \code
-
-import thread
-
-C_QUIT = 0
-
-
-def app_start():
-	# Done with initialization, start pjsua!!
-	#
-	status = py_pjsua.start()
-	if status != 0:
-		py_pjsua.destroy()
-		err_exit("Error starting pjsua!", status)
-
-	# Start worker thread
-	thr = thread.start_new(worker_thread_main, (0,))
-    
-	print "PJSUA Started!!"
-
-#
-# Worker thread function.
-# Python doesn't like it when it's called from an alien thread
-# (pjsua's worker thread, in this case), so for Python we must
-# disable worker thread in pjsua and poll pjsua from Python instead.
-#
-def worker_thread_main(arg):
-	global C_QUIT
-	thread_desc = 0
-	status = py_pjsua.thread_register("python worker", thread_desc)
-	if status != 0:
-		py_pjsua.perror(THIS_FILE, "Error registering thread", status)
-	else:
-		while C_QUIT == 0:
-			py_pjsua.handle_events(50)
-		print "Worker thread quitting.."
-		C_QUIT = 2
-
-
- \endcode
  */
 
@@ -436,12 +310,4 @@
  * #pjsua_init(). Application must call #pjsua_logging_config_default() to
  * initialize this structure with the default values.
- *
- * \par Sample Python Syntax:
- * \code
-    # Python type: py_pjsua.Logging_Config
- 
-    log_cfg = py_pjsua.logging_config_default()
-    log_cfg.level = 4
- * \endcode
  */
 typedef struct pjsua_logging_config
@@ -486,14 +352,4 @@
      * application specific device. This function will be called for
      * log messages on input verbosity level.
-     *
-     * \par Sample Python Syntax:
-     * \code
-     # level:	integer
-     # data:	string
-     # len:	integer
-
-     def cb(level, data, len):
-	    print data,
-     * \endcode
      */
     void       (*cb)(int level, const char *data, int len);
@@ -507,10 +363,4 @@
  *
  * @param cfg	The logging config to be initialized.
- *
- * \par Python Syntax:
- * The Python function instantiates and initialize the logging config:
- * \code
- logging_cfg = py_pjsua.logging_config_default()
- * \endcode
  */
 PJ_DECL(void) pjsua_logging_config_default(pjsua_logging_config *cfg);
@@ -523,8 +373,4 @@
  * @param dst	    Destination config.
  * @param src	    Source config.
- *
- * \par Python Syntax:
- * Not available (for now). Ideally we should be able to just assign
- * one config to another, but this has not been tested.
  */
 PJ_DECL(void) pjsua_logging_config_dup(pj_pool_t *pool,
@@ -538,7 +384,4 @@
  * although definitely application would want to implement some of
  * the important callbacks (such as \a on_incoming_call).
- *
- * \par Python Syntax:
- * This callback structure is embedded on pjsua_config structure.
  */
 typedef struct pjsua_callback
@@ -551,13 +394,4 @@
      * @param call_id	The call index.
      * @param e		Event which causes the call state to change.
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id: integer
-     # e:	an opaque object
-
-     def on_call_state(call_id, e):
-	    return
-     * \endcode
      */
     void (*on_call_state)(pjsua_call_id call_id, pjsip_event *e);
@@ -570,14 +404,4 @@
      *			the call.
      * @param rdata	The incoming INVITE request.
-     *
-     * \par Python Syntax:
-     * \code
-     # acc_id:	integer
-     # call_id: integer
-     # rdata:	an opaque object
-
-     def on_incoming_call(acc_id, call_id, rdata):
-	    return
-     * \endcode
      */
     void (*on_incoming_call)(pjsua_acc_id acc_id, pjsua_call_id call_id,
@@ -607,12 +431,4 @@
      *
      * @param call_id	The call index.
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id: integer
-
-     def on_call_media_state(call_id):
-	    return
-     * \endcode
      */
     void (*on_call_media_state)(pjsua_call_id call_id);
@@ -632,7 +448,4 @@
      *			    point to different media port to be registered
      *			    to the conference bridge.
-     *
-     * \par Python:
-     * Not applicable. 
      */
     void (*on_stream_created)(pjsua_call_id call_id, 
@@ -648,7 +461,4 @@
      * @param sess	    Media session for the call.
      * @param stream_idx    Stream index in the media session.
-     *
-     * \par Python:
-     * Not applicable. 
      */
     void (*on_stream_destroyed)(pjsua_call_id call_id,
@@ -661,13 +471,4 @@
      * @param call_id	The call index.
      * @param digit	DTMF ASCII digit.
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id: integer
-     # digit:	digit string
-
-     def on_dtmf_digit(call_id, digit):
-	    return
-     * \endcode
      */
     void (*on_dtmf_digit)(pjsua_call_id call_id, int digit);
@@ -685,15 +486,4 @@
      * @param code	Status code to be returned for the call transfer
      *			request. On input, it contains status code 200.
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id: integer
-     # dst:	string
-     # code:	integer
-
-     def on_call_transfer_request(call_id, dst, code):
-	    return code
-
-     * \endcode 
      */
     void (*on_call_transfer_request)(pjsua_call_id call_id,
@@ -717,18 +507,4 @@
      *			    to receie further notification (for example,
      *			    after it hangs up the call).
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id: integer
-     # st_code: integer
-     # st_text: string
-     # final:	integer
-     # cont:	integer
-
-     # return:	cont
-
-     def on_call_transfer_status(call_id, st_code, st_text, final, cont):
-	    return cont
-     * \endcode
      */
     void (*on_call_transfer_status)(pjsua_call_id call_id,
@@ -747,17 +523,4 @@
      *			    should only return a final status (200-699).
      * @param st_text	    Optional status text to be set by application.
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id: integer
-     # rdata:	an opaque object
-     # st_code: integer
-     # st_text: string
-
-     # return:	(st_code, st_text) tuple
-
-     def on_call_replace_request(call_id, rdata, st_code, st_text):
-	    return st_code, st_text
-     * \endcode
      */
     void (*on_call_replace_request)(pjsua_call_id call_id,
@@ -778,13 +541,4 @@
      * @param new_call_id   The new call.
      * @param rdata	    The incoming INVITE with Replaces request.
-     *
-     * \par Python Syntax:
-     * \code
-     # old_call_id: integer
-     # new_call_id: integer
-
-     def on_call_replaced(old_call_id, new_call_id):
-	    return
-     * \endcode
      */
     void (*on_call_replaced)(pjsua_call_id old_call_id,
@@ -798,12 +552,4 @@
      *
      * @param acc_id	    Account ID.
-     *
-     * \par Python Syntax:
-     * \code
-     # acc_id:	account ID (integer)
-
-     def on_reg_state(acc_id):
-	    return
-     * \endcode
      */
     void (*on_reg_state)(pjsua_acc_id acc_id);
@@ -887,12 +633,4 @@
      *
      * @param buddy_id	    The buddy id.
-     *
-     * \par Python Syntax:
-     * \code
-     # buddy_id:    integer
-
-     def on_buddy_state(buddy_id):
-	    return
-     * \endcode
      */
     void (*on_buddy_state)(pjsua_buddy_id buddy_id);
@@ -914,18 +652,4 @@
      * @param mime_type	    MIME type of the message.
      * @param body	    The message content.
-     *
-     * \par Python Syntax:
-     * \code
-     # call_id:	    integer
-     # from:	    string
-     # to:	    string
-     # contact:	    string
-     # mime_type:   string
-     # body:	    string
-     # acc_id:      integer
-
-     def on_pager(call_id, from, to, contact, mime_type, body):
-	    return
-     * \endcode
      */
     void (*on_pager)(pjsua_call_id call_id, const pj_str_t *from,
@@ -967,18 +691,4 @@
      * @param status	    Delivery status.
      * @param reason	    Delivery status reason.
-     *
-     * \par Python Syntax
-     * \code
-     # call_id:	    integer
-     # to:	    string
-     # body:	    string
-     # user_data:   string
-     # status:	    integer
-     # reason:	    string
-     # acc_id:      integer
-
-     def on_pager_status(call_id, to, body, user_data, status, reason):
-	    return
-     * \endcode
      */
     void (*on_pager_status)(pjsua_call_id call_id,
@@ -1030,16 +740,4 @@
      * @param is_typing	    Non-zero if peer is typing, or zero if peer
      *			    has stopped typing a message.
-     *
-     * \par Python Syntax
-     * \code
-     # call_id:	    string
-     # from:	    string
-     # to:	    string
-     # contact:	    string
-     # is_typing:   integer
-
-     def on_typing(call_id, from, to, contact, is_typing):
-	    return
-     * \endcode
      */
     void (*on_typing)(pjsua_call_id call_id, const pj_str_t *from,
@@ -1134,11 +832,4 @@
  * Before setting the values, application must call #pjsua_config_default()
  * to initialize this structure with the default values.
- *
- * \par Python Sample Syntax:
- * The pjsua_config type in Python is <tt>py_pjsua.Config</tt>. Application
- * creates the instance by calling <tt>py_pjsua.config_default()</tt>:
- * \code
-    cfg = py_pjsua.config_default()
- * \endcode
  */
 typedef struct pjsua_config
@@ -1313,12 +1004,4 @@
  *
  * @param cfg	pjsua config to be initialized.
- *
- * \par Python Sample Syntax:
- * The corresponding Python function creates an instance of the config and
- * initializes it to the default settings:
- * \code
-    cfg = py_pjsua.config_default()
- * \endcode
-
  */
 PJ_DECL(void) pjsua_config_default(pjsua_config *cfg);
@@ -1349,11 +1032,4 @@
  * Application MUST call #pjsua_msg_data_init() to initialize this
  * structure before setting its values.
- *
- * \par Python Syntax
- * The data type in Python is <tt>py_pjsua.Msg_Data</tt>. Application is
- * recommended to instantiate the structure by using this construct:
- * \code
-    msg_data = py_pjsua.msg_data_init()
- * \endcode
  */
 struct pjsua_msg_data
@@ -1364,12 +1040,4 @@
      * or from temporary local variable, and add the header using
      * linked list operation. See pjsip_apps.c for some sample codes.
-     *
-     * \par Python:
-     * This field is implemented as string linked-list in Python, where each
-     * string describes the header. For example:
-     \code
-	msg_data = py_pjsua.Msg_Data()
-	msg_data.hdr_list = ["Subject: Hello py_pjsua!", "Priority: very low"]
-     \endcode
      */
     pjsip_hdr	hdr_list;
@@ -1392,10 +1060,4 @@
  *
  * @param msg_data  Message data to be initialized.
- *
- * \par Python
- * The corresponding Python function creates and initializes the structure:
- * \code
-    msg_data = py_pjsua.msg_data_init()
- * \endcode
  */
 PJ_DECL(void) pjsua_msg_data_init(pjsua_msg_data *msg_data);
@@ -1409,9 +1071,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.create()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_create(void);
@@ -1434,13 +1091,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function is similar in Python:
- * \code
-    status = py_pjsua.init(ua_cfg, log_cfg, media_cfg)
- * \endcode
- * Note that \a ua_cfg, \a log_cfg, and \a media_cfg are optional, and
- * the Python script may pass None if it doesn't want to configure the 
- * setting.
  */
 PJ_DECL(pj_status_t) pjsua_init(const pjsua_config *ua_cfg,
@@ -1457,10 +1105,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function is similar in Python:
- * \code
-    status = py_pjsua.start()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_start(void);
@@ -1479,10 +1121,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function is similar in Python:
- * \code
-    status = py_pjsua.destroy()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_destroy(void);
@@ -1502,10 +1138,4 @@
  *	    poll. Negative value indicates error, and application
  *	    can retrieve the error as (status = -return_value).
- *
- * \par Python:
- * The function is similar in Python:
- * \code
-    n = py_pjsua.handle_events(msec_timeout)
- * \endcode
  */
 PJ_DECL(int) pjsua_handle_events(unsigned msec_timeout);
@@ -1521,10 +1151,4 @@
  *
  * @return		The pool, or NULL when there's no memory.
- *
- * \par Python:
- * Python script may also create a pool object from the script:
- * \code
-    pool = py_pjsua.pool_create(name, init_size, increment)
- * \endcode
  */
 PJ_DECL(pj_pool_t*) pjsua_pool_create(const char *name, pj_size_t init_size,
@@ -1539,10 +1163,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function is similar in Python:
- * \code
-    status = py_pjsua.reconfigure_logging(log_cfg)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_reconfigure_logging(const pjsua_logging_config *c);
@@ -1555,12 +1173,4 @@
  * 
  * @return		SIP endpoint instance.
- *
- * \par Python:
- * Application may retrieve the SIP endpoint instance:
- * \code
-    endpt = py_pjsua.get_pjsip_endpt()
- * \endcode
- * However currently the object is just an opaque object and does not have
- * any use for Python scripts.
  */
 PJ_DECL(pjsip_endpoint*) pjsua_get_pjsip_endpt(void);
@@ -1571,12 +1181,4 @@
  *
  * @return		Media endpoint instance.
- *
- * \par Python:
- * Application may retrieve the media endpoint instance:
- * \code
-    endpt = py_pjsua.get_pjmedia_endpt()
- * \endcode
- * However currently the object is just an opaque object and does not have
- * any use for Python scripts.
  */
 PJ_DECL(pjmedia_endpt*) pjsua_get_pjmedia_endpt(void);
@@ -1587,12 +1189,4 @@
  *
  * @return		Pool factory currently used by PJSUA.
- *
- * \par Python:
- * Application may retrieve the pool factory instance:
- * \code
-    endpt = py_pjsua.get_pool_factory()
- * \endcode
- * However currently the object is just an opaque object and does not have
- * any use for Python scripts.
  */
 PJ_DECL(pj_pool_factory*) pjsua_get_pool_factory(void);
@@ -1650,9 +1244,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.verify_sip_url(url)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_verify_sip_url(const char *url);
@@ -1666,9 +1255,4 @@
  * @param title		Message title for the error.
  * @param status	Status code.
- *
- * \par Python:
- * \code
-    py_pjsua.perror(sender, title, status)
- * \endcode
  */
 PJ_DECL(void) pjsua_perror(const char *sender, const char *title, 
@@ -1717,11 +1301,4 @@
  * MUST call #pjsua_transport_config_default() to initialize its
  * values with default settings.
- *
- * \par Python:
- * The data type in Python is <tt>py_pjsua.Transport_Config</tt>,
- * although application can just do this to create the instance:
- * \code
-    transport_cfg = py_pjsua.transport_config_default()
- * \endcode
  */
 typedef struct pjsua_transport_config
@@ -1773,10 +1350,4 @@
  *
  * @param cfg	    The UDP config to be initialized.
- *
- * \par Python:
- * The corresponding Python function is rather different:
- * \code
-    transport_cfg = py_pjsua.transport_config_default()
- * \endcode
  */
 PJ_DECL(void) pjsua_transport_config_default(pjsua_transport_config *cfg);
@@ -1789,8 +1360,4 @@
  * @param dst		The destination config.
  * @param src		The source config.
- *
- * \par Python:
- * Not applicable. One should be able to just copy one variable instance
- * to another in Python.
  */
 PJ_DECL(void) pjsua_transport_config_dup(pj_pool_t *pool,
@@ -1802,7 +1369,4 @@
  * This structure describes transport information returned by
  * #pjsua_transport_get_info() function.
- *
- * \par Python:
- * The corresponding data type in Python is <tt>py_pjsua.Transport_Info</tt>.
  */
 typedef struct pjsua_transport_info
@@ -1866,10 +1430,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The corresponding Python function returns (status,id) tuple:
- * \code
-    status, transport_id = py_pjsua.transport_create(type, cfg)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_transport_create(pjsip_transport_type_e type,
@@ -1886,8 +1444,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Not applicable (for now), because one cannot create a custom transport
- * from Python script.
  */
 PJ_DECL(pj_status_t) pjsua_transport_register(pjsip_transport *tp,
@@ -1906,10 +1460,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function returns list of integers representing transport ids:
- * \code
-    [int] = py_pjsua.enum_transports()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_enum_transports( pjsua_transport_id id[],
@@ -1924,10 +1472,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    transport_info = py_pjsua.transport_get_info(id)
- * \endcode
- * The Python function returns None on error.
  */
 PJ_DECL(pj_status_t) pjsua_transport_get_info(pjsua_transport_id id,
@@ -1945,9 +1487,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.transport_set_enable(id, enabled)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_transport_set_enable(pjsua_transport_id id,
@@ -1968,9 +1505,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.transport_close(id, force)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_transport_close( pjsua_transport_id id,
@@ -2074,12 +1606,4 @@
  * adding a new account with #pjsua_acc_add(). Application MUST initialize
  * this structure first by calling #pjsua_acc_config_default().
- *
- * \par Python:
- * The data type in Python is <tt>py_pjsua.Acc_Config</tt>, but normally
- * application can just use the snippet below to create and initialize
- * the account config:
- * \code
-    acc_cfg = py_pjsua.acc_config_default()
- * \endcode
  */
 typedef struct pjsua_acc_config
@@ -2164,7 +1688,4 @@
     /**
      * Number of proxies in the proxy array below.
-     *
-     * \par Python:
-     * Not applicable, as \a proxy is implemented as list of strings.
      */
     unsigned	    proxy_cnt;
@@ -2182,7 +1703,4 @@
      * then these account proxies will be placed after the global outbound
      * proxies in the routeset.
-     *
-     * \par Python:
-     * This will be list of strings.
      */
     pj_str_t	    proxy[PJSUA_ACC_MAX_PROXIES];
@@ -2196,7 +1714,4 @@
     /** 
      * Number of credentials in the credential array.
-     *
-     * \par Python:
-     * Not applicable, since \a cred_info is a list of credentials.
      */
     unsigned	    cred_count;
@@ -2208,7 +1723,4 @@
      * example when the requests are expected to be challenged by the
      * proxies in the route set.
-     *
-     * \par Python:
-     * This field is a list of credentials.
      */
     pjsip_cred_info cred_info[PJSUA_ACC_MAX_PROXIES];
@@ -2289,11 +1801,4 @@
  *
  * @param cfg	    The account config to be initialized.
- *
- * \par Python:
- * In Python, this function both creates and initializes the account
- * config:
- * \code
-    acc_cfg = py_pjsua.acc_config_default()
- * \endcode
  */
 PJ_DECL(void) pjsua_acc_config_default(pjsua_acc_config *cfg);
@@ -2315,7 +1820,4 @@
  * Account info. Application can query account info by calling 
  * #pjsua_acc_get_info().
- *
- * \par Python:
- * The data type in Python is <tt>py_pjsua.Acc_Info</tt>.
  */
 typedef struct pjsua_acc_info
@@ -2387,9 +1889,4 @@
  *
  * @return		Current number of accounts.
- *
- * \par Python:
- * \code
-    count = py_pjsua.acc_get_count()
- * \endcode
  */
 PJ_DECL(unsigned) pjsua_acc_get_count(void);
@@ -2402,9 +1899,4 @@
  *
  * @return		Non-zero if account ID is valid.
- *
- * \par Python:
- * \code
-    is_valid = py_pjsua.acc_is_valid(acc_id)
- * \endcode
  */
 PJ_DECL(pj_bool_t) pjsua_acc_is_valid(pjsua_acc_id acc_id);
@@ -2418,9 +1910,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * \code
-    status = py_pjsua.acc_set_default(acc_id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_set_default(pjsua_acc_id acc_id);
@@ -2434,9 +1921,4 @@
  * @return		The default account ID, or PJSUA_INVALID_ID if no
  *			default account is configured.
- *
- * \par Python:
- * \code
-    acc_id = py_pjsua.acc_get_default()
- * \endcode
  */
 PJ_DECL(pjsua_acc_id) pjsua_acc_get_default(void);
@@ -2462,10 +1944,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function returns (status, account_id) tuple:
- * \code
-    status, account_id = py_pjsua.acc_add(acc_cfg, is_default)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_add(const pjsua_acc_config *acc_cfg,
@@ -2489,10 +1965,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function returns (status, account_id) tuple:
- * \code
-    status, account_id = py_pjsua.acc_add_local(tid, is_default)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_add_local(pjsua_transport_id tid,
@@ -2531,9 +2001,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.acc_del(acc_id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_del(pjsua_acc_id acc_id);
@@ -2547,9 +2012,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.acc_modify(acc_id, acc_cfg)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_modify(pjsua_acc_id acc_id,
@@ -2569,9 +2029,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.acc_set_online_status(acc_id, is_online)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_set_online_status(pjsua_acc_id acc_id,
@@ -2609,9 +2064,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.acc_set_registration(acc_id, renew)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_set_registration(pjsua_acc_id acc_id, 
@@ -2625,10 +2075,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    acc_info = py_pjsua.acc_get_info(acc_id)
- * \endcode
- * The function returns None if account ID is not valid.
  */
 PJ_DECL(pj_status_t) pjsua_acc_get_info(pjsua_acc_id acc_id,
@@ -2648,10 +2092,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function takes no argument and returns list of account Ids:
- * \code
-  [acc_ids] = py_pjsua.enum_accs()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_enum_accs(pjsua_acc_id ids[],
@@ -2667,10 +2105,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function takes no argument and returns list of account infos:
- * \code
-    [acc_info] = py_pjsua.acc_enum_info()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_enum_info( pjsua_acc_info info[],
@@ -2685,9 +2117,4 @@
  *
  * @return		Account id.
- *
- * \par Python:
- * \code
-    acc_id = py_pjsua.acc_find_for_outgoing(url)
- * \endcode
  */
 PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_outgoing(const pj_str_t *url);
@@ -2701,9 +2128,4 @@
  *
  * @return		Account id.
- *
- * \par Python:
- * \code
-    acc_id = py_pjsua.acc_find_for_outgoing(url)
- * \endcode
  */
 PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_incoming(pjsip_rx_data *rdata);
@@ -2739,10 +2161,4 @@
  *
  * @return		PJ_SUCCESS on success, other on error.
- *
- * \par Python:
- * This function is still experimental in Python:
- * \code
-    uri = py_pjsua.acc_create_uac_contact(pool, acc_id, uri)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_create_uac_contact( pj_pool_t *pool,
@@ -2763,10 +2179,4 @@
  *
  * @return		PJ_SUCCESS on success, other on error.
- *
- * \par Python:
- * This function is still experimental in Python:
- * \code
-    uri = py_pjsua.acc_create_uas_contact(pool, acc_id, rdata)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_acc_create_uas_contact( pj_pool_t *pool,
@@ -2792,7 +2202,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * Not yet implemented.
  */
 PJ_DECL(pj_status_t) pjsua_acc_set_transport(pjsua_acc_id acc_id,
@@ -2852,7 +2259,4 @@
 /**
  * This structure describes the information and current status of a call.
- *
- * \par Python:
- * The type name is <tt>py_pjsua.Call_Info</tt>.
  */
 typedef struct pjsua_call_info
@@ -2929,9 +2333,4 @@
  *
  * @return		Maximum number of calls configured.
- *
- * \par Python:
- * \code
-    count = py_pjsua.call_get_max_count()
- * \endcode
  */
 PJ_DECL(unsigned) pjsua_call_get_max_count(void);
@@ -2941,9 +2340,4 @@
  *
  * @return		Number of currently active calls.
- *
- * \par Python:
- * \code
-    count = py_pjsua.call_get_count()
- * \endcode
  */
 PJ_DECL(unsigned) pjsua_call_get_count(void);
@@ -2958,10 +2352,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * This function takes no argument and return list of call Ids.
- * \code
-    [call_ids] = py_pjsua.enum_calls()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_enum_calls(pjsua_call_id ids[],
@@ -2983,13 +2371,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The Python function returns (status, call_id) tuple:
- * \code
-    status, call_id = py_pjsua.call_make_call(acc_id, dst_uri, options, 
-					      user_data, msg_data)
- * \endcode
- * Note: the \a user_data in Python function is an integer, and the 
- * \a msg_data can be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_make_call(pjsua_acc_id acc_id,
@@ -3008,9 +2387,4 @@
  *
  * @return		Non-zero if call is active.
- *
- * \par Python:
- * \code
-    bool = py_pjsua.call_is_active(call_id)
- * \endcode
  */
 PJ_DECL(pj_bool_t) pjsua_call_is_active(pjsua_call_id call_id);
@@ -3023,9 +2397,4 @@
  *
  * @return		Non-zero if yes.
- *
- * \par Python:
- * \code
-    bool = py_pjsua.call_has_media(call_id)
- * \endcode
  */
 PJ_DECL(pj_bool_t) pjsua_call_has_media(pjsua_call_id call_id);
@@ -3065,9 +2434,4 @@
  * @return		Conference port ID, or PJSUA_INVALID_ID when the 
  *			media has not been established or is not active.
- *
- * \par Python:
- * \code
-    slot = py_pjsua.call_get_conf_port(call_id)
- * \endcode
  */
 PJ_DECL(pjsua_conf_port_id) pjsua_call_get_conf_port(pjsua_call_id call_id);
@@ -3080,10 +2444,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    call_info = py_pjsua.call_get_info(call_id)
- * \endcode
- * \a call_info return value will be set to None if call_id is not valid.
  */
 PJ_DECL(pj_status_t) pjsua_call_get_info(pjsua_call_id call_id,
@@ -3099,10 +2457,4 @@
  *
  * @return		The user data.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_set_user_data(call_id, user_data)
- * \endcode
- * The \a user_data is an integer in the Python function.
  */
 PJ_DECL(pj_status_t) pjsua_call_set_user_data(pjsua_call_id call_id,
@@ -3117,10 +2469,4 @@
  *
  * @return		The user data.
- *
- * \par Python:
- * \code
-    user_data = py_pjsua.call_get_user_data(call_id)
- * \endcode
- * The \a user_data is an integer.
  */
 PJ_DECL(void*) pjsua_call_get_user_data(pjsua_call_id call_id);
@@ -3164,10 +2510,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_answer(call_id, code, reason, msg_data)
- * \endcode
- * Arguments \a reason and \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_answer(pjsua_call_id call_id, 
@@ -3194,10 +2534,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_hangup(call_id, code, reason, msg_data)
- * \endcode
- * Arguments \a reason and \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_hangup(pjsua_call_id call_id,
@@ -3245,10 +2579,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_set_hold(call_id, msg_data)
- * \endcode
- * Argument \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_set_hold(pjsua_call_id call_id,
@@ -3269,10 +2597,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_reinvite(call_id, unhold, msg_data)
- * \endcode
- * Argument \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_reinvite(pjsua_call_id call_id,
@@ -3310,10 +2632,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_xfer(call_id, dest, msg_data)
- * \endcode
- * Argument \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_xfer(pjsua_call_id call_id, 
@@ -3344,10 +2660,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_xfer_replaces(call_id, dest_call_id, options, msg_data)
- * \endcode
- * Argument \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_xfer_replaces(pjsua_call_id call_id, 
@@ -3363,9 +2673,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_dial_dtmf(call_id, digits)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_call_dial_dtmf(pjsua_call_id call_id, 
@@ -3386,10 +2691,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_send_im(call_id, mime_type, content, msg_data, user_data)
- * \endcode
- * Note that the \a user_data argument is an integer in Python.
  */
 PJ_DECL(pj_status_t) pjsua_call_send_im( pjsua_call_id call_id, 
@@ -3410,10 +2709,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.call_send_typing_ind(call_id, is_typing, msg_data)
- * \endcode
- * Argument \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_call_send_typing_ind(pjsua_call_id call_id, 
@@ -3442,9 +2735,4 @@
  * Terminate all calls. This will initiate #pjsua_call_hangup() for all
  * currently active calls. 
- *
- * \par Python:
- * \code
-    py_pjsua.call_hangup_all()
- * \endcode
  */
 PJ_DECL(void) pjsua_call_hangup_all(void);
@@ -3461,10 +2749,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * \code
-    string = py_pjsua.call_dump(call_id, with_media, max_len, indent)
- * \endcode
- * The \a max_len argument is the desired maximum length to be allocated.
  */
 PJ_DECL(pj_status_t) pjsua_call_dump(pjsua_call_id call_id, 
@@ -3519,12 +2801,4 @@
  * the structure with #pjsua_buddy_config_default() to initialize this
  * structure with default configuration.
- *
- * \par Python:
- * In Python this structure is <tt>py_pjsua.Buddy_Config</tt>. However
- * it is recommended that application instantiates the buddy config
- * by calling:
- * \code
-    buddy_cfg = py_pjsua.buddy_config_default()
- * \endcode
  */
 typedef struct pjsua_buddy_config
@@ -3577,7 +2851,4 @@
  * This structure describes buddy info, which can be retrieved by calling
  * #pjsua_buddy_get_info().
- *
- * \par Python:
- * This structure in Python is <tt>py_pjsua.Buddy_Info</tt>.
  */
 typedef struct pjsua_buddy_info
@@ -3646,9 +2917,4 @@
 /**
  * Set default values to the buddy config.
- *
- * \par Python:
- * \code
-    buddy_cfg = py_pjsua.buddy_config_default()
- * \endcode
  */
 PJ_DECL(void) pjsua_buddy_config_default(pjsua_buddy_config *cfg);
@@ -3659,9 +2925,4 @@
  *
  * @return		Number of buddies.
- *
- * \par Python:
- * \code
-    buddy_count = py_pjsua.get_buddy_count()
- * \endcode
  */
 PJ_DECL(unsigned) pjsua_get_buddy_count(void);
@@ -3674,9 +2935,4 @@
  *
  * @return		Non-zero if buddy ID is valid.
- *
- * \par Python:
- * \code
-    is_valid = py_pjsua.buddy_is_valid(buddy_id)
- * \endcode
  */
 PJ_DECL(pj_bool_t) pjsua_buddy_is_valid(pjsua_buddy_id buddy_id);
@@ -3694,10 +2950,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The Python function takes no argument and returns list of buddy IDs:
- * \code
-    [buddy_ids] = py_pjsua.enum_buddies()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_enum_buddies(pjsua_buddy_id ids[],
@@ -3721,10 +2971,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    buddy_info = py_pjsua.buddy_get_info(buddy_id)
- * \endcode
- * The function returns None if buddy_id is not valid.
  */
 PJ_DECL(pj_status_t) pjsua_buddy_get_info(pjsua_buddy_id buddy_id,
@@ -3763,10 +3007,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function returns (status, buddy_id) tuple:
- * \code
-    status, buddy_id = py_pjsua.buddy_add(buddy_cfg)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_buddy_add(const pjsua_buddy_config *buddy_cfg,
@@ -3781,9 +3019,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.buddy_del(buddy_id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_buddy_del(pjsua_buddy_id buddy_id);
@@ -3800,9 +3033,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.buddy_subscribe_pres(buddy_id, subscribe)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_buddy_subscribe_pres(pjsua_buddy_id buddy_id,
@@ -3866,9 +3094,4 @@
  *
  * @param verbose	Yes or no.
- *
- * \par Python:
- * \code
-    py_pjsua.pres_dump()
- * \endcode
  */
 PJ_DECL(void) pjsua_pres_dump(pj_bool_t verbose);
@@ -3898,10 +3121,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.im_send(acc_id, to, mime_type, content, msg_data, user_data)
- * \endcode
- * Arguments \a mime_type and \a msg_data may be set to None if not required.
  */
 PJ_DECL(pj_status_t) pjsua_im_send(pjsua_acc_id acc_id, 
@@ -3924,10 +3141,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.im_typing(acc_id, to, is_typing, msg_data)
- * \endcode
- * Argument \a msg_data may be set to None if not requried.
  */
 PJ_DECL(pj_status_t) pjsua_im_typing(pjsua_acc_id acc_id, 
@@ -4080,12 +3291,4 @@
  * when calling #pjsua_init(). Application MUST initialize this structure
  * by calling #pjsua_media_config_default().
- *
- * \par Python:
- * This data type in Python is <tt>py_pjsua.Media_Config</tt>. To create
- * an object of this type, it is recommended to call 
- * <tt>py_pjsua.media_config_default()</tt> function instead:
- * \code
-    media_cfg = py_pjsua.media_config_default()
- * \endcode
  */
 struct pjsua_media_config
@@ -4318,9 +3521,4 @@
  *
  * @param cfg	The media config to be initialized.
- *
- * \par Python:
- * \code
-    media_cfg = py_pjsua.media_config_default()
- * \endcode
  */
 PJ_DECL(void) pjsua_media_config_default(pjsua_media_config *cfg);
@@ -4355,7 +3553,4 @@
  * has been registered into the conference bridge. Application can query
  * this info by calling #pjsua_conf_get_port_info().
- *
- * \par Python:
- * In Python, this type is <tt>py_pjsua.Conf_Port_Info</tt>.
  */
 typedef struct pjsua_conf_port_info
@@ -4393,7 +3588,4 @@
  * This structure holds information about custom media transport to
  * be registered to pjsua.
- *
- * \par Python:
- * Not applicable.
  */
 typedef struct pjsua_media_transport
@@ -4419,9 +3611,4 @@
  *
  * @return		Maximum number of ports in the conference bridge.
- *
- * \par Python:
- * \code
-    port_count = py_pjsua.conf_get_max_ports()
- * \endcode
  */
 PJ_DECL(unsigned) pjsua_conf_get_max_ports(void);
@@ -4432,9 +3619,4 @@
  *
  * @return		The number.
- *
- * \par Python:
- * \code
-    count = py_pjsua.conf_get_active_ports()
- * \endcode
  */
 PJ_DECL(unsigned) pjsua_conf_get_active_ports(void);
@@ -4450,10 +3632,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The Python functions returns list of conference port Ids:
- * \code
-    [port_ids] = py_pjsua.enum_conf_ports()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_enum_conf_ports(pjsua_conf_port_id id[],
@@ -4468,10 +3644,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    port_info = py_pjsua.conf_get_port_info(port_id)
- * \endcode
- * The function will return None if \a port_id is not valid.
  */
 PJ_DECL(pj_status_t) pjsua_conf_get_port_info( pjsua_conf_port_id port_id,
@@ -4492,7 +3662,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Not applicable (for now)
  */
 PJ_DECL(pj_status_t) pjsua_conf_add_port(pj_pool_t *pool,
@@ -4509,9 +3676,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.conf_remove_port(port_id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_conf_remove_port(pjsua_conf_port_id port_id);
@@ -4533,9 +3695,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.conf_connect(source, sink)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_conf_connect(pjsua_conf_port_id source,
@@ -4550,9 +3707,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.conf_disconnect(source, sink)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_conf_disconnect(pjsua_conf_port_id source,
@@ -4569,7 +3721,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Not implemented (yet)
  */
 PJ_DECL(pj_status_t) pjsua_conf_adjust_tx_level(pjsua_conf_port_id slot,
@@ -4585,7 +3734,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Not implemented (yet)
  */
 PJ_DECL(pj_status_t) pjsua_conf_adjust_rx_level(pjsua_conf_port_id slot,
@@ -4606,7 +3752,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * Not implemented (yet)
  */
 PJ_DECL(pj_status_t) pjsua_conf_get_signal_level(pjsua_conf_port_id slot,
@@ -4632,10 +3775,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function returns (status, id) tuple:
- * \code
-    status, id = py_pjsua.player_create(filename, options)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_player_create(const pj_str_t *filename,
@@ -4658,7 +3795,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Not implemented yet.
  */
 PJ_DECL(pj_status_t) pjsua_playlist_create(const pj_str_t file_names[],
@@ -4674,9 +3808,4 @@
  *
  * @return		Conference port ID associated with this player.
- *
- * \par Python:
- * \code
-    port_id = py_pjsua.player_get_conf_port(id)
- * \endcode
  */
 PJ_DECL(pjsua_conf_port_id) pjsua_player_get_conf_port(pjsua_player_id id);
@@ -4690,7 +3819,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * Not applicable.
  */
 PJ_DECL(pj_status_t) pjsua_player_get_port(pjsua_player_id id,
@@ -4705,9 +3831,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.player_set_pos(id, samples)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_player_set_pos(pjsua_player_id id,
@@ -4722,9 +3843,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.player_destroy(id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_player_destroy(pjsua_player_id id);
@@ -4756,10 +3872,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status, id = py_pjsua.recorder_create(filename, enc_type, enc_param, max_size, options)
- * \endcode
- * The \a enc_param is a string in Python.
  */
 PJ_DECL(pj_status_t) pjsua_recorder_create(const pj_str_t *filename,
@@ -4777,9 +3887,4 @@
  *
  * @return		Conference port ID associated with this recorder.
- *
- * \par Python:
- * \code
-    port_id = py_pjsua.recorder_get_conf_port(id)
- * \endcode
  */
 PJ_DECL(pjsua_conf_port_id) pjsua_recorder_get_conf_port(pjsua_recorder_id id);
@@ -4793,7 +3898,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * Not applicable.
  */
 PJ_DECL(pj_status_t) pjsua_recorder_get_port(pjsua_recorder_id id,
@@ -4807,9 +3909,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.recorder_destroy(id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_recorder_destroy(pjsua_recorder_id id);
@@ -4842,12 +3939,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- *
- * \par Python:
- * The function returns list of sound device info:
- * \code
-    [dev_infos] = py_pjsua.enum_snd_devs()
- * \endcode
- *
  */
 PJ_DECL(pj_status_t) pjsua_enum_snd_devs(pjmedia_snd_dev_info info[],
@@ -4865,10 +3954,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The function takes no argument and return an (integer,integer) tuple:
- * \code
-    capture_dev, playback_dev = py_pjsua.get_snd_dev()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_get_snd_dev(int *capture_dev,
@@ -4884,9 +3967,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.set_snd_dev(capture_dev, playback_dev)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_set_snd_dev(int capture_dev,
@@ -4900,9 +3978,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.set_null_snd_dev()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_set_null_snd_dev(void);
@@ -4916,7 +3989,4 @@
  *			so that application can connect this to it's own
  *			sound device or master port.
- *
- * \par Python:
- * Not applicable (for now).
  */
 PJ_DECL(pjmedia_port*) pjsua_set_no_snd_dev(void);
@@ -4947,9 +4017,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * \code
-    status = py_pjsua.set_ec(tail_ms, options)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_set_ec(unsigned tail_ms, unsigned options);
@@ -4963,9 +4028,4 @@
  *
  * @return		PJ_SUCCESS on success.
- *
- * \par Python:
- * \code
-    tail_ms = py_pjsua.get_ec_tail()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_get_ec_tail(unsigned *p_tail_ms);
@@ -5049,10 +4109,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * This function takes no argument and returns list of codec infos:
- * \code
-    [codec_info] = py_pjsua.enum_codecs()
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_enum_codecs( pjsua_codec_info id[],
@@ -5070,9 +4124,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * \code
-    status = py_pjsua.codec_set_priority(codec_id, priority)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_codec_set_priority( const pj_str_t *codec_id,
@@ -5087,10 +4136,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The Python function is experimental:
- * \code
-    codec_param = py_pjsua.codec_get_param(codec_id)
- * \endcode
  */
 PJ_DECL(pj_status_t) pjsua_codec_get_param( const pj_str_t *codec_id,
@@ -5105,11 +4148,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * The Python function is experimental:
- * \code
-    status = py_pjsua.codec_set_param(codec_id, param)
- * \endcode
-
  */
 PJ_DECL(pj_status_t) pjsua_codec_set_param( const pj_str_t *codec_id,
@@ -5128,7 +4164,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Not implemented yet.
  */
 PJ_DECL(pj_status_t) 
@@ -5148,7 +4181,4 @@
  *
  * @return		PJ_SUCCESS on success, or the appropriate error code.
- *
- * \par Python:
- * Note applicable.
  */
 PJ_DECL(pj_status_t) 
