diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-01-02 21:58:45 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-01-02 21:58:45 +0000 |
commit | 0a271658af8490f22bbc33a6513cb5a35d9b6bc2 (patch) | |
tree | b8d85e2e898907c07433873f2f3fc10b18b6ce15 | |
parent | 09271f1a19ef4799d4ce401dd0cc9bc59f69995d (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.cnf | 6 | ||||
-rw-r--r-- | asn1/h245/h245.asn | 3093 | ||||
-rw-r--r-- | asn1/h245/h245.cnf | 644 | ||||
-rw-r--r-- | asn1/h245/packet-h245-template.c | 302 | ||||
-rw-r--r-- | asn1/h245/packet-h245-template.h | 55 |
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 */ + + |