aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2005-01-02 21:58:45 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2005-01-02 21:58:45 +0000
commit0a271658af8490f22bbc33a6513cb5a35d9b6bc2 (patch)
treeb8d85e2e898907c07433873f2f3fc10b18b6ce15
parent09271f1a19ef4799d4ce401dd0cc9bc59f69995d (diff)
asn2eth generated h245 dissector
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12928 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--asn1/h245/h245-exp.cnf6
-rw-r--r--asn1/h245/h245.asn3093
-rw-r--r--asn1/h245/h245.cnf644
-rw-r--r--asn1/h245/packet-h245-template.c302
-rw-r--r--asn1/h245/packet-h245-template.h55
5 files changed, 4100 insertions, 0 deletions
diff --git a/asn1/h245/h245-exp.cnf b/asn1/h245/h245-exp.cnf
new file mode 100644
index 0000000000..b0a4d50473
--- /dev/null
+++ b/asn1/h245/h245-exp.cnf
@@ -0,0 +1,6 @@
+#.TYPE_ATTR
+DataProtocolCapability TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(DataProtocolCapability_vals) BITMASK = 0
+T38FaxProfile TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+OpenLogicalChannel TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+#.END
+
diff --git a/asn1/h245/h245.asn b/asn1/h245/h245.asn
new file mode 100644
index 0000000000..9c05f2dcca
--- /dev/null
+++ b/asn1/h245/h245.asn
@@ -0,0 +1,3093 @@
+-- Module MULTIMEDIA-SYSTEM-CONTROL (H.245:07/2003)
+MULTIMEDIA-SYSTEM-CONTROL DEFINITIONS AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+-- ===================================================================================
+-- Top level Messages
+-- ===================================================================================
+MultimediaSystemControlMessage ::= CHOICE {
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage,
+ indication IndicationMessage,
+ ...
+}
+
+-- A RequestMessage results in action and requires an immediate response
+RequestMessage ::= CHOICE {
+ nonStandard NonStandardMessage,
+ masterSlaveDetermination MasterSlaveDetermination,
+ terminalCapabilitySet TerminalCapabilitySet,
+ openLogicalChannel OpenLogicalChannel,
+ closeLogicalChannel CloseLogicalChannel,
+ requestChannelClose RequestChannelClose,
+ multiplexEntrySend MultiplexEntrySend,
+ requestMultiplexEntry RequestMultiplexEntry,
+ requestMode RequestMode,
+ roundTripDelayRequest RoundTripDelayRequest,
+ maintenanceLoopRequest MaintenanceLoopRequest,
+ ...,
+ communicationModeRequest CommunicationModeRequest,
+ conferenceRequest ConferenceRequest,
+ multilinkRequest MultilinkRequest,
+ logicalChannelRateRequest LogicalChannelRateRequest,
+ genericRequest GenericMessage
+}
+
+-- A ResponseMessage is the response to a request Message
+ResponseMessage ::= CHOICE {
+ nonStandard NonStandardMessage,
+ masterSlaveDeterminationAck MasterSlaveDeterminationAck,
+ masterSlaveDeterminationReject MasterSlaveDeterminationReject,
+ terminalCapabilitySetAck TerminalCapabilitySetAck,
+ terminalCapabilitySetReject TerminalCapabilitySetReject,
+ openLogicalChannelAck OpenLogicalChannelAck,
+ openLogicalChannelReject OpenLogicalChannelReject,
+ closeLogicalChannelAck CloseLogicalChannelAck,
+ requestChannelCloseAck RequestChannelCloseAck,
+ requestChannelCloseReject RequestChannelCloseReject,
+ multiplexEntrySendAck MultiplexEntrySendAck,
+ multiplexEntrySendReject MultiplexEntrySendReject,
+ requestMultiplexEntryAck RequestMultiplexEntryAck,
+ requestMultiplexEntryReject RequestMultiplexEntryReject,
+ requestModeAck RequestModeAck,
+ requestModeReject RequestModeReject,
+ roundTripDelayResponse RoundTripDelayResponse,
+ maintenanceLoopAck MaintenanceLoopAck,
+ maintenanceLoopReject MaintenanceLoopReject,
+ ...,
+ communicationModeResponse CommunicationModeResponse,
+ conferenceResponse ConferenceResponse,
+ multilinkResponse MultilinkResponse,
+ logicalChannelRateAcknowledge LogicalChannelRateAcknowledge,
+ logicalChannelRateReject LogicalChannelRateReject,
+ genericResponse GenericMessage
+}
+
+-- A CommandMessage requires action, but no explicit response
+CommandMessage ::= CHOICE {
+ nonStandard NonStandardMessage,
+ maintenanceLoopOffCommand MaintenanceLoopOffCommand,
+ sendTerminalCapabilitySet SendTerminalCapabilitySet,
+ encryptionCommand EncryptionCommand,
+ flowControlCommand FlowControlCommand,
+ endSessionCommand EndSessionCommand,
+ miscellaneousCommand MiscellaneousCommand,
+ ...,
+ communicationModeCommand CommunicationModeCommand,
+ conferenceCommand ConferenceCommand,
+ h223MultiplexReconfiguration H223MultiplexReconfiguration,
+ newATMVCCommand NewATMVCCommand,
+ mobileMultilinkReconfigurationCommand MobileMultilinkReconfigurationCommand,
+ genericCommand GenericMessage
+}
+
+-- An IndicationMessage is information that does not require action or response
+IndicationMessage ::= CHOICE {
+ nonStandard NonStandardMessage,
+ functionNotUnderstood FunctionNotUnderstood,
+ masterSlaveDeterminationRelease MasterSlaveDeterminationRelease,
+ terminalCapabilitySetRelease TerminalCapabilitySetRelease,
+ openLogicalChannelConfirm OpenLogicalChannelConfirm,
+ requestChannelCloseRelease RequestChannelCloseRelease,
+ multiplexEntrySendRelease MultiplexEntrySendRelease,
+ requestMultiplexEntryRelease RequestMultiplexEntryRelease,
+ requestModeRelease RequestModeRelease,
+ miscellaneousIndication MiscellaneousIndication,
+ jitterIndication JitterIndication,
+ h223SkewIndication H223SkewIndication,
+ newATMVCIndication NewATMVCIndication,
+ userInput UserInputIndication,
+ ...,
+ h2250MaximumSkewIndication H2250MaximumSkewIndication,
+ mcLocationIndication MCLocationIndication,
+ conferenceIndication ConferenceIndication,
+ vendorIdentification VendorIdentification,
+ functionNotSupported FunctionNotSupported,
+ multilinkIndication MultilinkIndication,
+ logicalChannelRateRelease LogicalChannelRateRelease,
+ flowControlIndication FlowControlIndication,
+ mobileMultilinkReconfigurationIndication
+ MobileMultilinkReconfigurationIndication,
+ genericIndication GenericMessage
+}
+
+-- SequenceNumber is defined here as it is used in a number of Messages
+SequenceNumber ::= INTEGER(0..255)
+
+-- ===================================================================================
+-- Generic Message definitions
+-- ===================================================================================
+GenericMessage ::= SEQUENCE {
+ messageIdentifier CapabilityIdentifier,
+ subMessageIdentifer INTEGER(0..127) OPTIONAL,
+ messageContent SEQUENCE OF GenericParameter OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Non standard Message definitions
+-- ===================================================================================
+NonStandardMessage ::= SEQUENCE {nonStandardData NonStandardParameter,
+ ...
+}
+
+NonStandardParameter ::= SEQUENCE {
+ nonStandardIdentifier NonStandardIdentifier,
+ data OCTET STRING
+}
+
+NonStandardIdentifier ::= CHOICE {
+ object OBJECT IDENTIFIER,
+ h221NonStandard
+ SEQUENCE {t35CountryCode INTEGER(0..255), -- country, per T.35 Annex A--
+ t35Extension INTEGER(0..255),
+ -- assigned nationally unless t35CountryCode is binary
+ -- 1111 1111, in which case it shall contain the country code
+ -- according to T.35 Annex B
+ manufacturerCode INTEGER(0..65535) -- assigned nationally
+ }
+}
+
+-- ===================================================================================
+-- Master-slave determination definitions
+-- ===================================================================================
+MasterSlaveDetermination ::= SEQUENCE {
+ terminalType INTEGER(0..255),
+ statusDeterminationNumber INTEGER(0..16777215),
+ ...
+}
+
+MasterSlaveDeterminationAck ::= SEQUENCE {
+ decision CHOICE {master NULL,
+ slave NULL},
+ ...
+}
+
+MasterSlaveDeterminationReject ::= SEQUENCE {
+ cause CHOICE {identicalNumbers NULL,
+ ...},
+ ...
+}
+
+MasterSlaveDeterminationRelease ::= SEQUENCE {...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions
+-- ===================================================================================
+TerminalCapabilitySet ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ protocolIdentifier OBJECT IDENTIFIER,
+ -- shall be set to the value
+ -- {itu-t (0) recommendation (0) h (8) 245 version (0) 10}
+ multiplexCapability MultiplexCapability OPTIONAL,
+ capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL,
+ capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL,
+ ...
+}
+
+CapabilityTableEntry ::= SEQUENCE {
+ capabilityTableEntryNumber CapabilityTableEntryNumber,
+ capability Capability OPTIONAL
+}
+
+CapabilityDescriptor ::= SEQUENCE {
+ capabilityDescriptorNumber CapabilityDescriptorNumber,
+ simultaneousCapabilities
+ SET SIZE (1..256) OF AlternativeCapabilitySet OPTIONAL
+}
+
+AlternativeCapabilitySet ::=
+ SEQUENCE SIZE (1..256) OF CapabilityTableEntryNumber
+
+CapabilityTableEntryNumber ::= INTEGER(1..65535)
+
+CapabilityDescriptorNumber ::= INTEGER(0..255)
+
+TerminalCapabilitySetAck ::= SEQUENCE {sequenceNumber SequenceNumber,
+ ...
+}
+
+TerminalCapabilitySetReject ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ cause
+ CHOICE {unspecified NULL,
+ undefinedTableEntryUsed NULL,
+ descriptorCapacityExceeded NULL,
+ tableEntryCapacityExceeded
+ CHOICE {highestEntryNumberProcessed CapabilityTableEntryNumber,
+ noneProcessed NULL},
+ ...},
+ ...
+}
+
+TerminalCapabilitySetRelease ::= SEQUENCE {...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: top level capability description
+-- ===================================================================================
+Capability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ receiveVideoCapability VideoCapability,
+ transmitVideoCapability VideoCapability,
+ receiveAndTransmitVideoCapability VideoCapability,
+ receiveAudioCapability AudioCapability,
+ transmitAudioCapability AudioCapability,
+ receiveAndTransmitAudioCapability AudioCapability,
+ receiveDataApplicationCapability DataApplicationCapability,
+ transmitDataApplicationCapability DataApplicationCapability,
+ receiveAndTransmitDataApplicationCapability DataApplicationCapability,
+ h233EncryptionTransmitCapability BOOLEAN,
+ h233EncryptionReceiveCapability
+ SEQUENCE {h233IVResponseTime INTEGER(0..255), -- units milliseconds --
+ ...},
+ ...,
+ conferenceCapability ConferenceCapability,
+ h235SecurityCapability H235SecurityCapability,
+ maxPendingReplacementFor INTEGER(0..255),
+ receiveUserInputCapability UserInputCapability,
+ transmitUserInputCapability UserInputCapability,
+ receiveAndTransmitUserInputCapability UserInputCapability,
+ genericControlCapability GenericCapability,
+ receiveMultiplexedStreamCapability MultiplexedStreamCapability,
+ transmitMultiplexedStreamCapability MultiplexedStreamCapability,
+ receiveAndTransmitMultiplexedStreamCapability MultiplexedStreamCapability,
+ receiveRTPAudioTelephonyEventCapability AudioTelephonyEventCapability,
+ receiveRTPAudioToneCapability AudioToneCapability,
+ fecCapability FECCapability,
+ multiplePayloadStreamCapability
+ MultiplePayloadStreamCapability
+}
+
+H235SecurityCapability ::= SEQUENCE {
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+ mediaCapability CapabilityTableEntryNumber,
+ -- Note: the mediaCapability shall refer to Capability Table Entries that do contain a transmit,
+ -- receive, or receiveAndTransmit AudioCapability, VideoCapability,
+ -- DataApplicationCapability, or similar capability indicated by a NonStandardParameter only
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Multiplex capabilities
+-- ===================================================================================
+MultiplexCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ v76Capability V76Capability,
+ ...,
+ h2250Capability H2250Capability,
+ genericMultiplexCapability GenericCapability
+}
+
+H222Capability ::= SEQUENCE {
+ numberOfVCs INTEGER(1..256),
+ vcCapability SET OF VCCapability,
+ ...
+}
+
+VCCapability ::= SEQUENCE {
+ aal1
+ SEQUENCE {nullClockRecovery BOOLEAN,
+ srtsClockRecovery BOOLEAN,
+ adaptiveClockRecovery BOOLEAN,
+ nullErrorCorrection BOOLEAN,
+ longInterleaver BOOLEAN,
+ shortInterleaver BOOLEAN,
+ errorCorrectionOnly BOOLEAN,
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...} OPTIONAL,
+ aal5
+ SEQUENCE {forwardMaximumSDUSize INTEGER(0..65535), -- units octets--
+ backwardMaximumSDUSize INTEGER(0..65535), -- units octets--
+ ...} OPTIONAL,
+ transportStream BOOLEAN,
+ programStream BOOLEAN,
+ availableBitRates
+ SEQUENCE {type
+ CHOICE {singleBitRate INTEGER(1..65535), -- units 64 kbit/s--
+ rangeOfBitRates
+ SEQUENCE {lowerBitRate INTEGER(1..65535), -- units 64 kbit/s--
+ higherBitRate INTEGER(1..65535) -- units 64 kbit/s
+ }},
+ ...},
+ ...,
+ aal1ViaGateway
+ SEQUENCE {gatewayAddress SET SIZE (1..256) OF Q2931Address,
+ nullClockRecovery BOOLEAN,
+ srtsClockRecovery BOOLEAN,
+ adaptiveClockRecovery BOOLEAN,
+ nullErrorCorrection BOOLEAN,
+ longInterleaver BOOLEAN,
+ shortInterleaver BOOLEAN,
+ errorCorrectionOnly BOOLEAN,
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...} OPTIONAL
+}
+
+H223Capability ::= SEQUENCE {
+ transportWithI-frames BOOLEAN, -- I-frame transport of H.245
+ videoWithAL1 BOOLEAN,
+ videoWithAL2 BOOLEAN,
+ videoWithAL3 BOOLEAN,
+ audioWithAL1 BOOLEAN,
+ audioWithAL2 BOOLEAN,
+ audioWithAL3 BOOLEAN,
+ dataWithAL1 BOOLEAN,
+ dataWithAL2 BOOLEAN,
+ dataWithAL3 BOOLEAN,
+ maximumAl2SDUSize INTEGER(0..65535), -- units octets
+ maximumAl3SDUSize INTEGER(0..65535), -- units octets
+ maximumDelayJitter INTEGER(0..1023), -- units milliseconds
+ h223MultiplexTableCapability
+ CHOICE {basic NULL,
+ enhanced
+ SEQUENCE {maximumNestingDepth INTEGER(1..15),
+ maximumElementListSize INTEGER(2..255),
+ maximumSubElementListSize INTEGER(2..255),
+ ...}},
+ ...,
+ maxMUXPDUSizeCapability BOOLEAN,
+ nsrpSupport BOOLEAN,
+ mobileOperationTransmitCapability
+ SEQUENCE {modeChangeCapability BOOLEAN,
+ h223AnnexA BOOLEAN,
+ h223AnnexADoubleFlag BOOLEAN,
+ h223AnnexB BOOLEAN,
+ h223AnnexBwithHeader BOOLEAN,
+ ...} OPTIONAL,
+ h223AnnexCCapability H223AnnexCCapability OPTIONAL,
+ bitRate INTEGER(1..19200) OPTIONAL, -- units of 100 bit/s
+ mobileMultilinkFrameCapability
+ SEQUENCE {maximumSampleSize INTEGER(1..255), -- units octets--
+ maximumPayloadLength INTEGER(1..65025), -- units octets--
+ ...} OPTIONAL
+}
+
+H223AnnexCCapability ::= SEQUENCE {
+ videoWithAL1M BOOLEAN,
+ videoWithAL2M BOOLEAN,
+ videoWithAL3M BOOLEAN,
+ audioWithAL1M BOOLEAN,
+ audioWithAL2M BOOLEAN,
+ audioWithAL3M BOOLEAN,
+ dataWithAL1M BOOLEAN,
+ dataWithAL2M BOOLEAN,
+ dataWithAL3M BOOLEAN,
+ alpduInterleaving BOOLEAN,
+ maximumAL1MPDUSize INTEGER(0..65535), -- units octets
+ maximumAL2MSDUSize INTEGER(0..65535), -- units octets
+ maximumAL3MSDUSize INTEGER(0..65535), -- units octets
+ ...,
+ rsCodeCapability BOOLEAN OPTIONAL
+}
+
+V76Capability ::= SEQUENCE {
+ suspendResumeCapabilitywAddress BOOLEAN,
+ suspendResumeCapabilitywoAddress BOOLEAN,
+ rejCapability BOOLEAN,
+ sREJCapability BOOLEAN,
+ mREJCapability BOOLEAN,
+ crc8bitCapability BOOLEAN,
+ crc16bitCapability BOOLEAN,
+ crc32bitCapability BOOLEAN,
+ uihCapability BOOLEAN,
+ numOfDLCS INTEGER(2..8191),
+ twoOctetAddressFieldCapability BOOLEAN,
+ loopBackTestCapability BOOLEAN,
+ n401Capability INTEGER(1..4095),
+ maxWindowSizeCapability INTEGER(1..127),
+ v75Capability V75Capability,
+ ...
+}
+
+V75Capability ::= SEQUENCE {audioHeader BOOLEAN,
+ ...
+}
+
+H2250Capability ::= SEQUENCE {
+ maximumAudioDelayJitter INTEGER(0..1023), -- units in milliseconds
+ receiveMultipointCapability MultipointCapability,
+ transmitMultipointCapability MultipointCapability,
+ receiveAndTransmitMultipointCapability MultipointCapability,
+ mcCapability
+ SEQUENCE {centralizedConferenceMC BOOLEAN,
+ decentralizedConferenceMC BOOLEAN,
+ ...},
+ rtcpVideoControlCapability BOOLEAN, -- FIR and NACK
+ mediaPacketizationCapability MediaPacketizationCapability,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncodingCapability
+ SEQUENCE SIZE (1..256) OF RedundancyEncodingCapability OPTIONAL,
+ logicalChannelSwitchingCapability BOOLEAN,
+ t120DynamicPortCapability BOOLEAN
+}
+
+MediaPacketizationCapability ::= SEQUENCE {
+ h261aVideoPacketization BOOLEAN,
+ ...,
+ rtpPayloadType2 SEQUENCE SIZE (1..256) OF RTPPayloadType OPTIONAL
+}
+
+RSVPParameters ::= SEQUENCE {
+ qosMode QOSMode OPTIONAL,
+ tokenRate INTEGER(1..4294967295) OPTIONAL,
+ -- rate in bytes/sec
+ bucketSize INTEGER(1..4294967295) OPTIONAL, -- size in bytes
+ peakRate INTEGER(1..4294967295) OPTIONAL,
+ -- peak bandwidth bytes/sec
+ minPoliced INTEGER(1..4294967295) OPTIONAL, --
+ maxPktSize INTEGER(1..4294967295) OPTIONAL, -- size in bytes
+ ...
+}
+
+QOSMode ::= CHOICE {guaranteedQOS NULL,
+ controlledLoad NULL,
+ ...
+}
+
+-- Ed. Replace with ITU-T ATM Transfer Capability Types
+ATMParameters ::= SEQUENCE {
+ maxNTUSize INTEGER(0..65535), --units in octets
+ atmUBR BOOLEAN, --unspecified bit rate
+ atmrtVBR BOOLEAN, --real time variable bit rate
+ atmnrtVBR BOOLEAN, --non real time variable bit rate
+ atmABR BOOLEAN, --available bit rate
+ atmCBR BOOLEAN, --constant bit rate
+ ...
+}
+
+QOSCapability ::= SEQUENCE {
+ nonStandardData NonStandardParameter OPTIONAL,
+ rsvpParameters RSVPParameters OPTIONAL,
+ atmParameters ATMParameters OPTIONAL,
+ ...
+}
+
+MediaTransportType ::= CHOICE {
+ ip-UDP NULL,
+ ip-TCP NULL,
+ atm-AAL5-UNIDIR NULL, -- virtual circuits used as unidirectional
+ atm-AAL5-BIDIR NULL, -- virtual circuits used as bidirectional
+ ...,
+ atm-AAL5-compressed SEQUENCE {variable-delta BOOLEAN,
+ ...}
+}
+
+MediaChannelCapability ::= SEQUENCE {
+ mediaTransport MediaTransportType OPTIONAL,
+ ...
+}
+
+TransportCapability ::= SEQUENCE {
+ nonStandard NonStandardParameter OPTIONAL,
+ qOSCapabilities SEQUENCE SIZE (1..256) OF QOSCapability OPTIONAL,
+ mediaChannelCapabilities
+ SEQUENCE SIZE (1..256) OF MediaChannelCapability OPTIONAL,
+ ...
+}
+
+RedundancyEncodingCapability ::= SEQUENCE {
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ primaryEncoding CapabilityTableEntryNumber,
+ secondaryEncoding2
+ SEQUENCE SIZE (1..256) OF CapabilityTableEntryNumber OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMethod ::= CHOICE {
+ nonStandard NonStandardParameter,
+ rtpAudioRedundancyEncoding NULL,
+ ...,
+ rtpH263VideoRedundancyEncoding RTPH263VideoRedundancyEncoding
+}
+
+RTPH263VideoRedundancyEncoding ::= SEQUENCE {
+ numberOfThreads INTEGER(1..16),
+ framesBetweenSyncPoints INTEGER(1..256),
+ frameToThreadMapping
+ CHOICE {roundrobin NULL,
+ custom
+ SEQUENCE SIZE (1..256) OF RTPH263VideoRedundancyFrameMapping,
+ -- empty SEQUENCE for capability negotiation
+ -- meaningful contents only OpenLogicalChannel
+ ...},
+ containedThreads SEQUENCE SIZE (1..256) OF INTEGER(0..15) OPTIONAL,
+ -- only used for opening of logical channels
+ ...
+}
+
+RTPH263VideoRedundancyFrameMapping ::= SEQUENCE {
+ threadNumber INTEGER(0..15),
+ frameSequence SEQUENCE SIZE (1..256) OF INTEGER(0..255),
+ ...
+}
+
+MultipointCapability ::= SEQUENCE {
+ multicastCapability BOOLEAN,
+ multiUniCastConference BOOLEAN,
+ mediaDistributionCapability SEQUENCE OF MediaDistributionCapability,
+ ...
+}
+
+MediaDistributionCapability ::= SEQUENCE {
+ centralizedControl BOOLEAN,
+ distributedControl BOOLEAN, -- for further study in H.323
+ centralizedAudio BOOLEAN,
+ distributedAudio BOOLEAN,
+ centralizedVideo BOOLEAN,
+ distributedVideo BOOLEAN,
+ centralizedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ distributedData SEQUENCE OF DataApplicationCapability OPTIONAL,
+ -- for further study in H.323
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Video capabilities
+-- ===================================================================================
+VideoCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h261VideoCapability H261VideoCapability,
+ h262VideoCapability H262VideoCapability,
+ h263VideoCapability H263VideoCapability,
+ is11172VideoCapability IS11172VideoCapability,
+ ...,
+ genericVideoCapability GenericCapability,
+ extendedVideoCapability ExtendedVideoCapability
+}
+
+ExtendedVideoCapability ::= SEQUENCE {
+ videoCapability SEQUENCE OF VideoCapability,
+ videoCapabilityExtension SEQUENCE OF GenericCapability OPTIONAL,
+ ...
+}
+
+H261VideoCapability ::= SEQUENCE {
+ qcifMPI INTEGER(1..4) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER(1..4) OPTIONAL, -- units 1/29.97 Hz
+ temporalSpatialTradeOffCapability BOOLEAN,
+ maxBitRate INTEGER(1..19200), -- units of 100 bit/s
+ stillImageTransmission BOOLEAN, -- Annex D of H.261
+ ...,
+ videoBadMBsCap BOOLEAN
+}
+
+H262VideoCapability ::= SEQUENCE {
+ profileAndLevel-SPatML BOOLEAN,
+ profileAndLevel-MPatLL BOOLEAN,
+ profileAndLevel-MPatML BOOLEAN,
+ profileAndLevel-MPatH-14 BOOLEAN,
+ profileAndLevel-MPatHL BOOLEAN,
+ profileAndLevel-SNRatLL BOOLEAN,
+ profileAndLevel-SNRatML BOOLEAN,
+ profileAndLevel-SpatialatH-14 BOOLEAN,
+ profileAndLevel-HPatML BOOLEAN,
+ profileAndLevel-HPatH-14 BOOLEAN,
+ profileAndLevel-HPatHL BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...,
+ videoBadMBsCap BOOLEAN
+}
+
+H263VideoCapability ::= SEQUENCE {
+ sqcifMPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER(1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ hrd-B INTEGER(0..524287) OPTIONAL, -- units 128 bits
+ bppMaxKb INTEGER(0..65535) OPTIONAL, -- units 1024 bits
+ ...,
+ slowSqcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame
+ slowQcifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+}
+
+EnhancementLayerInfo ::= SEQUENCE {
+ baseBitRateConstrained BOOLEAN,
+ snrEnhancement SET SIZE (1..14) OF EnhancementOptions OPTIONAL,
+ spatialEnhancement SET SIZE (1..14) OF EnhancementOptions OPTIONAL,
+ bPictureEnhancement SET SIZE (1..14) OF BEnhancementParameters OPTIONAL,
+ ...
+}
+
+BEnhancementParameters ::= SEQUENCE {
+ enhancementOptions EnhancementOptions,
+ numberOfBPictures INTEGER(1..64),
+ ...
+}
+
+EnhancementOptions ::= SEQUENCE {
+ sqcifMPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ qcifMPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ cifMPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif4MPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ cif16MPI INTEGER(1..32) OPTIONAL, -- units 1/29.97 Hz
+ maxBitRate INTEGER(1..192400), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ temporalSpatialTradeOffCapability BOOLEAN,
+ slowSqcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame
+ slowQcifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ slowCifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ slowCif4MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ slowCif16MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame
+ errorCompensation BOOLEAN,
+ h263Options H263Options OPTIONAL,
+ ...
+}
+
+H263Options ::= SEQUENCE {
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+ unlimitedMotionVectors BOOLEAN,
+ fullPictureFreeze BOOLEAN,
+ partialPictureFreezeAndRelease BOOLEAN,
+ resizingPartPicFreezeAndRelease BOOLEAN,
+ fullPictureSnapshot BOOLEAN,
+ partialPictureSnapshot BOOLEAN,
+ videoSegmentTagging BOOLEAN,
+ progressiveRefinement BOOLEAN,
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+ independentSegmentDecoding BOOLEAN,
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+ transparencyParameters TransparencyParameters OPTIONAL,
+ separateVideoBackChannel BOOLEAN,
+ refPictureSelection RefPictureSelection OPTIONAL,
+ customPictureClockFrequency
+ SET SIZE (1..16) OF CustomPictureClockFrequency OPTIONAL,
+ customPictureFormat
+ SET SIZE (1..16) OF CustomPictureFormat OPTIONAL,
+ modeCombos
+ SET SIZE (1..16) OF H263VideoModeCombos OPTIONAL,
+ ...,
+ videoBadMBsCap BOOLEAN,
+ h263Version3Options H263Version3Options
+}
+
+TransparencyParameters ::= SEQUENCE {
+ presentationOrder INTEGER(1..256),
+ offset-x INTEGER(-262144..262143), -- 1/8 pixels
+ offset-y INTEGER(-262144..262143), -- 1/8 pixels
+ scale-x INTEGER(1..255),
+ scale-y INTEGER(1..255),
+ ...
+}
+
+RefPictureSelection ::= SEQUENCE {
+ additionalPictureMemory
+ SEQUENCE {sqcifAdditionalPictureMemory INTEGER(1..256) OPTIONAL, -- units frame--
+ qcifAdditionalPictureMemory INTEGER(1..256) OPTIONAL, -- units frame--
+ cifAdditionalPictureMemory INTEGER(1..256) OPTIONAL, -- units frame--
+ cif4AdditionalPictureMemory INTEGER(1..256) OPTIONAL, -- units frame--
+ cif16AdditionalPictureMemory INTEGER(1..256) OPTIONAL, -- units frame--
+ bigCpfAdditionalPictureMemory INTEGER(1..256) OPTIONAL, -- units frame--
+ ...} OPTIONAL,
+ videoMux BOOLEAN,
+ videoBackChannelSend
+ CHOICE {none NULL,
+ ackMessageOnly NULL,
+ nackMessageOnly NULL,
+ ackOrNackMessageOnly NULL,
+ ackAndNackMessage NULL,
+ ...},
+ ...,
+ enhancedReferencePicSelect
+ SEQUENCE {subPictureRemovalParameters
+ SEQUENCE {mpuHorizMBs INTEGER(1..128),
+ mpuVertMBs INTEGER(1..72),
+ mpuTotalNumber INTEGER(1..65536),
+ ...} OPTIONAL,
+ ...}
+}
+
+CustomPictureClockFrequency ::= SEQUENCE {
+ clockConversionCode INTEGER(1000..1001),
+ clockDivisor INTEGER(1..127),
+ sqcifMPI INTEGER(1..2048) OPTIONAL,
+ qcifMPI INTEGER(1..2048) OPTIONAL,
+ cifMPI INTEGER(1..2048) OPTIONAL,
+ cif4MPI INTEGER(1..2048) OPTIONAL,
+ cif16MPI INTEGER(1..2048) OPTIONAL,
+ ...
+}
+
+CustomPictureFormat ::= SEQUENCE {
+ maxCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ maxCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureWidth INTEGER(1..2048), -- units 4 pixels
+ minCustomPictureHeight INTEGER(1..2048), -- units 4 pixels
+ mPI
+ SEQUENCE {standardMPI INTEGER(1..31) OPTIONAL,
+ customPCF
+ SET SIZE (1..16) OF
+ SEQUENCE {clockConversionCode INTEGER(1000..1001),
+ clockDivisor INTEGER(1..127),
+ customMPI INTEGER(1..2048),
+ ...} OPTIONAL,
+ ...},
+ pixelAspectInformation
+ CHOICE {anyPixelAspectRatio BOOLEAN,
+ pixelAspectCode SET SIZE (1..14) OF INTEGER(1..14),
+ extendedPAR
+ SET SIZE (1..256) OF
+ SEQUENCE {width INTEGER(1..255),
+ height INTEGER(1..255),
+ ...},
+ ...},
+ ...
+}
+
+H263VideoModeCombos ::= SEQUENCE {
+ h263VideoUncoupledModes H263ModeComboFlags,
+ h263VideoCoupledModes SET SIZE (1..16) OF H263ModeComboFlags,
+ ...
+}
+
+H263ModeComboFlags ::= SEQUENCE {
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ advancedIntraCodingMode BOOLEAN,
+ deblockingFilterMode BOOLEAN,
+ unlimitedMotionVectors BOOLEAN,
+ slicesInOrder-NonRect BOOLEAN,
+ slicesInOrder-Rect BOOLEAN,
+ slicesNoOrder-NonRect BOOLEAN,
+ slicesNoOrder-Rect BOOLEAN,
+ improvedPBFramesMode BOOLEAN,
+ referencePicSelect BOOLEAN,
+ dynamicPictureResizingByFour BOOLEAN,
+ dynamicPictureResizingSixteenthPel BOOLEAN,
+ dynamicWarpingHalfPel BOOLEAN,
+ dynamicWarpingSixteenthPel BOOLEAN,
+ reducedResolutionUpdate BOOLEAN,
+ independentSegmentDecoding BOOLEAN,
+ alternateInterVLCMode BOOLEAN,
+ modifiedQuantizationMode BOOLEAN,
+ ...,
+ enhancedReferencePicSelect BOOLEAN,
+ h263Version3Options H263Version3Options
+}
+
+H263Version3Options ::= SEQUENCE {
+ dataPartitionedSlices BOOLEAN,
+ fixedPointIDCT0 BOOLEAN,
+ interlacedFields BOOLEAN,
+ currentPictureHeaderRepetition BOOLEAN,
+ previousPictureHeaderRepetition BOOLEAN,
+ nextPictureHeaderRepetition BOOLEAN,
+ pictureNumber BOOLEAN,
+ spareReferencePictures BOOLEAN,
+ ...
+}
+
+IS11172VideoCapability ::= SEQUENCE {
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400 bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384 bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER(0..15) OPTIONAL,
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...,
+ videoBadMBsCap BOOLEAN
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Audio capabilities
+-- ===================================================================================
+-- For an H.222 multiplex, the integers indicate the size of the STD buffer in units of 256 octets
+-- For an H.223 multiplex, the integers indicate the maximum number of audio frames per AL-SDU
+-- For an H.225.0 multiplex, the integers indicate the maximum number of audio frames per packet
+AudioCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ g711Alaw64k INTEGER(1..256),
+ g711Alaw56k INTEGER(1..256),
+ g711Ulaw64k INTEGER(1..256),
+ g711Ulaw56k INTEGER(1..256),
+ g722-64k INTEGER(1..256),
+ g722-56k INTEGER(1..256),
+ g722-48k INTEGER(1..256),
+ g7231
+ SEQUENCE {maxAl-sduAudioFrames INTEGER(1..256),
+ silenceSuppression BOOLEAN},
+ g728 INTEGER(1..256),
+ g729 INTEGER(1..256),
+ g729AnnexA INTEGER(1..256),
+ is11172AudioCapability IS11172AudioCapability,
+ is13818AudioCapability IS13818AudioCapability,
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCCapability G7231AnnexCCapability,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability,
+ genericAudioCapability GenericCapability,
+ g729Extensions G729Extensions,
+ vbd VBDCapability,
+ audioTelephonyEvent NoPTAudioTelephonyEventCapability,
+ audioTone NoPTAudioToneCapability
+}
+
+G729Extensions ::= SEQUENCE {
+ audioUnit INTEGER(1..256) OPTIONAL,
+ annexA BOOLEAN,
+ annexB BOOLEAN,
+ annexD BOOLEAN,
+ annexE BOOLEAN,
+ annexF BOOLEAN,
+ annexG BOOLEAN,
+ annexH BOOLEAN,
+ ...
+}
+
+G7231AnnexCCapability ::= SEQUENCE {
+ maxAl-sduAudioFrames INTEGER(1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode G723AnnexCAudioMode OPTIONAL,
+ ...
+}
+G723AnnexCAudioMode ::= SEQUENCE {highRateMode0 INTEGER(27..78), -- units octets--
+ highRateMode1 INTEGER(27..78), -- units octets--
+ lowRateMode0 INTEGER(23..66), -- units octets--
+ lowRateMode1 INTEGER(23..66), -- units octets--
+ sidMode0 INTEGER(6..17), -- units octets--
+ sidMode1 INTEGER(6..17), -- units octets--
+ ...}
+
+IS11172AudioCapability ::= SEQUENCE {
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+ bitRate INTEGER(1..448), -- units kbit/s
+ ...
+}
+
+IS13818AudioCapability ::= SEQUENCE {
+ audioLayer1 BOOLEAN,
+ audioLayer2 BOOLEAN,
+ audioLayer3 BOOLEAN,
+ audioSampling16k BOOLEAN,
+ audioSampling22k05 BOOLEAN,
+ audioSampling24k BOOLEAN,
+ audioSampling32k BOOLEAN,
+ audioSampling44k1 BOOLEAN,
+ audioSampling48k BOOLEAN,
+ singleChannel BOOLEAN,
+ twoChannels BOOLEAN,
+ threeChannels2-1 BOOLEAN,
+ threeChannels3-0 BOOLEAN,
+ fourChannels2-0-2-0 BOOLEAN,
+ fourChannels2-2 BOOLEAN,
+ fourChannels3-1 BOOLEAN,
+ fiveChannels3-0-2-0 BOOLEAN,
+ fiveChannels3-2 BOOLEAN,
+ lowFrequencyEnhancement BOOLEAN,
+ multilingual BOOLEAN,
+ bitRate INTEGER(1..1130), -- units kbit/s
+ ...
+}
+
+GSMAudioCapability ::= SEQUENCE {
+ audioUnitSize INTEGER(1..256),
+ comfortNoise BOOLEAN,
+ scrambled BOOLEAN,
+ ...
+}
+
+VBDCapability ::= SEQUENCE {type AudioCapability, -- shall not be "vbd"
+ ...
+}
+
+-- ===================================================================================
+-- Capability exchange definitions: Data capabilities
+-- ===================================================================================
+DataApplicationCapability ::= SEQUENCE {
+ application Application,
+ maxBitRate INTEGER(0..4294967295), -- units 100 bit/s
+ ...
+}
+
+Application ::= CHOICE {nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84
+ SEQUENCE {t84Protocol DataProtocolCapability,
+ t84Profile T84Profile},
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid Nlpid,
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability,
+ t38fax
+ SEQUENCE {t38FaxProtocol DataProtocolCapability,
+ t38FaxProfile T38FaxProfile},
+ genericDataCapability GenericCapability}
+
+DataProtocolCapability ::= CHOICE {
+ nonStandard NonStandardParameter,
+ v14buffered NULL,
+ v42lapm NULL, -- may negotiate to V.42bis
+ hdlcFrameTunnelling NULL,
+ h310SeparateVCStack NULL,
+ h310SingleVCStack NULL,
+ transparent NULL,
+ ...,
+ segmentationAndReassembly NULL,
+ hdlcFrameTunnelingwSAR NULL,
+ v120 NULL, -- as in H.230
+ separateLANStack NULL,
+ v76wCompression
+ CHOICE {transmitCompression CompressionType,
+ receiveCompression CompressionType,
+ transmitAndReceiveCompression CompressionType,
+ ...},
+ tcp NULL,
+ udp NULL
+}
+
+CompressionType ::= CHOICE {v42bis V42bis,
+ ...
+}
+
+V42bis ::= SEQUENCE {
+ numberOfCodewords INTEGER(1..65536),
+ maximumStringLength INTEGER(1..256),
+ ...
+}
+
+T84Profile ::= CHOICE {
+ t84Unrestricted NULL,
+ t84Restricted
+ SEQUENCE {qcif BOOLEAN,
+ cif BOOLEAN,
+ ccir601Seq BOOLEAN,
+ ccir601Prog BOOLEAN,
+ hdtvSeq BOOLEAN,
+ hdtvProg BOOLEAN,
+ g3FacsMH200x100 BOOLEAN,
+ g3FacsMH200x200 BOOLEAN,
+ g4FacsMMR200x100 BOOLEAN,
+ g4FacsMMR200x200 BOOLEAN,
+ jbig200x200Seq BOOLEAN,
+ jbig200x200Prog BOOLEAN,
+ jbig300x300Seq BOOLEAN,
+ jbig300x300Prog BOOLEAN,
+ digPhotoLow BOOLEAN,
+ digPhotoMedSeq BOOLEAN,
+ digPhotoMedProg BOOLEAN,
+ digPhotoHighSeq BOOLEAN,
+ digPhotoHighProg BOOLEAN,
+ ...}
+}
+
+T38FaxProfile ::= SEQUENCE {
+ fillBitRemoval BOOLEAN,
+ transcodingJBIG BOOLEAN,
+ transcodingMMR BOOLEAN,
+ ...,
+ version INTEGER(0..255),
+ -- Version 0, the default, refers to T.38 (1998)
+ t38FaxRateManagement T38FaxRateManagement,
+ -- The default Data Rate Management is
+ -- determined by the choice of
+ -- DataProtocolCapability
+ t38FaxUdpOptions T38FaxUdpOptions OPTIONAL,
+ -- For UDP, t38UDPRedundancy is the default
+ t38FaxTcpOptions T38FaxTcpOptions OPTIONAL
+}
+
+T38FaxRateManagement ::= CHOICE {
+ localTCF NULL,
+ transferredTCF NULL,
+ ...
+}
+
+T38FaxUdpOptions ::= SEQUENCE {
+ t38FaxMaxBuffer INTEGER OPTIONAL,
+ t38FaxMaxDatagram INTEGER OPTIONAL,
+ t38FaxUdpEC
+ CHOICE {t38UDPFEC NULL,
+ t38UDPRedundancy NULL,
+ ...}
+}
+
+T38FaxTcpOptions ::= SEQUENCE {t38TCPBidirectionalMode BOOLEAN,
+ ...
+}
+Nlpid ::= SEQUENCE {nlpidProtocol DataProtocolCapability,
+ nlpidData OCTET STRING}
+-- ===================================================================================
+-- Encryption Capability Definitions:
+-- ===================================================================================
+EncryptionAuthenticationAndIntegrity ::= SEQUENCE {
+ encryptionCapability EncryptionCapability OPTIONAL,
+ authenticationCapability AuthenticationCapability OPTIONAL,
+ integrityCapability IntegrityCapability OPTIONAL,
+ ...
+}
+
+EncryptionCapability ::= SEQUENCE SIZE (1..256) OF MediaEncryptionAlgorithm
+
+MediaEncryptionAlgorithm ::= CHOICE {
+ nonStandard NonStandardParameter,
+ algorithm OBJECT IDENTIFIER, -- many defined in ISO/IEC 9979
+ ...
+}
+
+AuthenticationCapability ::= SEQUENCE {
+ nonStandard NonStandardParameter OPTIONAL,
+ ...,
+ antiSpamAlgorithm OBJECT IDENTIFIER OPTIONAL
+}
+
+IntegrityCapability ::= SEQUENCE {
+ nonStandard NonStandardParameter OPTIONAL,
+ ...
+}
+
+-- ================================================================================
+-- Capability Exchange Definitions: UserInput
+-- ================================================================================
+UserInputCapability ::= CHOICE {
+ nonStandard SEQUENCE SIZE (1..16) OF NonStandardParameter,
+ basicString NULL, -- alphanumeric
+ iA5String NULL, -- alphanumeric
+ generalString NULL, -- alphanumeric
+ dtmf NULL, -- supports dtmf using signal and signalUpdate
+ hookflash NULL, -- supports hookflash using signal
+ ...,
+ extendedAlphanumeric NULL,
+ encryptedBasicString NULL, -- encrypted Basic string in encryptedAlphanumeric
+ encryptedIA5String NULL, -- encrypted IA5 string in encryptedSignalType
+ encryptedGeneralString NULL, -- encrypted general string in
+
+ -- extendedAlphanumeric.encryptedalphanumeric
+ secureDTMF NULL -- secure DTMF using encryptedSignalType
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: Conference
+-- ===================================================================================
+ConferenceCapability ::= SEQUENCE {
+ nonStandardData
+ SEQUENCE OF NonStandardParameter OPTIONAL,
+ chairControlCapability BOOLEAN,
+ ...,
+ videoIndicateMixingCapability BOOLEAN,
+ multipointVisualizationCapability BOOLEAN OPTIONAL -- same as H.230 MVC
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: Generic Capability
+-- ===================================================================================
+GenericCapability ::= SEQUENCE {
+ capabilityIdentifier CapabilityIdentifier,
+ maxBitRate INTEGER(0..4294967295) OPTIONAL, -- Units 100 bit/s
+ collapsing SEQUENCE OF GenericParameter OPTIONAL,
+ nonCollapsing SEQUENCE OF GenericParameter OPTIONAL,
+ nonCollapsingRaw OCTET STRING OPTIONAL, -- Typically contains ASN.1
+
+ -- PER encoded data describing capability
+ transport DataProtocolCapability OPTIONAL,
+ ...
+}
+
+CapabilityIdentifier ::= CHOICE {
+ standard OBJECT IDENTIFIER,
+ -- e.g. { itu-t (0) recommendation (0) h (8) 267
+ -- version (0) 2 subIdentifier (0)}
+ h221NonStandard NonStandardParameter,
+ uuid OCTET STRING(SIZE (16)),
+ domainBased IA5String(SIZE (1..64)),
+ ...
+}
+
+-- Note. The ranges of parameter values have been selected to ensure that the GenericParameter
+-- preamble, standard part of ParameterIdentifier and the encoding of that choice, and the preamble
+-- of ParameterValue to fit into 2 octets.
+GenericParameter ::= SEQUENCE {
+ parameterIdentifier ParameterIdentifier,
+ parameterValue ParameterValue,
+ supersedes SEQUENCE OF ParameterIdentifier OPTIONAL,
+ ...
+}
+
+ParameterIdentifier ::= CHOICE {
+ standard INTEGER(0..127), -- Assigned by Capability specifications
+ h221NonStandard NonStandardParameter, -- N.B. NonStandardIdentifier is
+
+ -- not sufficient in this case
+ uuid OCTET STRING(SIZE (16)), -- For non-standard
+ domainBased IA5String(SIZE (1..64)),
+ ...
+}
+
+ParameterValue ::= CHOICE {
+ logical NULL, -- Only acceptable if all
+
+ -- entities include this option
+ booleanArray INTEGER(0..255), -- array of 8 logical types
+ unsignedMin INTEGER(0..65535), -- Look for min common value
+ unsignedMax INTEGER(0..65535), -- Look for max common value
+ unsigned32Min INTEGER(0..4294967295), -- Look for min common value
+ unsigned32Max INTEGER(0..4294967295), -- Look for max common value
+ octetString OCTET STRING, -- non-collapsing octet string
+ genericParameter SEQUENCE OF GenericParameter,
+ ...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: Multiplexed Stream Capability
+-- ===================================================================================
+MultiplexedStreamCapability ::= SEQUENCE {
+ multiplexFormat MultiplexFormat,
+ controlOnMuxStream BOOLEAN,
+ capabilityOnMuxStream SET SIZE (1..256) OF AlternativeCapabilitySet OPTIONAL,
+ ...
+}
+
+MultiplexFormat ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h222Capability H222Capability,
+ h223Capability H223Capability,
+ ...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: AudioTelephonyEventCapability and AudioToneCapability
+-- ===================================================================================
+AudioTelephonyEventCapability ::= SEQUENCE {
+ dynamicRTPPayloadType INTEGER(96..127),
+ audioTelephoneEvent GeneralString, -- As per <list of values> in 3.9/RFC2833
+ ...
+}
+
+AudioToneCapability ::= SEQUENCE {dynamicRTPPayloadType INTEGER(96..127),
+ ...
+}
+
+-- The following defintions are as above but without a Payload Type field
+NoPTAudioTelephonyEventCapability ::= SEQUENCE {
+ audioTelephoneEvent GeneralString, -- As per <list of values> in 3.9/RFC2833
+ ...
+}
+
+NoPTAudioToneCapability ::= SEQUENCE {...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: MultiplePayloadStreamCapability
+-- ===================================================================================
+MultiplePayloadStreamCapability ::= SEQUENCE {
+ capabilities SET SIZE (1..256) OF AlternativeCapabilitySet,
+ ...
+}
+
+-- ===================================================================================
+-- Capability Exchange Definitions: FECCapability
+-- ===================================================================================
+FECCapability ::= CHOICE {
+ rfc2733
+ SEQUENCE {redundancyEncoding BOOLEAN,
+ separateStream
+ SEQUENCE {separatePort BOOLEAN,
+ samePort BOOLEAN,
+ ...},
+ ...},
+ ...
+}
+
+-- ===================================================================================
+-- Logical channel signalling definitions
+-- ===================================================================================
+-- "Forward" is used to refer to transmission in the direction from the terminal making the
+-- original request for a logical channel to the other terminal, and "reverse" is used to refer
+-- to the opposite direction of transmission, in the case of a bi-directional channel request.
+OpenLogicalChannel ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ forwardLogicalChannelParameters
+ SEQUENCE {portNumber INTEGER(0..65535) OPTIONAL,
+ dataType DataType,
+ multiplexParameters
+ CHOICE {h222LogicalChannelParameters
+ H222LogicalChannelParameters,
+ h223LogicalChannelParameters
+ H223LogicalChannelParameters,
+ v76LogicalChannelParameters
+ V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters
+ H2250LogicalChannelParameters,
+ none NULL}, -- for use with Separate Stack when--
+ -- multiplexParameters are not required
+ -- or appropriate
+ ...,
+ forwardLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+ },
+ -- Used to specify the reverse channel for bi-directional open request
+ reverseLogicalChannelParameters
+ SEQUENCE {dataType DataType,
+ multiplexParameters
+ CHOICE {-- H.222 parameters are never present in reverse direction
+ h223LogicalChannelParameters
+ H223LogicalChannelParameters,
+ v76LogicalChannelParameters
+ V76LogicalChannelParameters,
+ ...,
+ h2250LogicalChannelParameters
+ H2250LogicalChannelParameters} OPTIONAL, -- Not present for H.222--
+ ...,
+ reverseLogicalChannelDependency LogicalChannelNumber OPTIONAL,
+ -- also used to refer to the primary logical channel when using video redundancy coding
+ replacementFor LogicalChannelNumber OPTIONAL
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL, -- for Open responder to establish the stack
+ encryptionSync EncryptionSync OPTIONAL
+} -- used only by Master
+
+LogicalChannelNumber ::= INTEGER(1..65535)
+
+NetworkAccessParameters ::= SEQUENCE {
+ distribution
+ CHOICE {unicast NULL,
+ multicast NULL, -- For Further Study in T.120--
+ ...} OPTIONAL,
+ networkAddress
+ CHOICE {q2931Address Q2931Address,
+ e164Address IA5String(SIZE (1..128))(FROM ("0123456789#*,")),
+ localAreaAddress TransportAddress,
+ ...},
+ associateConference BOOLEAN,
+ externalReference OCTET STRING(SIZE (1..255)) OPTIONAL,
+ ...,
+ t120SetupProcedure
+ CHOICE {originateCall NULL,
+ waitForCall NULL,
+ issueQuery NULL,
+ ...} OPTIONAL
+}
+
+Q2931Address ::= SEQUENCE {
+ address
+ CHOICE {internationalNumber NumericString(SIZE (1..16)),
+ nsapAddress OCTET STRING(SIZE (1..20)),
+ ...},
+ subaddress OCTET STRING(SIZE (1..20)) OPTIONAL,
+ ...
+}
+
+V75Parameters ::= SEQUENCE {audioHeaderPresent BOOLEAN,
+ ...
+}
+
+DataType ::= CHOICE {
+ nonStandard NonStandardParameter,
+ nullData NULL,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ encryptionData EncryptionMode,
+ ...,
+ h235Control NonStandardParameter,
+ h235Media H235Media,
+ multiplexedStream MultiplexedStreamParameter,
+ redundancyEncoding RedundancyEncoding,
+ multiplePayloadStream MultiplePayloadStream,
+ fec FECData
+}
+
+H235Media ::= SEQUENCE {
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+ mediaType
+ CHOICE {nonStandard NonStandardParameter,
+ videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...,
+ redundancyEncoding RedundancyEncoding,
+ multiplePayloadStream MultiplePayloadStream,
+ fec FECData},
+ ...
+}
+
+MultiplexedStreamParameter ::= SEQUENCE {
+ multiplexFormat MultiplexFormat,
+ controlOnMuxStream BOOLEAN,
+ ...
+}
+
+H222LogicalChannelParameters ::= SEQUENCE {
+ resourceID INTEGER(0..65535),
+ subChannelID INTEGER(0..8191),
+ pcr-pid INTEGER(0..8191) OPTIONAL,
+ programDescriptors OCTET STRING OPTIONAL,
+ streamDescriptors OCTET STRING OPTIONAL,
+ ...
+}
+
+H223LogicalChannelParameters ::= SEQUENCE {
+ adaptationLayerType
+ CHOICE {nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 Al3,
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters},
+ segmentableFlag BOOLEAN,
+ ...
+}
+Al3 ::= SEQUENCE {controlFieldOctets INTEGER(0..2),
+ sendBufferSize INTEGER(0..16777215) -- units octets
+ }
+H223AL1MParameters ::= SEQUENCE {
+ transferMode CHOICE {framed NULL,
+ unframed NULL,
+ ...},
+ headerFEC CHOICE {sebch16-7 NULL,
+ golay24-12 NULL,
+ ...},
+ crcLength
+ CHOICE {crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...,
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ crcNotUsed NULL},
+ rcpcCodeRate INTEGER(8..32),
+ arqType ArqType,
+ alpduInterleaving BOOLEAN,
+ alsduSplitting BOOLEAN,
+ ...,
+ rsCodeCorrection INTEGER(0..127) OPTIONAL
+}
+ArqType ::= CHOICE {noArq NULL,
+ typeIArq H223AnnexCArqParameters,
+ typeIIArq H223AnnexCArqParameters,
+ ...}
+H223AL2MParameters ::= SEQUENCE {
+ headerFEC CHOICE {sebch16-5 NULL,
+ golay24-12 NULL,
+ ...},
+ alpduInterleaving BOOLEAN,
+ ...
+}
+
+H223AL3MParameters ::= SEQUENCE {
+ headerFormat CHOICE {sebch16-7 NULL,
+ golay24-12 NULL,
+ ...},
+ crcLength
+ CHOICE {crc4bit NULL,
+ crc12bit NULL,
+ crc20bit NULL,
+ crc28bit NULL,
+ ...,
+ crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ crcNotUsed NULL},
+ rcpcCodeRate INTEGER(8..32),
+ arqType ArqType,
+ alpduInterleaving BOOLEAN,
+ ...,
+ rsCodeCorrection INTEGER(0..127) OPTIONAL
+}
+
+H223AnnexCArqParameters ::= SEQUENCE {
+ numberOfRetransmissions
+ CHOICE {finite INTEGER(0..16),
+ infinite NULL,
+ ...},
+ sendBufferSize INTEGER(0..16777215), -- units octets
+ ...
+}
+
+V76LogicalChannelParameters ::= SEQUENCE {
+ hdlcParameters V76HDLCParameters,
+ suspendResume
+ CHOICE {noSuspendResume NULL,
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...},
+ uIH BOOLEAN,
+ mode
+ CHOICE {eRM
+ SEQUENCE {windowSize INTEGER(1..127),
+ recovery
+ CHOICE {rej NULL,
+ sREJ NULL,
+ mSREJ NULL,
+ ...},
+ ...},
+ uNERM NULL,
+ ...},
+ v75Parameters V75Parameters,
+ ...
+}
+
+V76HDLCParameters ::= SEQUENCE {
+ crcLength CRCLength,
+ n401 INTEGER(1..4095),
+ loopbackTestProcedure BOOLEAN,
+ ...
+}
+
+CRCLength ::= CHOICE {crc8bit NULL,
+ crc16bit NULL,
+ crc32bit NULL,
+ ...
+}
+
+H2250LogicalChannelParameters ::= SEQUENCE {
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(0..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ silenceSuppression BOOLEAN OPTIONAL,
+ destination TerminalLabel OPTIONAL,
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL,
+ mediaPacketization
+ CHOICE {h261aVideoPacketization NULL,
+ ...,
+ rtpPayloadType RTPPayloadType} OPTIONAL,
+ ...,
+ transportCapability TransportCapability OPTIONAL,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ source TerminalLabel OPTIONAL
+}
+
+RTPPayloadType ::= SEQUENCE {
+ payloadDescriptor
+ CHOICE {nonStandardIdentifier NonStandardParameter,
+ rfc-number INTEGER(1..32768, ...),
+ oid OBJECT IDENTIFIER,
+ ...},
+ payloadType INTEGER(0..127) OPTIONAL,
+ ...
+}
+
+RedundancyEncoding ::= SEQUENCE {
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding3 DataType OPTIONAL, -- depends on method
+ ...,
+ -- The sequence below may be used in place of the above secondaryEncoding field
+ rtpRedundancyEncoding
+ SEQUENCE {primary RedundancyEncodingElement OPTIONAL,
+ -- Present when redundancyEncoding
+ -- is selected as the dataType
+ -- in an OpenLogicalChannel or
+ -- as part of a MultiplePayloadSteam
+ secondary SEQUENCE OF RedundancyEncodingElement OPTIONAL,
+ ...} OPTIONAL
+}
+
+RedundancyEncodingElement ::= SEQUENCE {
+ dataType DataType,
+ payloadType INTEGER(0..127) OPTIONAL,
+ ...
+}
+
+MultiplePayloadStream ::= SEQUENCE {
+ elements SEQUENCE OF MultiplePayloadStreamElement,
+ ...
+}
+
+MultiplePayloadStreamElement ::= SEQUENCE {
+ dataType DataType,
+ payloadType INTEGER(0..127) OPTIONAL,
+ ...
+}
+
+FECData ::= CHOICE {
+ rfc2733
+ SEQUENCE {mode CHOICE {redundancyEncoding NULL,
+ separateStream SeparateStream,
+ ...},
+ ...}
+}
+Moderfc2733 ::= CHOICE {redundancyEncoding NULL,
+ separateStream SeparateStream,
+ ...}
+
+SeparateStream ::= CHOICE {differentPort
+ SEQUENCE {protectedSessionID
+ INTEGER(1..255),
+ protectedPayloadType
+ INTEGER(0..127) OPTIONAL,
+ ...},
+ samePort
+ SEQUENCE {protectedPayloadType
+ INTEGER(0..127),
+ ...},
+ ...}
+
+TransportAddress ::= CHOICE {
+ unicastAddress UnicastAddress,
+ multicastAddress MulticastAddress,
+ ...
+}
+
+UnicastAddress ::= CHOICE {
+ iPAddress
+ SEQUENCE {network OCTET STRING(SIZE (4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...},
+ iPXAddress
+ SEQUENCE {node OCTET STRING(SIZE (6)),
+ netnum OCTET STRING(SIZE (4)),
+ tsapIdentifier OCTET STRING(SIZE (2)),
+ ...},
+ iP6Address
+ SEQUENCE {network OCTET STRING(SIZE (16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...},
+ netBios OCTET STRING(SIZE (16)),
+ iPSourceRouteAddress
+ SEQUENCE {routing CHOICE {strict NULL,
+ loose NULL},
+ network OCTET STRING(SIZE (4)),
+ tsapIdentifier INTEGER(0..65535),
+ route SEQUENCE OF OCTET STRING(SIZE (4)),
+ ...},
+ ...,
+ nsap OCTET STRING(SIZE (1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+MulticastAddress ::= CHOICE {
+ iPAddress
+ SEQUENCE {network OCTET STRING(SIZE (4)),
+ tsapIdentifier INTEGER(0..65535),
+ ...},
+ iP6Address
+ SEQUENCE {network OCTET STRING(SIZE (16)),
+ tsapIdentifier INTEGER(0..65535),
+ ...},
+ ...,
+ nsap OCTET STRING(SIZE (1..20)),
+ nonStandardAddress NonStandardParameter
+}
+
+EncryptionSync ::=
+ SEQUENCE
+ -- used to supply new key and synchronization point
+ {
+ nonStandard NonStandardParameter OPTIONAL,
+ synchFlag INTEGER(0..255), -- may need to be larger for H.324, etc
+
+ -- shall be the Dynamic Payload# for H.323
+ h235Key OCTET STRING(SIZE (1..65535)), -- H.235 encoded value
+ escrowentry SEQUENCE SIZE (1..256) OF EscrowData OPTIONAL,
+ ...
+}
+
+EscrowData ::= SEQUENCE {
+ escrowID OBJECT IDENTIFIER,
+ escrowValue BIT STRING(SIZE (1..65535)),
+ ...
+}
+
+OpenLogicalChannelAck ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ reverseLogicalChannelParameters
+ SEQUENCE {reverseLogicalChannelNumber LogicalChannelNumber,
+ portNumber INTEGER(0..65535) OPTIONAL,
+ multiplexParameters
+ CHOICE {h222LogicalChannelParameters
+ H222LogicalChannelParameters,
+ -- H.223 parameters are never present in reverse direction
+ ...,
+ h2250LogicalChannelParameters
+ H2250LogicalChannelParameters} OPTIONAL, -- Not present for H.223--
+ ...,
+ replacementFor LogicalChannelNumber OPTIONAL
+ } OPTIONAL, -- Not present for uni-directional channel request
+ ...,
+ separateStack NetworkAccessParameters OPTIONAL,
+ -- for Open requester to establish the stack
+ forwardMultiplexAckParameters
+ CHOICE {-- H.222 parameters are never present in the Ack
+ -- H.223 parameters are never present in the Ack
+ -- V.76 parameters are never present in the Ack
+ h2250LogicalChannelAckParameters H2250LogicalChannelAckParameters,
+ ...} OPTIONAL,
+ encryptionSync EncryptionSync OPTIONAL -- used only by Master
+}
+
+OpenLogicalChannelReject ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause
+ CHOICE {unspecified NULL,
+ unsuitableReverseParameters NULL,
+ dataTypeNotSupported NULL,
+ dataTypeNotAvailable NULL,
+ unknownDataType NULL,
+ dataTypeALCombinationNotSupported NULL,
+ ...,
+ multicastChannelNotAllowed NULL,
+ insufficientBandwidth NULL,
+ separateStackEstablishmentFailed NULL,
+ invalidSessionID NULL,
+ masterSlaveConflict NULL,
+ waitForCommunicationMode NULL,
+ invalidDependentChannel NULL,
+ replacementForRejected NULL},
+ ...
+}
+
+OpenLogicalChannelConfirm ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+H2250LogicalChannelAckParameters ::= SEQUENCE {
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255) OPTIONAL,
+ mediaChannel TransportAddress OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- forward RTCP channel
+ dynamicRTPPayloadType INTEGER(96..127) OPTIONAL, -- used only by the master or MC
+ ...,
+ flowControlToZero BOOLEAN,
+ portNumber INTEGER(0..65535) OPTIONAL
+}
+
+CloseLogicalChannel ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ source CHOICE {user NULL,
+ lcse NULL},
+ ...,
+ reason
+ CHOICE {unknown NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...}
+}
+
+CloseLogicalChannelAck ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelClose ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...,
+ qosCapability QOSCapability OPTIONAL,
+ reason
+ CHOICE {unknown NULL,
+ normal NULL,
+ reopen NULL,
+ reservationFailure NULL,
+ ...}
+}
+
+RequestChannelCloseAck ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RequestChannelCloseReject ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ cause CHOICE {unspecified NULL,
+ ...},
+ ...
+}
+
+RequestChannelCloseRelease ::= SEQUENCE {
+ forwardLogicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+-- ===================================================================================
+-- H.223 multiplex table definitions
+-- ===================================================================================
+MultiplexEntrySend ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ multiplexEntryDescriptors SET SIZE (1..15) OF MultiplexEntryDescriptor,
+ ...
+}
+
+MultiplexEntryDescriptor ::= SEQUENCE {
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ elementList
+ SEQUENCE SIZE (1..256) OF MultiplexElement OPTIONAL
+}
+
+MultiplexElement ::= SEQUENCE {
+ type
+ CHOICE {logicalChannelNumber INTEGER(0..65535),
+ subElementList SEQUENCE SIZE (2..255) OF MultiplexElement
+ },
+ repeatCount
+ CHOICE {-- repeats of type
+ finite INTEGER(1..65535),
+ -- used for last element
+ untilClosingFlag NULL}
+}
+
+MultiplexTableEntryNumber ::= INTEGER(1..15)
+
+MultiplexEntrySendAck ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+MultiplexEntrySendReject ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ rejectionDescriptions1
+ SET SIZE (1..15) OF MultiplexEntryRejectionDescriptions,
+ ...
+}
+
+MultiplexEntryRejectionDescriptions ::= SEQUENCE {
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause
+ CHOICE {unspecifiedCause NULL,
+ descriptorTooComplex NULL,
+ ...},
+ ...
+}
+
+MultiplexEntrySendRelease ::= SEQUENCE {
+ multiplexTableEntryNumber SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntry ::= SEQUENCE {
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryAck ::= SEQUENCE {
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+RequestMultiplexEntryReject ::= SEQUENCE {
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ rejectionDescriptions2
+ SET SIZE (1..15) OF RequestMultiplexEntryRejectionDescriptions,
+ ...
+}
+
+RequestMultiplexEntryRejectionDescriptions ::= SEQUENCE {
+ multiplexTableEntryNumber MultiplexTableEntryNumber,
+ cause CHOICE {unspecifiedCause NULL,
+ ...},
+ ...
+}
+
+RequestMultiplexEntryRelease ::= SEQUENCE {
+ entryNumbers SET SIZE (1..15) OF MultiplexTableEntryNumber,
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions
+-- ===================================================================================
+-- RequestMode is a list, in order or preference, of modes that a terminal would like
+-- to have transmitted to it.
+RequestMode ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ requestedModes SEQUENCE SIZE (1..256) OF ModeDescription,
+ ...
+}
+
+RequestModeAck ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ response
+ CHOICE {willTransmitMostPreferredMode NULL,
+ willTransmitLessPreferredMode NULL,
+ ...},
+ ...
+}
+
+RequestModeReject ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ cause
+ CHOICE {modeUnavailable NULL,
+ multipointConstraint NULL,
+ requestDenied NULL,
+ ...},
+ ...
+}
+
+RequestModeRelease ::= SEQUENCE {...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Mode description
+-- ===================================================================================
+ModeDescription ::= SET SIZE (1..256) OF ModeElement
+
+ModeElementType ::= CHOICE {
+ nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ ...,
+ h235Mode H235Mode,
+ multiplexedStreamMode MultiplexedStreamParameter,
+ redundancyEncodingDTMode RedundancyEncodingDTMode,
+ multiplePayloadStreamMode MultiplePayloadStreamMode,
+ fecMode FECMode
+}
+
+ModeElement ::= SEQUENCE {
+ type ModeElementType,
+ h223ModeParameters H223ModeParameters OPTIONAL,
+ ...,
+ v76ModeParameters V76ModeParameters OPTIONAL,
+ h2250ModeParameters H2250ModeParameters OPTIONAL,
+ genericModeParameters GenericCapability OPTIONAL,
+ multiplexedStreamModeParameters MultiplexedStreamModeParameters OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber OPTIONAL
+}
+
+H235Mode ::= SEQUENCE {
+ encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity,
+ mediaMode
+ CHOICE {nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ ...},
+ ...
+}
+
+MultiplexedStreamModeParameters ::= SEQUENCE {
+ logicalChannelNumber LogicalChannelNumber,
+ ...
+}
+
+RedundancyEncodingDTMode ::= SEQUENCE {
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ primary RedundancyEncodingDTModeElement,
+ secondary2 SEQUENCE OF RedundancyEncodingDTModeElement,
+ ...
+}
+
+RedundancyEncodingDTModeElement ::= SEQUENCE {
+ type
+ CHOICE {nonStandard NonStandardParameter,
+ videoMode VideoMode,
+ audioMode AudioMode,
+ dataMode DataMode,
+ encryptionMode EncryptionMode,
+ h235Mode H235Mode,
+ ...},
+ ...
+}
+
+MultiplePayloadStreamMode ::= SEQUENCE {
+ mpsmElements SEQUENCE OF MultiplePayloadStreamElementMode,
+ ...
+}
+MultiplePayloadStreamElementMode ::= SEQUENCE {type ModeElementType,
+ ...
+}
+
+FECMode ::= CHOICE {
+ rfc2733Mode
+ SEQUENCE {mode CHOICE {redundancyEncoding NULL,
+ separateStream SeparateStream,
+ ...},
+ ...},
+ ...
+}
+
+H223ModeParameters ::= SEQUENCE {
+ adaptationLayerType
+ CHOICE {nonStandard NonStandardParameter,
+ al1Framed NULL,
+ al1NotFramed NULL,
+ al2WithoutSequenceNumbers NULL,
+ al2WithSequenceNumbers NULL,
+ al3 Al3,
+ ...,
+ al1M H223AL1MParameters,
+ al2M H223AL2MParameters,
+ al3M H223AL3MParameters},
+ segmentableFlag BOOLEAN,
+ ...
+}
+
+V76ModeParameters ::= CHOICE {
+ suspendResumewAddress NULL,
+ suspendResumewoAddress NULL,
+ ...
+}
+
+H2250ModeParameters ::= SEQUENCE {
+ redundancyEncodingMode RedundancyEncodingMode OPTIONAL,
+ ...
+}
+
+RedundancyEncodingMode ::= SEQUENCE {
+ redundancyEncodingMethod RedundancyEncodingMethod,
+ secondaryEncoding
+ CHOICE {nonStandard NonStandardParameter,
+ audioData AudioMode,
+ ...} OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Video modes
+-- ===================================================================================
+VideoMode ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h261VideoMode H261VideoMode,
+ h262VideoMode H262VideoMode,
+ h263VideoMode H263VideoMode,
+ is11172VideoMode IS11172VideoMode,
+ ...,
+ genericVideoMode GenericCapability
+}
+
+H261VideoMode ::= SEQUENCE {
+ resolution CHOICE {qcif NULL,
+ cif NULL},
+ bitRate INTEGER(1..19200), -- units 100 bit/s
+ stillImageTransmission BOOLEAN,
+ ...
+}
+
+H262VideoMode ::= SEQUENCE {
+ profileAndLevel
+ CHOICE {profileAndLevel-SPatML NULL,
+ profileAndLevel-MPatLL NULL,
+ profileAndLevel-MPatML NULL,
+ profileAndLevel-MPatH-14 NULL,
+ profileAndLevel-MPatHL NULL,
+ profileAndLevel-SNRatLL NULL,
+ profileAndLevel-SNRatML NULL,
+ profileAndLevel-SpatialatH-14 NULL,
+ profileAndLevel-HPatML NULL,
+ profileAndLevel-HPatH-14 NULL,
+ profileAndLevel-HPatHL NULL,
+ ...},
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+H263VideoMode ::= SEQUENCE {
+ resolution
+ CHOICE {sqcif NULL,
+ qcif NULL,
+ cif NULL,
+ cif4 NULL,
+ cif16 NULL,
+ ...,
+ custom NULL},
+ bitRate INTEGER(1..19200), -- units 100 bit/s
+ unrestrictedVector BOOLEAN,
+ arithmeticCoding BOOLEAN,
+ advancedPrediction BOOLEAN,
+ pbFrames BOOLEAN,
+ ...,
+ errorCompensation BOOLEAN,
+ enhancementLayerInfo EnhancementLayerInfo OPTIONAL,
+ h263Options H263Options OPTIONAL
+}
+
+IS11172VideoMode ::= SEQUENCE {
+ constrainedBitstream BOOLEAN,
+ videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s
+ vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits
+ samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line
+ linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame
+ pictureRate INTEGER(0..15) OPTIONAL,
+ luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Audio modes
+-- ===================================================================================
+AudioMode ::= CHOICE {
+ nonStandard NonStandardParameter,
+ g711Alaw64k NULL,
+ g711Alaw56k NULL,
+ g711Ulaw64k NULL,
+ g711Ulaw56k NULL,
+ g722-64k NULL,
+ g722-56k NULL,
+ g722-48k NULL,
+ g728 NULL,
+ g729 NULL,
+ g729AnnexA NULL,
+ g7231
+ CHOICE {noSilenceSuppressionLowRate NULL,
+ noSilenceSuppressionHighRate NULL,
+ silenceSuppressionLowRate NULL,
+ silenceSuppressionHighRate NULL},
+ is11172AudioMode IS11172AudioMode,
+ is13818AudioMode IS13818AudioMode,
+ ...,
+ g729wAnnexB INTEGER(1..256),
+ g729AnnexAwAnnexB INTEGER(1..256),
+ g7231AnnexCMode G7231AnnexCMode,
+ gsmFullRate GSMAudioCapability,
+ gsmHalfRate GSMAudioCapability,
+ gsmEnhancedFullRate GSMAudioCapability,
+ genericAudioMode GenericCapability,
+ g729Extensions G729Extensions,
+ vbd VBDMode
+}
+
+IS11172AudioMode ::= SEQUENCE {
+ audioLayer
+ CHOICE {audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL},
+ audioSampling
+ CHOICE {audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL},
+ multichannelType
+ CHOICE {singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL},
+ bitRate INTEGER(1..448), --units kbit/s
+ ...
+}
+
+IS13818AudioMode ::= SEQUENCE {
+ audioLayer
+ CHOICE {audioLayer1 NULL,
+ audioLayer2 NULL,
+ audioLayer3 NULL},
+ audioSampling
+ CHOICE {audioSampling16k NULL,
+ audioSampling22k05 NULL,
+ audioSampling24k NULL,
+ audioSampling32k NULL,
+ audioSampling44k1 NULL,
+ audioSampling48k NULL},
+ multichannelType
+ CHOICE {singleChannel NULL,
+ twoChannelStereo NULL,
+ twoChannelDual NULL,
+ threeChannels2-1 NULL,
+ threeChannels3-0 NULL,
+ fourChannels2-0-2-0 NULL,
+ fourChannels2-2 NULL,
+ fourChannels3-1 NULL,
+ fiveChannels3-0-2-0 NULL,
+ fiveChannels3-2 NULL},
+ lowFrequencyEnhancement BOOLEAN,
+ multilingual BOOLEAN,
+ bitRate INTEGER(1..1130), --units kbit/s
+ ...
+}
+
+G7231AnnexCMode ::= SEQUENCE {
+ maxAl-sduAudioFrames INTEGER(1..256),
+ silenceSuppression BOOLEAN,
+ g723AnnexCAudioMode G723AnnexCAudioMode,
+ ...
+}
+
+VBDMode ::= SEQUENCE {type AudioMode, -- shall not be "vbd"
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Data modes
+-- ===================================================================================
+DataMode ::= SEQUENCE {
+ application
+ CHOICE {nonStandard NonStandardParameter,
+ t120 DataProtocolCapability,
+ dsm-cc DataProtocolCapability,
+ userData DataProtocolCapability,
+ t84 DataProtocolCapability,
+ t434 DataProtocolCapability,
+ h224 DataProtocolCapability,
+ nlpid Nlpid,
+ dsvdControl NULL,
+ h222DataPartitioning DataProtocolCapability,
+ ...,
+ t30fax DataProtocolCapability,
+ t140 DataProtocolCapability,
+ t38fax
+ SEQUENCE {t38FaxProtocol DataProtocolCapability,
+ t38FaxProfile T38FaxProfile},
+ genericDataMode GenericCapability},
+ bitRate INTEGER(0..4294967295), -- units 100 bit/s
+ ...
+}
+
+-- ===================================================================================
+-- Request mode definitions: Encryption modes
+-- ===================================================================================
+EncryptionMode ::= CHOICE {
+ nonStandard NonStandardParameter,
+ h233Encryption NULL,
+ ...
+}
+
+-- ===================================================================================
+-- Round Trip Delay definitions
+-- ===================================================================================
+RoundTripDelayRequest ::= SEQUENCE {sequenceNumber SequenceNumber,
+ ...
+}
+
+RoundTripDelayResponse ::= SEQUENCE {sequenceNumber SequenceNumber,
+ ...
+}
+
+-- ===================================================================================
+-- Maintenance Loop definitions
+-- ===================================================================================
+MaintenanceLoopRequest ::= SEQUENCE {
+ type
+ CHOICE {systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...},
+ ...
+}
+
+MaintenanceLoopAck ::= SEQUENCE {
+ type
+ CHOICE {systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...},
+ ...
+}
+
+MaintenanceLoopReject ::= SEQUENCE {
+ type
+ CHOICE {systemLoop NULL,
+ mediaLoop LogicalChannelNumber,
+ logicalChannelLoop LogicalChannelNumber,
+ ...},
+ cause CHOICE {canNotPerformLoop NULL,
+ ...},
+ ...
+}
+
+MaintenanceLoopOffCommand ::= SEQUENCE {...
+}
+
+-- ===================================================================================
+-- Communication Mode definitions
+-- ===================================================================================
+CommunicationModeCommand ::= SEQUENCE {
+ communicationModeTable SET SIZE (1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeRequest ::= SEQUENCE {...
+}
+
+CommunicationModeResponse ::= CHOICE {
+ communicationModeTable SET SIZE (1..256) OF CommunicationModeTableEntry,
+ ...
+}
+
+CommunicationModeTableEntry ::= SEQUENCE {
+ nonStandard SEQUENCE OF NonStandardParameter OPTIONAL,
+ sessionID INTEGER(1..255),
+ associatedSessionID INTEGER(1..255) OPTIONAL,
+ terminalLabel TerminalLabel OPTIONAL, -- if not present,
+
+ -- it refers to all participants
+ -- in the conference
+ sessionDescription BMPString(SIZE (1..128)),
+ -- Basic ISO/IEC 10646-1 (Unicode)
+ dataType
+ CHOICE {videoData VideoCapability,
+ audioData AudioCapability,
+ data DataApplicationCapability,
+ ...},
+ mediaChannel TransportAddress OPTIONAL,
+ mediaGuaranteedDelivery BOOLEAN OPTIONAL,
+ mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel
+ mediaControlGuaranteedDelivery BOOLEAN OPTIONAL,
+ ...,
+ redundancyEncoding RedundancyEncoding OPTIONAL,
+ sessionDependency INTEGER(1..255) OPTIONAL,
+ destination TerminalLabel OPTIONAL
+}
+
+-- ===================================================================================
+-- Conference Request definitions
+-- ===================================================================================
+ConferenceRequest ::= CHOICE {
+ terminalListRequest NULL, -- same as H.230 TCU (term->MC)
+ makeMeChair NULL, -- same as H.230 CCA (term->MC)
+ cancelMakeMeChair NULL, -- same as H.230 CIS (term->MC)
+ dropTerminal TerminalLabel, -- same as H.230 CCD(term->MC)
+ requestTerminalID TerminalLabel, -- same as TCP (term->MC)
+ enterH243Password NULL, -- same as H.230 TCS1(MC->term)
+ enterH243TerminalID NULL, -- same as H.230 TCS2/TCI
+
+ -- (MC->term)
+ enterH243ConferenceID NULL, -- same as H.230 TCS3 (MC->term)
+ ...,
+ enterExtensionAddress NULL, -- same as H.230 TCS4 (GW->term)
+ requestChairTokenOwner NULL, -- same as H.230 TCA (term->MC)
+ requestTerminalCertificate
+ SEQUENCE {terminalLabel TerminalLabel OPTIONAL,
+ certSelectionCriteria CertSelectionCriteria OPTIONAL,
+ sRandom INTEGER(1..4294967295) OPTIONAL,
+ -- this is the requester's challenge
+ ...},
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ makeTerminalBroadcaster TerminalLabel, -- similar to H.230 VCB
+ sendThisSource TerminalLabel, -- similar to H.230 VCS
+ requestAllTerminalIDs NULL,
+ remoteMCRequest RemoteMCRequest
+}
+
+CertSelectionCriteria ::= SEQUENCE SIZE (1..16) OF Criteria
+
+Criteria ::= SEQUENCE {
+ field OBJECT IDENTIFIER, -- may include certificate type
+ value OCTET STRING(SIZE (1..65535)),
+ ...
+}
+
+TerminalLabel ::= SEQUENCE {
+ mcuNumber McuNumber,
+ terminalNumber TerminalNumber,
+ ...
+}
+
+McuNumber ::= INTEGER(0..192)
+
+TerminalNumber ::= INTEGER(0..192)
+
+-- ===================================================================================
+-- Conference Response definitions
+-- ===================================================================================
+ConferenceResponse ::= CHOICE {
+ mCTerminalIDResponse
+ SEQUENCE-- response to TCP(same as TIP)-- {-- sent by MC only--terminalLabel
+
+ TerminalLabel,
+ terminalID
+
+ TerminalID,
+ ...
+ },
+ terminalIDResponse
+ SEQUENCE-- response to TCS2 or TCI-- {-- same as IIS--terminalLabel
+ TerminalLabel, -- (term->MC)--
+ terminalID
+ TerminalID,
+ ...},
+ conferenceIDResponse
+ SEQUENCE-- response to TCS3-- {-- same as IIS--terminalLabel TerminalLabel, -- (term->MC)--
+ conferenceID ConferenceID,
+ ...},
+ passwordResponse
+ SEQUENCE-- response to TCS1-- {-- same as IIS--terminalLabel TerminalLabel, -- (term->MC)--
+ password Password,
+ ...},
+ terminalListResponse SET SIZE (1..256) OF TerminalLabel,
+ videoCommandReject NULL, -- same as H.230 VCR
+ terminalDropReject NULL, -- same as H.230 CIR
+ makeMeChairResponse
+ CHOICE-- same as H.230 CCR-- {grantedChairToken NULL, -- same as H.230 CIT--
+ deniedChairToken NULL, -- same as H.230 CCR--
+ ...},
+ ...,
+ extensionAddressResponse
+ SEQUENCE-- response to TCS4-- {extensionAddress TerminalID, -- same as IIS (term->GW)--
+ ...},
+ chairTokenOwnerResponse
+ SEQUENCE-- response to TCA(same as TIR) sent by MC only-- {terminalLabel
+ TerminalLabel,
+ terminalID
+ TerminalID,
+ ...},
+ terminalCertificateResponse
+ SEQUENCE {terminalLabel TerminalLabel OPTIONAL,
+ certificateResponse OCTET STRING(SIZE (1..65535)) OPTIONAL,
+ ...},
+ broadcastMyLogicalChannelResponse
+ CHOICE {grantedBroadcastMyLogicalChannel NULL, -- similar to H.230 MVA--
+ deniedBroadcastMyLogicalChannel NULL, -- similar to H.230 MVR--
+ ...},
+ makeTerminalBroadcasterResponse
+ CHOICE {grantedMakeTerminalBroadcaster NULL,
+ deniedMakeTerminalBroadcaster NULL,
+ ...},
+ sendThisSourceResponse
+ CHOICE {grantedSendThisSource NULL,
+ deniedSendThisSource NULL,
+ ...},
+ requestAllTerminalIDsResponse RequestAllTerminalIDsResponse,
+ remoteMCResponse RemoteMCResponse
+}
+
+TerminalID ::= OCTET STRING(SIZE (1..128)) -- as per H.230
+
+
+ConferenceID ::= OCTET STRING(SIZE (1..32))
+
+Password ::= OCTET STRING(SIZE (1..32))
+
+RequestAllTerminalIDsResponse ::= SEQUENCE {
+ terminalInformation SEQUENCE OF TerminalInformation,
+ ...
+}
+
+TerminalInformation ::= SEQUENCE {
+ terminalLabel TerminalLabel,
+ terminalID TerminalID,
+ ...
+}
+
+-- ===================================================================================
+-- Remote MC Request definitions
+-- ===================================================================================
+RemoteMCRequest ::= CHOICE {
+ masterActivate NULL,
+ slaveActivate NULL,
+ deActivate NULL,
+ ...
+}
+
+RemoteMCResponse ::= CHOICE {
+ accept NULL,
+ reject CHOICE {unspecified NULL,
+ functionNotSupported NULL,
+ ...},
+ ...
+}
+
+-- ===================================================================================
+-- Multilink definitions
+-- ===================================================================================
+MultilinkRequest ::= CHOICE {
+ nonStandard NonStandardMessage,
+ callInformation
+ SEQUENCE {maxNumberOfAdditionalConnections INTEGER(1..65535),
+ ...},
+ addConnection
+ SEQUENCE {sequenceNumber SequenceNumber, -- Unique ID of request--
+ dialingInformation DialingInformation,
+ ...},
+ removeConnection RemoveConnection,
+ maximumHeaderInterval
+ SEQUENCE {requestType
+ CHOICE {currentIntervalInformation NULL,
+ requestedInterval INTEGER(0..65535), -- Max Header Interval, milliseconds--
+ ...},
+ ...},
+ ...
+}
+
+
+MultilinkResponse ::= CHOICE {
+ nonStandard NonStandardMessage,
+ callInformation
+ SEQUENCE {dialingInformation DialingInformation,
+ callAssociationNumber INTEGER(0..4294967295),
+ ...},
+ addConnection
+ SEQUENCE {sequenceNumber SequenceNumber, -- Equal to value in request--
+ responseCode
+ CHOICE {accepted NULL,
+ rejected
+ CHOICE {connectionsNotAvailable NULL, -- due to any technical reason--
+ userRejected NULL,
+ ...},
+ ...},
+ ...},
+ removeConnection RemoveConnection,
+ maximumHeaderInterval
+ SEQUENCE {currentInterval INTEGER(0..65535), -- Max Header Interval, milliseconds--
+ ...},
+ ...
+}
+RemoveConnection ::= SEQUENCE {connectionIdentifier ConnectionIdentifier,
+ ...}
+
+MultilinkIndication ::= CHOICE {
+ nonStandard NonStandardMessage,
+ crcDesired SEQUENCE {...},
+ excessiveError SEQUENCE {connectionIdentifier ConnectionIdentifier,
+ ...},
+ ...
+}
+
+DialingInformation ::= CHOICE {
+ nonStandard NonStandardMessage,
+ differential SET SIZE (1..65535) OF DialingInformationNumber,
+ -- list of numbers for all additional channels; only least
+ -- significant digits different from initial channel's number
+ infoNotAvailable INTEGER(1..65535), -- maximum no. of additional channels
+ ...
+}
+
+DialingInformationNumber ::= SEQUENCE {
+ networkAddress NumericString(SIZE (0..40)),
+ subAddress IA5String(SIZE (1..40)) OPTIONAL,
+ networkType SET SIZE (1..255) OF DialingInformationNetworkType,
+ ...
+}
+
+DialingInformationNetworkType ::= CHOICE {
+ nonStandard NonStandardMessage,
+ n-isdn NULL,
+ gstn NULL,
+ ...,
+ mobile NULL
+}
+
+ConnectionIdentifier ::= SEQUENCE {
+ channelTag INTEGER(0..4294967295), -- from H.MULTILINK
+ sequenceNumber INTEGER(0..4294967295), -- from H.MULTILINK
+ ...
+}
+
+-- ===================================================================================
+-- Logical channel bit-rate change definitions
+-- ===================================================================================
+MaximumBitRate ::= INTEGER(0..4294967295) -- units of 100 bit/s
+
+
+LogicalChannelRateRequest ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ logicalChannelNumber LogicalChannelNumber,
+ maximumBitRate MaximumBitRate,
+ ...
+}
+
+LogicalChannelRateAcknowledge ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ logicalChannelNumber LogicalChannelNumber,
+ maximumBitRate MaximumBitRate,
+ ...
+}
+
+LogicalChannelRateReject ::= SEQUENCE {
+ sequenceNumber SequenceNumber,
+ logicalChannelNumber LogicalChannelNumber,
+ rejectReason LogicalChannelRateRejectReason,
+ currentMaximumBitRate MaximumBitRate OPTIONAL,
+ ...
+}
+
+LogicalChannelRateRejectReason ::= CHOICE {
+ undefinedReason NULL,
+ insufficientResources NULL,
+ ...
+}
+
+LogicalChannelRateRelease ::= SEQUENCE {...
+}
+
+-- ===================================================================================
+-- Command Message definitions
+-- ===================================================================================
+-- ===================================================================================
+-- Command Message : Send Terminal Capability Set
+-- ===================================================================================
+SendTerminalCapabilitySet ::= CHOICE {
+ specificRequest
+ SEQUENCE {multiplexCapability BOOLEAN,
+ capabilityTableEntryNumbers
+ SET SIZE (1..65535) OF CapabilityTableEntryNumber OPTIONAL,
+ capabilityDescriptorNumbers
+ SET SIZE (1..256) OF CapabilityDescriptorNumber OPTIONAL,
+ ...},
+ genericRequest NULL,
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Encryption
+-- ===================================================================================
+EncryptionCommand ::= CHOICE {
+ encryptionSE OCTET STRING, -- per H.233, but no error protection
+ encryptionIVRequest NULL, -- requests new IV
+ encryptionAlgorithmID
+ SEQUENCE {h233AlgorithmIdentifier SequenceNumber,
+ associatedAlgorithm NonStandardParameter},
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Flow Control
+-- ===================================================================================
+FlowControlCommand ::= SEQUENCE {
+ scope Scope,
+ restriction Restriction,
+ ...
+}
+Scope ::= CHOICE {logicalChannelNumber LogicalChannelNumber,
+ resourceID INTEGER(0..65535),
+ wholeMultiplex NULL}
+Restriction ::= CHOICE {maximumBitRate INTEGER(0..16777215), -- units 100 bit/s --
+ noRestriction NULL}
+-- ===================================================================================
+-- Command Message : Change or End Session
+-- ===================================================================================
+EndSessionCommand ::= CHOICE {
+ nonStandard NonStandardParameter,
+ disconnect NULL,
+ gstnOptions
+ CHOICE {telephonyMode NULL,
+ v8bis NULL,
+ v34DSVD NULL,
+ v34DuplexFAX NULL,
+ v34H324 NULL,
+ ...},
+ ...,
+ isdnOptions
+ CHOICE {telephonyMode NULL,
+ v140 NULL,
+ terminalOnHold NULL,
+ ...}
+}
+
+-- ===================================================================================
+-- Command Message : Conference Commands
+-- ===================================================================================
+ConferenceCommand ::= CHOICE {
+ broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV
+ cancelBroadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 Cancel-MCV
+ makeTerminalBroadcaster TerminalLabel, -- same as H.230 VCB
+ cancelMakeTerminalBroadcaster NULL, -- same as H.230 Cancel-VCB
+ sendThisSource TerminalLabel, -- same as H.230 VCS
+ cancelSendThisSource NULL, -- same as H.230 cancel VCS
+ dropConference NULL, -- same as H.230 CCK
+ ...,
+ substituteConferenceIDCommand SubstituteConferenceIDCommand
+}
+
+SubstituteConferenceIDCommand ::= SEQUENCE {
+ conferenceIdentifier OCTET STRING(SIZE (16)),
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Miscellaneous H.230-like commands
+-- ===================================================================================
+EncryptionUpdateDirection ::= CHOICE {
+ masterToSlave NULL,
+ slaveToMaster NULL,
+ ...
+}
+
+MiscellaneousCommand ::= SEQUENCE {
+ logicalChannelNumber LogicalChannelNumber,
+ type
+ CHOICE {equaliseDelay NULL, -- same as H.230 ACE--
+ zeroDelay NULL, -- same as H.230 ACZ--
+ multipointModeCommand NULL,
+ cancelMultipointModeCommand NULL,
+ videoFreezePicture NULL,
+ videoFastUpdatePicture NULL,
+ videoFastUpdateGOB
+ SEQUENCE {firstGOB INTEGER(0..17),
+ numberOfGOBs INTEGER(1..18)},
+ videoTemporalSpatialTradeOff INTEGER(0..31), -- commands a trade-off value--
+ videoSendSyncEveryGOB NULL,
+ videoSendSyncEveryGOBCancel NULL,
+ ...,
+ videoFastUpdateMB
+ SEQUENCE {firstGOB INTEGER(0..255) OPTIONAL,
+ firstMB INTEGER(1..8192) OPTIONAL,
+ numberOfMBs INTEGER(1..8192),
+ ...},
+ maxH223MUXPDUsize INTEGER(1..65535), -- units octets--
+ encryptionUpdate EncryptionSync,
+ encryptionUpdateRequest EncryptionUpdateRequest,
+ switchReceiveMediaOff NULL,
+ switchReceiveMediaOn NULL,
+ progressiveRefinementStart
+ SEQUENCE {repeatCount RepeatCount,
+ ...},
+ progressiveRefinementAbortOne NULL,
+ progressiveRefinementAbortContinuous NULL,
+ videoBadMBs
+ SEQUENCE {firstMB INTEGER(1..9216),
+ numberOfMBs INTEGER(1..9216),
+ temporalReference INTEGER(0..1023),
+ ...},
+ lostPicture SEQUENCE OF PictureReference,
+ lostPartialPicture
+ SEQUENCE {pictureReference PictureReference,
+ firstMB INTEGER(1..9216),
+ numberOfMBs INTEGER(1..9216),
+ ...},
+ recoveryReferencePicture SEQUENCE OF PictureReference,
+ encryptionUpdateCommand
+ SEQUENCE-- for ack'ed key update in H.235V3-- {encryptionSync
+
+ EncryptionSync,
+ multiplePayloadStream
+
+ MultiplePayloadStream
+ OPTIONAL,
+ ...},
+ encryptionUpdateAck
+ SEQUENCE {synchFlag INTEGER(0..255),
+ ...}},
+ ...,
+ direction EncryptionUpdateDirection OPTIONAL
+}
+RepeatCount ::= CHOICE {doOneProgression NULL,
+ doContinuousProgressions NULL,
+ doOneIndependentProgression NULL,
+ doContinuousIndependentProgressions NULL,
+ ...}
+KeyProtectionMethod ::=
+ SEQUENCE -- specify how the new key is to be protected
+ {
+ secureChannel BOOLEAN,
+ sharedSecret BOOLEAN,
+ certProtectedKey BOOLEAN,
+ ...
+}
+
+EncryptionUpdateRequest ::= SEQUENCE {
+ keyProtectionMethod KeyProtectionMethod OPTIONAL,
+ ...,
+ synchFlag INTEGER(0..255) OPTIONAL
+}
+
+PictureReference ::= CHOICE {
+ pictureNumber INTEGER(0..1023),
+ longTermPictureIndex INTEGER(0..255),
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : H.223 Multiplex Reconfiguration
+-- ===================================================================================
+H223MultiplexReconfiguration ::= CHOICE {
+ h223ModeChange
+ CHOICE {toLevel0 NULL,
+ toLevel1 NULL,
+ toLevel2 NULL,
+ toLevel2withOptionalHeader NULL,
+ ...},
+ h223AnnexADoubleFlag CHOICE {start NULL,
+ stop NULL,
+ ...},
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : New ATM virtual channel command
+-- ===================================================================================
+NewATMVCCommand ::= SEQUENCE {
+ resourceID INTEGER(0..65535),
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ aal
+ CHOICE {aal1
+ SEQUENCE {clockRecovery
+ CHOICE {nullClockRecovery NULL,
+ srtsClockRecovery NULL,
+ adaptiveClockRecovery NULL,
+ ...},
+ errorCorrection
+ CHOICE {nullErrorCorrection NULL,
+ longInterleaver NULL,
+ shortInterleaver NULL,
+ errorCorrectionOnly NULL,
+ ...},
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...},
+ aal5
+ SEQUENCE {forwardMaximumSDUSize INTEGER(0..65535), -- units octets--
+ backwardMaximumSDUSize INTEGER(0..65535), -- units octets--
+ ...},
+ ...},
+ multiplex
+ CHOICE {noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...},
+ reverseParameters
+ SEQUENCE {bitRate INTEGER(1..65535), -- units 64 kbit/s--
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ multiplex
+ CHOICE {noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...},
+ ...},
+ ...
+}
+
+-- ===================================================================================
+-- Command Message : Mobile Multilink Reconfiguration command
+-- ===================================================================================
+MobileMultilinkReconfigurationCommand ::= SEQUENCE {
+ sampleSize INTEGER(1..255),
+ samplesPerFrame INTEGER(1..255),
+ status CHOICE {synchronized NULL,
+ reconfiguration NULL,
+ ...},
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message definitions
+-- ===================================================================================
+-- ===================================================================================
+-- Indication Message : Function not understood
+-- ===================================================================================
+-- This is used to return a request, response or command that is not understood
+FunctionNotUnderstood ::= CHOICE {
+ request RequestMessage,
+ response ResponseMessage,
+ command CommandMessage
+}
+
+-- ===================================================================================
+-- Indication Message : Function not Supported
+-- ===================================================================================
+-- This is used to return a complete request, response or command that is not recognized
+FunctionNotSupported ::= SEQUENCE {
+ cause
+ CHOICE {syntaxError NULL,
+ semanticError NULL,
+ unknownFunction NULL,
+ ...},
+ returnedFunction OCTET STRING OPTIONAL,
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Conference
+-- ===================================================================================
+ConferenceIndication ::= CHOICE {
+ sbeNumber INTEGER(0..9), -- same as H.230 SBE Number
+ terminalNumberAssign TerminalLabel, -- same as H.230 TIA
+ terminalJoinedConference TerminalLabel, -- same as H.230 TIN
+ terminalLeftConference TerminalLabel, -- same as H.230 TID
+ seenByAtLeastOneOther NULL, -- same as H.230 MIV
+ cancelSeenByAtLeastOneOther NULL, -- same as H.230 cancel MIV
+ seenByAll NULL, -- like H.230 MIV
+ cancelSeenByAll NULL, -- like H.230 MIV
+ terminalYouAreSeeing TerminalLabel, -- same as H.230 VIN
+ requestForFloor NULL, -- same as H.230 TIF
+ ...,
+ withdrawChairToken NULL, -- same as H.230 CCR
+
+ -- MC-> chair
+ floorRequested TerminalLabel, -- same as H.230 TIF
+
+ -- MC-> chair
+ terminalYouAreSeeingInSubPictureNumber
+ TerminalYouAreSeeingInSubPictureNumber,
+ videoIndicateCompose VideoIndicateCompose
+}
+
+TerminalYouAreSeeingInSubPictureNumber ::= SEQUENCE {
+ terminalNumber TerminalNumber,
+ subPictureNumber INTEGER(0..255),
+ ...
+}
+
+VideoIndicateCompose ::= SEQUENCE {compositionNumber INTEGER(0..255),
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Miscellaneous H.230-like indication
+-- ===================================================================================
+MiscellaneousIndication ::= SEQUENCE {
+ logicalChannelNumber LogicalChannelNumber,
+ type
+ CHOICE {logicalChannelActive NULL, -- same as H.230 AIA and VIA--
+ logicalChannelInactive NULL, -- same as H.230 AIM and VIS--
+ multipointConference NULL,
+ cancelMultipointConference NULL,
+ multipointZeroComm NULL, -- same as H.230 MIZ--
+ cancelMultipointZeroComm NULL, -- same as H.230 cancel MIZ--
+ multipointSecondaryStatus NULL, -- same as H.230 MIS--
+ cancelMultipointSecondaryStatus NULL, -- same as H.230 cancel MIS--
+ videoIndicateReadyToActivate NULL, -- same as H.230 VIR--
+ videoTemporalSpatialTradeOff INTEGER(0..31), -- indicates current trade-off--
+ ...,
+ videoNotDecodedMBs
+ SEQUENCE {firstMB INTEGER(1..8192),
+ numberOfMBs INTEGER(1..8192),
+ temporalReference INTEGER(0..255),
+ ...},
+ transportCapability TransportCapability},
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Jitter Indication
+-- ===================================================================================
+JitterIndication ::= SEQUENCE {
+ scope Scope,
+ estimatedReceivedJitterMantissa INTEGER(0..3),
+ estimatedReceivedJitterExponent INTEGER(0..7),
+ skippedFrameCount INTEGER(0..15) OPTIONAL,
+ additionalDecoderBuffer INTEGER(0..262143) OPTIONAL, -- 262143 is 2^18 - 1
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.223 logical channel skew
+-- ===================================================================================
+H223SkewIndication ::= SEQUENCE {
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ skew INTEGER(0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : H.225.0 maximum logical channel skew
+-- ===================================================================================
+H2250MaximumSkewIndication ::= SEQUENCE {
+ logicalChannelNumber1 LogicalChannelNumber,
+ logicalChannelNumber2 LogicalChannelNumber,
+ maximumSkew INTEGER(0..4095), -- units milliseconds
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : MC Location Indication
+-- ===================================================================================
+MCLocationIndication ::= SEQUENCE {
+ signalAddress TransportAddress, -- this is the H.323 Call Signalling
+
+ -- address of the entity which
+ -- contains the MC
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Vendor Identification
+-- ===================================================================================
+VendorIdentification ::= SEQUENCE {
+ vendor NonStandardIdentifier,
+ productNumber OCTET STRING(SIZE (1..256)) OPTIONAL, -- per vendor
+ versionNumber OCTET STRING(SIZE (1..256)) OPTIONAL, -- per productNumber
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : New ATM virtual channel indication
+-- ===================================================================================
+NewATMVCIndication ::= SEQUENCE {
+ resourceID INTEGER(0..65535),
+ bitRate INTEGER(1..65535), -- units 64 kbit/s
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ aal
+ CHOICE {aal1
+ SEQUENCE {clockRecovery
+ CHOICE {nullClockRecovery NULL,
+ srtsClockRecovery NULL,
+ adaptiveClockRecovery NULL,
+ ...},
+ errorCorrection
+ CHOICE {nullErrorCorrection NULL,
+ longInterleaver NULL,
+ shortInterleaver NULL,
+ errorCorrectionOnly NULL,
+ ...},
+ structuredDataTransfer BOOLEAN,
+ partiallyFilledCells BOOLEAN,
+ ...},
+ aal5
+ SEQUENCE {forwardMaximumSDUSize INTEGER(0..65535), -- units octets--
+ backwardMaximumSDUSize INTEGER(0..65535), -- units octets--
+ ...},
+ ...},
+ multiplex
+ CHOICE {noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...},
+ ...,
+ reverseParameters
+ SEQUENCE {bitRate INTEGER(1..65535), -- units 64 kbit/s--
+ bitRateLockedToPCRClock BOOLEAN,
+ bitRateLockedToNetworkClock BOOLEAN,
+ multiplex
+ CHOICE {noMultiplex NULL,
+ transportStream NULL,
+ programStream NULL,
+ ...},
+ ...}
+}
+
+-- ===================================================================================
+-- Indication Message : user input
+-- ===================================================================================
+IV8 ::= OCTET STRING(SIZE (8)) -- initial value for
+
+
+-- 64-bit block ciphers
+IV16 ::= OCTET STRING(SIZE (16)) -- initial value for
+
+
+-- 128-bit block ciphers
+Params ::= SEQUENCE {
+ iv8 IV8 OPTIONAL, -- 8 octet initialization vector
+ iv16 IV16 OPTIONAL, -- 16 octet initialization vector
+ iv OCTET STRING OPTIONAL, -- arbitrary length
+
+ -- initialization vector
+ ...
+}
+
+UserInputIndication ::= CHOICE {
+ nonStandard NonStandardParameter,
+ alphanumeric GeneralString,
+ ...,
+ userInputSupportIndication
+ CHOICE {nonStandard NonStandardParameter,
+ -- indicates unsecured basic string
+ basicString NULL,
+ -- indicates unsecured iA5 string
+ iA5String NULL,
+ -- indicates unsecured general string
+ generalString NULL,
+ ...,
+ -- indicates encrypted Basic string
+ encryptedBasicString NULL,
+ -- indicates encrypted IA5 string
+ encryptedIA5String NULL,
+ -- indicates encrypted general string
+ encryptedGeneralString NULL},
+-- IA5String(SIZE (1) ^ FROM ("0123456789#*ABCD!")),
+
+ signal
+ SEQUENCE {signalType
+ IA5String(SIZE (1) ),
+ -- holds dummy "!" if encryptedSignalType is being used
+ duration INTEGER(1..65535) OPTIONAL, -- milliseconds--
+ rtp Rtp OPTIONAL,
+ ...,
+ rtpPayloadIndication NULL OPTIONAL,
+ -- any "runtime" parameters
+ paramS Params OPTIONAL,
+ -- encrypted signalType
+ encryptedSignalType OCTET STRING(SIZE (1)) OPTIONAL
+ },
+ signalUpdate
+ SEQUENCE {duration INTEGER(1..65535), -- milliseconds--
+ rtp
+ SEQUENCE {logicalChannelNumber LogicalChannelNumber,
+ ...} OPTIONAL,
+ ...},
+ extendedAlphanumeric
+ SEQUENCE {alphanumeric GeneralString, -- holds empty string if--
+ -- encryptedAlphanumeric is being used
+ rtpPayloadIndication NULL OPTIONAL,
+ ...,
+ encryptedAlphanumeric EncryptedAlphanumeric OPTIONAL},
+ encryptedAlphanumeric EncryptedAlphanumeric
+}
+EncryptedAlphanumeric ::= SEQUENCE {algorithmOID OBJECT IDENTIFIER,
+ paramS Params OPTIONAL, -- any "runtime" parameters--
+ encrypted OCTET STRING, -- general string encrypted--
+ ...}
+Rtp ::= SEQUENCE {timestamp INTEGER(0..4294967295) OPTIONAL,
+ expirationTime INTEGER(0..4294967295) OPTIONAL,
+ logicalChannelNumber LogicalChannelNumber,
+ ...}
+-- ===================================================================================
+-- Indication Message : Flow Control
+-- ===================================================================================
+FlowControlIndication ::= SEQUENCE {
+ scope Scope,
+ restriction Restriction,
+ ...
+}
+
+-- ===================================================================================
+-- Indication Message : Mobile Multilink Reconfiguration indication
+-- ===================================================================================
+MobileMultilinkReconfigurationIndication ::= SEQUENCE {
+ sampleSize INTEGER(1..255),
+ samplesPerFrame INTEGER(1..255),
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/h245/h245.cnf b/asn1/h245/h245.cnf
new file mode 100644
index 0000000000..731a126a2d
--- /dev/null
+++ b/asn1/h245/h245.cnf
@@ -0,0 +1,644 @@
+# H.245 conformation file
+# Copyright 2005 Anders Broman anders.broman[at]ericsson.com
+# $Id$
+#----------------------------------------------------------------------------------------
+#.EXPORTS
+#----------------------------------------------------------------------------------------
+T38FaxProfile
+DataProtocolCapability
+OpenLogicalChannel
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY RequestMessage
+ guint32 value;
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_RequestMessage, RequestMessage_choice, "RequestMessage",
+ &value);
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ if ( h245_shorttypes == TRUE )
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, RequestMessage_short_vals, "<unknown>"));
+ }
+ else
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, RequestMessage_vals, "<unknown>"));
+ }
+ }
+
+ if (( check_col(pinfo->cinfo, COL_INFO)) && ( codec_type != NULL ) && ( value == 3) ){
+ col_append_fstr(pinfo->cinfo, COL_INFO, "(%s) ", codec_type );
+ }
+
+ col_set_fence(pinfo->cinfo,COL_INFO);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY ResponseMessage
+ guint32 value;
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_ResponseMessage, ResponseMessage_choice, "ResponseMessage",
+ &value);
+
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ if ( h245_shorttypes == TRUE )
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, ResponseMessage_short_vals, "<unknown>"));
+ }
+ else
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, ResponseMessage_vals, "<unknown>"));
+ }
+ }
+
+ col_set_fence(pinfo->cinfo,COL_INFO);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY IndicationMessage
+ guint32 value;
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_IndicationMessage, IndicationMessage_choice, "IndicationMessage",
+ &value);
+
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ if ( h245_shorttypes == TRUE )
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, IndicationMessage_short_vals, "<unknown>"));
+ }
+ else
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, IndicationMessage_vals, "<unknown>"));
+ }
+ }
+
+ col_set_fence(pinfo->cinfo,COL_INFO);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY CommandMessage
+ guint32 value;
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_CommandMessage, CommandMessage_choice, "CommandMessage",
+ &value);
+
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ if ( h245_shorttypes == TRUE )
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, CommandMessage_short_vals, "<unknown>"));
+ }
+ else
+ {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(value, CommandMessage_vals, "<unknown>"));
+ }
+ }
+
+ col_set_fence(pinfo->cinfo,COL_INFO);
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY AudioCapability
+ guint32 value;
+
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_AudioCapability, AudioCapability_choice, "AudioCapability",
+ &value);
+
+ codec_type = val_to_str(value, AudioCapability_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY VideoCapability
+ guint32 value;
+
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_VideoCapability, VideoCapability_choice, "VideoCapability",
+ &value);
+
+ codec_type = val_to_str(value, VideoCapability_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY Application
+ guint32 value;
+
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_h245_Application, Application_choice, "Application",
+ &value);
+
+ codec_type = val_to_str(value, Application_vals, "<unknown>");
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDeterminationAck
+
+ h245_pi.msg_type = H245_MastSlvDetAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDeterminationReject
+
+ h245_pi.msg_type = H245_MastSlvDetRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelReject
+
+ h245_pi.msg_type = H245_OpenLogChnRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR CloseLogicalChannel
+
+ h245_pi.msg_type = H245_CloseLogChn;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR CloseLogicalChannelAck
+
+ h245_pi.msg_type = H245_CloseLogChnAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelConfirm
+
+ h245_pi.msg_type = H245_OpenLogChnCnf;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySetAck
+
+ h245_pi.msg_type = H245_TermCapSetAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR MasterSlaveDetermination
+
+ h245_pi.msg_type = H245_MastSlvDet;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySetReject
+
+ h245_pi.msg_type = H245_TermCapSetRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR H245_MastSlvDetRls
+
+ h245_pi.msg_type = H245_TermCapSetRjc;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySet
+
+ h245_pi.msg_type = H245_TermCapSet;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR TerminalCapabilitySetRelease
+
+ h245_pi.msg_type = H245_TermCapSetRls;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannel
+
+ h245_pi.msg_type = H245_OpenLogChn;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelAck
+
+ h245_pi.msg_type = H245_OpenLogChnAck;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY CapabilityIdentifier/standard
+ offset = dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_index,
+ standard_oid_str);
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY GenericMessage/subMessageIdentifer
+
+guint32 subMessageIdentifer;
+
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 127U, &subMessageIdentifer, NULL, FALSE);
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY UnicastAddress/iPAddress/network
+
+guint32 value_offset;
+guint32 value_len;
+
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4,
+ &value_offset, &value_len);
+ if ( media_channel )
+ tvb_memcpy(tvb, (char *)&ipv4_address, value_offset, 4);
+
+ if ( media_control_channel )
+ tvb_memcpy(tvb, (char *)&ipv4_address, value_offset, 4);
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_BODY tsapIdentifier
+guint32 tsapIdentifier;
+
+
+ offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
+ hf_h245_tsapIdentifier, 0, 65535,
+ &tsapIdentifier, NULL, FALSE);
+ if ( media_channel )
+ ipv4_port = tsapIdentifier;
+
+ if ( media_control_channel )
+ rtcp_ipv4_port = tsapIdentifier;
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H2250LogicalChannelAckParameters/mediaChannel
+
+
+ media_channel = TRUE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR H2250LogicalChannelAckParameters/mediaControlChannel
+
+
+ media_control_channel = TRUE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR H2250LogicalChannelAckParameters/mediaChannel
+
+
+ media_channel = FALSE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR H2250LogicalChannelAckParameters/mediaControlChannel
+
+
+ media_control_channel = FALSE;
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_HDR OpenLogicalChannelAck/forwardMultiplexAckParameters
+
+
+ media_channel = FALSE;
+ media_control_channel = FALSE;
+
+#.END
+#----------------------------------------------------------------------------------------
+#.FN_FTR OpenLogicalChannelAck/forwardMultiplexAckParameters
+
+ if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(char *)&ipv4_address;
+
+ rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num);
+ }
+ if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){
+ address src_addr;
+
+ src_addr.type=AT_IPv4;
+ src_addr.len=4;
+ src_addr.data=(char *)&rtcp_ipv4_address;
+
+ rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num);
+ }
+
+#.END
+#----------------------------------------------------------------------------------------
+#.TYPE_RENAME
+#----------------------------------------------------------------------------------------
+
+NewATMVCCommand/aal Cmd_aal
+NewATMVCCommand/aal/aal1 Cmd_aal1
+NewATMVCCommand/aal/aal5 Cmd_aal5
+NewATMVCCommand/aal/aal1/clockRecovery Cmd_clockRecovery
+NewATMVCCommand/aal/aal1/errorCorrection Cmd_errorCorrection
+NewATMVCCommand/multiplex Cmd_multiplex
+NewATMVCCommand/reverseParameters Cmd_reverseParameters
+NewATMVCCommand/reverseParameters/multiplex CmdR_multiplex
+
+NewATMVCIndication/aal Ind_aal
+NewATMVCIndication/aal/aal1 Ind_aal1
+NewATMVCIndication/aal/aal5 Ind_aal5
+NewATMVCIndication/aal/aal1/clockRecovery Ind_clockRecovery
+NewATMVCIndication/aal/aal1/errorCorrection Ind_errorCorrection
+NewATMVCIndication/multiplex Ind_multiplex
+NewATMVCIndication/reverseParameters Ind_reverseParameters
+NewATMVCIndication/reverseParameters/multiplex IndR_multiplex
+
+MultilinkRequest/callInformation CallInformationReq
+MultilinkRequest/addConnection AddConnectionReq
+MultilinkRequest/removeConnection RemoveConnectionReq
+MultilinkRequest/maximumHeaderInterval MaximumHeaderIntervalReq
+
+MultilinkResponse/callInformation CallInformationResp
+MultilinkResponse/addConnection AddConnectionResp
+MultilinkResponse/removeConnection RemoveConnectionResp
+MultilinkResponse/maximumHeaderInterval MaximumHeaderIntervalResp
+
+MasterSlaveDeterminationReject/cause MasterSlaveDeterminationRejectCause
+TerminalCapabilitySetReject/cause TerminalCapabilitySetRejectCause
+OpenLogicalChannelReject/cause OpenLogicalChannelRejectCause
+RequestChannelCloseReject/cause RequestChannelCloseRejectCause
+MultiplexEntryRejectionDescriptions/cause MultiplexEntryRejectionDescriptionsCause
+RequestMultiplexEntryRejectionDescriptions/cause RequestMultiplexEntryRejectionDescriptionsCause
+RequestModeReject/cause RequestModeRejectCause
+MaintenanceLoopReject/cause MaintenanceLoopRejectCause
+FunctionNotSupported/cause FunctionNotSupportedCause
+
+AudioMode/g7231 Mode_g7231
+
+DataMode/application DataModeApplication
+DataMode/application/t38fax T38faxApp
+
+FECData/rfc2733 RFC2733Data
+
+IS13818AudioMode/audioLayer IS13818AudioLayer
+IS13818AudioMode/audioSampling IS13818AudioSampling
+IS13818AudioMode/multichannelType IS13818MultichannelType
+
+H223ModeParameters/adaptationLayerType AdaptationLayerType
+
+H223AL1MParameters/headerFEC AL1HeaderFEC
+H223AL1MParameters/crcLength AL1CrcLength
+H223AL2MParameters/headerFEC AL2HeaderFEC
+H223AL3MParameters/crcLength AL3CrcLength
+
+H261VideoMode/resolution H261Resolution
+H263VideoMode/resolution H263Resolution
+
+UnicastAddress/iPAddress/network Ipv4_network
+MulticastAddress/iPAddress MIPAddress
+MulticastAddress/iP6Address MIP6Address
+
+NonStandardIdentifier/h221NonStandard H221NonStandardID
+OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters OLC_forw_multiplexParameters
+OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters OLC_rev_multiplexParameters
+OpenLogicalChannel/reverseLogicalChannelParameters OLC_reverseLogicalChannelParameters
+OpenLogicalChannelAck/reverseLogicalChannelParameters OLC_ack_reverseLogicalChannelParameters
+CloseLogicalChannel/reason clc_reason
+VCCapability/availableBitRates/type Avb_type
+MultiplexElement/type Me_type
+RedundancyEncodingDTModeElement/type Re_type
+MaintenanceLoopRequest/type Mlr_type
+MaintenanceLoopAck/type Mla_type
+MaintenanceLoopReject/type Mlrej_type
+MiscellaneousCommand/type Mc_type
+MiscellaneousIndication/type Mi_type
+V76LogicalChannelParameters/mode V76LCP_mode
+FECData/rfc2733/mode FECdata_mode
+FECMode/rfc2733Mode/mode FEC_mode
+IS11172AudioMode/multichannelType IS11172_multichannelType
+MultiplexElement/repeatCount ME_repeatCount
+FECCapability/rfc2733 FECC_rfc2733
+RequestModeAck/response Req_mode_ack_response
+UserInputIndication/signalUpdate/rtp Si_rtp
+#----------------------------------------------------------------------------------------
+#.FIELD_RENAME
+#----------------------------------------------------------------------------------------
+
+NewATMVCCommand/aal cmd_aal
+NewATMVCCommand/aal/aal1 cmd_aal1
+NewATMVCCommand/aal/aal5 cmd_aal5
+NewATMVCCommand/aal/aal1/clockRecovery cmd_clockRecovery
+NewATMVCCommand/aal/aal1/errorCorrection cmd_errorCorrection
+NewATMVCCommand/multiplex cmd_multiplex
+NewATMVCCommand/reverseParameters cmd_reverseParameters
+NewATMVCCommand/reverseParameters/multiplex cmdr_multiplex
+
+NewATMVCIndication/aal ind_aal
+NewATMVCIndication/aal/aal1 ind_aal1
+NewATMVCIndication/aal/aal5 ind_aal5
+NewATMVCIndication/aal/aal1/clockRecovery ind_clockRecovery
+NewATMVCIndication/aal/aal1/errorCorrection ind_errorCorrection
+NewATMVCIndication/multiplex ind_multiplex
+NewATMVCIndication/reverseParameters ind_reverseParameters
+NewATMVCIndication/reverseParameters/multiplex indr_multiplex
+
+MultilinkRequest/callInformation callInformationReq
+MultilinkRequest/addConnection addConnectionReq
+MultilinkRequest/removeConnection removeConnectionReq
+MultilinkRequest/maximumHeaderInterval maximumHeaderIntervalReq
+
+MultilinkResponse/callInformation callInformationResp
+MultilinkResponse/addConnection addConnectionResp
+MultilinkResponse/removeConnection removeConnectionResp
+MultilinkResponse/maximumHeaderInterval maximumHeaderIntervalResp
+
+MultiplexElement/type/logicalChannelNumber logicalChannelNum
+ConnectionIdentifier/sequenceNumber sequenceNum
+
+RequestMessage/nonStandard nonStandardMsg
+ResponseMessage/nonStandard nonStandardMsg
+CommandMessage/nonStandard nonStandardMsg
+IndicationMessage/nonStandard nonStandardMsg
+MultilinkRequest/nonStandard nonStandardMsg
+MultilinkResponse/nonStandard nonStandardMsg
+MultilinkIndication/nonStandard nonStandardMsg
+DialingInformation/nonStandard nonStandardMsg
+DialingInformationNetworkType/nonStandard nonStandardMsg
+
+UserInputCapability/nonStandard ui_nonStandard
+H2250LogicalChannelParameters/nonStandard nonStandardParams
+H2250LogicalChannelAckParameters/nonStandard nonStandardParams
+CommunicationModeTableEntry/nonStandard nonStandardParams
+ConferenceCapability/nonStandardData nonStandardParams
+
+UnicastAddress/iPXAddress/tsapIdentifier ipx_tsapIdentifier
+
+NonStandardParameter/data nsd_data
+NonStandardIdentifier/h221NonStandard h221NonStandardID
+
+AudioMode/g711Alaw64k g711Alaw64k_mode
+AudioMode/g711Alaw56k g711Alaw56k_mode
+AudioMode/g711Ulaw64k g711Ulaw64k_mode
+AudioMode/g711Ulaw56k g711Ulaw56k_mode
+AudioMode/g722-64k g722_64k_mode
+AudioMode/g722-56k g722_56k_mode
+AudioMode/g722-48k g722_48k_mode
+AudioMode/g728 g728_mode
+AudioMode/g729 g729_mode
+AudioMode/g729AnnexA g729AnnexA_mode
+AudioMode/g7231 g7231_mode
+AudioMode/vbd vbd_mode
+
+IS11172AudioMode/audioLayer/audioLayer1 audioLayer1Mode
+IS11172AudioMode/audioLayer/audioLayer2 audioLayer2Mode
+IS11172AudioMode/audioLayer/audioLayer3 audioLayer3Mode
+IS11172AudioMode/audioSampling/audioSampling32k audioSampling32kMode
+IS11172AudioMode/audioSampling/audioSampling44k1 audioSampling44k1Mode
+IS11172AudioMode/audioSampling/audioSampling48k audioSampling48kMode
+IS11172AudioMode/multichannelType/singleChannel singleChannelMode
+
+IS13818AudioMode/audioLayer audioLayerMode
+IS13818AudioMode/audioLayer/audioLayer1 audioLayer1Mode
+IS13818AudioMode/audioLayer/audioLayer2 audioLayer2Mode
+IS13818AudioMode/audioLayer/audioLayer3 audioLayer3Mode
+IS13818AudioMode/audioSampling audioSamplingMode
+IS13818AudioMode/audioSampling/audioSampling16k audioSampling16kMode
+IS13818AudioMode/audioSampling/audioSampling22k05 audioSampling22k05Mode
+IS13818AudioMode/audioSampling/audioSampling24k audioSampling24kMode
+IS13818AudioMode/audioSampling/audioSampling32k audioSampling32kMode
+IS13818AudioMode/audioSampling/audioSampling44k1 audioSampling44k1Mode
+IS13818AudioMode/audioSampling/audioSampling48k audioSampling48kMode
+IS13818AudioMode/multichannelType/singleChannel singleChannelMode
+IS13818AudioMode/multichannelType/threeChannels2-1 threeChannels2_1Mode
+IS13818AudioMode/multichannelType/threeChannels3-0 threeChannels3_0Mode
+IS13818AudioMode/multichannelType/fourChannels2-0-2-0 fourChannels2_0_2_0Mode
+IS13818AudioMode/multichannelType/fourChannels2-2 fourChannels2_2Mode
+IS13818AudioMode/multichannelType/fourChannels3-1 fourChannels3_1Mode
+IS13818AudioMode/multichannelType/fiveChannels3-0-2-0 fiveChannels3_0_2_0Mode
+IS13818AudioMode/multichannelType/fiveChannels3-2 fiveChannels3_2Mode
+
+H262VideoMode/profileAndLevel/profileAndLevel-SPatML profileAndLevel_SPatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatLL profileAndLevel_MPatLLMode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatML profileAndLevel_MPatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatH-14 profileAndLevel_MPatH-14Mode
+H262VideoMode/profileAndLevel/profileAndLevel-MPatHL profileAndLevel_MPatHLMode
+H262VideoMode/profileAndLevel/profileAndLevel-SNRatLL profileAndLevel_SNRatLLMode
+H262VideoMode/profileAndLevel/profileAndLevel-SNRatML profileAndLevel_SNRatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-SpatialatH-14 profileAndLevel_SpatialatH-14Mode
+H262VideoMode/profileAndLevel/profileAndLevel-HPatML profileAndLevel_HPatMLMode
+H262VideoMode/profileAndLevel/profileAndLevel-HPatH-14 profileAndLevel_HPatH-14Mode
+H262VideoMode/profileAndLevel/profileAndLevel-HPatHL profileAndLevel_HPatHLMode
+
+RedundancyEncodingMode/secondaryEncoding/audioData audioMode
+
+UnicastAddress/iPAddress/network ip4_network
+UnicastAddress/iP6Address/network ip6_network
+MulticastAddress/iP6Address/network mip6_network
+MulticastAddress/iPAddress mIPAddress
+MulticastAddress/iP6Address mIP6Address
+MulticastAddress/iPAddress/network mip4_network
+
+RTPPayloadType/payloadDescriptor/nonStandardIdentifier nonStandard
+T84Profile/t84Restricted/cif cif_bool
+T84Profile/t84Restricted/qcif qcif_bool
+H223ModeParameters/adaptationLayerType adaptationLayer
+H261VideoMode/resolution h261_resolution
+H263VideoMode/resolution h263_resolution
+H263VideoMode/resolution/custom custom_res
+CommunicationModeTableEntry/dataType entryDataType
+VCCapability/transportStream transportStream_bool
+
+MultiplexEntrySendAck/multiplexTableEntryNumber multiplexTableEntryNumbers
+MultiplexEntrySendRelease/multiplexTableEntryNumber multiplexTableEntryNumbers
+CapabilityIdentifier/standard standardOid
+MiscellaneousIndication/type/videoNotDecodedMBs/temporalReference temporalReference_0_255
+CloseLogicalChannel/source CloseLogicalChannel_source
+FECCapability/rfc2733/separateStream separateStreamBool
+FECCapability/rfc2733/separateStream/samePort samePortBool
+VCCapability/aal1/srtsClockRecovery srtsClockRecovery_bool
+VCCapability/aal1ViaGateway/srtsClockRecovery srtsClockRecoveryflag
+DataMode/application/t84 t84DataProtocolCapability
+DataMode/application/t38fax t38faxDataProtocolCapability
+H2250LogicalChannelParameters/sessionID sessionID_0_255
+H223Capability/mobileOperationTransmitCapability/h223AnnexADoubleFlag h223AnnexADoubleFlagFlag
+SendTerminalCapabilitySet/genericRequest genericRequestFlag
+H2250LogicalChannelParameters/mediaPacketization/h261aVideoPacketization h261aVideoPacketizationFlag
+RemoteMCResponse/reject/functionNotSupported functionNotSupportedFlag
+NewATMVCCommand/aal/aal1/errorCorrection/longInterleaver longInterleaverFlag
+NewATMVCIndication/aal/aal1/errorCorrection/longInterleaver longInterleaverFlag
+MiscellaneousCommand/type/videoFastUpdateMB/firstGOB firstGOB_0_255
+H263VideoCapability/sqcifMPI sqcifMPI_1_32
+EnhancementOptions/sqcifMPI sqcifMPI_1_32
+NewATMVCCommand/aal/aal1/errorCorrection/shortInterleaver shortInterleaverFlag
+NewATMVCIndication/aal/aal1/errorCorrection/shortInterleaver shortInterleaverFlag
+NewATMVCCommand/multiplex/programStream programStreamFlag
+NewATMVCCommand/reverseParameters/multiplex/programStream programStreamFlag
+NewATMVCIndication/multiplex/programStream programStreamFlag
+NewATMVCIndication/reverseParameters/multiplex/programStream programStreamFlag
+H263ModeComboFlags/enhancedReferencePicSelect enhancedReferencePicSelectBool
+NewATMVCCommand/aal/aal1/errorCorrection/errorCorrectionOnly errorCorrectionOnlyFlag
+NewATMVCIndication/aal/aal1/errorCorrection/errorCorrectionOnly errorCorrectionOnlyFlag
+UserInputCapability/extendedAlphanumeric extendedAlphanumericFlag
+MultiplexElement/repeatCount/finite finite_1_65535
+MiscellaneousCommand/type/videoFastUpdateMB/firstMB firstMB_1_8192
+MiscellaneousIndication/type/videoNotDecodedMBs/firstMB firstMB_1_8192
+H261VideoCapability/cifMPI cifMPI_1_4
+CustomPictureClockFrequency/cifMPI cifMPI2_1_2048
+H263VideoCapability/cif16MPI cif16MPI_1_32
+EnhancementOptions/cif16MPI cif16MPI_1_32
+H263VideoCapability/cif4MPI cif4MPI_1_32
+EnhancementOptions/cif4MPI cif4MPI_1_32
+H263Version3Options/pictureNumber pictureNumberBoolean
+MiscellaneousCommand/type/videoBadMBs/numberOfMBs numberOfMBs1_1_9216
+MiscellaneousCommand/type/lostPartialPicture/numberOfMBs numberOfMBs1_1_9216
+DataApplicationCapability/maxBitRate maxBitRate2_0_4294967295
+GenericCapability/maxBitRate maxBitRate2_0_4294967295
+H261VideoCapability/maxBitRate maxBitRate_1_19200
+IS13818AudioCapability/bitRate bitRate2_1_1130
+IS13818AudioMode/bitRate bitRate2_1_1130
+IS11172AudioCapability/bitRate bitRate_1_448
+IS11172AudioMode/bitRate bitRate_1_448
+DataMode/bitRate bitRate_0_4294967295
+H223Capability/bitRate bitRate_1_19200
+H261VideoMode/bitRate bitRate_1_19200
+H263VideoMode/bitRate bitRate_1_19200
+DialingInformationNumber/networkAddress networkAddressNum
+NewATMVCCommand/aal/aal1/clockRecovery/adaptiveClockRecovery adaptiveClockRecoveryFlag
+NewATMVCIndication/aal/aal1/clockRecovery/adaptiveClockRecovery adaptiveClockRecoveryFlag
+NewATMVCCommand/aal/aal1/clockRecovery/nullClockRecovery nullClockRecoveryflag
+NewATMVCIndication/aal/aal1/clockRecovery/nullClockRecovery nullClockRecoveryflag
+NewATMVCCommand/aal/aal1/errorCorrection/nullErrorCorrection nullErrorCorrectionFlag
+NewATMVCIndication/aal/aal1/errorCorrection/nullErrorCorrection nullErrorCorrectionFlag
+H223AL2MParameters/headerFEC AL2HeaderFEC
+H223AL1MParameters/headerFEC AL1HeaderFEC
+H223AL1MParameters/crcLength crcLength2
+H223AL3MParameters/crcLength crlength2
+SendTerminalCapabilitySet/specificRequest/multiplexCapability multiplexCapabilityBool
+FECCapability/rfc2733/redundancyEncoding redundancyEncodingBool
+FECData/rfc2733/mode/redundancyEncoding redundancyEncodingFlag
+Moderfc2733/redundancyEncoding redundancyEncodingFlag
+FECMode/rfc2733Mode/mode/redundancyEncoding redundancyEncodingFlag
+
+H261VideoCapability/qcifMPI qcifMPI_1_4
+CustomPictureClockFrequency/qcifMPI qcifMPI_1_2048
+DataMode/application datamodeapplication
+MasterSlaveDeterminationReject/cause msd_rej_cause
+
+OpenLogicalChannelReject/cause olc_rej_cause
+RequestMultiplexEntryRejectionDescriptions/cause req_mux_rej_cause
+RequestModeReject/cause req_rej_cause
+MultiplexEntryRejectionDescriptions/cause mux_rej_cause
+RequestChannelCloseReject/cause req_chan_clos_rej_cause
+TerminalCapabilitySetReject/cause tcs_rej_cause
+MaintenanceLoopReject/cause maintloop_rej_cause
+FunctionNotSupported/cause fns_cause
+Restriction/maximumBitRate Res_maximumBitRate
+RedundancyEncodingDTMode/primary prmary_dtmode
+RedundancyEncoding/rtpRedundancyEncoding/primary primary
+FECMode/rfc2733Mode/mode fec_mode
+FECData/rfc2733/mode fec_data_mode
+V76LogicalChannelParameters/mode v76_mode
+OpenLogicalChannelAck/reverseLogicalChannelParameters/multiplexParameters olc_ack_multiplexParameters
+OpenLogicalChannel/reverseLogicalChannelParameters/multiplexParameters olc_rev_multiplexParameter
+OpenLogicalChannel/forwardLogicalChannelParameters/multiplexParameters olc_forw_multiplexParameters
+IS11172AudioMode/multichannelType is11172multichannelType
+IS13818AudioMode/multichannelType is13818MultichannelType
+CloseLogicalChannel/reason clc_reason
+MultiplexElement/repeatCount me_repeatCount
+FECCapability/rfc2733 fecc_rfc2733
+RequestModeAck/response req_mode_ack_response
+UserInputIndication/signalUpdate/rtp si_rtp
+VCCapability/availableBitRates/type Avb_type
+MultiplexElement/type Me_type
+RedundancyEncodingDTModeElement/type re_type
+MaintenanceLoopRequest/type mlr_type
+MaintenanceLoopAck/type Mla_type
+MaintenanceLoopReject/type mlrej_type
+MiscellaneousCommand/type mc_type
+MiscellaneousIndication/type mi_type
+VBDMode/type vbd_type
+VBDCapability/type vbd_cap_type
+OpenLogicalChannelAck/reverseLogicalChannelParameters olc_ack_reverseLogicalChannelParameters
+H2250LogicalChannelAckParameters/mediaChannel ack_mediaChannel
+H2250LogicalChannelAckParameters/mediaControlChannel ack_mediaControlChannel
+#----------------------------------------------------------------------------------------
+#.TYPE_ATTR
+UnicastAddress/iPAddress/network TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+UnicastAddress/iP6Address/network TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+MulticastAddress/iPAddress/network TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
+MulticastAddress/iP6Address/network TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
+RTPPayloadType/payloadDescriptor/rfc-number TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(RFC_number_vals)
+#----------------------------------------------------------------------------------------
diff --git a/asn1/h245/packet-h245-template.c b/asn1/h245/packet-h245-template.c
new file mode 100644
index 0000000000..3fc6a3c9ae
--- /dev/null
+++ b/asn1/h245/packet-h245-template.c
@@ -0,0 +1,302 @@
+/* packet-h245_asn1.c
+ * Routines for h245 packet dissection
+ * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * $Id: packet-h245_asn1-template.c 12203 2004-10-05 09:18:55Z guy $
+ *
+ * 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.
+ *
+ * To quote the author of the previous H245 dissector:
+ * "This is a complete replacement of the previous limitied dissector
+ * that Ronnie was crazy enough to write by hand. It was a lot of time
+ * to hack it by hand, but it is incomplete and buggy and it is good when
+ * it will go away."
+ * Ronnie did a great job and all the VoIP users had made good use of it!
+ * Credit to Tomas Kukosa for developing the Asn2eth compiler.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include <epan/prefs.h>
+#include "tap.h"
+#include "packet-h245.h"
+#include "packet-tpkt.h"
+#include "packet-per.h"
+#include <epan/t35.h>
+#include "packet-rtp.h"
+#include "packet-rtcp.h"
+#include "packet-ber.h"
+
+#define PNAME "h245"
+#define PSNAME "h245"
+#define PFNAME "h245"
+
+static dissector_handle_t rtp_handle=NULL;
+static dissector_handle_t rtcp_handle=NULL;
+static dissector_table_t nsp_object_dissector_table;
+static dissector_table_t nsp_h221_dissector_table;
+static dissector_handle_t nsp_handle;
+static dissector_handle_t h245_handle;
+static dissector_handle_t MultimediaSystemControlMessage_handle;
+
+static void reset_h245_packet_info(h245_packet_info *pi);
+static int hf_h245_pdu_type = -1;
+static int h245_tap = -1;
+static int ett_h245 = -1;
+static h245_packet_info h245_pi;
+
+static gboolean h245_reassembly = TRUE;
+static gboolean h245_shorttypes = FALSE;
+static const value_string RequestMessage_short_vals[] = {
+ { 0, "NSM" },
+ { 1, "MSD" },
+ { 2, "TCS" },
+ { 3, "OLC" },
+ { 4, "CLC" },
+ { 5, "RCC" },
+ { 6, "MES" },
+ { 7, "RME" },
+ { 8, "RM" },
+ { 9, "RTDR" },
+ { 10, "MLR" },
+ { 11, "CMR" },
+ { 12, "CR" },
+ { 13, "MR" },
+ { 14, "LCRR" },
+ { 15, "GR" },
+ { 0, NULL }
+};
+static const value_string ResponseMessage_short_vals[] = {
+ { 0, "NSM" },
+ { 1, "MSDAck" },
+ { 2, "MSDReject" },
+ { 3, "TCSAck" },
+ { 4, "TCSReject" },
+ { 5, "OLCAck" },
+ { 6, "OLCReject" },
+ { 7, "CLCAck" },
+ { 8, "RCCAck" },
+ { 9, "RCCReject" },
+ { 10, "MESAck" },
+ { 11, "MESReject" },
+ { 12, "RMEAck" },
+ { 13, "RMEReject" },
+ { 14, "RMAck" },
+ { 15, "RMReject" },
+ { 16, "RTDResponse" },
+ { 17, "MLAck" },
+ { 18, "MLReject" },
+ { 19, "CMResponse" },
+ { 20, "CResponse" },
+ { 21, "MResponse" },
+ { 22, "LCRAck" },
+ { 23, "LCRReject" },
+ { 24, "GR" },
+ { 0, NULL }
+};
+static const value_string IndicationMessage_short_vals[] = {
+ { 0, "NSM" },
+ { 1, "FNU" },
+ { 2, "MSDRelease" },
+ { 3, "TCSRelease" },
+ { 4, "OLCConfirm" },
+ { 5, "RCCRelease" },
+ { 6, "MESRelease" },
+ { 7, "RMERelease" },
+ { 8, "RMRelease" },
+ { 9, "MI" },
+ { 10, "JI" },
+ { 11, "H223SI" },
+ { 12, "NATMVCI" },
+ { 13, "UII" },
+ { 14, "H2250MSI" },
+ { 15, "MCLI" },
+ { 16, "CI" },
+ { 17, "VI" },
+ { 18, "FNS" },
+ { 19, "MultilinkIndication" },
+ { 20, "LCRRelease" },
+ { 21, "FCIndication" },
+ { 22, "MMRI" },
+ { 22, "GI" },
+ { 0, NULL }
+};
+static const value_string CommandMessage_short_vals[] = {
+ { 0, "NSM" },
+ { 1, "MLOC" },
+ { 2, "STCS" },
+ { 3, "EC" },
+ { 4, "FCC" },
+ { 5, "ESC" },
+ { 6, "MC" },
+ { 7, "CMC" },
+ { 8, "CC" },
+ { 9, "H223MR" },
+ { 10, "NATMVCC" },
+ { 11, "MMRC" },
+ { 12, "GC" },
+ { 0, NULL }
+};
+
+/* To put the codec type only in COL_INFO when
+ an OLC is read */
+
+char* codec_type = NULL;
+static char standard_oid_str[256];
+static guint32 ipv4_address;
+static guint32 ipv4_port;
+static guint32 rtcp_ipv4_address;
+static guint32 rtcp_ipv4_port;
+static gboolean media_channel;
+static gboolean media_control_channel;
+
+static const value_string RFC_number_vals[] = {
+ { 2190, "RFC 2190 - H.263 Video Streams" },
+ { 2429, "RFC 2429 - 1998 Version of ITU-T Rec. H.263 Video (H.263+)" },
+ { 3267, "RFC 3267 - Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB)" },
+ { 0, NULL }
+};
+/* Initialize the protocol and registered fields */
+int proto_h245 = -1;
+#include "packet-h245-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-h245-ett.c"
+
+#include "packet-h245-fn.c"
+
+
+dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+ reset_h245_packet_info(&(h245_pi));
+ h245_pi.msg_type = H245_OTHER;
+
+ dissect_tpkt_encap(tvb, pinfo, parent_tree, h245_reassembly, MultimediaSystemControlMessage_handle);
+
+ tap_queue_packet(h245_tap, pinfo, &h245_pi);
+}
+dissect_h245_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+ proto_item *it;
+ proto_tree *tr;
+ guint32 offset=0;
+
+
+ if (check_col(pinfo->cinfo, COL_PROTOCOL)){
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.245");
+ }
+
+ it=proto_tree_add_protocol_format(parent_tree, proto_h245, tvb, 0, tvb_length(tvb), "H.245");
+ tr=proto_item_add_subtree(it, ett_h245);
+ dissect_h245_MultimediaSystemControlMessage(tvb, offset, pinfo ,tr, hf_h245_pdu_type);
+}
+
+
+/*--- proto_register_h245 -------------------------------------------*/
+void proto_register_h245(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_h245_pdu_type,
+ { "PDU Type", "h245.pdu_type", FT_UINT32, BASE_DEC,
+ VALS(MultimediaSystemControlMessage_vals), 0, "Type of H.245 PDU", HFILL }},
+#include "packet-h245-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h245,
+#include "packet-h245-ettarr.c"
+ };
+ module_t *h245_module;
+
+ /* Register protocol */
+ proto_h245 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h245, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* From Ronnie Sahlbergs original H245 dissector */
+
+ h245_module = prefs_register_protocol(proto_h245, NULL);
+ prefs_register_bool_preference(h245_module, "reassembly",
+ "Reassemble H.245 messages spanning multiple TCP segments",
+ "Whether the H.245 dissector should reassemble messages spanning multiple TCP segments."
+ " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
+ &h245_reassembly);
+ prefs_register_bool_preference(h245_module, "shorttypes",
+ "Show short message types",
+ "Whether the dissector should show short names or the long names from the standard",
+ &h245_shorttypes);
+ register_dissector("h245dg", dissect_h245_h245, proto_h245);
+ register_dissector("h245", dissect_h245, proto_h245);
+
+ nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", FT_STRING, BASE_NONE);
+ nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", FT_UINT32, BASE_HEX);
+ h245_tap = register_tap("h245");
+
+ register_ber_oid_name("0.0.8.239.1.1","itu-t(0) recommendation(0) h(8) h239(239) generic-capabilities(1) h239ControlCapability(1)");
+ register_ber_oid_name("0.0.8.239.1.2","itu-t(0) recommendation(0) h(8) h239(239) generic-capabilities(1) h239ExtendedVideoCapability(2)");
+ register_ber_oid_name("0.0.8.239.2","itu-t(0) recommendation(0) h(8) h239(239) generic-message(2)");
+ register_ber_oid_name("0.0.8.245.0.3","itu-t(0) recommendation(0) h(8) h245(245) version(0) 3");
+ register_ber_oid_name("0.0.8.245.0.4","itu-t(0) recommendation(0) h(8) h245(245) version(0) 4");
+ register_ber_oid_name("0.0.8.245.0.5","itu-t(0) recommendation(0) h(8) h245(245) version(0) 5");
+ register_ber_oid_name("0.0.8.245.0.6","itu-t(0) recommendation(0) h(8) h245(245) version(0) 6");
+ register_ber_oid_name("0.0.8.245.0.7","itu-t(0) recommendation(0) h(8) h245(245) version(0) 7");
+ register_ber_oid_name("0.0.8.245.0.8","itu-t(0) recommendation(0) h(8) h245(245) version(0) 8");
+ register_ber_oid_name("0.0.8.245.1.0.0","itu-t(0) recommendation(0) h(8) h245(245) generic-capabilities(1) video (0) ISO/IEC 14496-2 (0)= MPEG-4 video");
+ register_ber_oid_name("0.0.8.245.1.1.0","itu-t(0) recommendation(0) h(8) h245(245) generic-capabilities(1) audio (1) ISO/IEC 14496-3 (0)= MPEG-4 audio");
+ register_ber_oid_name("0.0.8.245.1.1.1","itu-t(0) recommendation(0) h(8) h245(245) generic-capabilities(1) audio(1) amr(1)");
+
+ register_ber_oid_name("0.0.8.241.0.0.1","itu-t(0) recommendation(0) h(8) h241(241) specificVideoCodecCapabilities(0) h264(0) generic-capabilities(1)");
+
+
+}
+
+
+/*--- proto_reg_handoff_h245 ---------------------------------------*/
+void proto_reg_handoff_h245(void) {
+ rtp_handle = find_dissector("rtp");
+ rtcp_handle = find_dissector("rtcp");
+
+ h245_handle=create_dissector_handle(dissect_h245, proto_h245);
+ dissector_add_handle("tcp.port", h245_handle);
+ MultimediaSystemControlMessage_handle=create_dissector_handle(dissect_h245_h245, proto_h245);
+ dissector_add_handle("udp.port", MultimediaSystemControlMessage_handle);
+}
+
+static void reset_h245_packet_info(h245_packet_info *pi)
+{
+ if(pi == NULL) {
+ return;
+ }
+
+ pi->msg_type = H245_OTHER;
+}
+
diff --git a/asn1/h245/packet-h245-template.h b/asn1/h245/packet-h245-template.h
new file mode 100644
index 0000000000..3dff3f9132
--- /dev/null
+++ b/asn1/h245/packet-h245-template.h
@@ -0,0 +1,55 @@
+/* packet-h245.h
+ * Routines for h245 packet dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ *
+ * $Id: packet-h245-template.h 12203 2004-10-05 09:18:55Z guy $
+ *
+ * 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.
+ */
+
+#ifndef PACKET_H245_H
+#define PACKET_H245_H
+typedef enum _h245_msg_type {
+ H245_TermCapSet,
+ H245_TermCapSetAck,
+ H245_TermCapSetRjc,
+ H245_TermCapSetRls,
+ H245_OpenLogChn,
+ H245_OpenLogChnCnf,
+ H245_OpenLogChnAck,
+ H245_OpenLogChnRjc,
+ H245_CloseLogChn,
+ H245_CloseLogChnAck,
+ H245_MastSlvDet,
+ H245_MastSlvDetAck,
+ H245_MastSlvDetRjc,
+ H245_MastSlvDetRls,
+ H245_OTHER
+} h245_msg_type;
+
+typedef struct _h245_packet_info {
+ h245_msg_type msg_type; /* type of message */
+} h245_packet_info;
+
+
+#include "packet-h245-exp.h"*/
+
+#endif /* PACKET_H245_H */
+
+