
                           PJSUA TEST FRAMEWORK
                        =========================

0. What is this
---------------
This is the automated testing scripts for pjsua. It can do many things (just 
don't ask it to write good documentation :) ).


1. Requirements
---------------
To run the tests you need:
 - Python (tested with Python 2.5.2)
 - pjsua application, built and placed in pjsip-apps/bin directory
 - the pjsua must be built with:
     - SRTP enabled (the default)


2. Using
--------
To run all the tests:
  $ python [OPTIONS] runall.py

To run individual test:
  $ python [OPTIONS] run.py MODULE CONFIG

Where options:
  -e EXE	use EXE as pjsua executable
  -n		use null audio
  -r TEST	(for runall.py only) resume test at TEST

  
For each individual tests, the run.py is the main entry for the test. It 
imports the various inc_xxx.py files, and it will load the MODULE. The MODULE 
contains specific test flows, and we have few of them:

  - mod_run.py: 
  	a simple test which just run pjsua with the configuration from CONFIG 
	file and checks if pjsua can start properly.

  - mod_call.py: 
  	call testing where it spawns two pjsua instances each with configura-
	tions as specified in CONFIG file, makes one pjsua call the other, and 
	checks if the call can be established.

  - mod_pres.py:
  	presence testing

  - mod_sendto.py:
  	Simple UAC to send arbitrary SIP message to pjsua. Good to test
	various incoming INVITE scenarios

  - mod_media_playrec.py:
  	Mainly for resampling quality testing

  - mod_pesq.py
  	Measure call quality of various call settings with PESQ, for people 
	who have PESQ tool and license

Example:
  $ python run.py mod_run.py scripts-run/100_simple.py
  $ python run.py mod_call.py scripts-call/100_simple.py
  $ python run.py mod_sipp.py scripts-sipp/uac-bad-ack.xml


