Simple Tandem and CallSim

Description

The following information provides insight into a simple tandem call control application included with the samples on the EXS SwitchKit installation CD.

Simple Tandem

The SimpleTandem application waits after initialization for a Request For Service With Data (RFSD) message. When an RFSD comes in, it outseizes and connects two channels based on a simple, hard-coded routing algorithm. It performs this function each time a new RFSD is received. It can be used in conjunction with CallSim.

To run SimpleTandem, the switch must be configured with the provided tandem.cfg configuration file.

Please refer to the comments in SimpleTandem.h and SimpleTandem.cpp. These files are provided in PDF format, and you can use the established links to access them.

Process Overview

Initialize a connection to the LLC and inform it of the groups being watched by the application.

Wait for RFSD in <orig> group.

Call the Route Class to get the number from RFSD and check the AreaCode Class to determine the <dest> group to be used.

Create an Outseize Control message and outseize to <dest>.

Upon successful outseizure, connect the inbound and outbound channels.

Upon release of the inbound or outbound channel, release the connected channel and return both channels to the channel manager.

Call Simulator

The CallSim application simulates the endpoints of a tandem call and manages two channel groups, the originating channel group and the destination channel group.

Using the SwitchKit UserTimer message, a timer is set up to outseize a channel from the <orig> group on a regular interval. You can define this interval by passing in the CallDelay argument. Upon succesful outseizure, this channel is parked for a predetermined length of time. You can define the length of time by passing in the CallDuration argument. After CallDuration number of seconds, the channel is released.

To run CallSim, the switch must be configured with the provided tandem.cfg configuration file.

Process Overview

Initialize a Connection with the LLC.

Set the group handler.

Set up a UserTimer message to trigger a certain number of outseizures. This is set by the NumberOfCalls parameter every CallDelay seconds.

Construct the Outseize Control message and outseize.

On receiving positive acknowledgement, park the channel for the CallDuration period of time, and then release the channel.

When the application receives a 'ChannelReleased' message (at genericHandler), the channel is returned.

Illustration Diagram

Call Flow