Commit 623cb129 authored by Ghislain MARY's avatar Ghislain MARY
Browse files

Add some introduction text to the Python documentation.

parent 717db9fd
......@@ -3,10 +3,56 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to Linphone's documentation!
Linphone for Python documentation
Getting started
Installing the Python module
You can install prebuilt packages of Linphone for Python. You will find the
releases at This includes only packages
for the Windows platform right now. The easiest way to install is to use pip,
.. code-block:: none
> pip install linphone --pre
You can also find nightly-built packages for Windows, Mac OS X and Linux at
Otherwise you can compile the Python module. To do so get the build system code
using the command:
.. code-block:: none
> git clone git://
Then follow the instructions in the *README.python* file.
Running some code
Here is a sample source code using PyQt4 that enables you to register on a SIP
server in just a few lines of code. This is a very basic example, but it shows
how to create a linphone.Core object that is the main object of Linphone. From
there, you can use the API reference below to use more advanced feature and
perform some SIP calls, use text messaging and more...
.. literalinclude::
In the Linphone Python module package you installed previously you will also
find some unit tests that you can run. These unit tests will be located in the
*site-packages/linphone/unittests/* directory of Python installation where you
installed the Linphone Python module package. To run these unit tests, follow
the instructions contained in the README.txt file of this *unittests/*
API reference
.. toctree::
:maxdepth: 2
......@@ -19,7 +65,7 @@ Contents:
Indices and tables
* :ref:`genindex`
* :ref:`search`
import linphone
import logging
import sys
from PyQt4.QtCore import QTimer
from PyQt4.QtGui import QApplication
def main():
app = QApplication(sys.argv)
def log_handler(level, msg):
method = getattr(logging, level)
def global_state_changed(*args, **kwargs):
logging.warning("global_state_changed: %r %r" % (args, kwargs))
def registration_state_changed(core, call, state, message):
logging.warning("registration_state_changed: " + str(state) + ", " + message)
callbacks = {
'global_state_changed': global_state_changed,
'registration_state_changed': registration_state_changed,
core =, None, None)
proxy_cfg = core.create_proxy_config()
proxy_cfg.identity = ""
proxy_cfg.server_addr = ""
proxy_cfg.register_enabled = True
iterate_timer = QTimer()
stop_timer = QTimer()
exitcode = app.exec_()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment