poniedziałek, 31 października 2011

GTP prime library for Java (3GPP 32.295)

Recently I needed to have a client application for a GTP' external system. I did some research on the web but unfortunately did not find anything usable for me (found one java library on kenai.com but the implementation is in very early phase, the other was open-cgf written in Erlang for which I found two obstacles the language + crash dumps when it was starting up on my Ubuntu Natty 64-bit box). Having some development background from the past and having a look on the 3GPP 32.295 specification I decided that it is not a big amount of effort to implement it. I think this is a good opportunity to learn the protocol and additionally check the JBoss Netty framework - which seems to be a perfect match for such a solution. Indeed writing a client/server application using JBoss Netty is pretty straightforward (I will try to provide more details in another article) - it mainly about writing proper encoder/decoder and handlers.

The outcome can be found in the google code under the link: http://code.google.com/p/gtpprime/.

2 komentarze:

  1. I found your post here and cloned the repo. Unfortunately, running mvn -U clean package fails during the build process due to a compilation error. Any thoughts?

    OdpowiedzUsuń
  2. Thanks a lot for the comment.I have opened an issue against this problem: https://code.google.com/p/gtpprime/issues/detail?id=1

    Generally the error came from the gtpprime-asn1cdr module. The module itself is rather experimental aimed to decode the payload coming within the GTP' data transfer messages. The issue is that the ASN.1 class generator (jzkit) used in the pom.xml file in this module does not support all the standard ASN.1 types (e.g. SET), which is part of the 3GPP 32.298 CDR definition...

    I have just committed update version of pom.xml for this module (with disabled ASN.1 class generation)... Now you should be able to compile and use the other modules (responsible for handling the GTP' messages).

    OdpowiedzUsuń