APIs for Protocol Simulation,
Conformance & Regression Testing

15th, Mar 2019

Welcome to another March 2019 issue of GL Communications' Newsletter providing information and insight into Test Automation and Remote Testing through “API Support for MAPS™ Emulation Platform”.  API capability has wide ranging applications for Signaling and Traffic Simulation over IP, Wireless, TDM and Analog Networks. The APIs allow easy integration with Network Instruments’ TestStand and LabView and QualiSystems' TestShell software frameworks offering complete Lab Management, Device Provisioning and Test Automation solutions for engineers.

maps cli web client server network


GL’s MAPS™ Emulation architecture / platform can be configured as server-side application, to enable remote controlling through multiple command-line based clients including Python, Java, VBScripts, TCL, and others. The MAPS™ APIs allows for programmatic and automated control over all MAPS™ platforms. Each MAPS™ server can receive multiple client connections and offer independent execution to each client. Likewise, a single client can connect to multiple MAPS™ servers, including servers running different protocols, permitting complex cross-protocol test cases.

The MAPS™ application provides access to Signaling and Traffic simulation functionalities listed below remotely using Command Line Interface (CLI) and APIs clients such as Python, TCL, Java, VBScripts and others.

  • Functional regression testing
  • Long duration, high volume performance/load testing
  • Protocol conformance testing
  • Negative testing
  • IVR traversal
  • Interoperability testing
  • Voice Quality testing

Wide variety of protocols are supported across TDM, VoIP, Wireless, Analog networks -

Wireless Network - 4G, 3G, 2G over IP

VoIP Network

TDM/PSTN Network


SIP, MEGACO, SIP I (SIP ISUP), ED-137 (Air Traffic Management)

ISDN, SS7 (ISUP), CAS, GSM A, GSM Abis, MAP (Mobile Application Part), INAP (ANSI, ITU), CAP (CAMEL Application Part), IUP

Working Principle of MAPS™ CLI

GL’s MAPS™ CLI Client/Server platform supports various client libraries in different languages, so that users can make use of these different libraries to talk to the MAPS server, and achieve automation using their language of choice. However, these are relatively low-level libraries, which gives users a very fine grain control, but also requires users to put in a bit more effort to program with it.

Shown below is the working principle of the MAPS™ CLI Test System.

  • Client user (Python, Java, TCL and others) run client scripts which executes the command that instructs the MAPS™ CLI Server

  • MAPS™ Client interface interprets the User Events from Client user to MAPS™ CLI Server and vice versa

  • MAPS™ CLI Server runs the CLI script which emulates the state machine to place/answer the call or send/receive traffic

  • In case of T1 E1 Protocols, MAPS™ CLI Server additionally interacts with the T1 E1 WCS server to perform the requested task. The reports are generated for the event performed and is sent back to Client user

MAPS™ CLI Working Principle

Python, TCL, Java, VBScripts Clients

TCL Client and TCL Scripting

TCL (Tool Command Language), a client application that includes a command-line interface (TClsh85.exe) into which client users may key in commands or load commands from previously saved files. MAPS TCL interface includes MapsClientIfc.dll file, a packaged library that acts as an interface between MAPS™ Server and its client (TCL).

TCL Client Script

VB Client and Scripting

VBScript Client internally interfaces with C# APIs. VBScript Client load MapsClientIfc.dll, a packaged library that acts as an interface between MAPS™ Server and its Client users. The C# interface developed for MAPS™ allows users to control all features of MAPS™ through C# APIs. The C# interface is implemented based on a client-server model. The server is the MAPS™ CLI server, which connects with the VBScript client using TCP/IP sockets. The client consists of a C# API dll, which allows user to control the MAPS™ CLI server, issue commands and get back results.

A sample VB Client script (SIPRegistration.vb)

Python/Java Client and Scripting

In addition to existing TCL and VBS APIs, GL is now offering Python and Java APIs for all variants of MAPS™. The API is written using an object-oriented coding paradigm, designed to give the user simple and intuitive containers for their messages, calls and regressions.

The new API is divided into “High” and “Low” level function calls.

High level scripts leave the protocol logic to the underlying call control script on the MAPS™ server. Meaning, for example when receiving a SIP INVITE, the High-Level call control script will immediately and automatically respond with a 100 Trying and 180 Ringing, when it eventually sends the 200 OK and it will retransmit in accordance with the RFC.

A Low-Level call control scripts transplant that logic to the API language, giving the user full control over signaling. This necessarily leads to more complex API scripts, but it gives the user complete control over the state machine.

TestShell Framework Integration

TestShell is an enterprise software framework offers complete Lab Management, Device Provisioning and Test Automation solutions for engineers. TestShell is a popular framework for test automation and is used worldwide to integrate different vendor equipment and automate the use of the same.

TestShell has a TCL Client built in, with scripting, drag and drop interface. This makes the system compatible with GL's MAPS™ Protocol Emulation software. TestShell / TCL Client runs TCL scripts which executes commands, that instructs the MAPS CLI Server to run a particular script that emulates the state machine to place or answer calls for the protocol specified

MAPS™ Integration with TestShell

Back to Newsletter Index Page Back to Newsletter Index Page