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

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

From: "Anders Broman" <a.broman@xxxxxxxxx>
Date: Thu, 6 Feb 2003 22:28:22 +0100
>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