You are on page 1of 2

= PJSUA Python Module =

[[TracNav(Python_SIP/TOC)]]

'''* IMPORTANT! :*''' Python module for PJSIP has been deprecated and although it
may still be usable, the module, as well as this doc page, will no longer be
maintained. For the replacement, please use PJSUA2 and Python SWIG binding as
described [http://www.pjsip.org/docs/book-latest/html/intro_pjsua2.html#building-
python-and-java-swig-modules here].

The PJSUA for Python Module is an object oriented Python


wrapper/abstraction/modules for
[http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA API]. It provides
high level API for constructing [http://www.ietf.org/rfc/rfc3261.txt Session
Initiation Protocol (SIP)] multimedia user agent applications (a.k.a Voice over
IP/VoIP softphones). It wraps together the signaling, media, and NAT traversal
functionality into easy to use call control API, account management, buddy list
management, presence, and instant messaging, along with multimedia features such as
local conferencing, file streaming, local playback, and voice recording, and
powerful NAT traversal techniques utilizing [http://tools.ietf.org/html/draft-ietf-
behave-rfc3489bis STUN], [http://tools.ietf.org/html/draft-ietf-behave-turn TURN],
and [http://tools.ietf.org/html/draft-ietf-mmusic-ice ICE].

The PJSUA Python is implemented in two modules:

'''pjsua''' module: ::
This is the object-oriented, pure Python, and even higher level abstraction for
[http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA API]. It is
implemented on top of {{{_pjsua}}} C extension module, and it is the one described
on this article.

'''_pjsua''' module: ::
The "_pjsua" module (with underscore) is the low-level C Python extension which
provides Python bindings for
[http://www.pjsip.org/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA API]. This module
is the successor of [wiki:Py_PJSUA py_pjsua] module which now has been deprecated.

Applications should use the '''pjsua''' module rather than '''_pjsua''' module,
since it is easier to use and it is the module which API compatibility will be
maintained in future releases.

== Intended Audience ==

This tutorial is intended for developers looking to develop Session Initiation


Protocol (SIP) based client application using Python. Some knowledge on SIP is
definitely required, and of course some Python programming experience. Prior
knowledge of PJSUA C API is not needed, although it will probably help.

This Python SIP module provides very high level API to do SIP calls, presence, and
instant messaging, as well as handling media and NAT traversal. Knowledge of SIP
protocol details (such as the grammar, ''transaction'', ''dialog'', and whatnot)
are not required, however you should know how SIP works in general and particularly
how to configure SIP clients to, e.g. register to a SIP provider, specify SIP URI
to make call to, and so on, to use the module.
[[BR]]
[[BR]]
''Please click the link on the Table of Contents to the right to navigate to the
next chapters''

You might also like