Project

General

Profile

Progress of the Project

First Week

Now we start our team project. We now collect all information about software and hardware we need. We are also trying to understand how the RZ network works. We already have some design for the project but not sure if that match with the project.

Second Week

SIP Configuration using PJSUA library under python

Build and Installation

Getting the Modules

You can get the installation module from the official website from PJSUA [http://www.pjsip.org/download.htm]
The Python modules source codes along with some samples are included in PJSIP distribution, in pjproject/trunk/pjsip-apps/src/python p directory. No separate download is needed.

Requirements

1. The Utilities Packets, e.g. make, gcc, and binutils.
1. Python: this normally should have been installed on every Linux.
1. Python development package, to build the C extension. This might be called python-devel (e.g. on Fedora) or python2.4-dev or python2.5-dev (e.g. on Ubuntu).

Building the Module

Using Python build script:
1. Build the PJSIP libraries first with the usual "./configure && make dep && make" commands.
1. Go to pjsip-apps/src/python directory.
1. Run "sudo python ./setup.py install" or just ''sudo make"

Sample session:

   $ cd your-pjsip-root-dir
   $ ./configure && make dep && make
   $ cd pjsip-apps/src/python
   $ sudo make

Testing the installation

To test the installation, simply run python and import ''pjsua'' module.

$ python
> import pjsua
> ^Z

$

SIP Progress:

Until this moment, We already build small script for SIP handler which can identify:

Incoming Call
Outgoing Call
Reject Call
Accept Call
Caller number
Status Call
Registration status to the SIP server
Generate error code

Now on SIP part we just need to deal with communication between SIP handler and the Controller since we already success with every required task on SIP part.
Because we change the way our software tester works, we need to change some of the script for SIP handler to handle the task. Probably it will take 1 or 2 weeks to finish.

Features

We would like to implement some automatic testing which can automatically make the test when some part on the network doesn't work. Assume that calling GSM on BTS 1 from SIP is failed, to decide and recognize the error part on the RZ network, we also need to make test from SIP to another GSM on different BTS. If there are any establish connection on the other GSM, we know that we just have problem on BTS 1 or the device otherwise we know that we have problem on OpenBSC server.

Database

Until now we are still trying to draw the right and efficient database to deal with Software tester and also for informational purpose.

This is the database design for our test software. This is just first design for the database, and will be updated as soon as we build the system and find some efficient database.

Star(*) mean the field is Primary key and Unique. All task test will store on the TaskTable with same ID. To initiate the same task, we can just easy find the same number of taskNo.

Third Week

On third week we have finished to build the main function for our handler such as initial Outgoing call, Incoming call, Status Caller, Accept or Reject Call and generate error code. Now we are trying to make interconnection between handler and controller, we started to think the best way our controller communicated with the handler.

Fourth Week

We are working on the documentation right now. That means drawing the big picture for our project, UML part and also trying to update wiki. Until right now documentation seems to be the hardest part for our project. We are trying our best in a way that we are making everything readable and easy to understand since we have problem about explanation.
In addition to that, we remove all the file on the repository because we have problem with file and git application.

Fifth Week

Now, we are writing our algorithm for the test software (especially controller) because on first attempt we just consider the handler and ignore the controller.
After we finish writing and discussing about the algorithm for our controller, we are going to try to give some case (of course default case) to the algorithm for the future day to work based on this algorithm. We are trying hard to find some error on the algorithm.

We almost finished with algorithm for the controller. Now we are still discussing about the required task for the controller. However, you can find the big idea how controller controls everything on the controller algorithm page. (We still rely on that!)

We are using socket communication to communicate between controller and handler. On this class we can define which host and port we should use.

Landline

In the beginning, we tried to start to implement the landline handling code using Twinkle API. After receiving some objections, we started to implement the code using pjsua library.

Sixth Week

We have done with socket communication and also database connection.
Now we are on the way to write general message between controller and every handler.
Until now, SIP side ready to make test and accept every task from the controller.

Progress report on the database Class

Our database connection class for the main controller is, 90% finished and the manual and how it works can be found on the following link [[http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki/DbClass]] (added on 7.7).

Seventh Week

SIP part including landline, sip asterik and university telefonie ready to test. Have done with communicating between handler and main controller. And fully tested with database also.
the controller can communicated with handler and give task which he fetch from database and insert the result test back to the database.
next round is integrate to GSM part. When we have succeed with this integrate we done building the test software.