Error in BER encoding of Megaco messages? What am I missing?

Micael Karlberg <>
Fri Mar 17 11:35:23 CET 2006


Hi,

I think that the binary (ber) messages included in the measurement
is broken. A couple of versions back I found a bug in the name
transator module(s) that did exactly what you describe. But, when
I fixed the bug I forgot to regenerate the ber messages.

Try to regenerate the ber messages from the text messages (done
with the transform module).

/BMK

Jason Walton wrote:
> I'm new to the world of H.248, so this is probably just me missing
> something, but it looks to me like the erlang BER encoder is writing 
> strange values for package IDs.
> 
> I was looking at the example messages provided from the H.248 Erlang
> encoding/decoding performance comparison
> (http://www.erlang.org/project/megaco/encoding_comparison-v4/encoded_messages). 
> 
> Specifically, I was looking at ber/msg08a.bin.  The text version of the
> message (pretty/msg08a.txt) contains an events descriptor, containing
> events "al/on" and "dd/ce", and a signals descriptor, containing the
> signal "cg/rt".
> 
> When I look at the BER encoded message (with a program using asn1c, an
> open source C-based ASN.1 compiler), however, I'm seeing events with
> pkgdName 0x0009/0x0004, 0x0004/0x0004, and a signal with pkgdName
> 0x0005/0x0031.  In all cases, the second half of the pkgdName is what I
> would expect it to be, but the (with the exception of al/on) the
> pacakgeID (the first half) looks wrong to me.
> 
> Take the "dd/ce" to start with.  The packageID for dd is 0x0006.  The
> packageID in the BER encoded message is 0x0004, which is tonedet (dd
> extends tonedet).  According to RFC 3525 6.2.3, I should be able to
> refer to events in a base package using the extended package name (so I
> should be able to reference dd/tl or tonedet/tl, for example), but it
> makes no reference of doing the reverse; accessing an event defined in
> one package using the name of the base package.
> 
> The Signal "cg/rt" is right out; 0x0005 is the package ID for dg, not
> cg, and dg doesn't define an event 0x0031.  The only common link I can
> find between these two packages is that they both extend tonegen.
> 
> What's going on here?  Is the Erlang Megaco stack horribly broken, or
> (more likely) am I just completely missing something here?
> 
> 
> 



More information about the erlang-questions mailing list