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

Jason Walton <>
Thu Mar 16 17:06:54 CET 2006


I'm new to the world of H.248, so this is probably just me missing 
something, but it looks to me like the BER

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