It is not very clear to me also how the internal mechanisms of OpenH323/H323Plus. One of the key modules of the PTLib (core to the H323Plus) is the implementation of ASN.1 PacketBinary Format. It would be like the equivalent of Java XML bindings, transforming the ASN binary notation in compact binary packages through classes that represent the hierarchy of the package. The methods that you mentioned are used by serializer and deserializer. To disassembly by hand a message from H.323 it is necessary to know what the class the returned PByteBuffer by Get____() belongs.
See the CVS examples for MCU with NAT/Firewall Traversal H.460.18/19, there some H.420 messages are 'raw' manipulated to conform the specification.
2008/11/4 robertp sirex@siology.net
lo,
i've been harnessing the Q931 class of h323plus to decode packets off the wire, however i'm a little confused as to how h323plus decodes the contents of the information elements which are contained within Q931.
i assumed (apparently wrongly) that you would do a check for an element by using Q931.HasIE(), get the byte array of the IE using Q931.GetIE(), then call something like Q931.decodeUserUserIE which returns a structure of some sort which can have methods such as getConferenceGuid() called upon it.
I've done the first few steps upto GetIE(), and i now have a PBYTEARRAY of the IE, but i've no idea what to do with it now to decode its contents in a workable, consistent manner.
I've poured through the h323+ code, but i cant seem to find where the code deals with this problem. perhaps h323pdu plays a role ??
-- To clarify, i'm sniffing packets off the wire, i.e: mid call, so i'm not an endpoint in the call, rather a onlooker. I don't have transport objects or anything such, i just want to decode the packets and view their contents.
- Thanks in advance.