Ethereal-dev: Re: [Ethereal-dev] Changed cause code "strings " in packet-q931to conform to q.8

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Michael Tuexen <Michael.Tuexen@xxxxxxxxxxxxxxxxx>
Date: Fri, 7 Feb 2003 00:41:17 +0100
Dear all,

I have not have the specs on my table but ISUP and Q.931 are different
protocols. They are related, but defined in different ITU specs. As far
as I know the tables used in the ISUP dissector are taken from the
ITU ISUP spec. So the tables in the ISUP dissector should only be changed if they are taken incorrectly from the ITU spec. I'm not familiar with the
q.931 dissector.

Best regards
Michael

On Thursday, Feb 6, 2003, at 22:28 Europe/Berlin, Anders Broman wrote:



On Thu, Feb 06, 2003 at 05:05:26PM +0100, Anders Broman (EAB) wrote:
Included changes in q.931 dissector to conform to q.850 cause codes +

Unfortunately, that will, I presume, render the Q.931 dissector less
useful for dissecting, well, regular ISDN Q.931 traffic, and probably
H.323 traffic as wel, as it won't correctly dissect cause codes in that
traffic.

Reading the specs. ( Q931. Q7.. (forgot the exact no 761 ?) ( ISDN)) I was
under the impression that they both use
the same caus code interpretation e.g Q850, the current interpretation does
not fully conform.
Even one of the references ( I only checked out one )
http://www.andrews-arnold.co.uk/isdn/q931cause.html
Which is actually changed to http://aa.nu/q931cause.html has different
interpretation than the dissector.
Example :
	{ 0x08,	"Prefix 0 dialed but not allowed" },
	{ 0x09,	"Prefix 1 dialed but not allowed" },

  Cause No. 8 - Preemption This cause indicates that the call is being
preempted.
Cause No. 9 - Preemption - circuit reserved for reuse This cause indicates
that the call is being preempted and the
circuit is reserved for reuse by the preempting
exchange.


Instead, what should probably be done is:

	have a "dissect_cause_ie()" routine that takes a tvbuff_t *, an
	offset, a length, a proto_tree *, *and* a const value_string *
	as arguments - it's code would be what's in
	"dissect_q931_cause_ie()", except that it uses the specified
	value_string table to dissect the cause code;

	the Q.931 dissector should call it with the current cause code
	value_string table, which should not be modified;

	the ISUP dissector should call it with a new Q.850 cause code
	value_string table.


If in fact they should both use the same table it would be efficient to have
it in one place.
There is alos other elements in the ISUP dissector that refers to Q931 so
the next step would be
to get them intrepeted by the Q931 dissector ( Example Access transport,
UUI, and User service information ).

Also, you should submit your changes as patches rather than as new
versions of the source file, if possible - we could generate the patch
from your source, and apply it, if the Q.931 dissector happens to change
after you make your changes, but that's a bit inconvenient.

I'll try and do it right next time, if the change is accepted.

Best regards
Anders

_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev