Official wiki page on GSMTAP created
I've come up with GSMTAP about two years ago while working on airprobe. The goal was to have something
similar to what radiotap does in
the wifi world: A pseudo-header that adds additional information and context
that is not present in the actual message.
Initially, GSMTAP was intended to be a separate link-layer type in the pcap
file format, but this would preclude its use in real-time protocol analysis.
So I modified it to be encapsulated in UDP packets, which are sent and received
using normal UDP/IP sockets.
Over recent years, GSMTAP has not only been integrated into multiple programs
of the airprobe project, but is also understood by wireshark. OpenBTS has also decided to
adopt the format and can generate GSMTAP messages for debugging purposes.
After creating OsmocomBB, it was taught
how to generate GSMTAP messages very quickly, too.
So by now, at least when it comes to Free Software, it is definitely the
de-facto standard for capturing/transmitting and analyzing protocol messages
from the GSM air interface.
However, until now, there has never been any official "homepage" of the GSMTAP
header. This has changed now, the GSMTAP homepage is now part
of the OsmocomBB wiki.
Playing more with Erlang
Last year I started to occasionally play with Erlang. People who know me as
die-hard C coder who tries to avoid C++, Java and Python wherever possible
will probably be surprised here now.
I have no intention of changing my general position on programming languages. I
don't feel comfortable using something where I don't know and/or understand the
immediate impact on how this code will be executed on the actual silicon.
However, if you have a need to play with anything that uses ASN.1, but
particularly the aligned/unaligned PER encoding variants, then it is pretty
clear that there is nothing available as Free Software that can compare to the
Erlang asn1ct/asn1rt modules.
At that time last year I was doing some rapid prototyping with the RANAP protocol,
and the progress was quite quick. I never had time to return to that project,
so it (and my Erlang skills) were left dormant.
In recent weeks, I have picked Erlang up again - again to work on ASN.1 encoded
messages: This time TCAP and MAP. While we still need the in-progress TCAP+MAP
implementation in C for OsmoSGSN, there are other tasks at hand where an
Erlang-based implementation might yield a much higher productivity.
So right now I'm working on a program that parses/decodes and iterates through
every MAP component in a TCAP message and replaces certain fields, re-encodes
the entire message and sends it off the wire. Once that is done, I think I'll
actually try to do a more complete TCAP server and implement a simplistic HLR
for OsmoSGSN testing.