Version 21 (modified by ismangil, 15 years ago) (diff)


PJSUA Python Module

The PJSUA for Python Module is an object oriented Python wrapper/abstraction/modules for PJSUA API. It provides high level API for constructing 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 STUN, TURN, and ICE.

The PJSUA Python is implemented in two modules:

pjsua module:
This is the object-oriented, pure Python, and even higher level abstraction for 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 PJSUA API. This module is the successor of 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.

Please click the link on the Table of Contents to the right to navigate to the next chapters