From 686ea4b77376b71de2db70bdf01b676aaa6d39b9 Mon Sep 17 00:00:00 2001 From: Tomas Kukosa Date: Fri, 2 Nov 2007 12:18:01 +0000 Subject: new H.282 (RDC) and H.283 (LCT) dissectors svn path=/trunk/; revision=23339 --- asn1/h282/Makefile.am | 26 ++ asn1/h282/Makefile.common | 46 ++ asn1/h282/Makefile.nmake | 29 ++ asn1/h282/RDC-PROTOCOL.asn | 981 +++++++++++++++++++++++++++++++++++++++ asn1/h282/h282.cnf | 48 ++ asn1/h282/packet-h282-template.c | 106 +++++ 6 files changed, 1236 insertions(+) create mode 100644 asn1/h282/Makefile.am create mode 100644 asn1/h282/Makefile.common create mode 100644 asn1/h282/Makefile.nmake create mode 100644 asn1/h282/RDC-PROTOCOL.asn create mode 100644 asn1/h282/h282.cnf create mode 100644 asn1/h282/packet-h282-template.c (limited to 'asn1/h282') diff --git a/asn1/h282/Makefile.am b/asn1/h282/Makefile.am new file mode 100644 index 0000000000..462af31e88 --- /dev/null +++ b/asn1/h282/Makefile.am @@ -0,0 +1,26 @@ +# $Id$ +# +# +# Wireshark - Network traffic analyzer +# By Gerald Combs +# 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. + + +include ../Makefile.preinc +include Makefile.common +include ../Makefile.inc + diff --git a/asn1/h282/Makefile.common b/asn1/h282/Makefile.common new file mode 100644 index 0000000000..8c233f80dd --- /dev/null +++ b/asn1/h282/Makefile.common @@ -0,0 +1,46 @@ +# $Id$ +# +# +# Wireshark - Network traffic analyzer +# By Gerald Combs +# 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. + + +PROTOCOL_NAME = h282 + +DISSECTOR_FILES = \ + packet-$(PROTOCOL_NAME).c + +# NEED_PACKET_PROTO_H = + +EXT_ASN_FILE_LIST = + +ASN_FILE_LIST = \ + RDC-PROTOCOL.asn + +EXTRA_DIST = \ + $(ASN_FILE_LIST) \ + packet-$(PROTOCOL_NAME)-template.c \ + $(PROTOCOL_NAME).cnf + +SRC_FILES = \ + $(EXTRA_DIST) \ + $(EXT_ASN_FILE_LIST) + +A2W_FLAGS = + +EXTRA_CNF = diff --git a/asn1/h282/Makefile.nmake b/asn1/h282/Makefile.nmake new file mode 100644 index 0000000000..5a32997c60 --- /dev/null +++ b/asn1/h282/Makefile.nmake @@ -0,0 +1,29 @@ +## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake +# +# $Id$ +# +# +# Wireshark - Network traffic analyzer +# By Gerald Combs +# 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. + + +include ../../config.nmake +include ../Makefile.preinc.nmake +include Makefile.common +include ../Makefile.inc.nmake + diff --git a/asn1/h282/RDC-PROTOCOL.asn b/asn1/h282/RDC-PROTOCOL.asn new file mode 100644 index 0000000000..c6ec2d8bc1 --- /dev/null +++ b/asn1/h282/RDC-PROTOCOL.asn @@ -0,0 +1,981 @@ +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h282/1999/RDC-PROTOCOL.asn + +-- Module RDC-PROTOCOL (H.282:02/1998) +RDC-PROTOCOL {itu-t(0) recommendation(0) h 282 version(0) 1} DEFINITIONS +AUTOMATIC TAGS ::= +BEGIN + +-- Export all symbols +-- ========================================================================== +-- Part 1: Message Components +-- ========================================================================== +H221NonStandardIdentifier ::= OCTET STRING(SIZE (4..255)) + +-- First four octets shall be country code and +-- Manufacturer code, assigned as specified in +-- H.221 Annex A for NS-cap and NS-comm +Key ::= CHOICE -- Identifier of a standard or non-standard object + { + object OBJECT IDENTIFIER, + h221NonStandard H221NonStandardIdentifier +} + +NonStandardParameter ::= SEQUENCE {key Key, + data OCTET STRING +} + +Handle ::= INTEGER(0..4294967295) + +NonStandardIdentifier ::= CHOICE { + object OBJECT IDENTIFIER, + h221nonStandard H221NonStandardIdentifier +} + +TextString ::= + BMPString + (SIZE (0..255)) -- Basic Multilingual Plane of ISO/IEC 10646-1 (Unicode) + + +DeviceClass ::= CHOICE { + camera NULL, + microphone NULL, + streamPlayerRecorder NULL, + slideProjector NULL, + lightSource NULL, + sourceCombiner NULL, + nonStandardDevice NonStandardIdentifier +} + +DeviceID ::= INTEGER(0..127) + +StreamID ::= INTEGER(0..65535) + +DeviceProfile ::= SEQUENCE { + deviceID DeviceID, + audioSourceFlag BOOLEAN, + audioSinkFlag BOOLEAN, + videoSourceFlag BOOLEAN, + videoSinkFlag BOOLEAN, + remoteControlFlag BOOLEAN, + instanceNumber INTEGER(0..255), + deviceName TextString OPTIONAL, + ... +} + +StreamProfile ::= SEQUENCE { + streamID StreamID, + videoStreamFlag BOOLEAN, + sourceChangeFlag BOOLEAN, + streamName TextString OPTIONAL, + ... +} + +CapabilityID ::= CHOICE { + standard INTEGER(0..65535), -- Assigned by this specification + nonStandard Key +} + +NonCollapsingCapabilities ::= + SET OF + SEQUENCE {capabilityID CapabilityID, + applicationData + CHOICE {deviceList SET SIZE (0..127) OF DeviceProfile, + streamList SET SIZE (0..127) OF StreamProfile + }} + +-- +-- Attribute parameter types +-- +Day ::= INTEGER(1..31) + +Month ::= INTEGER(1..12) + +Year ::= INTEGER(1980..2999) + +Hour ::= INTEGER(0..23) + +Minute ::= INTEGER(0..59) + +DeviceText ::= OCTET STRING(SIZE (0..32)) + +PanPosition ::= INTEGER(-18000..18000) -- 100ths of a degree + + +TiltPosition ::= INTEGER(-18000..18000) -- 100ths of a degree + + +ZoomPosition ::= INTEGER(-1023..1023) + +IrisPosition ::= INTEGER(-127..127) + +FocusPosition ::= INTEGER(-127..127) + +CameraPanSpeed ::= INTEGER(1..18000) -- 100ths of a degree/sec + + +CameraTiltSpeed ::= INTEGER(1..18000) -- 100ths of a degree/sec + + +BackLight ::= INTEGER(0..255) + +WhiteBalance ::= INTEGER(0..255) + +PresetNumber ::= INTEGER(1..255) + +StreamPlayerState ::= CHOICE { + playing NULL, + recording NULL, + pausedOnRecord NULL, + pausedOnPlay NULL, + rewinding NULL, + fastForwarding NULL, + searchingForwards NULL, + searchingBackwards NULL, + stopped NULL, + programUnavailable NULL +} + +DevicePresetCapability ::= SEQUENCE { + maxNumber PresetNumber, + presetCapability + SET SIZE (0..255) OF + SEQUENCE {presetNumber PresetNumber, + storeModeSupported BOOLEAN, + presetTextLabel DeviceText} OPTIONAL +} + +CameraFilterCapability ::= SEQUENCE { + maxNumberOfFilters INTEGER(2..255), + filterTextLabel + SET SIZE (0..255) OF + SEQUENCE {filterNumber INTEGER(1..255), + filterTextLabel DeviceText} OPTIONAL +} + +CameraLensCapability ::= SEQUENCE { + maxNumberOfLens INTEGER(2..255), + accessoryTextLabel + SET SIZE (0..255) OF + SEQUENCE {lensNumber INTEGER(1..255), + lensTextLabel DeviceText} OPTIONAL +} + +ExternalCameraLightCapability ::= SEQUENCE { + maxNumber INTEGER(1..10), + lightTextLabel + SET SIZE (0..10) OF + SEQUENCE {lightNumber INTEGER(1..10), + lightLabel DeviceText} OPTIONAL +} + +CameraPanSpeedCapability ::= SEQUENCE { + maxSpeed CameraPanSpeed, + minSpeed CameraPanSpeed, + speedStepSize CameraPanSpeed +} + +CameraTiltSpeedCapability ::= SEQUENCE { + maxSpeed CameraTiltSpeed, + minSpeed CameraTiltSpeed, + speedStepSize CameraTiltSpeed +} + +MaxBacklight ::= INTEGER(1..255) + +MaxWhiteBalance ::= INTEGER(1..255) + +MinZoomPositionSetSize ::= INTEGER(1..1023) + +MinFocusPositionStepSize ::= INTEGER(1..127) + +MinIrisPositionStepSize ::= INTEGER(1..127) + +PanPositionCapability ::= SEQUENCE { + maxLeft INTEGER(-18000..0), -- Max pan left + maxRight INTEGER(0..18000), -- Max pan right + minStepSize INTEGER(1..18000) +} + +TiltPositionCapability ::= SEQUENCE { + maxDown INTEGER(-18000..0), -- Max tilt down + maxUp INTEGER(0..18000), -- Max tilt up + minStepSize INTEGER(1..18000) +} + +MinZoomMagnificationStepSize ::= INTEGER(1..1000) + +MaxNumberOfSlides ::= INTEGER(1..1024) + +MaxSlideDisplayTime ::= INTEGER(1..255) -- Max time in seconds + + +MaxNumberOfPrograms ::= INTEGER(1..1023) + +PlayBackSpeedCapability ::= SEQUENCE { + multiplierFactors SET SIZE (1..64) OF INTEGER(10..1000), + divisorFactors SET SIZE (1..64) OF INTEGER(10..1000) +} + +VideoInputsCapability ::= SEQUENCE { + numberOfDeviceInputs INTEGER(2..64), + numberOfDeviceRows INTEGER(1..64), + -- The Optional Device list is only included if the inputs are configurable + availableDevices + SET SIZE (2..64) OF + SEQUENCE {deviceClass DeviceClass, + deviceIdentifier DeviceID} OPTIONAL +} + +AudioInputsCapability ::= SEQUENCE { + numberOfDeviceInputs INTEGER(2..64), + -- The Optional Device list is only included if the inputs are configurable + availableDevices + SET SIZE (2..64) OF + SEQUENCE {deviceClass DeviceClass, + deviceIdentifier DeviceID} OPTIONAL +} + +DeviceAttribute ::= CHOICE { + deviceStateSupported NULL, + deviceDateSupported NULL, + deviceTimeSupported NULL, + devicePresetSupported DevicePresetCapability, + irisModeSupported NULL, + focusModeSupported NULL, + pointingModeSupported NULL, + cameraLensSupported CameraLensCapability, + cameraFilterSupported CameraFilterCapability, + homePositionSupported NULL, + externalCameraLightSupported ExternalCameraLightCapability, + clearCameraLensSupported NULL, + cameraPanSpeedSupported CameraPanSpeedCapability, + cameraTiltSpeedSupported CameraTiltSpeedCapability, + backLightModeSupported NULL, + backLightSettingSupported MaxBacklight, + whiteBalanceSettingSupported MaxWhiteBalance, + whiteBalanceModeSupported NULL, + calibrateWhiteBalanceSupported NULL, + focusImageSupported NULL, + captureImageSupported NULL, + panContinuousSupported NULL, + tiltContinuousSupported NULL, + zoomContinuousSupported NULL, + focusContinuousSupported NULL, + irisContinuousSupported NULL, + zoomPositionSupported MinZoomPositionSetSize, + focusPositionSupported MinFocusPositionStepSize, + irisPositionSupported MinIrisPositionStepSize, + panPositionSupported PanPositionCapability, + tiltPositionSupported TiltPositionCapability, + zoomMagnificationSupported MinZoomMagnificationStepSize, + panViewSupported NULL, + tiltViewSupported NULL, + selectSlideSupported MaxNumberOfSlides, + selectNextSlideSupported NULL, + slideShowModeSupported NULL, + playSlideShowSupported NULL, + setSlideDisplayTimeSupported MaxSlideDisplayTime, + continuousRewindSupported NULL, + continuousFastForwardSupported NULL, + searchBackwardsSupported NULL, + searchForwardsSupported NULL, + pauseSupported NULL, + selectProgramSupported MaxNumberOfPrograms, + nextProgramSupported NULL, + gotoNormalPlayTimePointSupported NULL, + readStreamPlayerStateSupported NULL, + readProgramDurationSupported NULL, + continuousPlayBackModeSupported NULL, + playbackSpeedSupported PlayBackSpeedCapability, + playSupported NULL, + setAudioOutputStateSupported NULL, + playToNormalPlayTimePointSupported NULL, + recordSupported NULL, + recordForDurationSupported NULL, + configurableVideoInputsSupported VideoInputsCapability, + videoInputsSupported VideoInputsCapability, + configurableAudioInputsSupported AudioInputsCapability, + audioInputsSupported AudioInputsCapability, + -- Attributes for Device Events + deviceLockStateChangedSupported NULL, + deviceAvailabilityChangedSupported NULL, + cameraPannedToLimitSupported NULL, + cameraTiltedToLimitSupported NULL, + cameraZoomedToLimitSupported NULL, + cameraFocusedToLimitSupported NULL, + autoSlideShowFinishedSupported NULL, + streamPlayerStateChangeSupported NULL, + streamPlayerProgramChangeSupported NULL, + nonStandardAttributeSupported NonStandardParameter, + ... +} + +DeviceState ::= CHOICE {active NULL, + inactive NULL +} + +DeviceDate ::= SEQUENCE {day Day, + month Month, + year Year +} + +DeviceTime ::= SEQUENCE {hour Hour, + minute Minute +} + +DevicePreset ::= SEQUENCE { + presetNumber PresetNumber, + mode CHOICE {store NULL, + activate NULL} +} + +Mode ::= CHOICE {manual NULL, + auto NULL +} + +PointingToggle ::= CHOICE {manual NULL, + auto NULL, + toggle NULL +} + +SelectExternalLight ::= CHOICE {lightNumber INTEGER(1..10), + none NULL +} + +PanContinuous ::= SEQUENCE { + panDirection + CHOICE {left NULL, + right NULL, + stop NULL, + continue NULL}, + timeOut INTEGER(50..1000) -- Milliseconds +} + +TiltContinuous ::= SEQUENCE { + tiltDirection + CHOICE {up NULL, + down NULL, + stop NULL, + continue NULL}, + timeOut INTEGER(50..1000) -- Milliseconds +} + +ZoomContinuous ::= SEQUENCE { + zoomDirection + CHOICE {telescopic NULL, + wide NULL, + stop NULL, + continue NULL}, + timeOut INTEGER(50..1000) -- Milliseconds +} + +FocusContinuous ::= SEQUENCE { + focusDirection + CHOICE {near NULL, + far NULL, + stop NULL, + continue NULL}, + timeOut INTEGER(50..1000) -- Milliseconds +} + +IrisContinuous ::= SEQUENCE { + irisDirection + CHOICE {darker NULL, + lighter NULL, + stop NULL, + continue NULL}, + timeOut INTEGER(50..1000) -- Milliseconds +} + +PositioningMode ::= CHOICE {relative NULL, + absolute NULL +} + +CameraLensNumber ::= INTEGER(1..255) + +CameraFilterNumber ::= INTEGER(1..255) + +SetZoomPosition ::= SEQUENCE { + zoomPosition ZoomPosition, + positioningMode PositioningMode +} + +SetFocusPosition ::= SEQUENCE { + focusPosition FocusPosition, + positioningMode PositioningMode +} + +SetIrisPosition ::= SEQUENCE { + irisPosition IrisPosition, + positioningMode PositioningMode +} + +SetPanPosition ::= SEQUENCE { + panPosition PanPosition, + positioningMode PositioningMode +} + +SetTiltPosition ::= SEQUENCE { + tiltPosition TiltPosition, + positioningMode PositioningMode +} + +ZoomMagnification ::= INTEGER(10..1000) + +PanView ::= INTEGER(-1000..1000) + +TiltView ::= INTEGER(-1000..1000) + +SlideNumber ::= INTEGER(0..1023) + +SelectDirection ::= CHOICE {next NULL, + previous NULL +} + +AutoSlideShowControl ::= CHOICE {start NULL, + stop NULL, + pause NULL +} + +AutoSlideDisplayTime ::= + INTEGER(1..255) -- Automatic slide display time in seconds + + +ProgramNumber ::= INTEGER(1..1023) + +ProgramDuration ::= SEQUENCE { + hours INTEGER(0..24), + minutes INTEGER(0..59), + seconds INTEGER(0..59), + microseconds INTEGER(0..99999) +} + +PlaybackSpeed ::= SEQUENCE { + scaleFactor INTEGER(10..1000), + multiplyFactor BOOLEAN -- TRUE to multiply, FALSE to divide +} + +RecordForDuration ::= SEQUENCE { + hours INTEGER(0..24), + minutes INTEGER(0..59), + seconds INTEGER(0..59) +} + +DeviceInputs ::= SEQUENCE { + -- When used with the configurableVideoInputs type this device list must only contain + -- devices that source a video stream. + -- When used with the configurableAudioInputs type this device list must only contain + -- devices that source an audio stream. + inputDevices + SET SIZE (2..64) OF + SEQUENCE {deviceClass DeviceClass, + deviceIdentifier DeviceID} +} + +ControlAttribute ::= CHOICE { + setDeviceState DeviceState, + setDeviceDate DeviceDate, + setDeviceTime DeviceTime, + setDevicePreset DevicePreset, + setIrisMode Mode, + setFocusMode Mode, + setBackLightMode Mode, + setPointingMode PointingToggle, + selectCameraLens CameraLensNumber, + selectCameraFilter CameraFilterNumber, + gotoHomePosition NULL, + selectExternalLight SelectExternalLight, + clearCameraLens NULL, + setCameraPanSpeed CameraPanSpeed, + setCameraTiltSpeed CameraTiltSpeed, + setBackLight BackLight, + setWhiteBalance WhiteBalance, + setWhiteBalanceMode Mode, + calibrateWhiteBalance NULL, + focusImage NULL, + captureImage NULL, + panContinuous PanContinuous, + tiltContinuous TiltContinuous, + zoomContinuous ZoomContinuous, + focusContinuous FocusContinuous, + setZoomPosition SetZoomPosition, + setFocusPosition SetFocusPosition, + setIrisPosition SetIrisPosition, + setPanPosition SetPanPosition, + setTiltPosition SetTiltPosition, + setZoomMagnification ZoomMagnification, + setPanView PanView, + setTiltView TiltView, + selectSlide SlideNumber, + selectNextSlide SelectDirection, + playAutoSlideShow AutoSlideShowControl, + setAutoSlideDisplayTime AutoSlideDisplayTime, + continuousRewindControl BOOLEAN, -- TRUE to start, FALSE to Stop + continuousFastForwardControl BOOLEAN, -- TRUE to start, FALSE to Stop + searchBackwardsControl BOOLEAN, -- TRUE to start, FALSE to Stop + searchForwardsControl BOOLEAN, -- TRUE to start, FALSE to Stop + pause BOOLEAN, -- TRUE to pause, FALSE to release + selectProgram ProgramNumber, + nextProgramSelect SelectDirection, + gotoNormalPlayTimePoint ProgramDuration, + continuousPlayBackMode BOOLEAN, -- TRUE to set continuous mode + setPlaybackSpeed PlaybackSpeed, + play BOOLEAN, -- TRUE to pause, FALSE to release + setAudioOutputMute BOOLEAN, -- TRUE to mute, FALSE to unmute + playToNormalPlayTimePoint ProgramDuration, + record BOOLEAN, -- TRUE to start, FALSE to Stop + recordForDuration RecordForDuration, + configureVideoInputs DeviceInputs, -- Device list contains Video devices + configureAudioInputs DeviceInputs, -- Device list contains Audio Devices + nonStandardControl NonStandardParameter, + ... +} + +StatusAttributeIdentifier ::= CHOICE { + getDeviceState NULL, + getDeviceDate NULL, + getDeviceTime NULL, + getdevicePreset NULL, + getIrisMode NULL, + getFocusMode NULL, + getBacklightMode NULL, + getPointingMode NULL, + getCameraLens NULL, + getCameraFilter NULL, + getExternalLight NULL, + getCameraPanSpeed NULL, + getCameraTiltSpeed NULL, + getBackLightMode NULL, + getBackLight NULL, + getWhiteBalance NULL, + getWhiteBalanceMode NULL, + getZoomPosition NULL, + getFocusPosition NULL, + getIrisPosition NULL, + getPanPosition NULL, + getTiltPosition NULL, + getSelectedSlide NULL, + getAutoSlideDisplayTime NULL, + getSelectedProgram NULL, + getStreamPlayerState NULL, + getCurrentProgramDuration NULL, + getPlaybackSpeed NULL, + getAudioOutputState NULL, + getConfigurableVideoInputs NULL, + getVideoInputs NULL, + getConfigurableAudioInputs NULL, + getAudioInputs NULL, + getNonStandardStatus NonStandardIdentifier, + ... +} + +CurrentDeviceState ::= CHOICE {deviceState DeviceState, + unknown NULL +} + +CurrentDeviceDate ::= SEQUENCE { + currentDay CHOICE {day Day, + unknown NULL}, + currentMonth CHOICE {month Month, + unknown NULL}, + currentYear CHOICE {year Year, + unknown NULL} +} + +CurrentDeviceTime ::= SEQUENCE { + currentHour CHOICE {hour Hour, + unknown NULL}, + currentMinute CHOICE {minute Minute, + unknown NULL} +} + +CurrentDevicePreset ::= CHOICE {preset PresetNumber, + unknown NULL +} + +CurrentMode ::= CHOICE {mode Mode, + unknown NULL +} + +CurrentPointingMode ::= CHOICE { + automatic NULL, + manual NULL, + unknown NULL +} + +CurrentCameraLensNumber ::= CHOICE { + lensNumber CameraLensNumber, + unknown NULL +} + +CurrentCameraFilterNumber ::= CHOICE { + lensNumber CameraFilterNumber, + unknown NULL +} + +CurrentExternalLight ::= CHOICE { + lightNumber INTEGER(1..10), + none NULL, + unknown NULL +} + +CurrentCameraPanSpeed ::= CHOICE {speed CameraPanSpeed, + unknown NULL +} + +CurrentCameraTiltSpeed ::= CHOICE {speed CameraTiltSpeed, + unknown NULL +} + +CurrentBackLight ::= CHOICE {backLight BackLight, + unknown NULL +} + +CurrentWhiteBalance ::= CHOICE {whiteBalance WhiteBalance, + unknown NULL +} + +CurrentZoomPosition ::= CHOICE {zoomPosition ZoomPosition, + unknown NULL +} + +CurrentFocusPosition ::= CHOICE { + focusPosition FocusPosition, + unknown NULL +} + +CurrentIrisPosition ::= CHOICE {irisPosition IrisPosition, + unknown NULL +} + +CurrentPanPosition ::= CHOICE {panPosition PanPosition, + unknown NULL +} + +CurrentTiltPosition ::= CHOICE {tiltPosition TiltPosition, + unknown NULL +} + +CurrentSlide ::= CHOICE {slide SlideNumber, + unknown NULL +} + +CurrentAutoSlideDisplayTime ::= CHOICE { + time AutoSlideDisplayTime, + unknown NULL +} + +CurrentSelectedProgram ::= CHOICE {program ProgramNumber, + unknown NULL +} + +CurrentStreamPlayerState ::= CHOICE {state StreamPlayerState, + unknown NULL +} + +CurrentPlaybackSpeed ::= CHOICE {speed PlaybackSpeed, + unknown NULL +} + +CurrentAudioOutputMute ::= CHOICE { + mute BOOLEAN, -- TRUE if muted + unknown NULL +} + +StatusAttribute ::= CHOICE { + currentdeviceState CurrentDeviceState, + currentDeviceDate CurrentDeviceDate, + currentDeviceTime CurrentDeviceTime, + currentDevicePreset CurrentDevicePreset, + currentIrisMode CurrentMode, + currentFocusMode CurrentMode, + currentBackLightMode CurrentMode, + currentPointingMode CurrentPointingMode, + currentCameraLens CurrentCameraLensNumber, + currentCameraFilter CurrentCameraFilterNumber, + currentExternalLight CurrentExternalLight, + currentCameraPanSpeed CurrentCameraPanSpeed, + currentCameraTiltSpeed CurrentCameraTiltSpeed, + currentBackLight CurrentBackLight, + currentWhiteBalance CurrentWhiteBalance, + currentWhiteBalanceMode CurrentMode, + currentZoomPosition CurrentZoomPosition, + currentFocusPosition CurrentFocusPosition, + currentIrisPosition CurrentIrisPosition, + currentPanPosition CurrentPanPosition, + currentTiltPosition CurrentTiltPosition, + currentSlide CurrentSlide, + currentAutoSlideDisplayTime CurrentAutoSlideDisplayTime, + currentSelectedProgram CurrentSelectedProgram, + currentstreamPlayerState CurrentStreamPlayerState, + currentProgramDuration ProgramDuration, + currentPlaybackSpeed CurrentPlaybackSpeed, + currentAudioOutputMute CurrentAudioOutputMute, + configurableVideoInputs DeviceInputs, + videoInputs DeviceInputs, + configurableAudioInputs DeviceInputs, + audioInputs DeviceInputs, + nonStandardStatus NonStandardParameter, + ... +} + +DeviceEventIdentifier ::= CHOICE { + requestDeviceLockChanged NULL, + requestDeviceAvailabilityChanged NULL, + requestCameraPannedToLimit NULL, + requestCameraTiltedToLimit NULL, + requestCameraZoomedToLimit NULL, + requestCameraFocusedToLimit NULL, + requestAutoSlideShowFinished NULL, + requestStreamPlayerStateChange NULL, + requestStreamPlayerProgramChange NULL, + requestNonStandardEvent NonStandardIdentifier, + ... +} + +CameraPannedToLimit ::= CHOICE {left NULL, + right NULL +} + +CameraTiltedToLimit ::= CHOICE {up NULL, + down NULL +} + +CameraZoomedToLimit ::= CHOICE {telescopic NULL, + wide NULL +} + +CameraFocusedToLimit ::= CHOICE {near NULL, + far NULL +} + +DeviceEvent ::= CHOICE { + deviceLockChanged BOOLEAN, -- TRUE if now locked FALSE if now unlocked + deviceAvailabilityChanged BOOLEAN, -- TRUE if available FALSE if now unavailable + cameraPannedToLimit CameraPannedToLimit, + cameraTiltedToLimit CameraTiltedToLimit, + cameraZoomedToLimit CameraZoomedToLimit, + cameraFocusedToLimit CameraFocusedToLimit, + autoSlideShowFinished NULL, + streamPlayerStateChange StreamPlayerState, + streamPlayerProgramChange ProgramNumber, + nonStandardEvent NonStandardParameter, + ... +} + +-- ========================================================================== +-- Part 2: PDU Messages +-- ========================================================================== +SourceSelectRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + streamIdentifier StreamID, + ... +} + +SourceSelectResponse ::= SEQUENCE { + requestHandle Handle, + result + CHOICE {successful NULL, + requestDenied NULL, + deviceUnavailable NULL, + invalidStreamID NULL, + currentDeviceIsLocked NULL, + deviceIncompatible NULL, + ...}, + ... +} + +SourceEventsRequest ::= SEQUENCE { + requestHandle Handle, + streamIdentifier StreamID, + sourceEventNotify BOOLEAN, -- TRUE to request source events + ... +} + +SourceEventsResponse ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + result + CHOICE {successful NULL, + eventsNotSupported NULL, + invalidStreamID NULL, + ...}, + ... +} + +SourceChangeEventIndication ::= SEQUENCE { + deviceClass DeviceClass, + deviceID DeviceID, + ... +} + +DeviceAttributeRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + ... +} + +DeviceAttributeResponse ::= SEQUENCE { + requestHandle Handle, + deviceAttributeList SET OF DeviceAttribute OPTIONAL, + result + CHOICE {successful NULL, + requestDenied NULL, + unknownDevice NULL, + ...}, + ... +} + +DeviceLockRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + lockFlag BOOLEAN, -- TRUE to lock + ... +} + +DeviceLockResponse ::= SEQUENCE { + requestHandle Handle, + result + CHOICE {successful NULL, + requestDenied NULL, + unknownDevice NULL, + lockingNotSupported NULL, + deviceAlreadyLocked NULL, + ...}, + ... +} + +DeviceLockEnquireRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + ... +} + +DeviceLockEnquireResponse ::= SEQUENCE { + requestHandle Handle, + result + CHOICE {lockRequired NULL, + lockNotRequired NULL, + unknownDevice NULL, + ...}, + ... +} + +DeviceLockTerminatedIndication ::= SEQUENCE { + deviceClass DeviceClass, + deviceID DeviceID, + ... +} + +DeviceControlRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + controlAttributeList SET SIZE (1..8) OF ControlAttribute, + ... +} + +DeviceStatusEnquireRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + statusAttributeIdentifierList SET SIZE (1..16) OF StatusAttributeIdentifier, + ... +} + +DeviceStatusEnquireResponse ::= SEQUENCE { + requestHandle Handle, + statusAttributeList SET SIZE (1..16) OF StatusAttribute OPTIONAL, + result + CHOICE {successful NULL, + requestDenied NULL, + unknownDevice NULL, + deviceUnavailable NULL, + deviceAttributeError NULL, + ...}, + ... +} + +ConfigureDeviceEventsRequest ::= SEQUENCE { + requestHandle Handle, + deviceClass DeviceClass, + deviceID DeviceID, + deviceEventIdentifierList SET OF DeviceEventIdentifier, + ... +} + +ConfigureDeviceEventsResponse ::= SEQUENCE { + requestHandle Handle, + result + CHOICE {successful NULL, + requestDenied NULL, + unknownDevice NULL, + deviceUnavailable NULL, + deviceAttributeError NULL, + ...}, + ... +} + +DeviceEventNotifyIndication ::= SEQUENCE { + deviceClass DeviceClass, + deviceID DeviceID, + deviceEventList SET SIZE (1..8) OF DeviceEvent, + ... +} + +NonStandardPDU ::= SEQUENCE {nonStandardData NonStandardParameter, + ... +} + +-- ========================================================================== +-- Part 3: Messages sent using lower layer protocol +-- ========================================================================== +RDCPDU ::= CHOICE { + request RequestPDU, + response ResponsePDU, + indication IndicationPDU +} + +RequestPDU ::= CHOICE { + sourceSelectRequest SourceSelectRequest, + sourceEventsRequest SourceEventsRequest, + deviceAttributeRequest DeviceAttributeRequest, + deviceLockRequest DeviceLockRequest, + deviceLockEnquireRequest DeviceLockEnquireRequest, + deviceControlRequest DeviceControlRequest, + deviceStatusEnquireRequest DeviceStatusEnquireRequest, + configureDeviceEventsRequest ConfigureDeviceEventsRequest, + nonStandardRequest NonStandardPDU, + ... +} + +ResponsePDU ::= CHOICE { + sourceSelectResponse SourceSelectResponse, + sourceEventsResponse SourceEventsResponse, + deviceAttributeResponse DeviceAttributeResponse, + deviceLockResponse DeviceLockResponse, + deviceLockEnquireResponse DeviceLockEnquireResponse, + deviceStatusEnquireResponse DeviceStatusEnquireResponse, + configureDeviceEventsResponse ConfigureDeviceEventsResponse, + nonStandardResponse NonStandardPDU, + ... +} + +IndicationPDU ::= CHOICE { + sourceChangeEventIndication SourceChangeEventIndication, + deviceLockTerminatedIndication DeviceLockTerminatedIndication, + deviceEventNotifyIndication DeviceEventNotifyIndication, + nonStandardIndication NonStandardPDU, + ... +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/h282/h282.cnf b/asn1/h282/h282.cnf new file mode 100644 index 0000000000..d3f2a3f551 --- /dev/null +++ b/asn1/h282/h282.cnf @@ -0,0 +1,48 @@ +# h282.cnf +# H.282 conformation file +# 2007 Tomas Kukosa + +# $Id$ + +#.OPT +PER +ALIGNED +#.END + +#.PDU_NEW +RDCPDU +NonCollapsingCapabilities +#.END + +#.FN_PARS RequestPDU + VAL_PTR = &msg_type +#.FN_HDR + gint32 msg_type = -1; + const gchar *p = NULL; +#.FN_FTR + p = match_strval(msg_type, VALS(h282_RequestPDU_vals)); + if (p && check_col(actx->pinfo->cinfo, COL_INFO)) + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RequestPDU/%s", p); +#.END + +#.FN_PARS ResponsePDU + VAL_PTR = &msg_type +#.FN_HDR + gint32 msg_type = -1; + const gchar *p = NULL; +#.FN_FTR + p = match_strval(msg_type, VALS(h282_ResponsePDU_vals)); + if (p && check_col(actx->pinfo->cinfo, COL_INFO)) + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "ResponsePDU/%s", p); +#.END + +#.FN_PARS IndicationPDU + VAL_PTR = &msg_type +#.FN_HDR + gint32 msg_type = -1; + const gchar *p = NULL; +#.FN_FTR + p = match_strval(msg_type, VALS(h282_IndicationPDU_vals)); + if (p && check_col(actx->pinfo->cinfo, COL_INFO)) + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "IndicationPDU/%s", p); +#.END diff --git a/asn1/h282/packet-h282-template.c b/asn1/h282/packet-h282-template.c new file mode 100644 index 0000000000..ef1733e3ee --- /dev/null +++ b/asn1/h282/packet-h282-template.c @@ -0,0 +1,106 @@ +/* packet-h282.c + * Routines for H.282 packet dissection + * 2007 Tomas Kukosa + * + * $Id$ + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * 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. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "packet-per.h" + +#define PNAME "H.282 Remote Device Control" +#define PSNAME "RDC" +#define PFNAME "rdc" + +/* Initialize the protocol and registered fields */ +int proto_h282 = -1; +#include "packet-h282-hf.c" + +/* Initialize the subtree pointers */ +static int ett_h282 = -1; +#include "packet-h282-ett.c" + +/* Dissectors */ + +/* Subdissectors */ + +#include "packet-h282-fn.c" + +static int +dissect_h282(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + proto_item *ti = NULL; + proto_tree *h282_tree = NULL; + + if (check_col(pinfo->cinfo, COL_PROTOCOL)) + col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME); + + ti = proto_tree_add_item(tree, proto_h282, tvb, 0, -1, FALSE); + h282_tree = proto_item_add_subtree(ti, ett_h282); + + return dissect_RDCPDU_PDU(tvb, pinfo, h282_tree); +} + +/*--- proto_register_h282 ----------------------------------------------*/ +void proto_register_h282(void) { + + /* List of fields */ + static hf_register_info hf[] = { +#include "packet-h282-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_h282, +#include "packet-h282-ettarr.c" + }; + + /* Register protocol */ + proto_h282 = proto_register_protocol(PNAME, PSNAME, PFNAME); + + /* Register fields and subtrees */ + proto_register_field_array(proto_h282, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + register_dissector(PFNAME, dissect_h282, proto_h282); + register_dissector(PFNAME".device_list", dissect_NonCollapsingCapabilities_PDU, proto_h282); + +} + +/*--- proto_reg_handoff_h282 -------------------------------------------*/ +void proto_reg_handoff_h282(void) +{ + +} + -- cgit v1.2.3