SCOUT
A test automation framework for IP telephony systems.

SCOUT for testing heterogeneous IP telephony systems
An IP telephony system consists of multiple servers such as SIP proxy, PSTN gateway, media servers, all interacting with each other. In addition to testing each entity individually, interaction between the entities must be tested in order to thoroughly test an IP telephony system.

SCOUT is a framework developed by GS Lab to automate testing of IP telephony systems from an end user's perspective. SCOUT complements tools such as SIPp that test a particular entity in the system. It provides multiple phones or call end points to interact with the system under test. Real deployment scenarios could be simulated using these phones. Both the end points of a call are under the tester's control, because both of them are phones provided by SCOUT. A tester encodes test scenarios as Python scripts using abstractions provided by SCOUT. A simple test scenario looks like this:
  Place a call from phone A to phone B
  Expect ring at phone B
  Once the call is established, execute actions to be performed by Phone A and Phone B
  Fail the test if either the call did not succeed or logs generated by server X did not have      expected message

SCOUT provides a rich set of abstractions to place a call, receive a call, to define actions to be performed by a call end point. SCOUT also captures logs generated by all servers involved in a test run and provides API's to perform log based validations. SCOUT thus allows the system under test to be viewed from end user's perspective and enables a tester to set up a variety of real deployment scenarios.