Ethereal-dev: [Ethereal-dev] [PATCHES] H.323 (H.245/H.225/PER) dissector faults

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

From: "Martin Regner" <martin.regner@xxxxxxxxx>
Date: Sun, 21 Sep 2003 15:25:55 +0200
Hi,

I have attached some patches to solve some problems I have noticed with the packet-per, packet-h245 and packet-h225.

1)
I think that I have solved the problem reported in  http://www.ethereal.com/lists/ethereal-users/200309/msg00178.html.

There was a mistake in dissect_h225_destinationType and there also seems to be some problem with dissect_per_IA5String, that
I have noticed with this capture and some other captures. 

The dissect_per_IA5String solution may need some improvements later on, but it seems to work for the captures I have tested it with.

I have also changed the H.225 dissector to use FT_STRING for the IA5String hf_ entries. 
I think that it is good to have the email-ID and similar shown as strings.

2)
There seems to be a problem with vendorIdentifier in some cases. 
dissect_h245_h221NonStandard_with_extension should be used instead of dissect_h245_h221NonStandard.
I missed this when I made the other changes regarding h221NonStandard.

3)
I have noticed problems with SignalType (out-of-band DTMF) and made a fix for that in packet-h245.c

4)
I also found some small mistakes (OPTIONAL versus NOT_OPTIONAL)  when comparing the code in packet-h225.c with the ASN.1 specification at http://www.packetizer.com/iptel/h323/h2250v5.asn :

ANSI41UIM_sequence/systemid
CapacityReportingSpecification_when_sequence/callStart
ICV_sequence/algorithmOID
NonStandardMessage_sequence/nonStandardData
UnknownMessageResponse_sequence/messageNotUnderstood

I haven't been able to verify these last changes since I didn't find any captures with these items.











Attachment: packet-h245.c.patch
Description: Binary data

Attachment: packet-per.c.patch
Description: Binary data

Attachment: packet-h225.c.patch
Description: Binary data

Attachment: packet-h245.h.patch
Description: Binary data

Frame 1 (112 bytes on wire, 112 bytes captured)
    Arrival Time: Sep 10, 2003 23:07:41.511855000
    Time delta from previous packet: 0.000000000 seconds
    Time since reference or first frame: 0.000000000 seconds
    Frame Number: 1
    Packet Length: 112 bytes
    Capture Length: 112 bytes
    File Offset: 40 (0x28)
Ethernet II, Src: 00:0b:fc:d2:d1:8a, Dst: 00:07:e9:06:83:16
    Destination: 00:07:e9:06:83:16 (Intel_06:83:16)
    Source: 00:0b:fc:d2:d1:8a (Cisco_d2:d1:8a)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 64.7.126.10 (64.7.126.10), Dst Addr: 64.7.121.223 (64.7.121.223)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 98
    Identification: 0x3ba4 (15268)
    Flags: 0x00
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 253
    Protocol: UDP (0x11)
    Header checksum: 0x09ef (correct)
    Source: 64.7.126.10 (64.7.126.10)
    Destination: 64.7.121.223 (64.7.121.223)
User Datagram Protocol, Src Port: 1719 (1719), Dst Port: 1719 (1719)
    Source port: 1719 (1719)
    Destination port: 1719 (1719)
    Length: 78
    Checksum: 0x2516 (correct)
H.225.0 RAS
    RasMessage
        RasMessage: .100 11.. : locationConfirm (19)
            LocationConfirm
                RequestSeqNum: 19536
                CallSignalAddress2
                    CallSignalAddress2: .000 .... : ipAddress (0)
                        ipAddress
                            IP: 65.198.126.141 (65.198.126.141)
                            Port: 1720
                rasAddress
                    rasAddress: .000 .... : ipAddress (0)
                        ipAddress
                            IP: 1.2.3.4 (1.2.3.4)
                            Port: 24000
                destinationType
                    GatewayInfo
                        protocol
                            Item 0
                                SupportedProtocols
                                    SupportedProtocols: .011 1... : voice (7)
                                        VoiceCaps
                    mc: .... ...0 False
                    undefinedNode: 0... .... False
                alternateEndpoints
                    Item 0
                        EndPoint
                            callSignalAddress
                                Item 0
                                    TransportAddress
                                        TransportAddress: .000 .... : ipAddress (0)
                                            ipAddress
                                                IP: 64.7.125.86 (64.7.125.86)
                                                Port: 1720
                            CircuitInfo
                                destinationCircuitID
                                    GroupID
                                        group: csc324
                    Item 1
                        EndPoint
                            callSignalAddress
                                Item 0
                                    TransportAddress
                                        TransportAddress: .000 .... : ipAddress (0)
                                            ipAddress
                                                IP: 64.7.125.85 (64.7.125.85)
                                                Port: 1720
                            CircuitInfo
                                destinationCircuitID
                                    GroupID
                                        group: csc347

Frame 2 (112 bytes on wire, 112 bytes captured)
    Arrival Time: Sep 10, 2003 23:10:47.942778000
    Time delta from previous packet: 186.430923000 seconds
    Time since reference or first frame: 186.430923000 seconds
    Frame Number: 2
    Packet Length: 112 bytes
    Capture Length: 112 bytes
    File Offset: 168 (0xa8)
