Ethereal-dev: [Ethereal-dev] RE: [Ethereal-users] Problem with h245 dissector

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

From: "Paul Higgs (CA/EUS)" <paul.higgs@xxxxxxxxxxxx>
Date: Wed, 19 Nov 2003 19:38:34 -0600
Hi Guy

I'm guessing (my first look at the code was yesterday) that the "dissect_per_restricted_character_string()" is designed for something else (of is broken for single character representation)

Basically I modified dissect_h245_signalType to be

static int
dissect_h245_signalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
{
	offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h245_signalType, 1, 1;

	return offset;
}
and the results of the decode were exactly as I expected ( signalType: ! ) but of course without any validity check.

Having some dissect_per_restricted_IA5string() function would be the better overall solution.

Paul

-----Original Message-----
From: Guy Harris [mailto:guy@xxxxxxxxxxxx]
Sent: Wednesday, November 19, 2003 4:24 PM
To: Paul Higgs (CA/EUS)
Cc: 'ethereal-dev@xxxxxxxxxxxx'; 'ethereal-users@xxxxxxxxxxxx' Users
Subject: Re: [Ethereal-users] Problem with h245 dissector



On Nov 19, 2003, at 10:47 AM, Paul Higgs (CA/EUS) wrote:

> I have found a problem with the dissector for H245 in regards to 
> displaying the signalType of a UserInputIndication. The signalType 
> prints as a ? when it is actually an !
>
> H.225.0 CS
>     H323_UserInformation
>         H323_UU_PDU
>             h323_message_body
>                 h323_message_body: .... .110 : facility (6)
>                     FacilityUUIE
>                         ProtocolIdentifier: 0.0.8.2250.0.4
>                         FacilityReason
>                             transportedInformation
>                         CallIdentifier
>                             guid: 2AFA51A97C0000102143204166275475
>                         multipleCalls: 0... .... False
>                         maintainConnection: 0... .... False
>             h245Tunneling: 1... .... True
>             h245Control
>                 Item 0
>                     Octet String Length: 7
>                     H.245
>                         MultimediaSystemControlMessage
>                             PDU Type: .11. .... : Indication (3)
>                                 IndicationMessage
>                                     Indication Type: .... 1101 : 
> UserInputIndication (13)
>                                         UserInputIndication
>                                             signal
>                                                 
> UserInputIndication_signal
>                                                     signalType: ?
>                                                     duration: 400
>
> 0000  00 80 37 84 fb 9c 00 10 b5 75 ac 1d 08 00 45 00   
> ..7......u....E.
> 0010  00 6a bb 17 40 00 80 06 93 e7 c0 a8 15 32 c0 a8   
> [email protected]..
> 0020  15 0c 75 5a 0f a1 e5 77 18 df 95 c4 e6 f4 50 18   
> ..uZ...w......P.
> 0030  43 3a b0 d2 00 00 03 00 00 42 08 02 12 76 62 1c   
> C:.......B...vb.
> 0040  00 7e 00 34 05 26 80 06 00 08 91 4a 00 04 86 01   
> .~.4.&.....J....
> 0050  00 1f 01 80 11 00 2a fa 51 a9 7c 00 00 10 21 43   
> ......*.Q.|...!C
> 0060  20 41 66 27 54 75 01 00 01 00 10 c0 01 80 09 01    
> Af'Tu..........
> 0070  07 6d 81 04 44 20 01 8f                           .m..D ..
>
> I looked in the codebase and it seems that this element is not 
> dissceted as an IA5string but with some other method.

It's dissected as a restricted character string - but the set of 
characters in that string includes "!".

What does the H.245 spec say that element is?  And, if it's a 
restricted character string:

	1) what's the alphabet for it?

	2) what's the numerical value of the first (and only) character in it)?

According to

	http://www.packetizer.com/iptel/h245/h245_asn.html

the ASN.1 for it is

	signalType
                 IA5String(SIZE (1) ^ FROM ("0123456789#*ABCD!")),

but the alphabet string passed to 
"dissect_per_restricted_character_string()" is "!#*0123456789ABCD".