The Corelatus Blog
E1/T1 and SDH/SONET telecommunications

Perl example code for GTH: SS7 ISUP decoding and playback/record

Posted May 28th 2009

To help people get started, has some example code for doing useful things with GTH units.

Now it also has Perl example code. It does the same thing as the python examples:

It's built on top of a Perl module which provides a Perl API for a subset of the GTH API.

A quick example

Here's a quick example of how it's used. We want to enable (turn on) the first E1/T1 interface on a GTH module:

my $api = gth_control->new($host);
$api->send("<set name='pcm$span'><attribute name='mode' value='E1'/></set>");
defined $api->next_non_event()->{ok} || die("error from GTH (bogus PCM?)");

It's good for experimenting.

The Perl module the examples are based on,, is at a level which makes it useful for experiments and prototypes. To build a full-fledged product on top of it, more work is needed.

For a start, you'd probably want to move the XML generation (like the '<set name=...' code above) out of the application code and into the module, thus making it a pure Perl interface.

Next, you need to come up with a strategy to deal with concurrency, because being limited to recording one timeslot at a time is fine for lab work, but not fine for (say) a voicemail system.


The zipfile of the code is linked from the bottom of the API page.

Permalink | Tags: GTH