aboutsummaryrefslogtreecommitdiffstats
path: root/packet-skinny.c
diff options
context:
space:
mode:
authorGilbert Ramirez <gram@alumni.rice.edu>2004-07-18 18:06:47 +0000
committerGilbert Ramirez <gram@alumni.rice.edu>2004-07-18 18:06:47 +0000
commit669db206cb1f270046ad400fff7655e20c63e723 (patch)
tree4eff24a2e16c8963e497e1fc575f35e6af59bd26 /packet-skinny.c
parentae46c27a38700af669ef907491081f09df6f6b2c (diff)
downloadwireshark-669db206cb1f270046ad400fff7655e20c63e723.tar.gz
wireshark-669db206cb1f270046ad400fff7655e20c63e723.tar.bz2
wireshark-669db206cb1f270046ad400fff7655e20c63e723.zip
Move dissectors to epan/dissectors directory.
Also move ncp222.py, x11-fields, process-x11-fields.pl, make-reg-dotc, and make-reg-dotc.py. Adjust #include lines in files that include packet-*.h files. svn path=/trunk/; revision=11410
Diffstat (limited to 'packet-skinny.c')
-rw-r--r--packet-skinny.c4402
1 files changed, 0 insertions, 4402 deletions
diff --git a/packet-skinny.c b/packet-skinny.c
deleted file mode 100644
index ff8b025799..0000000000
--- a/packet-skinny.c
+++ /dev/null
@@ -1,4402 +0,0 @@
-/* packet-skinny.c
- *
- * Dissector for the Skinny Client Control Protocol
- * (The "D-Channel"-Protocol for Cisco Systems' IP-Phones)
- * Copyright 2001, Joerg Mayer (email: see AUTHORS file)
- *
- * Paul E. Erkkila (pee@erkkila.org) - fleshed out the decode
- * skeleton to report values for most message/message fields.
- * Much help from Guy Harris on figuring out the ethereal api.
- *
- * This file is based on packet-aim.c, which is
- * Copyright 2000, Ralf Hoelzer <ralf@well.com>
- *
- * $Id$
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/* This implementation is based on a draft version of the 3.0
- * specification
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <string.h>
-
-#include <epan/packet.h>
-#include "prefs.h"
-
-#include "packet-rtp.h"
-#include "packet-tcp.h"
-
-#define TCP_PORT_SKINNY 2000
-
-#define SKINNY_SOFTKEY0 0x01
-#define SKINNY_SOFTKEY1 0x02
-#define SKINNY_SOFTKEY2 0x04
-#define SKINNY_SOFTKEY3 0x08
-#define SKINNY_SOFTKEY4 0x10
-#define SKINNY_SOFTKEY5 0x20
-#define SKINNY_SOFTKEY6 0x40
-#define SKINNY_SOFTKEY7 0x80
-#define SKINNY_SOFTKEY8 0x100
-#define SKINNY_SOFTKEY9 0x200
-#define SKINNY_SOFTKEY10 0x400
-#define SKINNY_SOFTKEY11 0x800
-#define SKINNY_SOFTKEY12 0x1000
-#define SKINNY_SOFTKEY13 0x2000
-#define SKINNY_SOFTKEY14 0x4000
-#define SKINNY_SOFTKEY15 0x8000
-
-/* KeyMap Show/No Show */
-static const true_false_string softKeyMapValues = {
- "Show",
- "Do Not Show"
-};
-
-
-/* I will probably need this again when I change things
- * to function pointers, but let me use the existing
- * infrastructure for now
- *
- * typedef struct {
- * guint32 id;
- * char * name;
- * } message_id_t;
- */
-
-static const value_string message_id[] = {
-
- /* Station -> Callmanager */
- {0x0000, "KeepAliveMessage"},
- {0x0001, "RegisterMessage"},
- {0x0002, "IpPortMessage"},
- {0x0003, "KeypadButtonMessage"},
- {0x0004, "EnblocCallMessage"},
- {0x0005, "StimulusMessage"},
- {0x0006, "OffHookMessage"},
- {0x0007, "OnHookMessage"},
- {0x0008, "HookFlashMessage"},
- {0x0009, "ForwardStatReqMessage"},
- {0x000A, "SpeedDialStatReqMessage"},
- {0x000B, "LineStatReqMessage"},
- {0x000C, "ConfigStatReqMessage"},
- {0x000D, "TimeDateReqMessage"},
- {0x000E, "ButtonTemplateReqMessage"},
- {0x000F, "VersionReqMessage"},
- {0x0010, "CapabilitiesResMessage"},
- {0x0011, "MediaPortListMessage"},
- {0x0012, "ServerReqMessage"},
- {0x0020, "AlarmMessage"},
- {0x0021, "MulticastMediaReceptionAck"},
- {0x0022, "OpenReceiveChannelAck"},
- {0x0023, "ConnectionStatisticsRes"},
- {0x0024, "OffHookWithCgpnMessage"},
- {0x0025, "SoftKeySetReqMessage"},
- {0x0026, "SoftKeyEventMessage"},
- {0x0027, "UnregisterMessage"},
- {0x0028, "SoftKeyTemplateReqMessage"},
- {0x0029, "RegisterTokenReq"},
- {0x002A, "MediaTransmissionFailure"},
- {0x002B, "HeadsetStatusMessage"},
- {0x002C, "MediaResourceNotification"},
- {0x002D, "RegisterAvailableLinesMessage"},
- {0x002E, "DeviceToUserDataMessage"},
- {0x002F, "DeviceToUserDataResponseMessage"},
- {0x0030, "UpdateCapabilitiesMessage"},
- {0x0031, "OpenMultiMediaReceiveChannelAckMessage"},
- {0x0032, "ClearConferenceMessage"},
- {0x0033, "ServiceURLStatReqMessage"},
- {0x0034, "FeatureStatReqMessage"},
- {0x0035, "CreateConferenceResMessage"},
- {0x0036, "DeleteConferenceResMessage"},
- {0x0037, "ModifyConferenceResMessage"},
- {0x0038, "AddParticipantResMessage"},
- {0x0039, "AuditConferenceResMessage"},
- {0x0040, "AuditParticipantResMessage"},
- {0x0041, "DeviceToUserDataVersion1Message"},
- {0x0042, "DeviceToUserDataResponseVersion1Message"},
-
- /* Callmanager -> Station */
- /* 0x0000, 0x0003? */
- {0x0081, "RegisterAckMessage"},
- {0x0082, "StartToneMessage"},
- {0x0083, "StopToneMessage"},
- {0x0085, "SetRingerMessage"},
- {0x0086, "SetLampMessage"},
- {0x0087, "SetHkFDetectMessage"},
- {0x0088, "SetSpeakerModeMessage"},
- {0x0089, "SetMicroModeMessage"},
- {0x008A, "StartMediaTransmission"},
- {0x008B, "StopMediaTransmission"},
- {0x008C, "StartMediaReception"},
- {0x008D, "StopMediaReception"},
- {0x008F, "CallInfoMessage"},
- {0x0090, "ForwardStatMessage"},
- {0x0091, "SpeedDialStatMessage"},
- {0x0092, "LineStatMessage"},
- {0x0093, "ConfigStatMessage"},
- {0x0094, "DefineTimeDate"},
- {0x0095, "StartSessionTransmission"},
- {0x0096, "StopSessionTransmission"},
- {0x0097, "ButtonTemplateMessage"},
- {0x0098, "VersionMessage"},
- {0x0099, "DisplayTextMessage"},
- {0x009A, "ClearDisplay"},
- {0x009B, "CapabilitiesReqMessage"},
- {0x009C, "EnunciatorCommandMessage"},
- {0x009D, "RegisterRejectMessage"},
- {0x009E, "ServerResMessage"},
- {0x009F, "Reset"},
- {0x0100, "KeepAliveAckMessage"},
- {0x0101, "StartMulticastMediaReception"},
- {0x0102, "StartMulticastMediaTransmission"},
- {0x0103, "StopMulticastMediaReception"},
- {0x0104, "StopMulticastMediaTransmission"},
- {0x0105, "OpenReceiveChannel"},
- {0x0106, "CloseReceiveChannel"},
- {0x0107, "ConnectionStatisticsReq"},
- {0x0108, "SoftKeyTemplateResMessage"},
- {0x0109, "SoftKeySetResMessage"},
- {0x0110, "SelectSoftKeysMessage"},
- {0x0111, "CallStateMessage"},
- {0x0112, "DisplayPromptStatusMessage"},
- {0x0113, "ClearPromptStatusMessage"},
- {0x0114, "DisplayNotifyMessage"},
- {0x0115, "ClearNotifyMessage"},
- {0x0116, "ActivateCallPlaneMessage"},
- {0x0117, "DeactivateCallPlaneMessage"},
- {0x0118, "UnregisterAckMessage"},
- {0x0119, "BackSpaceReqMessage"},
- {0x011A, "RegisterTokenAck"},
- {0x011B, "RegisterTokenReject"},
-
- {0x011C, "StartMediaFailureDetection"},
- {0x011D, "DialedNumberMessage"},
- {0x011E, "UserToDeviceDataMessage"},
- {0x011F, "FeatureStatMessage"},
- {0x0120, "DisplayPriNotifyMessage"},
- {0x0121, "ClearPriNotifyMessage"},
- {0x0122, "StartAnnouncementMessage"},
- {0x0123, "StopAnnouncementMessage"},
- {0x0124, "AnnouncementFinishMessage"},
- {0x0127, "NotifyDtmfToneMessage"},
- {0x0128, "SendDtmfToneMessage"},
- {0x0129, "SubscribeDtmfPayloadReqMessage"},
- {0x012A, "SubscribeDtmfPayloadResMessage"},
- {0x012B, "SubscribeDtmfPayloadErrMessage"},
- {0x012C, "UnSubscribeDtmfPayloadReqMessage"},
- {0x012D, "UnSubscribeDtmfPayloadResMessage"},
- {0x012E, "UnSubscribeDtmfPayloadErrMessage"},
- {0x012F, "ServiceURLStatMessage"},
- {0x0130, "CallSelectStatMessage"},
- {0x0131, "OpenMultiMediaChannelMessage"},
- {0x0132, "StartMultiMediaTransmission"},
- {0x0133, "StopMultiMediaTransmission"},
- {0x0134, "MiscellaneousCommandMessage"},
- {0x0135, "FlowControlCommandMessage"},
- {0x0136, "CloseMultiMediaReceiveChannel"},
- {0x0137, "CreateConferenceReqMessage"},
- {0x0138, "DeleteConferenceReqMessage"},
- {0x0139, "ModifyConferenceReqMessage"},
- {0x013A, "AddParticipantReqMessage"},
- {0x013B, "DropParticipantReqMessage"},
- {0x013C, "AuditConferenceReqMessage"},
- {0x013D, "AuditParticipantReqMessage"},
- {0x013F, "UserToDeviceDataVersion1Message"},
-
- {0 , NULL} /* terminator */
-};
-
-/*
- * Device type to text conversion table
- */
-static const value_string deviceTypes[] = {
- {1 , "30SPplus"},
- {2 , "12SPplus"},
- {3 , "12SP"},
- {4 , "12"},
- {5 , "30VIP"},
- {6 , "Telecaster"},
- {7 , "TelecasterMgr"},
- {8 , "TelecasterBus"},
- {9 , "Polycom"},
- {10 , "VGC"},
- {12 , "ATA"},
- {20 , "Virtual30SPplus"},
- {21 , "PhoneApplication"},
- {30 , "AnalogAccess"},
- {40 , "DigitalAccessPRI"},
- {41 , "DigitalAccessT1"},
- {42 , "DigitalAccessTitan2"},
- {43 , "DigitalAccessLennon"},
- {47 , "AnalogAccessElvis"},
- {50 , "ConferenceBridge"},
- {51 , "ConferenceBridgeYoko"},
- {52 , "ConferenceBridgeDixieLand"},
- {53 , "ConferenceBridgeSummit"},
- {60 , "H225"},
- {61 , "H323Phone"},
- {62 , "H323Trunk"},
- {70 , "MusicOnHold"},
- {71 , "Pilot"},
- {72 , "TapiPort"},
- {73 , "TapiRoutePoint"},
- {80 , "VoiceInBox"},
- {81 , "VoiceInboxAdmin"},
- {82 , "LineAnnunciator"},
- {83 , "SoftwareMtpDixieLand"},
- {84 , "CiscoMediaServer"},
- {85 , "ConferenceBridgeFlint"},
- {90 , "RouteList"},
- {100, "LoadSimulator"},
- {110, "MediaTerminationPoint"},
- {111, "MediaTerminationPointYoko"},
- {112, "MediaTerminationPointDixieLand"},
- {113, "MediaTerminationPointSummit"},
- {120, "MGCPStation"},
- {121, "MGCPTrunk"},
- {122, "RASProxy"},
- {125, "Trunk"},
- {126, "Annunciator"},
- {127, "MonitorBridge"},
- {128, "Recorder"},
- {129, "MonitorBridgeYoko"},
- {131, "SipTrunk"},
- {254, "UnknownMGCPGateway"},
- {255, "NotDefined"},
- { 0 , NULL}
-};
-
-/*
- * keypad button -> text conversion
- */
-static const value_string keypadButtons[] = {
- {0x0 , "Zero"},
- {0x1 , "One"},
- {0x2 , "Two"},
- {0x3 , "Three"},
- {0x4 , "Four"},
- {0x5 , "Five"},
- {0x6 , "Six"},
- {0x7 , "Seven"},
- {0x8 , "Eight"},
- {0x9 , "Nine"},
- {0xa , "A"},
- {0xb , "B"},
- {0xc , "C"},
- {0xd , "D"},
- {0xe , "Star"},
- {0xf , "Pound"},
- {0 , NULL}
-};
-
-static const value_string deviceStimuli[] = {
- {1 , "LastNumberRedial"},
- {2 , "SpeedDial"},
- {3 , "Hold"},
- {4 , "Transfer"},
- {5 , "ForwardAll"},
- {6 , "ForwardBusy"},
- {7 , "ForwardNoAnswer"},
- {8 , "Display"},
- {9 , "Line"},
- {0xa , "T120Chat"},
- {0xb , "T120Whiteboard"},
- {0xc , "T120ApplicationSharing"},
- {0xd , "T120FileTransfer"},
- {0xe , "Video"},
- {0xf , "VoiceMail"},
- {0x10 , "AutoAnswerRelease"},
- {0x11 , "AutoAnswer"},
- {0x12 , "Select"},
- {0x13 , "Privacy"},
- {0x14 , "ServiceURL"},
- {0x1B , "MaliciousCall"},
- {0x21 , "GenericAppB1"},
- {0x22 , "GenericAppB2"},
- {0x23 , "GenericAppB3"},
- {0x24 , "GenericAppB4"},
- {0x25 , "GenericAppB5"},
- {0x7b , "MeetMeConference"},
- {0x7d , "Conference=0x7d"},
- {0x7e , "CallPark=0x7e"},
- {0x7f , "CallPickup"},
- {0x80 , "GroupCallPickup=80"},
- {0,NULL}
-};
-
-
-/* Note i'm only using 7 later on cuz i'm lazy ;) */
-#define DeviceMaxCapabilities 18 /* max capabilities allowed in Cap response message */
-
-static const value_string mediaPayloads[] = {
- {1 , "Non-standard codec"},
- {2 , "G.711 A-law 64k"},
- {3 , "G.711 A-law 56k"},
- {4 , "G.711 u-law 64k"},
- {5 , "G.711 u-law 56k"},
- {6 , "G.722 64k"},
- {7 , "G.722 56k"},
- {8 , "G.722 48k"},
- {9 , "G.723.1"},
- {10 , "G.728"},
- {11 , "G.729"},
- {12 , "G.729 Annex A"},
- {13 , "IS11172 AudioCap"}, /* IS11172 is an ISO MPEG standard */
- {14 , "IS13818 AudioCap"}, /* IS13818 is an ISO MPEG standard */
- {15 , "G.729 Annex B"},
- {16 , "G.729 Annex A+Annex B"},
- {18 , "GSM Full Rate"},
- {19 , "GSM Half Rate"},
- {20 , "GSM Enhanced Full Rate"},
- {25 , "Wideband 256k"},
- {32 , "Data 64k"},
- {33 , "Data 56k"},
- {80 , "GSM"},
- {81 , "ActiveVoice"},
- {82 , "G.726 32K"},
- {83 , "G.726 24K"},
- {84 , "G.726 16K"},
- {85 , "G.729B"},
- {86 , "G.729B Low Complexity"},
- {100 , "H261"},
- {101 , "H263"},
- {102 , "Vieo"},
- {105 , "T120"},
- {106 , "H224"},
- {257 , "RFC2833_DynPayload"},
- {0 , NULL}
-};
-
-static const value_string alarmSeverities[] = {
- {0 , "Critical"},
- {1 , "Warning"},
- {2 , "Informational"},
- {4 , "Unknown"},
- {7 , "Major"},
- {8 , "Minor"},
- {10 , "Marginal"},
- {20 , "TraceInfo"},
- {0 , NULL}
-};
-
-static const value_string multicastMediaReceptionStatus[] = {
- {0 , "Ok"},
- {1 , "Error"},
- {0 , NULL}
-};
-
-static const value_string openReceiveChanStatus[] = {
- {0 , "orcOk"},
- {1 , "orcError"},
- {0 , NULL}
-};
-
-
-static const value_string statsProcessingTypes[] = {
- {0 , "clearStats"},
- {1 , "doNotClearStats"},
- {0 , NULL}
-};
-
-#define SkMaxSoftKeyCount 18 /* this value should be the same as the max soft key value */
-static const value_string softKeyEvents[] = {
- {1 , "Redial"},
- {2 , "NewCall"},
- {3 , "Hold"},
- {4 , "Trnsfer"},
- {5 , "CFwdAll"},
- {6 , "CFwdBusy"},
- {7 , "CFwdNoAnswer"},
- {8 , "BackSpace"},
- {9 , "EndCall"},
- {10 , "Resume"},
- {11 , "Answer"},
- {12 , "Info"},
- {13 , "Confrn"},
- {14 , "Park"},
- {15 , "Join"},
- {16 , "MeetMeConfrn"},
- {17 , "CallPickUp"},
- {18 , "GrpCallPickUp"},
- {0 , NULL}
-};
-
-/* Define info index for each softkey event for Telecaster station. */
-static const value_string softKeyIndexes[] = {
- {301 , "RedialInfoIndex"},
- {302 , "NewCallInfoIndex"},
- {303 , "HoldInfoIndex"},
- {304 , "TrnsferInfoIndex"},
- {305 , "CFwdAllInfoIndex"},
- {306 , "CFwdBusyInfoIndex"}, /* not used yet */
- {307 , "CFwdNoAnswerInfoIndex"}, /* not used yet */
- {308 , "BackSpaceInfoIndex"},
- {309 , "EndCallInfoIndex"},
- {310 , "ResumeInfoIndex"},
- {311 , "AnswerInfoIndex"},
- {312 , "InfoInfoIndex"},
- {313 , "ConfrnInfoIndex"},
- {314 , "ParkInfoIndex"},
- {315 , "JoinInfoIndex"},
- {316 , "MeetMeConfrnInfoIndex"},
- {317 , "CallPickUpInfoIndex"},
- {318 , "GrpCallPickUpInfoIndex"},
- {0 , NULL}
-};
-
-
-static const value_string buttonDefinitions[] = {
- {1 , "LastNumberRedial"},
- {2 , "SpeedDial"},
- {3 , "Hold"},
- {4 , "Transfer"},
- {5 , "ForwardAll"},
- {6 , "ForwardBusy"},
- {7 , "ForwardNoAnswer"},
- {8 , "Display"},
- {9 , "Line"},
- {0xa , "T120Chat"},
- {0xb , "T120Whiteboard"},
- {0xc , "T120ApplicationSharing"},
- {0xd , "T120FileTransfer"},
- {0xe , "Video"},
- {0x10 , "AnswerRelease"},
- {0xf0 , "Keypad"},
- {0xfd , "AEC"},
- {0xff , "Undefined"},
- {0 , NULL}
-};
-
-#define StationTotalSoftKeySets 10 /* total number of the soft key sets */
-static const value_string keySetNames[] = {
- {0 , "OnHook"},
- {1 , "Connected"},
- {2 , "OnHold"},
- {3 , "RingIn"},
- {4 , "OffHook"},
- {5 , "Connected with transfer"},
- {6 , "Digits after dialing first digit"},
- {7 , "Connected with conference"},
- {8 , "RingOut"},
- {9 , "OffHook with features"},
- {0 , NULL}
-};
-
-/* Define soft key labels for the Telecaster station */
-static const value_string softKeyLabel[] = {
- {0 , "undefined"},
- {1 , "Redial"},
- {2 , "NewCall"},
- {3 , "Hold"},
- {4 , "Trnsfer"},
- {5 , "CFwdAll"},
- {6 , "CFwdBusy"},
- {7 , "CFwdNoAnswer"},
- {8 , "<<"},
- {9 , "EndCall"},
- {10 , "Resume"},
- {11 , "Answer"},
- {12 , "Info"},
- {13 , "Confrn"},
- {14 , "Park"},
- {15 , "Join"},
- {16 , "MeetMe"},
- {17 , "PickUp"},
- {18 , "GPickUp"},
- {0 , NULL}
-};
-
-
-/*
- * define lamp modes;
- * lamp cadence is defined as follows
- * Wink (on 80%) = 448msec on / 64msec off
- * Flash (fast flash) = 32msec on / 32msec off
- * Blink (on 50%) = 512msec on / 512msec off
- * On (on steady)
- */
-static const value_string stationLampModes[] = {
- {0 , "Undefined"},
- {0x1 , "Off"},
- {0x2 , "On"},
- {0x3 , "Wink"},
- {0x4 , "Flash"},
- {0x5 , "Blink"},
- {0 , NULL}
-};
-
-/* Defined the Call States to be sent to the Telecaste station.
- * These are NOT the call states used in CM internally. Instead,
- * they are the call states sent from CM and understood by the Telecaster station
- */
-static const value_string skinny_stationCallStates[] = {
- {1 , "OffHook"},
- {2 , "OnHook"},
- {3 , "RingOut"},
- {4 , "RingIn"},
- {5 , "Connected"},
- {6 , "Busy"},
- {7 , "Congestion"},
- {8 , "Hold"},
- {9 , "CallWaiting"},
- {10 , "CallTransfer"},
- {11 , "CallPark"},
- {12 , "Proceed"},
- {13 , "CallRemoteMultiline"},
- {14 , "InvalidNumber"},
- {0 , NULL}
-};
-
-/* Defined Call Type */
-static const value_string skinny_callTypes[] = {
- {1 , "InBoundCall"},
- {2 , "OutBoundCall"},
- {3 , "ForwardCall"},
- {0 , NULL}
-};
-
-/*
- * define station-playable tones;
- * for tone definitions see SR-TSV-002275, "BOC Notes on the LEC Networks -- 1994"
- */
-static const value_string skinny_deviceTones[] = {
- {0 , "Silence"},
- {1 , "Dtmf1"},
- {2 , "Dtmf2"},
- {3 , "Dtmf3"},
- {4 , "Dtmf4"},
- {5 , "Dtmf5"},
- {6 , "Dtmf6"},
- {7 , "Dtmf7"},
- {8 , "Dtmf8"},
- {9 , "Dtmf9"},
- {0xa , "Dtmf0"},
- {0xe , "DtmfStar"},
- {0xf , "DtmfPound"},
- {0x10 , "DtmfA"},
- {0x11 , "DtmfB"},
- {0x12 , "DtmfC"},
- {0x13 , "DtmfD"},
- {0x21 , "InsideDialTone"},
- {0x22 , "OutsideDialTone"},
- {0x23 , "LineBusyTone"},
- {0x24 , "AlertingTone"},
- {0x25 , "ReorderTone"},
- {0x26 , "RecorderWarningTone"},
- {0x27 , "RecorderDetectedTone"},
- {0x28 , "RevertingTone"},
- {0x29 , "ReceiverOffHookTone"},
- {0x2a , "PartialDialTone"},
- {0x2b , "NoSuchNumberTone"},
- {0x2c , "BusyVerificationTone"},
- {0x2d , "CallWaitingTone"},
- {0x2e , "ConfirmationTone"},
- {0x2f , "CampOnIndicationTone"},
- {0x30 , "RecallDialTone"},
- {0x31 , "ZipZip"},
- {0x32 , "Zip"},
- {0x33 , "BeepBonk"},
- {0x34 , "MusicTone"},
- {0x35 , "HoldTone"},
- {0x36 , "TestTone"},
- {0x37 , "DtMoniterWarningTone"},
- {0x40 , "AddCallWaiting"},
- {0x41 , "PriorityCallWait"},
- {0x42 , "RecallDial"},
- {0x43 , "BargIn"},
- {0x44 , "DistinctAlert"},
- {0x45 , "PriorityAlert"},
- {0x46 , "ReminderRing"},
- {0x47 , "PrecedenceRingBack"},
- {0x48 , "PreemptionTone"},
- {0x50 , "MF1"},
- {0x51 , "MF2"},
- {0x52 , "MF3"},
- {0x53 , "MF4"},
- {0x54 , "MF5"},
- {0x55 , "MF6"},
- {0x56 , "MF7"},
- {0x57 , "MF8"},
- {0x58 , "MF9"},
- {0x59 , "MF0"},
- {0x5a , "MFKP1"},
- {0x5b , "MFST"},
- {0x5c , "MFKP2"},
- {0x5d , "MFSTP"},
- {0x5e , "MFST3P"},
- {0x5f , "MILLIWATT"},
- {0x60 , "MILLIWATTTEST"},
- {0x61 , "HIGHTONE"},
- {0x62 , "FLASHOVERRIDE"},
- {0x63 , "FLASH"},
- {0x64 , "PRIORITY"},
- {0x65 , "IMMEDIATE"},
- {0x66 , "PREAMPWARN"},
- {0x67 , "2105HZ"},
- {0x68 , "2600HZ"},
- {0x69 , "440HZ"},
- {0x6a , "300HZ"},
- {0x77 , "MLPP_PALA"},
- {0x78 , "MLPP_ICA"},
- {0x79 , "MLPP_VCA"},
- {0x7A , "MLPP_BPA"},
- {0x7B , "MLPP_BNEA"},
- {0x7C , "MLPP_UPA"},
- {0x7f , "NoTone"},
- {0 , NULL}
-};
-
-/* define ring types */
-static const value_string skinny_ringTypes[] = {
- {0x1 , "RingOff"},
- {0x2 , "InsideRing"},
- {0x3 , "OutsideRing"},
- {0x4 , "FeatureRing"},
- {0x5 , "FlashOnly"},
- {0x6 , "PrecedenceRing"},
- {0 , NULL}
-};
-
-static const value_string skinny_speakerModes[] = {
- {1 , "SpeakerOn"},
- {2 , "SpeakerOff"},
- {0 , NULL}
-};
-
-static const value_string skinny_silenceSuppressionModes[] = {
- {0 , "Media_SilenceSuppression_Off"},
- {1 , "Media_SilenceSuppression_On"},
- {0 , NULL}
-};
-
-static const value_string skinny_g723BitRates[] = {
- {1 , "Media_G723BRate_5_3"},
- {2 , "Media_G723BRate_6_4"},
- {0 , NULL}
-};
-
-/* define device reset types */
-static const value_string skinny_deviceResetTypes[] = {
- {1 , "DEVICE_RESET"},
- {2 , "DEVICE_RESTART"},
- {0 , NULL}
-};
-
-static const value_string skinny_echoCancelTypes[] = {
- {0 , "Media_EchoCancellation_Off"},
- {1 , "Media_EchoCancellation_On"},
- {0 , NULL}
-};
-
-static const value_string skinny_deviceUnregisterStatusTypes[] = {
- {0 , "Ok"},
- {1 , "Error"},
- {2 , "NAK"}, /* Unregister request is rejected for reaso n such as existence of a call */
- {0 , NULL}
-};
-
-static const value_string skinny_createConfResults[] = {
- {0 , "Ok"},
- {1 , "ResourceNotAvailable"},
- {2 , "ConferenceAlreadyExist"},
- {3 , "SystemErr"},
- {0 , NULL}
-};
-
-static const value_string skinny_modifyConfResults[] = {
- {0 , "Ok"},
- {1 , "ResourceNotAvailable"},
- {2 , "ConferenceNotExist"},
- {3 , "InvalidParameter"},
- {4 , "MoreActiveCallsThanReserved"},
- {5 , "InvalidResourceType"},
- {6 , "SystemErr"},
- {0 , NULL}
-};
-
-static const value_string skinny_deleteConfResults[] = {
- {0 , "Ok"},
- {1 , "ConferenceNotExist"},
- {2 , "SystemErr"},
- {0 , NULL}
-};
-
-static const value_string skinny_addParticipantResults[] = {
- {0 , "Ok"},
- {1 , "ResourceNotAvailable"},
- {2 , "ConferenceNotExist"},
- {3 , "DuplicateCallRef"},
- {4 , "SystemErr"},
- {0 , NULL}
-};
-
-static const value_string skinny_auditParticipantResults[] = {
- {0 , "Ok"},
- {1 , "ConferenceNotExist"},
- {0 , NULL}
-};
-
-/* define hook flash detection mode */
-static const value_string skinny_hookFlashDetectModes[] = {
- {1 , "HookFlashOn"},
- {2 , "HookFlashOff"},
- {0 , NULL}
-};
-
-/* define headset mode */
-static const value_string skinny_headsetModes[] = {
- {1 , "HeadsetOn"},
- {2 , "HeadsetOff"},
- {0 , NULL}
-};
-
-/* define station microphone modes;
- * Mic On - The speakerphone's microphone is turned on ONLY if the phone is in the "Speaker On (Off Hook)"
- * state (see above).
- * Mic Off - The microphone is turned off or, if it's not on, the command is ignored.
- */
-static const value_string skinny_microphoneModes[] = {
- {1 , "MicOn"},
- {2 , "MicOff"},
- {0 , NULL}
-};
-
-/* define the session request types */
-static const value_string skinny_sessionTypes[] = {
- {1 , "Chat"},
- {2 , "Whiteboard"},
- {4 , "ApplicationSharing"},
- {8 , "FileTransfer"},
- {10 , "Video"},
- {0 , NULL}
-};
-
-static const value_string skinny_mediaEnunciationTypes[] = {
- {1 , "None"},
- {2 , "CallPark"},
- {0 , NULL}
-};
-
-static const value_string skinny_resourceTypes[] = {
- {1 , "Conference"},
- {2 , "IVR"},
- {0 , NULL}
-};
-
-static const value_string skinny_sequenceFlags[] = {
- {0 , "StationSequenceFirst"},
- {1 , "StationSequenceMore"},
- {2 , "StationSequenceLast"},
- {0 , NULL}
-};
-
-static const value_string skinny_Layouts[] = {
- {0 , "NoLayout"},
- {1 , "OneByOne"},
- {2 , "OneByTwo"},
- {3 , "TwoByTwo"},
- {4 , "TwoByTwo3Alt1"},
- {5 , "TwoByTwo3Alt2"},
- {6 , "ThreeByThree"},
- {7 , "ThreeByThree6Alt1"},
- {8 , "ThreeByThree6Alt2"},
- {9 , "ThreeByThree4Alt1"},
- {10 , "ThreeByThree4Alt2"},
- {0 , NULL}
-};
-
-static const value_string skinny_transmitOrReceive[] = {
- {1 , "Station_Receive_only"},
- {2 , "Station_Transmit_only"},
- {3 , "Station_Receive_Transmit"},
- {0 , NULL}
-};
-
-static const value_string skinny_endOfAnnAck[] = {
- {0 , "NoAnnAckRequired"},
- {1 , "AnnAckRequired"},
- {0 , NULL}
-};
-
-static const value_string skinny_annPlayMode[] = {
- {0 , "AnnXmlConfigMode"},
- {1 , "AnnOneShotMode"},
- {2 , "AnnContinuousMode"},
- {0 , NULL}
-};
-
-static const value_string skinny_annPlayStatus[] = {
- {0 , "PlayToneOK"},
- {1 , "PlayToneErr"},
- {0 , NULL}
-};
-
-static const value_string skinny_miscCommandType[] = {
- {0 , "videoFreezePicture"},
- {1 , "videoFastUpdatePicture"},
- {2 , "videoFastUpdateGOB"},
- {3 , "videoFastUpdateMB"},
- {4 , "lostPicture"},
- {5 , "lostPartialPicture"},
- {6 , "recoveryReferencePicture"},
- {7 , "temporalSpatialTradeOff"},
- {0 , NULL}
-};
-
-static const value_string skinny_formatTypes[] = {
- {1 , "sqcif (128x96)"},
- {2 , "qcif (176x144)"},
- {3 , "cif (352x288)"},
- {4 , "4cif (704x576)"},
- {5 , "16cif (1408x1152)"},
- {6 , "custom_base"},
- {0 , NULL}
-};
-
-static const value_string cast_callSecurityStatusTypes[] = {
- {0 , "CallSecurityStatusUnknown"},
- {1 , "CallSecurityStatusNotAuthenticated"},
- {2 , "CallSecurityStatusAuthenticated"},
- {0 , NULL}
-};
-
-#define StationMaxDirnumSize 24 /* max size of calling or called party dirnum */
-#define StationMaxNameSize 40 /* max size of calling party's name */
-#define StationMaxDeviceNameSize 16 /* max size of station's IP name */
-#define StationMaxSpeedDials 10 /* max number of speed dial numbers allowed on a station */
-#define StationMaxVersionSize 16 /* max chars in version string */
-#define StationMaxButtonTemplateSize 42 /* max button template size */
-#define StationMaxDisplayTextSize 33 /* max text size in DisplayText message */
-#define StationMaxPorts 10 /* max number of ports on one device */
-#define StationDateTemplateSize 6 /* date template in the form M/D/Y, D/M/Y, ... */
-#define StationMaxServerNameSize 48 /* max size of server name */
-#define StationMaxServers 5 /* max servers */
-#define StationMaxDeviceDirnums 1024 /* max dir numbers per SCM device */
-#define StationMaxDirnums 64 /* max dir numbers per physical station (also used in db request msg); */
-#define StationMaxSoftKeyLabelSize 16 /* max label size in the message */
-#define StationMaxSoftKeyDefinition 32 /* max number of soft key definition in the message */
-#define StationMaxSoftKeySetDefinition 16 /* max number of soft key set definition in the message */
-#define StationMaxSoftKeyIndex 16 /* max number of soft key indices in a station soft key set */
-#define StationMaxDisplayPromptStatusSize 32 /* max status text size in the display status message */
-#define StationMaxDisplayNotifySize 32 /* max prompt text size in the display prompt message */
-#define StationMaxAlarmMessageSize 80 /* max size for an alarm message */
-#define StationMaxUserDeviceDataSize 2000 /* max size of user data between application and device */
-#define StationMaxConference 32
-#define AppConferenceIDSize 32
-#define AppDataSize 24
-#define MAX_CUSTOM_PICTURES 6
-#define MAX_LAYOUT_WITH_SAME_SERVICE 5
-#define MAX_SERVICE_TYPE 4
-#define DeviceMaxCapabilities 18 /* max capabilities allowed in Cap response message */
-#define StationMaxCapabilities DeviceMaxCapabilities
-#define StationMaxVideoCapabilities 10
-#define StationMaxDataCapabilities 5
-#define MAX_LEVEL_PREFERENCE 4
-#define MaxAnnouncementList 32
-#define StationMaxMonitorParties 16 /* Max Monitor Bridge whisper matrix parties, rm, M&R in Parche */
-#define StationMaxServiceURLSize 256 /* max number of service URLs length */
-#define MAX_PICTURE_FORMAT 5
-#define MAX_REFERENCE_PICTURE 4
-
-static void dissect_skinny(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
-
-/* Initialize the protocol and registered fields */
-static int proto_skinny = -1;
-static int hf_skinny_data_length = -1;
-static int hf_skinny_reserved = -1;
-static int hf_skinny_messageid = -1;
-static int hf_skinny_deviceName = -1;
-static int hf_skinny_stationUserId = -1;
-static int hf_skinny_stationInstance = -1;
-static int hf_skinny_deviceType = -1;
-static int hf_skinny_maxStreams = -1;
-static int hf_skinny_stationIpPort = -1;
-static int hf_skinny_stationKeypadButton = -1;
-static int hf_skinny_calledParty = -1;
-static int hf_skinny_stimulus = -1;
-static int hf_skinny_stimulusInstance = -1;
-static int hf_skinny_lineNumber = -1;
-static int hf_skinny_speedDialNumber = -1;
-static int hf_skinny_capCount = -1;
-static int hf_skinny_payloadCapability = -1;
-static int hf_skinny_maxFramesPerPacket = -1;
-static int hf_skinny_alarmSeverity = -1;
-static int hf_skinny_alarmParam1 = -1;
-static int hf_skinny_alarmParam2 = -1;
-static int hf_skinny_receptionStatus = -1;
-static int hf_skinny_passThruPartyID = -1;
-static int hf_skinny_ORCStatus = -1;
-static int hf_skinny_ipAddress = -1;
-static int hf_skinny_portNumber = -1;
-static int hf_skinny_statsProcessingType = -1;
-static int hf_skinny_callIdentifier = -1;
-static int hf_skinny_packetsSent = -1;
-static int hf_skinny_octetsSent = -1;
-static int hf_skinny_packetsRecv = -1;
-static int hf_skinny_octetsRecv = -1;
-static int hf_skinny_packetsLost = -1;
-static int hf_skinny_latency = -1;
-static int hf_skinny_jitter = -1;
-static int hf_skinny_directoryNumber = -1;
-static int hf_skinny_softKeyEvent = -1;
-static int hf_skinny_lineInstance = -1;
-static int hf_skinny_keepAliveInterval = -1;
-static int hf_skinny_dateTemplate = -1;
-static int hf_skinny_secondaryKeepAliveInterval = -1;
-static int hf_skinny_buttonOffset = -1;
-static int hf_skinny_buttonCount = -1;
-static int hf_skinny_totalButtonCount = -1;
-static int hf_skinny_buttonInstanceNumber = -1;
-static int hf_skinny_buttonDefinition = -1;
-static int hf_skinny_softKeyOffset = -1;
-static int hf_skinny_softKeyCount = -1;
-static int hf_skinny_totalSoftKeyCount = -1;
-static int hf_skinny_softKeyLabel = -1;
-static int hf_skinny_softKeySetOffset = -1;
-static int hf_skinny_softKeySetCount = -1;
-static int hf_skinny_totalSoftKeySetCount = -1;
-static int hf_skinny_softKeyTemplateIndex = -1;
-static int hf_skinny_softKeyInfoIndex = -1;
-static int hf_skinny_softKeySetDescription = -1;
-static int hf_skinny_softKeyMap = -1;
-static int hf_skinny_softKey0 = -1;
-static int hf_skinny_softKey1 = -1;
-static int hf_skinny_softKey2 = -1;
-static int hf_skinny_softKey3 = -1;
-static int hf_skinny_softKey4 = -1;
-static int hf_skinny_softKey5 = -1;
-static int hf_skinny_softKey6 = -1;
-static int hf_skinny_softKey7 = -1;
-static int hf_skinny_softKey8 = -1;
-static int hf_skinny_softKey9 = -1;
-static int hf_skinny_softKey10 = -1;
-static int hf_skinny_softKey11 = -1;
-static int hf_skinny_softKey12 = -1;
-static int hf_skinny_softKey13 = -1;
-static int hf_skinny_softKey14 = -1;
-static int hf_skinny_softKey15 = -1;
-static int hf_skinny_lampMode = -1;
-static int hf_skinny_messageTimeOutValue = -1;
-static int hf_skinny_displayMessage = -1;
-static int hf_skinny_lineDirNumber = -1;
-static int hf_skinny_lineFullyQualifiedDisplayName = -1;
-static int hf_skinny_speedDialDirNumber = -1;
-static int hf_skinny_speedDialDisplayName = -1;
-static int hf_skinny_dateYear = -1;
-static int hf_skinny_dateMonth = -1;
-static int hf_skinny_dayOfWeek = -1;
-static int hf_skinny_dateDay = -1;
-static int hf_skinny_dateHour = -1;
-static int hf_skinny_dateMinute = -1;
-static int hf_skinny_dateSeconds = -1;
-static int hf_skinny_dateMilliseconds = -1;
-static int hf_skinny_timeStamp = -1;
-static int hf_skinny_callState = -1;
-static int hf_skinny_deviceTone = -1;
-static int hf_skinny_callingPartyName = -1;
-static int hf_skinny_callingParty = -1;
-static int hf_skinny_calledPartyName = -1;
-static int hf_skinny_callType = -1;
-static int hf_skinny_originalCalledPartyName = -1;
-static int hf_skinny_originalCalledParty = -1;
-static int hf_skinny_ringType = -1;
-static int hf_skinny_speakerMode = -1;
-static int hf_skinny_remoteIpAddr = -1;
-static int hf_skinny_remotePortNumber = -1;
-static int hf_skinny_millisecondPacketSize = -1;
-static int hf_skinny_precedenceValue = -1;
-static int hf_skinny_silenceSuppression = -1;
-static int hf_skinny_g723BitRate = -1;
-static int hf_skinny_conferenceID = -1;
-static int hf_skinny_deviceResetType = -1;
-static int hf_skinny_echoCancelType = -1;
-static int hf_skinny_deviceUnregisterStatus = -1;
-static int hf_skinny_hookFlashDetectMode = -1;
-static int hf_skinny_detectInterval = -1;
-static int hf_skinny_microphoneMode = -1;
-static int hf_skinny_headsetMode = -1;
-static int hf_skinny_unknown = -1;
-static int hf_skinny_data = -1;
-static int hf_skinny_activeForward = -1;
-static int hf_skinny_forwardAllActive = -1;
-static int hf_skinny_forwardBusyActive = -1;
-static int hf_skinny_forwardNoAnswerActive = -1;
-static int hf_skinny_forwardNumber = -1;
-static int hf_skinny_serverName = -1;
-static int hf_skinny_numberLines = -1;
-static int hf_skinny_numberSpeedDials = -1;
-static int hf_skinny_userName = -1;
-static int hf_skinny_sessionType = -1;
-static int hf_skinny_version = -1;
-static int hf_skinny_mediaEnunciationType = -1;
-static int hf_skinny_serverIdentifier = -1;
-static int hf_skinny_serverListenPort = -1;
-static int hf_skinny_serverIpAddress = -1;
-static int hf_skinny_multicastIpAddress = -1;
-static int hf_skinny_multicastPort = -1;
-static int hf_skinny_tokenRejWaitTime = -1;
-static int hf_skinny_numberOfInServiceStreams = -1;
-static int hf_skinny_maxStreamsPerConf = -1;
-static int hf_skinny_numberOfOutOfServiceStreams = -1;
-static int hf_skinny_applicationID = -1;
-static int hf_skinny_serviceNum = -1;
-static int hf_skinny_serviceURLIndex = -1;
-static int hf_skinny_featureIndex = -1;
-static int hf_skinny_createConfResults = -1;
-static int hf_skinny_modifyConfResults = -1;
-static int hf_skinny_deleteConfResults = -1;
-static int hf_skinny_addParticipantResults = -1;
-static int hf_skinny_passThruData = -1;
-static int hf_skinny_last = -1;
-static int hf_skinny_numberOfEntries = -1;
-static int hf_skinny_auditParticipantResults = -1;
-static int hf_skinny_participantEntry = -1;
-static int hf_skinny_resourceTypes = -1;
-static int hf_skinny_numberOfReservedParticipants = -1;
-static int hf_skinny_numberOfActiveParticipants = -1;
-static int hf_skinny_appID = -1;
-static int hf_skinny_appData = -1;
-static int hf_skinny_appConfID = -1;
-static int hf_skinny_sequenceFlag = -1;
-static int hf_skinny_displayPriority = -1;
-static int hf_skinny_appInstanceID = -1;
-static int hf_skinny_routingID = -1;
-static int hf_skinny_audioCapCount = -1;
-static int hf_skinny_videoCapCount = -1;
-static int hf_skinny_dataCapCount = -1;
-static int hf_skinny_RTPPayloadFormat = -1;
-static int hf_skinny_customPictureFormatCount = -1;
-static int hf_skinny_pictureWidth = -1;
-static int hf_skinny_pictureHeight = -1;
-static int hf_skinny_pixelAspectRatio = -1;
-static int hf_skinny_clockConversionCode = -1;
-static int hf_skinny_clockDivisor = -1;
-static int hf_skinny_activeStreamsOnRegistration = -1;
-static int hf_skinny_maxBW = -1;
-static int hf_skinny_serviceResourceCount = -1;
-static int hf_skinny_layoutCount = -1;
-static int hf_skinny_layout = -1;
-static int hf_skinny_maxConferences = -1;
-static int hf_skinny_activeConferenceOnRegistration = -1;
-static int hf_skinny_transmitOrReceive = -1;
-static int hf_skinny_levelPreferenceCount = -1;
-static int hf_skinny_transmitPreference = -1;
-static int hf_skinny_format = -1;
-static int hf_skinny_maxBitRate = -1;
-static int hf_skinny_minBitRate = -1;
-static int hf_skinny_MPI = -1;
-static int hf_skinny_serviceNumber = -1;
-static int hf_skinny_temporalSpatialTradeOffCapability = -1;
-static int hf_skinny_stillImageTransmission = -1;
-static int hf_skinny_h263_capability_bitfield = -1;
-static int hf_skinny_annexNandWFutureUse = -1;
-static int hf_skinny_modelNumber = -1;
-static int hf_skinny_bandwidth = -1;
-static int hf_skinny_protocolDependentData = -1;
-static int hf_skinny_priority = -1;
-static int hf_skinny_payloadDtmf = -1;
-static int hf_skinny_featureID = -1;
-static int hf_skinny_featureTextLabel = -1;
-static int hf_skinny_featureStatus = -1;
-static int hf_skinny_notify = -1;
-static int hf_skinny_endOfAnnAck = -1;
-static int hf_skinny_annPlayMode = -1;
-static int hf_skinny_annPlayStatus = -1;
-static int hf_skinny_locale = -1;
-static int hf_skinny_country = -1;
-static int hf_skinny_matrixConfPartyID = -1;
-static int hf_skinny_hearingConfPartyMask = -1;
-static int hf_skinny_serviceURL = -1;
-static int hf_skinny_serviceURLDisplayName = -1;
-static int hf_skinny_callSelectStat = -1;
-static int hf_skinny_isConferenceCreator = -1;
-static int hf_skinny_payload_rfc_number = -1;
-static int hf_skinny_payloadType = -1;
-static int hf_skinny_bitRate = -1;
-static int hf_skinny_pictureFormatCount = -1;
-static int hf_skinny_confServiceNum = -1;
-static int hf_skinny_DSCPValue = -1;
-static int hf_skinny_miscCommandType = -1;
-static int hf_skinny_temporalSpatialTradeOff = -1;
-static int hf_skinny_firstGOB = -1;
-static int hf_skinny_numberOfGOBs = -1;
-static int hf_skinny_firstMB = -1;
-static int hf_skinny_numberOfMBs = -1;
-static int hf_skinny_pictureNumber = -1;
-static int hf_skinny_longTermPictureIndex = -1;
-static int hf_skinny_recoveryReferencePictureCount = -1;
-static int hf_skinny_transactionID = -1;
-static int hf_cast_lastRedirectingPartyName = -1;
-static int hf_cast_lastRedirectingParty = -1;
-static int hf_cast_cgpnVoiceMailbox = -1;
-static int hf_cast_cdpnVoiceMailbox = -1;
-static int hf_cast_originalCdpnVoiceMailbox = -1;
-static int hf_cast_lastRedirectingVoiceMailbox = -1;
-static int hf_cast_originalCdpnRedirectReason = -1;
-static int hf_cast_lastRedirectingReason = -1;
-static int hf_cast_callInstance = -1;
-static int hf_cast_callSecurityStatus = -1;
-
-
-/* Initialize the subtree pointers */
-static gint ett_skinny = -1;
-static gint ett_skinny_tree = -1;
-static gint ett_skinny_softKeyMap = -1;
-
-/* desegmentation of SCCP */
-static gboolean skinny_desegment = TRUE;
-
-static dissector_handle_t data_handle;
-static dissector_handle_t rtp_handle=NULL;
-
-/* Get the length of a single SCCP PDU */
-static guint get_skinny_pdu_len(tvbuff_t *tvb, int offset)
-{
- guint32 hdr_data_length;
-
- /*
- * Get the length of the SCCP packet.
- */
- hdr_data_length = tvb_get_letohl(tvb, offset);
-
- /*
- * That length doesn't include the length of the header itself;
- * add that in.
- */
- return hdr_data_length + 8;
-}
-
-/* Dissect a single SCCP PDU */
-static void dissect_skinny_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-{
- int offset = 0;
-
- /* Header fields */
- guint32 hdr_data_length;
- guint32 hdr_reserved;
- guint32 data_messageid;
- gchar *messageid_str;
- /* guint32 data_size; */
-
- guint i = 0;
- guint t = 0;
- int j = 0;
- guint count;
- int val;
-
- guint32 capCount;
- guint32 softKeyCount;
- guint32 softKeySetCount;
- guint16 validKeyMask;
-
- /* Set up structures we will need to add the protocol subtree and manage it */
- proto_item *ti;
- proto_tree *skinny_tree = NULL;
- proto_item *ti_sub;
- proto_tree *skinny_sub_tree;
- proto_tree *skinny_sub_tree_sav;
- proto_tree *skinny_sub_tree_sav_sav;
-
- proto_item *skm = NULL;
- proto_item *skm_tree = NULL;
-
- hdr_data_length = tvb_get_letohl(tvb, offset);
- hdr_reserved = tvb_get_letohl(tvb, offset+4);
- data_messageid = tvb_get_letohl(tvb, offset+8);
-
- /* In the interest of speed, if "tree" is NULL, don't do any work not
- * necessary to generate protocol tree items. */
- if (tree) {
- ti = proto_tree_add_item(tree, proto_skinny, tvb, offset, hdr_data_length+8, FALSE);
- skinny_tree = proto_item_add_subtree(ti, ett_skinny);
- proto_tree_add_uint(skinny_tree, hf_skinny_data_length, tvb, offset, 4, hdr_data_length);
- proto_tree_add_uint(skinny_tree, hf_skinny_reserved, tvb, offset+4, 4, hdr_reserved);
- }
-
- messageid_str = val_to_str(data_messageid, message_id, "0x%08X (Unknown)");
-
- if (check_col(pinfo->cinfo, COL_INFO)) {
- col_add_str(pinfo->cinfo, COL_INFO, messageid_str);
- }
-
- if (tree) {
- proto_tree_add_uint(skinny_tree, hf_skinny_messageid, tvb,offset+8, 4, data_messageid );
- }
-
- if (tree) {
- switch(data_messageid) {
-
- /* cases that do not need to be decoded */
- case 0x0 : /* keepAlive */
- break;
-
- case 0x6 : /* offHook */
- break;
-
- case 0x7 : /* onHook */
- break;
-
- case 0x8 : /* hookFlash */
- break;
-
- case 0xc : /* configStateReqMessage */
- break;
-
- case 0xd : /* timeDateReqMessage */
- break;
-
- case 0xe : /* buttoneTemplateReqMessage */
- break;
-
- case 0xf : /* stationVersionReqMessage */
- break;
-
- case 0x12 : /* stationServerReqMessage */
- break;
-
- case 0x25 : /* softKeySetReqMessage */
- break;
-
- case 0x27 : /* unregisterMessage */
- break;
-
- case 0x28 : /* softKeyTemplateRequest */
- break;
-
- case 0x83 : /* stopTone */
- break;
-
- case 0x9a : /* clearDisplay */
- break;
-
- case 0x9b : /* capabilitiesReqMessage */
- break;
-
- case 0x100 : /* keepAliveAck */
- break;
-
- case 0x115 : /* clearNotifyDisplay */
- break;
-
- case 0x117 : /* deactivateCallPlane */
- break;
-
- case 0x11a : /* registerTokenAck */
- break;
-
- case 0x13C : /* AuditConferenceReqMessage */
- break;
-
- /*
- ** cases that need decode
- **
- */
-
- case 0x1 : /* register message */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceName, tvb, offset+12, StationMaxDeviceNameSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_stationUserId, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_stationInstance, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_deviceType, tvb, offset+40, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_maxStreams, tvb, offset+44, 4, TRUE);
- break;
-
- case 0x2 : /* ipPortMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_stationIpPort, tvb, offset+12, 2, FALSE);
- break;
-
- case 0x3 : /* keyPadButtonMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_stationKeypadButton, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x4 : /* stationEnblocCallMessage -- This decode NOT verified*/
- proto_tree_add_item(skinny_tree, hf_skinny_calledParty, tvb, offset+12, StationMaxDirnumSize, TRUE);
- break;
-
- case 0x5 : /* stationStimulusMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_stimulus, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_stimulusInstance, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x9 : /* stationForwardStatReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_lineNumber, tvb, offset+12, 4, TRUE);
- break;
-
- case 0xa : /* speedDialStatReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_speedDialNumber, tvb, offset+12, 4, TRUE);
- break;
-
- case 0xb : /* LineStatReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_lineNumber, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x10 : /* capabilitiesResMessage - VERIFIED AS IS*/
- /* FIXME -- we are only going to decode the first 7 protocol fields for now cuz that's all it sent me
- * on the phone i was working with. I should probably skip the struct decode and use a more piece
- * type method using the capCount definition to control the decode loop
- *
- * basically changing StationMaxCapabilities definition
- *
- */
- capCount = tvb_get_letohl(tvb, offset+12);
- proto_tree_add_uint(skinny_tree, hf_skinny_capCount, tvb, offset+12, 4, capCount);
- for (i = 0; i < capCount; i++) {
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+(i*16)+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_maxFramesPerPacket, tvb, offset+(i*16)+20, 2, TRUE);
- /* FIXME -- decode the union under here as required, is always 0 on my equipment */
- }
- break;
-
- case 0x11 : /* mediaPortList */
- break;
-
- case 0x20 : /* stationAlarmMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_alarmSeverity, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_displayMessage, tvb, offset+16, StationMaxAlarmMessageSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_alarmParam1, tvb, offset+96, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_alarmParam2, tvb, offset+100, 4, TRUE);
- break;
-
- case 0x21 : /* stationMulticastMediaReceptionAck - This decode NOT verified*/
- proto_tree_add_item(skinny_tree, hf_skinny_receptionStatus, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x22 : /* stationOpenReceiveChannelAck */
- proto_tree_add_item(skinny_tree, hf_skinny_ORCStatus, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+24, 4, TRUE);
- if((!pinfo->fd->flags.visited) && rtp_handle){
- guint32 ipv4_address;
- tvb_memcpy(tvb, (char*)&ipv4_address, offset+16, 4);
- rtp_add_address(pinfo, (char *)&ipv4_address, tvb_get_letohl(tvb, offset+20), 0, "Skinny", pinfo->fd->num);
- }
- break;
-
- case 0x23 : /* stationConnectionStatisticsRes */
- proto_tree_add_item(skinny_tree, hf_skinny_directoryNumber, tvb, offset+12, StationMaxDirnumSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_statsProcessingType, tvb, offset+40, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_packetsSent, tvb, offset+44, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_octetsSent, tvb, offset+48, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_packetsRecv, tvb, offset+52, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_octetsRecv, tvb, offset+56, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_packetsLost, tvb, offset+60, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_jitter, tvb, offset+64, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_latency, tvb, offset+68, 4, TRUE);
- break;
-
- case 0x24 : /* offHookWithCgpn */
- proto_tree_add_item(skinny_tree, hf_skinny_calledParty, tvb, offset+12,StationMaxDirnumSize, TRUE);
- break;
-
- case 0x26 : /* softKeyEventMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_softKeyEvent, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x29 : /* registerTokenREq */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceName, tvb, offset+12, 4, TRUE);
- i = offset+12+StationMaxDeviceNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_stationUserId, tvb, i, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_stationInstance, tvb, i+4, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, i+8, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_deviceType, tvb, i+12, 4, TRUE);
- break;
-
- case 0x2A : /* MediaTransmissionFailure */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+28, 4, TRUE);
- break;
-
- case 0x2B : /* HeadsetStatusMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_headsetMode, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x2C : /* MediaResourceNotification */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceType, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfInServiceStreams, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_maxStreamsPerConf, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfOutOfServiceStreams, tvb, offset+24, 4, TRUE);
- break;
-
- case 0x2D : /* RegisterAvailableLinesMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_numberLines, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x2E : /* DeviceToUserDataMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_applicationID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_transactionID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+28, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+28);
- proto_tree_add_uint(skinny_tree, hf_skinny_data, tvb, offset+30, 1, count);
- break;
-
- case 0x2F : /* DeviceToUserDataResponseMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_applicationID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_transactionID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+28, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+28);
- proto_tree_add_uint(skinny_tree, hf_skinny_data, tvb, offset+30, 1, count);
- break;
-
- case 0x30 : /* UpdateCapabilitiesMessage */
- /* to do - this message is very large and will span multiple packets, it would be nice to someday */
- /* find out a way to join the next packet and get the complete message to decode */
- proto_tree_add_item(skinny_tree, hf_skinny_audioCapCount, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_videoCapCount, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dataCapCount, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_RTPPayloadFormat, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_customPictureFormatCount, tvb, offset+28, 4, TRUE);
- count = offset+32;
- for ( i = 0; i < MAX_CUSTOM_PICTURES; i++ ) {
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "customPictureFormat[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureWidth, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureHeight, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pixelAspectRatio, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_clockConversionCode, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_clockDivisor, tvb, count, 4, TRUE);
- count+= 4;
- }
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "confResources");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_activeStreamsOnRegistration, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBW, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_serviceResourceCount, tvb, count, 4, TRUE);
- count+= 4;
- skinny_sub_tree_sav = skinny_sub_tree;
- for ( i = 0; i < MAX_SERVICE_TYPE; i++ ) {
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "serviceResource[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_layoutCount, tvb, count, 4, TRUE);
- count+= 4;
- skinny_sub_tree_sav_sav = skinny_sub_tree_sav;
- for ( t = 0; t < MAX_LAYOUT_WITH_SAME_SERVICE; t++ ) {
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "layouts[%d]", t);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_layout, tvb, count, 4, TRUE);
- count+= 4;
- }
- skinny_sub_tree = skinny_sub_tree_sav_sav;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_serviceNum, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxStreams, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxConferences, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_activeConferenceOnRegistration, tvb, count, 4, TRUE);
- count+= 4;
- }
- for ( i = 0; i < StationMaxCapabilities; i++ ) {
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "audiocaps[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxFramesPerPacket, tvb, count, 2, TRUE);
- count+= 4;
- /* skip past union it is only for G723 */
- count+= 8;
- }
- for ( i = 0; i < StationMaxVideoCapabilities; i++ ) {
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "vidCaps[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitOrReceive, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_levelPreferenceCount, tvb, count, 4, TRUE);
- count+= 4;
- skinny_sub_tree_sav = skinny_sub_tree;
- for ( t = 0; t < MAX_LEVEL_PREFERENCE; t++ ) {
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 20, "levelPreference[%d]", t);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitPreference, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_format, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_minBitRate, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_MPI, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_serviceNumber, tvb, count, 4, TRUE);
- count+= 4;
- }
- val = count;
-
- /* H.261 */
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h261VideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_temporalSpatialTradeOffCapability, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_stillImageTransmission, tvb, count, 4, TRUE);
- count+= 4;
-
- /* H.263 */
- count = val;
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h263VideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_h263_capability_bitfield, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_annexNandWFutureUse, tvb, count, 4, TRUE);
- count+= 4;
-
- /* Video */
- count = val;
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "vieoVideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_modelNumber, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_bandwidth, tvb, count, 4, TRUE);
- count+= 4;
- }
- for ( i = 0; i < StationMaxDataCapabilities; i++ ) {
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 20, "dataCaps[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_payloadCapability, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_transmitOrReceive, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_protocolDependentData, tvb, count, 4, TRUE);
- count+= 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, count, 4, TRUE);
- count+= 4;
- }
- break;
-
- case 0x31 : /* OpenMultiMediaReceiveChannelAckMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_ORCStatus, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+28, 4, TRUE);
- break;
-
- case 0x32 : /* ClearConferenceMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_serviceNum, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x33 : /* ServiceURLStatReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_serviceURLIndex, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x34 : /* FeatureStatReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_featureIndex, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x35 : /* CreateConferenceResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_createConfResults, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+20, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+20);
- proto_tree_add_uint(skinny_tree, hf_skinny_passThruData, tvb, offset+24, 1, count);
- break;
-
- case 0x36 : /* DeleteConferenceResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_deleteConfResults, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x37 : /* ModifyConferenceResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_createConfResults, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+20, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+20);
- proto_tree_add_uint(skinny_tree, hf_skinny_passThruData, tvb, offset+24, 1, count);
- break;
-
- case 0x38 : /* AddParticipantResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_addParticipantResults, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x39 : /* AuditConferenceResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_last, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfEntries, tvb, offset+16, 4, TRUE);
- count = offset+20;
- for ( i = 0; i < StationMaxConference; i++ ) {
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_resourceTypes, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfReservedParticipants, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfActiveParticipants, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_appID, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_uint(skinny_tree, hf_skinny_appConfID, tvb, count, 1, AppConferenceIDSize);
- count += AppConferenceIDSize;
- proto_tree_add_uint(skinny_tree, hf_skinny_appData, tvb, count, 1, AppDataSize);
- count += AppDataSize;
- }
- break;
-
- case 0x40 : /* AuditParticipantResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_auditParticipantResults, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_last, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfEntries, tvb, offset+24, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+24);
- for ( i = 0; i < count; i++ ) {
- proto_tree_add_item(skinny_tree, hf_skinny_participantEntry, tvb, offset+28+(i*4), 4, TRUE);
- }
- break;
-
- case 0x41 : /* DeviceToUserDataVersion1Message */
- proto_tree_add_item(skinny_tree, hf_skinny_applicationID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_transactionID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+28, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+28);
- proto_tree_add_item(skinny_tree, hf_skinny_sequenceFlag, tvb, offset+30, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_displayPriority, tvb, offset+34, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+38, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_appInstanceID, tvb, offset+42, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_routingID, tvb, offset+46, 4, TRUE);
- proto_tree_add_uint(skinny_tree, hf_skinny_data, tvb, offset+50, 1, count);
- break;
-
- case 0x42 : /* DeviceToUserDataResponseVersion1Message */
- proto_tree_add_item(skinny_tree, hf_skinny_applicationID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_transactionID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+28, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+28);
- proto_tree_add_item(skinny_tree, hf_skinny_sequenceFlag, tvb, offset+30, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_displayPriority, tvb, offset+34, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+38, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_appInstanceID, tvb, offset+42, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_routingID, tvb, offset+46, 4, TRUE);
- proto_tree_add_uint(skinny_tree, hf_skinny_data, tvb, offset+50, 1, count);
- break;
-
-
- /*
- *
- * Call manager -> client messages start here(ish)
- *
- */
- case 0x81 : /* registerAck */
- proto_tree_add_item(skinny_tree, hf_skinny_keepAliveInterval, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateTemplate, tvb, offset+16, StationDateTemplateSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_secondaryKeepAliveInterval, tvb, offset+24, 4, TRUE);
- break;
-
- case 0x82 : /* startTone */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceTone, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x85 : /* setRingerMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_ringType, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x86 : /* setLampMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_stimulus, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_stimulusInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lampMode, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x87 : /* stationHookFlashDetectMode */
- proto_tree_add_item(skinny_tree, hf_skinny_hookFlashDetectMode, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_detectInterval, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x88 : /* setSpeakerMode */
-
- proto_tree_add_item(skinny_tree, hf_skinny_speakerMode, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x89 : /* setMicroMode */
- proto_tree_add_item(skinny_tree, hf_skinny_microphoneMode, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x8a : /* startMediaTransmistion */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_remoteIpAddr, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_remotePortNumber, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_millisecondPacketSize, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_precedenceValue, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_silenceSuppression, tvb, offset+40, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_maxFramesPerPacket, tvb, offset+44, 2, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+48, 4, TRUE);
- if((!pinfo->fd->flags.visited) && rtp_handle){
- guint32 ipv4_address;
- tvb_memcpy(tvb, (char*)&ipv4_address, offset+20, 4);
- rtp_add_address(pinfo, (char *)&ipv4_address, tvb_get_letohl(tvb, offset+24), 0, "Skinny", pinfo->fd->num);
- }
- break;
-
- case 0x8b : /* stopMediaTransmission */
-
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x8c : /* startMediaReception */
- break;
-
- case 0x8d : /* stopMediaReception */
- break;
-
- case 0x8e : /* reservered */
- break;
-
- case 0x8f : /* callInfo */
- i = offset+12;
- proto_tree_add_item(skinny_tree, hf_skinny_callingPartyName, tvb, i, StationMaxNameSize, TRUE);
- i += StationMaxNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_callingParty, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_skinny_calledPartyName, tvb, i, StationMaxNameSize, TRUE);
- i += StationMaxNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_calledParty, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_callType, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_originalCalledPartyName, tvb, i, StationMaxNameSize, TRUE);
- i += StationMaxNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_originalCalledParty, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_cast_lastRedirectingPartyName, tvb, i, StationMaxNameSize, TRUE);
- i += StationMaxNameSize;
- proto_tree_add_item(skinny_tree, hf_cast_lastRedirectingParty, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_cast_originalCdpnRedirectReason, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_cast_lastRedirectingReason, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_cast_cgpnVoiceMailbox, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_cast_cdpnVoiceMailbox, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_cast_originalCdpnVoiceMailbox, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_cast_lastRedirectingVoiceMailbox, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_cast_callInstance, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_cast_callSecurityStatus, tvb, i, 4, TRUE);
- i += 4;
- val = tvb_get_letohl( tvb, i);
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "partyPIRestrictionBits");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x01, 4*8, "Does RestrictCallingPartyName", "Doesn't RestrictCallingPartyName"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x02, 4*8, "Does RestrictCallingPartyNumber", "Doesn't RestrictCallingPartyNumber"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x04, 4*8, "Does RestrictCalledPartyName", "Doesn't RestrictCalledPartyName"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x08, 4*8, "Does RestrictCalledPartyNumber", "Doesn't RestrictCalledPartyNumber"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x10, 4*8, "Does RestrictOriginalCalledPartyName", "Doesn't RestrictOriginalCalledPartyName"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x20, 4*8, "Does RestrictOriginalCalledPartyNumber", "Doesn't RestrictOriginalCalledPartyNumber"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x40, 4*8, "Does RestrictLastRedirectPartyName", "Doesn't RestrictLastRedirectPartyName"));
- proto_tree_add_text(skinny_sub_tree, tvb, i, 4,
- decode_boolean_bitfield( val, 0x80, 4*8, "Does RestrictLastRedirectPartyNumber", "Doesn't RestrictLastRedirectPartyNumber"));
- break;
-
- case 0x90 : /* forwardStat */
- proto_tree_add_item(skinny_tree, hf_skinny_activeForward, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineNumber, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_forwardAllActive, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_forwardNumber, tvb, offset+24, StationMaxDirnumSize, TRUE);
- i = offset+24+StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_skinny_forwardBusyActive, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_forwardNumber, tvb, i, StationMaxDirnumSize, TRUE);
- i += StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_skinny_forwardNoAnswerActive, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_forwardNumber, tvb, i, StationMaxDirnumSize, TRUE);
- break;
-
- case 0x91 : /* speedDialStatMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_speedDialNumber, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_speedDialDirNumber, tvb, offset+16, StationMaxDirnumSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_speedDialDisplayName, tvb, offset+40, StationMaxNameSize, TRUE);
- break;
-
- case 0x92 : /* lineStatMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_lineNumber, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineDirNumber, tvb, offset+16, StationMaxDirnumSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineFullyQualifiedDisplayName, tvb, offset+16+StationMaxDirnumSize, StationMaxNameSize, TRUE);
- break;
-
- case 0x93 : /* configStat */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceName, tvb, offset+12, StationMaxDeviceNameSize, TRUE);
- i = offset+12+StationMaxDeviceNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_stationUserId, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_stationInstance, tvb, i, 4, TRUE);
- i += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_userName, tvb, i, StationMaxNameSize, TRUE);
- i += StationMaxNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_serverName, tvb, i, StationMaxNameSize, TRUE);
- i += StationMaxNameSize;
- proto_tree_add_item(skinny_tree, hf_skinny_numberLines, tvb, i, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberSpeedDials, tvb, i+4, 4, TRUE);
- break;
-
- case 0x94 : /* stationDefineTimeDate */
- proto_tree_add_item(skinny_tree, hf_skinny_dateYear, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateMonth, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dayOfWeek, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateDay, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateHour, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateMinute, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateSeconds,tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_dateMilliseconds,tvb, offset+40, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_timeStamp, tvb, offset+44, 4, TRUE);
- break;
-
- case 0x95 : /* startSessionTransmission */
- proto_tree_add_item(skinny_tree, hf_skinny_remoteIpAddr, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_sessionType, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x96 : /* stopSessionTransmission */
- proto_tree_add_item(skinny_tree, hf_skinny_remoteIpAddr, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_sessionType, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x97 : /* buttonTemplateMessage */
- /*
- * FIXME
- * This decode prints out oogly subtree maybe? or something besides the VALS...
- * note to self: uint8 != 4 kk thx info ^_^
- *
- */
- proto_tree_add_item(skinny_tree, hf_skinny_buttonOffset, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_buttonCount, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_totalButtonCount, tvb, offset+20, 4, TRUE);
- for (i = 0; i < StationMaxButtonTemplateSize; i++) {
- proto_tree_add_item(skinny_tree, hf_skinny_buttonInstanceNumber, tvb, offset+(i*2)+24, 1, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_buttonDefinition, tvb, offset+(i*2)+25, 1, TRUE);
- }
- break;
-
- case 0x98 : /* version */
- proto_tree_add_item(skinny_tree, hf_skinny_version, tvb, offset+12, StationMaxVersionSize, TRUE);
- break;
-
- case 0x99 : /* displayTextMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_displayMessage, tvb, offset+12, StationMaxDisplayTextSize, TRUE);
- break;
-
- case 0x9c : /* enunciatorCommand */
- proto_tree_add_item(skinny_tree, hf_skinny_mediaEnunciationType, tvb, offset+12, 4, TRUE);
- for (i = 0; i < StationMaxDirnumSize; i++) {
- proto_tree_add_item(skinny_tree, hf_skinny_unknown, tvb, offset+16+(i*4), 4, TRUE);
- }
- i = offset+16+StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_skinny_mediaEnunciationType, tvb, i, 4, TRUE);
- break;
-
- case 0x9d : /* stationRegisterReject */
- proto_tree_add_item(skinny_tree, hf_skinny_displayMessage, tvb, offset+12, StationMaxDisplayTextSize, TRUE);
- break;
-
- case 0x9e : /* serverRes */
- for (i = 0; i < StationMaxServers; i++) {
- proto_tree_add_item(skinny_tree, hf_skinny_serverIdentifier, tvb, offset+12+(i*StationMaxServers), StationMaxServerNameSize, TRUE);
- }
- j = offset+12+(i*StationMaxServers);
- for (i = 0; i < StationMaxServers; i++) {
- proto_tree_add_item(skinny_tree, hf_skinny_serverListenPort, tvb, j+(i*4), 4, TRUE);
- }
- j = j+(i*4);
- for (i = 0; i < StationMaxServers; i++) {
- proto_tree_add_item(skinny_tree, hf_skinny_serverIpAddress, tvb, j+(i*4), 4, TRUE);
- }
- break;
-
- case 0x9f : /* reset */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceResetType, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x101 : /* startMulticastMediaReception*/
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_multicastIpAddress, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_multicastPort, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_millisecondPacketSize, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_echoCancelType, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+40, 4, TRUE);
- break;
-
- case 0x102 : /* startMulticateMediaTermination*/
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_multicastIpAddress, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_multicastPort, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_millisecondPacketSize, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_precedenceValue, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_silenceSuppression, tvb, offset+40, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_maxFramesPerPacket, tvb, offset+44, 2, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+48, 4, TRUE);
- break;
-
- case 0x103 : /* stopMulticastMediaReception*/
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x104 : /* stopMulticastMediaTermination*/
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x105 : /* open receive channel */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_millisecondPacketSize, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_echoCancelType, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+32, 4, TRUE);
- break;
-
- case 0x106 : /* closeReceiveChannel */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x107 : /* connectionStatisticsReq */
-
- i = 12;
- proto_tree_add_item(skinny_tree, hf_skinny_directoryNumber, tvb, i, StationMaxDirnumSize, TRUE);
- i = 12 + StationMaxDirnumSize;
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, i, 4, TRUE);
- i = i+4;
- proto_tree_add_item(skinny_tree, hf_skinny_statsProcessingType, tvb, i, 4, TRUE);
- break;
-
- case 0x108 : /* softkeyTemplateResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_softKeyOffset, tvb, offset+12, 4, TRUE);
- softKeyCount = tvb_get_letohl(tvb, offset+16);
- proto_tree_add_uint(skinny_tree, hf_skinny_softKeyCount, tvb, offset+16, 4, softKeyCount);
- proto_tree_add_item(skinny_tree, hf_skinny_totalSoftKeyCount, tvb, offset+20, 4, TRUE);
- for (i = 0; ((i < StationMaxSoftKeyDefinition) && (i < softKeyCount)); i++){
- proto_tree_add_item(skinny_tree, hf_skinny_softKeyLabel, tvb, offset+(i*20)+24, StationMaxSoftKeyLabelSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_softKeyEvent, tvb, offset+(i*20)+40, 4, TRUE);
- }
- /* there is more data here, but it doesn't make a whole lot of sense, I imagine
- * it's just some not zero'd out stuff in the packet or...
- */
- break;
-
- case 0x109 : /* softkeysetres */
- proto_tree_add_item(skinny_tree, hf_skinny_softKeySetOffset, tvb, offset+12, 4, TRUE);
- softKeySetCount = tvb_get_letohl(tvb, offset+16);
- proto_tree_add_uint(skinny_tree, hf_skinny_softKeySetCount, tvb, offset+16, 4, softKeySetCount);
- proto_tree_add_item(skinny_tree, hf_skinny_totalSoftKeySetCount, tvb, offset+20, 4, TRUE);
- for (i = 0; ((i < StationMaxSoftKeySetDefinition) && (i < softKeySetCount)); i++) {
- proto_tree_add_uint(skinny_tree, hf_skinny_softKeySetDescription, tvb, offset+24+(i*48) , 1, i);
- for (j = 0; j < StationMaxSoftKeyIndex; j++) {
- proto_tree_add_item(skinny_tree, hf_skinny_softKeyTemplateIndex, tvb, offset+24+(i*48)+j, 1, TRUE);
- }
- for (j = 0; j < StationMaxSoftKeyIndex; j++) {
- proto_tree_add_item(skinny_tree, hf_skinny_softKeyInfoIndex, tvb, offset+24+(i*48)+StationMaxSoftKeyIndex+(j*2), 2, TRUE);
- }
- }
- break;
-
- case 0x110 : /* selectSoftKeys */
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_softKeySetDescription, tvb, offset+20, 4, TRUE);
- validKeyMask = tvb_get_letohs(tvb, offset + 24);
- skm = proto_tree_add_uint(skinny_tree, hf_skinny_softKeyMap, tvb, offset + 24, 1, validKeyMask);
- skm_tree = proto_item_add_subtree(skm, ett_skinny_softKeyMap);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey0, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey1, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey2, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey3, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey4, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey5, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey6, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey7, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey8, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey9, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey10, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey11, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey12, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey13, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey14, tvb, offset + 24, 1, validKeyMask);
- proto_tree_add_boolean(skm_tree, hf_skinny_softKey15, tvb, offset + 24, 1, validKeyMask);
- break;
-
- case 0x111 : /* callState */
- proto_tree_add_item(skinny_tree, hf_skinny_callState, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x112 : /* displayPromptStatus */
- proto_tree_add_item(skinny_tree, hf_skinny_messageTimeOutValue, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_displayMessage, tvb, offset+16, StationMaxDisplayPromptStatusSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+48, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+52, 4, TRUE);
- break;
-
- case 0x113: /* clearPrompt */
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance , tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x114 : /* displayNotify */
- proto_tree_add_item(skinny_tree, hf_skinny_messageTimeOutValue, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_displayMessage, tvb, offset+16, StationMaxDisplayNotifySize , TRUE);
- break;
-
- case 0x116 : /* activateCallPlane */
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x118 : /* unregisterAckMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceUnregisterStatus, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x119 : /* backSpaceReq */
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x11B : /* registerTokenReject */
- proto_tree_add_item(skinny_tree, hf_skinny_tokenRejWaitTime, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x11C : /* StartMediaFailureDetection */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_millisecondPacketSize, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_echoCancelType, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_g723BitRate, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+34, 4, TRUE);
- break;
-
- case 0x11D : /* DialedNumberMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_calledParty, tvb, offset+12, StationMaxDirnumSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16+StationMaxDirnumSize, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20+StationMaxDirnumSize, 4, TRUE);
- break;
-
- case 0x11E : /* UserToDeviceDataMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_applicationID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_transactionID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+28, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+28);
- proto_tree_add_uint(skinny_tree, hf_skinny_data, tvb, offset+30, 1, count);
- break;
-
- case 0x11F : /* FeatureStatMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_featureIndex, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_featureID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_featureTextLabel, tvb, offset+20, StationMaxNameSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_featureStatus, tvb, offset+20+StationMaxNameSize, 4, TRUE);
- break;
-
- case 0x120 : /* DisplayPriNotifyMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_messageTimeOutValue, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_priority, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_notify, tvb, offset+16, StationMaxDisplayNotifySize, TRUE);
- break;
-
- case 0x121 : /* ClearPriNotifyMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_priority, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x122 : /* StartAnnouncementMessage */
- count = offset+12;
- for ( i = 0; i < MaxAnnouncementList; i++ ) {
- proto_tree_add_item(skinny_tree, hf_skinny_locale, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_country, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_deviceTone, tvb, count, 4, TRUE);
- count += 4;
- }
- proto_tree_add_item(skinny_tree, hf_skinny_endOfAnnAck, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, count, 4, TRUE);
- count += 4;
-
- for ( i = 0; i < StationMaxMonitorParties; i++ ) {
- proto_tree_add_item(skinny_tree, hf_skinny_matrixConfPartyID, tvb, count, 4, TRUE);
- count += 4;
- }
- proto_tree_add_item(skinny_tree, hf_skinny_hearingConfPartyMask, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_tree, hf_skinny_annPlayMode, tvb, count, 4, TRUE);
- break;
-
- case 0x123 : /* StopAnnouncementMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x124 : /* AnnouncementFinishMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_annPlayStatus, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x127 : /* NotifyDtmfToneMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceTone, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x128 : /* SendDtmfToneMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_deviceTone, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x129 : /* SubscribeDtmfPayloadReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_payloadDtmf, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x12A : /* SubscribeDtmfPayloadResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_payloadDtmf, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x12B : /* SubscribeDtmfPayloadErrMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_payloadDtmf, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x12C : /* UnSubscribeDtmfPayloadReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_payloadDtmf, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x12D : /* UnSubscribeDtmfPayloadResMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_payloadDtmf, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x12E : /* UnSubscribeDtmfPayloadErrMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_payloadDtmf, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x12F : /* ServiceURLStatMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_serviceURLIndex, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_serviceURL, tvb, offset+12, StationMaxServiceURLSize, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_serviceURLDisplayName, tvb, offset+12, StationMaxNameSize, TRUE);
- break;
-
- case 0x130 : /* CallSelectStatMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_callSelectStat, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x131 : /* OpenMultiMediaChannelMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payload_rfc_number, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadType, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_isConferenceCreator, tvb, offset+40, 4, TRUE);
-
- /* add audio part of union */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 12, "audioParameters");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_millisecondPacketSize, tvb, offset+44, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_echoCancelType, tvb, offset+48, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_g723BitRate, tvb, offset+52, 4, TRUE);
-
- /* add video part of union */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 30, "vidParameters");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_bitRate, tvb, offset+44, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureFormatCount, tvb, offset+48, 4, TRUE);
- skinny_sub_tree_sav = skinny_sub_tree;
- count = offset+52;
- for ( i = 0; i < MAX_PICTURE_FORMAT; i++ ) {
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8 * MAX_PICTURE_FORMAT, "pictureFormat[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_format, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_MPI, tvb, count, 4, TRUE);
- count += 4;
- }
- skinny_sub_tree = skinny_sub_tree_sav;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_confServiceNum, tvb, count, 4, TRUE);
- count += 4;
-
- val = count;
- /* add H261 part of union */
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h261VideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_temporalSpatialTradeOffCapability, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_stillImageTransmission, tvb, count, 4, TRUE);
-
- /* add H263 part of union */
- count = val;
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h263VideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_h263_capability_bitfield, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_annexNandWFutureUse, tvb, count, 4, TRUE);
-
- /* add Vieo part of union */
- count = val;
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "vieoVideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_modelNumber, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_bandwidth, tvb, count, 4, TRUE);
-
- /* add data part of union */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "dataParameters");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_protocolDependentData, tvb, offset+44, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, offset+48, 4, TRUE);
- break;
-
- case 0x132 : /* StartMultiMediaTransmission */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadCapability, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_ipAddress, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_portNumber, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payload_rfc_number, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_payloadType, tvb, offset+40, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_DSCPValue, tvb, offset+44, 4, TRUE);
-
- /* add audio part of union */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 12, "audioParameters");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_millisecondPacketSize, tvb, offset+48, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_echoCancelType, tvb, offset+52, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_g723BitRate, tvb, offset+56, 4, TRUE);
-
- /* add video part of union */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 30, "vidParameters");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_bitRate, tvb, offset+48, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureFormatCount, tvb, offset+52, 4, TRUE);
- skinny_sub_tree_sav = skinny_sub_tree;
- count = offset+56;
- for ( i = 0; i < MAX_PICTURE_FORMAT; i++ ) {
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8 * MAX_PICTURE_FORMAT, "pictureFormat[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_format, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_MPI, tvb, count, 4, TRUE);
- count += 4;
- }
- skinny_sub_tree = skinny_sub_tree_sav;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_confServiceNum, tvb, count, 4, TRUE);
- count += 4;
-
- val = count;
- /* add H261 part of union */
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h261VideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_temporalSpatialTradeOffCapability, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_stillImageTransmission, tvb, count, 4, TRUE);
-
- /* add H263 part of union */
- count = val;
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "h263VideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_h263_capability_bitfield, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_annexNandWFutureUse, tvb, count, 4, TRUE);
-
- /* add Vieo part of union */
- count = val;
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "vieoVideoCapability");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_modelNumber, tvb, count, 4, TRUE);
- count += 4;
- proto_tree_add_item(skinny_sub_tree, hf_skinny_bandwidth, tvb, count, 4, TRUE);
-
- /* add data part of union */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "dataParameters");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_protocolDependentData, tvb, offset+48, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_maxBitRate, tvb, offset+52, 4, TRUE);
- break;
-
- case 0x133 : /* StopMultiMediaTransmission */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x134 : /* MiscellaneousCommandMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_miscCommandType, tvb, offset+24, 4, TRUE);
-
- /* show videoFreezePicture */
- /* not sure of format */
-
- /* show videoFastUpdatePicture */
- /* not sure of format */
-
- /* show videoFastUpdateGOB */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "videoFastUpdateGOB");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_firstGOB, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_numberOfGOBs, tvb, offset+32, 4, TRUE);
-
- /* show videoFastUpdateMB */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "videoFastUpdateGOB");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_firstGOB, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_firstMB, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_numberOfMBs, tvb, offset+36, 4, TRUE);
-
- /* show lostPicture */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "lostPicture");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureNumber, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_longTermPictureIndex, tvb, offset+32, 4, TRUE);
-
- /* show lostPartialPicture */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "lostPartialPicture");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureNumber, tvb, offset+28, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_longTermPictureIndex, tvb, offset+32, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_firstMB, tvb, offset+36, 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_numberOfMBs, tvb, offset+40, 4, TRUE);
-
- /* show recoveryReferencePicture */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 8, "recoveryReferencePicture");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_recoveryReferencePictureCount, tvb, offset+28, 4, TRUE);
- skinny_sub_tree_sav = skinny_sub_tree;
- for ( i = 0; i < MAX_REFERENCE_PICTURE; i++ ) {
- ti_sub = proto_tree_add_text(skinny_sub_tree_sav, tvb, offset, 8, "recoveryReferencePicture[%d]", i);
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_pictureNumber, tvb, offset+32+(i*8), 4, TRUE);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_longTermPictureIndex, tvb, offset+36+(i*8), 4, TRUE);
- }
-
- /* show temporalSpatialTradeOff */
- ti_sub = proto_tree_add_text(skinny_tree, tvb, offset, 4, "temporalSpatialTradeOff");
- skinny_sub_tree = proto_item_add_subtree(ti_sub, ett_skinny_tree);
- proto_tree_add_item(skinny_sub_tree, hf_skinny_temporalSpatialTradeOff, tvb, offset+28, 4, TRUE);
- break;
-
- case 0x135 : /* FlowControlCommandMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_maxBitRate, tvb, offset+24, 4, TRUE);
- break;
-
- case 0x136 : /* CloseMultiMediaReceiveChannel */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_passThruPartyID, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- break;
-
- case 0x137 : /* CreateConferenceReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfReservedParticipants, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_resourceTypes, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_appID, tvb, offset+20, 4, TRUE);
- count = offset+24;
- proto_tree_add_uint(skinny_tree, hf_skinny_appConfID, tvb, count, 1, AppConferenceIDSize);
- count += AppConferenceIDSize;
- proto_tree_add_uint(skinny_tree, hf_skinny_appData, tvb, count, 1, AppDataSize);
- count += AppDataSize;
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, count, 4, TRUE);
- val = tvb_get_letohl( tvb, count);
- count += 4;
- proto_tree_add_uint(skinny_tree, hf_skinny_passThruData, tvb, count, 1, val);
- break;
-
- case 0x138 : /* DeleteConferenceReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x139 : /* ModifyConferenceReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_numberOfReservedParticipants, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_appID, tvb, offset+20, 4, TRUE);
- count = offset+24;
- proto_tree_add_uint(skinny_tree, hf_skinny_appConfID, tvb, count, 1, AppConferenceIDSize);
- count += AppConferenceIDSize;
- proto_tree_add_uint(skinny_tree, hf_skinny_appData, tvb, count, 1, AppDataSize);
- count += AppDataSize;
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, count, 4, TRUE);
- val = tvb_get_letohl( tvb, count);
- count += 4;
- proto_tree_add_uint(skinny_tree, hf_skinny_passThruData, tvb, count, 1, val);
- break;
-
- case 0x13A : /* AddParticipantReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x13B : /* DropParticipantReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+16, 4, TRUE);
- break;
-
- case 0x13D : /* AuditParticipantReqMessage */
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+12, 4, TRUE);
- break;
-
- case 0x13F : /* UserToDeviceDataVersion1Message */
- proto_tree_add_item(skinny_tree, hf_skinny_applicationID, tvb, offset+12, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_lineInstance, tvb, offset+16, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_callIdentifier, tvb, offset+20, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_transactionID, tvb, offset+24, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_data_length, tvb, offset+28, 4, TRUE);
- count = tvb_get_letohl( tvb, offset+28);
- proto_tree_add_item(skinny_tree, hf_skinny_sequenceFlag, tvb, offset+30, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_displayPriority, tvb, offset+34, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_conferenceID, tvb, offset+38, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_appInstanceID, tvb, offset+42, 4, TRUE);
- proto_tree_add_item(skinny_tree, hf_skinny_routingID, tvb, offset+46, 4, TRUE);
- proto_tree_add_uint(skinny_tree, hf_skinny_data, tvb, offset+50, 1, count);
- break;
-
-
- default:
- break;
- }
- }
-}
-
-/* Code to actually dissect the packets */
-static void dissect_skinny(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-{
- /* The general structure of a packet: {IP-Header|TCP-Header|n*SKINNY}
- * SKINNY-Packet: {Header(Size, Reserved)|Data(MessageID, Message-Data)}
- */
- /* Header fields */
- volatile guint32 hdr_data_length;
- guint32 hdr_reserved;
-
- /* check, if this is really an SKINNY packet, they start with a length + 0 */
-
- /* get relevant header information */
- hdr_data_length = tvb_get_letohl(tvb, 0);
- hdr_reserved = tvb_get_letohl(tvb, 4);
-
- /* data_size = MIN(8+hdr_data_length, tvb_length(tvb)) - 0xC; */
-
- if (hdr_data_length < 4 || hdr_reserved != 0) {
- /* Not an SKINNY packet, just happened to use the same port */
- call_dissector(data_handle,tvb, pinfo, tree);
- return;
- }
-
- /* Make entries in Protocol column and Info column on summary display */
- if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "SKINNY");
- }
-
- if (check_col(pinfo->cinfo, COL_INFO)) {
- col_set_str(pinfo->cinfo, COL_INFO, "Skinny Client Control Protocol");
- }
-
- tcp_dissect_pdus(tvb, pinfo, tree, skinny_desegment, 4,
- get_skinny_pdu_len, dissect_skinny_pdu);
-}
-
-/* Register the protocol with Ethereal */
-void
-proto_register_skinny(void)
-{
-
- /* Setup list of header fields */
- static hf_register_info hf[] = {
- { &hf_skinny_data_length,
- { "Data Length", "skinny.data_length",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Number of bytes in the data portion.",
- HFILL }
- },
- { &hf_skinny_reserved,
- { "Reserved", "skinny.reserved",
- FT_UINT32, BASE_HEX, NULL, 0x0,
- "Reserved for future(?) use.",
- HFILL }
- },
- /* FIXME: Enable use of message name ??? */
- { &hf_skinny_messageid,
- { "Message ID", "skinny.messageid",
- FT_UINT32, BASE_HEX, VALS(message_id), 0x0,
- "The function requested/done with this message.",
- HFILL }
- },
-
- { &hf_skinny_deviceName,
- { "DeviceName", "skinny.deviceName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The device name of the phone.",
- HFILL }
- },
-
- { &hf_skinny_stationUserId,
- { "StationUserId", "skinny.stationUserId",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The station user id.",
- HFILL }
- },
-
- { &hf_skinny_stationInstance,
- { "StationInstance", "skinny.stationInstance",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The stations instance.",
- HFILL }
- },
-
- { &hf_skinny_deviceType,
- { "DeviceType", "skinny.deviceType",
- FT_UINT32, BASE_DEC, VALS(deviceTypes), 0x0,
- "DeviceType of the station.",
- HFILL }
- },
-
- { &hf_skinny_maxStreams,
- { "MaxStreams", "skinny.maxStreams",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "32 bit unsigned integer indicating the maximum number of simultansous RTP duplex streams that the client can handle.",
- HFILL }
- },
-
- { &hf_skinny_stationIpPort,
- { "StationIpPort", "skinny.stationIpPort",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "The station IP port",
- HFILL }
- },
-
- { &hf_skinny_stationKeypadButton,
- { "KeypadButton", "skinny.stationKeypadButton",
- FT_UINT32, BASE_HEX, VALS(keypadButtons), 0x0,
- "The button pressed on the phone.",
- HFILL }
- },
-
- { &hf_skinny_calledParty,
- { "CalledParty", "skinny.calledParty",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The number called.",
- HFILL }
- },
-
- { &hf_skinny_stimulus,
- { "Stimulus", "skinny.stimulus",
- FT_UINT32, BASE_HEX, VALS(deviceStimuli), 0x0,
- "Reason for the device stimulus message.",
- HFILL }
- },
-
- { &hf_skinny_stimulusInstance,
- { "StimulusInstance", "skinny.stimulusInstance",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The instance of the stimulus",
- HFILL }
- },
-
- { &hf_skinny_lineNumber,
- { "LineNumber", "skinny.lineNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Line Number",
- HFILL }
- },
-
- { &hf_skinny_speedDialNumber,
- { "SpeedDialNumber", "skinny.speedDialNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Which speed dial number",
- HFILL }
- },
-
- { &hf_skinny_capCount,
- { "CapCount", "skinny.capCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "How many capabilities",
- HFILL }
- },
-
- { &hf_skinny_payloadCapability,
- { "PayloadCapability", "skinny.payloadCapability",
- FT_UINT32, BASE_DEC, VALS(mediaPayloads), 0x0,
- "The payload capability for this media capability structure.",
- HFILL }
- },
-
- { &hf_skinny_maxFramesPerPacket,
- { "MaxFramesPerPacket", "skinny.maxFramesPerPacket",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "Max frames per packet",
- HFILL }
- },
-
- { &hf_skinny_alarmSeverity,
- { "AlarmSeverity", "skinny.alarmSeverity",
- FT_UINT32, BASE_DEC, VALS(alarmSeverities), 0x0,
- "The severity of the reported alarm.",
- HFILL }
- },
-
- { &hf_skinny_alarmParam1,
- { "AlarmParam1", "skinny.alarmParam1",
- FT_UINT32, BASE_HEX, NULL, 0x0,
- "An as yet undecoded param1 value from the alarm message",
- HFILL }
- },
-
- { &hf_skinny_alarmParam2,
- { "AlarmParam2", "skinny.alarmParam2",
- FT_IPv4, BASE_NONE, NULL, 0x0,
- "This is the second alarm parameter i think it's an ip address",
- HFILL }
- },
-
- { &hf_skinny_receptionStatus,
- { "ReceptionStatus", "skinny.receptionStatus",
- FT_UINT32, BASE_DEC, VALS(multicastMediaReceptionStatus), 0x0,
- "The current status of the multicast media.",
- HFILL }
- },
-
- { &hf_skinny_passThruPartyID,
- { "PassThruPartyID", "skinny.passThruPartyID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The pass thru party id",
- HFILL }
- },
-
- { &hf_skinny_ORCStatus,
- { "OpenReceiveChannelStatus", "skinny.openReceiveChannelStatus",
- FT_UINT32, BASE_DEC, VALS(openReceiveChanStatus), 0x0,
- "The status of the opened receive channel.",
- HFILL }
- },
-
- { &hf_skinny_ipAddress,
- { "IP Address", "skinny.ipAddress",
- FT_IPv4, BASE_NONE, NULL, 0x0,
- "An IP address",
- HFILL }
- },
-
- { &hf_skinny_portNumber,
- { "Port Number", "skinny.portNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "A port number",
- HFILL }
- },
-
- { &hf_skinny_statsProcessingType,
- { "StatsProcessingType", "skinny.statsProcessingType",
- FT_UINT32, BASE_DEC, VALS(statsProcessingTypes), 0x0,
- "What do do after you send the stats.",
- HFILL }
- },
-
- { &hf_skinny_callIdentifier,
- { "Call Identifier", "skinny.callIdentifier",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Call identifier for this call.",
- HFILL }
- },
-
- { &hf_skinny_packetsSent,
- { "Packets Sent", "skinny.packetsSent",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Packets Sent during the call.",
- HFILL }
- },
-
- { &hf_skinny_octetsSent,
- { "Octets Sent", "skinny.octetsSent",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Octets sent during the call.",
- HFILL }
- },
-
- { &hf_skinny_packetsRecv,
- { "Packets Received", "skinny.packetsRecv",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Packets received during the call.",
- HFILL }
- },
-
- { &hf_skinny_octetsRecv,
- { "Octets Received", "skinny.octetsRecv",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Octets received during the call.",
- HFILL }
- },
-
- { &hf_skinny_packetsLost,
- { "Packets Lost", "skinny.packetsLost",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Packets lost during the call.",
- HFILL }
- },
-
- { &hf_skinny_latency,
- { "Latency(ms)", "skinny.latency",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Average packet latency during the call.",
- HFILL }
- },
-
- { &hf_skinny_jitter,
- { "Jitter", "skinny.jitter",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Average jitter during the call.",
- HFILL }
- },
-
- { &hf_skinny_directoryNumber,
- { "Directory Number", "skinny.directoryNumber",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The number we are reporting statistics for.",
- HFILL }
- },
-
- { &hf_skinny_lineInstance,
- { "Line Instance", "skinny.lineInstance",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The display call plane associated with this call.",
- HFILL }
- },
-
- { &hf_skinny_softKeyEvent,
- { "SoftKeyEvent", "skinny.softKeyEvent",
- FT_UINT32, BASE_DEC, VALS(softKeyEvents), 0x0,
- "Which softkey event is being reported.",
- HFILL }
- },
-
- { &hf_skinny_keepAliveInterval,
- { "KeepAliveInterval", "skinny.keepAliveInterval",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "How often are keep alives exchanges between the client and the call manager.",
- HFILL }
- },
-
- { &hf_skinny_secondaryKeepAliveInterval,
- { "SecondaryKeepAliveInterval", "skinny.secondaryKeepAliveInterval",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "How often are keep alives exchanges between the client and the secondary call manager.",
- HFILL }
- },
-
- { &hf_skinny_dateTemplate,
- { "DateTemplate", "skinny.dateTemplate",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The display format for the date/time on the phone.",
- HFILL }
- },
-
- { &hf_skinny_buttonOffset,
- { "ButtonOffset", "skinny.buttonOffset",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Offset is the number of the first button referenced by this message.",
- HFILL }
- },
-
- { &hf_skinny_buttonCount,
- { "ButtonCount", "skinny.buttonCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Number of (VALID) button definitions in this message.",
- HFILL }
- },
-
- { &hf_skinny_totalButtonCount,
- { "TotalButtonCount", "skinny.totalButtonCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The total number of buttons defined for this phone.",
- HFILL }
- },
-
- { &hf_skinny_buttonInstanceNumber,
- { "InstanceNumber", "skinny.buttonInstanceNumber",
- FT_UINT8, BASE_HEX, VALS(keypadButtons), 0x0,
- "The button instance number for a button or the StationKeyPad value, repeats allowed.",
- HFILL }
- },
-
- { &hf_skinny_buttonDefinition,
- { "ButtonDefinition", "skinny.buttonDefinition",
- FT_UINT8, BASE_HEX, VALS(buttonDefinitions), 0x0,
- "The button type for this instance (ie line, speed dial, ....",
- HFILL }
- },
-
- { &hf_skinny_softKeyOffset,
- { "SoftKeyOffset", "skinny.softKeyOffset",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The offset for the first soft key in this message.",
- HFILL }
- },
-
- { &hf_skinny_softKeyCount,
- { "SoftKeyCount", "skinny.softKeyCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The number of valid softkeys in this message.",
- HFILL }
- },
-
- { &hf_skinny_totalSoftKeyCount,
- { "TotalSoftKeyCount", "skinny.totalSoftKeyCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The total number of softkeys for this device.",
- HFILL }
- },
-
- { &hf_skinny_softKeyLabel,
- { "SoftKeyLabel", "skinny.softKeyLabel",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The text label for this soft key.",
- HFILL }
- },
-
- { &hf_skinny_softKeySetOffset,
- { "SoftKeySetOffset", "skinny.softKeySetOffset",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The offset for the first soft key set in this message.",
- HFILL }
- },
-
- { &hf_skinny_softKeySetCount,
- { "SoftKeySetCount", "skinny.softKeySetCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The number of valid softkey sets in this message.",
- HFILL }
- },
-
- { &hf_skinny_totalSoftKeySetCount,
- { "TotalSoftKeySetCount", "skinny.totalSoftKeySetCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The total number of softkey sets for this device.",
- HFILL }
- },
-
- { &hf_skinny_softKeyTemplateIndex,
- { "SoftKeyTemplateIndex", "skinny.softKeyTemplateIndex",
- FT_UINT8, BASE_DEC, VALS(softKeyEvents), 0x0,
- "Array of size 16 8-bit unsigned ints containing an index into the softKeyTemplate.",
- HFILL }
- },
-
- { &hf_skinny_softKeyInfoIndex,
- { "SoftKeyInfoIndex", "skinny.softKeyInfoIndex",
- FT_UINT16, BASE_DEC, VALS(softKeyIndexes), 0x0,
- "Array of size 16 16-bit unsigned integers containing an index into the soft key description information.",
- HFILL }
- },
-
- { &hf_skinny_softKeySetDescription,
- { "SoftKeySet", "skinny.softKeySetDescription",
- FT_UINT8, BASE_DEC, VALS(keySetNames), 0x0,
- "A text description of what this softkey when this softkey set is displayed",
- HFILL }
- },
-
- { &hf_skinny_softKeyMap,
- { "SoftKeyMap","skinny.softKeyMap",
- FT_UINT16, BASE_HEX, NULL, 0x0,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey0,
- { "SoftKey0", "skinny.softKeyMap.0",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY0,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey1,
- { "SoftKey1", "skinny.softKeyMap.1",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY1,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey2,
- { "SoftKey2", "skinny.softKeyMap.2",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY2,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey3,
- { "SoftKey3", "skinny.softKeyMap.3",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY3,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey4,
- { "SoftKey4", "skinny.softKeyMap.4",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY4,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey5,
- { "SoftKey5", "skinny.softKeyMap.5",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY5,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey6,
- { "SoftKey6", "skinny.softKeyMap.6",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY6,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey7,
- { "SoftKey7", "skinny.softKeyMap.7",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY7,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey8,
- { "SoftKey8", "skinny.softKeyMap.8",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY8,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey9,
- { "SoftKey9", "skinny.softKeyMap.9",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY9,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey10,
- { "SoftKey10", "skinny.softKeyMap.10",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY10,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey11,
- { "SoftKey11", "skinny.softKeyMap.11",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY11,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey12,
- { "SoftKey12", "skinny.softKeyMap.12",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY12,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey13,
- { "SoftKey13", "skinny.softKeyMap.13",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY13,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey14,
- { "SoftKey14", "skinny.softKeyMap.14",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY14,
- "",
- HFILL }
- },
-
- { &hf_skinny_softKey15,
- { "SoftKey15", "skinny.softKeyMap.15",
- FT_BOOLEAN, 16, TFS(&softKeyMapValues), SKINNY_SOFTKEY15,
- "",
- HFILL }
- },
-
- { &hf_skinny_lampMode,
- { "LampMode", "skinny.lampMode",
- FT_UINT32, BASE_DEC, VALS(stationLampModes), 0x0,
- "The lamp mode",
- HFILL }
- },
-
- { &hf_skinny_messageTimeOutValue,
- { "Message Timeout", "skinny.messageTimeOutValue",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The timeout in seconds for this message",
- HFILL }
- },
-
- { &hf_skinny_displayMessage,
- { "DisplayMessage", "skinny.displayMessage",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The message displayed on the phone.",
- HFILL }
- },
-
- { &hf_skinny_lineDirNumber,
- { "Line Dir Number", "skinny.lineDirNumber",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The directory number for this line.",
- HFILL }
- },
-
- { &hf_skinny_lineFullyQualifiedDisplayName,
- { "DisplayName", "skinny.fqdn",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The full display name for this line.",
- HFILL }
- },
-
- { &hf_skinny_speedDialDirNumber,
- { "SpeedDial Number", "skinny.speedDialDirNum",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "the number to dial for this speed dial.",
- HFILL }
- },
-
- { &hf_skinny_speedDialDisplayName,
- { "SpeedDial Display", "skinny.speedDialDisplay",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The text to display for this speed dial.",
- HFILL }
- },
-
- { &hf_skinny_dateYear,
- { "Year", "skinny.year",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The current year",
- HFILL }
- },
-
- { &hf_skinny_dateMonth,
- { "Month", "skinny.month",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The current month",
- HFILL }
- },
-
- { &hf_skinny_dayOfWeek,
- { "DayOfWeek", "skinny.dayOfWeek",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The day of the week",
- HFILL }
- },
-
- { &hf_skinny_dateDay,
- { "Day", "skinny.day",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The day of the current month",
- HFILL }
- },
-
- { &hf_skinny_dateHour,
- { "Hour", "skinny.hour",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Hour of the day",
- HFILL }
- },
-
- { &hf_skinny_dateMinute,
- { "Minute", "skinny.minute",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Minute",
- HFILL }
- },
-
- { &hf_skinny_dateSeconds,
- { "Seconds", "skinny.dateSeconds",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Seconds",
- HFILL }
- },
-
- { &hf_skinny_dateMilliseconds,
- { "Milliseconds", "skinny.dateMilliseconds",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Milliseconds",
- HFILL }
- },
-
- { &hf_skinny_timeStamp,
- { "Timestamp", "skinny.timeStamp",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Time stamp for the call reference",
- HFILL }
- },
- { &hf_skinny_callState,
- { "CallState", "skinny.callState",
- FT_UINT32, BASE_DEC, VALS(skinny_stationCallStates), 0x0,
- "The D channel call state of the call",
- HFILL }
- },
-
- { &hf_skinny_deviceTone,
- { "Tone", "skinny.deviceTone",
- FT_UINT32, BASE_HEX, VALS(skinny_deviceTones), 0x0,
- "Which tone to play",
- HFILL }
- },
-
- { &hf_skinny_callingPartyName,
- { "Calling Party Name", "skinny.callingPartyName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The passed name of the calling party.",
- HFILL }
- },
-
- { &hf_skinny_callingParty,
- { "Calling Party", "skinny.callingPartyName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The passed number of the calling party.",
- HFILL }
- },
-
- { &hf_skinny_calledPartyName,
- { "Called Party Name", "skinny.calledPartyName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The name of the party we are calling.",
- HFILL }
- },
-
- { &hf_skinny_callType,
- { "Call Type", "skinny.callType",
- FT_UINT32, BASE_DEC, VALS(skinny_callTypes), 0x0,
- "What type of call, in/out/etc",
- HFILL }
- },
-
- { &hf_skinny_originalCalledPartyName,
- { "Original Called Party Name", "skinny.originalCalledPartyName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "name of the original person who placed the call.",
- HFILL }
- },
-
- { &hf_skinny_originalCalledParty,
- { "Original Called Party", "skinny.originalCalledParty",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The number of the original calling party.",
- HFILL }
- },
-
- { &hf_skinny_ringType,
- { "Ring Type", "skinny.ringType",
- FT_UINT32, BASE_HEX, VALS(skinny_ringTypes), 0x0,
- "What type of ring to play",
- HFILL }
- },
-
- { &hf_skinny_speakerMode,
- { "Speaker", "skinny.speakerMode",
- FT_UINT32, BASE_HEX, VALS(skinny_speakerModes), 0x0,
- "This message sets the speaker mode on/off",
- HFILL }
- },
-
- { &hf_skinny_remoteIpAddr,
- { "Remote Ip Address", "skinny.remoteIpAddr",
- FT_IPv4, BASE_NONE, NULL, 0x0,
- "The remote end ip address for this stream",
- HFILL }
- },
-
- { &hf_skinny_remotePortNumber,
- { "Remote Port", "skinny.remotePortNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The remote port number listening for this stream",
- HFILL }
- },
-
- { &hf_skinny_millisecondPacketSize,
- { "MS/Packet", "skinny.millisecondPacketSize",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The number of milliseconds of conversation in each packet",
- HFILL }
- },
-
- { &hf_skinny_precedenceValue,
- { "Precedence", "skinny.precedenceValue",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Precedence value",
- HFILL }
- },
-
- { &hf_skinny_silenceSuppression,
- { "Silence Suppression", "skinny.silenceSuppression",
- FT_UINT32, BASE_HEX, VALS(skinny_silenceSuppressionModes), 0x0,
- "Mode for silence suppression",
- HFILL }
- },
-
- { &hf_skinny_g723BitRate,
- { "G723 BitRate", "skinny.g723BitRate",
- FT_UINT32, BASE_DEC, VALS(skinny_g723BitRates), 0x0,
- "The G723 bit rate for this stream/JUNK if not g723 stream",
- HFILL }
- },
-
- { &hf_skinny_conferenceID,
- { "Conference ID", "skinny.conferenceID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The conference ID",
- HFILL }
- },
-
- { &hf_skinny_deviceResetType,
- { "Reset Type", "skinny.deviceResetType",
- FT_UINT32, BASE_DEC, VALS(skinny_deviceResetTypes), 0x0,
- "How the devices it to be reset (reset/restart)",
- HFILL }
- },
-
- { &hf_skinny_echoCancelType,
- { "Echo Cancel Type", "skinny.echoCancelType",
- FT_UINT32, BASE_DEC, VALS(skinny_echoCancelTypes), 0x0,
- "Is echo cancelling enabled or not",
- HFILL }
- },
-
- { &hf_skinny_deviceUnregisterStatus,
- { "Unregister Status", "skinny.deviceUnregisterStatus",
- FT_UINT32, BASE_DEC, VALS(skinny_deviceUnregisterStatusTypes), 0x0,
- "The status of the device unregister request (*CAN* be refused)",
- HFILL }
- },
-
- { &hf_skinny_hookFlashDetectMode,
- { "Hook Flash Mode", "skinny.hookFlashDetectMode",
- FT_UINT32, BASE_DEC, VALS(skinny_hookFlashDetectModes), 0x0,
- "Which method to use to detect that a hook flash has occured",
- HFILL }
- },
-
- { &hf_skinny_detectInterval,
- { "HF Detect Interval", "skinny.detectInterval",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The number of milliseconds that determines a hook flash has occured",
- HFILL }
- },
-
- { &hf_skinny_headsetMode,
- { "Headset Mode", "skinny.headsetMode",
- FT_UINT32, BASE_DEC, VALS(skinny_headsetModes), 0x0,
- "Turns on and off the headset on the set",
- HFILL }
- },
-
- { &hf_skinny_microphoneMode,
- { "Microphone Mode", "skinny.microphoneMode",
- FT_UINT32, BASE_DEC, VALS(skinny_microphoneModes), 0x0,
- "Turns on and off the microphone on the set",
- HFILL }
- },
-
- { &hf_skinny_activeForward,
- { "Active Forward", "skinny.activeForward",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "This is non zero to indicate that a forward is active on the line",
- HFILL }
- },
-
- { &hf_skinny_forwardAllActive,
- { "Forward All", "skinny.forwardAllActive",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Forward all calls",
- HFILL }
- },
-
- { &hf_skinny_forwardBusyActive,
- { "Forward Busy", "skinny.forwardBusyActive",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Forward calls when busy",
- HFILL }
- },
-
- { &hf_skinny_forwardNoAnswerActive,
- { "Forward NoAns", "skinny.forwardNoAnswerActive",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Forward only when no answer",
- HFILL }
- },
-
- { &hf_skinny_forwardNumber,
- { "Forward Number", "skinny.forwardNumber",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The number to forward calls to.",
- HFILL }
- },
-
- { &hf_skinny_userName,
- { "Username", "skinny.userName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "Username for this device.",
- HFILL }
- },
-
- { &hf_skinny_serverName,
- { "Server Name", "skinny.serverName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The server name for this device.",
- HFILL }
- },
-
- { &hf_skinny_numberLines,
- { "Number of Lines", "skinny.numberLines",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "How many lines this device has",
- HFILL }
- },
-
- { &hf_skinny_numberSpeedDials,
- { "Number of SpeedDials", "skinny.numberSpeedDials",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The number of speed dials this device has",
- HFILL }
- },
-
- { &hf_skinny_sessionType,
- { "Session Type", "skinny.sessionType",
- FT_UINT32, BASE_DEC, VALS(skinny_sessionTypes), 0x0,
- "The type of this session.",
- HFILL }
- },
-
- { &hf_skinny_version,
- { "Version", "skinny.version",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "Version.",
- HFILL }
- },
-
- { &hf_skinny_mediaEnunciationType,
- { "Enunciation Type", "skinny.mediaEnunciationType",
- FT_UINT32, BASE_DEC, VALS(skinny_mediaEnunciationTypes), 0x0,
- "No clue.",
- HFILL }
- },
-
- { &hf_skinny_serverIdentifier,
- { "Server Identifier", "skinny.serverIdentifier",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "Server Identifier.",
- HFILL }
- },
-
- { &hf_skinny_serverListenPort,
- { "Server Port", "skinny.serverListenPort",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The port the server listens on.",
- HFILL }
- },
-
- { &hf_skinny_serverIpAddress,
- { "Server Ip Address", "skinny.serverIpAddress",
- FT_IPv4, BASE_NONE, NULL, 0x0,
- "The IP address for this server",
- HFILL }
- },
-
- { &hf_skinny_multicastPort,
- { "Multicast Port", "skinny.multicastPort",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The multicast port the to listens on.",
- HFILL }
- },
-
- { &hf_skinny_multicastIpAddress,
- { "Multicast Ip Address", "skinny.multicastIpAddress",
- FT_IPv4, BASE_NONE, NULL, 0x0,
- "The multicast address for this conference",
- HFILL }
- },
-
- { &hf_skinny_tokenRejWaitTime,
- { "Retry Wait Time", "skinny.tokenRejWaitTime",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "The time to wait before retrying this token request.",
- HFILL }
- },
-
- { &hf_skinny_unknown,
- { "Data", "skinny.unknown",
- FT_UINT32, BASE_HEX, NULL, 0x0,
- "Place holder for unknown data.",
- HFILL }
- },
-
- { &hf_skinny_data,
- { "Data", "skinny.data",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- "dataPlace holder for unknown data.",
- HFILL }
- },
-
- { &hf_skinny_numberOfInServiceStreams,
- { "NumberOfInServiceStreams", "skinny.numberOfInServiceStreams",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Number of in service streams.",
- HFILL }
- },
-
- { &hf_skinny_maxStreamsPerConf,
- { "MaxStreamsPerConf", "skinny.maxStreamsPerConf",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Maximum number of streams per conference.",
- HFILL }
- },
-
- { &hf_skinny_numberOfOutOfServiceStreams,
- { "NumberOfOutOfServiceStreams", "skinny.numberOfOutOfServiceStreams",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Number of out of service streams.",
- HFILL }
- },
-
- { &hf_skinny_applicationID,
- { "ApplicationID", "skinny.applicationID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Application ID.",
- HFILL }
- },
-
- { &hf_skinny_transactionID,
- { "TransactionID", "skinny.transactionID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Transaction ID.",
- HFILL }
- },
-
- { &hf_skinny_serviceNum,
- { "ServiceNum", "skinny.serviceNum",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ServiceNum.",
- HFILL }
- },
-
- { &hf_skinny_serviceURLIndex,
- { "serviceURLIndex", "skinny.serviceURLIndex",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "serviceURLIndex.",
- HFILL }
- },
-
- { &hf_skinny_featureIndex,
- { "FeatureIndex", "skinny.featureIndex",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "FeatureIndex.",
- HFILL }
- },
-
- { &hf_skinny_createConfResults,
- { "CreateConfResults", "skinny.createConfResults",
- FT_UINT32, BASE_DEC, VALS(skinny_createConfResults), 0x0,
- "The create conference results",
- HFILL }
- },
-
- { &hf_skinny_modifyConfResults,
- { "ModifyConfResults", "skinny.modifyConfResults",
- FT_UINT32, BASE_DEC, VALS(skinny_modifyConfResults), 0x0,
- "The modify conference results",
- HFILL }
- },
-
- { &hf_skinny_deleteConfResults,
- { "DeleteConfResults", "skinny.deleteConfResults",
- FT_UINT32, BASE_DEC, VALS(skinny_deleteConfResults), 0x0,
- "The delete conference results",
- HFILL }
- },
-
- { &hf_skinny_addParticipantResults,
- { "AddParticipantResults", "skinny.addParticipantResults",
- FT_UINT32, BASE_DEC, VALS(skinny_addParticipantResults), 0x0,
- "The add conference participant results",
- HFILL }
- },
-
- { &hf_skinny_passThruData,
- { "PassThruData", "skinny.passThruData",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- "Pass Through data.",
- HFILL }
- },
-
- { &hf_skinny_auditParticipantResults,
- { "AuditParticipantResults", "skinny.auditParticipantResults",
- FT_UINT32, BASE_DEC, VALS(skinny_auditParticipantResults), 0x0,
- "The audit participant results",
- HFILL }
- },
-
- { &hf_skinny_last,
- { "Last", "skinny.last",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Last.",
- HFILL }
- },
-
- { &hf_skinny_numberOfEntries,
- { "NumberOfEntries", "skinny.numberOfEntries",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Number of entries in list.",
- HFILL }
- },
-
- { &hf_skinny_participantEntry,
- { "ParticipantEntry", "skinny.participantEntry",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Participant Entry.",
- HFILL }
- },
-
- { &hf_skinny_resourceTypes,
- { "ResourceType", "skinny.resourceTypes",
- FT_UINT32, BASE_DEC, VALS(skinny_resourceTypes), 0x0,
- "Resource Type",
- HFILL }
- },
-
- { &hf_skinny_numberOfReservedParticipants,
- { "NumberOfReservedParticipants", "skinny.numberOfReservedParticipants",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "numberOfReservedParticipants.",
- HFILL }
- },
-
- { &hf_skinny_numberOfActiveParticipants,
- { "NumberOfActiveParticipants", "skinny.numberOfActiveParticipants",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "numberOfActiveParticipants.",
- HFILL }
- },
-
- { &hf_skinny_appID,
- { "AppID", "skinny.appID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "AppID.",
- HFILL }
- },
-
- { &hf_skinny_appData,
- { "AppData", "skinny.appData",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- "App data.",
- HFILL }
- },
-
- { &hf_skinny_appConfID,
- { "AppConfID", "skinny.appConfID",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- "App Conf ID Data.",
- HFILL }
- },
-
- { &hf_skinny_sequenceFlag,
- { "SequenceFlag", "skinny.sequenceFlag",
- FT_UINT32, BASE_DEC, VALS(skinny_sequenceFlags), 0x0,
- "Sequence Flag",
- HFILL }
- },
-
- { &hf_skinny_displayPriority,
- { "DisplayPriority", "skinny.displayPriority",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Display Priority.",
- HFILL }
- },
-
- { &hf_skinny_appInstanceID,
- { "AppInstanceID", "skinny.appInstanceID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "appInstanceID.",
- HFILL }
- },
-
- { &hf_skinny_routingID,
- { "routingID", "skinny.routingID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "routingID.",
- HFILL }
- },
-
- { &hf_skinny_audioCapCount,
- { "AudioCapCount", "skinny.audioCapCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "AudioCapCount.",
- HFILL }
- },
-
- { &hf_skinny_videoCapCount,
- { "VideoCapCount", "skinny.videoCapCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "VideoCapCount.",
- HFILL }
- },
-
- { &hf_skinny_dataCapCount,
- { "DataCapCount", "skinny.dataCapCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "DataCapCount.",
- HFILL }
- },
-
- { &hf_skinny_RTPPayloadFormat,
- { "RTPPayloadFormat", "skinny.RTPPayloadFormat",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "RTPPayloadFormat.",
- HFILL }
- },
-
- { &hf_skinny_customPictureFormatCount,
- { "CustomPictureFormatCount", "skinny.customPictureFormatCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "CustomPictureFormatCount.",
- HFILL }
- },
-
- { &hf_skinny_pictureWidth,
- { "PictureWidth", "skinny.pictureWidth",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "PictureWidth.",
- HFILL }
- },
-
- { &hf_skinny_pictureHeight,
- { "PictureHeight", "skinny.pictureHeight",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "PictureHeight.",
- HFILL }
- },
-
- { &hf_skinny_pixelAspectRatio,
- { "PixelAspectRatio", "skinny.pixelAspectRatio",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "PixelAspectRatio.",
- HFILL }
- },
-
- { &hf_skinny_clockConversionCode,
- { "ClockConversionCode", "skinny.clockConversionCode",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ClockConversionCode.",
- HFILL }
- },
-
- { &hf_skinny_clockDivisor,
- { "ClockDivisor", "skinny.clockDivisor",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Clock Divisor.",
- HFILL }
- },
-
- { &hf_skinny_activeStreamsOnRegistration,
- { "ActiveStreamsOnRegistration", "skinny.activeStreamsOnRegistration",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ActiveStreamsOnRegistration.",
- HFILL }
- },
-
- { &hf_skinny_maxBW,
- { "MaxBW", "skinny.maxBW",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "MaxBW.",
- HFILL }
- },
-
- { &hf_skinny_serviceResourceCount,
- { "ServiceResourceCount", "skinny.serviceResourceCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ServiceResourceCount.",
- HFILL }
- },
-
- { &hf_skinny_layoutCount,
- { "LayoutCount", "skinny.layoutCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "LayoutCount.",
- HFILL }
- },
-
- { &hf_skinny_layout,
- { "Layout", "skinny.layout",
- FT_UINT32, BASE_DEC, VALS(skinny_Layouts), 0x0,
- "Layout",
- HFILL }
- },
-
- { &hf_skinny_maxConferences,
- { "MaxConferences", "skinny.maxConferences",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "MaxConferences.",
- HFILL }
- },
-
- { &hf_skinny_activeConferenceOnRegistration,
- { "ActiveConferenceOnRegistration", "skinny.activeConferenceOnRegistration",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ActiveConferenceOnRegistration.",
- HFILL }
- },
-
- { &hf_skinny_transmitOrReceive,
- { "TransmitOrReceive", "skinny.transmitOrReceive",
- FT_UINT32, BASE_DEC, VALS(skinny_transmitOrReceive), 0x0,
- "TransmitOrReceive",
- HFILL }
- },
-
- { &hf_skinny_levelPreferenceCount,
- { "LevelPreferenceCount", "skinny.levelPreferenceCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "LevelPreferenceCount.",
- HFILL }
- },
-
- { &hf_skinny_transmitPreference,
- { "TransmitPreference", "skinny.transmitPreference",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "TransmitPreference.",
- HFILL }
- },
-
- { &hf_skinny_format,
- { "Format", "skinny.format",
- FT_UINT32, BASE_DEC, VALS(skinny_formatTypes), 0x0,
- "Format.",
- HFILL }
- },
-
- { &hf_skinny_maxBitRate,
- { "MaxBitRate", "skinny.maxBitRate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "MaxBitRate.",
- HFILL }
- },
-
- { &hf_skinny_minBitRate,
- { "MinBitRate", "skinny.minBitRate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "MinBitRate.",
- HFILL }
- },
-
- { &hf_skinny_MPI,
- { "MPI", "skinny.MPI",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "MPI.",
- HFILL }
- },
-
- { &hf_skinny_serviceNumber,
- { "ServiceNumber", "skinny.serviceNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ServiceNumber.",
- HFILL }
- },
-
- { &hf_skinny_temporalSpatialTradeOffCapability,
- { "TemporalSpatialTradeOffCapability", "skinny.temporalSpatialTradeOffCapability",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "TemporalSpatialTradeOffCapability.",
- HFILL }
- },
-
- { &hf_skinny_stillImageTransmission,
- { "StillImageTransmission", "skinny.stillImageTransmission",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "StillImageTransmission.",
- HFILL }
- },
-
- { &hf_skinny_h263_capability_bitfield,
- { "H263_capability_bitfield", "skinny.h263_capability_bitfield",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "H263_capability_bitfield.",
- HFILL }
- },
-
- { &hf_skinny_annexNandWFutureUse,
- { "AnnexNandWFutureUse", "skinny.annexNandWFutureUse",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "AnnexNandWFutureUse.",
- HFILL }
- },
-
- { &hf_skinny_modelNumber,
- { "ModelNumber", "skinny.modelNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ModelNumber.",
- HFILL }
- },
-
- { &hf_skinny_bandwidth,
- { "Bandwidth", "skinny.bandwidth",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Bandwidth.",
- HFILL }
- },
-
- { &hf_skinny_protocolDependentData,
- { "ProtocolDependentData", "skinny.protocolDependentData",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ProtocolDependentData.",
- HFILL }
- },
-
- { &hf_skinny_priority,
- { "Priority", "skinny.priority",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Priority.",
- HFILL }
- },
-
- { &hf_skinny_payloadDtmf,
- { "PayloadDtmf", "skinny.payloadDtmf",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "RTP payload type.",
- HFILL }
- },
-
- { &hf_skinny_featureID,
- { "FeatureID", "skinny.featureID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "FeatureID.",
- HFILL }
- },
-
- { &hf_skinny_featureTextLabel,
- { "FeatureTextLabel", "skinny.featureTextLabel",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The feature lable text that is displayed on the phone.",
- HFILL }
- },
-
- { &hf_skinny_featureStatus,
- { "FeatureStatus", "skinny.featureStatus",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "FeatureStatus.",
- HFILL }
- },
-
- { &hf_skinny_notify,
- { "Notify", "skinny.notify",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "The message notify text that is displayed on the phone.",
- HFILL }
- },
-
- { &hf_skinny_endOfAnnAck,
- { "EndOfAnnAck", "skinny.endOfAnnAck",
- FT_UINT32, BASE_DEC, VALS(skinny_endOfAnnAck), 0x0,
- "EndOfAnnAck",
- HFILL }
- },
-
- { &hf_skinny_annPlayMode,
- { "annPlayMode", "skinny.annPlayMode",
- FT_UINT32, BASE_DEC, VALS(skinny_annPlayMode), 0x0,
- "AnnPlayMode",
- HFILL }
- },
-
- { &hf_skinny_annPlayStatus,
- { "AnnPlayStatus", "skinny.annPlayStatus",
- FT_UINT32, BASE_DEC, VALS(skinny_annPlayStatus), 0x0,
- "AnnPlayStatus",
- HFILL }
- },
-
- { &hf_skinny_locale,
- { "Locale", "skinny.locale",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "User locale ID.",
- HFILL }
- },
-
- { &hf_skinny_country,
- { "Country", "skinny.country",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Country ID (Network locale).",
- HFILL }
- },
-
- { &hf_skinny_matrixConfPartyID,
- { "MatrixConfPartyID", "skinny.matrixConfPartyID",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "existing conference parties.",
- HFILL }
- },
-
- { &hf_skinny_hearingConfPartyMask,
- { "HearingConfPartyMask", "skinny.hearingConfPartyMask",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Bit mask of conference parties to hear media received on this stream. Bit0 = matrixConfPartyID[0], Bit1 = matrixConfPartiID[1].",
- HFILL }
- },
-
- { &hf_skinny_serviceURL,
- { "ServiceURL", "skinny.serviceURL",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "ServiceURL.",
- HFILL }
- },
-
- { &hf_skinny_serviceURLDisplayName,
- { "ServiceURLDisplayName", "skinny.serviceURLDisplayName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "ServiceURLDisplayName.",
- HFILL }
- },
-
- { &hf_skinny_callSelectStat,
- { "CallSelectStat", "skinny.callSelectStat",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "CallSelectStat.",
- HFILL }
- },
-
- { &hf_skinny_isConferenceCreator,
- { "IsConferenceCreator", "skinny.isConferenceCreator",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "IsConferenceCreator.",
- HFILL }
- },
-
- { &hf_skinny_payload_rfc_number,
- { "Payload_rfc_number", "skinny.payload_rfc_number",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "Payload_rfc_number.",
- HFILL }
- },
-
- { &hf_skinny_payloadType,
- { "PayloadType", "skinny.payloadType",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "PayloadType.",
- HFILL }
- },
-
- { &hf_skinny_bitRate,
- { "BitRate", "skinny.bitRate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "BitRate.",
- HFILL }
- },
-
- { &hf_skinny_pictureFormatCount,
- { "PictureFormatCount", "skinny.pictureFormatCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "PictureFormatCount.",
- HFILL }
- },
-
- { &hf_skinny_confServiceNum,
- { "ConfServiceNum", "skinny.confServiceNum",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "ConfServiceNum.",
- HFILL }
- },
-
- { &hf_skinny_DSCPValue,
- { "DSCPValue", "skinny.DSCPValue",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "DSCPValue.",
- HFILL }
- },
-
- { &hf_skinny_miscCommandType,
- { "MiscCommandType", "skinny.miscCommandType",
- FT_UINT32, BASE_DEC, VALS(skinny_miscCommandType), 0x0,
- "MiscCommandType",
- HFILL }
- },
-
- { &hf_skinny_temporalSpatialTradeOff,
- { "TemporalSpatialTradeOff", "skinny.temporalSpatialTradeOff",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "TemporalSpatialTradeOff.",
- HFILL }
- },
-
- { &hf_skinny_firstGOB,
- { "FirstGOB", "skinny.firstGOB",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "FirstGOB.",
- HFILL }
- },
-
- { &hf_skinny_numberOfGOBs,
- { "NumberOfGOBs", "skinny.numberOfGOBs",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "NumberOfGOBs.",
- HFILL }
- },
-
- { &hf_skinny_firstMB,
- { "FirstMB", "skinny.firstMB",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "FirstMB.",
- HFILL }
- },
-
- { &hf_skinny_numberOfMBs,
- { "NumberOfMBs", "skinny.numberOfMBs",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "NumberOfMBs.",
- HFILL }
- },
-
- { &hf_skinny_pictureNumber,
- { "PictureNumber", "skinny.pictureNumber",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "PictureNumber.",
- HFILL }
- },
-
- { &hf_skinny_longTermPictureIndex,
- { "LongTermPictureIndex", "skinny.longTermPictureIndex",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "LongTermPictureIndex.",
- HFILL }
- },
-
- { &hf_skinny_recoveryReferencePictureCount,
- { "RecoveryReferencePictureCount", "skinny.recoveryReferencePictureCount",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "RecoveryReferencePictureCount.",
- HFILL }
- },
-
- { &hf_cast_lastRedirectingPartyName,
- { "LastRedirectingPartyName", "cast.lastRedirectingPartyName",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "LastRedirectingPartyName.",
- HFILL }
- },
-
- { &hf_cast_lastRedirectingParty,
- { "LastRedirectingParty", "cast.lastRedirectingParty",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "LastRedirectingParty.",
- HFILL }
- },
-
- { &hf_cast_cgpnVoiceMailbox,
- { "CgpnVoiceMailbox", "cast.cgpnVoiceMailbox",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "CgpnVoiceMailbox.",
- HFILL }
- },
-
- { &hf_cast_cdpnVoiceMailbox,
- { "CdpnVoiceMailbox", "cast.cdpnVoiceMailbox",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "CdpnVoiceMailbox.",
- HFILL }
- },
-
- { &hf_cast_originalCdpnVoiceMailbox,
- { "OriginalCdpnVoiceMailbox", "cast.originalCdpnVoiceMailbox",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "OriginalCdpnVoiceMailbox.",
- HFILL }
- },
-
- { &hf_cast_lastRedirectingVoiceMailbox,
- { "LastRedirectingVoiceMailbox", "cast.lastRedirectingVoiceMailbox",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "LastRedirectingVoiceMailbox.",
- HFILL }
- },
-
- { &hf_cast_originalCdpnRedirectReason,
- { "OriginalCdpnRedirectReason", "cast.originalCdpnRedirectReason",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "OriginalCdpnRedirectReason.",
- HFILL }
- },
-
- { &hf_cast_lastRedirectingReason,
- { "LastRedirectingReason", "cast.lastRedirectingReason",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "LastRedirectingReason.",
- HFILL }
- },
-
- { &hf_cast_callInstance,
- { "CallInstance", "cast.callInstance",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "CallInstance.",
- HFILL }
- },
-
- { &hf_cast_callSecurityStatus,
- { "CallSecurityStatus", "cast.callSecurityStatus",
- FT_UINT32, BASE_DEC, VALS(cast_callSecurityStatusTypes), 0x0,
- "CallSecurityStatus.",
- HFILL }
- },
-
- };
-
- /* Setup protocol subtree array */
- static gint *ett[] = {
- &ett_skinny,
- &ett_skinny_tree,
- &ett_skinny_softKeyMap,
- };
-
- module_t *skinny_module;
-
- /* Register the protocol name and description */
- proto_skinny = proto_register_protocol("Skinny Client Control Protocol",
- "SKINNY", "skinny");
-
- /* Required function calls to register the header fields and subtrees used */
- proto_register_field_array(proto_skinny, hf, array_length(hf));
- proto_register_subtree_array(ett, array_length(ett));
-
- skinny_module = prefs_register_protocol(proto_skinny, NULL);
- prefs_register_bool_preference(skinny_module, "desegment",
- "Desegment all SCCP messages spanning multiple TCP segments",
- "Whether the SCCP dissector should desegment all messages spanning multiple TCP segments",
- &skinny_desegment);
-}
-
-void
-proto_reg_handoff_skinny(void)
-{
- dissector_handle_t skinny_handle;
-
- data_handle = find_dissector("data");
- rtp_handle = find_dissector("rtp");
- skinny_handle = create_dissector_handle(dissect_skinny, proto_skinny);
- dissector_add("tcp.port", TCP_PORT_SKINNY, skinny_handle);
-}
-
-/*
- * FIXME:
- *
- * This is the status of this decode.
- * Items marked as N/A in the decode field have no params to test
- * implemented for N/A means they exist in the switch statement
- * S = stubbed
- *
- * id message implemented decode tested (via capture)
- * ---------------------------------------------------------------------------
- * 0x0 keepAlive Y N/A
- * 0x1 register Y Y
- * 0x2 ipPort Y Y
- * 0x3 keypadButton Y Y
- * 0x4 enblocCall Y N
- * 0x5 stimulus Y N
- * 0x6 offHook Y N/A
- * 0x7 onHook Y N/A
- * 0x8 hookFlash Y N/A
- * 0x9 forwardStatReq Y N
- * 0xa speedDialStatReq Y Y
- * 0xb lineStatReq Y Y
- * 0xc configStatReq Y N/A
- * 0xd timeDateReq Y N/A
- * 0xe buttonTemplateReq Y N/A
- * 0xf versionReq Y N/A
- * 0x10 capabilitiesRes Y Y -- would like more decodes
- * 0x11 mediaPortList S N -- no info
- * 0x12 serverReq Y N/A
- * 0x20 alarmMessage Y Y
- * 0x21 multicastMediaReceptionAck Y N
- * 0x22 openReceiveChannelAck Y Y
- * 0x23 connectionStatisticsRes Y Y
- * 0x24 offHookWithCgpn Y N
- * 0x25 softKeySetReq Y N/A
- * 0x26 softKeyEvent Y Y
- * 0x27 unregister Y N/A
- * 0x28 softKeytemplateReq Y N/A
- * 0x29 registerTokenReq Y N
- * 0x2A mediaTransmissionFailure
- * 0x2B headsetStatus
- * 0x2C mediaResourceNotification
- * 0x2D registerAvailableLines
- * 0x2E deviceToUserData
- * 0x2F deviceToUserDataResponse
- * 0x30 updateCapabilities
- * 0x31 openMultiMediaReceiveChannelAck
- * 0x32 clearConference
- * 0x33 serviceURLStatReq
- * 0x34 featureStatReq
- * 0x35 createConferenceRes
- * 0x36 deleteConferenceRes
- * 0x37 modifyConferenceRes
- * 0x38 addParticipantRes
- * 0x39 auditConferenceRes
- * 0x40 auditParticipantRes
- * 0x41 deviceToUserDataVersion1
- * 0x42 deviceToUserDataResponseVersion1
- * 0x81 registerAck Y Y
- * 0x82 startTone Y Y
- * 0x83 stopTone Y N/A
- * 0x85 setRinger Y Y
- * 0x86 setLamp Y Y
- * 0x87 setHkFDetect Y N
- * 0x88 setSpeakerMode Y Y
- * 0x89 setMicroMode Y N
- * 0x8A startMediaTransmission Y Y
- * 0x8B stopMediaTransmission Y Y
- * 0x8C startMediaReception S N
- * 0x8D stopMediaReception S N
- * 0x8E *reserved* S *
- * 0x8F callInfo Y Y
- * 0x90 forwardStat Y N
- * 0x91 speedDialStat Y Y
- * 0x92 lineStat Y Y
- * 0x93 configStat Y N
- * 0x94 defineTimeDate Y Y
- * 0x95 startSessionTransmission Y N
- * 0x96 stopSessionTransmission Y N
- * 0x97 buttonTemplate Y Y -- ugly =)
- * 0x98 version Y N
- * 0x99 displayText Y Y
- * 0x9A clearDisplay Y N/A
- * 0x9B capabilitiesReq Y N/A
- * 0x9C enunciatorCommand Y N (inner loop unknown)
- * 0x9D registerReject Y N
- * 0x9E serverRes Y N
- * 0x9F reset Y Y
- * 0x100 keepAliveAck Y N/A
- * 0x101 startMulticastMediaReception Y N
- * 0x102 startMulticastMediaTransmission Y N
- * 0x103 stopMulticastMediaReception Y N
- * 0x104 stopMulticastMediaTransmission Y N
- * 0x105 openreceiveChannel Y Y
- * 0x106 closeReceiveChannel Y Y
- * 0x107 connectionStatisticsReq Y Y
- * 0x108 softKeyTemplateRes Y Y
- * 0x109 softKeySetRes Y Y
- * 0x110 selectSoftKeys Y Y
- * 0x111 callState Y Y
- * 0x112 displayPromptStatus Y Y
- * 0x113 clearPromptStatus Y Y
- * 0x114 displayNotify Y Y
- * 0x115 clearNotify Y Y
- * 0x116 activateCallPlane Y Y
- * 0x117 deactivateCallPlane Y N/A
- * 0x118 unregisterAck Y Y
- * 0x119 backSpaceReq Y Y
- * 0x11A registerTokenAck Y N
- * 0x11B registerTokenReject Y N
- * 0x11C startMediaFailureDetection
- * 0x11D dialedNumber
- * 0x11E userToDeviceData
- * 0x11F featureStat
- * 0x120 displayPriNotify
- * 0x121 clearPriNotify
- * 0x122 startAnnouncement
- * 0x123 stopAnnouncement
- * 0x124 announcementFinish
- * 0x127 notifyDtmfTone
- * 0x128 sendDtmfTone
- * 0x129 subscribeDtmfPayloadReq
- * 0x12A subscribeDtmfPayloadRes
- * 0x12B subscribeDtmfPayloadErr
- * 0x12C unSubscribeDtmfPayloadReq
- * 0x12D unSubscribeDtmfPayloadRes
- * 0x12E unSubscribeDtmfPayloadErr
- * 0x12F serviceURLStat
- * 0x130 callSelectStat
- * 0x131 openMultiMediaChannel
- * 0x132 startMultiMediaTransmission
- * 0x133 stopMultiMediaTransmission
- * 0x134 miscellaneousCommand
- * 0x135 flowControlCommand
- * 0x136 closeMultiMediaReceiveChannel
- * 0x137 createConferenceReq
- * 0x138 deleteConferenceReq
- * 0x139 modifyConferenceReq
- * 0x13A addParticipantReq
- * 0x13B dropParticipantReq
- * 0x13C auditConferenceReq
- * 0x13D auditParticipantReq
- * 0x13F userToDeviceDataVersion1
- *
- *
- */