Ethernet II, Src: 00:0b:fc:d2:d1:8a, Dst: 00:07:e9:06:83:16
    Destination: 00:07:e9:06:83:16 (Intel_06:83:16)
    Source: 00:0b:fc:d2:d1:8a (Cisco_d2:d1:8a)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 64.7.126.10 (64.7.126.10), Dst Addr: 64.7.121.223 (64.7.121.223)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 98
    Identification: 0x3d9a (15770)
    Flags: 0x00
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 253
    Protocol: UDP (0x11)
    Header checksum: 0x07f9 (correct)
    Source: 64.7.126.10 (64.7.126.10)
    Destination: 64.7.121.223 (64.7.121.223)
User Datagram Protocol, Src Port: 1719 (1719), Dst Port: 1719 (1719)
    Source port: 1719 (1719)
    Destination port: 1719 (1719)
    Length: 78
    Checksum: 0x2413 (correct)
H.225.0 RAS
    RasMessage
        RasMessage: .100 11.. : locationConfirm (19)
            LocationConfirm
                RequestSeqNum: 19537
                CallSignalAddress2
                    CallSignalAddress2: .000 .... : ipAddress (0)
                        ipAddress
                            IP: 65.198.126.144 (65.198.126.144)
                            Port: 1720
                rasAddress
                    rasAddress: .000 .... : ipAddress (0)
                        ipAddress
                            IP: 1.2.3.4 (1.2.3.4)
                            Port: 24000
                destinationType
                    GatewayInfo
                        protocol
                            Item 0
                                SupportedProtocols
                                    SupportedProtocols: .011 1... : voice (7)
                                        VoiceCaps
                    mc: .... ...0 False
                    undefinedNode: 0... .... False
                alternateEndpoints
                    Item 0
                        EndPoint
                            callSignalAddress
                                Item 0
                                    TransportAddress
                                        TransportAddress: .000 .... : ipAddress (0)
                                            ipAddress
                                                IP: 64.7.125.86 (64.7.125.86)
                                                Port: 1720
                            CircuitInfo
                                destinationCircuitID
                                    GroupID
                                        group: csc324
                    Item 1
                        EndPoint
                            callSignalAddress
                                Item 0
                                    TransportAddress
                                        TransportAddress: .000 .... : ipAddress (0)
                                            ipAddress
                                                IP: 64.7.125.85 (64.7.125.85)
                                                Port: 1720
                            CircuitInfo
                                destinationCircuitID
                                    GroupID
                                        group: csc347

Frame 3 (114 bytes on wire, 114 bytes captured)
    Arrival Time: Sep 10, 2003 23:14:09.072265000
    Time delta from previous packet: 201.129487000 seconds
    Time since reference or first frame: 387.560410000 seconds
    Frame Number: 3
    Packet Length: 114 bytes
    Capture Length: 114 bytes
    File Offset: 296 (0x128)
Ethernet II, Src: 00:0b:fc:d2:d1:8a, Dst: 00:07:e9:06:83:16
    Destination: 00:07:e9:06:83:16 (Intel_06:83:16)
    Source: 00:0b:fc:d2:d1:8a (Cisco_d2:d1:8a)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 64.7.126.10 (64.7.126.10), Dst Addr: 64.7.121.223 (64.7.121.223)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 100
    Identification: 0x3fe8 (16360)
    Flags: 0x00
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 253
    Protocol: UDP (0x11)
    Header checksum: 0x05a9 (correct)
    Source: 64.7.126.10 (64.7.126.10)
    Destination: 64.7.121.223 (64.7.121.223)
User Datagram Protocol, Src Port: 1719 (1719), Dst Port: 1719 (1719)
    Source port: 1719 (1719)
    Destination port: 1719 (1719)
    Length: 80
    Checksum: 0x8d85 (correct)
H.225.0 RAS
    RasMessage
        RasMessage: .100 11.. : locationConfirm (19)
            LocationConfirm
                RequestSeqNum: 19538
                CallSignalAddress2
                    CallSignalAddress2: .000 .... : ipAddress (0)
                        ipAddress
                            IP: 64.7.125.86 (64.7.125.86)
                            Port: 1720
                rasAddress
                    rasAddress: .000 .... : ipAddress (0)
                        ipAddress
                            IP: 1.2.3.4 (1.2.3.4)
                            Port: 24000
                destinationType
                    GatewayInfo
                        protocol
                            Item 0
                                SupportedProtocols
                                    SupportedProtocols: .011 1... : voice (7)
                                        VoiceCaps
                    mc: .... ...0 False
                    undefinedNode: 0... .... False
                alternateEndpoints
                    Item 0
                        EndPoint
                            callSignalAddress
                                Item 0
                                    TransportAddress
                                        TransportAddress: .000 .... : ipAddress (0)
                                            ipAddress
                                                IP: 65.198.126.141 (65.198.126.141)
                                                Port: 1720
                            CircuitInfo
                                destinationCircuitID
                                    GroupID
                                        group: ussakc12
                    Item 1
                        EndPoint
                            callSignalAddress
                                Item 0
                                    TransportAddress
                                        TransportAddress: .000 .... : ipAddress (0)
                                            ipAddress
                                                IP: 64.7.125.85 (64.7.125.85)
                                                Port: 1720
                            CircuitInfo
                                destinationCircuitID
                                    GroupID
                                        group: csc347