Library req » History » Version 23

« Previous - Version 23/39 (diff) - Next » - Current version
Refik Hadzialic, 11/16/2011 01:12 PM

Library requirement

Python Library

PJSUA Library

pjsua is an open source command line SIP user agent (softphone) that is used as the reference implementation for PJSIP, PJNATH, and PJMEDIA. Despite its simple command line appearance, it does pack many features!

This library use for SIP handler. More information about this library you will found in this site

How to use it and how to install will explain here: SIP Handler


Secure Shell (SSH) is a network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers that it connects via a secure channel over an insecure network: a server (running an SSH server program) and a client (running an SSH client program).[1] The protocol specification distinguishes two major versions that are referred to as SSH-1 and SSH-2.


sudo apt-get install ssh

We need to configure ssh connection to the client without typing password. This will be done with copying public key into the client. For more information how to configure, you can find in this tutorial "3 Steps to Perform SSH Login Without Password Using ssh-keygen & ssh-copy-id" by RAMESH NATARAJAN

install easy_install

sudo apt-get install python-setuptools python-dev build-essential


The library allows a process to change its title (as displayed by system tools such as ps and top).

Changing the title is mostly useful in multi-process systems, for example when a master process is forked: changing the children's title allows to identify the task each process is busy with. The technique is used by PostgreSQL and the OpenSSH Server for example.

The procedure is hardly portable across different systems. PostgreSQL provides a good multi-platform implementation: this module is a Python wrapper around PostgreSQL code.

You can use easy_install to install the module: to perform a system-wide installation use:

sudo easy_install setproctitle

If you are an unprivileged user or you want to limit installation to a local environment, you can use the command:

easy_install -d /target/path setproctitle

Notice that easy_install requires /target/path to be in your PYTHONPATH.

Module content

The module exports the following functions:


Set title as the title for the current process.


Return the current process title.

More information about this library.

Serial port library

The serial port library is required for the cell phones to communicate with the server
computer and the BeagleBoards. The required library for Python can be installed by typing the following command:

sudo apt-get install python-serial


MySQLdb is an thread-compatible interface to the popular MySQL database server that provides the Python database API.
_mysql is a low-level API similiar to the MySQL C API. ZMySQLDA is a Database Adapter for Zope2.

If you want to write applications which are portable across databases, use MySQLdb, and avoid using this module directly. _mysql provides an interface which mostly implements the MySQL C API. For more information, see the MySQL documentation. The documentation for this module is intentionally weak because you probably should use the higher-level MySQLdb module. If you really need it, use the standard MySQL docs and transliterate as necessary.

pChart library

The pChart library is within our installation les and does not require to be installed individually. The library is only required if one uses the web interface and requires the generated resulting image. The library is open source and does not require any licensing. However, if one needs to learn how the library works, information can be found on the pChart web page


phpMyAdmin is a very famous MySQL mangement software package. To use it you should install and configure PHP, Apache and php mysql.
The easy way to install PhpMyadmin is installing from package using Apt-get command.

sudo apt-get install phpmyadmin

For detailed instructions on using repositories and package managers, please go to the site:

MySQL Server

MySQL is a fast, multi-threaded, multi-user, and robust SQL database server. It is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.


To install MySQL, run the following command from a terminal prompt:

sudo apt-get install mysql-server

During the installation process you will be prompted to enter a password for the MySQL root user.

Once the installation is complete, the MySQL server should be started automatically. More information, please see:

Installation guide from Konrad


apt-get install apache


apt-get install python python-serial python-setuptools python-dev build-essential
easy_install setproctitle

Apache + php:

apt-get install apache2 
apt-get install libapache2-mod-php5
a2enmod php5
/etc/init.d/apache2 restart


apt-get install mysql-server python-mysqldb php5-mysql php5-gd


tar --bzip2 -xvf pjproject-1.12.tar.bz2
./configure && make dep && make
cd pjsip-apps/src/python/
sudo make install

see Report page 30 ff.

Database preparation:

mysql -u root -p -h localhost
create databas gsmselftesting;
use mysql;
GRANT ALL PRIVILEGES ON gsmselftesting.* TO 'selftest'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql -u selftest -p -h localhost -D gsmselftesting < gsmselftesting.sql
mysql -u selftest -p -h localhost -D gsmselftesting < InsertData.sql

Change mysql login credentials in the code:

vim Code/Server-Code/

Chnage mysql login credentials in the website:

vim /var/www-ssl/gsm-selftest/dbconnection.php

Running the System:

export DISPLAY=:0.0

Configuring the web server to handle https and .htaccess files


First we want to generate a server key by typing the following command:

openssl genrsa −des3 −out server.key 4096

This will generate a 4096 bit long private server key, one is asked to enter two times a password for the server.key. Using the generated private server key, we will create a certificate signing request, server.csr. We were prompted with a series of questions like country, state, organization name and etc which we had to enter to resume.

openssl req -new -key server.key -out server.csr