# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.1
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _pjsua2
else:
    import _pjsua2

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


import weakref

PJ_SUCCESS = _pjsua2.PJ_SUCCESS
PJ_TRUE = _pjsua2.PJ_TRUE
PJ_FALSE = _pjsua2.PJ_FALSE
PJ_O_RDONLY = _pjsua2.PJ_O_RDONLY
PJ_O_WRONLY = _pjsua2.PJ_O_WRONLY
PJ_O_RDWR = _pjsua2.PJ_O_RDWR
PJ_O_APPEND = _pjsua2.PJ_O_APPEND
PJ_LOG_HAS_DAY_NAME = _pjsua2.PJ_LOG_HAS_DAY_NAME
PJ_LOG_HAS_YEAR = _pjsua2.PJ_LOG_HAS_YEAR
PJ_LOG_HAS_MONTH = _pjsua2.PJ_LOG_HAS_MONTH
PJ_LOG_HAS_DAY_OF_MON = _pjsua2.PJ_LOG_HAS_DAY_OF_MON
PJ_LOG_HAS_TIME = _pjsua2.PJ_LOG_HAS_TIME
PJ_LOG_HAS_MICRO_SEC = _pjsua2.PJ_LOG_HAS_MICRO_SEC
PJ_LOG_HAS_SENDER = _pjsua2.PJ_LOG_HAS_SENDER
PJ_LOG_HAS_NEWLINE = _pjsua2.PJ_LOG_HAS_NEWLINE
PJ_LOG_HAS_CR = _pjsua2.PJ_LOG_HAS_CR
PJ_LOG_HAS_SPACE = _pjsua2.PJ_LOG_HAS_SPACE
PJ_LOG_HAS_COLOR = _pjsua2.PJ_LOG_HAS_COLOR
PJ_LOG_HAS_LEVEL_TEXT = _pjsua2.PJ_LOG_HAS_LEVEL_TEXT
PJ_LOG_HAS_THREAD_ID = _pjsua2.PJ_LOG_HAS_THREAD_ID
PJ_LOG_HAS_THREAD_SWC = _pjsua2.PJ_LOG_HAS_THREAD_SWC
PJ_LOG_HAS_INDENT = _pjsua2.PJ_LOG_HAS_INDENT
PJ_QOS_TYPE_BEST_EFFORT = _pjsua2.PJ_QOS_TYPE_BEST_EFFORT
PJ_QOS_TYPE_BACKGROUND = _pjsua2.PJ_QOS_TYPE_BACKGROUND
PJ_QOS_TYPE_VIDEO = _pjsua2.PJ_QOS_TYPE_VIDEO
PJ_QOS_TYPE_VOICE = _pjsua2.PJ_QOS_TYPE_VOICE
PJ_QOS_TYPE_CONTROL = _pjsua2.PJ_QOS_TYPE_CONTROL
PJ_QOS_TYPE_SIGNALLING = _pjsua2.PJ_QOS_TYPE_SIGNALLING
PJ_QOS_PARAM_HAS_DSCP = _pjsua2.PJ_QOS_PARAM_HAS_DSCP
PJ_QOS_PARAM_HAS_SO_PRIO = _pjsua2.PJ_QOS_PARAM_HAS_SO_PRIO
PJ_QOS_PARAM_HAS_WMM = _pjsua2.PJ_QOS_PARAM_HAS_WMM
PJ_QOS_WMM_PRIO_BULK_EFFORT = _pjsua2.PJ_QOS_WMM_PRIO_BULK_EFFORT
PJ_QOS_WMM_PRIO_BULK = _pjsua2.PJ_QOS_WMM_PRIO_BULK
PJ_QOS_WMM_PRIO_VIDEO = _pjsua2.PJ_QOS_WMM_PRIO_VIDEO
PJ_QOS_WMM_PRIO_VOICE = _pjsua2.PJ_QOS_WMM_PRIO_VOICE
class pj_qos_params(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    flags = property(_pjsua2.pj_qos_params_flags_get, _pjsua2.pj_qos_params_flags_set)
    dscp_val = property(_pjsua2.pj_qos_params_dscp_val_get, _pjsua2.pj_qos_params_dscp_val_set)
    so_prio = property(_pjsua2.pj_qos_params_so_prio_get, _pjsua2.pj_qos_params_so_prio_set)
    wmm_prio = property(_pjsua2.pj_qos_params_wmm_prio_get, _pjsua2.pj_qos_params_wmm_prio_set)

    def __init__(self):
        _pjsua2.pj_qos_params_swiginit(self, _pjsua2.new_pj_qos_params())
    __swig_destroy__ = _pjsua2.delete_pj_qos_params

# Register pj_qos_params in _pjsua2:
_pjsua2.pj_qos_params_swigregister(pj_qos_params)

PJ_TLS_UNKNOWN_CIPHER = _pjsua2.PJ_TLS_UNKNOWN_CIPHER
PJ_TLS_NULL_WITH_NULL_NULL = _pjsua2.PJ_TLS_NULL_WITH_NULL_NULL
PJ_TLS_RSA_WITH_NULL_MD5 = _pjsua2.PJ_TLS_RSA_WITH_NULL_MD5
PJ_TLS_RSA_WITH_NULL_SHA = _pjsua2.PJ_TLS_RSA_WITH_NULL_SHA
PJ_TLS_RSA_WITH_NULL_SHA256 = _pjsua2.PJ_TLS_RSA_WITH_NULL_SHA256
PJ_TLS_RSA_WITH_RC4_128_MD5 = _pjsua2.PJ_TLS_RSA_WITH_RC4_128_MD5
PJ_TLS_RSA_WITH_RC4_128_SHA = _pjsua2.PJ_TLS_RSA_WITH_RC4_128_SHA
PJ_TLS_RSA_WITH_3DES_EDE_CBC_SHA = _pjsua2.PJ_TLS_RSA_WITH_3DES_EDE_CBC_SHA
PJ_TLS_RSA_WITH_AES_128_CBC_SHA = _pjsua2.PJ_TLS_RSA_WITH_AES_128_CBC_SHA
PJ_TLS_RSA_WITH_AES_256_CBC_SHA = _pjsua2.PJ_TLS_RSA_WITH_AES_256_CBC_SHA
PJ_TLS_RSA_WITH_AES_128_CBC_SHA256 = _pjsua2.PJ_TLS_RSA_WITH_AES_128_CBC_SHA256
PJ_TLS_RSA_WITH_AES_256_CBC_SHA256 = _pjsua2.PJ_TLS_RSA_WITH_AES_256_CBC_SHA256
PJ_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = _pjsua2.PJ_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
PJ_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = _pjsua2.PJ_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
PJ_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = _pjsua2.PJ_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
PJ_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = _pjsua2.PJ_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
PJ_TLS_DH_DSS_WITH_AES_128_CBC_SHA = _pjsua2.PJ_TLS_DH_DSS_WITH_AES_128_CBC_SHA
PJ_TLS_DH_RSA_WITH_AES_128_CBC_SHA = _pjsua2.PJ_TLS_DH_RSA_WITH_AES_128_CBC_SHA
PJ_TLS_DHE_DSS_WITH_AES_128_CBC_SHA = _pjsua2.PJ_TLS_DHE_DSS_WITH_AES_128_CBC_SHA
PJ_TLS_DHE_RSA_WITH_AES_128_CBC_SHA = _pjsua2.PJ_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
PJ_TLS_DH_DSS_WITH_AES_256_CBC_SHA = _pjsua2.PJ_TLS_DH_DSS_WITH_AES_256_CBC_SHA
PJ_TLS_DH_RSA_WITH_AES_256_CBC_SHA = _pjsua2.PJ_TLS_DH_RSA_WITH_AES_256_CBC_SHA
PJ_TLS_DHE_DSS_WITH_AES_256_CBC_SHA = _pjsua2.PJ_TLS_DHE_DSS_WITH_AES_256_CBC_SHA
PJ_TLS_DHE_RSA_WITH_AES_256_CBC_SHA = _pjsua2.PJ_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
PJ_TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = _pjsua2.PJ_TLS_DH_DSS_WITH_AES_128_CBC_SHA256
PJ_TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = _pjsua2.PJ_TLS_DH_RSA_WITH_AES_128_CBC_SHA256
PJ_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = _pjsua2.PJ_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
PJ_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = _pjsua2.PJ_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
PJ_TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = _pjsua2.PJ_TLS_DH_DSS_WITH_AES_256_CBC_SHA256
PJ_TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = _pjsua2.PJ_TLS_DH_RSA_WITH_AES_256_CBC_SHA256
PJ_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = _pjsua2.PJ_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
PJ_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = _pjsua2.PJ_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
PJ_TLS_DH_anon_WITH_RC4_128_MD5 = _pjsua2.PJ_TLS_DH_anon_WITH_RC4_128_MD5
PJ_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = _pjsua2.PJ_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
PJ_TLS_DH_anon_WITH_AES_128_CBC_SHA = _pjsua2.PJ_TLS_DH_anon_WITH_AES_128_CBC_SHA
PJ_TLS_DH_anon_WITH_AES_256_CBC_SHA = _pjsua2.PJ_TLS_DH_anon_WITH_AES_256_CBC_SHA
PJ_TLS_DH_anon_WITH_AES_128_CBC_SHA256 = _pjsua2.PJ_TLS_DH_anon_WITH_AES_128_CBC_SHA256
PJ_TLS_DH_anon_WITH_AES_256_CBC_SHA256 = _pjsua2.PJ_TLS_DH_anon_WITH_AES_256_CBC_SHA256
PJ_TLS_RSA_EXPORT_WITH_RC4_40_MD5 = _pjsua2.PJ_TLS_RSA_EXPORT_WITH_RC4_40_MD5
PJ_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = _pjsua2.PJ_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
PJ_TLS_RSA_WITH_IDEA_CBC_SHA = _pjsua2.PJ_TLS_RSA_WITH_IDEA_CBC_SHA
PJ_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = _pjsua2.PJ_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
PJ_TLS_RSA_WITH_DES_CBC_SHA = _pjsua2.PJ_TLS_RSA_WITH_DES_CBC_SHA
PJ_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = _pjsua2.PJ_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
PJ_TLS_DH_DSS_WITH_DES_CBC_SHA = _pjsua2.PJ_TLS_DH_DSS_WITH_DES_CBC_SHA
PJ_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = _pjsua2.PJ_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
PJ_TLS_DH_RSA_WITH_DES_CBC_SHA = _pjsua2.PJ_TLS_DH_RSA_WITH_DES_CBC_SHA
PJ_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = _pjsua2.PJ_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
PJ_TLS_DHE_DSS_WITH_DES_CBC_SHA = _pjsua2.PJ_TLS_DHE_DSS_WITH_DES_CBC_SHA
PJ_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = _pjsua2.PJ_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
PJ_TLS_DHE_RSA_WITH_DES_CBC_SHA = _pjsua2.PJ_TLS_DHE_RSA_WITH_DES_CBC_SHA
PJ_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = _pjsua2.PJ_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
PJ_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = _pjsua2.PJ_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
PJ_TLS_DH_anon_WITH_DES_CBC_SHA = _pjsua2.PJ_TLS_DH_anon_WITH_DES_CBC_SHA
PJ_SSL_FORTEZZA_KEA_WITH_NULL_SHA = _pjsua2.PJ_SSL_FORTEZZA_KEA_WITH_NULL_SHA
PJ_SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA = _pjsua2.PJ_SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA
PJ_SSL_FORTEZZA_KEA_WITH_RC4_128_SHA = _pjsua2.PJ_SSL_FORTEZZA_KEA_WITH_RC4_128_SHA
PJ_SSL_CK_RC4_128_WITH_MD5 = _pjsua2.PJ_SSL_CK_RC4_128_WITH_MD5
PJ_SSL_CK_RC4_128_EXPORT40_WITH_MD5 = _pjsua2.PJ_SSL_CK_RC4_128_EXPORT40_WITH_MD5
PJ_SSL_CK_RC2_128_CBC_WITH_MD5 = _pjsua2.PJ_SSL_CK_RC2_128_CBC_WITH_MD5
PJ_SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 = _pjsua2.PJ_SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5
PJ_SSL_CK_IDEA_128_CBC_WITH_MD5 = _pjsua2.PJ_SSL_CK_IDEA_128_CBC_WITH_MD5
PJ_SSL_CK_DES_64_CBC_WITH_MD5 = _pjsua2.PJ_SSL_CK_DES_64_CBC_WITH_MD5
PJ_SSL_CK_DES_192_EDE3_CBC_WITH_MD5 = _pjsua2.PJ_SSL_CK_DES_192_EDE3_CBC_WITH_MD5
PJ_SSL_SOCK_PROTO_DEFAULT = _pjsua2.PJ_SSL_SOCK_PROTO_DEFAULT
PJ_SSL_SOCK_PROTO_SSL2 = _pjsua2.PJ_SSL_SOCK_PROTO_SSL2
PJ_SSL_SOCK_PROTO_SSL3 = _pjsua2.PJ_SSL_SOCK_PROTO_SSL3
PJ_SSL_SOCK_PROTO_TLS1 = _pjsua2.PJ_SSL_SOCK_PROTO_TLS1
PJ_SSL_SOCK_PROTO_TLS1_1 = _pjsua2.PJ_SSL_SOCK_PROTO_TLS1_1
PJ_SSL_SOCK_PROTO_TLS1_2 = _pjsua2.PJ_SSL_SOCK_PROTO_TLS1_2
PJ_SSL_SOCK_PROTO_TLS1_3 = _pjsua2.PJ_SSL_SOCK_PROTO_TLS1_3
PJ_SSL_SOCK_PROTO_SSL23 = _pjsua2.PJ_SSL_SOCK_PROTO_SSL23
PJ_SSL_SOCK_PROTO_ALL = _pjsua2.PJ_SSL_SOCK_PROTO_ALL
PJ_SSL_SOCK_PROTO_DTLS1 = _pjsua2.PJ_SSL_SOCK_PROTO_DTLS1
PJ_SSL_CERT_NAME_UNKNOWN = _pjsua2.PJ_SSL_CERT_NAME_UNKNOWN
PJ_SSL_CERT_NAME_RFC822 = _pjsua2.PJ_SSL_CERT_NAME_RFC822
PJ_SSL_CERT_NAME_DNS = _pjsua2.PJ_SSL_CERT_NAME_DNS
PJ_SSL_CERT_NAME_URI = _pjsua2.PJ_SSL_CERT_NAME_URI
PJ_SSL_CERT_NAME_IP = _pjsua2.PJ_SSL_CERT_NAME_IP
PJ_SSL_CERT_ESUCCESS = _pjsua2.PJ_SSL_CERT_ESUCCESS
PJ_SSL_CERT_EISSUER_NOT_FOUND = _pjsua2.PJ_SSL_CERT_EISSUER_NOT_FOUND
PJ_SSL_CERT_EUNTRUSTED = _pjsua2.PJ_SSL_CERT_EUNTRUSTED
PJ_SSL_CERT_EVALIDITY_PERIOD = _pjsua2.PJ_SSL_CERT_EVALIDITY_PERIOD
PJ_SSL_CERT_EINVALID_FORMAT = _pjsua2.PJ_SSL_CERT_EINVALID_FORMAT
PJ_SSL_CERT_EINVALID_PURPOSE = _pjsua2.PJ_SSL_CERT_EINVALID_PURPOSE
PJ_SSL_CERT_EISSUER_MISMATCH = _pjsua2.PJ_SSL_CERT_EISSUER_MISMATCH
PJ_SSL_CERT_ECRL_FAILURE = _pjsua2.PJ_SSL_CERT_ECRL_FAILURE
PJ_SSL_CERT_EREVOKED = _pjsua2.PJ_SSL_CERT_EREVOKED
PJ_SSL_CERT_ECHAIN_TOO_LONG = _pjsua2.PJ_SSL_CERT_ECHAIN_TOO_LONG
PJ_SSL_CERT_EIDENTITY_NOT_MATCH = _pjsua2.PJ_SSL_CERT_EIDENTITY_NOT_MATCH
PJ_SSL_CERT_EUNKNOWN = _pjsua2.PJ_SSL_CERT_EUNKNOWN
PJ_ICE_SESS_TRICKLE_DISABLED = _pjsua2.PJ_ICE_SESS_TRICKLE_DISABLED
PJ_ICE_SESS_TRICKLE_HALF = _pjsua2.PJ_ICE_SESS_TRICKLE_HALF
PJ_ICE_SESS_TRICKLE_FULL = _pjsua2.PJ_ICE_SESS_TRICKLE_FULL
PJ_STUN_NAT_TYPE_UNKNOWN = _pjsua2.PJ_STUN_NAT_TYPE_UNKNOWN
PJ_STUN_NAT_TYPE_ERR_UNKNOWN = _pjsua2.PJ_STUN_NAT_TYPE_ERR_UNKNOWN
PJ_STUN_NAT_TYPE_OPEN = _pjsua2.PJ_STUN_NAT_TYPE_OPEN
PJ_STUN_NAT_TYPE_BLOCKED = _pjsua2.PJ_STUN_NAT_TYPE_BLOCKED
PJ_STUN_NAT_TYPE_SYMMETRIC_UDP = _pjsua2.PJ_STUN_NAT_TYPE_SYMMETRIC_UDP
PJ_STUN_NAT_TYPE_FULL_CONE = _pjsua2.PJ_STUN_NAT_TYPE_FULL_CONE
PJ_STUN_NAT_TYPE_SYMMETRIC = _pjsua2.PJ_STUN_NAT_TYPE_SYMMETRIC
PJ_STUN_NAT_TYPE_RESTRICTED = _pjsua2.PJ_STUN_NAT_TYPE_RESTRICTED
PJ_STUN_NAT_TYPE_PORT_RESTRICTED = _pjsua2.PJ_STUN_NAT_TYPE_PORT_RESTRICTED
PJ_TURN_TP_UDP = _pjsua2.PJ_TURN_TP_UDP
PJ_TURN_TP_TCP = _pjsua2.PJ_TURN_TP_TCP
PJ_TURN_TP_TLS = _pjsua2.PJ_TURN_TP_TLS
PJMEDIA_ECHO_DEFAULT = _pjsua2.PJMEDIA_ECHO_DEFAULT
PJMEDIA_ECHO_SPEEX = _pjsua2.PJMEDIA_ECHO_SPEEX
PJMEDIA_ECHO_SIMPLE = _pjsua2.PJMEDIA_ECHO_SIMPLE
PJMEDIA_ECHO_WEBRTC = _pjsua2.PJMEDIA_ECHO_WEBRTC
PJMEDIA_ECHO_ALGO_MASK = _pjsua2.PJMEDIA_ECHO_ALGO_MASK
PJMEDIA_ECHO_NO_LOCK = _pjsua2.PJMEDIA_ECHO_NO_LOCK
PJMEDIA_ECHO_USE_SIMPLE_FIFO = _pjsua2.PJMEDIA_ECHO_USE_SIMPLE_FIFO
PJMEDIA_ECHO_USE_SW_ECHO = _pjsua2.PJMEDIA_ECHO_USE_SW_ECHO
PJMEDIA_ECHO_USE_NOISE_SUPPRESSOR = _pjsua2.PJMEDIA_ECHO_USE_NOISE_SUPPRESSOR
PJMEDIA_ECHO_AGGRESSIVENESS_DEFAULT = _pjsua2.PJMEDIA_ECHO_AGGRESSIVENESS_DEFAULT
PJMEDIA_ECHO_AGGRESSIVENESS_CONSERVATIVE = _pjsua2.PJMEDIA_ECHO_AGGRESSIVENESS_CONSERVATIVE
PJMEDIA_ECHO_AGGRESSIVENESS_MODERATE = _pjsua2.PJMEDIA_ECHO_AGGRESSIVENESS_MODERATE
PJMEDIA_ECHO_AGGRESSIVENESS_AGGRESSIVE = _pjsua2.PJMEDIA_ECHO_AGGRESSIVENESS_AGGRESSIVE
PJMEDIA_ECHO_AGGRESSIVENESS_MASK = _pjsua2.PJMEDIA_ECHO_AGGRESSIVENESS_MASK
PJMEDIA_EVENT_NONE = _pjsua2.PJMEDIA_EVENT_NONE
PJMEDIA_EVENT_FMT_CHANGED = _pjsua2.PJMEDIA_EVENT_FMT_CHANGED
PJMEDIA_EVENT_WND_CLOSING = _pjsua2.PJMEDIA_EVENT_WND_CLOSING
PJMEDIA_EVENT_WND_CLOSED = _pjsua2.PJMEDIA_EVENT_WND_CLOSED
PJMEDIA_EVENT_WND_RESIZED = _pjsua2.PJMEDIA_EVENT_WND_RESIZED
PJMEDIA_EVENT_MOUSE_BTN_DOWN = _pjsua2.PJMEDIA_EVENT_MOUSE_BTN_DOWN
PJMEDIA_EVENT_KEYFRAME_FOUND = _pjsua2.PJMEDIA_EVENT_KEYFRAME_FOUND
PJMEDIA_EVENT_KEYFRAME_MISSING = _pjsua2.PJMEDIA_EVENT_KEYFRAME_MISSING
PJMEDIA_EVENT_ORIENT_CHANGED = _pjsua2.PJMEDIA_EVENT_ORIENT_CHANGED
PJMEDIA_EVENT_RX_RTCP_FB = _pjsua2.PJMEDIA_EVENT_RX_RTCP_FB
PJMEDIA_EVENT_AUD_DEV_ERROR = _pjsua2.PJMEDIA_EVENT_AUD_DEV_ERROR
PJMEDIA_EVENT_VID_DEV_ERROR = _pjsua2.PJMEDIA_EVENT_VID_DEV_ERROR
PJMEDIA_EVENT_MEDIA_TP_ERR = _pjsua2.PJMEDIA_EVENT_MEDIA_TP_ERR
PJMEDIA_EVENT_CALLBACK = _pjsua2.PJMEDIA_EVENT_CALLBACK
PJMEDIA_SRTP_DISABLED = _pjsua2.PJMEDIA_SRTP_DISABLED
PJMEDIA_SRTP_UNKNOWN = _pjsua2.PJMEDIA_SRTP_UNKNOWN
PJMEDIA_SRTP_OPTIONAL = _pjsua2.PJMEDIA_SRTP_OPTIONAL
PJMEDIA_SRTP_MANDATORY = _pjsua2.PJMEDIA_SRTP_MANDATORY
PJMEDIA_SRTP_NO_ENCRYPTION = _pjsua2.PJMEDIA_SRTP_NO_ENCRYPTION
PJMEDIA_SRTP_NO_AUTHENTICATION = _pjsua2.PJMEDIA_SRTP_NO_AUTHENTICATION
PJMEDIA_SRTP_KEYING_SDES = _pjsua2.PJMEDIA_SRTP_KEYING_SDES
PJMEDIA_SRTP_KEYING_DTLS_SRTP = _pjsua2.PJMEDIA_SRTP_KEYING_DTLS_SRTP
PJMEDIA_SRTP_KEYINGS_COUNT = _pjsua2.PJMEDIA_SRTP_KEYINGS_COUNT
PJMEDIA_VID_STREAM_RC_NONE = _pjsua2.PJMEDIA_VID_STREAM_RC_NONE
PJMEDIA_VID_STREAM_RC_SIMPLE_BLOCKING = _pjsua2.PJMEDIA_VID_STREAM_RC_SIMPLE_BLOCKING
PJMEDIA_VID_DEFAULT_CAPTURE_DEV = _pjsua2.PJMEDIA_VID_DEFAULT_CAPTURE_DEV
PJMEDIA_VID_DEFAULT_RENDER_DEV = _pjsua2.PJMEDIA_VID_DEFAULT_RENDER_DEV
PJMEDIA_VID_INVALID_DEV = _pjsua2.PJMEDIA_VID_INVALID_DEV
PJMEDIA_VID_DEV_CAP_FORMAT = _pjsua2.PJMEDIA_VID_DEV_CAP_FORMAT
PJMEDIA_VID_DEV_CAP_INPUT_SCALE = _pjsua2.PJMEDIA_VID_DEV_CAP_INPUT_SCALE
PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW = _pjsua2.PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW
PJMEDIA_VID_DEV_CAP_OUTPUT_RESIZE = _pjsua2.PJMEDIA_VID_DEV_CAP_OUTPUT_RESIZE
PJMEDIA_VID_DEV_CAP_OUTPUT_POSITION = _pjsua2.PJMEDIA_VID_DEV_CAP_OUTPUT_POSITION
PJMEDIA_VID_DEV_CAP_OUTPUT_HIDE = _pjsua2.PJMEDIA_VID_DEV_CAP_OUTPUT_HIDE
PJMEDIA_VID_DEV_CAP_INPUT_PREVIEW = _pjsua2.PJMEDIA_VID_DEV_CAP_INPUT_PREVIEW
PJMEDIA_VID_DEV_CAP_ORIENTATION = _pjsua2.PJMEDIA_VID_DEV_CAP_ORIENTATION
PJMEDIA_VID_DEV_CAP_SWITCH = _pjsua2.PJMEDIA_VID_DEV_CAP_SWITCH
PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS = _pjsua2.PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS
PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN = _pjsua2.PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN
PJMEDIA_VID_DEV_CAP_MAX = _pjsua2.PJMEDIA_VID_DEV_CAP_MAX
PJMEDIA_VID_DEV_WINDOWED = _pjsua2.PJMEDIA_VID_DEV_WINDOWED
PJMEDIA_VID_DEV_FULLSCREEN = _pjsua2.PJMEDIA_VID_DEV_FULLSCREEN
PJMEDIA_VID_DEV_FULLSCREEN_DESKTOP = _pjsua2.PJMEDIA_VID_DEV_FULLSCREEN_DESKTOP
PJMEDIA_AUD_DEV_ROUTE_DEFAULT = _pjsua2.PJMEDIA_AUD_DEV_ROUTE_DEFAULT
PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER = _pjsua2.PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER
PJMEDIA_AUD_DEV_ROUTE_EARPIECE = _pjsua2.PJMEDIA_AUD_DEV_ROUTE_EARPIECE
PJMEDIA_AUD_DEV_ROUTE_BLUETOOTH = _pjsua2.PJMEDIA_AUD_DEV_ROUTE_BLUETOOTH
PJMEDIA_AUD_DEV_ROUTE_CUSTOM = _pjsua2.PJMEDIA_AUD_DEV_ROUTE_CUSTOM
PJMEDIA_AUD_DEV_CAP_EXT_FORMAT = _pjsua2.PJMEDIA_AUD_DEV_CAP_EXT_FORMAT
PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY = _pjsua2.PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY
PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY = _pjsua2.PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY
PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING = _pjsua2.PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING
PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING = _pjsua2.PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING
PJMEDIA_AUD_DEV_CAP_INPUT_SIGNAL_METER = _pjsua2.PJMEDIA_AUD_DEV_CAP_INPUT_SIGNAL_METER
PJMEDIA_AUD_DEV_CAP_OUTPUT_SIGNAL_METER = _pjsua2.PJMEDIA_AUD_DEV_CAP_OUTPUT_SIGNAL_METER
PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE = _pjsua2.PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE
PJMEDIA_AUD_DEV_CAP_INPUT_SOURCE = _pjsua2.PJMEDIA_AUD_DEV_CAP_INPUT_SOURCE
PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE = _pjsua2.PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE
PJMEDIA_AUD_DEV_CAP_EC = _pjsua2.PJMEDIA_AUD_DEV_CAP_EC
PJMEDIA_AUD_DEV_CAP_EC_TAIL = _pjsua2.PJMEDIA_AUD_DEV_CAP_EC_TAIL
PJMEDIA_AUD_DEV_CAP_VAD = _pjsua2.PJMEDIA_AUD_DEV_CAP_VAD
PJMEDIA_AUD_DEV_CAP_CNG = _pjsua2.PJMEDIA_AUD_DEV_CAP_CNG
PJMEDIA_AUD_DEV_CAP_PLC = _pjsua2.PJMEDIA_AUD_DEV_CAP_PLC
PJMEDIA_AUD_DEV_CAP_MAX = _pjsua2.PJMEDIA_AUD_DEV_CAP_MAX
PJMEDIA_FILE_WRITE_PCM = _pjsua2.PJMEDIA_FILE_WRITE_PCM
PJMEDIA_FILE_WRITE_ALAW = _pjsua2.PJMEDIA_FILE_WRITE_ALAW
PJMEDIA_FILE_WRITE_ULAW = _pjsua2.PJMEDIA_FILE_WRITE_ULAW
PJMEDIA_FILE_NO_LOOP = _pjsua2.PJMEDIA_FILE_NO_LOOP
class pjmedia_tone_digit(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    digit = property(_pjsua2.pjmedia_tone_digit_digit_get, _pjsua2.pjmedia_tone_digit_digit_set)
    on_msec = property(_pjsua2.pjmedia_tone_digit_on_msec_get, _pjsua2.pjmedia_tone_digit_on_msec_set)
    off_msec = property(_pjsua2.pjmedia_tone_digit_off_msec_get, _pjsua2.pjmedia_tone_digit_off_msec_set)
    volume = property(_pjsua2.pjmedia_tone_digit_volume_get, _pjsua2.pjmedia_tone_digit_volume_set)

    def __init__(self):
        _pjsua2.pjmedia_tone_digit_swiginit(self, _pjsua2.new_pjmedia_tone_digit())
    __swig_destroy__ = _pjsua2.delete_pjmedia_tone_digit

# Register pjmedia_tone_digit in _pjsua2:
_pjsua2.pjmedia_tone_digit_swigregister(pjmedia_tone_digit)

class pjmedia_tone_digit_map(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    count = property(_pjsua2.pjmedia_tone_digit_map_count_get, _pjsua2.pjmedia_tone_digit_map_count_set)

    def __init__(self):
        _pjsua2.pjmedia_tone_digit_map_swiginit(self, _pjsua2.new_pjmedia_tone_digit_map())
    __swig_destroy__ = _pjsua2.delete_pjmedia_tone_digit_map

# Register pjmedia_tone_digit_map in _pjsua2:
_pjsua2.pjmedia_tone_digit_map_swigregister(pjmedia_tone_digit_map)

class pjmedia_tone_desc(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    freq1 = property(_pjsua2.pjmedia_tone_desc_freq1_get, _pjsua2.pjmedia_tone_desc_freq1_set)
    freq2 = property(_pjsua2.pjmedia_tone_desc_freq2_get, _pjsua2.pjmedia_tone_desc_freq2_set)
    on_msec = property(_pjsua2.pjmedia_tone_desc_on_msec_get, _pjsua2.pjmedia_tone_desc_on_msec_set)
    off_msec = property(_pjsua2.pjmedia_tone_desc_off_msec_get, _pjsua2.pjmedia_tone_desc_off_msec_set)
    volume = property(_pjsua2.pjmedia_tone_desc_volume_get, _pjsua2.pjmedia_tone_desc_volume_set)
    flags = property(_pjsua2.pjmedia_tone_desc_flags_get, _pjsua2.pjmedia_tone_desc_flags_set)

    def __init__(self):
        _pjsua2.pjmedia_tone_desc_swiginit(self, _pjsua2.new_pjmedia_tone_desc())
    __swig_destroy__ = _pjsua2.delete_pjmedia_tone_desc

# Register pjmedia_tone_desc in _pjsua2:
_pjsua2.pjmedia_tone_desc_swigregister(pjmedia_tone_desc)

PJMEDIA_TYPE_NONE = _pjsua2.PJMEDIA_TYPE_NONE
PJMEDIA_TYPE_AUDIO = _pjsua2.PJMEDIA_TYPE_AUDIO
PJMEDIA_TYPE_VIDEO = _pjsua2.PJMEDIA_TYPE_VIDEO
PJMEDIA_TYPE_APPLICATION = _pjsua2.PJMEDIA_TYPE_APPLICATION
PJMEDIA_TYPE_UNKNOWN = _pjsua2.PJMEDIA_TYPE_UNKNOWN
PJMEDIA_DIR_NONE = _pjsua2.PJMEDIA_DIR_NONE
PJMEDIA_DIR_ENCODING = _pjsua2.PJMEDIA_DIR_ENCODING
PJMEDIA_DIR_CAPTURE = _pjsua2.PJMEDIA_DIR_CAPTURE
PJMEDIA_DIR_DECODING = _pjsua2.PJMEDIA_DIR_DECODING
PJMEDIA_DIR_PLAYBACK = _pjsua2.PJMEDIA_DIR_PLAYBACK
PJMEDIA_DIR_RENDER = _pjsua2.PJMEDIA_DIR_RENDER
PJMEDIA_DIR_ENCODING_DECODING = _pjsua2.PJMEDIA_DIR_ENCODING_DECODING
PJMEDIA_DIR_CAPTURE_PLAYBACK = _pjsua2.PJMEDIA_DIR_CAPTURE_PLAYBACK
PJMEDIA_DIR_CAPTURE_RENDER = _pjsua2.PJMEDIA_DIR_CAPTURE_RENDER
PJMEDIA_TP_PROTO_NONE = _pjsua2.PJMEDIA_TP_PROTO_NONE
PJMEDIA_TP_PROTO_UNKNOWN = _pjsua2.PJMEDIA_TP_PROTO_UNKNOWN
PJMEDIA_TP_PROTO_UDP = _pjsua2.PJMEDIA_TP_PROTO_UDP
PJMEDIA_TP_PROTO_RTP = _pjsua2.PJMEDIA_TP_PROTO_RTP
PJMEDIA_TP_PROTO_DTLS = _pjsua2.PJMEDIA_TP_PROTO_DTLS
PJMEDIA_TP_PROFILE_RTCP_FB = _pjsua2.PJMEDIA_TP_PROFILE_RTCP_FB
PJMEDIA_TP_PROFILE_SRTP = _pjsua2.PJMEDIA_TP_PROFILE_SRTP
PJMEDIA_TP_PROFILE_AVP = _pjsua2.PJMEDIA_TP_PROFILE_AVP
PJMEDIA_TP_PROTO_RTP_AVP = _pjsua2.PJMEDIA_TP_PROTO_RTP_AVP
PJMEDIA_TP_PROTO_RTP_SAVP = _pjsua2.PJMEDIA_TP_PROTO_RTP_SAVP
PJMEDIA_TP_PROTO_DTLS_SRTP = _pjsua2.PJMEDIA_TP_PROTO_DTLS_SRTP
PJMEDIA_TP_PROTO_RTP_AVPF = _pjsua2.PJMEDIA_TP_PROTO_RTP_AVPF
PJMEDIA_TP_PROTO_RTP_SAVPF = _pjsua2.PJMEDIA_TP_PROTO_RTP_SAVPF
PJMEDIA_TP_PROTO_DTLS_SRTPF = _pjsua2.PJMEDIA_TP_PROTO_DTLS_SRTPF
PJMEDIA_ORIENT_UNKNOWN = _pjsua2.PJMEDIA_ORIENT_UNKNOWN
PJMEDIA_ORIENT_NATURAL = _pjsua2.PJMEDIA_ORIENT_NATURAL
PJMEDIA_ORIENT_ROTATE_90DEG = _pjsua2.PJMEDIA_ORIENT_ROTATE_90DEG
PJMEDIA_ORIENT_ROTATE_180DEG = _pjsua2.PJMEDIA_ORIENT_ROTATE_180DEG
PJMEDIA_ORIENT_ROTATE_270DEG = _pjsua2.PJMEDIA_ORIENT_ROTATE_270DEG
PJMEDIA_FORMAT_L16 = _pjsua2.PJMEDIA_FORMAT_L16
PJMEDIA_FORMAT_PCM = _pjsua2.PJMEDIA_FORMAT_PCM
PJMEDIA_FORMAT_PCMA = _pjsua2.PJMEDIA_FORMAT_PCMA
PJMEDIA_FORMAT_ALAW = _pjsua2.PJMEDIA_FORMAT_ALAW
PJMEDIA_FORMAT_PCMU = _pjsua2.PJMEDIA_FORMAT_PCMU
PJMEDIA_FORMAT_ULAW = _pjsua2.PJMEDIA_FORMAT_ULAW
PJMEDIA_FORMAT_AMR = _pjsua2.PJMEDIA_FORMAT_AMR
PJMEDIA_FORMAT_G729 = _pjsua2.PJMEDIA_FORMAT_G729
PJMEDIA_FORMAT_ILBC = _pjsua2.PJMEDIA_FORMAT_ILBC
PJMEDIA_FORMAT_RGB24 = _pjsua2.PJMEDIA_FORMAT_RGB24
PJMEDIA_FORMAT_RGBA = _pjsua2.PJMEDIA_FORMAT_RGBA
PJMEDIA_FORMAT_BGRA = _pjsua2.PJMEDIA_FORMAT_BGRA
PJMEDIA_FORMAT_RGB32 = _pjsua2.PJMEDIA_FORMAT_RGB32
PJMEDIA_FORMAT_DIB = _pjsua2.PJMEDIA_FORMAT_DIB
PJMEDIA_FORMAT_GBRP = _pjsua2.PJMEDIA_FORMAT_GBRP
PJMEDIA_FORMAT_AYUV = _pjsua2.PJMEDIA_FORMAT_AYUV
PJMEDIA_FORMAT_YUY2 = _pjsua2.PJMEDIA_FORMAT_YUY2
PJMEDIA_FORMAT_UYVY = _pjsua2.PJMEDIA_FORMAT_UYVY
PJMEDIA_FORMAT_YVYU = _pjsua2.PJMEDIA_FORMAT_YVYU
PJMEDIA_FORMAT_I420 = _pjsua2.PJMEDIA_FORMAT_I420
PJMEDIA_FORMAT_IYUV = _pjsua2.PJMEDIA_FORMAT_IYUV
PJMEDIA_FORMAT_YV12 = _pjsua2.PJMEDIA_FORMAT_YV12
PJMEDIA_FORMAT_NV12 = _pjsua2.PJMEDIA_FORMAT_NV12
PJMEDIA_FORMAT_NV21 = _pjsua2.PJMEDIA_FORMAT_NV21
PJMEDIA_FORMAT_I422 = _pjsua2.PJMEDIA_FORMAT_I422
PJMEDIA_FORMAT_I420JPEG = _pjsua2.PJMEDIA_FORMAT_I420JPEG
PJMEDIA_FORMAT_I422JPEG = _pjsua2.PJMEDIA_FORMAT_I422JPEG
PJMEDIA_FORMAT_H261 = _pjsua2.PJMEDIA_FORMAT_H261
PJMEDIA_FORMAT_H263 = _pjsua2.PJMEDIA_FORMAT_H263
PJMEDIA_FORMAT_H263P = _pjsua2.PJMEDIA_FORMAT_H263P
PJMEDIA_FORMAT_H264 = _pjsua2.PJMEDIA_FORMAT_H264
PJMEDIA_FORMAT_VP8 = _pjsua2.PJMEDIA_FORMAT_VP8
PJMEDIA_FORMAT_VP9 = _pjsua2.PJMEDIA_FORMAT_VP9
PJMEDIA_FORMAT_MJPEG = _pjsua2.PJMEDIA_FORMAT_MJPEG
PJMEDIA_FORMAT_MPEG1VIDEO = _pjsua2.PJMEDIA_FORMAT_MPEG1VIDEO
PJMEDIA_FORMAT_MPEG2VIDEO = _pjsua2.PJMEDIA_FORMAT_MPEG2VIDEO
PJMEDIA_FORMAT_MPEG4 = _pjsua2.PJMEDIA_FORMAT_MPEG4
PJMEDIA_FORMAT_INVALID = _pjsua2.PJMEDIA_FORMAT_INVALID
PJMEDIA_VID_PACKING_UNKNOWN = _pjsua2.PJMEDIA_VID_PACKING_UNKNOWN
PJMEDIA_VID_PACKING_PACKETS = _pjsua2.PJMEDIA_VID_PACKING_PACKETS
PJMEDIA_VID_PACKING_WHOLE = _pjsua2.PJMEDIA_VID_PACKING_WHOLE
PJMEDIA_RTCP_FB_ACK = _pjsua2.PJMEDIA_RTCP_FB_ACK
PJMEDIA_RTCP_FB_NACK = _pjsua2.PJMEDIA_RTCP_FB_NACK
PJMEDIA_RTCP_FB_TRR_INT = _pjsua2.PJMEDIA_RTCP_FB_TRR_INT
PJMEDIA_RTCP_FB_OTHER = _pjsua2.PJMEDIA_RTCP_FB_OTHER
PJSIP_CRED_DATA_PLAIN_PASSWD = _pjsua2.PJSIP_CRED_DATA_PLAIN_PASSWD
PJSIP_CRED_DATA_DIGEST = _pjsua2.PJSIP_CRED_DATA_DIGEST
PJSIP_CRED_DATA_EXT_AKA = _pjsua2.PJSIP_CRED_DATA_EXT_AKA
PJSIP_DIALOG_CAP_UNSUPPORTED = _pjsua2.PJSIP_DIALOG_CAP_UNSUPPORTED
PJSIP_DIALOG_CAP_SUPPORTED = _pjsua2.PJSIP_DIALOG_CAP_SUPPORTED
PJSIP_DIALOG_CAP_UNKNOWN = _pjsua2.PJSIP_DIALOG_CAP_UNKNOWN
PJSIP_EVENT_UNKNOWN = _pjsua2.PJSIP_EVENT_UNKNOWN
PJSIP_EVENT_TIMER = _pjsua2.PJSIP_EVENT_TIMER
PJSIP_EVENT_TX_MSG = _pjsua2.PJSIP_EVENT_TX_MSG
PJSIP_EVENT_RX_MSG = _pjsua2.PJSIP_EVENT_RX_MSG
PJSIP_EVENT_TRANSPORT_ERROR = _pjsua2.PJSIP_EVENT_TRANSPORT_ERROR
PJSIP_EVENT_TSX_STATE = _pjsua2.PJSIP_EVENT_TSX_STATE
PJSIP_EVENT_USER = _pjsua2.PJSIP_EVENT_USER
PJSIP_SC_NULL = _pjsua2.PJSIP_SC_NULL
PJSIP_SC_TRYING = _pjsua2.PJSIP_SC_TRYING
PJSIP_SC_RINGING = _pjsua2.PJSIP_SC_RINGING
PJSIP_SC_CALL_BEING_FORWARDED = _pjsua2.PJSIP_SC_CALL_BEING_FORWARDED
PJSIP_SC_QUEUED = _pjsua2.PJSIP_SC_QUEUED
PJSIP_SC_PROGRESS = _pjsua2.PJSIP_SC_PROGRESS
PJSIP_SC_EARLY_DIALOG_TERMINATED = _pjsua2.PJSIP_SC_EARLY_DIALOG_TERMINATED
PJSIP_SC_OK = _pjsua2.PJSIP_SC_OK
PJSIP_SC_ACCEPTED = _pjsua2.PJSIP_SC_ACCEPTED
PJSIP_SC_NO_NOTIFICATION = _pjsua2.PJSIP_SC_NO_NOTIFICATION
PJSIP_SC_MULTIPLE_CHOICES = _pjsua2.PJSIP_SC_MULTIPLE_CHOICES
PJSIP_SC_MOVED_PERMANENTLY = _pjsua2.PJSIP_SC_MOVED_PERMANENTLY
PJSIP_SC_MOVED_TEMPORARILY = _pjsua2.PJSIP_SC_MOVED_TEMPORARILY
PJSIP_SC_USE_PROXY = _pjsua2.PJSIP_SC_USE_PROXY
PJSIP_SC_ALTERNATIVE_SERVICE = _pjsua2.PJSIP_SC_ALTERNATIVE_SERVICE
PJSIP_SC_BAD_REQUEST = _pjsua2.PJSIP_SC_BAD_REQUEST
PJSIP_SC_UNAUTHORIZED = _pjsua2.PJSIP_SC_UNAUTHORIZED
PJSIP_SC_PAYMENT_REQUIRED = _pjsua2.PJSIP_SC_PAYMENT_REQUIRED
PJSIP_SC_FORBIDDEN = _pjsua2.PJSIP_SC_FORBIDDEN
PJSIP_SC_NOT_FOUND = _pjsua2.PJSIP_SC_NOT_FOUND
PJSIP_SC_METHOD_NOT_ALLOWED = _pjsua2.PJSIP_SC_METHOD_NOT_ALLOWED
PJSIP_SC_NOT_ACCEPTABLE = _pjsua2.PJSIP_SC_NOT_ACCEPTABLE
PJSIP_SC_PROXY_AUTHENTICATION_REQUIRED = _pjsua2.PJSIP_SC_PROXY_AUTHENTICATION_REQUIRED
PJSIP_SC_REQUEST_TIMEOUT = _pjsua2.PJSIP_SC_REQUEST_TIMEOUT
PJSIP_SC_CONFLICT = _pjsua2.PJSIP_SC_CONFLICT
PJSIP_SC_GONE = _pjsua2.PJSIP_SC_GONE
PJSIP_SC_LENGTH_REQUIRED = _pjsua2.PJSIP_SC_LENGTH_REQUIRED
PJSIP_SC_CONDITIONAL_REQUEST_FAILED = _pjsua2.PJSIP_SC_CONDITIONAL_REQUEST_FAILED
PJSIP_SC_REQUEST_ENTITY_TOO_LARGE = _pjsua2.PJSIP_SC_REQUEST_ENTITY_TOO_LARGE
PJSIP_SC_REQUEST_URI_TOO_LONG = _pjsua2.PJSIP_SC_REQUEST_URI_TOO_LONG
PJSIP_SC_UNSUPPORTED_MEDIA_TYPE = _pjsua2.PJSIP_SC_UNSUPPORTED_MEDIA_TYPE
PJSIP_SC_UNSUPPORTED_URI_SCHEME = _pjsua2.PJSIP_SC_UNSUPPORTED_URI_SCHEME
PJSIP_SC_UNKNOWN_RESOURCE_PRIORITY = _pjsua2.PJSIP_SC_UNKNOWN_RESOURCE_PRIORITY
PJSIP_SC_BAD_EXTENSION = _pjsua2.PJSIP_SC_BAD_EXTENSION
PJSIP_SC_EXTENSION_REQUIRED = _pjsua2.PJSIP_SC_EXTENSION_REQUIRED
PJSIP_SC_SESSION_TIMER_TOO_SMALL = _pjsua2.PJSIP_SC_SESSION_TIMER_TOO_SMALL
PJSIP_SC_INTERVAL_TOO_BRIEF = _pjsua2.PJSIP_SC_INTERVAL_TOO_BRIEF
PJSIP_SC_BAD_LOCATION_INFORMATION = _pjsua2.PJSIP_SC_BAD_LOCATION_INFORMATION
PJSIP_SC_USE_IDENTITY_HEADER = _pjsua2.PJSIP_SC_USE_IDENTITY_HEADER
PJSIP_SC_PROVIDE_REFERRER_HEADER = _pjsua2.PJSIP_SC_PROVIDE_REFERRER_HEADER
PJSIP_SC_FLOW_FAILED = _pjsua2.PJSIP_SC_FLOW_FAILED
PJSIP_SC_ANONIMITY_DISALLOWED = _pjsua2.PJSIP_SC_ANONIMITY_DISALLOWED
PJSIP_SC_BAD_IDENTITY_INFO = _pjsua2.PJSIP_SC_BAD_IDENTITY_INFO
PJSIP_SC_UNSUPPORTED_CERTIFICATE = _pjsua2.PJSIP_SC_UNSUPPORTED_CERTIFICATE
PJSIP_SC_INVALID_IDENTITY_HEADER = _pjsua2.PJSIP_SC_INVALID_IDENTITY_HEADER
PJSIP_SC_FIRST_HOP_LACKS_OUTBOUND_SUPPORT = _pjsua2.PJSIP_SC_FIRST_HOP_LACKS_OUTBOUND_SUPPORT
PJSIP_SC_MAX_BREADTH_EXCEEDED = _pjsua2.PJSIP_SC_MAX_BREADTH_EXCEEDED
PJSIP_SC_BAD_INFO_PACKAGE = _pjsua2.PJSIP_SC_BAD_INFO_PACKAGE
PJSIP_SC_CONSENT_NEEDED = _pjsua2.PJSIP_SC_CONSENT_NEEDED
PJSIP_SC_TEMPORARILY_UNAVAILABLE = _pjsua2.PJSIP_SC_TEMPORARILY_UNAVAILABLE
PJSIP_SC_CALL_TSX_DOES_NOT_EXIST = _pjsua2.PJSIP_SC_CALL_TSX_DOES_NOT_EXIST
PJSIP_SC_LOOP_DETECTED = _pjsua2.PJSIP_SC_LOOP_DETECTED
PJSIP_SC_TOO_MANY_HOPS = _pjsua2.PJSIP_SC_TOO_MANY_HOPS
PJSIP_SC_ADDRESS_INCOMPLETE = _pjsua2.PJSIP_SC_ADDRESS_INCOMPLETE
PJSIP_AC_AMBIGUOUS = _pjsua2.PJSIP_AC_AMBIGUOUS
PJSIP_SC_BUSY_HERE = _pjsua2.PJSIP_SC_BUSY_HERE
PJSIP_SC_REQUEST_TERMINATED = _pjsua2.PJSIP_SC_REQUEST_TERMINATED
PJSIP_SC_NOT_ACCEPTABLE_HERE = _pjsua2.PJSIP_SC_NOT_ACCEPTABLE_HERE
PJSIP_SC_BAD_EVENT = _pjsua2.PJSIP_SC_BAD_EVENT
PJSIP_SC_REQUEST_UPDATED = _pjsua2.PJSIP_SC_REQUEST_UPDATED
PJSIP_SC_REQUEST_PENDING = _pjsua2.PJSIP_SC_REQUEST_PENDING
PJSIP_SC_UNDECIPHERABLE = _pjsua2.PJSIP_SC_UNDECIPHERABLE
PJSIP_SC_SECURITY_AGREEMENT_NEEDED = _pjsua2.PJSIP_SC_SECURITY_AGREEMENT_NEEDED
PJSIP_SC_INTERNAL_SERVER_ERROR = _pjsua2.PJSIP_SC_INTERNAL_SERVER_ERROR
PJSIP_SC_NOT_IMPLEMENTED = _pjsua2.PJSIP_SC_NOT_IMPLEMENTED
PJSIP_SC_BAD_GATEWAY = _pjsua2.PJSIP_SC_BAD_GATEWAY
PJSIP_SC_SERVICE_UNAVAILABLE = _pjsua2.PJSIP_SC_SERVICE_UNAVAILABLE
PJSIP_SC_SERVER_TIMEOUT = _pjsua2.PJSIP_SC_SERVER_TIMEOUT
PJSIP_SC_VERSION_NOT_SUPPORTED = _pjsua2.PJSIP_SC_VERSION_NOT_SUPPORTED
PJSIP_SC_MESSAGE_TOO_LARGE = _pjsua2.PJSIP_SC_MESSAGE_TOO_LARGE
PJSIP_SC_PUSH_NOTIFICATION_SERVICE_NOT_SUPPORTED = _pjsua2.PJSIP_SC_PUSH_NOTIFICATION_SERVICE_NOT_SUPPORTED
PJSIP_SC_PRECONDITION_FAILURE = _pjsua2.PJSIP_SC_PRECONDITION_FAILURE
PJSIP_SC_BUSY_EVERYWHERE = _pjsua2.PJSIP_SC_BUSY_EVERYWHERE
PJSIP_SC_DECLINE = _pjsua2.PJSIP_SC_DECLINE
PJSIP_SC_DOES_NOT_EXIST_ANYWHERE = _pjsua2.PJSIP_SC_DOES_NOT_EXIST_ANYWHERE
PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE = _pjsua2.PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE
PJSIP_SC_UNWANTED = _pjsua2.PJSIP_SC_UNWANTED
PJSIP_SC_REJECTED = _pjsua2.PJSIP_SC_REJECTED
PJSIP_SC_TSX_TIMEOUT = _pjsua2.PJSIP_SC_TSX_TIMEOUT
PJSIP_SC_TSX_TRANSPORT_ERROR = _pjsua2.PJSIP_SC_TSX_TRANSPORT_ERROR
PJSIP_SC__force_32bit = _pjsua2.PJSIP_SC__force_32bit
PJSIP_H_ACCEPT = _pjsua2.PJSIP_H_ACCEPT
PJSIP_H_ACCEPT_ENCODING_UNIMP = _pjsua2.PJSIP_H_ACCEPT_ENCODING_UNIMP
PJSIP_H_ACCEPT_LANGUAGE_UNIMP = _pjsua2.PJSIP_H_ACCEPT_LANGUAGE_UNIMP
PJSIP_H_ALERT_INFO_UNIMP = _pjsua2.PJSIP_H_ALERT_INFO_UNIMP
PJSIP_H_ALLOW = _pjsua2.PJSIP_H_ALLOW
PJSIP_H_AUTHENTICATION_INFO_UNIMP = _pjsua2.PJSIP_H_AUTHENTICATION_INFO_UNIMP
PJSIP_H_AUTHORIZATION = _pjsua2.PJSIP_H_AUTHORIZATION
PJSIP_H_CALL_ID = _pjsua2.PJSIP_H_CALL_ID
PJSIP_H_CALL_INFO_UNIMP = _pjsua2.PJSIP_H_CALL_INFO_UNIMP
PJSIP_H_CONTACT = _pjsua2.PJSIP_H_CONTACT
PJSIP_H_CONTENT_DISPOSITION_UNIMP = _pjsua2.PJSIP_H_CONTENT_DISPOSITION_UNIMP
PJSIP_H_CONTENT_ENCODING_UNIMP = _pjsua2.PJSIP_H_CONTENT_ENCODING_UNIMP
PJSIP_H_CONTENT_LANGUAGE_UNIMP = _pjsua2.PJSIP_H_CONTENT_LANGUAGE_UNIMP
PJSIP_H_CONTENT_LENGTH = _pjsua2.PJSIP_H_CONTENT_LENGTH
PJSIP_H_CONTENT_TYPE = _pjsua2.PJSIP_H_CONTENT_TYPE
PJSIP_H_CSEQ = _pjsua2.PJSIP_H_CSEQ
PJSIP_H_DATE_UNIMP = _pjsua2.PJSIP_H_DATE_UNIMP
PJSIP_H_ERROR_INFO_UNIMP = _pjsua2.PJSIP_H_ERROR_INFO_UNIMP
PJSIP_H_EXPIRES = _pjsua2.PJSIP_H_EXPIRES
PJSIP_H_FROM = _pjsua2.PJSIP_H_FROM
PJSIP_H_IN_REPLY_TO_UNIMP = _pjsua2.PJSIP_H_IN_REPLY_TO_UNIMP
PJSIP_H_MAX_FORWARDS = _pjsua2.PJSIP_H_MAX_FORWARDS
PJSIP_H_MIME_VERSION_UNIMP = _pjsua2.PJSIP_H_MIME_VERSION_UNIMP
PJSIP_H_MIN_EXPIRES = _pjsua2.PJSIP_H_MIN_EXPIRES
PJSIP_H_ORGANIZATION_UNIMP = _pjsua2.PJSIP_H_ORGANIZATION_UNIMP
PJSIP_H_PRIORITY_UNIMP = _pjsua2.PJSIP_H_PRIORITY_UNIMP
PJSIP_H_PROXY_AUTHENTICATE = _pjsua2.PJSIP_H_PROXY_AUTHENTICATE
PJSIP_H_PROXY_AUTHORIZATION = _pjsua2.PJSIP_H_PROXY_AUTHORIZATION
PJSIP_H_PROXY_REQUIRE_UNIMP = _pjsua2.PJSIP_H_PROXY_REQUIRE_UNIMP
PJSIP_H_RECORD_ROUTE = _pjsua2.PJSIP_H_RECORD_ROUTE
PJSIP_H_REPLY_TO_UNIMP = _pjsua2.PJSIP_H_REPLY_TO_UNIMP
PJSIP_H_REQUIRE = _pjsua2.PJSIP_H_REQUIRE
PJSIP_H_RETRY_AFTER = _pjsua2.PJSIP_H_RETRY_AFTER
PJSIP_H_ROUTE = _pjsua2.PJSIP_H_ROUTE
PJSIP_H_SERVER_UNIMP = _pjsua2.PJSIP_H_SERVER_UNIMP
PJSIP_H_SUBJECT_UNIMP = _pjsua2.PJSIP_H_SUBJECT_UNIMP
PJSIP_H_SUPPORTED = _pjsua2.PJSIP_H_SUPPORTED
PJSIP_H_TIMESTAMP_UNIMP = _pjsua2.PJSIP_H_TIMESTAMP_UNIMP
PJSIP_H_TO = _pjsua2.PJSIP_H_TO
PJSIP_H_UNSUPPORTED = _pjsua2.PJSIP_H_UNSUPPORTED
PJSIP_H_USER_AGENT_UNIMP = _pjsua2.PJSIP_H_USER_AGENT_UNIMP
PJSIP_H_VIA = _pjsua2.PJSIP_H_VIA
PJSIP_H_WARNING_UNIMP = _pjsua2.PJSIP_H_WARNING_UNIMP
PJSIP_H_WWW_AUTHENTICATE = _pjsua2.PJSIP_H_WWW_AUTHENTICATE
PJSIP_H_OTHER = _pjsua2.PJSIP_H_OTHER
PJSIP_TRANSPORT_UNSPECIFIED = _pjsua2.PJSIP_TRANSPORT_UNSPECIFIED
PJSIP_TRANSPORT_UDP = _pjsua2.PJSIP_TRANSPORT_UDP
PJSIP_TRANSPORT_TCP = _pjsua2.PJSIP_TRANSPORT_TCP
PJSIP_TRANSPORT_TLS = _pjsua2.PJSIP_TRANSPORT_TLS
PJSIP_TRANSPORT_DTLS = _pjsua2.PJSIP_TRANSPORT_DTLS
PJSIP_TRANSPORT_SCTP = _pjsua2.PJSIP_TRANSPORT_SCTP
PJSIP_TRANSPORT_LOOP = _pjsua2.PJSIP_TRANSPORT_LOOP
PJSIP_TRANSPORT_LOOP_DGRAM = _pjsua2.PJSIP_TRANSPORT_LOOP_DGRAM
PJSIP_TRANSPORT_START_OTHER = _pjsua2.PJSIP_TRANSPORT_START_OTHER
PJSIP_TRANSPORT_IPV6 = _pjsua2.PJSIP_TRANSPORT_IPV6
PJSIP_TRANSPORT_UDP6 = _pjsua2.PJSIP_TRANSPORT_UDP6
PJSIP_TRANSPORT_TCP6 = _pjsua2.PJSIP_TRANSPORT_TCP6
PJSIP_TRANSPORT_TLS6 = _pjsua2.PJSIP_TRANSPORT_TLS6
PJSIP_TRANSPORT_DTLS6 = _pjsua2.PJSIP_TRANSPORT_DTLS6
PJSIP_TRANSPORT_RELIABLE = _pjsua2.PJSIP_TRANSPORT_RELIABLE
PJSIP_TRANSPORT_SECURE = _pjsua2.PJSIP_TRANSPORT_SECURE
PJSIP_TRANSPORT_DATAGRAM = _pjsua2.PJSIP_TRANSPORT_DATAGRAM
PJSIP_TP_STATE_CONNECTED = _pjsua2.PJSIP_TP_STATE_CONNECTED
PJSIP_TP_STATE_DISCONNECTED = _pjsua2.PJSIP_TP_STATE_DISCONNECTED
PJSIP_TP_STATE_SHUTDOWN = _pjsua2.PJSIP_TP_STATE_SHUTDOWN
PJSIP_TP_STATE_DESTROY = _pjsua2.PJSIP_TP_STATE_DESTROY
PJSIP_SSL_UNSPECIFIED_METHOD = _pjsua2.PJSIP_SSL_UNSPECIFIED_METHOD
PJSIP_SSLV2_METHOD = _pjsua2.PJSIP_SSLV2_METHOD
PJSIP_SSLV3_METHOD = _pjsua2.PJSIP_SSLV3_METHOD
PJSIP_TLSV1_METHOD = _pjsua2.PJSIP_TLSV1_METHOD
PJSIP_TLSV1_1_METHOD = _pjsua2.PJSIP_TLSV1_1_METHOD
PJSIP_TLSV1_2_METHOD = _pjsua2.PJSIP_TLSV1_2_METHOD
PJSIP_TLSV1_3_METHOD = _pjsua2.PJSIP_TLSV1_3_METHOD
PJSIP_SSLV23_METHOD = _pjsua2.PJSIP_SSLV23_METHOD
PJSIP_TSX_STATE_NULL = _pjsua2.PJSIP_TSX_STATE_NULL
PJSIP_TSX_STATE_CALLING = _pjsua2.PJSIP_TSX_STATE_CALLING
PJSIP_TSX_STATE_TRYING = _pjsua2.PJSIP_TSX_STATE_TRYING
PJSIP_TSX_STATE_PROCEEDING = _pjsua2.PJSIP_TSX_STATE_PROCEEDING
PJSIP_TSX_STATE_COMPLETED = _pjsua2.PJSIP_TSX_STATE_COMPLETED
PJSIP_TSX_STATE_CONFIRMED = _pjsua2.PJSIP_TSX_STATE_CONFIRMED
PJSIP_TSX_STATE_TERMINATED = _pjsua2.PJSIP_TSX_STATE_TERMINATED
PJSIP_TSX_STATE_DESTROYED = _pjsua2.PJSIP_TSX_STATE_DESTROYED
PJSIP_TSX_STATE_MAX = _pjsua2.PJSIP_TSX_STATE_MAX
PJSIP_ROLE_UAC = _pjsua2.PJSIP_ROLE_UAC
PJSIP_ROLE_UAS = _pjsua2.PJSIP_ROLE_UAS
PJSIP_UAC_ROLE = _pjsua2.PJSIP_UAC_ROLE
PJSIP_UAS_ROLE = _pjsua2.PJSIP_UAS_ROLE
PJSIP_REDIRECT_REJECT = _pjsua2.PJSIP_REDIRECT_REJECT
PJSIP_REDIRECT_ACCEPT = _pjsua2.PJSIP_REDIRECT_ACCEPT
PJSIP_REDIRECT_ACCEPT_REPLACE = _pjsua2.PJSIP_REDIRECT_ACCEPT_REPLACE
PJSIP_REDIRECT_PENDING = _pjsua2.PJSIP_REDIRECT_PENDING
PJSIP_REDIRECT_STOP = _pjsua2.PJSIP_REDIRECT_STOP
PJRPID_ACTIVITY_UNKNOWN = _pjsua2.PJRPID_ACTIVITY_UNKNOWN
PJRPID_ACTIVITY_AWAY = _pjsua2.PJRPID_ACTIVITY_AWAY
PJRPID_ACTIVITY_BUSY = _pjsua2.PJRPID_ACTIVITY_BUSY
PJSIP_EVSUB_STATE_NULL = _pjsua2.PJSIP_EVSUB_STATE_NULL
PJSIP_EVSUB_STATE_SENT = _pjsua2.PJSIP_EVSUB_STATE_SENT
PJSIP_EVSUB_STATE_ACCEPTED = _pjsua2.PJSIP_EVSUB_STATE_ACCEPTED
PJSIP_EVSUB_STATE_PENDING = _pjsua2.PJSIP_EVSUB_STATE_PENDING
PJSIP_EVSUB_STATE_ACTIVE = _pjsua2.PJSIP_EVSUB_STATE_ACTIVE
PJSIP_EVSUB_STATE_TERMINATED = _pjsua2.PJSIP_EVSUB_STATE_TERMINATED
PJSIP_EVSUB_STATE_UNKNOWN = _pjsua2.PJSIP_EVSUB_STATE_UNKNOWN
PJSIP_INV_STATE_NULL = _pjsua2.PJSIP_INV_STATE_NULL
PJSIP_INV_STATE_CALLING = _pjsua2.PJSIP_INV_STATE_CALLING
PJSIP_INV_STATE_INCOMING = _pjsua2.PJSIP_INV_STATE_INCOMING
PJSIP_INV_STATE_EARLY = _pjsua2.PJSIP_INV_STATE_EARLY
PJSIP_INV_STATE_CONNECTING = _pjsua2.PJSIP_INV_STATE_CONNECTING
PJSIP_INV_STATE_CONFIRMED = _pjsua2.PJSIP_INV_STATE_CONFIRMED
PJSIP_INV_STATE_DISCONNECTED = _pjsua2.PJSIP_INV_STATE_DISCONNECTED
PJSUA_INVALID_ID = _pjsua2.PJSUA_INVALID_ID
PJSUA_STATE_NULL = _pjsua2.PJSUA_STATE_NULL
PJSUA_STATE_CREATED = _pjsua2.PJSUA_STATE_CREATED
PJSUA_STATE_INIT = _pjsua2.PJSUA_STATE_INIT
PJSUA_STATE_STARTING = _pjsua2.PJSUA_STATE_STARTING
PJSUA_STATE_RUNNING = _pjsua2.PJSUA_STATE_RUNNING
PJSUA_STATE_CLOSING = _pjsua2.PJSUA_STATE_CLOSING
PJSUA_STUN_USE_DEFAULT = _pjsua2.PJSUA_STUN_USE_DEFAULT
PJSUA_STUN_USE_DISABLED = _pjsua2.PJSUA_STUN_USE_DISABLED
PJSUA_STUN_RETRY_ON_FAILURE = _pjsua2.PJSUA_STUN_RETRY_ON_FAILURE
PJSUA_CALL_HOLD_TYPE_RFC3264 = _pjsua2.PJSUA_CALL_HOLD_TYPE_RFC3264
PJSUA_CALL_HOLD_TYPE_RFC2543 = _pjsua2.PJSUA_CALL_HOLD_TYPE_RFC2543
PJSUA_DESTROY_NO_RX_MSG = _pjsua2.PJSUA_DESTROY_NO_RX_MSG
PJSUA_DESTROY_NO_TX_MSG = _pjsua2.PJSUA_DESTROY_NO_TX_MSG
PJSUA_DESTROY_NO_NETWORK = _pjsua2.PJSUA_DESTROY_NO_NETWORK
PJSUA_100REL_NOT_USED = _pjsua2.PJSUA_100REL_NOT_USED
PJSUA_100REL_MANDATORY = _pjsua2.PJSUA_100REL_MANDATORY
PJSUA_100REL_OPTIONAL = _pjsua2.PJSUA_100REL_OPTIONAL
PJSUA_SIP_TIMER_INACTIVE = _pjsua2.PJSUA_SIP_TIMER_INACTIVE
PJSUA_SIP_TIMER_OPTIONAL = _pjsua2.PJSUA_SIP_TIMER_OPTIONAL
PJSUA_SIP_TIMER_REQUIRED = _pjsua2.PJSUA_SIP_TIMER_REQUIRED
PJSUA_SIP_TIMER_ALWAYS = _pjsua2.PJSUA_SIP_TIMER_ALWAYS
PJSUA_IPV6_DISABLED = _pjsua2.PJSUA_IPV6_DISABLED
PJSUA_IPV6_ENABLED = _pjsua2.PJSUA_IPV6_ENABLED
PJSUA_NAT64_DISABLED = _pjsua2.PJSUA_NAT64_DISABLED
PJSUA_NAT64_ENABLED = _pjsua2.PJSUA_NAT64_ENABLED
PJSUA_BUDDY_STATUS_UNKNOWN = _pjsua2.PJSUA_BUDDY_STATUS_UNKNOWN
PJSUA_BUDDY_STATUS_ONLINE = _pjsua2.PJSUA_BUDDY_STATUS_ONLINE
PJSUA_BUDDY_STATUS_OFFLINE = _pjsua2.PJSUA_BUDDY_STATUS_OFFLINE
PJSUA_CALL_MEDIA_NONE = _pjsua2.PJSUA_CALL_MEDIA_NONE
PJSUA_CALL_MEDIA_ACTIVE = _pjsua2.PJSUA_CALL_MEDIA_ACTIVE
PJSUA_CALL_MEDIA_LOCAL_HOLD = _pjsua2.PJSUA_CALL_MEDIA_LOCAL_HOLD
PJSUA_CALL_MEDIA_REMOTE_HOLD = _pjsua2.PJSUA_CALL_MEDIA_REMOTE_HOLD
PJSUA_CALL_MEDIA_ERROR = _pjsua2.PJSUA_CALL_MEDIA_ERROR
PJSUA_MED_TP_NULL = _pjsua2.PJSUA_MED_TP_NULL
PJSUA_MED_TP_CREATING = _pjsua2.PJSUA_MED_TP_CREATING
PJSUA_MED_TP_IDLE = _pjsua2.PJSUA_MED_TP_IDLE
PJSUA_MED_TP_INIT = _pjsua2.PJSUA_MED_TP_INIT
PJSUA_MED_TP_RUNNING = _pjsua2.PJSUA_MED_TP_RUNNING
PJSUA_MED_TP_DISABLED = _pjsua2.PJSUA_MED_TP_DISABLED
PJSUA_CALL_VID_STRM_NO_OP = _pjsua2.PJSUA_CALL_VID_STRM_NO_OP
PJSUA_CALL_VID_STRM_ADD = _pjsua2.PJSUA_CALL_VID_STRM_ADD
PJSUA_CALL_VID_STRM_REMOVE = _pjsua2.PJSUA_CALL_VID_STRM_REMOVE
PJSUA_CALL_VID_STRM_CHANGE_DIR = _pjsua2.PJSUA_CALL_VID_STRM_CHANGE_DIR
PJSUA_CALL_VID_STRM_CHANGE_CAP_DEV = _pjsua2.PJSUA_CALL_VID_STRM_CHANGE_CAP_DEV
PJSUA_CALL_VID_STRM_START_TRANSMIT = _pjsua2.PJSUA_CALL_VID_STRM_START_TRANSMIT
PJSUA_CALL_VID_STRM_STOP_TRANSMIT = _pjsua2.PJSUA_CALL_VID_STRM_STOP_TRANSMIT
PJSUA_CALL_VID_STRM_SEND_KEYFRAME = _pjsua2.PJSUA_CALL_VID_STRM_SEND_KEYFRAME
PJSUA_VID_REQ_KEYFRAME_SIP_INFO = _pjsua2.PJSUA_VID_REQ_KEYFRAME_SIP_INFO
PJSUA_VID_REQ_KEYFRAME_RTCP_PLI = _pjsua2.PJSUA_VID_REQ_KEYFRAME_RTCP_PLI
PJSUA_CALL_UNHOLD = _pjsua2.PJSUA_CALL_UNHOLD
PJSUA_CALL_UPDATE_CONTACT = _pjsua2.PJSUA_CALL_UPDATE_CONTACT
PJSUA_CALL_INCLUDE_DISABLED_MEDIA = _pjsua2.PJSUA_CALL_INCLUDE_DISABLED_MEDIA
PJSUA_CALL_NO_SDP_OFFER = _pjsua2.PJSUA_CALL_NO_SDP_OFFER
PJSUA_CALL_REINIT_MEDIA = _pjsua2.PJSUA_CALL_REINIT_MEDIA
PJSUA_CALL_UPDATE_VIA = _pjsua2.PJSUA_CALL_UPDATE_VIA
PJSUA_CALL_UPDATE_TARGET = _pjsua2.PJSUA_CALL_UPDATE_TARGET
PJSUA_CALL_SET_MEDIA_DIR = _pjsua2.PJSUA_CALL_SET_MEDIA_DIR
PJSUA_MED_TP_CLOSE_MEMBER = _pjsua2.PJSUA_MED_TP_CLOSE_MEMBER
PJSUA_SND_DEFAULT_CAPTURE_DEV = _pjsua2.PJSUA_SND_DEFAULT_CAPTURE_DEV
PJSUA_SND_DEFAULT_PLAYBACK_DEV = _pjsua2.PJSUA_SND_DEFAULT_PLAYBACK_DEV
PJSUA_SND_NO_DEV = _pjsua2.PJSUA_SND_NO_DEV
PJSUA_SND_NULL_DEV = _pjsua2.PJSUA_SND_NULL_DEV
PJSUA_SND_DEV_SPEAKER_ONLY = _pjsua2.PJSUA_SND_DEV_SPEAKER_ONLY
PJSUA_SND_DEV_NO_IMMEDIATE_OPEN = _pjsua2.PJSUA_SND_DEV_NO_IMMEDIATE_OPEN
PJSUA_IP_CHANGE_OP_NULL = _pjsua2.PJSUA_IP_CHANGE_OP_NULL
PJSUA_IP_CHANGE_OP_RESTART_LIS = _pjsua2.PJSUA_IP_CHANGE_OP_RESTART_LIS
PJSUA_IP_CHANGE_OP_ACC_SHUTDOWN_TP = _pjsua2.PJSUA_IP_CHANGE_OP_ACC_SHUTDOWN_TP
PJSUA_IP_CHANGE_OP_ACC_UPDATE_CONTACT = _pjsua2.PJSUA_IP_CHANGE_OP_ACC_UPDATE_CONTACT
PJSUA_IP_CHANGE_OP_ACC_HANGUP_CALLS = _pjsua2.PJSUA_IP_CHANGE_OP_ACC_HANGUP_CALLS
PJSUA_IP_CHANGE_OP_ACC_REINVITE_CALLS = _pjsua2.PJSUA_IP_CHANGE_OP_ACC_REINVITE_CALLS
PJSUA_IP_CHANGE_OP_COMPLETED = _pjsua2.PJSUA_IP_CHANGE_OP_COMPLETED
PJSUA_DTMF_METHOD_RFC2833 = _pjsua2.PJSUA_DTMF_METHOD_RFC2833
PJSUA_DTMF_METHOD_SIP_INFO = _pjsua2.PJSUA_DTMF_METHOD_SIP_INFO
class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pjsua2.delete_SwigPyIterator

    def value(self):
        return _pjsua2.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _pjsua2.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _pjsua2.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _pjsua2.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _pjsua2.SwigPyIterator_equal(self, x)

    def copy(self):
        return _pjsua2.SwigPyIterator_copy(self)

    def next(self):
        return _pjsua2.SwigPyIterator_next(self)

    def __next__(self):
        return _pjsua2.SwigPyIterator___next__(self)

    def previous(self):
        return _pjsua2.SwigPyIterator_previous(self)

    def advance(self, n):
        return _pjsua2.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _pjsua2.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _pjsua2.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _pjsua2.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _pjsua2.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _pjsua2.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _pjsua2.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _pjsua2:
_pjsua2.SwigPyIterator_swigregister(SwigPyIterator)

class StringVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.StringVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.StringVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.StringVector___bool__(self)

    def __len__(self):
        return _pjsua2.StringVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.StringVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.StringVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.StringVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.StringVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.StringVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.StringVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.StringVector_pop(self)

    def append(self, x):
        return _pjsua2.StringVector_append(self, x)

    def empty(self):
        return _pjsua2.StringVector_empty(self)

    def size(self):
        return _pjsua2.StringVector_size(self)

    def swap(self, v):
        return _pjsua2.StringVector_swap(self, v)

    def begin(self):
        return _pjsua2.StringVector_begin(self)

    def end(self):
        return _pjsua2.StringVector_end(self)

    def rbegin(self):
        return _pjsua2.StringVector_rbegin(self)

    def rend(self):
        return _pjsua2.StringVector_rend(self)

    def clear(self):
        return _pjsua2.StringVector_clear(self)

    def get_allocator(self):
        return _pjsua2.StringVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.StringVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.StringVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.StringVector_swiginit(self, _pjsua2.new_StringVector(*args))

    def push_back(self, x):
        return _pjsua2.StringVector_push_back(self, x)

    def front(self):
        return _pjsua2.StringVector_front(self)

    def back(self):
        return _pjsua2.StringVector_back(self)

    def assign(self, n, x):
        return _pjsua2.StringVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.StringVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.StringVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.StringVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.StringVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_StringVector

# Register StringVector in _pjsua2:
_pjsua2.StringVector_swigregister(StringVector)

class IntVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.IntVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.IntVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.IntVector___bool__(self)

    def __len__(self):
        return _pjsua2.IntVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.IntVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.IntVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.IntVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.IntVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.IntVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.IntVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.IntVector_pop(self)

    def append(self, x):
        return _pjsua2.IntVector_append(self, x)

    def empty(self):
        return _pjsua2.IntVector_empty(self)

    def size(self):
        return _pjsua2.IntVector_size(self)

    def swap(self, v):
        return _pjsua2.IntVector_swap(self, v)

    def begin(self):
        return _pjsua2.IntVector_begin(self)

    def end(self):
        return _pjsua2.IntVector_end(self)

    def rbegin(self):
        return _pjsua2.IntVector_rbegin(self)

    def rend(self):
        return _pjsua2.IntVector_rend(self)

    def clear(self):
        return _pjsua2.IntVector_clear(self)

    def get_allocator(self):
        return _pjsua2.IntVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.IntVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.IntVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.IntVector_swiginit(self, _pjsua2.new_IntVector(*args))

    def push_back(self, x):
        return _pjsua2.IntVector_push_back(self, x)

    def front(self):
        return _pjsua2.IntVector_front(self)

    def back(self):
        return _pjsua2.IntVector_back(self)

    def assign(self, n, x):
        return _pjsua2.IntVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.IntVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.IntVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.IntVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.IntVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_IntVector

# Register IntVector in _pjsua2:
_pjsua2.IntVector_swigregister(IntVector)

class StringToStringMap(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.StringToStringMap_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.StringToStringMap___nonzero__(self)

    def __bool__(self):
        return _pjsua2.StringToStringMap___bool__(self)

    def __len__(self):
        return _pjsua2.StringToStringMap___len__(self)
    def __iter__(self):
        return self.key_iterator()
    def iterkeys(self):
        return self.key_iterator()
    def itervalues(self):
        return self.value_iterator()
    def iteritems(self):
        return self.iterator()

    def __getitem__(self, key):
        return _pjsua2.StringToStringMap___getitem__(self, key)

    def __delitem__(self, key):
        return _pjsua2.StringToStringMap___delitem__(self, key)

    def has_key(self, key):
        return _pjsua2.StringToStringMap_has_key(self, key)

    def keys(self):
        return _pjsua2.StringToStringMap_keys(self)

    def values(self):
        return _pjsua2.StringToStringMap_values(self)

    def items(self):
        return _pjsua2.StringToStringMap_items(self)

    def __contains__(self, key):
        return _pjsua2.StringToStringMap___contains__(self, key)

    def key_iterator(self):
        return _pjsua2.StringToStringMap_key_iterator(self)

    def value_iterator(self):
        return _pjsua2.StringToStringMap_value_iterator(self)

    def __setitem__(self, *args):
        return _pjsua2.StringToStringMap___setitem__(self, *args)

    def asdict(self):
        return _pjsua2.StringToStringMap_asdict(self)

    def __init__(self, *args):
        _pjsua2.StringToStringMap_swiginit(self, _pjsua2.new_StringToStringMap(*args))

    def empty(self):
        return _pjsua2.StringToStringMap_empty(self)

    def size(self):
        return _pjsua2.StringToStringMap_size(self)

    def swap(self, v):
        return _pjsua2.StringToStringMap_swap(self, v)

    def begin(self):
        return _pjsua2.StringToStringMap_begin(self)

    def end(self):
        return _pjsua2.StringToStringMap_end(self)

    def rbegin(self):
        return _pjsua2.StringToStringMap_rbegin(self)

    def rend(self):
        return _pjsua2.StringToStringMap_rend(self)

    def clear(self):
        return _pjsua2.StringToStringMap_clear(self)

    def get_allocator(self):
        return _pjsua2.StringToStringMap_get_allocator(self)

    def count(self, x):
        return _pjsua2.StringToStringMap_count(self, x)

    def erase(self, *args):
        return _pjsua2.StringToStringMap_erase(self, *args)

    def find(self, x):
        return _pjsua2.StringToStringMap_find(self, x)

    def lower_bound(self, x):
        return _pjsua2.StringToStringMap_lower_bound(self, x)

    def upper_bound(self, x):
        return _pjsua2.StringToStringMap_upper_bound(self, x)
    __swig_destroy__ = _pjsua2.delete_StringToStringMap

# Register StringToStringMap in _pjsua2:
_pjsua2.StringToStringMap_swigregister(StringToStringMap)

INVALID_ID = _pjsua2.INVALID_ID
SUCCESS = _pjsua2.SUCCESS
class Error(Exception):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    status = property(_pjsua2.Error_status_get, _pjsua2.Error_status_set)
    title = property(_pjsua2.Error_title_get, _pjsua2.Error_title_set)
    reason = property(_pjsua2.Error_reason_get, _pjsua2.Error_reason_set)
    srcFile = property(_pjsua2.Error_srcFile_get, _pjsua2.Error_srcFile_set)
    srcLine = property(_pjsua2.Error_srcLine_get, _pjsua2.Error_srcLine_set)

    def info(self, multi_line=False):
        return _pjsua2.Error_info(self, multi_line)

    def __init__(self, *args):
        _pjsua2.Error_swiginit(self, _pjsua2.new_Error(*args))
    __swig_destroy__ = _pjsua2.delete_Error

# Register Error in _pjsua2:
_pjsua2.Error_swigregister(Error)

class Version(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    major = property(_pjsua2.Version_major_get, _pjsua2.Version_major_set)
    minor = property(_pjsua2.Version_minor_get, _pjsua2.Version_minor_set)
    rev = property(_pjsua2.Version_rev_get, _pjsua2.Version_rev_set)
    suffix = property(_pjsua2.Version_suffix_get, _pjsua2.Version_suffix_set)
    full = property(_pjsua2.Version_full_get, _pjsua2.Version_full_set)
    numeric = property(_pjsua2.Version_numeric_get, _pjsua2.Version_numeric_set)

    def __init__(self):
        _pjsua2.Version_swiginit(self, _pjsua2.new_Version())
    __swig_destroy__ = _pjsua2.delete_Version

# Register Version in _pjsua2:
_pjsua2.Version_swigregister(Version)

class TimeVal(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    sec = property(_pjsua2.TimeVal_sec_get, _pjsua2.TimeVal_sec_set)
    msec = property(_pjsua2.TimeVal_msec_get, _pjsua2.TimeVal_msec_set)

    def __init__(self):
        _pjsua2.TimeVal_swiginit(self, _pjsua2.new_TimeVal())
    __swig_destroy__ = _pjsua2.delete_TimeVal

# Register TimeVal in _pjsua2:
_pjsua2.TimeVal_swigregister(TimeVal)

class PersistentObject(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pjsua2.delete_PersistentObject

    def readObject(self, node):
        return _pjsua2.PersistentObject_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.PersistentObject_writeObject(self, node)

# Register PersistentObject in _pjsua2:
_pjsua2.PersistentObject_swigregister(PersistentObject)

class PersistentDocument(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _pjsua2.delete_PersistentDocument

    def loadFile(self, filename):
        return _pjsua2.PersistentDocument_loadFile(self, filename)

    def loadString(self, input):
        return _pjsua2.PersistentDocument_loadString(self, input)

    def saveFile(self, filename):
        return _pjsua2.PersistentDocument_saveFile(self, filename)

    def saveString(self):
        return _pjsua2.PersistentDocument_saveString(self)

    def getRootContainer(self):
        return _pjsua2.PersistentDocument_getRootContainer(self)

    def hasUnread(self):
        return _pjsua2.PersistentDocument_hasUnread(self)

    def unreadName(self):
        return _pjsua2.PersistentDocument_unreadName(self)

    def readInt(self, *args):
        return _pjsua2.PersistentDocument_readInt(self, *args)

    def readNumber(self, *args):
        return _pjsua2.PersistentDocument_readNumber(self, *args)

    def readBool(self, *args):
        return _pjsua2.PersistentDocument_readBool(self, *args)

    def readString(self, *args):
        return _pjsua2.PersistentDocument_readString(self, *args)

    def readStringVector(self, *args):
        return _pjsua2.PersistentDocument_readStringVector(self, *args)

    def readObject(self, obj):
        return _pjsua2.PersistentDocument_readObject(self, obj)

    def readContainer(self, *args):
        return _pjsua2.PersistentDocument_readContainer(self, *args)

    def readArray(self, *args):
        return _pjsua2.PersistentDocument_readArray(self, *args)

    def writeNumber(self, name, num):
        return _pjsua2.PersistentDocument_writeNumber(self, name, num)

    def writeInt(self, name, num):
        return _pjsua2.PersistentDocument_writeInt(self, name, num)

    def writeBool(self, name, value):
        return _pjsua2.PersistentDocument_writeBool(self, name, value)

    def writeString(self, name, value):
        return _pjsua2.PersistentDocument_writeString(self, name, value)

    def writeStringVector(self, name, arr):
        return _pjsua2.PersistentDocument_writeStringVector(self, name, arr)

    def writeObject(self, obj):
        return _pjsua2.PersistentDocument_writeObject(self, obj)

    def writeNewContainer(self, name):
        return _pjsua2.PersistentDocument_writeNewContainer(self, name)

    def writeNewArray(self, name):
        return _pjsua2.PersistentDocument_writeNewArray(self, name)

# Register PersistentDocument in _pjsua2:
_pjsua2.PersistentDocument_swigregister(PersistentDocument)

class ContainerNode(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def hasUnread(self):
        return _pjsua2.ContainerNode_hasUnread(self)

    def unreadName(self):
        return _pjsua2.ContainerNode_unreadName(self)

    def readInt(self, *args):
        return _pjsua2.ContainerNode_readInt(self, *args)

    def readNumber(self, *args):
        return _pjsua2.ContainerNode_readNumber(self, *args)

    def readBool(self, *args):
        return _pjsua2.ContainerNode_readBool(self, *args)

    def readString(self, *args):
        return _pjsua2.ContainerNode_readString(self, *args)

    def readStringVector(self, *args):
        return _pjsua2.ContainerNode_readStringVector(self, *args)

    def readObject(self, obj):
        return _pjsua2.ContainerNode_readObject(self, obj)

    def readContainer(self, *args):
        return _pjsua2.ContainerNode_readContainer(self, *args)

    def readArray(self, *args):
        return _pjsua2.ContainerNode_readArray(self, *args)

    def writeNumber(self, name, num):
        return _pjsua2.ContainerNode_writeNumber(self, name, num)

    def writeInt(self, name, num):
        return _pjsua2.ContainerNode_writeInt(self, name, num)

    def writeBool(self, name, value):
        return _pjsua2.ContainerNode_writeBool(self, name, value)

    def writeString(self, name, value):
        return _pjsua2.ContainerNode_writeString(self, name, value)

    def writeStringVector(self, name, arr):
        return _pjsua2.ContainerNode_writeStringVector(self, name, arr)

    def writeObject(self, obj):
        return _pjsua2.ContainerNode_writeObject(self, obj)

    def writeNewContainer(self, name):
        return _pjsua2.ContainerNode_writeNewContainer(self, name)

    def writeNewArray(self, name):
        return _pjsua2.ContainerNode_writeNewArray(self, name)

    def __init__(self):
        _pjsua2.ContainerNode_swiginit(self, _pjsua2.new_ContainerNode())
    __swig_destroy__ = _pjsua2.delete_ContainerNode

# Register ContainerNode in _pjsua2:
_pjsua2.ContainerNode_swigregister(ContainerNode)

class AuthCredInfo(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    scheme = property(_pjsua2.AuthCredInfo_scheme_get, _pjsua2.AuthCredInfo_scheme_set)
    realm = property(_pjsua2.AuthCredInfo_realm_get, _pjsua2.AuthCredInfo_realm_set)
    username = property(_pjsua2.AuthCredInfo_username_get, _pjsua2.AuthCredInfo_username_set)
    dataType = property(_pjsua2.AuthCredInfo_dataType_get, _pjsua2.AuthCredInfo_dataType_set)
    data = property(_pjsua2.AuthCredInfo_data_get, _pjsua2.AuthCredInfo_data_set)
    akaK = property(_pjsua2.AuthCredInfo_akaK_get, _pjsua2.AuthCredInfo_akaK_set)
    akaOp = property(_pjsua2.AuthCredInfo_akaOp_get, _pjsua2.AuthCredInfo_akaOp_set)
    akaAmf = property(_pjsua2.AuthCredInfo_akaAmf_get, _pjsua2.AuthCredInfo_akaAmf_set)

    def __init__(self, *args):
        _pjsua2.AuthCredInfo_swiginit(self, _pjsua2.new_AuthCredInfo(*args))

    def readObject(self, node):
        return _pjsua2.AuthCredInfo_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AuthCredInfo_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_AuthCredInfo

# Register AuthCredInfo in _pjsua2:
_pjsua2.AuthCredInfo_swigregister(AuthCredInfo)

class TlsConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CaListFile = property(_pjsua2.TlsConfig_CaListFile_get, _pjsua2.TlsConfig_CaListFile_set)
    certFile = property(_pjsua2.TlsConfig_certFile_get, _pjsua2.TlsConfig_certFile_set)
    privKeyFile = property(_pjsua2.TlsConfig_privKeyFile_get, _pjsua2.TlsConfig_privKeyFile_set)
    password = property(_pjsua2.TlsConfig_password_get, _pjsua2.TlsConfig_password_set)
    CaBuf = property(_pjsua2.TlsConfig_CaBuf_get, _pjsua2.TlsConfig_CaBuf_set)
    certBuf = property(_pjsua2.TlsConfig_certBuf_get, _pjsua2.TlsConfig_certBuf_set)
    privKeyBuf = property(_pjsua2.TlsConfig_privKeyBuf_get, _pjsua2.TlsConfig_privKeyBuf_set)
    method = property(_pjsua2.TlsConfig_method_get, _pjsua2.TlsConfig_method_set)
    proto = property(_pjsua2.TlsConfig_proto_get, _pjsua2.TlsConfig_proto_set)
    ciphers = property(_pjsua2.TlsConfig_ciphers_get, _pjsua2.TlsConfig_ciphers_set)
    verifyServer = property(_pjsua2.TlsConfig_verifyServer_get, _pjsua2.TlsConfig_verifyServer_set)
    verifyClient = property(_pjsua2.TlsConfig_verifyClient_get, _pjsua2.TlsConfig_verifyClient_set)
    requireClientCert = property(_pjsua2.TlsConfig_requireClientCert_get, _pjsua2.TlsConfig_requireClientCert_set)
    msecTimeout = property(_pjsua2.TlsConfig_msecTimeout_get, _pjsua2.TlsConfig_msecTimeout_set)
    qosType = property(_pjsua2.TlsConfig_qosType_get, _pjsua2.TlsConfig_qosType_set)
    qosParams = property(_pjsua2.TlsConfig_qosParams_get, _pjsua2.TlsConfig_qosParams_set)
    qosIgnoreError = property(_pjsua2.TlsConfig_qosIgnoreError_get, _pjsua2.TlsConfig_qosIgnoreError_set)

    def __init__(self):
        _pjsua2.TlsConfig_swiginit(self, _pjsua2.new_TlsConfig())

    def readObject(self, node):
        return _pjsua2.TlsConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.TlsConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_TlsConfig

# Register TlsConfig in _pjsua2:
_pjsua2.TlsConfig_swigregister(TlsConfig)

class TransportConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    port = property(_pjsua2.TransportConfig_port_get, _pjsua2.TransportConfig_port_set)
    portRange = property(_pjsua2.TransportConfig_portRange_get, _pjsua2.TransportConfig_portRange_set)
    publicAddress = property(_pjsua2.TransportConfig_publicAddress_get, _pjsua2.TransportConfig_publicAddress_set)
    boundAddress = property(_pjsua2.TransportConfig_boundAddress_get, _pjsua2.TransportConfig_boundAddress_set)
    tlsConfig = property(_pjsua2.TransportConfig_tlsConfig_get, _pjsua2.TransportConfig_tlsConfig_set)
    qosType = property(_pjsua2.TransportConfig_qosType_get, _pjsua2.TransportConfig_qosType_set)
    qosParams = property(_pjsua2.TransportConfig_qosParams_get, _pjsua2.TransportConfig_qosParams_set)

    def __init__(self):
        _pjsua2.TransportConfig_swiginit(self, _pjsua2.new_TransportConfig())

    def readObject(self, node):
        return _pjsua2.TransportConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.TransportConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_TransportConfig

# Register TransportConfig in _pjsua2:
_pjsua2.TransportConfig_swigregister(TransportConfig)

class TransportInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    id = property(_pjsua2.TransportInfo_id_get, _pjsua2.TransportInfo_id_set)
    type = property(_pjsua2.TransportInfo_type_get, _pjsua2.TransportInfo_type_set)
    typeName = property(_pjsua2.TransportInfo_typeName_get, _pjsua2.TransportInfo_typeName_set)
    info = property(_pjsua2.TransportInfo_info_get, _pjsua2.TransportInfo_info_set)
    flags = property(_pjsua2.TransportInfo_flags_get, _pjsua2.TransportInfo_flags_set)
    localAddress = property(_pjsua2.TransportInfo_localAddress_get, _pjsua2.TransportInfo_localAddress_set)
    localName = property(_pjsua2.TransportInfo_localName_get, _pjsua2.TransportInfo_localName_set)
    usageCount = property(_pjsua2.TransportInfo_usageCount_get, _pjsua2.TransportInfo_usageCount_set)

    def __init__(self):
        _pjsua2.TransportInfo_swiginit(self, _pjsua2.new_TransportInfo())
    __swig_destroy__ = _pjsua2.delete_TransportInfo

# Register TransportInfo in _pjsua2:
_pjsua2.TransportInfo_swigregister(TransportInfo)

class SipRxData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    info = property(_pjsua2.SipRxData_info_get, _pjsua2.SipRxData_info_set)
    wholeMsg = property(_pjsua2.SipRxData_wholeMsg_get, _pjsua2.SipRxData_wholeMsg_set)
    srcAddress = property(_pjsua2.SipRxData_srcAddress_get, _pjsua2.SipRxData_srcAddress_set)
    pjRxData = property(_pjsua2.SipRxData_pjRxData_get, _pjsua2.SipRxData_pjRxData_set)

    def __init__(self):
        _pjsua2.SipRxData_swiginit(self, _pjsua2.new_SipRxData())
    __swig_destroy__ = _pjsua2.delete_SipRxData

# Register SipRxData in _pjsua2:
_pjsua2.SipRxData_swigregister(SipRxData)

class SipTxData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    info = property(_pjsua2.SipTxData_info_get, _pjsua2.SipTxData_info_set)
    wholeMsg = property(_pjsua2.SipTxData_wholeMsg_get, _pjsua2.SipTxData_wholeMsg_set)
    dstAddress = property(_pjsua2.SipTxData_dstAddress_get, _pjsua2.SipTxData_dstAddress_set)
    pjTxData = property(_pjsua2.SipTxData_pjTxData_get, _pjsua2.SipTxData_pjTxData_set)

    def __init__(self):
        _pjsua2.SipTxData_swiginit(self, _pjsua2.new_SipTxData())
    __swig_destroy__ = _pjsua2.delete_SipTxData

# Register SipTxData in _pjsua2:
_pjsua2.SipTxData_swigregister(SipTxData)

class SipTransaction(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    role = property(_pjsua2.SipTransaction_role_get, _pjsua2.SipTransaction_role_set)
    method = property(_pjsua2.SipTransaction_method_get, _pjsua2.SipTransaction_method_set)
    statusCode = property(_pjsua2.SipTransaction_statusCode_get, _pjsua2.SipTransaction_statusCode_set)
    statusText = property(_pjsua2.SipTransaction_statusText_get, _pjsua2.SipTransaction_statusText_set)
    state = property(_pjsua2.SipTransaction_state_get, _pjsua2.SipTransaction_state_set)
    lastTx = property(_pjsua2.SipTransaction_lastTx_get, _pjsua2.SipTransaction_lastTx_set)
    pjTransaction = property(_pjsua2.SipTransaction_pjTransaction_get, _pjsua2.SipTransaction_pjTransaction_set)

    def __init__(self):
        _pjsua2.SipTransaction_swiginit(self, _pjsua2.new_SipTransaction())
    __swig_destroy__ = _pjsua2.delete_SipTransaction

# Register SipTransaction in _pjsua2:
_pjsua2.SipTransaction_swigregister(SipTransaction)

class TimerEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entry = property(_pjsua2.TimerEvent_entry_get, _pjsua2.TimerEvent_entry_set)

    def __init__(self):
        _pjsua2.TimerEvent_swiginit(self, _pjsua2.new_TimerEvent())
    __swig_destroy__ = _pjsua2.delete_TimerEvent

# Register TimerEvent in _pjsua2:
_pjsua2.TimerEvent_swigregister(TimerEvent)

class TsxStateEventSrc(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    rdata = property(_pjsua2.TsxStateEventSrc_rdata_get, _pjsua2.TsxStateEventSrc_rdata_set)
    tdata = property(_pjsua2.TsxStateEventSrc_tdata_get, _pjsua2.TsxStateEventSrc_tdata_set)
    timer = property(_pjsua2.TsxStateEventSrc_timer_get, _pjsua2.TsxStateEventSrc_timer_set)
    status = property(_pjsua2.TsxStateEventSrc_status_get, _pjsua2.TsxStateEventSrc_status_set)
    data = property(_pjsua2.TsxStateEventSrc_data_get, _pjsua2.TsxStateEventSrc_data_set)

    def __init__(self):
        _pjsua2.TsxStateEventSrc_swiginit(self, _pjsua2.new_TsxStateEventSrc())
    __swig_destroy__ = _pjsua2.delete_TsxStateEventSrc

# Register TsxStateEventSrc in _pjsua2:
_pjsua2.TsxStateEventSrc_swigregister(TsxStateEventSrc)

class TsxStateEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    src = property(_pjsua2.TsxStateEvent_src_get, _pjsua2.TsxStateEvent_src_set)
    tsx = property(_pjsua2.TsxStateEvent_tsx_get, _pjsua2.TsxStateEvent_tsx_set)
    prevState = property(_pjsua2.TsxStateEvent_prevState_get, _pjsua2.TsxStateEvent_prevState_set)
    type = property(_pjsua2.TsxStateEvent_type_get, _pjsua2.TsxStateEvent_type_set)

    def __init__(self):
        _pjsua2.TsxStateEvent_swiginit(self, _pjsua2.new_TsxStateEvent())
    __swig_destroy__ = _pjsua2.delete_TsxStateEvent

# Register TsxStateEvent in _pjsua2:
_pjsua2.TsxStateEvent_swigregister(TsxStateEvent)

class TxMsgEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    tdata = property(_pjsua2.TxMsgEvent_tdata_get, _pjsua2.TxMsgEvent_tdata_set)

    def __init__(self):
        _pjsua2.TxMsgEvent_swiginit(self, _pjsua2.new_TxMsgEvent())
    __swig_destroy__ = _pjsua2.delete_TxMsgEvent

# Register TxMsgEvent in _pjsua2:
_pjsua2.TxMsgEvent_swigregister(TxMsgEvent)

class TxErrorEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    tdata = property(_pjsua2.TxErrorEvent_tdata_get, _pjsua2.TxErrorEvent_tdata_set)
    tsx = property(_pjsua2.TxErrorEvent_tsx_get, _pjsua2.TxErrorEvent_tsx_set)

    def __init__(self):
        _pjsua2.TxErrorEvent_swiginit(self, _pjsua2.new_TxErrorEvent())
    __swig_destroy__ = _pjsua2.delete_TxErrorEvent

# Register TxErrorEvent in _pjsua2:
_pjsua2.TxErrorEvent_swigregister(TxErrorEvent)

class RxMsgEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    rdata = property(_pjsua2.RxMsgEvent_rdata_get, _pjsua2.RxMsgEvent_rdata_set)

    def __init__(self):
        _pjsua2.RxMsgEvent_swiginit(self, _pjsua2.new_RxMsgEvent())
    __swig_destroy__ = _pjsua2.delete_RxMsgEvent

# Register RxMsgEvent in _pjsua2:
_pjsua2.RxMsgEvent_swigregister(RxMsgEvent)

class UserEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    user1 = property(_pjsua2.UserEvent_user1_get, _pjsua2.UserEvent_user1_set)
    user2 = property(_pjsua2.UserEvent_user2_get, _pjsua2.UserEvent_user2_set)
    user3 = property(_pjsua2.UserEvent_user3_get, _pjsua2.UserEvent_user3_set)
    user4 = property(_pjsua2.UserEvent_user4_get, _pjsua2.UserEvent_user4_set)

    def __init__(self):
        _pjsua2.UserEvent_swiginit(self, _pjsua2.new_UserEvent())
    __swig_destroy__ = _pjsua2.delete_UserEvent

# Register UserEvent in _pjsua2:
_pjsua2.UserEvent_swigregister(UserEvent)

class SipEventBody(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    timer = property(_pjsua2.SipEventBody_timer_get, _pjsua2.SipEventBody_timer_set)
    tsxState = property(_pjsua2.SipEventBody_tsxState_get, _pjsua2.SipEventBody_tsxState_set)
    txMsg = property(_pjsua2.SipEventBody_txMsg_get, _pjsua2.SipEventBody_txMsg_set)
    txError = property(_pjsua2.SipEventBody_txError_get, _pjsua2.SipEventBody_txError_set)
    rxMsg = property(_pjsua2.SipEventBody_rxMsg_get, _pjsua2.SipEventBody_rxMsg_set)
    user = property(_pjsua2.SipEventBody_user_get, _pjsua2.SipEventBody_user_set)

    def __init__(self):
        _pjsua2.SipEventBody_swiginit(self, _pjsua2.new_SipEventBody())
    __swig_destroy__ = _pjsua2.delete_SipEventBody

# Register SipEventBody in _pjsua2:
_pjsua2.SipEventBody_swigregister(SipEventBody)

class SipEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_pjsua2.SipEvent_type_get, _pjsua2.SipEvent_type_set)
    body = property(_pjsua2.SipEvent_body_get, _pjsua2.SipEvent_body_set)
    pjEvent = property(_pjsua2.SipEvent_pjEvent_get, _pjsua2.SipEvent_pjEvent_set)

    def __init__(self):
        _pjsua2.SipEvent_swiginit(self, _pjsua2.new_SipEvent())
    __swig_destroy__ = _pjsua2.delete_SipEvent

# Register SipEvent in _pjsua2:
_pjsua2.SipEvent_swigregister(SipEvent)

class SipMediaType(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_pjsua2.SipMediaType_type_get, _pjsua2.SipMediaType_type_set)
    subType = property(_pjsua2.SipMediaType_subType_get, _pjsua2.SipMediaType_subType_set)

    def __init__(self):
        _pjsua2.SipMediaType_swiginit(self, _pjsua2.new_SipMediaType())
    __swig_destroy__ = _pjsua2.delete_SipMediaType

# Register SipMediaType in _pjsua2:
_pjsua2.SipMediaType_swigregister(SipMediaType)

class SipHeader(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    hName = property(_pjsua2.SipHeader_hName_get, _pjsua2.SipHeader_hName_set)
    hValue = property(_pjsua2.SipHeader_hValue_get, _pjsua2.SipHeader_hValue_set)

    def __init__(self):
        _pjsua2.SipHeader_swiginit(self, _pjsua2.new_SipHeader())
    __swig_destroy__ = _pjsua2.delete_SipHeader

# Register SipHeader in _pjsua2:
_pjsua2.SipHeader_swigregister(SipHeader)

class SipMultipartPart(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    headers = property(_pjsua2.SipMultipartPart_headers_get, _pjsua2.SipMultipartPart_headers_set)
    contentType = property(_pjsua2.SipMultipartPart_contentType_get, _pjsua2.SipMultipartPart_contentType_set)
    body = property(_pjsua2.SipMultipartPart_body_get, _pjsua2.SipMultipartPart_body_set)

    def __init__(self):
        _pjsua2.SipMultipartPart_swiginit(self, _pjsua2.new_SipMultipartPart())
    __swig_destroy__ = _pjsua2.delete_SipMultipartPart

# Register SipMultipartPart in _pjsua2:
_pjsua2.SipMultipartPart_swigregister(SipMultipartPart)

class SipTxOption(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    targetUri = property(_pjsua2.SipTxOption_targetUri_get, _pjsua2.SipTxOption_targetUri_set)
    headers = property(_pjsua2.SipTxOption_headers_get, _pjsua2.SipTxOption_headers_set)
    contentType = property(_pjsua2.SipTxOption_contentType_get, _pjsua2.SipTxOption_contentType_set)
    msgBody = property(_pjsua2.SipTxOption_msgBody_get, _pjsua2.SipTxOption_msgBody_set)
    multipartContentType = property(_pjsua2.SipTxOption_multipartContentType_get, _pjsua2.SipTxOption_multipartContentType_set)
    multipartParts = property(_pjsua2.SipTxOption_multipartParts_get, _pjsua2.SipTxOption_multipartParts_set)

    def isEmpty(self):
        return _pjsua2.SipTxOption_isEmpty(self)

    def __init__(self):
        _pjsua2.SipTxOption_swiginit(self, _pjsua2.new_SipTxOption())
    __swig_destroy__ = _pjsua2.delete_SipTxOption

# Register SipTxOption in _pjsua2:
_pjsua2.SipTxOption_swigregister(SipTxOption)

class SendInstantMessageParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    contentType = property(_pjsua2.SendInstantMessageParam_contentType_get, _pjsua2.SendInstantMessageParam_contentType_set)
    content = property(_pjsua2.SendInstantMessageParam_content_get, _pjsua2.SendInstantMessageParam_content_set)
    txOption = property(_pjsua2.SendInstantMessageParam_txOption_get, _pjsua2.SendInstantMessageParam_txOption_set)
    userData = property(_pjsua2.SendInstantMessageParam_userData_get, _pjsua2.SendInstantMessageParam_userData_set)

    def __init__(self):
        _pjsua2.SendInstantMessageParam_swiginit(self, _pjsua2.new_SendInstantMessageParam())
    __swig_destroy__ = _pjsua2.delete_SendInstantMessageParam

# Register SendInstantMessageParam in _pjsua2:
_pjsua2.SendInstantMessageParam_swigregister(SendInstantMessageParam)

class SendTypingIndicationParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    isTyping = property(_pjsua2.SendTypingIndicationParam_isTyping_get, _pjsua2.SendTypingIndicationParam_isTyping_set)
    txOption = property(_pjsua2.SendTypingIndicationParam_txOption_get, _pjsua2.SendTypingIndicationParam_txOption_set)

    def __init__(self):
        _pjsua2.SendTypingIndicationParam_swiginit(self, _pjsua2.new_SendTypingIndicationParam())
    __swig_destroy__ = _pjsua2.delete_SendTypingIndicationParam

# Register SendTypingIndicationParam in _pjsua2:
_pjsua2.SendTypingIndicationParam_swigregister(SendTypingIndicationParam)

class SipHeaderVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.SipHeaderVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.SipHeaderVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.SipHeaderVector___bool__(self)

    def __len__(self):
        return _pjsua2.SipHeaderVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.SipHeaderVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.SipHeaderVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.SipHeaderVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.SipHeaderVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.SipHeaderVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.SipHeaderVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.SipHeaderVector_pop(self)

    def append(self, x):
        return _pjsua2.SipHeaderVector_append(self, x)

    def empty(self):
        return _pjsua2.SipHeaderVector_empty(self)

    def size(self):
        return _pjsua2.SipHeaderVector_size(self)

    def swap(self, v):
        return _pjsua2.SipHeaderVector_swap(self, v)

    def begin(self):
        return _pjsua2.SipHeaderVector_begin(self)

    def end(self):
        return _pjsua2.SipHeaderVector_end(self)

    def rbegin(self):
        return _pjsua2.SipHeaderVector_rbegin(self)

    def rend(self):
        return _pjsua2.SipHeaderVector_rend(self)

    def clear(self):
        return _pjsua2.SipHeaderVector_clear(self)

    def get_allocator(self):
        return _pjsua2.SipHeaderVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.SipHeaderVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.SipHeaderVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.SipHeaderVector_swiginit(self, _pjsua2.new_SipHeaderVector(*args))

    def push_back(self, x):
        return _pjsua2.SipHeaderVector_push_back(self, x)

    def front(self):
        return _pjsua2.SipHeaderVector_front(self)

    def back(self):
        return _pjsua2.SipHeaderVector_back(self)

    def assign(self, n, x):
        return _pjsua2.SipHeaderVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.SipHeaderVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.SipHeaderVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.SipHeaderVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.SipHeaderVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_SipHeaderVector

# Register SipHeaderVector in _pjsua2:
_pjsua2.SipHeaderVector_swigregister(SipHeaderVector)

class AuthCredInfoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.AuthCredInfoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.AuthCredInfoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.AuthCredInfoVector___bool__(self)

    def __len__(self):
        return _pjsua2.AuthCredInfoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.AuthCredInfoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.AuthCredInfoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.AuthCredInfoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.AuthCredInfoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.AuthCredInfoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.AuthCredInfoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.AuthCredInfoVector_pop(self)

    def append(self, x):
        return _pjsua2.AuthCredInfoVector_append(self, x)

    def empty(self):
        return _pjsua2.AuthCredInfoVector_empty(self)

    def size(self):
        return _pjsua2.AuthCredInfoVector_size(self)

    def swap(self, v):
        return _pjsua2.AuthCredInfoVector_swap(self, v)

    def begin(self):
        return _pjsua2.AuthCredInfoVector_begin(self)

    def end(self):
        return _pjsua2.AuthCredInfoVector_end(self)

    def rbegin(self):
        return _pjsua2.AuthCredInfoVector_rbegin(self)

    def rend(self):
        return _pjsua2.AuthCredInfoVector_rend(self)

    def clear(self):
        return _pjsua2.AuthCredInfoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.AuthCredInfoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.AuthCredInfoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.AuthCredInfoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.AuthCredInfoVector_swiginit(self, _pjsua2.new_AuthCredInfoVector(*args))

    def push_back(self, x):
        return _pjsua2.AuthCredInfoVector_push_back(self, x)

    def front(self):
        return _pjsua2.AuthCredInfoVector_front(self)

    def back(self):
        return _pjsua2.AuthCredInfoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.AuthCredInfoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.AuthCredInfoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.AuthCredInfoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.AuthCredInfoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.AuthCredInfoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_AuthCredInfoVector

# Register AuthCredInfoVector in _pjsua2:
_pjsua2.AuthCredInfoVector_swigregister(AuthCredInfoVector)

class SrtpCryptoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.SrtpCryptoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.SrtpCryptoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.SrtpCryptoVector___bool__(self)

    def __len__(self):
        return _pjsua2.SrtpCryptoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.SrtpCryptoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.SrtpCryptoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.SrtpCryptoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.SrtpCryptoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.SrtpCryptoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.SrtpCryptoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.SrtpCryptoVector_pop(self)

    def append(self, x):
        return _pjsua2.SrtpCryptoVector_append(self, x)

    def empty(self):
        return _pjsua2.SrtpCryptoVector_empty(self)

    def size(self):
        return _pjsua2.SrtpCryptoVector_size(self)

    def swap(self, v):
        return _pjsua2.SrtpCryptoVector_swap(self, v)

    def begin(self):
        return _pjsua2.SrtpCryptoVector_begin(self)

    def end(self):
        return _pjsua2.SrtpCryptoVector_end(self)

    def rbegin(self):
        return _pjsua2.SrtpCryptoVector_rbegin(self)

    def rend(self):
        return _pjsua2.SrtpCryptoVector_rend(self)

    def clear(self):
        return _pjsua2.SrtpCryptoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.SrtpCryptoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.SrtpCryptoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.SrtpCryptoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.SrtpCryptoVector_swiginit(self, _pjsua2.new_SrtpCryptoVector(*args))

    def push_back(self, x):
        return _pjsua2.SrtpCryptoVector_push_back(self, x)

    def front(self):
        return _pjsua2.SrtpCryptoVector_front(self)

    def back(self):
        return _pjsua2.SrtpCryptoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.SrtpCryptoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.SrtpCryptoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.SrtpCryptoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.SrtpCryptoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.SrtpCryptoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_SrtpCryptoVector

# Register SrtpCryptoVector in _pjsua2:
_pjsua2.SrtpCryptoVector_swigregister(SrtpCryptoVector)

class SipMultipartPartVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.SipMultipartPartVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.SipMultipartPartVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.SipMultipartPartVector___bool__(self)

    def __len__(self):
        return _pjsua2.SipMultipartPartVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.SipMultipartPartVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.SipMultipartPartVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.SipMultipartPartVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.SipMultipartPartVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.SipMultipartPartVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.SipMultipartPartVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.SipMultipartPartVector_pop(self)

    def append(self, x):
        return _pjsua2.SipMultipartPartVector_append(self, x)

    def empty(self):
        return _pjsua2.SipMultipartPartVector_empty(self)

    def size(self):
        return _pjsua2.SipMultipartPartVector_size(self)

    def swap(self, v):
        return _pjsua2.SipMultipartPartVector_swap(self, v)

    def begin(self):
        return _pjsua2.SipMultipartPartVector_begin(self)

    def end(self):
        return _pjsua2.SipMultipartPartVector_end(self)

    def rbegin(self):
        return _pjsua2.SipMultipartPartVector_rbegin(self)

    def rend(self):
        return _pjsua2.SipMultipartPartVector_rend(self)

    def clear(self):
        return _pjsua2.SipMultipartPartVector_clear(self)

    def get_allocator(self):
        return _pjsua2.SipMultipartPartVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.SipMultipartPartVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.SipMultipartPartVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.SipMultipartPartVector_swiginit(self, _pjsua2.new_SipMultipartPartVector(*args))

    def push_back(self, x):
        return _pjsua2.SipMultipartPartVector_push_back(self, x)

    def front(self):
        return _pjsua2.SipMultipartPartVector_front(self)

    def back(self):
        return _pjsua2.SipMultipartPartVector_back(self)

    def assign(self, n, x):
        return _pjsua2.SipMultipartPartVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.SipMultipartPartVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.SipMultipartPartVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.SipMultipartPartVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.SipMultipartPartVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_SipMultipartPartVector

# Register SipMultipartPartVector in _pjsua2:
_pjsua2.SipMultipartPartVector_swigregister(SipMultipartPartVector)

class BuddyVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.BuddyVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.BuddyVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.BuddyVector___bool__(self)

    def __len__(self):
        return _pjsua2.BuddyVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.BuddyVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.BuddyVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.BuddyVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.BuddyVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.BuddyVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.BuddyVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.BuddyVector_pop(self)

    def append(self, x):
        return _pjsua2.BuddyVector_append(self, x)

    def empty(self):
        return _pjsua2.BuddyVector_empty(self)

    def size(self):
        return _pjsua2.BuddyVector_size(self)

    def swap(self, v):
        return _pjsua2.BuddyVector_swap(self, v)

    def begin(self):
        return _pjsua2.BuddyVector_begin(self)

    def end(self):
        return _pjsua2.BuddyVector_end(self)

    def rbegin(self):
        return _pjsua2.BuddyVector_rbegin(self)

    def rend(self):
        return _pjsua2.BuddyVector_rend(self)

    def clear(self):
        return _pjsua2.BuddyVector_clear(self)

    def get_allocator(self):
        return _pjsua2.BuddyVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.BuddyVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.BuddyVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.BuddyVector_swiginit(self, _pjsua2.new_BuddyVector(*args))

    def push_back(self, x):
        return _pjsua2.BuddyVector_push_back(self, x)

    def front(self):
        return _pjsua2.BuddyVector_front(self)

    def back(self):
        return _pjsua2.BuddyVector_back(self)

    def assign(self, n, x):
        return _pjsua2.BuddyVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.BuddyVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.BuddyVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.BuddyVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.BuddyVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_BuddyVector

# Register BuddyVector in _pjsua2:
_pjsua2.BuddyVector_swigregister(BuddyVector)

class BuddyVector2(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.BuddyVector2_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.BuddyVector2___nonzero__(self)

    def __bool__(self):
        return _pjsua2.BuddyVector2___bool__(self)

    def __len__(self):
        return _pjsua2.BuddyVector2___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.BuddyVector2___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.BuddyVector2___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.BuddyVector2___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.BuddyVector2___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.BuddyVector2___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.BuddyVector2___setitem__(self, *args)

    def pop(self):
        return _pjsua2.BuddyVector2_pop(self)

    def append(self, x):
        return _pjsua2.BuddyVector2_append(self, x)

    def empty(self):
        return _pjsua2.BuddyVector2_empty(self)

    def size(self):
        return _pjsua2.BuddyVector2_size(self)

    def swap(self, v):
        return _pjsua2.BuddyVector2_swap(self, v)

    def begin(self):
        return _pjsua2.BuddyVector2_begin(self)

    def end(self):
        return _pjsua2.BuddyVector2_end(self)

    def rbegin(self):
        return _pjsua2.BuddyVector2_rbegin(self)

    def rend(self):
        return _pjsua2.BuddyVector2_rend(self)

    def clear(self):
        return _pjsua2.BuddyVector2_clear(self)

    def get_allocator(self):
        return _pjsua2.BuddyVector2_get_allocator(self)

    def pop_back(self):
        return _pjsua2.BuddyVector2_pop_back(self)

    def erase(self, *args):
        return _pjsua2.BuddyVector2_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.BuddyVector2_swiginit(self, _pjsua2.new_BuddyVector2(*args))

    def push_back(self, x):
        return _pjsua2.BuddyVector2_push_back(self, x)

    def front(self):
        return _pjsua2.BuddyVector2_front(self)

    def back(self):
        return _pjsua2.BuddyVector2_back(self)

    def assign(self, n, x):
        return _pjsua2.BuddyVector2_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.BuddyVector2_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.BuddyVector2_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.BuddyVector2_reserve(self, n)

    def capacity(self):
        return _pjsua2.BuddyVector2_capacity(self)
    __swig_destroy__ = _pjsua2.delete_BuddyVector2

# Register BuddyVector2 in _pjsua2:
_pjsua2.BuddyVector2_swigregister(BuddyVector2)

class AudioMediaVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.AudioMediaVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.AudioMediaVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.AudioMediaVector___bool__(self)

    def __len__(self):
        return _pjsua2.AudioMediaVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.AudioMediaVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.AudioMediaVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.AudioMediaVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.AudioMediaVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.AudioMediaVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.AudioMediaVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.AudioMediaVector_pop(self)

    def append(self, x):
        return _pjsua2.AudioMediaVector_append(self, x)

    def empty(self):
        return _pjsua2.AudioMediaVector_empty(self)

    def size(self):
        return _pjsua2.AudioMediaVector_size(self)

    def swap(self, v):
        return _pjsua2.AudioMediaVector_swap(self, v)

    def begin(self):
        return _pjsua2.AudioMediaVector_begin(self)

    def end(self):
        return _pjsua2.AudioMediaVector_end(self)

    def rbegin(self):
        return _pjsua2.AudioMediaVector_rbegin(self)

    def rend(self):
        return _pjsua2.AudioMediaVector_rend(self)

    def clear(self):
        return _pjsua2.AudioMediaVector_clear(self)

    def get_allocator(self):
        return _pjsua2.AudioMediaVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.AudioMediaVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.AudioMediaVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.AudioMediaVector_swiginit(self, _pjsua2.new_AudioMediaVector(*args))

    def push_back(self, x):
        return _pjsua2.AudioMediaVector_push_back(self, x)

    def front(self):
        return _pjsua2.AudioMediaVector_front(self)

    def back(self):
        return _pjsua2.AudioMediaVector_back(self)

    def assign(self, n, x):
        return _pjsua2.AudioMediaVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.AudioMediaVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.AudioMediaVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.AudioMediaVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.AudioMediaVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_AudioMediaVector

# Register AudioMediaVector in _pjsua2:
_pjsua2.AudioMediaVector_swigregister(AudioMediaVector)

class AudioMediaVector2(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.AudioMediaVector2_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.AudioMediaVector2___nonzero__(self)

    def __bool__(self):
        return _pjsua2.AudioMediaVector2___bool__(self)

    def __len__(self):
        return _pjsua2.AudioMediaVector2___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.AudioMediaVector2___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.AudioMediaVector2___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.AudioMediaVector2___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.AudioMediaVector2___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.AudioMediaVector2___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.AudioMediaVector2___setitem__(self, *args)

    def pop(self):
        return _pjsua2.AudioMediaVector2_pop(self)

    def append(self, x):
        return _pjsua2.AudioMediaVector2_append(self, x)

    def empty(self):
        return _pjsua2.AudioMediaVector2_empty(self)

    def size(self):
        return _pjsua2.AudioMediaVector2_size(self)

    def swap(self, v):
        return _pjsua2.AudioMediaVector2_swap(self, v)

    def begin(self):
        return _pjsua2.AudioMediaVector2_begin(self)

    def end(self):
        return _pjsua2.AudioMediaVector2_end(self)

    def rbegin(self):
        return _pjsua2.AudioMediaVector2_rbegin(self)

    def rend(self):
        return _pjsua2.AudioMediaVector2_rend(self)

    def clear(self):
        return _pjsua2.AudioMediaVector2_clear(self)

    def get_allocator(self):
        return _pjsua2.AudioMediaVector2_get_allocator(self)

    def pop_back(self):
        return _pjsua2.AudioMediaVector2_pop_back(self)

    def erase(self, *args):
        return _pjsua2.AudioMediaVector2_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.AudioMediaVector2_swiginit(self, _pjsua2.new_AudioMediaVector2(*args))

    def push_back(self, x):
        return _pjsua2.AudioMediaVector2_push_back(self, x)

    def front(self):
        return _pjsua2.AudioMediaVector2_front(self)

    def back(self):
        return _pjsua2.AudioMediaVector2_back(self)

    def assign(self, n, x):
        return _pjsua2.AudioMediaVector2_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.AudioMediaVector2_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.AudioMediaVector2_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.AudioMediaVector2_reserve(self, n)

    def capacity(self):
        return _pjsua2.AudioMediaVector2_capacity(self)
    __swig_destroy__ = _pjsua2.delete_AudioMediaVector2

# Register AudioMediaVector2 in _pjsua2:
_pjsua2.AudioMediaVector2_swigregister(AudioMediaVector2)

class VideoMediaVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.VideoMediaVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.VideoMediaVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.VideoMediaVector___bool__(self)

    def __len__(self):
        return _pjsua2.VideoMediaVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.VideoMediaVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.VideoMediaVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.VideoMediaVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.VideoMediaVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.VideoMediaVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.VideoMediaVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.VideoMediaVector_pop(self)

    def append(self, x):
        return _pjsua2.VideoMediaVector_append(self, x)

    def empty(self):
        return _pjsua2.VideoMediaVector_empty(self)

    def size(self):
        return _pjsua2.VideoMediaVector_size(self)

    def swap(self, v):
        return _pjsua2.VideoMediaVector_swap(self, v)

    def begin(self):
        return _pjsua2.VideoMediaVector_begin(self)

    def end(self):
        return _pjsua2.VideoMediaVector_end(self)

    def rbegin(self):
        return _pjsua2.VideoMediaVector_rbegin(self)

    def rend(self):
        return _pjsua2.VideoMediaVector_rend(self)

    def clear(self):
        return _pjsua2.VideoMediaVector_clear(self)

    def get_allocator(self):
        return _pjsua2.VideoMediaVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.VideoMediaVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.VideoMediaVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.VideoMediaVector_swiginit(self, _pjsua2.new_VideoMediaVector(*args))

    def push_back(self, x):
        return _pjsua2.VideoMediaVector_push_back(self, x)

    def front(self):
        return _pjsua2.VideoMediaVector_front(self)

    def back(self):
        return _pjsua2.VideoMediaVector_back(self)

    def assign(self, n, x):
        return _pjsua2.VideoMediaVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.VideoMediaVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.VideoMediaVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.VideoMediaVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.VideoMediaVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_VideoMediaVector

# Register VideoMediaVector in _pjsua2:
_pjsua2.VideoMediaVector_swigregister(VideoMediaVector)

class ToneDescVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.ToneDescVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.ToneDescVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.ToneDescVector___bool__(self)

    def __len__(self):
        return _pjsua2.ToneDescVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.ToneDescVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.ToneDescVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.ToneDescVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.ToneDescVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.ToneDescVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.ToneDescVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.ToneDescVector_pop(self)

    def append(self, x):
        return _pjsua2.ToneDescVector_append(self, x)

    def empty(self):
        return _pjsua2.ToneDescVector_empty(self)

    def size(self):
        return _pjsua2.ToneDescVector_size(self)

    def swap(self, v):
        return _pjsua2.ToneDescVector_swap(self, v)

    def begin(self):
        return _pjsua2.ToneDescVector_begin(self)

    def end(self):
        return _pjsua2.ToneDescVector_end(self)

    def rbegin(self):
        return _pjsua2.ToneDescVector_rbegin(self)

    def rend(self):
        return _pjsua2.ToneDescVector_rend(self)

    def clear(self):
        return _pjsua2.ToneDescVector_clear(self)

    def get_allocator(self):
        return _pjsua2.ToneDescVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.ToneDescVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.ToneDescVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.ToneDescVector_swiginit(self, _pjsua2.new_ToneDescVector(*args))

    def push_back(self, x):
        return _pjsua2.ToneDescVector_push_back(self, x)

    def front(self):
        return _pjsua2.ToneDescVector_front(self)

    def back(self):
        return _pjsua2.ToneDescVector_back(self)

    def assign(self, n, x):
        return _pjsua2.ToneDescVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.ToneDescVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.ToneDescVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.ToneDescVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.ToneDescVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_ToneDescVector

# Register ToneDescVector in _pjsua2:
_pjsua2.ToneDescVector_swigregister(ToneDescVector)

class ToneDigitVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.ToneDigitVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.ToneDigitVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.ToneDigitVector___bool__(self)

    def __len__(self):
        return _pjsua2.ToneDigitVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.ToneDigitVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.ToneDigitVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.ToneDigitVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.ToneDigitVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.ToneDigitVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.ToneDigitVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.ToneDigitVector_pop(self)

    def append(self, x):
        return _pjsua2.ToneDigitVector_append(self, x)

    def empty(self):
        return _pjsua2.ToneDigitVector_empty(self)

    def size(self):
        return _pjsua2.ToneDigitVector_size(self)

    def swap(self, v):
        return _pjsua2.ToneDigitVector_swap(self, v)

    def begin(self):
        return _pjsua2.ToneDigitVector_begin(self)

    def end(self):
        return _pjsua2.ToneDigitVector_end(self)

    def rbegin(self):
        return _pjsua2.ToneDigitVector_rbegin(self)

    def rend(self):
        return _pjsua2.ToneDigitVector_rend(self)

    def clear(self):
        return _pjsua2.ToneDigitVector_clear(self)

    def get_allocator(self):
        return _pjsua2.ToneDigitVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.ToneDigitVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.ToneDigitVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.ToneDigitVector_swiginit(self, _pjsua2.new_ToneDigitVector(*args))

    def push_back(self, x):
        return _pjsua2.ToneDigitVector_push_back(self, x)

    def front(self):
        return _pjsua2.ToneDigitVector_front(self)

    def back(self):
        return _pjsua2.ToneDigitVector_back(self)

    def assign(self, n, x):
        return _pjsua2.ToneDigitVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.ToneDigitVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.ToneDigitVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.ToneDigitVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.ToneDigitVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_ToneDigitVector

# Register ToneDigitVector in _pjsua2:
_pjsua2.ToneDigitVector_swigregister(ToneDigitVector)

class ToneDigitMapVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.ToneDigitMapVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.ToneDigitMapVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.ToneDigitMapVector___bool__(self)

    def __len__(self):
        return _pjsua2.ToneDigitMapVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.ToneDigitMapVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.ToneDigitMapVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.ToneDigitMapVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.ToneDigitMapVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.ToneDigitMapVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.ToneDigitMapVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.ToneDigitMapVector_pop(self)

    def append(self, x):
        return _pjsua2.ToneDigitMapVector_append(self, x)

    def empty(self):
        return _pjsua2.ToneDigitMapVector_empty(self)

    def size(self):
        return _pjsua2.ToneDigitMapVector_size(self)

    def swap(self, v):
        return _pjsua2.ToneDigitMapVector_swap(self, v)

    def begin(self):
        return _pjsua2.ToneDigitMapVector_begin(self)

    def end(self):
        return _pjsua2.ToneDigitMapVector_end(self)

    def rbegin(self):
        return _pjsua2.ToneDigitMapVector_rbegin(self)

    def rend(self):
        return _pjsua2.ToneDigitMapVector_rend(self)

    def clear(self):
        return _pjsua2.ToneDigitMapVector_clear(self)

    def get_allocator(self):
        return _pjsua2.ToneDigitMapVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.ToneDigitMapVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.ToneDigitMapVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.ToneDigitMapVector_swiginit(self, _pjsua2.new_ToneDigitMapVector(*args))

    def push_back(self, x):
        return _pjsua2.ToneDigitMapVector_push_back(self, x)

    def front(self):
        return _pjsua2.ToneDigitMapVector_front(self)

    def back(self):
        return _pjsua2.ToneDigitMapVector_back(self)

    def assign(self, n, x):
        return _pjsua2.ToneDigitMapVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.ToneDigitMapVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.ToneDigitMapVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.ToneDigitMapVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.ToneDigitMapVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_ToneDigitMapVector

# Register ToneDigitMapVector in _pjsua2:
_pjsua2.ToneDigitMapVector_swigregister(ToneDigitMapVector)

class AudioDevInfoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.AudioDevInfoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.AudioDevInfoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.AudioDevInfoVector___bool__(self)

    def __len__(self):
        return _pjsua2.AudioDevInfoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.AudioDevInfoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.AudioDevInfoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.AudioDevInfoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.AudioDevInfoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.AudioDevInfoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.AudioDevInfoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.AudioDevInfoVector_pop(self)

    def append(self, x):
        return _pjsua2.AudioDevInfoVector_append(self, x)

    def empty(self):
        return _pjsua2.AudioDevInfoVector_empty(self)

    def size(self):
        return _pjsua2.AudioDevInfoVector_size(self)

    def swap(self, v):
        return _pjsua2.AudioDevInfoVector_swap(self, v)

    def begin(self):
        return _pjsua2.AudioDevInfoVector_begin(self)

    def end(self):
        return _pjsua2.AudioDevInfoVector_end(self)

    def rbegin(self):
        return _pjsua2.AudioDevInfoVector_rbegin(self)

    def rend(self):
        return _pjsua2.AudioDevInfoVector_rend(self)

    def clear(self):
        return _pjsua2.AudioDevInfoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.AudioDevInfoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.AudioDevInfoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.AudioDevInfoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.AudioDevInfoVector_swiginit(self, _pjsua2.new_AudioDevInfoVector(*args))

    def push_back(self, x):
        return _pjsua2.AudioDevInfoVector_push_back(self, x)

    def front(self):
        return _pjsua2.AudioDevInfoVector_front(self)

    def back(self):
        return _pjsua2.AudioDevInfoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.AudioDevInfoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.AudioDevInfoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.AudioDevInfoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.AudioDevInfoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.AudioDevInfoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_AudioDevInfoVector

# Register AudioDevInfoVector in _pjsua2:
_pjsua2.AudioDevInfoVector_swigregister(AudioDevInfoVector)

class AudioDevInfoVector2(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.AudioDevInfoVector2_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.AudioDevInfoVector2___nonzero__(self)

    def __bool__(self):
        return _pjsua2.AudioDevInfoVector2___bool__(self)

    def __len__(self):
        return _pjsua2.AudioDevInfoVector2___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.AudioDevInfoVector2___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.AudioDevInfoVector2___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.AudioDevInfoVector2___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.AudioDevInfoVector2___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.AudioDevInfoVector2___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.AudioDevInfoVector2___setitem__(self, *args)

    def pop(self):
        return _pjsua2.AudioDevInfoVector2_pop(self)

    def append(self, x):
        return _pjsua2.AudioDevInfoVector2_append(self, x)

    def empty(self):
        return _pjsua2.AudioDevInfoVector2_empty(self)

    def size(self):
        return _pjsua2.AudioDevInfoVector2_size(self)

    def swap(self, v):
        return _pjsua2.AudioDevInfoVector2_swap(self, v)

    def begin(self):
        return _pjsua2.AudioDevInfoVector2_begin(self)

    def end(self):
        return _pjsua2.AudioDevInfoVector2_end(self)

    def rbegin(self):
        return _pjsua2.AudioDevInfoVector2_rbegin(self)

    def rend(self):
        return _pjsua2.AudioDevInfoVector2_rend(self)

    def clear(self):
        return _pjsua2.AudioDevInfoVector2_clear(self)

    def get_allocator(self):
        return _pjsua2.AudioDevInfoVector2_get_allocator(self)

    def pop_back(self):
        return _pjsua2.AudioDevInfoVector2_pop_back(self)

    def erase(self, *args):
        return _pjsua2.AudioDevInfoVector2_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.AudioDevInfoVector2_swiginit(self, _pjsua2.new_AudioDevInfoVector2(*args))

    def push_back(self, x):
        return _pjsua2.AudioDevInfoVector2_push_back(self, x)

    def front(self):
        return _pjsua2.AudioDevInfoVector2_front(self)

    def back(self):
        return _pjsua2.AudioDevInfoVector2_back(self)

    def assign(self, n, x):
        return _pjsua2.AudioDevInfoVector2_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.AudioDevInfoVector2_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.AudioDevInfoVector2_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.AudioDevInfoVector2_reserve(self, n)

    def capacity(self):
        return _pjsua2.AudioDevInfoVector2_capacity(self)
    __swig_destroy__ = _pjsua2.delete_AudioDevInfoVector2

# Register AudioDevInfoVector2 in _pjsua2:
_pjsua2.AudioDevInfoVector2_swigregister(AudioDevInfoVector2)

class CodecInfoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.CodecInfoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.CodecInfoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.CodecInfoVector___bool__(self)

    def __len__(self):
        return _pjsua2.CodecInfoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.CodecInfoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.CodecInfoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.CodecInfoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.CodecInfoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.CodecInfoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.CodecInfoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.CodecInfoVector_pop(self)

    def append(self, x):
        return _pjsua2.CodecInfoVector_append(self, x)

    def empty(self):
        return _pjsua2.CodecInfoVector_empty(self)

    def size(self):
        return _pjsua2.CodecInfoVector_size(self)

    def swap(self, v):
        return _pjsua2.CodecInfoVector_swap(self, v)

    def begin(self):
        return _pjsua2.CodecInfoVector_begin(self)

    def end(self):
        return _pjsua2.CodecInfoVector_end(self)

    def rbegin(self):
        return _pjsua2.CodecInfoVector_rbegin(self)

    def rend(self):
        return _pjsua2.CodecInfoVector_rend(self)

    def clear(self):
        return _pjsua2.CodecInfoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.CodecInfoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.CodecInfoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.CodecInfoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.CodecInfoVector_swiginit(self, _pjsua2.new_CodecInfoVector(*args))

    def push_back(self, x):
        return _pjsua2.CodecInfoVector_push_back(self, x)

    def front(self):
        return _pjsua2.CodecInfoVector_front(self)

    def back(self):
        return _pjsua2.CodecInfoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.CodecInfoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.CodecInfoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.CodecInfoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.CodecInfoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.CodecInfoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_CodecInfoVector

# Register CodecInfoVector in _pjsua2:
_pjsua2.CodecInfoVector_swigregister(CodecInfoVector)

class CodecInfoVector2(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.CodecInfoVector2_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.CodecInfoVector2___nonzero__(self)

    def __bool__(self):
        return _pjsua2.CodecInfoVector2___bool__(self)

    def __len__(self):
        return _pjsua2.CodecInfoVector2___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.CodecInfoVector2___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.CodecInfoVector2___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.CodecInfoVector2___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.CodecInfoVector2___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.CodecInfoVector2___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.CodecInfoVector2___setitem__(self, *args)

    def pop(self):
        return _pjsua2.CodecInfoVector2_pop(self)

    def append(self, x):
        return _pjsua2.CodecInfoVector2_append(self, x)

    def empty(self):
        return _pjsua2.CodecInfoVector2_empty(self)

    def size(self):
        return _pjsua2.CodecInfoVector2_size(self)

    def swap(self, v):
        return _pjsua2.CodecInfoVector2_swap(self, v)

    def begin(self):
        return _pjsua2.CodecInfoVector2_begin(self)

    def end(self):
        return _pjsua2.CodecInfoVector2_end(self)

    def rbegin(self):
        return _pjsua2.CodecInfoVector2_rbegin(self)

    def rend(self):
        return _pjsua2.CodecInfoVector2_rend(self)

    def clear(self):
        return _pjsua2.CodecInfoVector2_clear(self)

    def get_allocator(self):
        return _pjsua2.CodecInfoVector2_get_allocator(self)

    def pop_back(self):
        return _pjsua2.CodecInfoVector2_pop_back(self)

    def erase(self, *args):
        return _pjsua2.CodecInfoVector2_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.CodecInfoVector2_swiginit(self, _pjsua2.new_CodecInfoVector2(*args))

    def push_back(self, x):
        return _pjsua2.CodecInfoVector2_push_back(self, x)

    def front(self):
        return _pjsua2.CodecInfoVector2_front(self)

    def back(self):
        return _pjsua2.CodecInfoVector2_back(self)

    def assign(self, n, x):
        return _pjsua2.CodecInfoVector2_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.CodecInfoVector2_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.CodecInfoVector2_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.CodecInfoVector2_reserve(self, n)

    def capacity(self):
        return _pjsua2.CodecInfoVector2_capacity(self)
    __swig_destroy__ = _pjsua2.delete_CodecInfoVector2

# Register CodecInfoVector2 in _pjsua2:
_pjsua2.CodecInfoVector2_swigregister(CodecInfoVector2)

class VideoDevInfoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.VideoDevInfoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.VideoDevInfoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.VideoDevInfoVector___bool__(self)

    def __len__(self):
        return _pjsua2.VideoDevInfoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.VideoDevInfoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.VideoDevInfoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.VideoDevInfoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.VideoDevInfoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.VideoDevInfoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.VideoDevInfoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.VideoDevInfoVector_pop(self)

    def append(self, x):
        return _pjsua2.VideoDevInfoVector_append(self, x)

    def empty(self):
        return _pjsua2.VideoDevInfoVector_empty(self)

    def size(self):
        return _pjsua2.VideoDevInfoVector_size(self)

    def swap(self, v):
        return _pjsua2.VideoDevInfoVector_swap(self, v)

    def begin(self):
        return _pjsua2.VideoDevInfoVector_begin(self)

    def end(self):
        return _pjsua2.VideoDevInfoVector_end(self)

    def rbegin(self):
        return _pjsua2.VideoDevInfoVector_rbegin(self)

    def rend(self):
        return _pjsua2.VideoDevInfoVector_rend(self)

    def clear(self):
        return _pjsua2.VideoDevInfoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.VideoDevInfoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.VideoDevInfoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.VideoDevInfoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.VideoDevInfoVector_swiginit(self, _pjsua2.new_VideoDevInfoVector(*args))

    def push_back(self, x):
        return _pjsua2.VideoDevInfoVector_push_back(self, x)

    def front(self):
        return _pjsua2.VideoDevInfoVector_front(self)

    def back(self):
        return _pjsua2.VideoDevInfoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.VideoDevInfoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.VideoDevInfoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.VideoDevInfoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.VideoDevInfoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.VideoDevInfoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_VideoDevInfoVector

# Register VideoDevInfoVector in _pjsua2:
_pjsua2.VideoDevInfoVector_swigregister(VideoDevInfoVector)

class VideoDevInfoVector2(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.VideoDevInfoVector2_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.VideoDevInfoVector2___nonzero__(self)

    def __bool__(self):
        return _pjsua2.VideoDevInfoVector2___bool__(self)

    def __len__(self):
        return _pjsua2.VideoDevInfoVector2___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.VideoDevInfoVector2___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.VideoDevInfoVector2___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.VideoDevInfoVector2___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.VideoDevInfoVector2___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.VideoDevInfoVector2___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.VideoDevInfoVector2___setitem__(self, *args)

    def pop(self):
        return _pjsua2.VideoDevInfoVector2_pop(self)

    def append(self, x):
        return _pjsua2.VideoDevInfoVector2_append(self, x)

    def empty(self):
        return _pjsua2.VideoDevInfoVector2_empty(self)

    def size(self):
        return _pjsua2.VideoDevInfoVector2_size(self)

    def swap(self, v):
        return _pjsua2.VideoDevInfoVector2_swap(self, v)

    def begin(self):
        return _pjsua2.VideoDevInfoVector2_begin(self)

    def end(self):
        return _pjsua2.VideoDevInfoVector2_end(self)

    def rbegin(self):
        return _pjsua2.VideoDevInfoVector2_rbegin(self)

    def rend(self):
        return _pjsua2.VideoDevInfoVector2_rend(self)

    def clear(self):
        return _pjsua2.VideoDevInfoVector2_clear(self)

    def get_allocator(self):
        return _pjsua2.VideoDevInfoVector2_get_allocator(self)

    def pop_back(self):
        return _pjsua2.VideoDevInfoVector2_pop_back(self)

    def erase(self, *args):
        return _pjsua2.VideoDevInfoVector2_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.VideoDevInfoVector2_swiginit(self, _pjsua2.new_VideoDevInfoVector2(*args))

    def push_back(self, x):
        return _pjsua2.VideoDevInfoVector2_push_back(self, x)

    def front(self):
        return _pjsua2.VideoDevInfoVector2_front(self)

    def back(self):
        return _pjsua2.VideoDevInfoVector2_back(self)

    def assign(self, n, x):
        return _pjsua2.VideoDevInfoVector2_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.VideoDevInfoVector2_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.VideoDevInfoVector2_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.VideoDevInfoVector2_reserve(self, n)

    def capacity(self):
        return _pjsua2.VideoDevInfoVector2_capacity(self)
    __swig_destroy__ = _pjsua2.delete_VideoDevInfoVector2

# Register VideoDevInfoVector2 in _pjsua2:
_pjsua2.VideoDevInfoVector2_swigregister(VideoDevInfoVector2)

class CodecFmtpVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.CodecFmtpVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.CodecFmtpVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.CodecFmtpVector___bool__(self)

    def __len__(self):
        return _pjsua2.CodecFmtpVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.CodecFmtpVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.CodecFmtpVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.CodecFmtpVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.CodecFmtpVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.CodecFmtpVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.CodecFmtpVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.CodecFmtpVector_pop(self)

    def append(self, x):
        return _pjsua2.CodecFmtpVector_append(self, x)

    def empty(self):
        return _pjsua2.CodecFmtpVector_empty(self)

    def size(self):
        return _pjsua2.CodecFmtpVector_size(self)

    def swap(self, v):
        return _pjsua2.CodecFmtpVector_swap(self, v)

    def begin(self):
        return _pjsua2.CodecFmtpVector_begin(self)

    def end(self):
        return _pjsua2.CodecFmtpVector_end(self)

    def rbegin(self):
        return _pjsua2.CodecFmtpVector_rbegin(self)

    def rend(self):
        return _pjsua2.CodecFmtpVector_rend(self)

    def clear(self):
        return _pjsua2.CodecFmtpVector_clear(self)

    def get_allocator(self):
        return _pjsua2.CodecFmtpVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.CodecFmtpVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.CodecFmtpVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.CodecFmtpVector_swiginit(self, _pjsua2.new_CodecFmtpVector(*args))

    def push_back(self, x):
        return _pjsua2.CodecFmtpVector_push_back(self, x)

    def front(self):
        return _pjsua2.CodecFmtpVector_front(self)

    def back(self):
        return _pjsua2.CodecFmtpVector_back(self)

    def assign(self, n, x):
        return _pjsua2.CodecFmtpVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.CodecFmtpVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.CodecFmtpVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.CodecFmtpVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.CodecFmtpVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_CodecFmtpVector

# Register CodecFmtpVector in _pjsua2:
_pjsua2.CodecFmtpVector_swigregister(CodecFmtpVector)

class MediaFormatAudioVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.MediaFormatAudioVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.MediaFormatAudioVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.MediaFormatAudioVector___bool__(self)

    def __len__(self):
        return _pjsua2.MediaFormatAudioVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.MediaFormatAudioVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.MediaFormatAudioVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.MediaFormatAudioVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.MediaFormatAudioVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.MediaFormatAudioVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.MediaFormatAudioVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.MediaFormatAudioVector_pop(self)

    def append(self, x):
        return _pjsua2.MediaFormatAudioVector_append(self, x)

    def empty(self):
        return _pjsua2.MediaFormatAudioVector_empty(self)

    def size(self):
        return _pjsua2.MediaFormatAudioVector_size(self)

    def swap(self, v):
        return _pjsua2.MediaFormatAudioVector_swap(self, v)

    def begin(self):
        return _pjsua2.MediaFormatAudioVector_begin(self)

    def end(self):
        return _pjsua2.MediaFormatAudioVector_end(self)

    def rbegin(self):
        return _pjsua2.MediaFormatAudioVector_rbegin(self)

    def rend(self):
        return _pjsua2.MediaFormatAudioVector_rend(self)

    def clear(self):
        return _pjsua2.MediaFormatAudioVector_clear(self)

    def get_allocator(self):
        return _pjsua2.MediaFormatAudioVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.MediaFormatAudioVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.MediaFormatAudioVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.MediaFormatAudioVector_swiginit(self, _pjsua2.new_MediaFormatAudioVector(*args))

    def push_back(self, x):
        return _pjsua2.MediaFormatAudioVector_push_back(self, x)

    def front(self):
        return _pjsua2.MediaFormatAudioVector_front(self)

    def back(self):
        return _pjsua2.MediaFormatAudioVector_back(self)

    def assign(self, n, x):
        return _pjsua2.MediaFormatAudioVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.MediaFormatAudioVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.MediaFormatAudioVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.MediaFormatAudioVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.MediaFormatAudioVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_MediaFormatAudioVector

# Register MediaFormatAudioVector in _pjsua2:
_pjsua2.MediaFormatAudioVector_swigregister(MediaFormatAudioVector)

class MediaFormatVideoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.MediaFormatVideoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.MediaFormatVideoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.MediaFormatVideoVector___bool__(self)

    def __len__(self):
        return _pjsua2.MediaFormatVideoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.MediaFormatVideoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.MediaFormatVideoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.MediaFormatVideoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.MediaFormatVideoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.MediaFormatVideoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.MediaFormatVideoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.MediaFormatVideoVector_pop(self)

    def append(self, x):
        return _pjsua2.MediaFormatVideoVector_append(self, x)

    def empty(self):
        return _pjsua2.MediaFormatVideoVector_empty(self)

    def size(self):
        return _pjsua2.MediaFormatVideoVector_size(self)

    def swap(self, v):
        return _pjsua2.MediaFormatVideoVector_swap(self, v)

    def begin(self):
        return _pjsua2.MediaFormatVideoVector_begin(self)

    def end(self):
        return _pjsua2.MediaFormatVideoVector_end(self)

    def rbegin(self):
        return _pjsua2.MediaFormatVideoVector_rbegin(self)

    def rend(self):
        return _pjsua2.MediaFormatVideoVector_rend(self)

    def clear(self):
        return _pjsua2.MediaFormatVideoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.MediaFormatVideoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.MediaFormatVideoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.MediaFormatVideoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.MediaFormatVideoVector_swiginit(self, _pjsua2.new_MediaFormatVideoVector(*args))

    def push_back(self, x):
        return _pjsua2.MediaFormatVideoVector_push_back(self, x)

    def front(self):
        return _pjsua2.MediaFormatVideoVector_front(self)

    def back(self):
        return _pjsua2.MediaFormatVideoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.MediaFormatVideoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.MediaFormatVideoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.MediaFormatVideoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.MediaFormatVideoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.MediaFormatVideoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_MediaFormatVideoVector

# Register MediaFormatVideoVector in _pjsua2:
_pjsua2.MediaFormatVideoVector_swigregister(MediaFormatVideoVector)

class CallMediaInfoVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.CallMediaInfoVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.CallMediaInfoVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.CallMediaInfoVector___bool__(self)

    def __len__(self):
        return _pjsua2.CallMediaInfoVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.CallMediaInfoVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.CallMediaInfoVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.CallMediaInfoVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.CallMediaInfoVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.CallMediaInfoVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.CallMediaInfoVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.CallMediaInfoVector_pop(self)

    def append(self, x):
        return _pjsua2.CallMediaInfoVector_append(self, x)

    def empty(self):
        return _pjsua2.CallMediaInfoVector_empty(self)

    def size(self):
        return _pjsua2.CallMediaInfoVector_size(self)

    def swap(self, v):
        return _pjsua2.CallMediaInfoVector_swap(self, v)

    def begin(self):
        return _pjsua2.CallMediaInfoVector_begin(self)

    def end(self):
        return _pjsua2.CallMediaInfoVector_end(self)

    def rbegin(self):
        return _pjsua2.CallMediaInfoVector_rbegin(self)

    def rend(self):
        return _pjsua2.CallMediaInfoVector_rend(self)

    def clear(self):
        return _pjsua2.CallMediaInfoVector_clear(self)

    def get_allocator(self):
        return _pjsua2.CallMediaInfoVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.CallMediaInfoVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.CallMediaInfoVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.CallMediaInfoVector_swiginit(self, _pjsua2.new_CallMediaInfoVector(*args))

    def push_back(self, x):
        return _pjsua2.CallMediaInfoVector_push_back(self, x)

    def front(self):
        return _pjsua2.CallMediaInfoVector_front(self)

    def back(self):
        return _pjsua2.CallMediaInfoVector_back(self)

    def assign(self, n, x):
        return _pjsua2.CallMediaInfoVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.CallMediaInfoVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.CallMediaInfoVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.CallMediaInfoVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.CallMediaInfoVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_CallMediaInfoVector

# Register CallMediaInfoVector in _pjsua2:
_pjsua2.CallMediaInfoVector_swigregister(CallMediaInfoVector)

class RtcpFbCapVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.RtcpFbCapVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.RtcpFbCapVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.RtcpFbCapVector___bool__(self)

    def __len__(self):
        return _pjsua2.RtcpFbCapVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.RtcpFbCapVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.RtcpFbCapVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.RtcpFbCapVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.RtcpFbCapVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.RtcpFbCapVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.RtcpFbCapVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.RtcpFbCapVector_pop(self)

    def append(self, x):
        return _pjsua2.RtcpFbCapVector_append(self, x)

    def empty(self):
        return _pjsua2.RtcpFbCapVector_empty(self)

    def size(self):
        return _pjsua2.RtcpFbCapVector_size(self)

    def swap(self, v):
        return _pjsua2.RtcpFbCapVector_swap(self, v)

    def begin(self):
        return _pjsua2.RtcpFbCapVector_begin(self)

    def end(self):
        return _pjsua2.RtcpFbCapVector_end(self)

    def rbegin(self):
        return _pjsua2.RtcpFbCapVector_rbegin(self)

    def rend(self):
        return _pjsua2.RtcpFbCapVector_rend(self)

    def clear(self):
        return _pjsua2.RtcpFbCapVector_clear(self)

    def get_allocator(self):
        return _pjsua2.RtcpFbCapVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.RtcpFbCapVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.RtcpFbCapVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.RtcpFbCapVector_swiginit(self, _pjsua2.new_RtcpFbCapVector(*args))

    def push_back(self, x):
        return _pjsua2.RtcpFbCapVector_push_back(self, x)

    def front(self):
        return _pjsua2.RtcpFbCapVector_front(self)

    def back(self):
        return _pjsua2.RtcpFbCapVector_back(self)

    def assign(self, n, x):
        return _pjsua2.RtcpFbCapVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.RtcpFbCapVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.RtcpFbCapVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.RtcpFbCapVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.RtcpFbCapVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_RtcpFbCapVector

# Register RtcpFbCapVector in _pjsua2:
_pjsua2.RtcpFbCapVector_swigregister(RtcpFbCapVector)

class SslCertNameVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _pjsua2.SslCertNameVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _pjsua2.SslCertNameVector___nonzero__(self)

    def __bool__(self):
        return _pjsua2.SslCertNameVector___bool__(self)

    def __len__(self):
        return _pjsua2.SslCertNameVector___len__(self)

    def __getslice__(self, i, j):
        return _pjsua2.SslCertNameVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _pjsua2.SslCertNameVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _pjsua2.SslCertNameVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _pjsua2.SslCertNameVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _pjsua2.SslCertNameVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _pjsua2.SslCertNameVector___setitem__(self, *args)

    def pop(self):
        return _pjsua2.SslCertNameVector_pop(self)

    def append(self, x):
        return _pjsua2.SslCertNameVector_append(self, x)

    def empty(self):
        return _pjsua2.SslCertNameVector_empty(self)

    def size(self):
        return _pjsua2.SslCertNameVector_size(self)

    def swap(self, v):
        return _pjsua2.SslCertNameVector_swap(self, v)

    def begin(self):
        return _pjsua2.SslCertNameVector_begin(self)

    def end(self):
        return _pjsua2.SslCertNameVector_end(self)

    def rbegin(self):
        return _pjsua2.SslCertNameVector_rbegin(self)

    def rend(self):
        return _pjsua2.SslCertNameVector_rend(self)

    def clear(self):
        return _pjsua2.SslCertNameVector_clear(self)

    def get_allocator(self):
        return _pjsua2.SslCertNameVector_get_allocator(self)

    def pop_back(self):
        return _pjsua2.SslCertNameVector_pop_back(self)

    def erase(self, *args):
        return _pjsua2.SslCertNameVector_erase(self, *args)

    def __init__(self, *args):
        _pjsua2.SslCertNameVector_swiginit(self, _pjsua2.new_SslCertNameVector(*args))

    def push_back(self, x):
        return _pjsua2.SslCertNameVector_push_back(self, x)

    def front(self):
        return _pjsua2.SslCertNameVector_front(self)

    def back(self):
        return _pjsua2.SslCertNameVector_back(self)

    def assign(self, n, x):
        return _pjsua2.SslCertNameVector_assign(self, n, x)

    def resize(self, *args):
        return _pjsua2.SslCertNameVector_resize(self, *args)

    def insert(self, *args):
        return _pjsua2.SslCertNameVector_insert(self, *args)

    def reserve(self, n):
        return _pjsua2.SslCertNameVector_reserve(self, n)

    def capacity(self):
        return _pjsua2.SslCertNameVector_capacity(self)
    __swig_destroy__ = _pjsua2.delete_SslCertNameVector

# Register SslCertNameVector in _pjsua2:
_pjsua2.SslCertNameVector_swigregister(SslCertNameVector)

class MediaFormat(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    id = property(_pjsua2.MediaFormat_id_get, _pjsua2.MediaFormat_id_set)
    type = property(_pjsua2.MediaFormat_type_get, _pjsua2.MediaFormat_type_set)

    def __init__(self):
        _pjsua2.MediaFormat_swiginit(self, _pjsua2.new_MediaFormat())
    __swig_destroy__ = _pjsua2.delete_MediaFormat

# Register MediaFormat in _pjsua2:
_pjsua2.MediaFormat_swigregister(MediaFormat)

class MediaFormatAudio(MediaFormat):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    clockRate = property(_pjsua2.MediaFormatAudio_clockRate_get, _pjsua2.MediaFormatAudio_clockRate_set)
    channelCount = property(_pjsua2.MediaFormatAudio_channelCount_get, _pjsua2.MediaFormatAudio_channelCount_set)
    frameTimeUsec = property(_pjsua2.MediaFormatAudio_frameTimeUsec_get, _pjsua2.MediaFormatAudio_frameTimeUsec_set)
    bitsPerSample = property(_pjsua2.MediaFormatAudio_bitsPerSample_get, _pjsua2.MediaFormatAudio_bitsPerSample_set)
    avgBps = property(_pjsua2.MediaFormatAudio_avgBps_get, _pjsua2.MediaFormatAudio_avgBps_set)
    maxBps = property(_pjsua2.MediaFormatAudio_maxBps_get, _pjsua2.MediaFormatAudio_maxBps_set)

    def __init__(self):
        _pjsua2.MediaFormatAudio_swiginit(self, _pjsua2.new_MediaFormatAudio())
    __swig_destroy__ = _pjsua2.delete_MediaFormatAudio

# Register MediaFormatAudio in _pjsua2:
_pjsua2.MediaFormatAudio_swigregister(MediaFormatAudio)

class MediaFormatVideo(MediaFormat):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    width = property(_pjsua2.MediaFormatVideo_width_get, _pjsua2.MediaFormatVideo_width_set)
    height = property(_pjsua2.MediaFormatVideo_height_get, _pjsua2.MediaFormatVideo_height_set)
    fpsNum = property(_pjsua2.MediaFormatVideo_fpsNum_get, _pjsua2.MediaFormatVideo_fpsNum_set)
    fpsDenum = property(_pjsua2.MediaFormatVideo_fpsDenum_get, _pjsua2.MediaFormatVideo_fpsDenum_set)
    avgBps = property(_pjsua2.MediaFormatVideo_avgBps_get, _pjsua2.MediaFormatVideo_avgBps_set)
    maxBps = property(_pjsua2.MediaFormatVideo_maxBps_get, _pjsua2.MediaFormatVideo_maxBps_set)

    def __init__(self):
        _pjsua2.MediaFormatVideo_swiginit(self, _pjsua2.new_MediaFormatVideo())
    __swig_destroy__ = _pjsua2.delete_MediaFormatVideo

# Register MediaFormatVideo in _pjsua2:
_pjsua2.MediaFormatVideo_swigregister(MediaFormatVideo)

class ConfPortInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    portId = property(_pjsua2.ConfPortInfo_portId_get, _pjsua2.ConfPortInfo_portId_set)
    name = property(_pjsua2.ConfPortInfo_name_get, _pjsua2.ConfPortInfo_name_set)
    format = property(_pjsua2.ConfPortInfo_format_get, _pjsua2.ConfPortInfo_format_set)
    txLevelAdj = property(_pjsua2.ConfPortInfo_txLevelAdj_get, _pjsua2.ConfPortInfo_txLevelAdj_set)
    rxLevelAdj = property(_pjsua2.ConfPortInfo_rxLevelAdj_get, _pjsua2.ConfPortInfo_rxLevelAdj_set)
    listeners = property(_pjsua2.ConfPortInfo_listeners_get, _pjsua2.ConfPortInfo_listeners_set)

    def __init__(self):
        _pjsua2.ConfPortInfo_swiginit(self, _pjsua2.new_ConfPortInfo())
    __swig_destroy__ = _pjsua2.delete_ConfPortInfo

# Register ConfPortInfo in _pjsua2:
_pjsua2.ConfPortInfo_swigregister(ConfPortInfo)

class Media(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_destroy__ = _pjsua2.delete_Media

    def getType(self):
        return _pjsua2.Media_getType(self)

# Register Media in _pjsua2:
_pjsua2.Media_swigregister(Media)

class AudioMediaTransmitParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    level = property(_pjsua2.AudioMediaTransmitParam_level_get, _pjsua2.AudioMediaTransmitParam_level_set)

    def __init__(self):
        _pjsua2.AudioMediaTransmitParam_swiginit(self, _pjsua2.new_AudioMediaTransmitParam())
    __swig_destroy__ = _pjsua2.delete_AudioMediaTransmitParam

# Register AudioMediaTransmitParam in _pjsua2:
_pjsua2.AudioMediaTransmitParam_swigregister(AudioMediaTransmitParam)

class AudioMedia(Media):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def getPortInfo(self):
        return _pjsua2.AudioMedia_getPortInfo(self)

    def getPortId(self):
        return _pjsua2.AudioMedia_getPortId(self)

    @staticmethod
    def getPortInfoFromId(port_id):
        return _pjsua2.AudioMedia_getPortInfoFromId(port_id)

    def startTransmit(self, sink):
        return _pjsua2.AudioMedia_startTransmit(self, sink)

    def startTransmit2(self, sink, param):
        return _pjsua2.AudioMedia_startTransmit2(self, sink, param)

    def stopTransmit(self, sink):
        return _pjsua2.AudioMedia_stopTransmit(self, sink)

    def adjustRxLevel(self, level):
        return _pjsua2.AudioMedia_adjustRxLevel(self, level)

    def adjustTxLevel(self, level):
        return _pjsua2.AudioMedia_adjustTxLevel(self, level)

    def getRxLevel(self):
        return _pjsua2.AudioMedia_getRxLevel(self)

    def getTxLevel(self):
        return _pjsua2.AudioMedia_getTxLevel(self)

    @staticmethod
    def typecastFromMedia(media):
        return _pjsua2.AudioMedia_typecastFromMedia(media)

    def __init__(self):
        _pjsua2.AudioMedia_swiginit(self, _pjsua2.new_AudioMedia())
    __swig_destroy__ = _pjsua2.delete_AudioMedia

# Register AudioMedia in _pjsua2:
_pjsua2.AudioMedia_swigregister(AudioMedia)

def AudioMedia_getPortInfoFromId(port_id):
    return _pjsua2.AudioMedia_getPortInfoFromId(port_id)

def AudioMedia_typecastFromMedia(media):
    return _pjsua2.AudioMedia_typecastFromMedia(media)

class AudioMediaPlayerInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    formatId = property(_pjsua2.AudioMediaPlayerInfo_formatId_get, _pjsua2.AudioMediaPlayerInfo_formatId_set)
    payloadBitsPerSample = property(_pjsua2.AudioMediaPlayerInfo_payloadBitsPerSample_get, _pjsua2.AudioMediaPlayerInfo_payloadBitsPerSample_set)
    sizeBytes = property(_pjsua2.AudioMediaPlayerInfo_sizeBytes_get, _pjsua2.AudioMediaPlayerInfo_sizeBytes_set)
    sizeSamples = property(_pjsua2.AudioMediaPlayerInfo_sizeSamples_get, _pjsua2.AudioMediaPlayerInfo_sizeSamples_set)

    def __init__(self):
        _pjsua2.AudioMediaPlayerInfo_swiginit(self, _pjsua2.new_AudioMediaPlayerInfo())
    __swig_destroy__ = _pjsua2.delete_AudioMediaPlayerInfo

# Register AudioMediaPlayerInfo in _pjsua2:
_pjsua2.AudioMediaPlayerInfo_swigregister(AudioMediaPlayerInfo)

class AudioMediaPlayer(AudioMedia):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        if self.__class__ == AudioMediaPlayer:
            _self = None
        else:
            _self = self
        _pjsua2.AudioMediaPlayer_swiginit(self, _pjsua2.new_AudioMediaPlayer(_self, ))

    def createPlayer(self, file_name, options=0):
        return _pjsua2.AudioMediaPlayer_createPlayer(self, file_name, options)

    def createPlaylist(self, *args):
        return _pjsua2.AudioMediaPlayer_createPlaylist(self, *args)

    def getInfo(self):
        return _pjsua2.AudioMediaPlayer_getInfo(self)

    def getPos(self):
        return _pjsua2.AudioMediaPlayer_getPos(self)

    def setPos(self, samples):
        return _pjsua2.AudioMediaPlayer_setPos(self, samples)

    @staticmethod
    def typecastFromAudioMedia(media):
        return _pjsua2.AudioMediaPlayer_typecastFromAudioMedia(media)
    __swig_destroy__ = _pjsua2.delete_AudioMediaPlayer

    def onEof2(self):
        return _pjsua2.AudioMediaPlayer_onEof2(self)
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_AudioMediaPlayer(self)
        return weakref.proxy(self)

# Register AudioMediaPlayer in _pjsua2:
_pjsua2.AudioMediaPlayer_swigregister(AudioMediaPlayer)

def AudioMediaPlayer_typecastFromAudioMedia(media):
    return _pjsua2.AudioMediaPlayer_typecastFromAudioMedia(media)

class AudioMediaRecorder(AudioMedia):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.AudioMediaRecorder_swiginit(self, _pjsua2.new_AudioMediaRecorder())

    def createRecorder(self, file_name, enc_type=0, max_size=0, options=0):
        return _pjsua2.AudioMediaRecorder_createRecorder(self, file_name, enc_type, max_size, options)

    @staticmethod
    def typecastFromAudioMedia(media):
        return _pjsua2.AudioMediaRecorder_typecastFromAudioMedia(media)
    __swig_destroy__ = _pjsua2.delete_AudioMediaRecorder

# Register AudioMediaRecorder in _pjsua2:
_pjsua2.AudioMediaRecorder_swigregister(AudioMediaRecorder)

def AudioMediaRecorder_typecastFromAudioMedia(media):
    return _pjsua2.AudioMediaRecorder_typecastFromAudioMedia(media)

class ToneDesc(pjmedia_tone_desc):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.ToneDesc_swiginit(self, _pjsua2.new_ToneDesc())
    __swig_destroy__ = _pjsua2.delete_ToneDesc

# Register ToneDesc in _pjsua2:
_pjsua2.ToneDesc_swigregister(ToneDesc)

class ToneDigit(pjmedia_tone_digit):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.ToneDigit_swiginit(self, _pjsua2.new_ToneDigit())
    __swig_destroy__ = _pjsua2.delete_ToneDigit

# Register ToneDigit in _pjsua2:
_pjsua2.ToneDigit_swigregister(ToneDigit)

class ToneDigitMapDigit(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    digit = property(_pjsua2.ToneDigitMapDigit_digit_get, _pjsua2.ToneDigitMapDigit_digit_set)
    freq1 = property(_pjsua2.ToneDigitMapDigit_freq1_get, _pjsua2.ToneDigitMapDigit_freq1_set)
    freq2 = property(_pjsua2.ToneDigitMapDigit_freq2_get, _pjsua2.ToneDigitMapDigit_freq2_set)

    def __init__(self):
        _pjsua2.ToneDigitMapDigit_swiginit(self, _pjsua2.new_ToneDigitMapDigit())
    __swig_destroy__ = _pjsua2.delete_ToneDigitMapDigit

# Register ToneDigitMapDigit in _pjsua2:
_pjsua2.ToneDigitMapDigit_swigregister(ToneDigitMapDigit)

class ToneGenerator(AudioMedia):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.ToneGenerator_swiginit(self, _pjsua2.new_ToneGenerator())
    __swig_destroy__ = _pjsua2.delete_ToneGenerator

    def createToneGenerator(self, clock_rate=16000, channel_count=1):
        return _pjsua2.ToneGenerator_createToneGenerator(self, clock_rate, channel_count)

    def isBusy(self):
        return _pjsua2.ToneGenerator_isBusy(self)

    def stop(self):
        return _pjsua2.ToneGenerator_stop(self)

    def rewind(self):
        return _pjsua2.ToneGenerator_rewind(self)

    def play(self, tones, loop=False):
        return _pjsua2.ToneGenerator_play(self, tones, loop)

    def playDigits(self, digits, loop=False):
        return _pjsua2.ToneGenerator_playDigits(self, digits, loop)

    def getDigitMap(self):
        return _pjsua2.ToneGenerator_getDigitMap(self)

    def setDigitMap(self, digit_map):
        return _pjsua2.ToneGenerator_setDigitMap(self, digit_map)

# Register ToneGenerator in _pjsua2:
_pjsua2.ToneGenerator_swigregister(ToneGenerator)

class AudioDevInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    name = property(_pjsua2.AudioDevInfo_name_get, _pjsua2.AudioDevInfo_name_set)
    inputCount = property(_pjsua2.AudioDevInfo_inputCount_get, _pjsua2.AudioDevInfo_inputCount_set)
    outputCount = property(_pjsua2.AudioDevInfo_outputCount_get, _pjsua2.AudioDevInfo_outputCount_set)
    defaultSamplesPerSec = property(_pjsua2.AudioDevInfo_defaultSamplesPerSec_get, _pjsua2.AudioDevInfo_defaultSamplesPerSec_set)
    driver = property(_pjsua2.AudioDevInfo_driver_get, _pjsua2.AudioDevInfo_driver_set)
    caps = property(_pjsua2.AudioDevInfo_caps_get, _pjsua2.AudioDevInfo_caps_set)
    routes = property(_pjsua2.AudioDevInfo_routes_get, _pjsua2.AudioDevInfo_routes_set)
    extFmt = property(_pjsua2.AudioDevInfo_extFmt_get, _pjsua2.AudioDevInfo_extFmt_set)
    __swig_destroy__ = _pjsua2.delete_AudioDevInfo

    def __init__(self):
        _pjsua2.AudioDevInfo_swiginit(self, _pjsua2.new_AudioDevInfo())

# Register AudioDevInfo in _pjsua2:
_pjsua2.AudioDevInfo_swigregister(AudioDevInfo)

class AudDevManager(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def getCaptureDev(self):
        return _pjsua2.AudDevManager_getCaptureDev(self)

    def getCaptureDevMedia(self):
        return _pjsua2.AudDevManager_getCaptureDevMedia(self)

    def getPlaybackDev(self):
        return _pjsua2.AudDevManager_getPlaybackDev(self)

    def getPlaybackDevMedia(self):
        return _pjsua2.AudDevManager_getPlaybackDevMedia(self)

    def setCaptureDev(self, capture_dev):
        return _pjsua2.AudDevManager_setCaptureDev(self, capture_dev)

    def setPlaybackDev(self, playback_dev):
        return _pjsua2.AudDevManager_setPlaybackDev(self, playback_dev)

    def enumDev2(self):
        return _pjsua2.AudDevManager_enumDev2(self)

    def setNullDev(self):
        return _pjsua2.AudDevManager_setNullDev(self)

    def setNoDev(self):
        return _pjsua2.AudDevManager_setNoDev(self)

    def setSndDevMode(self, mode):
        return _pjsua2.AudDevManager_setSndDevMode(self, mode)

    def setEcOptions(self, tail_msec, options):
        return _pjsua2.AudDevManager_setEcOptions(self, tail_msec, options)

    def getEcTail(self):
        return _pjsua2.AudDevManager_getEcTail(self)

    def sndIsActive(self):
        return _pjsua2.AudDevManager_sndIsActive(self)

    def refreshDevs(self):
        return _pjsua2.AudDevManager_refreshDevs(self)

    def getDevCount(self):
        return _pjsua2.AudDevManager_getDevCount(self)

    def getDevInfo(self, id):
        return _pjsua2.AudDevManager_getDevInfo(self, id)

    def lookupDev(self, drv_name, dev_name):
        return _pjsua2.AudDevManager_lookupDev(self, drv_name, dev_name)

    def capName(self, cap):
        return _pjsua2.AudDevManager_capName(self, cap)

    def setExtFormat(self, format, keep=True):
        return _pjsua2.AudDevManager_setExtFormat(self, format, keep)

    def getExtFormat(self):
        return _pjsua2.AudDevManager_getExtFormat(self)

    def setInputLatency(self, latency_msec, keep=True):
        return _pjsua2.AudDevManager_setInputLatency(self, latency_msec, keep)

    def getInputLatency(self):
        return _pjsua2.AudDevManager_getInputLatency(self)

    def setOutputLatency(self, latency_msec, keep=True):
        return _pjsua2.AudDevManager_setOutputLatency(self, latency_msec, keep)

    def getOutputLatency(self):
        return _pjsua2.AudDevManager_getOutputLatency(self)

    def setInputVolume(self, volume, keep=True):
        return _pjsua2.AudDevManager_setInputVolume(self, volume, keep)

    def getInputVolume(self):
        return _pjsua2.AudDevManager_getInputVolume(self)

    def setOutputVolume(self, volume, keep=True):
        return _pjsua2.AudDevManager_setOutputVolume(self, volume, keep)

    def getOutputVolume(self):
        return _pjsua2.AudDevManager_getOutputVolume(self)

    def getInputSignal(self):
        return _pjsua2.AudDevManager_getInputSignal(self)

    def getOutputSignal(self):
        return _pjsua2.AudDevManager_getOutputSignal(self)

    def setInputRoute(self, route, keep=True):
        return _pjsua2.AudDevManager_setInputRoute(self, route, keep)

    def getInputRoute(self):
        return _pjsua2.AudDevManager_getInputRoute(self)

    def setOutputRoute(self, route, keep=True):
        return _pjsua2.AudDevManager_setOutputRoute(self, route, keep)

    def getOutputRoute(self):
        return _pjsua2.AudDevManager_getOutputRoute(self)

    def setVad(self, enable, keep=True):
        return _pjsua2.AudDevManager_setVad(self, enable, keep)

    def getVad(self):
        return _pjsua2.AudDevManager_getVad(self)

    def setCng(self, enable, keep=True):
        return _pjsua2.AudDevManager_setCng(self, enable, keep)

    def getCng(self):
        return _pjsua2.AudDevManager_getCng(self)

    def setPlc(self, enable, keep=True):
        return _pjsua2.AudDevManager_setPlc(self, enable, keep)

    def getPlc(self):
        return _pjsua2.AudDevManager_getPlc(self)

# Register AudDevManager in _pjsua2:
_pjsua2.AudDevManager_swigregister(AudDevManager)

class ExtraAudioDevice(AudioMedia):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, playdev, recdev):
        _pjsua2.ExtraAudioDevice_swiginit(self, _pjsua2.new_ExtraAudioDevice(playdev, recdev))
    __swig_destroy__ = _pjsua2.delete_ExtraAudioDevice

    def open(self):
        return _pjsua2.ExtraAudioDevice_open(self)

    def close(self):
        return _pjsua2.ExtraAudioDevice_close(self)

    def isOpened(self):
        return _pjsua2.ExtraAudioDevice_isOpened(self)

# Register ExtraAudioDevice in _pjsua2:
_pjsua2.ExtraAudioDevice_swigregister(ExtraAudioDevice)

class MediaCoordinate(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_pjsua2.MediaCoordinate_x_get, _pjsua2.MediaCoordinate_x_set)
    y = property(_pjsua2.MediaCoordinate_y_get, _pjsua2.MediaCoordinate_y_set)

    def __init__(self):
        _pjsua2.MediaCoordinate_swiginit(self, _pjsua2.new_MediaCoordinate())
    __swig_destroy__ = _pjsua2.delete_MediaCoordinate

# Register MediaCoordinate in _pjsua2:
_pjsua2.MediaCoordinate_swigregister(MediaCoordinate)

class MediaSize(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    w = property(_pjsua2.MediaSize_w_get, _pjsua2.MediaSize_w_set)
    h = property(_pjsua2.MediaSize_h_get, _pjsua2.MediaSize_h_set)

    def __init__(self):
        _pjsua2.MediaSize_swiginit(self, _pjsua2.new_MediaSize())
    __swig_destroy__ = _pjsua2.delete_MediaSize

# Register MediaSize in _pjsua2:
_pjsua2.MediaSize_swigregister(MediaSize)

class VidConfPortInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    portId = property(_pjsua2.VidConfPortInfo_portId_get, _pjsua2.VidConfPortInfo_portId_set)
    name = property(_pjsua2.VidConfPortInfo_name_get, _pjsua2.VidConfPortInfo_name_set)
    format = property(_pjsua2.VidConfPortInfo_format_get, _pjsua2.VidConfPortInfo_format_set)
    listeners = property(_pjsua2.VidConfPortInfo_listeners_get, _pjsua2.VidConfPortInfo_listeners_set)
    transmitters = property(_pjsua2.VidConfPortInfo_transmitters_get, _pjsua2.VidConfPortInfo_transmitters_set)

    def __init__(self):
        _pjsua2.VidConfPortInfo_swiginit(self, _pjsua2.new_VidConfPortInfo())
    __swig_destroy__ = _pjsua2.delete_VidConfPortInfo

# Register VidConfPortInfo in _pjsua2:
_pjsua2.VidConfPortInfo_swigregister(VidConfPortInfo)

class VideoMediaTransmitParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.VideoMediaTransmitParam_swiginit(self, _pjsua2.new_VideoMediaTransmitParam())
    __swig_destroy__ = _pjsua2.delete_VideoMediaTransmitParam

# Register VideoMediaTransmitParam in _pjsua2:
_pjsua2.VideoMediaTransmitParam_swigregister(VideoMediaTransmitParam)

class VideoMedia(Media):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def getPortInfo(self):
        return _pjsua2.VideoMedia_getPortInfo(self)

    def getPortId(self):
        return _pjsua2.VideoMedia_getPortId(self)

    @staticmethod
    def getPortInfoFromId(port_id):
        return _pjsua2.VideoMedia_getPortInfoFromId(port_id)

    def startTransmit(self, sink, param):
        return _pjsua2.VideoMedia_startTransmit(self, sink, param)

    def stopTransmit(self, sink):
        return _pjsua2.VideoMedia_stopTransmit(self, sink)

    def update(self):
        return _pjsua2.VideoMedia_update(self)

    def __init__(self):
        _pjsua2.VideoMedia_swiginit(self, _pjsua2.new_VideoMedia())
    __swig_destroy__ = _pjsua2.delete_VideoMedia

# Register VideoMedia in _pjsua2:
_pjsua2.VideoMedia_swigregister(VideoMedia)

def VideoMedia_getPortInfoFromId(port_id):
    return _pjsua2.VideoMedia_getPortInfoFromId(port_id)

class WindowHandle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def setWindow(self, hwnd):
        return _pjsua2.WindowHandle_setWindow(self, hwnd)

    def __init__(self):
        _pjsua2.WindowHandle_swiginit(self, _pjsua2.new_WindowHandle())
    __swig_destroy__ = _pjsua2.delete_WindowHandle

# Register WindowHandle in _pjsua2:
_pjsua2.WindowHandle_swigregister(WindowHandle)

class VideoWindowHandle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_pjsua2.VideoWindowHandle_type_get, _pjsua2.VideoWindowHandle_type_set)
    handle = property(_pjsua2.VideoWindowHandle_handle_get, _pjsua2.VideoWindowHandle_handle_set)

    def __init__(self):
        _pjsua2.VideoWindowHandle_swiginit(self, _pjsua2.new_VideoWindowHandle())
    __swig_destroy__ = _pjsua2.delete_VideoWindowHandle

# Register VideoWindowHandle in _pjsua2:
_pjsua2.VideoWindowHandle_swigregister(VideoWindowHandle)

class VideoWindowInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    isNative = property(_pjsua2.VideoWindowInfo_isNative_get, _pjsua2.VideoWindowInfo_isNative_set)
    winHandle = property(_pjsua2.VideoWindowInfo_winHandle_get, _pjsua2.VideoWindowInfo_winHandle_set)
    renderDeviceId = property(_pjsua2.VideoWindowInfo_renderDeviceId_get, _pjsua2.VideoWindowInfo_renderDeviceId_set)
    show = property(_pjsua2.VideoWindowInfo_show_get, _pjsua2.VideoWindowInfo_show_set)
    pos = property(_pjsua2.VideoWindowInfo_pos_get, _pjsua2.VideoWindowInfo_pos_set)
    size = property(_pjsua2.VideoWindowInfo_size_get, _pjsua2.VideoWindowInfo_size_set)

    def __init__(self):
        _pjsua2.VideoWindowInfo_swiginit(self, _pjsua2.new_VideoWindowInfo())
    __swig_destroy__ = _pjsua2.delete_VideoWindowInfo

# Register VideoWindowInfo in _pjsua2:
_pjsua2.VideoWindowInfo_swigregister(VideoWindowInfo)

class VideoWindow(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, win_id):
        _pjsua2.VideoWindow_swiginit(self, _pjsua2.new_VideoWindow(win_id))

    def getInfo(self):
        return _pjsua2.VideoWindow_getInfo(self)

    def getVideoMedia(self):
        return _pjsua2.VideoWindow_getVideoMedia(self)

    def Show(self, show):
        return _pjsua2.VideoWindow_Show(self, show)

    def setPos(self, pos):
        return _pjsua2.VideoWindow_setPos(self, pos)

    def setSize(self, size):
        return _pjsua2.VideoWindow_setSize(self, size)

    def rotate(self, angle):
        return _pjsua2.VideoWindow_rotate(self, angle)

    def setWindow(self, win):
        return _pjsua2.VideoWindow_setWindow(self, win)

    def setFullScreen(self, enabled):
        return _pjsua2.VideoWindow_setFullScreen(self, enabled)

    def setFullScreen2(self, mode):
        return _pjsua2.VideoWindow_setFullScreen2(self, mode)
    __swig_destroy__ = _pjsua2.delete_VideoWindow

# Register VideoWindow in _pjsua2:
_pjsua2.VideoWindow_swigregister(VideoWindow)

class VideoPreviewOpParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    rendId = property(_pjsua2.VideoPreviewOpParam_rendId_get, _pjsua2.VideoPreviewOpParam_rendId_set)
    show = property(_pjsua2.VideoPreviewOpParam_show_get, _pjsua2.VideoPreviewOpParam_show_set)
    windowFlags = property(_pjsua2.VideoPreviewOpParam_windowFlags_get, _pjsua2.VideoPreviewOpParam_windowFlags_set)
    format = property(_pjsua2.VideoPreviewOpParam_format_get, _pjsua2.VideoPreviewOpParam_format_set)
    window = property(_pjsua2.VideoPreviewOpParam_window_get, _pjsua2.VideoPreviewOpParam_window_set)

    def __init__(self):
        _pjsua2.VideoPreviewOpParam_swiginit(self, _pjsua2.new_VideoPreviewOpParam())
    __swig_destroy__ = _pjsua2.delete_VideoPreviewOpParam

# Register VideoPreviewOpParam in _pjsua2:
_pjsua2.VideoPreviewOpParam_swigregister(VideoPreviewOpParam)

class VideoPreview(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, dev_id):
        _pjsua2.VideoPreview_swiginit(self, _pjsua2.new_VideoPreview(dev_id))

    def hasNative(self):
        return _pjsua2.VideoPreview_hasNative(self)

    def start(self, param):
        return _pjsua2.VideoPreview_start(self, param)

    def stop(self):
        return _pjsua2.VideoPreview_stop(self)

    def getVideoWindow(self):
        return _pjsua2.VideoPreview_getVideoWindow(self)

    def getVideoMedia(self):
        return _pjsua2.VideoPreview_getVideoMedia(self)
    __swig_destroy__ = _pjsua2.delete_VideoPreview

# Register VideoPreview in _pjsua2:
_pjsua2.VideoPreview_swigregister(VideoPreview)

class VideoDevInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    id = property(_pjsua2.VideoDevInfo_id_get, _pjsua2.VideoDevInfo_id_set)
    name = property(_pjsua2.VideoDevInfo_name_get, _pjsua2.VideoDevInfo_name_set)
    driver = property(_pjsua2.VideoDevInfo_driver_get, _pjsua2.VideoDevInfo_driver_set)
    dir = property(_pjsua2.VideoDevInfo_dir_get, _pjsua2.VideoDevInfo_dir_set)
    caps = property(_pjsua2.VideoDevInfo_caps_get, _pjsua2.VideoDevInfo_caps_set)
    fmt = property(_pjsua2.VideoDevInfo_fmt_get, _pjsua2.VideoDevInfo_fmt_set)

    def __init__(self):
        _pjsua2.VideoDevInfo_swiginit(self, _pjsua2.new_VideoDevInfo())
    __swig_destroy__ = _pjsua2.delete_VideoDevInfo

# Register VideoDevInfo in _pjsua2:
_pjsua2.VideoDevInfo_swigregister(VideoDevInfo)

class VideoSwitchParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    target_id = property(_pjsua2.VideoSwitchParam_target_id_get, _pjsua2.VideoSwitchParam_target_id_set)

    def __init__(self):
        _pjsua2.VideoSwitchParam_swiginit(self, _pjsua2.new_VideoSwitchParam())
    __swig_destroy__ = _pjsua2.delete_VideoSwitchParam

# Register VideoSwitchParam in _pjsua2:
_pjsua2.VideoSwitchParam_swigregister(VideoSwitchParam)

class VidDevManager(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def initSubsys(self):
        return _pjsua2.VidDevManager_initSubsys(self)

    def refreshDevs(self):
        return _pjsua2.VidDevManager_refreshDevs(self)

    def getDevCount(self):
        return _pjsua2.VidDevManager_getDevCount(self)

    def getDevInfo(self, dev_id):
        return _pjsua2.VidDevManager_getDevInfo(self, dev_id)

    def enumDev2(self):
        return _pjsua2.VidDevManager_enumDev2(self)

    def lookupDev(self, drv_name, dev_name):
        return _pjsua2.VidDevManager_lookupDev(self, drv_name, dev_name)

    def capName(self, cap):
        return _pjsua2.VidDevManager_capName(self, cap)

    def setFormat(self, dev_id, format, keep):
        return _pjsua2.VidDevManager_setFormat(self, dev_id, format, keep)

    def getFormat(self, dev_id):
        return _pjsua2.VidDevManager_getFormat(self, dev_id)

    def setInputScale(self, dev_id, scale, keep):
        return _pjsua2.VidDevManager_setInputScale(self, dev_id, scale, keep)

    def getInputScale(self, dev_id):
        return _pjsua2.VidDevManager_getInputScale(self, dev_id)

    def setOutputWindowFlags(self, dev_id, flags, keep):
        return _pjsua2.VidDevManager_setOutputWindowFlags(self, dev_id, flags, keep)

    def getOutputWindowFlags(self, dev_id):
        return _pjsua2.VidDevManager_getOutputWindowFlags(self, dev_id)

    def switchDev(self, dev_id, param):
        return _pjsua2.VidDevManager_switchDev(self, dev_id, param)

    def isCaptureActive(self, dev_id):
        return _pjsua2.VidDevManager_isCaptureActive(self, dev_id)

    def setCaptureOrient(self, dev_id, orient, keep=True):
        return _pjsua2.VidDevManager_setCaptureOrient(self, dev_id, orient, keep)

# Register VidDevManager in _pjsua2:
_pjsua2.VidDevManager_swigregister(VidDevManager)

class CodecInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    codecId = property(_pjsua2.CodecInfo_codecId_get, _pjsua2.CodecInfo_codecId_set)
    priority = property(_pjsua2.CodecInfo_priority_get, _pjsua2.CodecInfo_priority_set)
    desc = property(_pjsua2.CodecInfo_desc_get, _pjsua2.CodecInfo_desc_set)

    def __init__(self):
        _pjsua2.CodecInfo_swiginit(self, _pjsua2.new_CodecInfo())
    __swig_destroy__ = _pjsua2.delete_CodecInfo

# Register CodecInfo in _pjsua2:
_pjsua2.CodecInfo_swigregister(CodecInfo)

class CodecFmtp(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    name = property(_pjsua2.CodecFmtp_name_get, _pjsua2.CodecFmtp_name_set)
    val = property(_pjsua2.CodecFmtp_val_get, _pjsua2.CodecFmtp_val_set)

    def __init__(self):
        _pjsua2.CodecFmtp_swiginit(self, _pjsua2.new_CodecFmtp())
    __swig_destroy__ = _pjsua2.delete_CodecFmtp

# Register CodecFmtp in _pjsua2:
_pjsua2.CodecFmtp_swigregister(CodecFmtp)

class CodecParamInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    clockRate = property(_pjsua2.CodecParamInfo_clockRate_get, _pjsua2.CodecParamInfo_clockRate_set)
    channelCnt = property(_pjsua2.CodecParamInfo_channelCnt_get, _pjsua2.CodecParamInfo_channelCnt_set)
    avgBps = property(_pjsua2.CodecParamInfo_avgBps_get, _pjsua2.CodecParamInfo_avgBps_set)
    maxBps = property(_pjsua2.CodecParamInfo_maxBps_get, _pjsua2.CodecParamInfo_maxBps_set)
    maxRxFrameSize = property(_pjsua2.CodecParamInfo_maxRxFrameSize_get, _pjsua2.CodecParamInfo_maxRxFrameSize_set)
    frameLen = property(_pjsua2.CodecParamInfo_frameLen_get, _pjsua2.CodecParamInfo_frameLen_set)
    pcmBitsPerSample = property(_pjsua2.CodecParamInfo_pcmBitsPerSample_get, _pjsua2.CodecParamInfo_pcmBitsPerSample_set)
    pt = property(_pjsua2.CodecParamInfo_pt_get, _pjsua2.CodecParamInfo_pt_set)
    fmtId = property(_pjsua2.CodecParamInfo_fmtId_get, _pjsua2.CodecParamInfo_fmtId_set)

    def __init__(self):
        _pjsua2.CodecParamInfo_swiginit(self, _pjsua2.new_CodecParamInfo())
    __swig_destroy__ = _pjsua2.delete_CodecParamInfo

# Register CodecParamInfo in _pjsua2:
_pjsua2.CodecParamInfo_swigregister(CodecParamInfo)

class CodecParamSetting(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    frmPerPkt = property(_pjsua2.CodecParamSetting_frmPerPkt_get, _pjsua2.CodecParamSetting_frmPerPkt_set)
    vad = property(_pjsua2.CodecParamSetting_vad_get, _pjsua2.CodecParamSetting_vad_set)
    cng = property(_pjsua2.CodecParamSetting_cng_get, _pjsua2.CodecParamSetting_cng_set)
    penh = property(_pjsua2.CodecParamSetting_penh_get, _pjsua2.CodecParamSetting_penh_set)
    plc = property(_pjsua2.CodecParamSetting_plc_get, _pjsua2.CodecParamSetting_plc_set)
    reserved = property(_pjsua2.CodecParamSetting_reserved_get, _pjsua2.CodecParamSetting_reserved_set)
    encFmtp = property(_pjsua2.CodecParamSetting_encFmtp_get, _pjsua2.CodecParamSetting_encFmtp_set)
    decFmtp = property(_pjsua2.CodecParamSetting_decFmtp_get, _pjsua2.CodecParamSetting_decFmtp_set)

    def __init__(self):
        _pjsua2.CodecParamSetting_swiginit(self, _pjsua2.new_CodecParamSetting())
    __swig_destroy__ = _pjsua2.delete_CodecParamSetting

# Register CodecParamSetting in _pjsua2:
_pjsua2.CodecParamSetting_swigregister(CodecParamSetting)

class CodecParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    info = property(_pjsua2.CodecParam_info_get, _pjsua2.CodecParam_info_set)
    setting = property(_pjsua2.CodecParam_setting_get, _pjsua2.CodecParam_setting_set)

    def __init__(self):
        _pjsua2.CodecParam_swiginit(self, _pjsua2.new_CodecParam())
    __swig_destroy__ = _pjsua2.delete_CodecParam

# Register CodecParam in _pjsua2:
_pjsua2.CodecParam_swigregister(CodecParam)

class CodecOpusConfig(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    sample_rate = property(_pjsua2.CodecOpusConfig_sample_rate_get, _pjsua2.CodecOpusConfig_sample_rate_set)
    channel_cnt = property(_pjsua2.CodecOpusConfig_channel_cnt_get, _pjsua2.CodecOpusConfig_channel_cnt_set)
    frm_ptime = property(_pjsua2.CodecOpusConfig_frm_ptime_get, _pjsua2.CodecOpusConfig_frm_ptime_set)
    bit_rate = property(_pjsua2.CodecOpusConfig_bit_rate_get, _pjsua2.CodecOpusConfig_bit_rate_set)
    packet_loss = property(_pjsua2.CodecOpusConfig_packet_loss_get, _pjsua2.CodecOpusConfig_packet_loss_set)
    complexity = property(_pjsua2.CodecOpusConfig_complexity_get, _pjsua2.CodecOpusConfig_complexity_set)
    cbr = property(_pjsua2.CodecOpusConfig_cbr_get, _pjsua2.CodecOpusConfig_cbr_set)

    def __init__(self):
        _pjsua2.CodecOpusConfig_swiginit(self, _pjsua2.new_CodecOpusConfig())
    __swig_destroy__ = _pjsua2.delete_CodecOpusConfig

# Register CodecOpusConfig in _pjsua2:
_pjsua2.CodecOpusConfig_swigregister(CodecOpusConfig)

class VidCodecParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    dir = property(_pjsua2.VidCodecParam_dir_get, _pjsua2.VidCodecParam_dir_set)
    packing = property(_pjsua2.VidCodecParam_packing_get, _pjsua2.VidCodecParam_packing_set)
    encFmt = property(_pjsua2.VidCodecParam_encFmt_get, _pjsua2.VidCodecParam_encFmt_set)
    encFmtp = property(_pjsua2.VidCodecParam_encFmtp_get, _pjsua2.VidCodecParam_encFmtp_set)
    encMtu = property(_pjsua2.VidCodecParam_encMtu_get, _pjsua2.VidCodecParam_encMtu_set)
    decFmt = property(_pjsua2.VidCodecParam_decFmt_get, _pjsua2.VidCodecParam_decFmt_set)
    decFmtp = property(_pjsua2.VidCodecParam_decFmtp_get, _pjsua2.VidCodecParam_decFmtp_set)
    ignoreFmtp = property(_pjsua2.VidCodecParam_ignoreFmtp_get, _pjsua2.VidCodecParam_ignoreFmtp_set)

    def __init__(self):
        _pjsua2.VidCodecParam_swiginit(self, _pjsua2.new_VidCodecParam())
    __swig_destroy__ = _pjsua2.delete_VidCodecParam

# Register VidCodecParam in _pjsua2:
_pjsua2.VidCodecParam_swigregister(VidCodecParam)

class MediaFmtChangedEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    newWidth = property(_pjsua2.MediaFmtChangedEvent_newWidth_get, _pjsua2.MediaFmtChangedEvent_newWidth_set)
    newHeight = property(_pjsua2.MediaFmtChangedEvent_newHeight_get, _pjsua2.MediaFmtChangedEvent_newHeight_set)

    def __init__(self):
        _pjsua2.MediaFmtChangedEvent_swiginit(self, _pjsua2.new_MediaFmtChangedEvent())
    __swig_destroy__ = _pjsua2.delete_MediaFmtChangedEvent

# Register MediaFmtChangedEvent in _pjsua2:
_pjsua2.MediaFmtChangedEvent_swigregister(MediaFmtChangedEvent)

class AudDevErrorEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    dir = property(_pjsua2.AudDevErrorEvent_dir_get, _pjsua2.AudDevErrorEvent_dir_set)
    id = property(_pjsua2.AudDevErrorEvent_id_get, _pjsua2.AudDevErrorEvent_id_set)
    status = property(_pjsua2.AudDevErrorEvent_status_get, _pjsua2.AudDevErrorEvent_status_set)

    def __init__(self):
        _pjsua2.AudDevErrorEvent_swiginit(self, _pjsua2.new_AudDevErrorEvent())
    __swig_destroy__ = _pjsua2.delete_AudDevErrorEvent

# Register AudDevErrorEvent in _pjsua2:
_pjsua2.AudDevErrorEvent_swigregister(AudDevErrorEvent)

class MediaEventData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    fmtChanged = property(_pjsua2.MediaEventData_fmtChanged_get, _pjsua2.MediaEventData_fmtChanged_set)
    audDevError = property(_pjsua2.MediaEventData_audDevError_get, _pjsua2.MediaEventData_audDevError_set)
    ptr = property(_pjsua2.MediaEventData_ptr_get, _pjsua2.MediaEventData_ptr_set)

    def __init__(self):
        _pjsua2.MediaEventData_swiginit(self, _pjsua2.new_MediaEventData())
    __swig_destroy__ = _pjsua2.delete_MediaEventData

# Register MediaEventData in _pjsua2:
_pjsua2.MediaEventData_swigregister(MediaEventData)

class MediaEvent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_pjsua2.MediaEvent_type_get, _pjsua2.MediaEvent_type_set)
    data = property(_pjsua2.MediaEvent_data_get, _pjsua2.MediaEvent_data_set)
    pjMediaEvent = property(_pjsua2.MediaEvent_pjMediaEvent_get, _pjsua2.MediaEvent_pjMediaEvent_set)

    def __init__(self):
        _pjsua2.MediaEvent_swiginit(self, _pjsua2.new_MediaEvent())
    __swig_destroy__ = _pjsua2.delete_MediaEvent

# Register MediaEvent in _pjsua2:
_pjsua2.MediaEvent_swigregister(MediaEvent)

class PresenceStatus(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    status = property(_pjsua2.PresenceStatus_status_get, _pjsua2.PresenceStatus_status_set)
    statusText = property(_pjsua2.PresenceStatus_statusText_get, _pjsua2.PresenceStatus_statusText_set)
    activity = property(_pjsua2.PresenceStatus_activity_get, _pjsua2.PresenceStatus_activity_set)
    note = property(_pjsua2.PresenceStatus_note_get, _pjsua2.PresenceStatus_note_set)
    rpidId = property(_pjsua2.PresenceStatus_rpidId_get, _pjsua2.PresenceStatus_rpidId_set)

    def __init__(self):
        _pjsua2.PresenceStatus_swiginit(self, _pjsua2.new_PresenceStatus())
    __swig_destroy__ = _pjsua2.delete_PresenceStatus

# Register PresenceStatus in _pjsua2:
_pjsua2.PresenceStatus_swigregister(PresenceStatus)

class BuddyConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    uri = property(_pjsua2.BuddyConfig_uri_get, _pjsua2.BuddyConfig_uri_set)
    subscribe = property(_pjsua2.BuddyConfig_subscribe_get, _pjsua2.BuddyConfig_subscribe_set)

    def readObject(self, node):
        return _pjsua2.BuddyConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.BuddyConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.BuddyConfig_swiginit(self, _pjsua2.new_BuddyConfig())
    __swig_destroy__ = _pjsua2.delete_BuddyConfig

# Register BuddyConfig in _pjsua2:
_pjsua2.BuddyConfig_swigregister(BuddyConfig)

class BuddyInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    uri = property(_pjsua2.BuddyInfo_uri_get, _pjsua2.BuddyInfo_uri_set)
    contact = property(_pjsua2.BuddyInfo_contact_get, _pjsua2.BuddyInfo_contact_set)
    presMonitorEnabled = property(_pjsua2.BuddyInfo_presMonitorEnabled_get, _pjsua2.BuddyInfo_presMonitorEnabled_set)
    subState = property(_pjsua2.BuddyInfo_subState_get, _pjsua2.BuddyInfo_subState_set)
    subStateName = property(_pjsua2.BuddyInfo_subStateName_get, _pjsua2.BuddyInfo_subStateName_set)
    subTermCode = property(_pjsua2.BuddyInfo_subTermCode_get, _pjsua2.BuddyInfo_subTermCode_set)
    subTermReason = property(_pjsua2.BuddyInfo_subTermReason_get, _pjsua2.BuddyInfo_subTermReason_set)
    presStatus = property(_pjsua2.BuddyInfo_presStatus_get, _pjsua2.BuddyInfo_presStatus_set)

    def __init__(self):
        _pjsua2.BuddyInfo_swiginit(self, _pjsua2.new_BuddyInfo())
    __swig_destroy__ = _pjsua2.delete_BuddyInfo

# Register BuddyInfo in _pjsua2:
_pjsua2.BuddyInfo_swigregister(BuddyInfo)

class OnBuddyEvSubStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    e = property(_pjsua2.OnBuddyEvSubStateParam_e_get, _pjsua2.OnBuddyEvSubStateParam_e_set)

    def __init__(self):
        _pjsua2.OnBuddyEvSubStateParam_swiginit(self, _pjsua2.new_OnBuddyEvSubStateParam())
    __swig_destroy__ = _pjsua2.delete_OnBuddyEvSubStateParam

# Register OnBuddyEvSubStateParam in _pjsua2:
_pjsua2.OnBuddyEvSubStateParam_swigregister(OnBuddyEvSubStateParam)

class Buddy(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        if self.__class__ == Buddy:
            _self = None
        else:
            _self = self
        _pjsua2.Buddy_swiginit(self, _pjsua2.new_Buddy(_self, ))
    __swig_destroy__ = _pjsua2.delete_Buddy

    def create(self, acc, cfg):
        return _pjsua2.Buddy_create(self, acc, cfg)

    def isValid(self):
        return _pjsua2.Buddy_isValid(self)

    def getId(self):
        return _pjsua2.Buddy_getId(self)

    def getInfo(self):
        return _pjsua2.Buddy_getInfo(self)

    def subscribePresence(self, subscribe):
        return _pjsua2.Buddy_subscribePresence(self, subscribe)

    def updatePresence(self):
        return _pjsua2.Buddy_updatePresence(self)

    def sendInstantMessage(self, prm):
        return _pjsua2.Buddy_sendInstantMessage(self, prm)

    def sendTypingIndication(self, prm):
        return _pjsua2.Buddy_sendTypingIndication(self, prm)

    def onBuddyState(self):
        return _pjsua2.Buddy_onBuddyState(self)

    def onBuddyEvSubState(self, prm):
        return _pjsua2.Buddy_onBuddyEvSubState(self, prm)
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_Buddy(self)
        return weakref.proxy(self)

# Register Buddy in _pjsua2:
_pjsua2.Buddy_swigregister(Buddy)

class AccountRegConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    registrarUri = property(_pjsua2.AccountRegConfig_registrarUri_get, _pjsua2.AccountRegConfig_registrarUri_set)
    registerOnAdd = property(_pjsua2.AccountRegConfig_registerOnAdd_get, _pjsua2.AccountRegConfig_registerOnAdd_set)
    headers = property(_pjsua2.AccountRegConfig_headers_get, _pjsua2.AccountRegConfig_headers_set)
    contactParams = property(_pjsua2.AccountRegConfig_contactParams_get, _pjsua2.AccountRegConfig_contactParams_set)
    contactUriParams = property(_pjsua2.AccountRegConfig_contactUriParams_get, _pjsua2.AccountRegConfig_contactUriParams_set)
    timeoutSec = property(_pjsua2.AccountRegConfig_timeoutSec_get, _pjsua2.AccountRegConfig_timeoutSec_set)
    retryIntervalSec = property(_pjsua2.AccountRegConfig_retryIntervalSec_get, _pjsua2.AccountRegConfig_retryIntervalSec_set)
    firstRetryIntervalSec = property(_pjsua2.AccountRegConfig_firstRetryIntervalSec_get, _pjsua2.AccountRegConfig_firstRetryIntervalSec_set)
    randomRetryIntervalSec = property(_pjsua2.AccountRegConfig_randomRetryIntervalSec_get, _pjsua2.AccountRegConfig_randomRetryIntervalSec_set)
    delayBeforeRefreshSec = property(_pjsua2.AccountRegConfig_delayBeforeRefreshSec_get, _pjsua2.AccountRegConfig_delayBeforeRefreshSec_set)
    dropCallsOnFail = property(_pjsua2.AccountRegConfig_dropCallsOnFail_get, _pjsua2.AccountRegConfig_dropCallsOnFail_set)
    unregWaitMsec = property(_pjsua2.AccountRegConfig_unregWaitMsec_get, _pjsua2.AccountRegConfig_unregWaitMsec_set)
    proxyUse = property(_pjsua2.AccountRegConfig_proxyUse_get, _pjsua2.AccountRegConfig_proxyUse_set)

    def readObject(self, node):
        return _pjsua2.AccountRegConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountRegConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.AccountRegConfig_swiginit(self, _pjsua2.new_AccountRegConfig())
    __swig_destroy__ = _pjsua2.delete_AccountRegConfig

# Register AccountRegConfig in _pjsua2:
_pjsua2.AccountRegConfig_swigregister(AccountRegConfig)

class AccountSipConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    authCreds = property(_pjsua2.AccountSipConfig_authCreds_get, _pjsua2.AccountSipConfig_authCreds_set)
    proxies = property(_pjsua2.AccountSipConfig_proxies_get, _pjsua2.AccountSipConfig_proxies_set)
    contactForced = property(_pjsua2.AccountSipConfig_contactForced_get, _pjsua2.AccountSipConfig_contactForced_set)
    contactParams = property(_pjsua2.AccountSipConfig_contactParams_get, _pjsua2.AccountSipConfig_contactParams_set)
    contactUriParams = property(_pjsua2.AccountSipConfig_contactUriParams_get, _pjsua2.AccountSipConfig_contactUriParams_set)
    authInitialEmpty = property(_pjsua2.AccountSipConfig_authInitialEmpty_get, _pjsua2.AccountSipConfig_authInitialEmpty_set)
    authInitialAlgorithm = property(_pjsua2.AccountSipConfig_authInitialAlgorithm_get, _pjsua2.AccountSipConfig_authInitialAlgorithm_set)
    transportId = property(_pjsua2.AccountSipConfig_transportId_get, _pjsua2.AccountSipConfig_transportId_set)

    def readObject(self, node):
        return _pjsua2.AccountSipConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountSipConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.AccountSipConfig_swiginit(self, _pjsua2.new_AccountSipConfig())
    __swig_destroy__ = _pjsua2.delete_AccountSipConfig

# Register AccountSipConfig in _pjsua2:
_pjsua2.AccountSipConfig_swigregister(AccountSipConfig)

class AccountCallConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    holdType = property(_pjsua2.AccountCallConfig_holdType_get, _pjsua2.AccountCallConfig_holdType_set)
    prackUse = property(_pjsua2.AccountCallConfig_prackUse_get, _pjsua2.AccountCallConfig_prackUse_set)
    timerUse = property(_pjsua2.AccountCallConfig_timerUse_get, _pjsua2.AccountCallConfig_timerUse_set)
    timerMinSESec = property(_pjsua2.AccountCallConfig_timerMinSESec_get, _pjsua2.AccountCallConfig_timerMinSESec_set)
    timerSessExpiresSec = property(_pjsua2.AccountCallConfig_timerSessExpiresSec_get, _pjsua2.AccountCallConfig_timerSessExpiresSec_set)

    def __init__(self):
        _pjsua2.AccountCallConfig_swiginit(self, _pjsua2.new_AccountCallConfig())

    def readObject(self, node):
        return _pjsua2.AccountCallConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountCallConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_AccountCallConfig

# Register AccountCallConfig in _pjsua2:
_pjsua2.AccountCallConfig_swigregister(AccountCallConfig)

class AccountPresConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    headers = property(_pjsua2.AccountPresConfig_headers_get, _pjsua2.AccountPresConfig_headers_set)
    publishEnabled = property(_pjsua2.AccountPresConfig_publishEnabled_get, _pjsua2.AccountPresConfig_publishEnabled_set)
    publishQueue = property(_pjsua2.AccountPresConfig_publishQueue_get, _pjsua2.AccountPresConfig_publishQueue_set)
    publishShutdownWaitMsec = property(_pjsua2.AccountPresConfig_publishShutdownWaitMsec_get, _pjsua2.AccountPresConfig_publishShutdownWaitMsec_set)
    pidfTupleId = property(_pjsua2.AccountPresConfig_pidfTupleId_get, _pjsua2.AccountPresConfig_pidfTupleId_set)

    def readObject(self, node):
        return _pjsua2.AccountPresConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountPresConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.AccountPresConfig_swiginit(self, _pjsua2.new_AccountPresConfig())
    __swig_destroy__ = _pjsua2.delete_AccountPresConfig

# Register AccountPresConfig in _pjsua2:
_pjsua2.AccountPresConfig_swigregister(AccountPresConfig)

class AccountMwiConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    enabled = property(_pjsua2.AccountMwiConfig_enabled_get, _pjsua2.AccountMwiConfig_enabled_set)
    expirationSec = property(_pjsua2.AccountMwiConfig_expirationSec_get, _pjsua2.AccountMwiConfig_expirationSec_set)

    def readObject(self, node):
        return _pjsua2.AccountMwiConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountMwiConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.AccountMwiConfig_swiginit(self, _pjsua2.new_AccountMwiConfig())
    __swig_destroy__ = _pjsua2.delete_AccountMwiConfig

# Register AccountMwiConfig in _pjsua2:
_pjsua2.AccountMwiConfig_swigregister(AccountMwiConfig)

class AccountNatConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    sipStunUse = property(_pjsua2.AccountNatConfig_sipStunUse_get, _pjsua2.AccountNatConfig_sipStunUse_set)
    mediaStunUse = property(_pjsua2.AccountNatConfig_mediaStunUse_get, _pjsua2.AccountNatConfig_mediaStunUse_set)
    nat64Opt = property(_pjsua2.AccountNatConfig_nat64Opt_get, _pjsua2.AccountNatConfig_nat64Opt_set)
    iceEnabled = property(_pjsua2.AccountNatConfig_iceEnabled_get, _pjsua2.AccountNatConfig_iceEnabled_set)
    iceTrickle = property(_pjsua2.AccountNatConfig_iceTrickle_get, _pjsua2.AccountNatConfig_iceTrickle_set)
    iceMaxHostCands = property(_pjsua2.AccountNatConfig_iceMaxHostCands_get, _pjsua2.AccountNatConfig_iceMaxHostCands_set)
    iceAggressiveNomination = property(_pjsua2.AccountNatConfig_iceAggressiveNomination_get, _pjsua2.AccountNatConfig_iceAggressiveNomination_set)
    iceNominatedCheckDelayMsec = property(_pjsua2.AccountNatConfig_iceNominatedCheckDelayMsec_get, _pjsua2.AccountNatConfig_iceNominatedCheckDelayMsec_set)
    iceWaitNominationTimeoutMsec = property(_pjsua2.AccountNatConfig_iceWaitNominationTimeoutMsec_get, _pjsua2.AccountNatConfig_iceWaitNominationTimeoutMsec_set)
    iceNoRtcp = property(_pjsua2.AccountNatConfig_iceNoRtcp_get, _pjsua2.AccountNatConfig_iceNoRtcp_set)
    iceAlwaysUpdate = property(_pjsua2.AccountNatConfig_iceAlwaysUpdate_get, _pjsua2.AccountNatConfig_iceAlwaysUpdate_set)
    turnEnabled = property(_pjsua2.AccountNatConfig_turnEnabled_get, _pjsua2.AccountNatConfig_turnEnabled_set)
    turnServer = property(_pjsua2.AccountNatConfig_turnServer_get, _pjsua2.AccountNatConfig_turnServer_set)
    turnConnType = property(_pjsua2.AccountNatConfig_turnConnType_get, _pjsua2.AccountNatConfig_turnConnType_set)
    turnUserName = property(_pjsua2.AccountNatConfig_turnUserName_get, _pjsua2.AccountNatConfig_turnUserName_set)
    turnPasswordType = property(_pjsua2.AccountNatConfig_turnPasswordType_get, _pjsua2.AccountNatConfig_turnPasswordType_set)
    turnPassword = property(_pjsua2.AccountNatConfig_turnPassword_get, _pjsua2.AccountNatConfig_turnPassword_set)
    contactRewriteUse = property(_pjsua2.AccountNatConfig_contactRewriteUse_get, _pjsua2.AccountNatConfig_contactRewriteUse_set)
    contactRewriteMethod = property(_pjsua2.AccountNatConfig_contactRewriteMethod_get, _pjsua2.AccountNatConfig_contactRewriteMethod_set)
    contactUseSrcPort = property(_pjsua2.AccountNatConfig_contactUseSrcPort_get, _pjsua2.AccountNatConfig_contactUseSrcPort_set)
    viaRewriteUse = property(_pjsua2.AccountNatConfig_viaRewriteUse_get, _pjsua2.AccountNatConfig_viaRewriteUse_set)
    sdpNatRewriteUse = property(_pjsua2.AccountNatConfig_sdpNatRewriteUse_get, _pjsua2.AccountNatConfig_sdpNatRewriteUse_set)
    sipOutboundUse = property(_pjsua2.AccountNatConfig_sipOutboundUse_get, _pjsua2.AccountNatConfig_sipOutboundUse_set)
    sipOutboundInstanceId = property(_pjsua2.AccountNatConfig_sipOutboundInstanceId_get, _pjsua2.AccountNatConfig_sipOutboundInstanceId_set)
    sipOutboundRegId = property(_pjsua2.AccountNatConfig_sipOutboundRegId_get, _pjsua2.AccountNatConfig_sipOutboundRegId_set)
    udpKaIntervalSec = property(_pjsua2.AccountNatConfig_udpKaIntervalSec_get, _pjsua2.AccountNatConfig_udpKaIntervalSec_set)
    udpKaData = property(_pjsua2.AccountNatConfig_udpKaData_get, _pjsua2.AccountNatConfig_udpKaData_set)

    def __init__(self):
        _pjsua2.AccountNatConfig_swiginit(self, _pjsua2.new_AccountNatConfig())

    def readObject(self, node):
        return _pjsua2.AccountNatConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountNatConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_AccountNatConfig

# Register AccountNatConfig in _pjsua2:
_pjsua2.AccountNatConfig_swigregister(AccountNatConfig)

class SrtpCrypto(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    key = property(_pjsua2.SrtpCrypto_key_get, _pjsua2.SrtpCrypto_key_set)
    name = property(_pjsua2.SrtpCrypto_name_get, _pjsua2.SrtpCrypto_name_set)
    flags = property(_pjsua2.SrtpCrypto_flags_get, _pjsua2.SrtpCrypto_flags_set)

    def __init__(self):
        _pjsua2.SrtpCrypto_swiginit(self, _pjsua2.new_SrtpCrypto())
    __swig_destroy__ = _pjsua2.delete_SrtpCrypto

# Register SrtpCrypto in _pjsua2:
_pjsua2.SrtpCrypto_swigregister(SrtpCrypto)

class SrtpOpt(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cryptos = property(_pjsua2.SrtpOpt_cryptos_get, _pjsua2.SrtpOpt_cryptos_set)
    keyings = property(_pjsua2.SrtpOpt_keyings_get, _pjsua2.SrtpOpt_keyings_set)

    def __init__(self):
        _pjsua2.SrtpOpt_swiginit(self, _pjsua2.new_SrtpOpt())

    def readObject(self, node):
        return _pjsua2.SrtpOpt_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.SrtpOpt_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_SrtpOpt

# Register SrtpOpt in _pjsua2:
_pjsua2.SrtpOpt_swigregister(SrtpOpt)

class RtcpFbCap(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    codecId = property(_pjsua2.RtcpFbCap_codecId_get, _pjsua2.RtcpFbCap_codecId_set)
    type = property(_pjsua2.RtcpFbCap_type_get, _pjsua2.RtcpFbCap_type_set)
    typeName = property(_pjsua2.RtcpFbCap_typeName_get, _pjsua2.RtcpFbCap_typeName_set)
    param = property(_pjsua2.RtcpFbCap_param_get, _pjsua2.RtcpFbCap_param_set)

    def __init__(self):
        _pjsua2.RtcpFbCap_swiginit(self, _pjsua2.new_RtcpFbCap())
    __swig_destroy__ = _pjsua2.delete_RtcpFbCap

# Register RtcpFbCap in _pjsua2:
_pjsua2.RtcpFbCap_swigregister(RtcpFbCap)

class RtcpFbConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    dontUseAvpf = property(_pjsua2.RtcpFbConfig_dontUseAvpf_get, _pjsua2.RtcpFbConfig_dontUseAvpf_set)
    caps = property(_pjsua2.RtcpFbConfig_caps_get, _pjsua2.RtcpFbConfig_caps_set)

    def __init__(self):
        _pjsua2.RtcpFbConfig_swiginit(self, _pjsua2.new_RtcpFbConfig())

    def readObject(self, node):
        return _pjsua2.RtcpFbConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.RtcpFbConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_RtcpFbConfig

# Register RtcpFbConfig in _pjsua2:
_pjsua2.RtcpFbConfig_swigregister(RtcpFbConfig)

class AccountMediaConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    transportConfig = property(_pjsua2.AccountMediaConfig_transportConfig_get, _pjsua2.AccountMediaConfig_transportConfig_set)
    lockCodecEnabled = property(_pjsua2.AccountMediaConfig_lockCodecEnabled_get, _pjsua2.AccountMediaConfig_lockCodecEnabled_set)
    streamKaEnabled = property(_pjsua2.AccountMediaConfig_streamKaEnabled_get, _pjsua2.AccountMediaConfig_streamKaEnabled_set)
    srtpUse = property(_pjsua2.AccountMediaConfig_srtpUse_get, _pjsua2.AccountMediaConfig_srtpUse_set)
    srtpSecureSignaling = property(_pjsua2.AccountMediaConfig_srtpSecureSignaling_get, _pjsua2.AccountMediaConfig_srtpSecureSignaling_set)
    srtpOpt = property(_pjsua2.AccountMediaConfig_srtpOpt_get, _pjsua2.AccountMediaConfig_srtpOpt_set)
    ipv6Use = property(_pjsua2.AccountMediaConfig_ipv6Use_get, _pjsua2.AccountMediaConfig_ipv6Use_set)
    rtcpMuxEnabled = property(_pjsua2.AccountMediaConfig_rtcpMuxEnabled_get, _pjsua2.AccountMediaConfig_rtcpMuxEnabled_set)
    rtcpFbConfig = property(_pjsua2.AccountMediaConfig_rtcpFbConfig_get, _pjsua2.AccountMediaConfig_rtcpFbConfig_set)
    useLoopMedTp = property(_pjsua2.AccountMediaConfig_useLoopMedTp_get, _pjsua2.AccountMediaConfig_useLoopMedTp_set)
    enableLoopback = property(_pjsua2.AccountMediaConfig_enableLoopback_get, _pjsua2.AccountMediaConfig_enableLoopback_set)

    def __init__(self):
        _pjsua2.AccountMediaConfig_swiginit(self, _pjsua2.new_AccountMediaConfig())

    def readObject(self, node):
        return _pjsua2.AccountMediaConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountMediaConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_AccountMediaConfig

# Register AccountMediaConfig in _pjsua2:
_pjsua2.AccountMediaConfig_swigregister(AccountMediaConfig)

class AccountVideoConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    autoShowIncoming = property(_pjsua2.AccountVideoConfig_autoShowIncoming_get, _pjsua2.AccountVideoConfig_autoShowIncoming_set)
    autoTransmitOutgoing = property(_pjsua2.AccountVideoConfig_autoTransmitOutgoing_get, _pjsua2.AccountVideoConfig_autoTransmitOutgoing_set)
    windowFlags = property(_pjsua2.AccountVideoConfig_windowFlags_get, _pjsua2.AccountVideoConfig_windowFlags_set)
    defaultCaptureDevice = property(_pjsua2.AccountVideoConfig_defaultCaptureDevice_get, _pjsua2.AccountVideoConfig_defaultCaptureDevice_set)
    defaultRenderDevice = property(_pjsua2.AccountVideoConfig_defaultRenderDevice_get, _pjsua2.AccountVideoConfig_defaultRenderDevice_set)
    rateControlMethod = property(_pjsua2.AccountVideoConfig_rateControlMethod_get, _pjsua2.AccountVideoConfig_rateControlMethod_set)
    rateControlBandwidth = property(_pjsua2.AccountVideoConfig_rateControlBandwidth_get, _pjsua2.AccountVideoConfig_rateControlBandwidth_set)
    startKeyframeCount = property(_pjsua2.AccountVideoConfig_startKeyframeCount_get, _pjsua2.AccountVideoConfig_startKeyframeCount_set)
    startKeyframeInterval = property(_pjsua2.AccountVideoConfig_startKeyframeInterval_get, _pjsua2.AccountVideoConfig_startKeyframeInterval_set)

    def __init__(self):
        _pjsua2.AccountVideoConfig_swiginit(self, _pjsua2.new_AccountVideoConfig())

    def readObject(self, node):
        return _pjsua2.AccountVideoConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountVideoConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_AccountVideoConfig

# Register AccountVideoConfig in _pjsua2:
_pjsua2.AccountVideoConfig_swigregister(AccountVideoConfig)

class AccountIpChangeConfig(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    shutdownTp = property(_pjsua2.AccountIpChangeConfig_shutdownTp_get, _pjsua2.AccountIpChangeConfig_shutdownTp_set)
    hangupCalls = property(_pjsua2.AccountIpChangeConfig_hangupCalls_get, _pjsua2.AccountIpChangeConfig_hangupCalls_set)
    reinviteFlags = property(_pjsua2.AccountIpChangeConfig_reinviteFlags_get, _pjsua2.AccountIpChangeConfig_reinviteFlags_set)
    __swig_destroy__ = _pjsua2.delete_AccountIpChangeConfig

    def readObject(self, node):
        return _pjsua2.AccountIpChangeConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountIpChangeConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.AccountIpChangeConfig_swiginit(self, _pjsua2.new_AccountIpChangeConfig())

# Register AccountIpChangeConfig in _pjsua2:
_pjsua2.AccountIpChangeConfig_swigregister(AccountIpChangeConfig)

class AccountConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    priority = property(_pjsua2.AccountConfig_priority_get, _pjsua2.AccountConfig_priority_set)
    idUri = property(_pjsua2.AccountConfig_idUri_get, _pjsua2.AccountConfig_idUri_set)
    regConfig = property(_pjsua2.AccountConfig_regConfig_get, _pjsua2.AccountConfig_regConfig_set)
    sipConfig = property(_pjsua2.AccountConfig_sipConfig_get, _pjsua2.AccountConfig_sipConfig_set)
    callConfig = property(_pjsua2.AccountConfig_callConfig_get, _pjsua2.AccountConfig_callConfig_set)
    presConfig = property(_pjsua2.AccountConfig_presConfig_get, _pjsua2.AccountConfig_presConfig_set)
    mwiConfig = property(_pjsua2.AccountConfig_mwiConfig_get, _pjsua2.AccountConfig_mwiConfig_set)
    natConfig = property(_pjsua2.AccountConfig_natConfig_get, _pjsua2.AccountConfig_natConfig_set)
    mediaConfig = property(_pjsua2.AccountConfig_mediaConfig_get, _pjsua2.AccountConfig_mediaConfig_set)
    videoConfig = property(_pjsua2.AccountConfig_videoConfig_get, _pjsua2.AccountConfig_videoConfig_set)
    ipChangeConfig = property(_pjsua2.AccountConfig_ipChangeConfig_get, _pjsua2.AccountConfig_ipChangeConfig_set)

    def __init__(self):
        _pjsua2.AccountConfig_swiginit(self, _pjsua2.new_AccountConfig())

    def readObject(self, node):
        return _pjsua2.AccountConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.AccountConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_AccountConfig

# Register AccountConfig in _pjsua2:
_pjsua2.AccountConfig_swigregister(AccountConfig)

class AccountInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    id = property(_pjsua2.AccountInfo_id_get, _pjsua2.AccountInfo_id_set)
    isDefault = property(_pjsua2.AccountInfo_isDefault_get, _pjsua2.AccountInfo_isDefault_set)
    uri = property(_pjsua2.AccountInfo_uri_get, _pjsua2.AccountInfo_uri_set)
    regIsConfigured = property(_pjsua2.AccountInfo_regIsConfigured_get, _pjsua2.AccountInfo_regIsConfigured_set)
    regIsActive = property(_pjsua2.AccountInfo_regIsActive_get, _pjsua2.AccountInfo_regIsActive_set)
    regExpiresSec = property(_pjsua2.AccountInfo_regExpiresSec_get, _pjsua2.AccountInfo_regExpiresSec_set)
    regStatus = property(_pjsua2.AccountInfo_regStatus_get, _pjsua2.AccountInfo_regStatus_set)
    regStatusText = property(_pjsua2.AccountInfo_regStatusText_get, _pjsua2.AccountInfo_regStatusText_set)
    regLastErr = property(_pjsua2.AccountInfo_regLastErr_get, _pjsua2.AccountInfo_regLastErr_set)
    onlineStatus = property(_pjsua2.AccountInfo_onlineStatus_get, _pjsua2.AccountInfo_onlineStatus_set)
    onlineStatusText = property(_pjsua2.AccountInfo_onlineStatusText_get, _pjsua2.AccountInfo_onlineStatusText_set)

    def __init__(self):
        _pjsua2.AccountInfo_swiginit(self, _pjsua2.new_AccountInfo())
    __swig_destroy__ = _pjsua2.delete_AccountInfo

# Register AccountInfo in _pjsua2:
_pjsua2.AccountInfo_swigregister(AccountInfo)

class OnIncomingCallParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    callId = property(_pjsua2.OnIncomingCallParam_callId_get, _pjsua2.OnIncomingCallParam_callId_set)
    rdata = property(_pjsua2.OnIncomingCallParam_rdata_get, _pjsua2.OnIncomingCallParam_rdata_set)

    def __init__(self):
        _pjsua2.OnIncomingCallParam_swiginit(self, _pjsua2.new_OnIncomingCallParam())
    __swig_destroy__ = _pjsua2.delete_OnIncomingCallParam

# Register OnIncomingCallParam in _pjsua2:
_pjsua2.OnIncomingCallParam_swigregister(OnIncomingCallParam)

class OnRegStartedParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    renew = property(_pjsua2.OnRegStartedParam_renew_get, _pjsua2.OnRegStartedParam_renew_set)

    def __init__(self):
        _pjsua2.OnRegStartedParam_swiginit(self, _pjsua2.new_OnRegStartedParam())
    __swig_destroy__ = _pjsua2.delete_OnRegStartedParam

# Register OnRegStartedParam in _pjsua2:
_pjsua2.OnRegStartedParam_swigregister(OnRegStartedParam)

class OnRegStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    status = property(_pjsua2.OnRegStateParam_status_get, _pjsua2.OnRegStateParam_status_set)
    code = property(_pjsua2.OnRegStateParam_code_get, _pjsua2.OnRegStateParam_code_set)
    reason = property(_pjsua2.OnRegStateParam_reason_get, _pjsua2.OnRegStateParam_reason_set)
    rdata = property(_pjsua2.OnRegStateParam_rdata_get, _pjsua2.OnRegStateParam_rdata_set)
    expiration = property(_pjsua2.OnRegStateParam_expiration_get, _pjsua2.OnRegStateParam_expiration_set)

    def __init__(self):
        _pjsua2.OnRegStateParam_swiginit(self, _pjsua2.new_OnRegStateParam())
    __swig_destroy__ = _pjsua2.delete_OnRegStateParam

# Register OnRegStateParam in _pjsua2:
_pjsua2.OnRegStateParam_swigregister(OnRegStateParam)

class OnIncomingSubscribeParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    srvPres = property(_pjsua2.OnIncomingSubscribeParam_srvPres_get, _pjsua2.OnIncomingSubscribeParam_srvPres_set)
    fromUri = property(_pjsua2.OnIncomingSubscribeParam_fromUri_get, _pjsua2.OnIncomingSubscribeParam_fromUri_set)
    rdata = property(_pjsua2.OnIncomingSubscribeParam_rdata_get, _pjsua2.OnIncomingSubscribeParam_rdata_set)
    code = property(_pjsua2.OnIncomingSubscribeParam_code_get, _pjsua2.OnIncomingSubscribeParam_code_set)
    reason = property(_pjsua2.OnIncomingSubscribeParam_reason_get, _pjsua2.OnIncomingSubscribeParam_reason_set)
    txOption = property(_pjsua2.OnIncomingSubscribeParam_txOption_get, _pjsua2.OnIncomingSubscribeParam_txOption_set)

    def __init__(self):
        _pjsua2.OnIncomingSubscribeParam_swiginit(self, _pjsua2.new_OnIncomingSubscribeParam())
    __swig_destroy__ = _pjsua2.delete_OnIncomingSubscribeParam

# Register OnIncomingSubscribeParam in _pjsua2:
_pjsua2.OnIncomingSubscribeParam_swigregister(OnIncomingSubscribeParam)

class OnInstantMessageParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    fromUri = property(_pjsua2.OnInstantMessageParam_fromUri_get, _pjsua2.OnInstantMessageParam_fromUri_set)
    toUri = property(_pjsua2.OnInstantMessageParam_toUri_get, _pjsua2.OnInstantMessageParam_toUri_set)
    contactUri = property(_pjsua2.OnInstantMessageParam_contactUri_get, _pjsua2.OnInstantMessageParam_contactUri_set)
    contentType = property(_pjsua2.OnInstantMessageParam_contentType_get, _pjsua2.OnInstantMessageParam_contentType_set)
    msgBody = property(_pjsua2.OnInstantMessageParam_msgBody_get, _pjsua2.OnInstantMessageParam_msgBody_set)
    rdata = property(_pjsua2.OnInstantMessageParam_rdata_get, _pjsua2.OnInstantMessageParam_rdata_set)

    def __init__(self):
        _pjsua2.OnInstantMessageParam_swiginit(self, _pjsua2.new_OnInstantMessageParam())
    __swig_destroy__ = _pjsua2.delete_OnInstantMessageParam

# Register OnInstantMessageParam in _pjsua2:
_pjsua2.OnInstantMessageParam_swigregister(OnInstantMessageParam)

class OnInstantMessageStatusParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    userData = property(_pjsua2.OnInstantMessageStatusParam_userData_get, _pjsua2.OnInstantMessageStatusParam_userData_set)
    toUri = property(_pjsua2.OnInstantMessageStatusParam_toUri_get, _pjsua2.OnInstantMessageStatusParam_toUri_set)
    msgBody = property(_pjsua2.OnInstantMessageStatusParam_msgBody_get, _pjsua2.OnInstantMessageStatusParam_msgBody_set)
    code = property(_pjsua2.OnInstantMessageStatusParam_code_get, _pjsua2.OnInstantMessageStatusParam_code_set)
    reason = property(_pjsua2.OnInstantMessageStatusParam_reason_get, _pjsua2.OnInstantMessageStatusParam_reason_set)
    rdata = property(_pjsua2.OnInstantMessageStatusParam_rdata_get, _pjsua2.OnInstantMessageStatusParam_rdata_set)

    def __init__(self):
        _pjsua2.OnInstantMessageStatusParam_swiginit(self, _pjsua2.new_OnInstantMessageStatusParam())
    __swig_destroy__ = _pjsua2.delete_OnInstantMessageStatusParam

# Register OnInstantMessageStatusParam in _pjsua2:
_pjsua2.OnInstantMessageStatusParam_swigregister(OnInstantMessageStatusParam)

class OnTypingIndicationParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    fromUri = property(_pjsua2.OnTypingIndicationParam_fromUri_get, _pjsua2.OnTypingIndicationParam_fromUri_set)
    toUri = property(_pjsua2.OnTypingIndicationParam_toUri_get, _pjsua2.OnTypingIndicationParam_toUri_set)
    contactUri = property(_pjsua2.OnTypingIndicationParam_contactUri_get, _pjsua2.OnTypingIndicationParam_contactUri_set)
    isTyping = property(_pjsua2.OnTypingIndicationParam_isTyping_get, _pjsua2.OnTypingIndicationParam_isTyping_set)
    rdata = property(_pjsua2.OnTypingIndicationParam_rdata_get, _pjsua2.OnTypingIndicationParam_rdata_set)

    def __init__(self):
        _pjsua2.OnTypingIndicationParam_swiginit(self, _pjsua2.new_OnTypingIndicationParam())
    __swig_destroy__ = _pjsua2.delete_OnTypingIndicationParam

# Register OnTypingIndicationParam in _pjsua2:
_pjsua2.OnTypingIndicationParam_swigregister(OnTypingIndicationParam)

class OnMwiInfoParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    state = property(_pjsua2.OnMwiInfoParam_state_get, _pjsua2.OnMwiInfoParam_state_set)
    rdata = property(_pjsua2.OnMwiInfoParam_rdata_get, _pjsua2.OnMwiInfoParam_rdata_set)

    def __init__(self):
        _pjsua2.OnMwiInfoParam_swiginit(self, _pjsua2.new_OnMwiInfoParam())
    __swig_destroy__ = _pjsua2.delete_OnMwiInfoParam

# Register OnMwiInfoParam in _pjsua2:
_pjsua2.OnMwiInfoParam_swigregister(OnMwiInfoParam)

class PresNotifyParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    srvPres = property(_pjsua2.PresNotifyParam_srvPres_get, _pjsua2.PresNotifyParam_srvPres_set)
    state = property(_pjsua2.PresNotifyParam_state_get, _pjsua2.PresNotifyParam_state_set)
    stateStr = property(_pjsua2.PresNotifyParam_stateStr_get, _pjsua2.PresNotifyParam_stateStr_set)
    reason = property(_pjsua2.PresNotifyParam_reason_get, _pjsua2.PresNotifyParam_reason_set)
    withBody = property(_pjsua2.PresNotifyParam_withBody_get, _pjsua2.PresNotifyParam_withBody_set)
    txOption = property(_pjsua2.PresNotifyParam_txOption_get, _pjsua2.PresNotifyParam_txOption_set)

    def __init__(self):
        _pjsua2.PresNotifyParam_swiginit(self, _pjsua2.new_PresNotifyParam())
    __swig_destroy__ = _pjsua2.delete_PresNotifyParam

# Register PresNotifyParam in _pjsua2:
_pjsua2.PresNotifyParam_swigregister(PresNotifyParam)

class FindBuddyMatch(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def match(self, token, buddy):
        return _pjsua2.FindBuddyMatch_match(self, token, buddy)
    __swig_destroy__ = _pjsua2.delete_FindBuddyMatch

    def __init__(self):
        if self.__class__ == FindBuddyMatch:
            _self = None
        else:
            _self = self
        _pjsua2.FindBuddyMatch_swiginit(self, _pjsua2.new_FindBuddyMatch(_self, ))
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_FindBuddyMatch(self)
        return weakref.proxy(self)

# Register FindBuddyMatch in _pjsua2:
_pjsua2.FindBuddyMatch_swigregister(FindBuddyMatch)

class Account(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        if self.__class__ == Account:
            _self = None
        else:
            _self = self
        _pjsua2.Account_swiginit(self, _pjsua2.new_Account(_self, ))
    __swig_destroy__ = _pjsua2.delete_Account

    def create(self, cfg, make_default=False):
        return _pjsua2.Account_create(self, cfg, make_default)

    def shutdown(self):
        return _pjsua2.Account_shutdown(self)

    def modify(self, cfg):
        return _pjsua2.Account_modify(self, cfg)

    def isValid(self):
        return _pjsua2.Account_isValid(self)

    def setDefault(self):
        return _pjsua2.Account_setDefault(self)

    def isDefault(self):
        return _pjsua2.Account_isDefault(self)

    def getId(self):
        return _pjsua2.Account_getId(self)

    @staticmethod
    def lookup(acc_id):
        return _pjsua2.Account_lookup(acc_id)

    def getInfo(self):
        return _pjsua2.Account_getInfo(self)

    def setRegistration(self, renew):
        return _pjsua2.Account_setRegistration(self, renew)

    def setOnlineStatus(self, pres_st):
        return _pjsua2.Account_setOnlineStatus(self, pres_st)

    def setTransport(self, tp_id):
        return _pjsua2.Account_setTransport(self, tp_id)

    def presNotify(self, prm):
        return _pjsua2.Account_presNotify(self, prm)

    def enumBuddies2(self):
        return _pjsua2.Account_enumBuddies2(self)

    def findBuddy2(self, uri):
        return _pjsua2.Account_findBuddy2(self, uri)

    def onIncomingCall(self, prm):
        return _pjsua2.Account_onIncomingCall(self, prm)

    def onRegStarted(self, prm):
        return _pjsua2.Account_onRegStarted(self, prm)

    def onRegState(self, prm):
        return _pjsua2.Account_onRegState(self, prm)

    def onIncomingSubscribe(self, prm):
        return _pjsua2.Account_onIncomingSubscribe(self, prm)

    def onInstantMessage(self, prm):
        return _pjsua2.Account_onInstantMessage(self, prm)

    def onInstantMessageStatus(self, prm):
        return _pjsua2.Account_onInstantMessageStatus(self, prm)

    def onTypingIndication(self, prm):
        return _pjsua2.Account_onTypingIndication(self, prm)

    def onMwiInfo(self, prm):
        return _pjsua2.Account_onMwiInfo(self, prm)
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_Account(self)
        return weakref.proxy(self)

# Register Account in _pjsua2:
_pjsua2.Account_swigregister(Account)

def Account_lookup(acc_id):
    return _pjsua2.Account_lookup(acc_id)

class MathStat(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    n = property(_pjsua2.MathStat_n_get, _pjsua2.MathStat_n_set)
    max = property(_pjsua2.MathStat_max_get, _pjsua2.MathStat_max_set)
    min = property(_pjsua2.MathStat_min_get, _pjsua2.MathStat_min_set)
    last = property(_pjsua2.MathStat_last_get, _pjsua2.MathStat_last_set)
    mean = property(_pjsua2.MathStat_mean_get, _pjsua2.MathStat_mean_set)

    def __init__(self):
        _pjsua2.MathStat_swiginit(self, _pjsua2.new_MathStat())
    __swig_destroy__ = _pjsua2.delete_MathStat

# Register MathStat in _pjsua2:
_pjsua2.MathStat_swigregister(MathStat)

class LossType(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    burst = property(_pjsua2.LossType_burst_get, _pjsua2.LossType_burst_set)
    random = property(_pjsua2.LossType_random_get, _pjsua2.LossType_random_set)

    def __init__(self):
        _pjsua2.LossType_swiginit(self, _pjsua2.new_LossType())
    __swig_destroy__ = _pjsua2.delete_LossType

# Register LossType in _pjsua2:
_pjsua2.LossType_swigregister(LossType)

class RtcpStreamStat(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    update = property(_pjsua2.RtcpStreamStat_update_get, _pjsua2.RtcpStreamStat_update_set)
    updateCount = property(_pjsua2.RtcpStreamStat_updateCount_get, _pjsua2.RtcpStreamStat_updateCount_set)
    pkt = property(_pjsua2.RtcpStreamStat_pkt_get, _pjsua2.RtcpStreamStat_pkt_set)
    bytes = property(_pjsua2.RtcpStreamStat_bytes_get, _pjsua2.RtcpStreamStat_bytes_set)
    discard = property(_pjsua2.RtcpStreamStat_discard_get, _pjsua2.RtcpStreamStat_discard_set)
    loss = property(_pjsua2.RtcpStreamStat_loss_get, _pjsua2.RtcpStreamStat_loss_set)
    reorder = property(_pjsua2.RtcpStreamStat_reorder_get, _pjsua2.RtcpStreamStat_reorder_set)
    dup = property(_pjsua2.RtcpStreamStat_dup_get, _pjsua2.RtcpStreamStat_dup_set)
    lossPeriodUsec = property(_pjsua2.RtcpStreamStat_lossPeriodUsec_get, _pjsua2.RtcpStreamStat_lossPeriodUsec_set)
    lossType = property(_pjsua2.RtcpStreamStat_lossType_get, _pjsua2.RtcpStreamStat_lossType_set)
    jitterUsec = property(_pjsua2.RtcpStreamStat_jitterUsec_get, _pjsua2.RtcpStreamStat_jitterUsec_set)

    def __init__(self):
        _pjsua2.RtcpStreamStat_swiginit(self, _pjsua2.new_RtcpStreamStat())
    __swig_destroy__ = _pjsua2.delete_RtcpStreamStat

# Register RtcpStreamStat in _pjsua2:
_pjsua2.RtcpStreamStat_swigregister(RtcpStreamStat)

class RtcpSdes(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cname = property(_pjsua2.RtcpSdes_cname_get, _pjsua2.RtcpSdes_cname_set)
    name = property(_pjsua2.RtcpSdes_name_get, _pjsua2.RtcpSdes_name_set)
    email = property(_pjsua2.RtcpSdes_email_get, _pjsua2.RtcpSdes_email_set)
    phone = property(_pjsua2.RtcpSdes_phone_get, _pjsua2.RtcpSdes_phone_set)
    loc = property(_pjsua2.RtcpSdes_loc_get, _pjsua2.RtcpSdes_loc_set)
    tool = property(_pjsua2.RtcpSdes_tool_get, _pjsua2.RtcpSdes_tool_set)
    note = property(_pjsua2.RtcpSdes_note_get, _pjsua2.RtcpSdes_note_set)

    def __init__(self):
        _pjsua2.RtcpSdes_swiginit(self, _pjsua2.new_RtcpSdes())
    __swig_destroy__ = _pjsua2.delete_RtcpSdes

# Register RtcpSdes in _pjsua2:
_pjsua2.RtcpSdes_swigregister(RtcpSdes)

class RtcpStat(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    start = property(_pjsua2.RtcpStat_start_get, _pjsua2.RtcpStat_start_set)
    txStat = property(_pjsua2.RtcpStat_txStat_get, _pjsua2.RtcpStat_txStat_set)
    rxStat = property(_pjsua2.RtcpStat_rxStat_get, _pjsua2.RtcpStat_rxStat_set)
    rttUsec = property(_pjsua2.RtcpStat_rttUsec_get, _pjsua2.RtcpStat_rttUsec_set)
    rtpTxLastTs = property(_pjsua2.RtcpStat_rtpTxLastTs_get, _pjsua2.RtcpStat_rtpTxLastTs_set)
    rtpTxLastSeq = property(_pjsua2.RtcpStat_rtpTxLastSeq_get, _pjsua2.RtcpStat_rtpTxLastSeq_set)
    rxIpdvUsec = property(_pjsua2.RtcpStat_rxIpdvUsec_get, _pjsua2.RtcpStat_rxIpdvUsec_set)
    rxRawJitterUsec = property(_pjsua2.RtcpStat_rxRawJitterUsec_get, _pjsua2.RtcpStat_rxRawJitterUsec_set)
    peerSdes = property(_pjsua2.RtcpStat_peerSdes_get, _pjsua2.RtcpStat_peerSdes_set)

    def __init__(self):
        _pjsua2.RtcpStat_swiginit(self, _pjsua2.new_RtcpStat())
    __swig_destroy__ = _pjsua2.delete_RtcpStat

# Register RtcpStat in _pjsua2:
_pjsua2.RtcpStat_swigregister(RtcpStat)

class JbufState(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    frameSize = property(_pjsua2.JbufState_frameSize_get, _pjsua2.JbufState_frameSize_set)
    minPrefetch = property(_pjsua2.JbufState_minPrefetch_get, _pjsua2.JbufState_minPrefetch_set)
    maxPrefetch = property(_pjsua2.JbufState_maxPrefetch_get, _pjsua2.JbufState_maxPrefetch_set)
    burst = property(_pjsua2.JbufState_burst_get, _pjsua2.JbufState_burst_set)
    prefetch = property(_pjsua2.JbufState_prefetch_get, _pjsua2.JbufState_prefetch_set)
    size = property(_pjsua2.JbufState_size_get, _pjsua2.JbufState_size_set)
    avgDelayMsec = property(_pjsua2.JbufState_avgDelayMsec_get, _pjsua2.JbufState_avgDelayMsec_set)
    minDelayMsec = property(_pjsua2.JbufState_minDelayMsec_get, _pjsua2.JbufState_minDelayMsec_set)
    maxDelayMsec = property(_pjsua2.JbufState_maxDelayMsec_get, _pjsua2.JbufState_maxDelayMsec_set)
    devDelayMsec = property(_pjsua2.JbufState_devDelayMsec_get, _pjsua2.JbufState_devDelayMsec_set)
    avgBurst = property(_pjsua2.JbufState_avgBurst_get, _pjsua2.JbufState_avgBurst_set)
    lost = property(_pjsua2.JbufState_lost_get, _pjsua2.JbufState_lost_set)
    discard = property(_pjsua2.JbufState_discard_get, _pjsua2.JbufState_discard_set)
    empty = property(_pjsua2.JbufState_empty_get, _pjsua2.JbufState_empty_set)

    def __init__(self):
        _pjsua2.JbufState_swiginit(self, _pjsua2.new_JbufState())
    __swig_destroy__ = _pjsua2.delete_JbufState

# Register JbufState in _pjsua2:
_pjsua2.JbufState_swigregister(JbufState)

class SdpSession(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    wholeSdp = property(_pjsua2.SdpSession_wholeSdp_get, _pjsua2.SdpSession_wholeSdp_set)
    pjSdpSession = property(_pjsua2.SdpSession_pjSdpSession_get, _pjsua2.SdpSession_pjSdpSession_set)

    def __init__(self):
        _pjsua2.SdpSession_swiginit(self, _pjsua2.new_SdpSession())
    __swig_destroy__ = _pjsua2.delete_SdpSession

# Register SdpSession in _pjsua2:
_pjsua2.SdpSession_swigregister(SdpSession)

class MediaTransportInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    localRtpName = property(_pjsua2.MediaTransportInfo_localRtpName_get, _pjsua2.MediaTransportInfo_localRtpName_set)
    localRtcpName = property(_pjsua2.MediaTransportInfo_localRtcpName_get, _pjsua2.MediaTransportInfo_localRtcpName_set)
    srcRtpName = property(_pjsua2.MediaTransportInfo_srcRtpName_get, _pjsua2.MediaTransportInfo_srcRtpName_set)
    srcRtcpName = property(_pjsua2.MediaTransportInfo_srcRtcpName_get, _pjsua2.MediaTransportInfo_srcRtcpName_set)

    def __init__(self):
        _pjsua2.MediaTransportInfo_swiginit(self, _pjsua2.new_MediaTransportInfo())
    __swig_destroy__ = _pjsua2.delete_MediaTransportInfo

# Register MediaTransportInfo in _pjsua2:
_pjsua2.MediaTransportInfo_swigregister(MediaTransportInfo)

class CallSetting(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    flag = property(_pjsua2.CallSetting_flag_get, _pjsua2.CallSetting_flag_set)
    reqKeyframeMethod = property(_pjsua2.CallSetting_reqKeyframeMethod_get, _pjsua2.CallSetting_reqKeyframeMethod_set)
    audioCount = property(_pjsua2.CallSetting_audioCount_get, _pjsua2.CallSetting_audioCount_set)
    videoCount = property(_pjsua2.CallSetting_videoCount_get, _pjsua2.CallSetting_videoCount_set)
    mediaDir = property(_pjsua2.CallSetting_mediaDir_get, _pjsua2.CallSetting_mediaDir_set)

    def __init__(self, useDefaultValues=False):
        _pjsua2.CallSetting_swiginit(self, _pjsua2.new_CallSetting(useDefaultValues))

    def isEmpty(self):
        return _pjsua2.CallSetting_isEmpty(self)
    __swig_destroy__ = _pjsua2.delete_CallSetting

# Register CallSetting in _pjsua2:
_pjsua2.CallSetting_swigregister(CallSetting)

class CallMediaInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    index = property(_pjsua2.CallMediaInfo_index_get, _pjsua2.CallMediaInfo_index_set)
    type = property(_pjsua2.CallMediaInfo_type_get, _pjsua2.CallMediaInfo_type_set)
    dir = property(_pjsua2.CallMediaInfo_dir_get, _pjsua2.CallMediaInfo_dir_set)
    status = property(_pjsua2.CallMediaInfo_status_get, _pjsua2.CallMediaInfo_status_set)
    audioConfSlot = property(_pjsua2.CallMediaInfo_audioConfSlot_get, _pjsua2.CallMediaInfo_audioConfSlot_set)
    videoIncomingWindowId = property(_pjsua2.CallMediaInfo_videoIncomingWindowId_get, _pjsua2.CallMediaInfo_videoIncomingWindowId_set)
    videoWindow = property(_pjsua2.CallMediaInfo_videoWindow_get, _pjsua2.CallMediaInfo_videoWindow_set)
    videoCapDev = property(_pjsua2.CallMediaInfo_videoCapDev_get, _pjsua2.CallMediaInfo_videoCapDev_set)

    def __init__(self):
        _pjsua2.CallMediaInfo_swiginit(self, _pjsua2.new_CallMediaInfo())
    __swig_destroy__ = _pjsua2.delete_CallMediaInfo

# Register CallMediaInfo in _pjsua2:
_pjsua2.CallMediaInfo_swigregister(CallMediaInfo)

class CallInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    id = property(_pjsua2.CallInfo_id_get, _pjsua2.CallInfo_id_set)
    role = property(_pjsua2.CallInfo_role_get, _pjsua2.CallInfo_role_set)
    accId = property(_pjsua2.CallInfo_accId_get, _pjsua2.CallInfo_accId_set)
    localUri = property(_pjsua2.CallInfo_localUri_get, _pjsua2.CallInfo_localUri_set)
    localContact = property(_pjsua2.CallInfo_localContact_get, _pjsua2.CallInfo_localContact_set)
    remoteUri = property(_pjsua2.CallInfo_remoteUri_get, _pjsua2.CallInfo_remoteUri_set)
    remoteContact = property(_pjsua2.CallInfo_remoteContact_get, _pjsua2.CallInfo_remoteContact_set)
    callIdString = property(_pjsua2.CallInfo_callIdString_get, _pjsua2.CallInfo_callIdString_set)
    setting = property(_pjsua2.CallInfo_setting_get, _pjsua2.CallInfo_setting_set)
    state = property(_pjsua2.CallInfo_state_get, _pjsua2.CallInfo_state_set)
    stateText = property(_pjsua2.CallInfo_stateText_get, _pjsua2.CallInfo_stateText_set)
    lastStatusCode = property(_pjsua2.CallInfo_lastStatusCode_get, _pjsua2.CallInfo_lastStatusCode_set)
    lastReason = property(_pjsua2.CallInfo_lastReason_get, _pjsua2.CallInfo_lastReason_set)
    media = property(_pjsua2.CallInfo_media_get, _pjsua2.CallInfo_media_set)
    provMedia = property(_pjsua2.CallInfo_provMedia_get, _pjsua2.CallInfo_provMedia_set)
    connectDuration = property(_pjsua2.CallInfo_connectDuration_get, _pjsua2.CallInfo_connectDuration_set)
    totalDuration = property(_pjsua2.CallInfo_totalDuration_get, _pjsua2.CallInfo_totalDuration_set)
    remOfferer = property(_pjsua2.CallInfo_remOfferer_get, _pjsua2.CallInfo_remOfferer_set)
    remAudioCount = property(_pjsua2.CallInfo_remAudioCount_get, _pjsua2.CallInfo_remAudioCount_set)
    remVideoCount = property(_pjsua2.CallInfo_remVideoCount_get, _pjsua2.CallInfo_remVideoCount_set)

    def __init__(self):
        _pjsua2.CallInfo_swiginit(self, _pjsua2.new_CallInfo())
    __swig_destroy__ = _pjsua2.delete_CallInfo

# Register CallInfo in _pjsua2:
_pjsua2.CallInfo_swigregister(CallInfo)

class StreamInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_pjsua2.StreamInfo_type_get, _pjsua2.StreamInfo_type_set)
    proto = property(_pjsua2.StreamInfo_proto_get, _pjsua2.StreamInfo_proto_set)
    dir = property(_pjsua2.StreamInfo_dir_get, _pjsua2.StreamInfo_dir_set)
    remoteRtpAddress = property(_pjsua2.StreamInfo_remoteRtpAddress_get, _pjsua2.StreamInfo_remoteRtpAddress_set)
    remoteRtcpAddress = property(_pjsua2.StreamInfo_remoteRtcpAddress_get, _pjsua2.StreamInfo_remoteRtcpAddress_set)
    txPt = property(_pjsua2.StreamInfo_txPt_get, _pjsua2.StreamInfo_txPt_set)
    rxPt = property(_pjsua2.StreamInfo_rxPt_get, _pjsua2.StreamInfo_rxPt_set)
    codecName = property(_pjsua2.StreamInfo_codecName_get, _pjsua2.StreamInfo_codecName_set)
    codecClockRate = property(_pjsua2.StreamInfo_codecClockRate_get, _pjsua2.StreamInfo_codecClockRate_set)
    audCodecParam = property(_pjsua2.StreamInfo_audCodecParam_get, _pjsua2.StreamInfo_audCodecParam_set)
    vidCodecParam = property(_pjsua2.StreamInfo_vidCodecParam_get, _pjsua2.StreamInfo_vidCodecParam_set)
    jbInit = property(_pjsua2.StreamInfo_jbInit_get, _pjsua2.StreamInfo_jbInit_set)
    jbMinPre = property(_pjsua2.StreamInfo_jbMinPre_get, _pjsua2.StreamInfo_jbMinPre_set)
    jbMaxPre = property(_pjsua2.StreamInfo_jbMaxPre_get, _pjsua2.StreamInfo_jbMaxPre_set)
    jbMax = property(_pjsua2.StreamInfo_jbMax_get, _pjsua2.StreamInfo_jbMax_set)
    jbDiscardAlgo = property(_pjsua2.StreamInfo_jbDiscardAlgo_get, _pjsua2.StreamInfo_jbDiscardAlgo_set)
    rtcpSdesByeDisabled = property(_pjsua2.StreamInfo_rtcpSdesByeDisabled_get, _pjsua2.StreamInfo_rtcpSdesByeDisabled_set)

    def __init__(self):
        _pjsua2.StreamInfo_swiginit(self, _pjsua2.new_StreamInfo())
    __swig_destroy__ = _pjsua2.delete_StreamInfo

# Register StreamInfo in _pjsua2:
_pjsua2.StreamInfo_swigregister(StreamInfo)

class StreamStat(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    rtcp = property(_pjsua2.StreamStat_rtcp_get, _pjsua2.StreamStat_rtcp_set)
    jbuf = property(_pjsua2.StreamStat_jbuf_get, _pjsua2.StreamStat_jbuf_set)

    def __init__(self):
        _pjsua2.StreamStat_swiginit(self, _pjsua2.new_StreamStat())
    __swig_destroy__ = _pjsua2.delete_StreamStat

# Register StreamStat in _pjsua2:
_pjsua2.StreamStat_swigregister(StreamStat)

class OnCallStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    e = property(_pjsua2.OnCallStateParam_e_get, _pjsua2.OnCallStateParam_e_set)

    def __init__(self):
        _pjsua2.OnCallStateParam_swiginit(self, _pjsua2.new_OnCallStateParam())
    __swig_destroy__ = _pjsua2.delete_OnCallStateParam

# Register OnCallStateParam in _pjsua2:
_pjsua2.OnCallStateParam_swigregister(OnCallStateParam)

class OnCallTsxStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    e = property(_pjsua2.OnCallTsxStateParam_e_get, _pjsua2.OnCallTsxStateParam_e_set)

    def __init__(self):
        _pjsua2.OnCallTsxStateParam_swiginit(self, _pjsua2.new_OnCallTsxStateParam())
    __swig_destroy__ = _pjsua2.delete_OnCallTsxStateParam

# Register OnCallTsxStateParam in _pjsua2:
_pjsua2.OnCallTsxStateParam_swigregister(OnCallTsxStateParam)

class OnCallMediaStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.OnCallMediaStateParam_swiginit(self, _pjsua2.new_OnCallMediaStateParam())
    __swig_destroy__ = _pjsua2.delete_OnCallMediaStateParam

# Register OnCallMediaStateParam in _pjsua2:
_pjsua2.OnCallMediaStateParam_swigregister(OnCallMediaStateParam)

class OnCallSdpCreatedParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    sdp = property(_pjsua2.OnCallSdpCreatedParam_sdp_get, _pjsua2.OnCallSdpCreatedParam_sdp_set)
    remSdp = property(_pjsua2.OnCallSdpCreatedParam_remSdp_get, _pjsua2.OnCallSdpCreatedParam_remSdp_set)

    def __init__(self):
        _pjsua2.OnCallSdpCreatedParam_swiginit(self, _pjsua2.new_OnCallSdpCreatedParam())
    __swig_destroy__ = _pjsua2.delete_OnCallSdpCreatedParam

# Register OnCallSdpCreatedParam in _pjsua2:
_pjsua2.OnCallSdpCreatedParam_swigregister(OnCallSdpCreatedParam)

class OnStreamPreCreateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    streamIdx = property(_pjsua2.OnStreamPreCreateParam_streamIdx_get, _pjsua2.OnStreamPreCreateParam_streamIdx_set)
    streamInfo = property(_pjsua2.OnStreamPreCreateParam_streamInfo_get, _pjsua2.OnStreamPreCreateParam_streamInfo_set)

    def __init__(self):
        _pjsua2.OnStreamPreCreateParam_swiginit(self, _pjsua2.new_OnStreamPreCreateParam())
    __swig_destroy__ = _pjsua2.delete_OnStreamPreCreateParam

# Register OnStreamPreCreateParam in _pjsua2:
_pjsua2.OnStreamPreCreateParam_swigregister(OnStreamPreCreateParam)

class OnStreamCreatedParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    stream = property(_pjsua2.OnStreamCreatedParam_stream_get, _pjsua2.OnStreamCreatedParam_stream_set)
    streamIdx = property(_pjsua2.OnStreamCreatedParam_streamIdx_get, _pjsua2.OnStreamCreatedParam_streamIdx_set)
    destroyPort = property(_pjsua2.OnStreamCreatedParam_destroyPort_get, _pjsua2.OnStreamCreatedParam_destroyPort_set)
    pPort = property(_pjsua2.OnStreamCreatedParam_pPort_get, _pjsua2.OnStreamCreatedParam_pPort_set)

    def __init__(self):
        _pjsua2.OnStreamCreatedParam_swiginit(self, _pjsua2.new_OnStreamCreatedParam())
    __swig_destroy__ = _pjsua2.delete_OnStreamCreatedParam

# Register OnStreamCreatedParam in _pjsua2:
_pjsua2.OnStreamCreatedParam_swigregister(OnStreamCreatedParam)

class OnStreamDestroyedParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    stream = property(_pjsua2.OnStreamDestroyedParam_stream_get, _pjsua2.OnStreamDestroyedParam_stream_set)
    streamIdx = property(_pjsua2.OnStreamDestroyedParam_streamIdx_get, _pjsua2.OnStreamDestroyedParam_streamIdx_set)

    def __init__(self):
        _pjsua2.OnStreamDestroyedParam_swiginit(self, _pjsua2.new_OnStreamDestroyedParam())
    __swig_destroy__ = _pjsua2.delete_OnStreamDestroyedParam

# Register OnStreamDestroyedParam in _pjsua2:
_pjsua2.OnStreamDestroyedParam_swigregister(OnStreamDestroyedParam)

class OnDtmfDigitParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    method = property(_pjsua2.OnDtmfDigitParam_method_get, _pjsua2.OnDtmfDigitParam_method_set)
    digit = property(_pjsua2.OnDtmfDigitParam_digit_get, _pjsua2.OnDtmfDigitParam_digit_set)
    duration = property(_pjsua2.OnDtmfDigitParam_duration_get, _pjsua2.OnDtmfDigitParam_duration_set)

    def __init__(self):
        _pjsua2.OnDtmfDigitParam_swiginit(self, _pjsua2.new_OnDtmfDigitParam())
    __swig_destroy__ = _pjsua2.delete_OnDtmfDigitParam

# Register OnDtmfDigitParam in _pjsua2:
_pjsua2.OnDtmfDigitParam_swigregister(OnDtmfDigitParam)

class OnDtmfEventParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    method = property(_pjsua2.OnDtmfEventParam_method_get, _pjsua2.OnDtmfEventParam_method_set)
    timestamp = property(_pjsua2.OnDtmfEventParam_timestamp_get, _pjsua2.OnDtmfEventParam_timestamp_set)
    digit = property(_pjsua2.OnDtmfEventParam_digit_get, _pjsua2.OnDtmfEventParam_digit_set)
    duration = property(_pjsua2.OnDtmfEventParam_duration_get, _pjsua2.OnDtmfEventParam_duration_set)
    flags = property(_pjsua2.OnDtmfEventParam_flags_get, _pjsua2.OnDtmfEventParam_flags_set)

    def __init__(self):
        _pjsua2.OnDtmfEventParam_swiginit(self, _pjsua2.new_OnDtmfEventParam())
    __swig_destroy__ = _pjsua2.delete_OnDtmfEventParam

# Register OnDtmfEventParam in _pjsua2:
_pjsua2.OnDtmfEventParam_swigregister(OnDtmfEventParam)

class OnCallTransferRequestParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    dstUri = property(_pjsua2.OnCallTransferRequestParam_dstUri_get, _pjsua2.OnCallTransferRequestParam_dstUri_set)
    statusCode = property(_pjsua2.OnCallTransferRequestParam_statusCode_get, _pjsua2.OnCallTransferRequestParam_statusCode_set)
    opt = property(_pjsua2.OnCallTransferRequestParam_opt_get, _pjsua2.OnCallTransferRequestParam_opt_set)
    newCall = property(_pjsua2.OnCallTransferRequestParam_newCall_get, _pjsua2.OnCallTransferRequestParam_newCall_set)

    def __init__(self):
        _pjsua2.OnCallTransferRequestParam_swiginit(self, _pjsua2.new_OnCallTransferRequestParam())
    __swig_destroy__ = _pjsua2.delete_OnCallTransferRequestParam

# Register OnCallTransferRequestParam in _pjsua2:
_pjsua2.OnCallTransferRequestParam_swigregister(OnCallTransferRequestParam)

class OnCallTransferStatusParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    statusCode = property(_pjsua2.OnCallTransferStatusParam_statusCode_get, _pjsua2.OnCallTransferStatusParam_statusCode_set)
    reason = property(_pjsua2.OnCallTransferStatusParam_reason_get, _pjsua2.OnCallTransferStatusParam_reason_set)
    finalNotify = property(_pjsua2.OnCallTransferStatusParam_finalNotify_get, _pjsua2.OnCallTransferStatusParam_finalNotify_set)
    cont = property(_pjsua2.OnCallTransferStatusParam_cont_get, _pjsua2.OnCallTransferStatusParam_cont_set)

    def __init__(self):
        _pjsua2.OnCallTransferStatusParam_swiginit(self, _pjsua2.new_OnCallTransferStatusParam())
    __swig_destroy__ = _pjsua2.delete_OnCallTransferStatusParam

# Register OnCallTransferStatusParam in _pjsua2:
_pjsua2.OnCallTransferStatusParam_swigregister(OnCallTransferStatusParam)

class OnCallReplaceRequestParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    rdata = property(_pjsua2.OnCallReplaceRequestParam_rdata_get, _pjsua2.OnCallReplaceRequestParam_rdata_set)
    statusCode = property(_pjsua2.OnCallReplaceRequestParam_statusCode_get, _pjsua2.OnCallReplaceRequestParam_statusCode_set)
    reason = property(_pjsua2.OnCallReplaceRequestParam_reason_get, _pjsua2.OnCallReplaceRequestParam_reason_set)
    opt = property(_pjsua2.OnCallReplaceRequestParam_opt_get, _pjsua2.OnCallReplaceRequestParam_opt_set)

    def __init__(self):
        _pjsua2.OnCallReplaceRequestParam_swiginit(self, _pjsua2.new_OnCallReplaceRequestParam())
    __swig_destroy__ = _pjsua2.delete_OnCallReplaceRequestParam

# Register OnCallReplaceRequestParam in _pjsua2:
_pjsua2.OnCallReplaceRequestParam_swigregister(OnCallReplaceRequestParam)

class OnCallReplacedParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    newCallId = property(_pjsua2.OnCallReplacedParam_newCallId_get, _pjsua2.OnCallReplacedParam_newCallId_set)
    newCall = property(_pjsua2.OnCallReplacedParam_newCall_get, _pjsua2.OnCallReplacedParam_newCall_set)

    def __init__(self):
        _pjsua2.OnCallReplacedParam_swiginit(self, _pjsua2.new_OnCallReplacedParam())
    __swig_destroy__ = _pjsua2.delete_OnCallReplacedParam

# Register OnCallReplacedParam in _pjsua2:
_pjsua2.OnCallReplacedParam_swigregister(OnCallReplacedParam)

class OnCallRxOfferParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    offer = property(_pjsua2.OnCallRxOfferParam_offer_get, _pjsua2.OnCallRxOfferParam_offer_set)
    statusCode = property(_pjsua2.OnCallRxOfferParam_statusCode_get, _pjsua2.OnCallRxOfferParam_statusCode_set)
    opt = property(_pjsua2.OnCallRxOfferParam_opt_get, _pjsua2.OnCallRxOfferParam_opt_set)

    def __init__(self):
        _pjsua2.OnCallRxOfferParam_swiginit(self, _pjsua2.new_OnCallRxOfferParam())
    __swig_destroy__ = _pjsua2.delete_OnCallRxOfferParam

# Register OnCallRxOfferParam in _pjsua2:
_pjsua2.OnCallRxOfferParam_swigregister(OnCallRxOfferParam)

class OnCallRxReinviteParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    offer = property(_pjsua2.OnCallRxReinviteParam_offer_get, _pjsua2.OnCallRxReinviteParam_offer_set)
    rdata = property(_pjsua2.OnCallRxReinviteParam_rdata_get, _pjsua2.OnCallRxReinviteParam_rdata_set)
    isAsync = property(_pjsua2.OnCallRxReinviteParam_isAsync_get, _pjsua2.OnCallRxReinviteParam_isAsync_set)
    statusCode = property(_pjsua2.OnCallRxReinviteParam_statusCode_get, _pjsua2.OnCallRxReinviteParam_statusCode_set)
    opt = property(_pjsua2.OnCallRxReinviteParam_opt_get, _pjsua2.OnCallRxReinviteParam_opt_set)

    def __init__(self):
        _pjsua2.OnCallRxReinviteParam_swiginit(self, _pjsua2.new_OnCallRxReinviteParam())
    __swig_destroy__ = _pjsua2.delete_OnCallRxReinviteParam

# Register OnCallRxReinviteParam in _pjsua2:
_pjsua2.OnCallRxReinviteParam_swigregister(OnCallRxReinviteParam)

class OnCallTxOfferParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    opt = property(_pjsua2.OnCallTxOfferParam_opt_get, _pjsua2.OnCallTxOfferParam_opt_set)

    def __init__(self):
        _pjsua2.OnCallTxOfferParam_swiginit(self, _pjsua2.new_OnCallTxOfferParam())
    __swig_destroy__ = _pjsua2.delete_OnCallTxOfferParam

# Register OnCallTxOfferParam in _pjsua2:
_pjsua2.OnCallTxOfferParam_swigregister(OnCallTxOfferParam)

class OnCallRedirectedParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    targetUri = property(_pjsua2.OnCallRedirectedParam_targetUri_get, _pjsua2.OnCallRedirectedParam_targetUri_set)
    e = property(_pjsua2.OnCallRedirectedParam_e_get, _pjsua2.OnCallRedirectedParam_e_set)

    def __init__(self):
        _pjsua2.OnCallRedirectedParam_swiginit(self, _pjsua2.new_OnCallRedirectedParam())
    __swig_destroy__ = _pjsua2.delete_OnCallRedirectedParam

# Register OnCallRedirectedParam in _pjsua2:
_pjsua2.OnCallRedirectedParam_swigregister(OnCallRedirectedParam)

class OnCallMediaEventParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    medIdx = property(_pjsua2.OnCallMediaEventParam_medIdx_get, _pjsua2.OnCallMediaEventParam_medIdx_set)
    ev = property(_pjsua2.OnCallMediaEventParam_ev_get, _pjsua2.OnCallMediaEventParam_ev_set)

    def __init__(self):
        _pjsua2.OnCallMediaEventParam_swiginit(self, _pjsua2.new_OnCallMediaEventParam())
    __swig_destroy__ = _pjsua2.delete_OnCallMediaEventParam

# Register OnCallMediaEventParam in _pjsua2:
_pjsua2.OnCallMediaEventParam_swigregister(OnCallMediaEventParam)

class OnCallMediaTransportStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    medIdx = property(_pjsua2.OnCallMediaTransportStateParam_medIdx_get, _pjsua2.OnCallMediaTransportStateParam_medIdx_set)
    state = property(_pjsua2.OnCallMediaTransportStateParam_state_get, _pjsua2.OnCallMediaTransportStateParam_state_set)
    status = property(_pjsua2.OnCallMediaTransportStateParam_status_get, _pjsua2.OnCallMediaTransportStateParam_status_set)
    sipErrorCode = property(_pjsua2.OnCallMediaTransportStateParam_sipErrorCode_get, _pjsua2.OnCallMediaTransportStateParam_sipErrorCode_set)

    def __init__(self):
        _pjsua2.OnCallMediaTransportStateParam_swiginit(self, _pjsua2.new_OnCallMediaTransportStateParam())
    __swig_destroy__ = _pjsua2.delete_OnCallMediaTransportStateParam

# Register OnCallMediaTransportStateParam in _pjsua2:
_pjsua2.OnCallMediaTransportStateParam_swigregister(OnCallMediaTransportStateParam)

class OnCreateMediaTransportParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    mediaIdx = property(_pjsua2.OnCreateMediaTransportParam_mediaIdx_get, _pjsua2.OnCreateMediaTransportParam_mediaIdx_set)
    mediaTp = property(_pjsua2.OnCreateMediaTransportParam_mediaTp_get, _pjsua2.OnCreateMediaTransportParam_mediaTp_set)
    flags = property(_pjsua2.OnCreateMediaTransportParam_flags_get, _pjsua2.OnCreateMediaTransportParam_flags_set)

    def __init__(self):
        _pjsua2.OnCreateMediaTransportParam_swiginit(self, _pjsua2.new_OnCreateMediaTransportParam())
    __swig_destroy__ = _pjsua2.delete_OnCreateMediaTransportParam

# Register OnCreateMediaTransportParam in _pjsua2:
_pjsua2.OnCreateMediaTransportParam_swigregister(OnCreateMediaTransportParam)

class OnCreateMediaTransportSrtpParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    mediaIdx = property(_pjsua2.OnCreateMediaTransportSrtpParam_mediaIdx_get, _pjsua2.OnCreateMediaTransportSrtpParam_mediaIdx_set)
    srtpUse = property(_pjsua2.OnCreateMediaTransportSrtpParam_srtpUse_get, _pjsua2.OnCreateMediaTransportSrtpParam_srtpUse_set)
    cryptos = property(_pjsua2.OnCreateMediaTransportSrtpParam_cryptos_get, _pjsua2.OnCreateMediaTransportSrtpParam_cryptos_set)

    def __init__(self):
        _pjsua2.OnCreateMediaTransportSrtpParam_swiginit(self, _pjsua2.new_OnCreateMediaTransportSrtpParam())
    __swig_destroy__ = _pjsua2.delete_OnCreateMediaTransportSrtpParam

# Register OnCreateMediaTransportSrtpParam in _pjsua2:
_pjsua2.OnCreateMediaTransportSrtpParam_swigregister(OnCreateMediaTransportSrtpParam)

class CallOpParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    opt = property(_pjsua2.CallOpParam_opt_get, _pjsua2.CallOpParam_opt_set)
    statusCode = property(_pjsua2.CallOpParam_statusCode_get, _pjsua2.CallOpParam_statusCode_set)
    reason = property(_pjsua2.CallOpParam_reason_get, _pjsua2.CallOpParam_reason_set)
    options = property(_pjsua2.CallOpParam_options_get, _pjsua2.CallOpParam_options_set)
    txOption = property(_pjsua2.CallOpParam_txOption_get, _pjsua2.CallOpParam_txOption_set)
    sdp = property(_pjsua2.CallOpParam_sdp_get, _pjsua2.CallOpParam_sdp_set)

    def __init__(self, useDefaultCallSetting=False):
        _pjsua2.CallOpParam_swiginit(self, _pjsua2.new_CallOpParam(useDefaultCallSetting))
    __swig_destroy__ = _pjsua2.delete_CallOpParam

# Register CallOpParam in _pjsua2:
_pjsua2.CallOpParam_swigregister(CallOpParam)

class CallSendRequestParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    method = property(_pjsua2.CallSendRequestParam_method_get, _pjsua2.CallSendRequestParam_method_set)
    txOption = property(_pjsua2.CallSendRequestParam_txOption_get, _pjsua2.CallSendRequestParam_txOption_set)

    def __init__(self):
        _pjsua2.CallSendRequestParam_swiginit(self, _pjsua2.new_CallSendRequestParam())
    __swig_destroy__ = _pjsua2.delete_CallSendRequestParam

# Register CallSendRequestParam in _pjsua2:
_pjsua2.CallSendRequestParam_swigregister(CallSendRequestParam)

class CallVidSetStreamParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    medIdx = property(_pjsua2.CallVidSetStreamParam_medIdx_get, _pjsua2.CallVidSetStreamParam_medIdx_set)
    dir = property(_pjsua2.CallVidSetStreamParam_dir_get, _pjsua2.CallVidSetStreamParam_dir_set)
    capDev = property(_pjsua2.CallVidSetStreamParam_capDev_get, _pjsua2.CallVidSetStreamParam_capDev_set)

    def __init__(self):
        _pjsua2.CallVidSetStreamParam_swiginit(self, _pjsua2.new_CallVidSetStreamParam())
    __swig_destroy__ = _pjsua2.delete_CallVidSetStreamParam

# Register CallVidSetStreamParam in _pjsua2:
_pjsua2.CallVidSetStreamParam_swigregister(CallVidSetStreamParam)

class CallSendDtmfParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    method = property(_pjsua2.CallSendDtmfParam_method_get, _pjsua2.CallSendDtmfParam_method_set)
    duration = property(_pjsua2.CallSendDtmfParam_duration_get, _pjsua2.CallSendDtmfParam_duration_set)
    digits = property(_pjsua2.CallSendDtmfParam_digits_get, _pjsua2.CallSendDtmfParam_digits_set)

    def __init__(self):
        _pjsua2.CallSendDtmfParam_swiginit(self, _pjsua2.new_CallSendDtmfParam())
    __swig_destroy__ = _pjsua2.delete_CallSendDtmfParam

# Register CallSendDtmfParam in _pjsua2:
_pjsua2.CallSendDtmfParam_swigregister(CallSendDtmfParam)

class Call(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, acc, call_id=PJSUA_INVALID_ID):
        if self.__class__ == Call:
            _self = None
        else:
            _self = self
        _pjsua2.Call_swiginit(self, _pjsua2.new_Call(_self, acc, call_id))
    __swig_destroy__ = _pjsua2.delete_Call

    def getInfo(self):
        return _pjsua2.Call_getInfo(self)

    def isActive(self):
        return _pjsua2.Call_isActive(self)

    def getId(self):
        return _pjsua2.Call_getId(self)

    @staticmethod
    def lookup(call_id):
        return _pjsua2.Call_lookup(call_id)

    def hasMedia(self):
        return _pjsua2.Call_hasMedia(self)

    def getMedia(self, med_idx):
        return _pjsua2.Call_getMedia(self, med_idx)

    def getAudioMedia(self, med_idx):
        return _pjsua2.Call_getAudioMedia(self, med_idx)

    def getEncodingVideoMedia(self, med_idx):
        return _pjsua2.Call_getEncodingVideoMedia(self, med_idx)

    def getDecodingVideoMedia(self, med_idx):
        return _pjsua2.Call_getDecodingVideoMedia(self, med_idx)

    def remoteHasCap(self, htype, hname, token):
        return _pjsua2.Call_remoteHasCap(self, htype, hname, token)

    def setUserData(self, user_data):
        return _pjsua2.Call_setUserData(self, user_data)

    def getUserData(self):
        return _pjsua2.Call_getUserData(self)

    def getRemNatType(self):
        return _pjsua2.Call_getRemNatType(self)

    def makeCall(self, dst_uri, prm):
        return _pjsua2.Call_makeCall(self, dst_uri, prm)

    def answer(self, prm):
        return _pjsua2.Call_answer(self, prm)

    def hangup(self, prm):
        return _pjsua2.Call_hangup(self, prm)

    def setHold(self, prm):
        return _pjsua2.Call_setHold(self, prm)

    def reinvite(self, prm):
        return _pjsua2.Call_reinvite(self, prm)

    def update(self, prm):
        return _pjsua2.Call_update(self, prm)

    def xfer(self, dest, prm):
        return _pjsua2.Call_xfer(self, dest, prm)

    def xferReplaces(self, dest_call, prm):
        return _pjsua2.Call_xferReplaces(self, dest_call, prm)

    def processRedirect(self, cmd):
        return _pjsua2.Call_processRedirect(self, cmd)

    def dialDtmf(self, digits):
        return _pjsua2.Call_dialDtmf(self, digits)

    def sendDtmf(self, param):
        return _pjsua2.Call_sendDtmf(self, param)

    def sendInstantMessage(self, prm):
        return _pjsua2.Call_sendInstantMessage(self, prm)

    def sendTypingIndication(self, prm):
        return _pjsua2.Call_sendTypingIndication(self, prm)

    def sendRequest(self, prm):
        return _pjsua2.Call_sendRequest(self, prm)

    def dump(self, with_media, indent):
        return _pjsua2.Call_dump(self, with_media, indent)

    def vidGetStreamIdx(self):
        return _pjsua2.Call_vidGetStreamIdx(self)

    def vidStreamIsRunning(self, med_idx, dir):
        return _pjsua2.Call_vidStreamIsRunning(self, med_idx, dir)

    def vidSetStream(self, op, param):
        return _pjsua2.Call_vidSetStream(self, op, param)

    def getStreamInfo(self, med_idx):
        return _pjsua2.Call_getStreamInfo(self, med_idx)

    def getStreamStat(self, med_idx):
        return _pjsua2.Call_getStreamStat(self, med_idx)

    def getMedTransportInfo(self, med_idx):
        return _pjsua2.Call_getMedTransportInfo(self, med_idx)

    def processMediaUpdate(self, prm):
        return _pjsua2.Call_processMediaUpdate(self, prm)

    def processStateChange(self, prm):
        return _pjsua2.Call_processStateChange(self, prm)

    def onCallState(self, prm):
        return _pjsua2.Call_onCallState(self, prm)

    def onCallTsxState(self, prm):
        return _pjsua2.Call_onCallTsxState(self, prm)

    def onCallMediaState(self, prm):
        return _pjsua2.Call_onCallMediaState(self, prm)

    def onCallSdpCreated(self, prm):
        return _pjsua2.Call_onCallSdpCreated(self, prm)

    def onStreamPreCreate(self, prm):
        return _pjsua2.Call_onStreamPreCreate(self, prm)

    def onStreamCreated(self, prm):
        return _pjsua2.Call_onStreamCreated(self, prm)

    def onStreamDestroyed(self, prm):
        return _pjsua2.Call_onStreamDestroyed(self, prm)

    def onDtmfDigit(self, prm):
        return _pjsua2.Call_onDtmfDigit(self, prm)

    def onDtmfEvent(self, prm):
        return _pjsua2.Call_onDtmfEvent(self, prm)

    def onCallTransferRequest(self, prm):
        return _pjsua2.Call_onCallTransferRequest(self, prm)

    def onCallTransferStatus(self, prm):
        return _pjsua2.Call_onCallTransferStatus(self, prm)

    def onCallReplaceRequest(self, prm):
        return _pjsua2.Call_onCallReplaceRequest(self, prm)

    def onCallReplaced(self, prm):
        return _pjsua2.Call_onCallReplaced(self, prm)

    def onCallRxOffer(self, prm):
        return _pjsua2.Call_onCallRxOffer(self, prm)

    def onCallRxReinvite(self, prm):
        return _pjsua2.Call_onCallRxReinvite(self, prm)

    def onCallTxOffer(self, prm):
        return _pjsua2.Call_onCallTxOffer(self, prm)

    def onInstantMessage(self, prm):
        return _pjsua2.Call_onInstantMessage(self, prm)

    def onInstantMessageStatus(self, prm):
        return _pjsua2.Call_onInstantMessageStatus(self, prm)

    def onTypingIndication(self, prm):
        return _pjsua2.Call_onTypingIndication(self, prm)

    def onCallRedirected(self, prm):
        return _pjsua2.Call_onCallRedirected(self, prm)

    def onCallMediaTransportState(self, prm):
        return _pjsua2.Call_onCallMediaTransportState(self, prm)

    def onCallMediaEvent(self, prm):
        return _pjsua2.Call_onCallMediaEvent(self, prm)

    def onCreateMediaTransport(self, prm):
        return _pjsua2.Call_onCreateMediaTransport(self, prm)

    def onCreateMediaTransportSrtp(self, prm):
        return _pjsua2.Call_onCreateMediaTransportSrtp(self, prm)
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_Call(self)
        return weakref.proxy(self)

# Register Call in _pjsua2:
_pjsua2.Call_swigregister(Call)

def Call_lookup(call_id):
    return _pjsua2.Call_lookup(call_id)

class JsonDocument(PersistentDocument):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _pjsua2.JsonDocument_swiginit(self, _pjsua2.new_JsonDocument())
    __swig_destroy__ = _pjsua2.delete_JsonDocument

    def loadFile(self, filename):
        return _pjsua2.JsonDocument_loadFile(self, filename)

    def loadString(self, input):
        return _pjsua2.JsonDocument_loadString(self, input)

    def saveFile(self, filename):
        return _pjsua2.JsonDocument_saveFile(self, filename)

    def saveString(self):
        return _pjsua2.JsonDocument_saveString(self)

    def getRootContainer(self):
        return _pjsua2.JsonDocument_getRootContainer(self)

# Register JsonDocument in _pjsua2:
_pjsua2.JsonDocument_swigregister(JsonDocument)

class OnNatDetectionCompleteParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    status = property(_pjsua2.OnNatDetectionCompleteParam_status_get, _pjsua2.OnNatDetectionCompleteParam_status_set)
    reason = property(_pjsua2.OnNatDetectionCompleteParam_reason_get, _pjsua2.OnNatDetectionCompleteParam_reason_set)
    natType = property(_pjsua2.OnNatDetectionCompleteParam_natType_get, _pjsua2.OnNatDetectionCompleteParam_natType_set)
    natTypeName = property(_pjsua2.OnNatDetectionCompleteParam_natTypeName_get, _pjsua2.OnNatDetectionCompleteParam_natTypeName_set)

    def __init__(self):
        _pjsua2.OnNatDetectionCompleteParam_swiginit(self, _pjsua2.new_OnNatDetectionCompleteParam())
    __swig_destroy__ = _pjsua2.delete_OnNatDetectionCompleteParam

# Register OnNatDetectionCompleteParam in _pjsua2:
_pjsua2.OnNatDetectionCompleteParam_swigregister(OnNatDetectionCompleteParam)

class OnNatCheckStunServersCompleteParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    userData = property(_pjsua2.OnNatCheckStunServersCompleteParam_userData_get, _pjsua2.OnNatCheckStunServersCompleteParam_userData_set)
    status = property(_pjsua2.OnNatCheckStunServersCompleteParam_status_get, _pjsua2.OnNatCheckStunServersCompleteParam_status_set)
    name = property(_pjsua2.OnNatCheckStunServersCompleteParam_name_get, _pjsua2.OnNatCheckStunServersCompleteParam_name_set)
    addr = property(_pjsua2.OnNatCheckStunServersCompleteParam_addr_get, _pjsua2.OnNatCheckStunServersCompleteParam_addr_set)

    def __init__(self):
        _pjsua2.OnNatCheckStunServersCompleteParam_swiginit(self, _pjsua2.new_OnNatCheckStunServersCompleteParam())
    __swig_destroy__ = _pjsua2.delete_OnNatCheckStunServersCompleteParam

# Register OnNatCheckStunServersCompleteParam in _pjsua2:
_pjsua2.OnNatCheckStunServersCompleteParam_swigregister(OnNatCheckStunServersCompleteParam)

class OnTimerParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    userData = property(_pjsua2.OnTimerParam_userData_get, _pjsua2.OnTimerParam_userData_set)
    msecDelay = property(_pjsua2.OnTimerParam_msecDelay_get, _pjsua2.OnTimerParam_msecDelay_set)

    def __init__(self):
        _pjsua2.OnTimerParam_swiginit(self, _pjsua2.new_OnTimerParam())
    __swig_destroy__ = _pjsua2.delete_OnTimerParam

# Register OnTimerParam in _pjsua2:
_pjsua2.OnTimerParam_swigregister(OnTimerParam)

class SslCertName(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_pjsua2.SslCertName_type_get, _pjsua2.SslCertName_type_set)
    name = property(_pjsua2.SslCertName_name_get, _pjsua2.SslCertName_name_set)

    def __init__(self):
        _pjsua2.SslCertName_swiginit(self, _pjsua2.new_SslCertName())
    __swig_destroy__ = _pjsua2.delete_SslCertName

# Register SslCertName in _pjsua2:
_pjsua2.SslCertName_swigregister(SslCertName)

class SslCertInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    version = property(_pjsua2.SslCertInfo_version_get, _pjsua2.SslCertInfo_version_set)
    serialNo = property(_pjsua2.SslCertInfo_serialNo_get, _pjsua2.SslCertInfo_serialNo_set)
    subjectCn = property(_pjsua2.SslCertInfo_subjectCn_get, _pjsua2.SslCertInfo_subjectCn_set)
    subjectInfo = property(_pjsua2.SslCertInfo_subjectInfo_get, _pjsua2.SslCertInfo_subjectInfo_set)
    issuerCn = property(_pjsua2.SslCertInfo_issuerCn_get, _pjsua2.SslCertInfo_issuerCn_set)
    issuerInfo = property(_pjsua2.SslCertInfo_issuerInfo_get, _pjsua2.SslCertInfo_issuerInfo_set)
    validityStart = property(_pjsua2.SslCertInfo_validityStart_get, _pjsua2.SslCertInfo_validityStart_set)
    validityEnd = property(_pjsua2.SslCertInfo_validityEnd_get, _pjsua2.SslCertInfo_validityEnd_set)
    validityGmt = property(_pjsua2.SslCertInfo_validityGmt_get, _pjsua2.SslCertInfo_validityGmt_set)
    subjectAltName = property(_pjsua2.SslCertInfo_subjectAltName_get, _pjsua2.SslCertInfo_subjectAltName_set)
    raw = property(_pjsua2.SslCertInfo_raw_get, _pjsua2.SslCertInfo_raw_set)

    def __init__(self):
        _pjsua2.SslCertInfo_swiginit(self, _pjsua2.new_SslCertInfo())

    def isEmpty(self):
        return _pjsua2.SslCertInfo_isEmpty(self)
    __swig_destroy__ = _pjsua2.delete_SslCertInfo

# Register SslCertInfo in _pjsua2:
_pjsua2.SslCertInfo_swigregister(SslCertInfo)

class TlsInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    established = property(_pjsua2.TlsInfo_established_get, _pjsua2.TlsInfo_established_set)
    protocol = property(_pjsua2.TlsInfo_protocol_get, _pjsua2.TlsInfo_protocol_set)
    cipher = property(_pjsua2.TlsInfo_cipher_get, _pjsua2.TlsInfo_cipher_set)
    cipherName = property(_pjsua2.TlsInfo_cipherName_get, _pjsua2.TlsInfo_cipherName_set)
    localAddr = property(_pjsua2.TlsInfo_localAddr_get, _pjsua2.TlsInfo_localAddr_set)
    remoteAddr = property(_pjsua2.TlsInfo_remoteAddr_get, _pjsua2.TlsInfo_remoteAddr_set)
    localCertInfo = property(_pjsua2.TlsInfo_localCertInfo_get, _pjsua2.TlsInfo_localCertInfo_set)
    remoteCertInfo = property(_pjsua2.TlsInfo_remoteCertInfo_get, _pjsua2.TlsInfo_remoteCertInfo_set)
    verifyStatus = property(_pjsua2.TlsInfo_verifyStatus_get, _pjsua2.TlsInfo_verifyStatus_set)
    verifyMsgs = property(_pjsua2.TlsInfo_verifyMsgs_get, _pjsua2.TlsInfo_verifyMsgs_set)

    def __init__(self):
        _pjsua2.TlsInfo_swiginit(self, _pjsua2.new_TlsInfo())

    def isEmpty(self):
        return _pjsua2.TlsInfo_isEmpty(self)
    __swig_destroy__ = _pjsua2.delete_TlsInfo

# Register TlsInfo in _pjsua2:
_pjsua2.TlsInfo_swigregister(TlsInfo)

class OnTransportStateParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    hnd = property(_pjsua2.OnTransportStateParam_hnd_get, _pjsua2.OnTransportStateParam_hnd_set)
    type = property(_pjsua2.OnTransportStateParam_type_get, _pjsua2.OnTransportStateParam_type_set)
    state = property(_pjsua2.OnTransportStateParam_state_get, _pjsua2.OnTransportStateParam_state_set)
    lastError = property(_pjsua2.OnTransportStateParam_lastError_get, _pjsua2.OnTransportStateParam_lastError_set)
    tlsInfo = property(_pjsua2.OnTransportStateParam_tlsInfo_get, _pjsua2.OnTransportStateParam_tlsInfo_set)

    def __init__(self):
        _pjsua2.OnTransportStateParam_swiginit(self, _pjsua2.new_OnTransportStateParam())
    __swig_destroy__ = _pjsua2.delete_OnTransportStateParam

# Register OnTransportStateParam in _pjsua2:
_pjsua2.OnTransportStateParam_swigregister(OnTransportStateParam)

class OnSelectAccountParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    rdata = property(_pjsua2.OnSelectAccountParam_rdata_get, _pjsua2.OnSelectAccountParam_rdata_set)
    accountIndex = property(_pjsua2.OnSelectAccountParam_accountIndex_get, _pjsua2.OnSelectAccountParam_accountIndex_set)

    def __init__(self):
        _pjsua2.OnSelectAccountParam_swiginit(self, _pjsua2.new_OnSelectAccountParam())
    __swig_destroy__ = _pjsua2.delete_OnSelectAccountParam

# Register OnSelectAccountParam in _pjsua2:
_pjsua2.OnSelectAccountParam_swigregister(OnSelectAccountParam)

class IpChangeParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    restartListener = property(_pjsua2.IpChangeParam_restartListener_get, _pjsua2.IpChangeParam_restartListener_set)
    restartLisDelay = property(_pjsua2.IpChangeParam_restartLisDelay_get, _pjsua2.IpChangeParam_restartLisDelay_set)

    def __init__(self):
        _pjsua2.IpChangeParam_swiginit(self, _pjsua2.new_IpChangeParam())
    __swig_destroy__ = _pjsua2.delete_IpChangeParam

# Register IpChangeParam in _pjsua2:
_pjsua2.IpChangeParam_swigregister(IpChangeParam)

class RegProgressParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    isRegister = property(_pjsua2.RegProgressParam_isRegister_get, _pjsua2.RegProgressParam_isRegister_set)
    code = property(_pjsua2.RegProgressParam_code_get, _pjsua2.RegProgressParam_code_set)

    def __init__(self):
        _pjsua2.RegProgressParam_swiginit(self, _pjsua2.new_RegProgressParam())
    __swig_destroy__ = _pjsua2.delete_RegProgressParam

# Register RegProgressParam in _pjsua2:
_pjsua2.RegProgressParam_swigregister(RegProgressParam)

class OnIpChangeProgressParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    op = property(_pjsua2.OnIpChangeProgressParam_op_get, _pjsua2.OnIpChangeProgressParam_op_set)
    status = property(_pjsua2.OnIpChangeProgressParam_status_get, _pjsua2.OnIpChangeProgressParam_status_set)
    transportId = property(_pjsua2.OnIpChangeProgressParam_transportId_get, _pjsua2.OnIpChangeProgressParam_transportId_set)
    accId = property(_pjsua2.OnIpChangeProgressParam_accId_get, _pjsua2.OnIpChangeProgressParam_accId_set)
    callId = property(_pjsua2.OnIpChangeProgressParam_callId_get, _pjsua2.OnIpChangeProgressParam_callId_set)
    regInfo = property(_pjsua2.OnIpChangeProgressParam_regInfo_get, _pjsua2.OnIpChangeProgressParam_regInfo_set)

    def __init__(self):
        _pjsua2.OnIpChangeProgressParam_swiginit(self, _pjsua2.new_OnIpChangeProgressParam())
    __swig_destroy__ = _pjsua2.delete_OnIpChangeProgressParam

# Register OnIpChangeProgressParam in _pjsua2:
_pjsua2.OnIpChangeProgressParam_swigregister(OnIpChangeProgressParam)

class OnMediaEventParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ev = property(_pjsua2.OnMediaEventParam_ev_get, _pjsua2.OnMediaEventParam_ev_set)

    def __init__(self):
        _pjsua2.OnMediaEventParam_swiginit(self, _pjsua2.new_OnMediaEventParam())
    __swig_destroy__ = _pjsua2.delete_OnMediaEventParam

# Register OnMediaEventParam in _pjsua2:
_pjsua2.OnMediaEventParam_swigregister(OnMediaEventParam)

class DigestChallenge(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    realm = property(_pjsua2.DigestChallenge_realm_get, _pjsua2.DigestChallenge_realm_set)
    otherParam = property(_pjsua2.DigestChallenge_otherParam_get, _pjsua2.DigestChallenge_otherParam_set)
    domain = property(_pjsua2.DigestChallenge_domain_get, _pjsua2.DigestChallenge_domain_set)
    nonce = property(_pjsua2.DigestChallenge_nonce_get, _pjsua2.DigestChallenge_nonce_set)
    opaque = property(_pjsua2.DigestChallenge_opaque_get, _pjsua2.DigestChallenge_opaque_set)
    stale = property(_pjsua2.DigestChallenge_stale_get, _pjsua2.DigestChallenge_stale_set)
    algorithm = property(_pjsua2.DigestChallenge_algorithm_get, _pjsua2.DigestChallenge_algorithm_set)
    qop = property(_pjsua2.DigestChallenge_qop_get, _pjsua2.DigestChallenge_qop_set)

    def __init__(self):
        _pjsua2.DigestChallenge_swiginit(self, _pjsua2.new_DigestChallenge())
    __swig_destroy__ = _pjsua2.delete_DigestChallenge

# Register DigestChallenge in _pjsua2:
_pjsua2.DigestChallenge_swigregister(DigestChallenge)

class DigestCredential(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    realm = property(_pjsua2.DigestCredential_realm_get, _pjsua2.DigestCredential_realm_set)
    otherParam = property(_pjsua2.DigestCredential_otherParam_get, _pjsua2.DigestCredential_otherParam_set)
    username = property(_pjsua2.DigestCredential_username_get, _pjsua2.DigestCredential_username_set)
    nonce = property(_pjsua2.DigestCredential_nonce_get, _pjsua2.DigestCredential_nonce_set)
    uri = property(_pjsua2.DigestCredential_uri_get, _pjsua2.DigestCredential_uri_set)
    response = property(_pjsua2.DigestCredential_response_get, _pjsua2.DigestCredential_response_set)
    algorithm = property(_pjsua2.DigestCredential_algorithm_get, _pjsua2.DigestCredential_algorithm_set)
    cnonce = property(_pjsua2.DigestCredential_cnonce_get, _pjsua2.DigestCredential_cnonce_set)
    opaque = property(_pjsua2.DigestCredential_opaque_get, _pjsua2.DigestCredential_opaque_set)
    qop = property(_pjsua2.DigestCredential_qop_get, _pjsua2.DigestCredential_qop_set)
    nc = property(_pjsua2.DigestCredential_nc_get, _pjsua2.DigestCredential_nc_set)

    def __init__(self):
        _pjsua2.DigestCredential_swiginit(self, _pjsua2.new_DigestCredential())
    __swig_destroy__ = _pjsua2.delete_DigestCredential

# Register DigestCredential in _pjsua2:
_pjsua2.DigestCredential_swigregister(DigestCredential)

class OnCredAuthParam(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    digestChallenge = property(_pjsua2.OnCredAuthParam_digestChallenge_get, _pjsua2.OnCredAuthParam_digestChallenge_set)
    credentialInfo = property(_pjsua2.OnCredAuthParam_credentialInfo_get, _pjsua2.OnCredAuthParam_credentialInfo_set)
    method = property(_pjsua2.OnCredAuthParam_method_get, _pjsua2.OnCredAuthParam_method_set)
    digestCredential = property(_pjsua2.OnCredAuthParam_digestCredential_get, _pjsua2.OnCredAuthParam_digestCredential_set)

    def __init__(self):
        _pjsua2.OnCredAuthParam_swiginit(self, _pjsua2.new_OnCredAuthParam())
    __swig_destroy__ = _pjsua2.delete_OnCredAuthParam

# Register OnCredAuthParam in _pjsua2:
_pjsua2.OnCredAuthParam_swigregister(OnCredAuthParam)

class UaConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    maxCalls = property(_pjsua2.UaConfig_maxCalls_get, _pjsua2.UaConfig_maxCalls_set)
    threadCnt = property(_pjsua2.UaConfig_threadCnt_get, _pjsua2.UaConfig_threadCnt_set)
    mainThreadOnly = property(_pjsua2.UaConfig_mainThreadOnly_get, _pjsua2.UaConfig_mainThreadOnly_set)
    nameserver = property(_pjsua2.UaConfig_nameserver_get, _pjsua2.UaConfig_nameserver_set)
    outboundProxies = property(_pjsua2.UaConfig_outboundProxies_get, _pjsua2.UaConfig_outboundProxies_set)
    userAgent = property(_pjsua2.UaConfig_userAgent_get, _pjsua2.UaConfig_userAgent_set)
    stunServer = property(_pjsua2.UaConfig_stunServer_get, _pjsua2.UaConfig_stunServer_set)
    stunTryIpv6 = property(_pjsua2.UaConfig_stunTryIpv6_get, _pjsua2.UaConfig_stunTryIpv6_set)
    stunIgnoreFailure = property(_pjsua2.UaConfig_stunIgnoreFailure_get, _pjsua2.UaConfig_stunIgnoreFailure_set)
    natTypeInSdp = property(_pjsua2.UaConfig_natTypeInSdp_get, _pjsua2.UaConfig_natTypeInSdp_set)
    mwiUnsolicitedEnabled = property(_pjsua2.UaConfig_mwiUnsolicitedEnabled_get, _pjsua2.UaConfig_mwiUnsolicitedEnabled_set)

    def __init__(self):
        _pjsua2.UaConfig_swiginit(self, _pjsua2.new_UaConfig())

    def readObject(self, node):
        return _pjsua2.UaConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.UaConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_UaConfig

# Register UaConfig in _pjsua2:
_pjsua2.UaConfig_swigregister(UaConfig)

class LogEntry(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    level = property(_pjsua2.LogEntry_level_get, _pjsua2.LogEntry_level_set)
    msg = property(_pjsua2.LogEntry_msg_get, _pjsua2.LogEntry_msg_set)
    threadId = property(_pjsua2.LogEntry_threadId_get, _pjsua2.LogEntry_threadId_set)
    threadName = property(_pjsua2.LogEntry_threadName_get, _pjsua2.LogEntry_threadName_set)

    def __init__(self):
        _pjsua2.LogEntry_swiginit(self, _pjsua2.new_LogEntry())
    __swig_destroy__ = _pjsua2.delete_LogEntry

# Register LogEntry in _pjsua2:
_pjsua2.LogEntry_swigregister(LogEntry)

class LogWriter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    __swig_destroy__ = _pjsua2.delete_LogWriter

    def write(self, entry):
        return _pjsua2.LogWriter_write(self, entry)

    def __init__(self):
        if self.__class__ == LogWriter:
            _self = None
        else:
            _self = self
        _pjsua2.LogWriter_swiginit(self, _pjsua2.new_LogWriter(_self, ))
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_LogWriter(self)
        return weakref.proxy(self)

# Register LogWriter in _pjsua2:
_pjsua2.LogWriter_swigregister(LogWriter)

class LogConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    msgLogging = property(_pjsua2.LogConfig_msgLogging_get, _pjsua2.LogConfig_msgLogging_set)
    level = property(_pjsua2.LogConfig_level_get, _pjsua2.LogConfig_level_set)
    consoleLevel = property(_pjsua2.LogConfig_consoleLevel_get, _pjsua2.LogConfig_consoleLevel_set)
    decor = property(_pjsua2.LogConfig_decor_get, _pjsua2.LogConfig_decor_set)
    filename = property(_pjsua2.LogConfig_filename_get, _pjsua2.LogConfig_filename_set)
    fileFlags = property(_pjsua2.LogConfig_fileFlags_get, _pjsua2.LogConfig_fileFlags_set)
    writer = property(_pjsua2.LogConfig_writer_get, _pjsua2.LogConfig_writer_set)

    def __init__(self):
        _pjsua2.LogConfig_swiginit(self, _pjsua2.new_LogConfig())

    def readObject(self, node):
        return _pjsua2.LogConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.LogConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_LogConfig

# Register LogConfig in _pjsua2:
_pjsua2.LogConfig_swigregister(LogConfig)

class MediaConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    clockRate = property(_pjsua2.MediaConfig_clockRate_get, _pjsua2.MediaConfig_clockRate_set)
    sndClockRate = property(_pjsua2.MediaConfig_sndClockRate_get, _pjsua2.MediaConfig_sndClockRate_set)
    channelCount = property(_pjsua2.MediaConfig_channelCount_get, _pjsua2.MediaConfig_channelCount_set)
    audioFramePtime = property(_pjsua2.MediaConfig_audioFramePtime_get, _pjsua2.MediaConfig_audioFramePtime_set)
    maxMediaPorts = property(_pjsua2.MediaConfig_maxMediaPorts_get, _pjsua2.MediaConfig_maxMediaPorts_set)
    hasIoqueue = property(_pjsua2.MediaConfig_hasIoqueue_get, _pjsua2.MediaConfig_hasIoqueue_set)
    threadCnt = property(_pjsua2.MediaConfig_threadCnt_get, _pjsua2.MediaConfig_threadCnt_set)
    quality = property(_pjsua2.MediaConfig_quality_get, _pjsua2.MediaConfig_quality_set)
    ptime = property(_pjsua2.MediaConfig_ptime_get, _pjsua2.MediaConfig_ptime_set)
    noVad = property(_pjsua2.MediaConfig_noVad_get, _pjsua2.MediaConfig_noVad_set)
    ilbcMode = property(_pjsua2.MediaConfig_ilbcMode_get, _pjsua2.MediaConfig_ilbcMode_set)
    txDropPct = property(_pjsua2.MediaConfig_txDropPct_get, _pjsua2.MediaConfig_txDropPct_set)
    rxDropPct = property(_pjsua2.MediaConfig_rxDropPct_get, _pjsua2.MediaConfig_rxDropPct_set)
    ecOptions = property(_pjsua2.MediaConfig_ecOptions_get, _pjsua2.MediaConfig_ecOptions_set)
    ecTailLen = property(_pjsua2.MediaConfig_ecTailLen_get, _pjsua2.MediaConfig_ecTailLen_set)
    sndRecLatency = property(_pjsua2.MediaConfig_sndRecLatency_get, _pjsua2.MediaConfig_sndRecLatency_set)
    sndPlayLatency = property(_pjsua2.MediaConfig_sndPlayLatency_get, _pjsua2.MediaConfig_sndPlayLatency_set)
    jbInit = property(_pjsua2.MediaConfig_jbInit_get, _pjsua2.MediaConfig_jbInit_set)
    jbMinPre = property(_pjsua2.MediaConfig_jbMinPre_get, _pjsua2.MediaConfig_jbMinPre_set)
    jbMaxPre = property(_pjsua2.MediaConfig_jbMaxPre_get, _pjsua2.MediaConfig_jbMaxPre_set)
    jbMax = property(_pjsua2.MediaConfig_jbMax_get, _pjsua2.MediaConfig_jbMax_set)
    jbDiscardAlgo = property(_pjsua2.MediaConfig_jbDiscardAlgo_get, _pjsua2.MediaConfig_jbDiscardAlgo_set)
    sndAutoCloseTime = property(_pjsua2.MediaConfig_sndAutoCloseTime_get, _pjsua2.MediaConfig_sndAutoCloseTime_set)
    vidPreviewEnableNative = property(_pjsua2.MediaConfig_vidPreviewEnableNative_get, _pjsua2.MediaConfig_vidPreviewEnableNative_set)

    def __init__(self):
        _pjsua2.MediaConfig_swiginit(self, _pjsua2.new_MediaConfig())

    def readObject(self, node):
        return _pjsua2.MediaConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.MediaConfig_writeObject(self, node)
    __swig_destroy__ = _pjsua2.delete_MediaConfig

# Register MediaConfig in _pjsua2:
_pjsua2.MediaConfig_swigregister(MediaConfig)

class EpConfig(PersistentObject):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    uaConfig = property(_pjsua2.EpConfig_uaConfig_get, _pjsua2.EpConfig_uaConfig_set)
    logConfig = property(_pjsua2.EpConfig_logConfig_get, _pjsua2.EpConfig_logConfig_set)
    medConfig = property(_pjsua2.EpConfig_medConfig_get, _pjsua2.EpConfig_medConfig_set)

    def readObject(self, node):
        return _pjsua2.EpConfig_readObject(self, node)

    def writeObject(self, node):
        return _pjsua2.EpConfig_writeObject(self, node)

    def __init__(self):
        _pjsua2.EpConfig_swiginit(self, _pjsua2.new_EpConfig())
    __swig_destroy__ = _pjsua2.delete_EpConfig

# Register EpConfig in _pjsua2:
_pjsua2.EpConfig_swigregister(EpConfig)

class PendingJob(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr

    def execute(self, is_pending):
        return _pjsua2.PendingJob_execute(self, is_pending)
    __swig_destroy__ = _pjsua2.delete_PendingJob

# Register PendingJob in _pjsua2:
_pjsua2.PendingJob_swigregister(PendingJob)

class Endpoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def instance():
        return _pjsua2.Endpoint_instance()

    def __init__(self):
        if self.__class__ == Endpoint:
            _self = None
        else:
            _self = self
        _pjsua2.Endpoint_swiginit(self, _pjsua2.new_Endpoint(_self, ))
    __swig_destroy__ = _pjsua2.delete_Endpoint

    def libVersion(self):
        return _pjsua2.Endpoint_libVersion(self)

    def libCreate(self):
        return _pjsua2.Endpoint_libCreate(self)

    def libGetState(self):
        return _pjsua2.Endpoint_libGetState(self)

    def libInit(self, prmEpConfig):
        return _pjsua2.Endpoint_libInit(self, prmEpConfig)

    def libStart(self):
        return _pjsua2.Endpoint_libStart(self)

    def libRegisterThread(self, name):
        return _pjsua2.Endpoint_libRegisterThread(self, name)

    def libIsThreadRegistered(self):
        return _pjsua2.Endpoint_libIsThreadRegistered(self)

    def libStopWorkerThreads(self):
        return _pjsua2.Endpoint_libStopWorkerThreads(self)

    def libHandleEvents(self, msec_timeout):
        return _pjsua2.Endpoint_libHandleEvents(self, msec_timeout)

    def libDestroy(self, prmFlags=0):
        return _pjsua2.Endpoint_libDestroy(self, prmFlags)

    def utilStrError(self, prmErr):
        return _pjsua2.Endpoint_utilStrError(self, prmErr)

    def utilLogWrite(self, *args):
        return _pjsua2.Endpoint_utilLogWrite(self, *args)

    def utilVerifySipUri(self, prmUri):
        return _pjsua2.Endpoint_utilVerifySipUri(self, prmUri)

    def utilVerifyUri(self, prmUri):
        return _pjsua2.Endpoint_utilVerifyUri(self, prmUri)

    def utilTimerSchedule(self, prmMsecDelay, prmUserData):
        return _pjsua2.Endpoint_utilTimerSchedule(self, prmMsecDelay, prmUserData)

    def utilTimerCancel(self, prmToken):
        return _pjsua2.Endpoint_utilTimerCancel(self, prmToken)

    def utilAddPendingJob(self, job):
        return _pjsua2.Endpoint_utilAddPendingJob(self, job)

    def utilSslGetAvailableCiphers(self):
        return _pjsua2.Endpoint_utilSslGetAvailableCiphers(self)

    def natDetectType(self):
        return _pjsua2.Endpoint_natDetectType(self)

    def natGetType(self):
        return _pjsua2.Endpoint_natGetType(self)

    def natUpdateStunServers(self, prmServers, prmWait):
        return _pjsua2.Endpoint_natUpdateStunServers(self, prmServers, prmWait)

    def natCheckStunServers(self, prmServers, prmWait, prmUserData):
        return _pjsua2.Endpoint_natCheckStunServers(self, prmServers, prmWait, prmUserData)

    def natCancelCheckStunServers(self, token, notify_cb=False):
        return _pjsua2.Endpoint_natCancelCheckStunServers(self, token, notify_cb)

    def transportCreate(self, type, cfg):
        return _pjsua2.Endpoint_transportCreate(self, type, cfg)

    def transportEnum(self):
        return _pjsua2.Endpoint_transportEnum(self)

    def transportGetInfo(self, id):
        return _pjsua2.Endpoint_transportGetInfo(self, id)

    def transportSetEnable(self, id, enabled):
        return _pjsua2.Endpoint_transportSetEnable(self, id, enabled)

    def transportClose(self, id):
        return _pjsua2.Endpoint_transportClose(self, id)

    def transportShutdown(self, tp):
        return _pjsua2.Endpoint_transportShutdown(self, tp)

    def hangupAllCalls(self):
        return _pjsua2.Endpoint_hangupAllCalls(self)

    def mediaAdd(self, media):
        return _pjsua2.Endpoint_mediaAdd(self, media)

    def mediaRemove(self, media):
        return _pjsua2.Endpoint_mediaRemove(self, media)

    def mediaExists(self, media):
        return _pjsua2.Endpoint_mediaExists(self, media)

    def mediaMaxPorts(self):
        return _pjsua2.Endpoint_mediaMaxPorts(self)

    def mediaActivePorts(self):
        return _pjsua2.Endpoint_mediaActivePorts(self)

    def mediaEnumPorts2(self):
        return _pjsua2.Endpoint_mediaEnumPorts2(self)

    def mediaEnumVidPorts(self):
        return _pjsua2.Endpoint_mediaEnumVidPorts(self)

    def audDevManager(self):
        return _pjsua2.Endpoint_audDevManager(self)

    def vidDevManager(self):
        return _pjsua2.Endpoint_vidDevManager(self)

    def codecEnum2(self):
        return _pjsua2.Endpoint_codecEnum2(self)

    def codecSetPriority(self, codec_id, priority):
        return _pjsua2.Endpoint_codecSetPriority(self, codec_id, priority)

    def codecGetParam(self, codec_id):
        return _pjsua2.Endpoint_codecGetParam(self, codec_id)

    def codecSetParam(self, codec_id, param):
        return _pjsua2.Endpoint_codecSetParam(self, codec_id, param)

    def videoCodecEnum2(self):
        return _pjsua2.Endpoint_videoCodecEnum2(self)

    def videoCodecSetPriority(self, codec_id, priority):
        return _pjsua2.Endpoint_videoCodecSetPriority(self, codec_id, priority)

    def getVideoCodecParam(self, codec_id):
        return _pjsua2.Endpoint_getVideoCodecParam(self, codec_id)

    def setVideoCodecParam(self, codec_id, param):
        return _pjsua2.Endpoint_setVideoCodecParam(self, codec_id, param)

    def resetVideoCodecParam(self, codec_id):
        return _pjsua2.Endpoint_resetVideoCodecParam(self, codec_id)

    def srtpCryptoEnum(self):
        return _pjsua2.Endpoint_srtpCryptoEnum(self)

    def handleIpChange(self, param):
        return _pjsua2.Endpoint_handleIpChange(self, param)

    def onNatDetectionComplete(self, prm):
        return _pjsua2.Endpoint_onNatDetectionComplete(self, prm)

    def onNatCheckStunServersComplete(self, prm):
        return _pjsua2.Endpoint_onNatCheckStunServersComplete(self, prm)

    def onTransportState(self, prm):
        return _pjsua2.Endpoint_onTransportState(self, prm)

    def onTimer(self, prm):
        return _pjsua2.Endpoint_onTimer(self, prm)

    def onSelectAccount(self, prm):
        return _pjsua2.Endpoint_onSelectAccount(self, prm)

    def onIpChangeProgress(self, prm):
        return _pjsua2.Endpoint_onIpChangeProgress(self, prm)

    def onMediaEvent(self, prm):
        return _pjsua2.Endpoint_onMediaEvent(self, prm)

    def onCredAuth(self, prm):
        return _pjsua2.Endpoint_onCredAuth(self, prm)
    def __disown__(self):
        self.this.disown()
        _pjsua2.disown_Endpoint(self)
        return weakref.proxy(self)

# Register Endpoint in _pjsua2:
_pjsua2.Endpoint_swigregister(Endpoint)

def Endpoint_instance():
    return _pjsua2.Endpoint_instance()



