This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

Spectralink (SRP) encapsulation

0

Hi,

I am analyzing VoIP communications using Spectralink. Wireshark successfully detects IP protocol 119 as Spectralink, unluckily it's not able to dissect the data payload. Since there is no encryption, we can see the RTP contents in the bytes detail, but it's really hard to create filters on multiple conversations based on theses HEX values.

Even if the SRP protocol is quite old, it's still widely used today. I've searched through the site, nobody never created a SRP dissector?

There might be multiple variations, but I've found a common one with 42 bytes overhead, including 2-byte trailer

Regards, Laurent

asked 09 Sep '11, 11:42

yul_analyzer's gravatar image

yul_analyzer
6558
accept rate: 0%


2 Answers:

0

You could wip a LUA dissector together to get the data from the IP proto 119 packets to the RTP dissector.

answered 09 Sep '11, 14:13

Jaap's gravatar image

Jaap ♦
11.7k16101
accept rate: 14%

0

Without a specification for the Spectralink Radio Protocol, nobody can create an SRP dissector! Even if such a protocol specification is available, nobody's likely to create it unless either 1) they have the specification and they need the dissector or 2) they have the specification, they're bored, and they don't have anything more fun to do than write a dissector for the protocol. :-)

answered 09 Sep '11, 23:03

Guy%20Harris's gravatar image

Guy Harris ♦♦
17.4k335196
accept rate: 19%

I might try to create a basic dissector, is it possible to call a dissector inside one? ie. inside the SRP dissector, check if the data payload is recognized e.g as a RTP payload?

(11 Sep '11, 08:00) yul_analyzer

Yes. I'll leave it to you to do the "inside the SRP dissector, check if the data payload is recognized e.g as a RTP payload", but, to call the RTP dissector for that:

  • in your dissector's register_handoff routine, get a handle for the RTP dissector with find_dissector("rtp");

  • when your dissector wants to dissect payload as RTP, construct a tvbuff for the data payload and use call_dissector() using the handle you got from find_dissector().

(11 Sep '11, 10:06) Guy Harris ♦♦