Parsing vendor id information, C-16 – Polycom SOUNDPOINT SIP 2.2.0 User Manual
Page 240
Administrator’s Guide SoundPoint IP / SoundStation IP
C - 16
Parsing Vendor ID Information
After the phone boot, it sends a DHCP Discover packet to the DHCP server.
This is found in the Bootstrap Protocol/option "Vendor Class Identifier"
section of the packet and includes the phone’s part number and the bootROM
version. The format of this option's data is not specified in RFC 2132, but is left
to each vendor to define its own format. To be useful, every vendor's format
must be distinguishable from every other vendor's format. To make our
format uniquely identifiable, the format follows RFC 3925, which uses the
IANA Private Enterprise number to determine which vendor's format should
be used to decode the remaining data. The private enterprise number assigned
to Polycom is 13885 (0x0000363D).
This vendor ID information is not a character string, but an array of binary
data. The steps for parsing are as follows:
1.
Check for the Polycom signature at the start of the option:
4 octet: 00 00 36 3d
2.
Get the length of the entire list of sub-options:
1 octet
3.
Read the field code and length of the first sub-option, 1+1 octets
4.
If this is a field you want to parse, save the data.
5.
Skip to the start of the next sub-option.
6.
Repeat steps 3 to 5 until you have all the data or you encounter the
End-of-Suboptions code (0xFF).
For example, the following is a sample decode of a packet from an IP601:
3c 74
- Option 60, length of Option data (part of the DHCP spec.)
00 00 36 3d
- Polycom signature (always 4 octects)
6f
- Length of Polycom data
01 07 50 6f 6c 79 63 6f 6d
- sub-option 1 (company), length, "Polycom"
02 15 53 6f 75 6e 64 50 6f 69 6e 74 49 50 2d 53 50 49 50 5f 36 30 31
- sub-option 2 (part), length, "SoundPointIP-SPIP_601"
03 10 32 33 34 35 2d 31 31 36 30 35 2d 30 30 31 2c 32
- sub-option 3 (part number), length, "2345-11605-001,2"
04 1c 53 49 50 2f 54 69 70 2e 58 58 58 58 2f 30 38 2d 4a 75 6e 2d 30 37
20 31 30 3a 34 34
- sub-option 4 (Application version), length, "SIP/Tip.XXXX/08-Jun-07
10:44"
05 1d 42 52 2f 33 2e 31 2e 30 2e 58 58 58 58 2f 32 38 2d 41 70 72 2d 30
35 20 31 33 3a 33 30
- sub-option 5 (BootROM version), length, "BR/3.1.0.XXXX/28-Apr-05
13:30"
ff