> 1 How to let the TCP dissector know we want the H.225 port dissected by
> the Q.931 dissector
Register "dissect_h2250()" with "dissector_add()" in the handoff
initialization routine of "packet-h323.c" or "packet-h2250.c" or
whatever...
> 2 How to let the Q.931 dissector know that we want to decode a specific
> type of UUIE to be decoded by my H.225 dissector.
...and have "dissect_h225()" call "dissect_q931_uu()", passing it the usual
arguments plus a pointer to a routine to be called to dissect the
User-to-User IEs. Turn "dissect_q931()" into "dissect_q931_uu()", and
make "dissect_q931()" call "dissect_q931_uu()" with a null routine
pointer, which should tell "dissect_q931_uu()" not to do anything fancy
with User-to-User IEs.
> Nr. 2 is easy and difficult at the same time. I can detect if it's H.225, but how do I let the
> Q931 dissector call my plug-in dissector? I think I'll have to add a Q931.UUIEType
> display filter string and let the plug-in use that. But how do I make the Q.931 dissector
> dissect my packets first based on the tcp port?
>
> I tried calling dissect-q931() itself, but that gave me a very weird linker
> error, i'll try and investigate this further....
If you're doing this as a plugin under Windows, you have to export any
functions called from the plugins via the "plugin_api" hack.
I wouldn't do the H.323 stuff as a plugin, however - I'd just make it a
standard dissector, assuming it's something that can go into the
Ethereal source code base.