From: Patrick McHardy <kaber@trash.net>
To: davem@davemloft.net
Cc: netfilter-devel@lists.netfilter.org, Patrick McHardy <kaber@trash.net>
Subject: [NETFILTER 04/12]: H.323 helper: move some function prototypes to ip_conntrack_h323.h
Date: Thu, 6 Apr 2006 12:04:58 +0200 (MEST) [thread overview]
Message-ID: <20060406100458.17409.70510.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20060406100452.17409.37120.sendpatchset@localhost.localdomain>
[NETFILTER]: H.323 helper: move some function prototypes to ip_conntrack_h323.h
Move prototypes of NAT callbacks to ip_conntrack_h323.h. Because the use of
typedefs as arguments, some header files need to be moved as well.
Signed-off-by: Jing Min Zhao <zhaojingmin@users.sourceforge.net>
Signed-off-by: Patrick McHardy <kaber@trash.net>
---
commit 02fe897a46c3da14bab9fafeaa99692da6ae7fc1
tree 962f387c169fb4fbb96ab7f78cabfcde4258b810
parent 7e7dcfedeec88f2da01af1261c4ecc5a27a9686f
author Jing Min Zhao <zhaojingmin@users.sourceforge.net> Thu, 06 Apr 2006 11:40:43 +0200
committer Patrick McHardy <kaber@trash.net> Thu, 06 Apr 2006 11:40:43 +0200
include/linux/netfilter_ipv4/ip_conntrack_h323.h | 52 +
.../netfilter_ipv4/ip_conntrack_helper_h323_asn1.h | 98 ++
.../ip_conntrack_helper_h323_types.h | 938 +++++++++++++++++++++++
net/ipv4/netfilter/ip_conntrack_helper_h323.c | 2
net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c | 2
net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.h | 98 --
.../netfilter/ip_conntrack_helper_h323_types.h | 938 -----------------------
net/ipv4/netfilter/ip_nat_helper_h323.c | 53 -
8 files changed, 1089 insertions(+), 1092 deletions(-)
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_h323.h b/include/linux/netfilter_ipv4/ip_conntrack_h323.h
index 0987cea..eace86b 100644
--- a/include/linux/netfilter_ipv4/ip_conntrack_h323.h
+++ b/include/linux/netfilter_ipv4/ip_conntrack_h323.h
@@ -3,6 +3,8 @@
#ifdef __KERNEL__
+#include <linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h>
+
#define RAS_PORT 1719
#define Q931_PORT 1720
#define H323_RTP_CHANNEL_MAX 4 /* Audio, video, FAX and other */
@@ -25,6 +27,56 @@ struct ip_ct_h323_master {
};
};
+struct ip_conntrack_expect;
+
+extern int get_h225_addr(unsigned char *data, TransportAddress * addr,
+ u_int32_t * ip, u_int16_t * port);
+extern void ip_conntrack_h245_expect(struct ip_conntrack *new,
+ struct ip_conntrack_expect *this);
+extern void ip_conntrack_q931_expect(struct ip_conntrack *new,
+ struct ip_conntrack_expect *this);
+extern int (*set_h245_addr_hook) (struct sk_buff ** pskb,
+ unsigned char **data, int dataoff,
+ H245_TransportAddress * addr,
+ u_int32_t ip, u_int16_t port);
+extern int (*set_h225_addr_hook) (struct sk_buff ** pskb,
+ unsigned char **data, int dataoff,
+ TransportAddress * addr,
+ u_int32_t ip, u_int16_t port);
+extern int (*set_sig_addr_hook) (struct sk_buff ** pskb,
+ struct ip_conntrack * ct,
+ enum ip_conntrack_info ctinfo,
+ unsigned char **data,
+ TransportAddress * addr, int count);
+extern int (*set_ras_addr_hook) (struct sk_buff ** pskb,
+ struct ip_conntrack * ct,
+ enum ip_conntrack_info ctinfo,
+ unsigned char **data,
+ TransportAddress * addr, int count);
+extern int (*nat_rtp_rtcp_hook) (struct sk_buff ** pskb,
+ struct ip_conntrack * ct,
+ enum ip_conntrack_info ctinfo,
+ unsigned char **data, int dataoff,
+ H245_TransportAddress * addr,
+ u_int16_t port, u_int16_t rtp_port,
+ struct ip_conntrack_expect * rtp_exp,
+ struct ip_conntrack_expect * rtcp_exp);
+extern int (*nat_t120_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
+ enum ip_conntrack_info ctinfo,
+ unsigned char **data, int dataoff,
+ H245_TransportAddress * addr, u_int16_t port,
+ struct ip_conntrack_expect * exp);
+extern int (*nat_h245_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
+ enum ip_conntrack_info ctinfo,
+ unsigned char **data, int dataoff,
+ TransportAddress * addr, u_int16_t port,
+ struct ip_conntrack_expect * exp);
+extern int (*nat_q931_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
+ enum ip_conntrack_info ctinfo,
+ unsigned char **data, TransportAddress * addr,
+ int idx, u_int16_t port,
+ struct ip_conntrack_expect * exp);
+
#endif
#endif
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h
new file mode 100644
index 0000000..2556b84
--- /dev/null
+++ b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+ * ip_conntrack_helper_h323_asn1.h - BER and PER decoding library for H.323
+ * conntrack/NAT module.
+ *
+ * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@hotmail.com>
+ *
+ * This source code is licensed under General Public License version 2.
+ *
+ *
+ * This library is based on H.225 version 4, H.235 version 2 and H.245
+ * version 7. It is extremely optimized to decode only the absolutely
+ * necessary objects in a signal for Linux kernel NAT module use, so don't
+ * expect it to be a full ASN.1 library.
+ *
+ * Features:
+ *
+ * 1. Small. The total size of code plus data is less than 20 KB (IA32).
+ * 2. Fast. Decoding Netmeeting's Setup signal 1 million times on a PIII 866
+ * takes only 3.9 seconds.
+ * 3. No memory allocation. It uses a static object. No need to initialize or
+ * cleanup.
+ * 4. Thread safe.
+ * 5. Support embedded architectures that has no misaligned memory access
+ * support.
+ *
+ * Limitations:
+ *
+ * 1. At most 30 faststart entries. Actually this is limited by ethernet's MTU.
+ * If a Setup signal contains more than 30 faststart, the packet size will
+ * very likely exceed the MTU size, then the TPKT will be fragmented. I
+ * don't know how to handle this in a Netfilter module. Anybody can help?
+ * Although I think 30 is enough for most of the cases.
+ * 2. IPv4 addresses only.
+ *
+ ****************************************************************************/
+
+#ifndef _IP_CONNTRACK_HELPER_H323_ASN1_H_
+#define _IP_CONNTRACK_HELPER_H323_ASN1_H_
+
+/*****************************************************************************
+ * H.323 Types
+ ****************************************************************************/
+#include "ip_conntrack_helper_h323_types.h"
+
+typedef struct {
+ enum {
+ Q931_NationalEscape = 0x00,
+ Q931_Alerting = 0x01,
+ Q931_CallProceeding = 0x02,
+ Q931_Connect = 0x07,
+ Q931_ConnectAck = 0x0F,
+ Q931_Progress = 0x03,
+ Q931_Setup = 0x05,
+ Q931_SetupAck = 0x0D,
+ Q931_Resume = 0x26,
+ Q931_ResumeAck = 0x2E,
+ Q931_ResumeReject = 0x22,
+ Q931_Suspend = 0x25,
+ Q931_SuspendAck = 0x2D,
+ Q931_SuspendReject = 0x21,
+ Q931_UserInformation = 0x20,
+ Q931_Disconnect = 0x45,
+ Q931_Release = 0x4D,
+ Q931_ReleaseComplete = 0x5A,
+ Q931_Restart = 0x46,
+ Q931_RestartAck = 0x4E,
+ Q931_Segment = 0x60,
+ Q931_CongestionCtrl = 0x79,
+ Q931_Information = 0x7B,
+ Q931_Notify = 0x6E,
+ Q931_Status = 0x7D,
+ Q931_StatusEnquiry = 0x75,
+ Q931_Facility = 0x62
+ } MessageType;
+ H323_UserInformation UUIE;
+} Q931;
+
+/*****************************************************************************
+ * Decode Functions Return Codes
+ ****************************************************************************/
+
+#define H323_ERROR_NONE 0 /* Decoded successfully */
+#define H323_ERROR_STOP 1 /* Decoding stopped, not really an error */
+#define H323_ERROR_BOUND -1
+#define H323_ERROR_RANGE -2
+
+
+/*****************************************************************************
+ * Decode Functions
+ ****************************************************************************/
+
+int DecodeRasMessage(unsigned char *buf, size_t sz, RasMessage * ras);
+int DecodeQ931(unsigned char *buf, size_t sz, Q931 * q931);
+int DecodeMultimediaSystemControlMessage(unsigned char *buf, size_t sz,
+ MultimediaSystemControlMessage *
+ mscm);
+
+#endif
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h
new file mode 100644
index 0000000..cc98f7a
--- /dev/null
+++ b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_types.h
@@ -0,0 +1,938 @@
+/* Generated by Jing Min Zhao's ASN.1 parser, Mar 15 2006
+ *
+ * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
+ *
+ * This source code is licensed under General Public License version 2.
+ */
+
+typedef struct TransportAddress_ipAddress { /* SEQUENCE */
+ int options; /* No use */
+ unsigned ip;
+} TransportAddress_ipAddress;
+
+typedef struct TransportAddress { /* CHOICE */
+ enum {
+ eTransportAddress_ipAddress,
+ eTransportAddress_ipSourceRoute,
+ eTransportAddress_ipxAddress,
+ eTransportAddress_ip6Address,
+ eTransportAddress_netBios,
+ eTransportAddress_nsap,
+ eTransportAddress_nonStandardAddress,
+ } choice;
+ union {
+ TransportAddress_ipAddress ipAddress;
+ };
+} TransportAddress;
+
+typedef struct DataProtocolCapability { /* CHOICE */
+ enum {
+ eDataProtocolCapability_nonStandard,
+ eDataProtocolCapability_v14buffered,
+ eDataProtocolCapability_v42lapm,
+ eDataProtocolCapability_hdlcFrameTunnelling,
+ eDataProtocolCapability_h310SeparateVCStack,
+ eDataProtocolCapability_h310SingleVCStack,
+ eDataProtocolCapability_transparent,
+ eDataProtocolCapability_segmentationAndReassembly,
+ eDataProtocolCapability_hdlcFrameTunnelingwSAR,
+ eDataProtocolCapability_v120,
+ eDataProtocolCapability_separateLANStack,
+ eDataProtocolCapability_v76wCompression,
+ eDataProtocolCapability_tcp,
+ eDataProtocolCapability_udp,
+ } choice;
+} DataProtocolCapability;
+
+typedef struct DataApplicationCapability_application { /* CHOICE */
+ enum {
+ eDataApplicationCapability_application_nonStandard,
+ eDataApplicationCapability_application_t120,
+ eDataApplicationCapability_application_dsm_cc,
+ eDataApplicationCapability_application_userData,
+ eDataApplicationCapability_application_t84,
+ eDataApplicationCapability_application_t434,
+ eDataApplicationCapability_application_h224,
+ eDataApplicationCapability_application_nlpid,
+ eDataApplicationCapability_application_dsvdControl,
+ eDataApplicationCapability_application_h222DataPartitioning,
+ eDataApplicationCapability_application_t30fax,
+ eDataApplicationCapability_application_t140,
+ eDataApplicationCapability_application_t38fax,
+ eDataApplicationCapability_application_genericDataCapability,
+ } choice;
+ union {
+ DataProtocolCapability t120;
+ };
+} DataApplicationCapability_application;
+
+typedef struct DataApplicationCapability { /* SEQUENCE */
+ int options; /* No use */
+ DataApplicationCapability_application application;
+} DataApplicationCapability;
+
+typedef struct DataType { /* CHOICE */
+ enum {
+ eDataType_nonStandard,
+ eDataType_nullData,
+ eDataType_videoData,
+ eDataType_audioData,
+ eDataType_data,
+ eDataType_encryptionData,
+ eDataType_h235Control,
+ eDataType_h235Media,
+ eDataType_multiplexedStream,
+ } choice;
+ union {
+ DataApplicationCapability data;
+ };
+} DataType;
+
+typedef struct UnicastAddress_iPAddress { /* SEQUENCE */
+ int options; /* No use */
+ unsigned network;
+} UnicastAddress_iPAddress;
+
+typedef struct UnicastAddress { /* CHOICE */
+ enum {
+ eUnicastAddress_iPAddress,
+ eUnicastAddress_iPXAddress,
+ eUnicastAddress_iP6Address,
+ eUnicastAddress_netBios,
+ eUnicastAddress_iPSourceRouteAddress,
+ eUnicastAddress_nsap,
+ eUnicastAddress_nonStandardAddress,
+ } choice;
+ union {
+ UnicastAddress_iPAddress iPAddress;
+ };
+} UnicastAddress;
+
+typedef struct H245_TransportAddress { /* CHOICE */
+ enum {
+ eH245_TransportAddress_unicastAddress,
+ eH245_TransportAddress_multicastAddress,
+ } choice;
+ union {
+ UnicastAddress unicastAddress;
+ };
+} H245_TransportAddress;
+
+typedef struct H2250LogicalChannelParameters { /* SEQUENCE */
+ enum {
+ eH2250LogicalChannelParameters_nonStandard = (1 << 31),
+ eH2250LogicalChannelParameters_associatedSessionID =
+ (1 << 30),
+ eH2250LogicalChannelParameters_mediaChannel = (1 << 29),
+ eH2250LogicalChannelParameters_mediaGuaranteedDelivery =
+ (1 << 28),
+ eH2250LogicalChannelParameters_mediaControlChannel =
+ (1 << 27),
+ eH2250LogicalChannelParameters_mediaControlGuaranteedDelivery
+ = (1 << 26),
+ eH2250LogicalChannelParameters_silenceSuppression = (1 << 25),
+ eH2250LogicalChannelParameters_destination = (1 << 24),
+ eH2250LogicalChannelParameters_dynamicRTPPayloadType =
+ (1 << 23),
+ eH2250LogicalChannelParameters_mediaPacketization = (1 << 22),
+ eH2250LogicalChannelParameters_transportCapability =
+ (1 << 21),
+ eH2250LogicalChannelParameters_redundancyEncoding = (1 << 20),
+ eH2250LogicalChannelParameters_source = (1 << 19),
+ } options;
+ H245_TransportAddress mediaChannel;
+ H245_TransportAddress mediaControlChannel;
+} H2250LogicalChannelParameters;
+
+typedef struct OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters { /* CHOICE */
+ enum {
+ eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
+ eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
+ eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
+ eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
+ eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_none,
+ } choice;
+ union {
+ H2250LogicalChannelParameters h2250LogicalChannelParameters;
+ };
+} OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters;
+
+typedef struct OpenLogicalChannel_forwardLogicalChannelParameters { /* SEQUENCE */
+ enum {
+ eOpenLogicalChannel_forwardLogicalChannelParameters_portNumber
+ = (1 << 31),
+ eOpenLogicalChannel_forwardLogicalChannelParameters_forwardLogicalChannelDependency
+ = (1 << 30),
+ eOpenLogicalChannel_forwardLogicalChannelParameters_replacementFor
+ = (1 << 29),
+ } options;
+ DataType dataType;
+ OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters
+ multiplexParameters;
+} OpenLogicalChannel_forwardLogicalChannelParameters;
+
+typedef struct OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
+ enum {
+ eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
+ eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
+ eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
+ } choice;
+ union {
+ H2250LogicalChannelParameters h2250LogicalChannelParameters;
+ };
+} OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters;
+
+typedef struct OpenLogicalChannel_reverseLogicalChannelParameters { /* SEQUENCE */
+ enum {
+ eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
+ = (1 << 31),
+ eOpenLogicalChannel_reverseLogicalChannelParameters_reverseLogicalChannelDependency
+ = (1 << 30),
+ eOpenLogicalChannel_reverseLogicalChannelParameters_replacementFor
+ = (1 << 29),
+ } options;
+ OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
+ multiplexParameters;
+} OpenLogicalChannel_reverseLogicalChannelParameters;
+
+typedef struct NetworkAccessParameters_networkAddress { /* CHOICE */
+ enum {
+ eNetworkAccessParameters_networkAddress_q2931Address,
+ eNetworkAccessParameters_networkAddress_e164Address,
+ eNetworkAccessParameters_networkAddress_localAreaAddress,
+ } choice;
+ union {
+ H245_TransportAddress localAreaAddress;
+ };
+} NetworkAccessParameters_networkAddress;
+
+typedef struct NetworkAccessParameters { /* SEQUENCE */
+ enum {
+ eNetworkAccessParameters_distribution = (1 << 31),
+ eNetworkAccessParameters_externalReference = (1 << 30),
+ eNetworkAccessParameters_t120SetupProcedure = (1 << 29),
+ } options;
+ NetworkAccessParameters_networkAddress networkAddress;
+} NetworkAccessParameters;
+
+typedef struct OpenLogicalChannel { /* SEQUENCE */
+ enum {
+ eOpenLogicalChannel_reverseLogicalChannelParameters =
+ (1 << 31),
+ eOpenLogicalChannel_separateStack = (1 << 30),
+ eOpenLogicalChannel_encryptionSync = (1 << 29),
+ } options;
+ OpenLogicalChannel_forwardLogicalChannelParameters
+ forwardLogicalChannelParameters;
+ OpenLogicalChannel_reverseLogicalChannelParameters
+ reverseLogicalChannelParameters;
+ NetworkAccessParameters separateStack;
+} OpenLogicalChannel;
+
+typedef struct Setup_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} Setup_UUIE_fastStart;
+
+typedef struct Setup_UUIE { /* SEQUENCE */
+ enum {
+ eSetup_UUIE_h245Address = (1 << 31),
+ eSetup_UUIE_sourceAddress = (1 << 30),
+ eSetup_UUIE_destinationAddress = (1 << 29),
+ eSetup_UUIE_destCallSignalAddress = (1 << 28),
+ eSetup_UUIE_destExtraCallInfo = (1 << 27),
+ eSetup_UUIE_destExtraCRV = (1 << 26),
+ eSetup_UUIE_callServices = (1 << 25),
+ eSetup_UUIE_sourceCallSignalAddress = (1 << 24),
+ eSetup_UUIE_remoteExtensionAddress = (1 << 23),
+ eSetup_UUIE_callIdentifier = (1 << 22),
+ eSetup_UUIE_h245SecurityCapability = (1 << 21),
+ eSetup_UUIE_tokens = (1 << 20),
+ eSetup_UUIE_cryptoTokens = (1 << 19),
+ eSetup_UUIE_fastStart = (1 << 18),
+ eSetup_UUIE_mediaWaitForConnect = (1 << 17),
+ eSetup_UUIE_canOverlapSend = (1 << 16),
+ eSetup_UUIE_endpointIdentifier = (1 << 15),
+ eSetup_UUIE_multipleCalls = (1 << 14),
+ eSetup_UUIE_maintainConnection = (1 << 13),
+ eSetup_UUIE_connectionParameters = (1 << 12),
+ eSetup_UUIE_language = (1 << 11),
+ eSetup_UUIE_presentationIndicator = (1 << 10),
+ eSetup_UUIE_screeningIndicator = (1 << 9),
+ eSetup_UUIE_serviceControl = (1 << 8),
+ eSetup_UUIE_symmetricOperationRequired = (1 << 7),
+ eSetup_UUIE_capacity = (1 << 6),
+ eSetup_UUIE_circuitInfo = (1 << 5),
+ eSetup_UUIE_desiredProtocols = (1 << 4),
+ eSetup_UUIE_neededFeatures = (1 << 3),
+ eSetup_UUIE_desiredFeatures = (1 << 2),
+ eSetup_UUIE_supportedFeatures = (1 << 1),
+ eSetup_UUIE_parallelH245Control = (1 << 0),
+ } options;
+ TransportAddress h245Address;
+ TransportAddress destCallSignalAddress;
+ TransportAddress sourceCallSignalAddress;
+ Setup_UUIE_fastStart fastStart;
+} Setup_UUIE;
+
+typedef struct CallProceeding_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} CallProceeding_UUIE_fastStart;
+
+typedef struct CallProceeding_UUIE { /* SEQUENCE */
+ enum {
+ eCallProceeding_UUIE_h245Address = (1 << 31),
+ eCallProceeding_UUIE_callIdentifier = (1 << 30),
+ eCallProceeding_UUIE_h245SecurityMode = (1 << 29),
+ eCallProceeding_UUIE_tokens = (1 << 28),
+ eCallProceeding_UUIE_cryptoTokens = (1 << 27),
+ eCallProceeding_UUIE_fastStart = (1 << 26),
+ eCallProceeding_UUIE_multipleCalls = (1 << 25),
+ eCallProceeding_UUIE_maintainConnection = (1 << 24),
+ eCallProceeding_UUIE_fastConnectRefused = (1 << 23),
+ eCallProceeding_UUIE_featureSet = (1 << 22),
+ } options;
+ TransportAddress h245Address;
+ CallProceeding_UUIE_fastStart fastStart;
+} CallProceeding_UUIE;
+
+typedef struct Connect_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} Connect_UUIE_fastStart;
+
+typedef struct Connect_UUIE { /* SEQUENCE */
+ enum {
+ eConnect_UUIE_h245Address = (1 << 31),
+ eConnect_UUIE_callIdentifier = (1 << 30),
+ eConnect_UUIE_h245SecurityMode = (1 << 29),
+ eConnect_UUIE_tokens = (1 << 28),
+ eConnect_UUIE_cryptoTokens = (1 << 27),
+ eConnect_UUIE_fastStart = (1 << 26),
+ eConnect_UUIE_multipleCalls = (1 << 25),
+ eConnect_UUIE_maintainConnection = (1 << 24),
+ eConnect_UUIE_language = (1 << 23),
+ eConnect_UUIE_connectedAddress = (1 << 22),
+ eConnect_UUIE_presentationIndicator = (1 << 21),
+ eConnect_UUIE_screeningIndicator = (1 << 20),
+ eConnect_UUIE_fastConnectRefused = (1 << 19),
+ eConnect_UUIE_serviceControl = (1 << 18),
+ eConnect_UUIE_capacity = (1 << 17),
+ eConnect_UUIE_featureSet = (1 << 16),
+ } options;
+ TransportAddress h245Address;
+ Connect_UUIE_fastStart fastStart;
+} Connect_UUIE;
+
+typedef struct Alerting_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} Alerting_UUIE_fastStart;
+
+typedef struct Alerting_UUIE { /* SEQUENCE */
+ enum {
+ eAlerting_UUIE_h245Address = (1 << 31),
+ eAlerting_UUIE_callIdentifier = (1 << 30),
+ eAlerting_UUIE_h245SecurityMode = (1 << 29),
+ eAlerting_UUIE_tokens = (1 << 28),
+ eAlerting_UUIE_cryptoTokens = (1 << 27),
+ eAlerting_UUIE_fastStart = (1 << 26),
+ eAlerting_UUIE_multipleCalls = (1 << 25),
+ eAlerting_UUIE_maintainConnection = (1 << 24),
+ eAlerting_UUIE_alertingAddress = (1 << 23),
+ eAlerting_UUIE_presentationIndicator = (1 << 22),
+ eAlerting_UUIE_screeningIndicator = (1 << 21),
+ eAlerting_UUIE_fastConnectRefused = (1 << 20),
+ eAlerting_UUIE_serviceControl = (1 << 19),
+ eAlerting_UUIE_capacity = (1 << 18),
+ eAlerting_UUIE_featureSet = (1 << 17),
+ } options;
+ TransportAddress h245Address;
+ Alerting_UUIE_fastStart fastStart;
+} Alerting_UUIE;
+
+typedef struct Information_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} Information_UUIE_fastStart;
+
+typedef struct Information_UUIE { /* SEQUENCE */
+ enum {
+ eInformation_UUIE_callIdentifier = (1 << 31),
+ eInformation_UUIE_tokens = (1 << 30),
+ eInformation_UUIE_cryptoTokens = (1 << 29),
+ eInformation_UUIE_fastStart = (1 << 28),
+ eInformation_UUIE_fastConnectRefused = (1 << 27),
+ eInformation_UUIE_circuitInfo = (1 << 26),
+ } options;
+ Information_UUIE_fastStart fastStart;
+} Information_UUIE;
+
+typedef struct FacilityReason { /* CHOICE */
+ enum {
+ eFacilityReason_routeCallToGatekeeper,
+ eFacilityReason_callForwarded,
+ eFacilityReason_routeCallToMC,
+ eFacilityReason_undefinedReason,
+ eFacilityReason_conferenceListChoice,
+ eFacilityReason_startH245,
+ eFacilityReason_noH245,
+ eFacilityReason_newTokens,
+ eFacilityReason_featureSetUpdate,
+ eFacilityReason_forwardedElements,
+ eFacilityReason_transportedInformation,
+ } choice;
+} FacilityReason;
+
+typedef struct Facility_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} Facility_UUIE_fastStart;
+
+typedef struct Facility_UUIE { /* SEQUENCE */
+ enum {
+ eFacility_UUIE_alternativeAddress = (1 << 31),
+ eFacility_UUIE_alternativeAliasAddress = (1 << 30),
+ eFacility_UUIE_conferenceID = (1 << 29),
+ eFacility_UUIE_callIdentifier = (1 << 28),
+ eFacility_UUIE_destExtraCallInfo = (1 << 27),
+ eFacility_UUIE_remoteExtensionAddress = (1 << 26),
+ eFacility_UUIE_tokens = (1 << 25),
+ eFacility_UUIE_cryptoTokens = (1 << 24),
+ eFacility_UUIE_conferences = (1 << 23),
+ eFacility_UUIE_h245Address = (1 << 22),
+ eFacility_UUIE_fastStart = (1 << 21),
+ eFacility_UUIE_multipleCalls = (1 << 20),
+ eFacility_UUIE_maintainConnection = (1 << 19),
+ eFacility_UUIE_fastConnectRefused = (1 << 18),
+ eFacility_UUIE_serviceControl = (1 << 17),
+ eFacility_UUIE_circuitInfo = (1 << 16),
+ eFacility_UUIE_featureSet = (1 << 15),
+ eFacility_UUIE_destinationInfo = (1 << 14),
+ eFacility_UUIE_h245SecurityMode = (1 << 13),
+ } options;
+ FacilityReason reason;
+ TransportAddress h245Address;
+ Facility_UUIE_fastStart fastStart;
+} Facility_UUIE;
+
+typedef struct Progress_UUIE_fastStart { /* SEQUENCE OF */
+ int count;
+ OpenLogicalChannel item[30];
+} Progress_UUIE_fastStart;
+
+typedef struct Progress_UUIE { /* SEQUENCE */
+ enum {
+ eProgress_UUIE_h245Address = (1 << 31),
+ eProgress_UUIE_h245SecurityMode = (1 << 30),
+ eProgress_UUIE_tokens = (1 << 29),
+ eProgress_UUIE_cryptoTokens = (1 << 28),
+ eProgress_UUIE_fastStart = (1 << 27),
+ eProgress_UUIE_multipleCalls = (1 << 26),
+ eProgress_UUIE_maintainConnection = (1 << 25),
+ eProgress_UUIE_fastConnectRefused = (1 << 24),
+ } options;
+ TransportAddress h245Address;
+ Progress_UUIE_fastStart fastStart;
+} Progress_UUIE;
+
+typedef struct H323_UU_PDU_h323_message_body { /* CHOICE */
+ enum {
+ eH323_UU_PDU_h323_message_body_setup,
+ eH323_UU_PDU_h323_message_body_callProceeding,
+ eH323_UU_PDU_h323_message_body_connect,
+ eH323_UU_PDU_h323_message_body_alerting,
+ eH323_UU_PDU_h323_message_body_information,
+ eH323_UU_PDU_h323_message_body_releaseComplete,
+ eH323_UU_PDU_h323_message_body_facility,
+ eH323_UU_PDU_h323_message_body_progress,
+ eH323_UU_PDU_h323_message_body_empty,
+ eH323_UU_PDU_h323_message_body_status,
+ eH323_UU_PDU_h323_message_body_statusInquiry,
+ eH323_UU_PDU_h323_message_body_setupAcknowledge,
+ eH323_UU_PDU_h323_message_body_notify,
+ } choice;
+ union {
+ Setup_UUIE setup;
+ CallProceeding_UUIE callProceeding;
+ Connect_UUIE connect;
+ Alerting_UUIE alerting;
+ Information_UUIE information;
+ Facility_UUIE facility;
+ Progress_UUIE progress;
+ };
+} H323_UU_PDU_h323_message_body;
+
+typedef struct RequestMessage { /* CHOICE */
+ enum {
+ eRequestMessage_nonStandard,
+ eRequestMessage_masterSlaveDetermination,
+ eRequestMessage_terminalCapabilitySet,
+ eRequestMessage_openLogicalChannel,
+ eRequestMessage_closeLogicalChannel,
+ eRequestMessage_requestChannelClose,
+ eRequestMessage_multiplexEntrySend,
+ eRequestMessage_requestMultiplexEntry,
+ eRequestMessage_requestMode,
+ eRequestMessage_roundTripDelayRequest,
+ eRequestMessage_maintenanceLoopRequest,
+ eRequestMessage_communicationModeRequest,
+ eRequestMessage_conferenceRequest,
+ eRequestMessage_multilinkRequest,
+ eRequestMessage_logicalChannelRateRequest,
+ } choice;
+ union {
+ OpenLogicalChannel openLogicalChannel;
+ };
+} RequestMessage;
+
+typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
+ enum {
+ eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
+ eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
+ } choice;
+ union {
+ H2250LogicalChannelParameters h2250LogicalChannelParameters;
+ };
+} OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters;
+
+typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters { /* SEQUENCE */
+ enum {
+ eOpenLogicalChannelAck_reverseLogicalChannelParameters_portNumber
+ = (1 << 31),
+ eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
+ = (1 << 30),
+ eOpenLogicalChannelAck_reverseLogicalChannelParameters_replacementFor
+ = (1 << 29),
+ } options;
+ OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
+ multiplexParameters;
+} OpenLogicalChannelAck_reverseLogicalChannelParameters;
+
+typedef struct H2250LogicalChannelAckParameters { /* SEQUENCE */
+ enum {
+ eH2250LogicalChannelAckParameters_nonStandard = (1 << 31),
+ eH2250LogicalChannelAckParameters_sessionID = (1 << 30),
+ eH2250LogicalChannelAckParameters_mediaChannel = (1 << 29),
+ eH2250LogicalChannelAckParameters_mediaControlChannel =
+ (1 << 28),
+ eH2250LogicalChannelAckParameters_dynamicRTPPayloadType =
+ (1 << 27),
+ eH2250LogicalChannelAckParameters_flowControlToZero =
+ (1 << 26),
+ eH2250LogicalChannelAckParameters_portNumber = (1 << 25),
+ } options;
+ H245_TransportAddress mediaChannel;
+ H245_TransportAddress mediaControlChannel;
+} H2250LogicalChannelAckParameters;
+
+typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters { /* CHOICE */
+ enum {
+ eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters,
+ } choice;
+ union {
+ H2250LogicalChannelAckParameters
+ h2250LogicalChannelAckParameters;
+ };
+} OpenLogicalChannelAck_forwardMultiplexAckParameters;
+
+typedef struct OpenLogicalChannelAck { /* SEQUENCE */
+ enum {
+ eOpenLogicalChannelAck_reverseLogicalChannelParameters =
+ (1 << 31),
+ eOpenLogicalChannelAck_separateStack = (1 << 30),
+ eOpenLogicalChannelAck_forwardMultiplexAckParameters =
+ (1 << 29),
+ eOpenLogicalChannelAck_encryptionSync = (1 << 28),
+ } options;
+ OpenLogicalChannelAck_reverseLogicalChannelParameters
+ reverseLogicalChannelParameters;
+ OpenLogicalChannelAck_forwardMultiplexAckParameters
+ forwardMultiplexAckParameters;
+} OpenLogicalChannelAck;
+
+typedef struct ResponseMessage { /* CHOICE */
+ enum {
+ eResponseMessage_nonStandard,
+ eResponseMessage_masterSlaveDeterminationAck,
+ eResponseMessage_masterSlaveDeterminationReject,
+ eResponseMessage_terminalCapabilitySetAck,
+ eResponseMessage_terminalCapabilitySetReject,
+ eResponseMessage_openLogicalChannelAck,
+ eResponseMessage_openLogicalChannelReject,
+ eResponseMessage_closeLogicalChannelAck,
+ eResponseMessage_requestChannelCloseAck,
+ eResponseMessage_requestChannelCloseReject,
+ eResponseMessage_multiplexEntrySendAck,
+ eResponseMessage_multiplexEntrySendReject,
+ eResponseMessage_requestMultiplexEntryAck,
+ eResponseMessage_requestMultiplexEntryReject,
+ eResponseMessage_requestModeAck,
+ eResponseMessage_requestModeReject,
+ eResponseMessage_roundTripDelayResponse,
+ eResponseMessage_maintenanceLoopAck,
+ eResponseMessage_maintenanceLoopReject,
+ eResponseMessage_communicationModeResponse,
+ eResponseMessage_conferenceResponse,
+ eResponseMessage_multilinkResponse,
+ eResponseMessage_logicalChannelRateAcknowledge,
+ eResponseMessage_logicalChannelRateReject,
+ } choice;
+ union {
+ OpenLogicalChannelAck openLogicalChannelAck;
+ };
+} ResponseMessage;
+
+typedef struct MultimediaSystemControlMessage { /* CHOICE */
+ enum {
+ eMultimediaSystemControlMessage_request,
+ eMultimediaSystemControlMessage_response,
+ eMultimediaSystemControlMessage_command,
+ eMultimediaSystemControlMessage_indication,
+ } choice;
+ union {
+ RequestMessage request;
+ ResponseMessage response;
+ };
+} MultimediaSystemControlMessage;
+
+typedef struct H323_UU_PDU_h245Control { /* SEQUENCE OF */
+ int count;
+ MultimediaSystemControlMessage item[4];
+} H323_UU_PDU_h245Control;
+
+typedef struct H323_UU_PDU { /* SEQUENCE */
+ enum {
+ eH323_UU_PDU_nonStandardData = (1 << 31),
+ eH323_UU_PDU_h4501SupplementaryService = (1 << 30),
+ eH323_UU_PDU_h245Tunneling = (1 << 29),
+ eH323_UU_PDU_h245Control = (1 << 28),
+ eH323_UU_PDU_nonStandardControl = (1 << 27),
+ eH323_UU_PDU_callLinkage = (1 << 26),
+ eH323_UU_PDU_tunnelledSignallingMessage = (1 << 25),
+ eH323_UU_PDU_provisionalRespToH245Tunneling = (1 << 24),
+ eH323_UU_PDU_stimulusControl = (1 << 23),
+ eH323_UU_PDU_genericData = (1 << 22),
+ } options;
+ H323_UU_PDU_h323_message_body h323_message_body;
+ H323_UU_PDU_h245Control h245Control;
+} H323_UU_PDU;
+
+typedef struct H323_UserInformation { /* SEQUENCE */
+ enum {
+ eH323_UserInformation_user_data = (1 << 31),
+ } options;
+ H323_UU_PDU h323_uu_pdu;
+} H323_UserInformation;
+
+typedef struct GatekeeperRequest { /* SEQUENCE */
+ enum {
+ eGatekeeperRequest_nonStandardData = (1 << 31),
+ eGatekeeperRequest_gatekeeperIdentifier = (1 << 30),
+ eGatekeeperRequest_callServices = (1 << 29),
+ eGatekeeperRequest_endpointAlias = (1 << 28),
+ eGatekeeperRequest_alternateEndpoints = (1 << 27),
+ eGatekeeperRequest_tokens = (1 << 26),
+ eGatekeeperRequest_cryptoTokens = (1 << 25),
+ eGatekeeperRequest_authenticationCapability = (1 << 24),
+ eGatekeeperRequest_algorithmOIDs = (1 << 23),
+ eGatekeeperRequest_integrity = (1 << 22),
+ eGatekeeperRequest_integrityCheckValue = (1 << 21),
+ eGatekeeperRequest_supportsAltGK = (1 << 20),
+ eGatekeeperRequest_featureSet = (1 << 19),
+ eGatekeeperRequest_genericData = (1 << 18),
+ } options;
+ TransportAddress rasAddress;
+} GatekeeperRequest;
+
+typedef struct GatekeeperConfirm { /* SEQUENCE */
+ enum {
+ eGatekeeperConfirm_nonStandardData = (1 << 31),
+ eGatekeeperConfirm_gatekeeperIdentifier = (1 << 30),
+ eGatekeeperConfirm_alternateGatekeeper = (1 << 29),
+ eGatekeeperConfirm_authenticationMode = (1 << 28),
+ eGatekeeperConfirm_tokens = (1 << 27),
+ eGatekeeperConfirm_cryptoTokens = (1 << 26),
+ eGatekeeperConfirm_algorithmOID = (1 << 25),
+ eGatekeeperConfirm_integrity = (1 << 24),
+ eGatekeeperConfirm_integrityCheckValue = (1 << 23),
+ eGatekeeperConfirm_featureSet = (1 << 22),
+ eGatekeeperConfirm_genericData = (1 << 21),
+ } options;
+ TransportAddress rasAddress;
+} GatekeeperConfirm;
+
+typedef struct RegistrationRequest_callSignalAddress { /* SEQUENCE OF */
+ int count;
+ TransportAddress item[10];
+} RegistrationRequest_callSignalAddress;
+
+typedef struct RegistrationRequest_rasAddress { /* SEQUENCE OF */
+ int count;
+ TransportAddress item[10];
+} RegistrationRequest_rasAddress;
+
+typedef struct RegistrationRequest { /* SEQUENCE */
+ enum {
+ eRegistrationRequest_nonStandardData = (1 << 31),
+ eRegistrationRequest_terminalAlias = (1 << 30),
+ eRegistrationRequest_gatekeeperIdentifier = (1 << 29),
+ eRegistrationRequest_alternateEndpoints = (1 << 28),
+ eRegistrationRequest_timeToLive = (1 << 27),
+ eRegistrationRequest_tokens = (1 << 26),
+ eRegistrationRequest_cryptoTokens = (1 << 25),
+ eRegistrationRequest_integrityCheckValue = (1 << 24),
+ eRegistrationRequest_keepAlive = (1 << 23),
+ eRegistrationRequest_endpointIdentifier = (1 << 22),
+ eRegistrationRequest_willSupplyUUIEs = (1 << 21),
+ eRegistrationRequest_maintainConnection = (1 << 20),
+ eRegistrationRequest_alternateTransportAddresses = (1 << 19),
+ eRegistrationRequest_additiveRegistration = (1 << 18),
+ eRegistrationRequest_terminalAliasPattern = (1 << 17),
+ eRegistrationRequest_supportsAltGK = (1 << 16),
+ eRegistrationRequest_usageReportingCapability = (1 << 15),
+ eRegistrationRequest_multipleCalls = (1 << 14),
+ eRegistrationRequest_supportedH248Packages = (1 << 13),
+ eRegistrationRequest_callCreditCapability = (1 << 12),
+ eRegistrationRequest_capacityReportingCapability = (1 << 11),
+ eRegistrationRequest_capacity = (1 << 10),
+ eRegistrationRequest_featureSet = (1 << 9),
+ eRegistrationRequest_genericData = (1 << 8),
+ } options;
+ RegistrationRequest_callSignalAddress callSignalAddress;
+ RegistrationRequest_rasAddress rasAddress;
+ unsigned timeToLive;
+} RegistrationRequest;
+
+typedef struct RegistrationConfirm_callSignalAddress { /* SEQUENCE OF */
+ int count;
+ TransportAddress item[10];
+} RegistrationConfirm_callSignalAddress;
+
+typedef struct RegistrationConfirm { /* SEQUENCE */
+ enum {
+ eRegistrationConfirm_nonStandardData = (1 << 31),
+ eRegistrationConfirm_terminalAlias = (1 << 30),
+ eRegistrationConfirm_gatekeeperIdentifier = (1 << 29),
+ eRegistrationConfirm_alternateGatekeeper = (1 << 28),
+ eRegistrationConfirm_timeToLive = (1 << 27),
+ eRegistrationConfirm_tokens = (1 << 26),
+ eRegistrationConfirm_cryptoTokens = (1 << 25),
+ eRegistrationConfirm_integrityCheckValue = (1 << 24),
+ eRegistrationConfirm_willRespondToIRR = (1 << 23),
+ eRegistrationConfirm_preGrantedARQ = (1 << 22),
+ eRegistrationConfirm_maintainConnection = (1 << 21),
+ eRegistrationConfirm_serviceControl = (1 << 20),
+ eRegistrationConfirm_supportsAdditiveRegistration = (1 << 19),
+ eRegistrationConfirm_terminalAliasPattern = (1 << 18),
+ eRegistrationConfirm_supportedPrefixes = (1 << 17),
+ eRegistrationConfirm_usageSpec = (1 << 16),
+ eRegistrationConfirm_featureServerAlias = (1 << 15),
+ eRegistrationConfirm_capacityReportingSpec = (1 << 14),
+ eRegistrationConfirm_featureSet = (1 << 13),
+ eRegistrationConfirm_genericData = (1 << 12),
+ } options;
+ RegistrationConfirm_callSignalAddress callSignalAddress;
+ unsigned timeToLive;
+} RegistrationConfirm;
+
+typedef struct UnregistrationRequest_callSignalAddress { /* SEQUENCE OF */
+ int count;
+ TransportAddress item[10];
+} UnregistrationRequest_callSignalAddress;
+
+typedef struct UnregistrationRequest { /* SEQUENCE */
+ enum {
+ eUnregistrationRequest_endpointAlias = (1 << 31),
+ eUnregistrationRequest_nonStandardData = (1 << 30),
+ eUnregistrationRequest_endpointIdentifier = (1 << 29),
+ eUnregistrationRequest_alternateEndpoints = (1 << 28),
+ eUnregistrationRequest_gatekeeperIdentifier = (1 << 27),
+ eUnregistrationRequest_tokens = (1 << 26),
+ eUnregistrationRequest_cryptoTokens = (1 << 25),
+ eUnregistrationRequest_integrityCheckValue = (1 << 24),
+ eUnregistrationRequest_reason = (1 << 23),
+ eUnregistrationRequest_endpointAliasPattern = (1 << 22),
+ eUnregistrationRequest_supportedPrefixes = (1 << 21),
+ eUnregistrationRequest_alternateGatekeeper = (1 << 20),
+ eUnregistrationRequest_genericData = (1 << 19),
+ } options;
+ UnregistrationRequest_callSignalAddress callSignalAddress;
+} UnregistrationRequest;
+
+typedef struct AdmissionRequest { /* SEQUENCE */
+ enum {
+ eAdmissionRequest_callModel = (1 << 31),
+ eAdmissionRequest_destinationInfo = (1 << 30),
+ eAdmissionRequest_destCallSignalAddress = (1 << 29),
+ eAdmissionRequest_destExtraCallInfo = (1 << 28),
+ eAdmissionRequest_srcCallSignalAddress = (1 << 27),
+ eAdmissionRequest_nonStandardData = (1 << 26),
+ eAdmissionRequest_callServices = (1 << 25),
+ eAdmissionRequest_canMapAlias = (1 << 24),
+ eAdmissionRequest_callIdentifier = (1 << 23),
+ eAdmissionRequest_srcAlternatives = (1 << 22),
+ eAdmissionRequest_destAlternatives = (1 << 21),
+ eAdmissionRequest_gatekeeperIdentifier = (1 << 20),
+ eAdmissionRequest_tokens = (1 << 19),
+ eAdmissionRequest_cryptoTokens = (1 << 18),
+ eAdmissionRequest_integrityCheckValue = (1 << 17),
+ eAdmissionRequest_transportQOS = (1 << 16),
+ eAdmissionRequest_willSupplyUUIEs = (1 << 15),
+ eAdmissionRequest_callLinkage = (1 << 14),
+ eAdmissionRequest_gatewayDataRate = (1 << 13),
+ eAdmissionRequest_capacity = (1 << 12),
+ eAdmissionRequest_circuitInfo = (1 << 11),
+ eAdmissionRequest_desiredProtocols = (1 << 10),
+ eAdmissionRequest_desiredTunnelledProtocol = (1 << 9),
+ eAdmissionRequest_featureSet = (1 << 8),
+ eAdmissionRequest_genericData = (1 << 7),
+ } options;
+ TransportAddress destCallSignalAddress;
+ TransportAddress srcCallSignalAddress;
+} AdmissionRequest;
+
+typedef struct AdmissionConfirm { /* SEQUENCE */
+ enum {
+ eAdmissionConfirm_irrFrequency = (1 << 31),
+ eAdmissionConfirm_nonStandardData = (1 << 30),
+ eAdmissionConfirm_destinationInfo = (1 << 29),
+ eAdmissionConfirm_destExtraCallInfo = (1 << 28),
+ eAdmissionConfirm_destinationType = (1 << 27),
+ eAdmissionConfirm_remoteExtensionAddress = (1 << 26),
+ eAdmissionConfirm_alternateEndpoints = (1 << 25),
+ eAdmissionConfirm_tokens = (1 << 24),
+ eAdmissionConfirm_cryptoTokens = (1 << 23),
+ eAdmissionConfirm_integrityCheckValue = (1 << 22),
+ eAdmissionConfirm_transportQOS = (1 << 21),
+ eAdmissionConfirm_willRespondToIRR = (1 << 20),
+ eAdmissionConfirm_uuiesRequested = (1 << 19),
+ eAdmissionConfirm_language = (1 << 18),
+ eAdmissionConfirm_alternateTransportAddresses = (1 << 17),
+ eAdmissionConfirm_useSpecifiedTransport = (1 << 16),
+ eAdmissionConfirm_circuitInfo = (1 << 15),
+ eAdmissionConfirm_usageSpec = (1 << 14),
+ eAdmissionConfirm_supportedProtocols = (1 << 13),
+ eAdmissionConfirm_serviceControl = (1 << 12),
+ eAdmissionConfirm_multipleCalls = (1 << 11),
+ eAdmissionConfirm_featureSet = (1 << 10),
+ eAdmissionConfirm_genericData = (1 << 9),
+ } options;
+ TransportAddress destCallSignalAddress;
+} AdmissionConfirm;
+
+typedef struct LocationRequest { /* SEQUENCE */
+ enum {
+ eLocationRequest_endpointIdentifier = (1 << 31),
+ eLocationRequest_nonStandardData = (1 << 30),
+ eLocationRequest_sourceInfo = (1 << 29),
+ eLocationRequest_canMapAlias = (1 << 28),
+ eLocationRequest_gatekeeperIdentifier = (1 << 27),
+ eLocationRequest_tokens = (1 << 26),
+ eLocationRequest_cryptoTokens = (1 << 25),
+ eLocationRequest_integrityCheckValue = (1 << 24),
+ eLocationRequest_desiredProtocols = (1 << 23),
+ eLocationRequest_desiredTunnelledProtocol = (1 << 22),
+ eLocationRequest_featureSet = (1 << 21),
+ eLocationRequest_genericData = (1 << 20),
+ eLocationRequest_hopCount = (1 << 19),
+ eLocationRequest_circuitInfo = (1 << 18),
+ } options;
+ TransportAddress replyAddress;
+} LocationRequest;
+
+typedef struct LocationConfirm { /* SEQUENCE */
+ enum {
+ eLocationConfirm_nonStandardData = (1 << 31),
+ eLocationConfirm_destinationInfo = (1 << 30),
+ eLocationConfirm_destExtraCallInfo = (1 << 29),
+ eLocationConfirm_destinationType = (1 << 28),
+ eLocationConfirm_remoteExtensionAddress = (1 << 27),
+ eLocationConfirm_alternateEndpoints = (1 << 26),
+ eLocationConfirm_tokens = (1 << 25),
+ eLocationConfirm_cryptoTokens = (1 << 24),
+ eLocationConfirm_integrityCheckValue = (1 << 23),
+ eLocationConfirm_alternateTransportAddresses = (1 << 22),
+ eLocationConfirm_supportedProtocols = (1 << 21),
+ eLocationConfirm_multipleCalls = (1 << 20),
+ eLocationConfirm_featureSet = (1 << 19),
+ eLocationConfirm_genericData = (1 << 18),
+ eLocationConfirm_circuitInfo = (1 << 17),
+ eLocationConfirm_serviceControl = (1 << 16),
+ } options;
+ TransportAddress callSignalAddress;
+ TransportAddress rasAddress;
+} LocationConfirm;
+
+typedef struct InfoRequestResponse_callSignalAddress { /* SEQUENCE OF */
+ int count;
+ TransportAddress item[10];
+} InfoRequestResponse_callSignalAddress;
+
+typedef struct InfoRequestResponse { /* SEQUENCE */
+ enum {
+ eInfoRequestResponse_nonStandardData = (1 << 31),
+ eInfoRequestResponse_endpointAlias = (1 << 30),
+ eInfoRequestResponse_perCallInfo = (1 << 29),
+ eInfoRequestResponse_tokens = (1 << 28),
+ eInfoRequestResponse_cryptoTokens = (1 << 27),
+ eInfoRequestResponse_integrityCheckValue = (1 << 26),
+ eInfoRequestResponse_needResponse = (1 << 25),
+ eInfoRequestResponse_capacity = (1 << 24),
+ eInfoRequestResponse_irrStatus = (1 << 23),
+ eInfoRequestResponse_unsolicited = (1 << 22),
+ eInfoRequestResponse_genericData = (1 << 21),
+ } options;
+ TransportAddress rasAddress;
+ InfoRequestResponse_callSignalAddress callSignalAddress;
+} InfoRequestResponse;
+
+typedef struct RasMessage { /* CHOICE */
+ enum {
+ eRasMessage_gatekeeperRequest,
+ eRasMessage_gatekeeperConfirm,
+ eRasMessage_gatekeeperReject,
+ eRasMessage_registrationRequest,
+ eRasMessage_registrationConfirm,
+ eRasMessage_registrationReject,
+ eRasMessage_unregistrationRequest,
+ eRasMessage_unregistrationConfirm,
+ eRasMessage_unregistrationReject,
+ eRasMessage_admissionRequest,
+ eRasMessage_admissionConfirm,
+ eRasMessage_admissionReject,
+ eRasMessage_bandwidthRequest,
+ eRasMessage_bandwidthConfirm,
+ eRasMessage_bandwidthReject,
+ eRasMessage_disengageRequest,
+ eRasMessage_disengageConfirm,
+ eRasMessage_disengageReject,
+ eRasMessage_locationRequest,
+ eRasMessage_locationConfirm,
+ eRasMessage_locationReject,
+ eRasMessage_infoRequest,
+ eRasMessage_infoRequestResponse,
+ eRasMessage_nonStandardMessage,
+ eRasMessage_unknownMessageResponse,
+ eRasMessage_requestInProgress,
+ eRasMessage_resourcesAvailableIndicate,
+ eRasMessage_resourcesAvailableConfirm,
+ eRasMessage_infoRequestAck,
+ eRasMessage_infoRequestNak,
+ eRasMessage_serviceControlIndication,
+ eRasMessage_serviceControlResponse,
+ } choice;
+ union {
+ GatekeeperRequest gatekeeperRequest;
+ GatekeeperConfirm gatekeeperConfirm;
+ RegistrationRequest registrationRequest;
+ RegistrationConfirm registrationConfirm;
+ UnregistrationRequest unregistrationRequest;
+ AdmissionRequest admissionRequest;
+ AdmissionConfirm admissionConfirm;
+ LocationRequest locationRequest;
+ LocationConfirm locationConfirm;
+ InfoRequestResponse infoRequestResponse;
+ };
+} RasMessage;
diff --git a/net/ipv4/netfilter/ip_conntrack_helper_h323.c b/net/ipv4/netfilter/ip_conntrack_helper_h323.c
index daeb139..fc817fd 100644
--- a/net/ipv4/netfilter/ip_conntrack_helper_h323.c
+++ b/net/ipv4/netfilter/ip_conntrack_helper_h323.c
@@ -54,8 +54,6 @@
#include <linux/netfilter_ipv4/ip_conntrack_h323.h>
#include <linux/moduleparam.h>
-#include "ip_conntrack_helper_h323_asn1.h"
-
#if 0
#define DEBUGP printk
#else
diff --git a/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c b/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c
index afa5251..4807800 100644
--- a/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c
+++ b/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c
@@ -15,7 +15,7 @@
#else
#include <stdio.h>
#endif
-#include "ip_conntrack_helper_h323_asn1.h"
+#include <linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h>
/* Trace Flag */
#ifndef H323_TRACE
diff --git a/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.h b/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.h
deleted file mode 100644
index 0bd8280..0000000
--- a/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
- * ip_conntrack_helper_h323_asn1.h - BER and PER decoding library for H.323
- * conntrack/NAT module.
- *
- * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@hotmail.com>
- *
- * This source code is licensed under General Public License version 2.
- *
- *
- * This library is based on H.225 version 4, H.235 version 2 and H.245
- * version 7. It is extremely optimized to decode only the absolutely
- * necessary objects in a signal for Linux kernel NAT module use, so don't
- * expect it to be a full ASN.1 library.
- *
- * Features:
- *
- * 1. Small. The total size of code plus data is less than 20 KB (IA32).
- * 2. Fast. Decoding Netmeeting's Setup signal 1 million times on a PIII 866
- * takes only 3.9 seconds.
- * 3. No memory allocation. It uses a static object. No need to initialize or
- * cleanup.
- * 4. Thread safe.
- * 5. Support embedded architectures that has no misaligned memory access
- * support.
- *
- * Limitations:
- *
- * 1. At most 30 faststart entries. Actually this is limited by ethernet's MTU.
- * If a Setup signal contains more than 30 faststart, the packet size will
- * very likely exceed the MTU size, then the TPKT will be fragmented. I
- * don't know how to handle this in a Netfilter module. Anybody can help?
- * Although I think 30 is enough for most of the cases.
- * 2. IPv4 addresses only.
- *
- ****************************************************************************/
-
-#ifndef _IP_CONNTRACK_HELPER_H323_ASN1_H_
-#define _IP_CONNTRACK_HELPER_H323_ASN1_H_
-
-/*****************************************************************************
- * H.323 Types
- ****************************************************************************/
-#include "ip_conntrack_helper_h323_types.h"
-
-typedef struct {
- enum {
- Q931_NationalEscape = 0x00,
- Q931_Alerting = 0x01,
- Q931_CallProceeding = 0x02,
- Q931_Connect = 0x07,
- Q931_ConnectAck = 0x0F,
- Q931_Progress = 0x03,
- Q931_Setup = 0x05,
- Q931_SetupAck = 0x0D,
- Q931_Resume = 0x26,
- Q931_ResumeAck = 0x2E,
- Q931_ResumeReject = 0x22,
- Q931_Suspend = 0x25,
- Q931_SuspendAck = 0x2D,
- Q931_SuspendReject = 0x21,
- Q931_UserInformation = 0x20,
- Q931_Disconnect = 0x45,
- Q931_Release = 0x4D,
- Q931_ReleaseComplete = 0x5A,
- Q931_Restart = 0x46,
- Q931_RestartAck = 0x4E,
- Q931_Segment = 0x60,
- Q931_CongestionCtrl = 0x79,
- Q931_Information = 0x7B,
- Q931_Notify = 0x6E,
- Q931_Status = 0x7D,
- Q931_StatusEnquiry = 0x75,
- Q931_Facility = 0x62
- } MessageType;
- H323_UserInformation UUIE;
-} Q931;
-
-/*****************************************************************************
- * Decode Functions Return Codes
- ****************************************************************************/
-
-#define H323_ERROR_NONE 0 /* Decoded successfully */
-#define H323_ERROR_STOP 1 /* Decoding stopped, not really an error */
-#define H323_ERROR_BOUND -1
-#define H323_ERROR_RANGE -2
-
-
-/*****************************************************************************
- * Decode Functions
- ****************************************************************************/
-
-int DecodeRasMessage(unsigned char *buf, size_t sz, RasMessage * ras);
-int DecodeQ931(unsigned char *buf, size_t sz, Q931 * q931);
-int DecodeMultimediaSystemControlMessage(unsigned char *buf, size_t sz,
- MultimediaSystemControlMessage *
- mscm);
-
-#endif
diff --git a/net/ipv4/netfilter/ip_conntrack_helper_h323_types.h b/net/ipv4/netfilter/ip_conntrack_helper_h323_types.h
deleted file mode 100644
index cc98f7a..0000000
--- a/net/ipv4/netfilter/ip_conntrack_helper_h323_types.h
+++ /dev/null
@@ -1,938 +0,0 @@
-/* Generated by Jing Min Zhao's ASN.1 parser, Mar 15 2006
- *
- * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
- *
- * This source code is licensed under General Public License version 2.
- */
-
-typedef struct TransportAddress_ipAddress { /* SEQUENCE */
- int options; /* No use */
- unsigned ip;
-} TransportAddress_ipAddress;
-
-typedef struct TransportAddress { /* CHOICE */
- enum {
- eTransportAddress_ipAddress,
- eTransportAddress_ipSourceRoute,
- eTransportAddress_ipxAddress,
- eTransportAddress_ip6Address,
- eTransportAddress_netBios,
- eTransportAddress_nsap,
- eTransportAddress_nonStandardAddress,
- } choice;
- union {
- TransportAddress_ipAddress ipAddress;
- };
-} TransportAddress;
-
-typedef struct DataProtocolCapability { /* CHOICE */
- enum {
- eDataProtocolCapability_nonStandard,
- eDataProtocolCapability_v14buffered,
- eDataProtocolCapability_v42lapm,
- eDataProtocolCapability_hdlcFrameTunnelling,
- eDataProtocolCapability_h310SeparateVCStack,
- eDataProtocolCapability_h310SingleVCStack,
- eDataProtocolCapability_transparent,
- eDataProtocolCapability_segmentationAndReassembly,
- eDataProtocolCapability_hdlcFrameTunnelingwSAR,
- eDataProtocolCapability_v120,
- eDataProtocolCapability_separateLANStack,
- eDataProtocolCapability_v76wCompression,
- eDataProtocolCapability_tcp,
- eDataProtocolCapability_udp,
- } choice;
-} DataProtocolCapability;
-
-typedef struct DataApplicationCapability_application { /* CHOICE */
- enum {
- eDataApplicationCapability_application_nonStandard,
- eDataApplicationCapability_application_t120,
- eDataApplicationCapability_application_dsm_cc,
- eDataApplicationCapability_application_userData,
- eDataApplicationCapability_application_t84,
- eDataApplicationCapability_application_t434,
- eDataApplicationCapability_application_h224,
- eDataApplicationCapability_application_nlpid,
- eDataApplicationCapability_application_dsvdControl,
- eDataApplicationCapability_application_h222DataPartitioning,
- eDataApplicationCapability_application_t30fax,
- eDataApplicationCapability_application_t140,
- eDataApplicationCapability_application_t38fax,
- eDataApplicationCapability_application_genericDataCapability,
- } choice;
- union {
- DataProtocolCapability t120;
- };
-} DataApplicationCapability_application;
-
-typedef struct DataApplicationCapability { /* SEQUENCE */
- int options; /* No use */
- DataApplicationCapability_application application;
-} DataApplicationCapability;
-
-typedef struct DataType { /* CHOICE */
- enum {
- eDataType_nonStandard,
- eDataType_nullData,
- eDataType_videoData,
- eDataType_audioData,
- eDataType_data,
- eDataType_encryptionData,
- eDataType_h235Control,
- eDataType_h235Media,
- eDataType_multiplexedStream,
- } choice;
- union {
- DataApplicationCapability data;
- };
-} DataType;
-
-typedef struct UnicastAddress_iPAddress { /* SEQUENCE */
- int options; /* No use */
- unsigned network;
-} UnicastAddress_iPAddress;
-
-typedef struct UnicastAddress { /* CHOICE */
- enum {
- eUnicastAddress_iPAddress,
- eUnicastAddress_iPXAddress,
- eUnicastAddress_iP6Address,
- eUnicastAddress_netBios,
- eUnicastAddress_iPSourceRouteAddress,
- eUnicastAddress_nsap,
- eUnicastAddress_nonStandardAddress,
- } choice;
- union {
- UnicastAddress_iPAddress iPAddress;
- };
-} UnicastAddress;
-
-typedef struct H245_TransportAddress { /* CHOICE */
- enum {
- eH245_TransportAddress_unicastAddress,
- eH245_TransportAddress_multicastAddress,
- } choice;
- union {
- UnicastAddress unicastAddress;
- };
-} H245_TransportAddress;
-
-typedef struct H2250LogicalChannelParameters { /* SEQUENCE */
- enum {
- eH2250LogicalChannelParameters_nonStandard = (1 << 31),
- eH2250LogicalChannelParameters_associatedSessionID =
- (1 << 30),
- eH2250LogicalChannelParameters_mediaChannel = (1 << 29),
- eH2250LogicalChannelParameters_mediaGuaranteedDelivery =
- (1 << 28),
- eH2250LogicalChannelParameters_mediaControlChannel =
- (1 << 27),
- eH2250LogicalChannelParameters_mediaControlGuaranteedDelivery
- = (1 << 26),
- eH2250LogicalChannelParameters_silenceSuppression = (1 << 25),
- eH2250LogicalChannelParameters_destination = (1 << 24),
- eH2250LogicalChannelParameters_dynamicRTPPayloadType =
- (1 << 23),
- eH2250LogicalChannelParameters_mediaPacketization = (1 << 22),
- eH2250LogicalChannelParameters_transportCapability =
- (1 << 21),
- eH2250LogicalChannelParameters_redundancyEncoding = (1 << 20),
- eH2250LogicalChannelParameters_source = (1 << 19),
- } options;
- H245_TransportAddress mediaChannel;
- H245_TransportAddress mediaControlChannel;
-} H2250LogicalChannelParameters;
-
-typedef struct OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters { /* CHOICE */
- enum {
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_none,
- } choice;
- union {
- H2250LogicalChannelParameters h2250LogicalChannelParameters;
- };
-} OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters;
-
-typedef struct OpenLogicalChannel_forwardLogicalChannelParameters { /* SEQUENCE */
- enum {
- eOpenLogicalChannel_forwardLogicalChannelParameters_portNumber
- = (1 << 31),
- eOpenLogicalChannel_forwardLogicalChannelParameters_forwardLogicalChannelDependency
- = (1 << 30),
- eOpenLogicalChannel_forwardLogicalChannelParameters_replacementFor
- = (1 << 29),
- } options;
- DataType dataType;
- OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters
- multiplexParameters;
-} OpenLogicalChannel_forwardLogicalChannelParameters;
-
-typedef struct OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
- enum {
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
- } choice;
- union {
- H2250LogicalChannelParameters h2250LogicalChannelParameters;
- };
-} OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters;
-
-typedef struct OpenLogicalChannel_reverseLogicalChannelParameters { /* SEQUENCE */
- enum {
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
- = (1 << 31),
- eOpenLogicalChannel_reverseLogicalChannelParameters_reverseLogicalChannelDependency
- = (1 << 30),
- eOpenLogicalChannel_reverseLogicalChannelParameters_replacementFor
- = (1 << 29),
- } options;
- OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
- multiplexParameters;
-} OpenLogicalChannel_reverseLogicalChannelParameters;
-
-typedef struct NetworkAccessParameters_networkAddress { /* CHOICE */
- enum {
- eNetworkAccessParameters_networkAddress_q2931Address,
- eNetworkAccessParameters_networkAddress_e164Address,
- eNetworkAccessParameters_networkAddress_localAreaAddress,
- } choice;
- union {
- H245_TransportAddress localAreaAddress;
- };
-} NetworkAccessParameters_networkAddress;
-
-typedef struct NetworkAccessParameters { /* SEQUENCE */
- enum {
- eNetworkAccessParameters_distribution = (1 << 31),
- eNetworkAccessParameters_externalReference = (1 << 30),
- eNetworkAccessParameters_t120SetupProcedure = (1 << 29),
- } options;
- NetworkAccessParameters_networkAddress networkAddress;
-} NetworkAccessParameters;
-
-typedef struct OpenLogicalChannel { /* SEQUENCE */
- enum {
- eOpenLogicalChannel_reverseLogicalChannelParameters =
- (1 << 31),
- eOpenLogicalChannel_separateStack = (1 << 30),
- eOpenLogicalChannel_encryptionSync = (1 << 29),
- } options;
- OpenLogicalChannel_forwardLogicalChannelParameters
- forwardLogicalChannelParameters;
- OpenLogicalChannel_reverseLogicalChannelParameters
- reverseLogicalChannelParameters;
- NetworkAccessParameters separateStack;
-} OpenLogicalChannel;
-
-typedef struct Setup_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Setup_UUIE_fastStart;
-
-typedef struct Setup_UUIE { /* SEQUENCE */
- enum {
- eSetup_UUIE_h245Address = (1 << 31),
- eSetup_UUIE_sourceAddress = (1 << 30),
- eSetup_UUIE_destinationAddress = (1 << 29),
- eSetup_UUIE_destCallSignalAddress = (1 << 28),
- eSetup_UUIE_destExtraCallInfo = (1 << 27),
- eSetup_UUIE_destExtraCRV = (1 << 26),
- eSetup_UUIE_callServices = (1 << 25),
- eSetup_UUIE_sourceCallSignalAddress = (1 << 24),
- eSetup_UUIE_remoteExtensionAddress = (1 << 23),
- eSetup_UUIE_callIdentifier = (1 << 22),
- eSetup_UUIE_h245SecurityCapability = (1 << 21),
- eSetup_UUIE_tokens = (1 << 20),
- eSetup_UUIE_cryptoTokens = (1 << 19),
- eSetup_UUIE_fastStart = (1 << 18),
- eSetup_UUIE_mediaWaitForConnect = (1 << 17),
- eSetup_UUIE_canOverlapSend = (1 << 16),
- eSetup_UUIE_endpointIdentifier = (1 << 15),
- eSetup_UUIE_multipleCalls = (1 << 14),
- eSetup_UUIE_maintainConnection = (1 << 13),
- eSetup_UUIE_connectionParameters = (1 << 12),
- eSetup_UUIE_language = (1 << 11),
- eSetup_UUIE_presentationIndicator = (1 << 10),
- eSetup_UUIE_screeningIndicator = (1 << 9),
- eSetup_UUIE_serviceControl = (1 << 8),
- eSetup_UUIE_symmetricOperationRequired = (1 << 7),
- eSetup_UUIE_capacity = (1 << 6),
- eSetup_UUIE_circuitInfo = (1 << 5),
- eSetup_UUIE_desiredProtocols = (1 << 4),
- eSetup_UUIE_neededFeatures = (1 << 3),
- eSetup_UUIE_desiredFeatures = (1 << 2),
- eSetup_UUIE_supportedFeatures = (1 << 1),
- eSetup_UUIE_parallelH245Control = (1 << 0),
- } options;
- TransportAddress h245Address;
- TransportAddress destCallSignalAddress;
- TransportAddress sourceCallSignalAddress;
- Setup_UUIE_fastStart fastStart;
-} Setup_UUIE;
-
-typedef struct CallProceeding_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} CallProceeding_UUIE_fastStart;
-
-typedef struct CallProceeding_UUIE { /* SEQUENCE */
- enum {
- eCallProceeding_UUIE_h245Address = (1 << 31),
- eCallProceeding_UUIE_callIdentifier = (1 << 30),
- eCallProceeding_UUIE_h245SecurityMode = (1 << 29),
- eCallProceeding_UUIE_tokens = (1 << 28),
- eCallProceeding_UUIE_cryptoTokens = (1 << 27),
- eCallProceeding_UUIE_fastStart = (1 << 26),
- eCallProceeding_UUIE_multipleCalls = (1 << 25),
- eCallProceeding_UUIE_maintainConnection = (1 << 24),
- eCallProceeding_UUIE_fastConnectRefused = (1 << 23),
- eCallProceeding_UUIE_featureSet = (1 << 22),
- } options;
- TransportAddress h245Address;
- CallProceeding_UUIE_fastStart fastStart;
-} CallProceeding_UUIE;
-
-typedef struct Connect_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Connect_UUIE_fastStart;
-
-typedef struct Connect_UUIE { /* SEQUENCE */
- enum {
- eConnect_UUIE_h245Address = (1 << 31),
- eConnect_UUIE_callIdentifier = (1 << 30),
- eConnect_UUIE_h245SecurityMode = (1 << 29),
- eConnect_UUIE_tokens = (1 << 28),
- eConnect_UUIE_cryptoTokens = (1 << 27),
- eConnect_UUIE_fastStart = (1 << 26),
- eConnect_UUIE_multipleCalls = (1 << 25),
- eConnect_UUIE_maintainConnection = (1 << 24),
- eConnect_UUIE_language = (1 << 23),
- eConnect_UUIE_connectedAddress = (1 << 22),
- eConnect_UUIE_presentationIndicator = (1 << 21),
- eConnect_UUIE_screeningIndicator = (1 << 20),
- eConnect_UUIE_fastConnectRefused = (1 << 19),
- eConnect_UUIE_serviceControl = (1 << 18),
- eConnect_UUIE_capacity = (1 << 17),
- eConnect_UUIE_featureSet = (1 << 16),
- } options;
- TransportAddress h245Address;
- Connect_UUIE_fastStart fastStart;
-} Connect_UUIE;
-
-typedef struct Alerting_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Alerting_UUIE_fastStart;
-
-typedef struct Alerting_UUIE { /* SEQUENCE */
- enum {
- eAlerting_UUIE_h245Address = (1 << 31),
- eAlerting_UUIE_callIdentifier = (1 << 30),
- eAlerting_UUIE_h245SecurityMode = (1 << 29),
- eAlerting_UUIE_tokens = (1 << 28),
- eAlerting_UUIE_cryptoTokens = (1 << 27),
- eAlerting_UUIE_fastStart = (1 << 26),
- eAlerting_UUIE_multipleCalls = (1 << 25),
- eAlerting_UUIE_maintainConnection = (1 << 24),
- eAlerting_UUIE_alertingAddress = (1 << 23),
- eAlerting_UUIE_presentationIndicator = (1 << 22),
- eAlerting_UUIE_screeningIndicator = (1 << 21),
- eAlerting_UUIE_fastConnectRefused = (1 << 20),
- eAlerting_UUIE_serviceControl = (1 << 19),
- eAlerting_UUIE_capacity = (1 << 18),
- eAlerting_UUIE_featureSet = (1 << 17),
- } options;
- TransportAddress h245Address;
- Alerting_UUIE_fastStart fastStart;
-} Alerting_UUIE;
-
-typedef struct Information_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Information_UUIE_fastStart;
-
-typedef struct Information_UUIE { /* SEQUENCE */
- enum {
- eInformation_UUIE_callIdentifier = (1 << 31),
- eInformation_UUIE_tokens = (1 << 30),
- eInformation_UUIE_cryptoTokens = (1 << 29),
- eInformation_UUIE_fastStart = (1 << 28),
- eInformation_UUIE_fastConnectRefused = (1 << 27),
- eInformation_UUIE_circuitInfo = (1 << 26),
- } options;
- Information_UUIE_fastStart fastStart;
-} Information_UUIE;
-
-typedef struct FacilityReason { /* CHOICE */
- enum {
- eFacilityReason_routeCallToGatekeeper,
- eFacilityReason_callForwarded,
- eFacilityReason_routeCallToMC,
- eFacilityReason_undefinedReason,
- eFacilityReason_conferenceListChoice,
- eFacilityReason_startH245,
- eFacilityReason_noH245,
- eFacilityReason_newTokens,
- eFacilityReason_featureSetUpdate,
- eFacilityReason_forwardedElements,
- eFacilityReason_transportedInformation,
- } choice;
-} FacilityReason;
-
-typedef struct Facility_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Facility_UUIE_fastStart;
-
-typedef struct Facility_UUIE { /* SEQUENCE */
- enum {
- eFacility_UUIE_alternativeAddress = (1 << 31),
- eFacility_UUIE_alternativeAliasAddress = (1 << 30),
- eFacility_UUIE_conferenceID = (1 << 29),
- eFacility_UUIE_callIdentifier = (1 << 28),
- eFacility_UUIE_destExtraCallInfo = (1 << 27),
- eFacility_UUIE_remoteExtensionAddress = (1 << 26),
- eFacility_UUIE_tokens = (1 << 25),
- eFacility_UUIE_cryptoTokens = (1 << 24),
- eFacility_UUIE_conferences = (1 << 23),
- eFacility_UUIE_h245Address = (1 << 22),
- eFacility_UUIE_fastStart = (1 << 21),
- eFacility_UUIE_multipleCalls = (1 << 20),
- eFacility_UUIE_maintainConnection = (1 << 19),
- eFacility_UUIE_fastConnectRefused = (1 << 18),
- eFacility_UUIE_serviceControl = (1 << 17),
- eFacility_UUIE_circuitInfo = (1 << 16),
- eFacility_UUIE_featureSet = (1 << 15),
- eFacility_UUIE_destinationInfo = (1 << 14),
- eFacility_UUIE_h245SecurityMode = (1 << 13),
- } options;
- FacilityReason reason;
- TransportAddress h245Address;
- Facility_UUIE_fastStart fastStart;
-} Facility_UUIE;
-
-typedef struct Progress_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Progress_UUIE_fastStart;
-
-typedef struct Progress_UUIE { /* SEQUENCE */
- enum {
- eProgress_UUIE_h245Address = (1 << 31),
- eProgress_UUIE_h245SecurityMode = (1 << 30),
- eProgress_UUIE_tokens = (1 << 29),
- eProgress_UUIE_cryptoTokens = (1 << 28),
- eProgress_UUIE_fastStart = (1 << 27),
- eProgress_UUIE_multipleCalls = (1 << 26),
- eProgress_UUIE_maintainConnection = (1 << 25),
- eProgress_UUIE_fastConnectRefused = (1 << 24),
- } options;
- TransportAddress h245Address;
- Progress_UUIE_fastStart fastStart;
-} Progress_UUIE;
-
-typedef struct H323_UU_PDU_h323_message_body { /* CHOICE */
- enum {
- eH323_UU_PDU_h323_message_body_setup,
- eH323_UU_PDU_h323_message_body_callProceeding,
- eH323_UU_PDU_h323_message_body_connect,
- eH323_UU_PDU_h323_message_body_alerting,
- eH323_UU_PDU_h323_message_body_information,
- eH323_UU_PDU_h323_message_body_releaseComplete,
- eH323_UU_PDU_h323_message_body_facility,
- eH323_UU_PDU_h323_message_body_progress,
- eH323_UU_PDU_h323_message_body_empty,
- eH323_UU_PDU_h323_message_body_status,
- eH323_UU_PDU_h323_message_body_statusInquiry,
- eH323_UU_PDU_h323_message_body_setupAcknowledge,
- eH323_UU_PDU_h323_message_body_notify,
- } choice;
- union {
- Setup_UUIE setup;
- CallProceeding_UUIE callProceeding;
- Connect_UUIE connect;
- Alerting_UUIE alerting;
- Information_UUIE information;
- Facility_UUIE facility;
- Progress_UUIE progress;
- };
-} H323_UU_PDU_h323_message_body;
-
-typedef struct RequestMessage { /* CHOICE */
- enum {
- eRequestMessage_nonStandard,
- eRequestMessage_masterSlaveDetermination,
- eRequestMessage_terminalCapabilitySet,
- eRequestMessage_openLogicalChannel,
- eRequestMessage_closeLogicalChannel,
- eRequestMessage_requestChannelClose,
- eRequestMessage_multiplexEntrySend,
- eRequestMessage_requestMultiplexEntry,
- eRequestMessage_requestMode,
- eRequestMessage_roundTripDelayRequest,
- eRequestMessage_maintenanceLoopRequest,
- eRequestMessage_communicationModeRequest,
- eRequestMessage_conferenceRequest,
- eRequestMessage_multilinkRequest,
- eRequestMessage_logicalChannelRateRequest,
- } choice;
- union {
- OpenLogicalChannel openLogicalChannel;
- };
-} RequestMessage;
-
-typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
- enum {
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
- } choice;
- union {
- H2250LogicalChannelParameters h2250LogicalChannelParameters;
- };
-} OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters;
-
-typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters { /* SEQUENCE */
- enum {
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_portNumber
- = (1 << 31),
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
- = (1 << 30),
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_replacementFor
- = (1 << 29),
- } options;
- OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
- multiplexParameters;
-} OpenLogicalChannelAck_reverseLogicalChannelParameters;
-
-typedef struct H2250LogicalChannelAckParameters { /* SEQUENCE */
- enum {
- eH2250LogicalChannelAckParameters_nonStandard = (1 << 31),
- eH2250LogicalChannelAckParameters_sessionID = (1 << 30),
- eH2250LogicalChannelAckParameters_mediaChannel = (1 << 29),
- eH2250LogicalChannelAckParameters_mediaControlChannel =
- (1 << 28),
- eH2250LogicalChannelAckParameters_dynamicRTPPayloadType =
- (1 << 27),
- eH2250LogicalChannelAckParameters_flowControlToZero =
- (1 << 26),
- eH2250LogicalChannelAckParameters_portNumber = (1 << 25),
- } options;
- H245_TransportAddress mediaChannel;
- H245_TransportAddress mediaControlChannel;
-} H2250LogicalChannelAckParameters;
-
-typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters { /* CHOICE */
- enum {
- eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters,
- } choice;
- union {
- H2250LogicalChannelAckParameters
- h2250LogicalChannelAckParameters;
- };
-} OpenLogicalChannelAck_forwardMultiplexAckParameters;
-
-typedef struct OpenLogicalChannelAck { /* SEQUENCE */
- enum {
- eOpenLogicalChannelAck_reverseLogicalChannelParameters =
- (1 << 31),
- eOpenLogicalChannelAck_separateStack = (1 << 30),
- eOpenLogicalChannelAck_forwardMultiplexAckParameters =
- (1 << 29),
- eOpenLogicalChannelAck_encryptionSync = (1 << 28),
- } options;
- OpenLogicalChannelAck_reverseLogicalChannelParameters
- reverseLogicalChannelParameters;
- OpenLogicalChannelAck_forwardMultiplexAckParameters
- forwardMultiplexAckParameters;
-} OpenLogicalChannelAck;
-
-typedef struct ResponseMessage { /* CHOICE */
- enum {
- eResponseMessage_nonStandard,
- eResponseMessage_masterSlaveDeterminationAck,
- eResponseMessage_masterSlaveDeterminationReject,
- eResponseMessage_terminalCapabilitySetAck,
- eResponseMessage_terminalCapabilitySetReject,
- eResponseMessage_openLogicalChannelAck,
- eResponseMessage_openLogicalChannelReject,
- eResponseMessage_closeLogicalChannelAck,
- eResponseMessage_requestChannelCloseAck,
- eResponseMessage_requestChannelCloseReject,
- eResponseMessage_multiplexEntrySendAck,
- eResponseMessage_multiplexEntrySendReject,
- eResponseMessage_requestMultiplexEntryAck,
- eResponseMessage_requestMultiplexEntryReject,
- eResponseMessage_requestModeAck,
- eResponseMessage_requestModeReject,
- eResponseMessage_roundTripDelayResponse,
- eResponseMessage_maintenanceLoopAck,
- eResponseMessage_maintenanceLoopReject,
- eResponseMessage_communicationModeResponse,
- eResponseMessage_conferenceResponse,
- eResponseMessage_multilinkResponse,
- eResponseMessage_logicalChannelRateAcknowledge,
- eResponseMessage_logicalChannelRateReject,
- } choice;
- union {
- OpenLogicalChannelAck openLogicalChannelAck;
- };
-} ResponseMessage;
-
-typedef struct MultimediaSystemControlMessage { /* CHOICE */
- enum {
- eMultimediaSystemControlMessage_request,
- eMultimediaSystemControlMessage_response,
- eMultimediaSystemControlMessage_command,
- eMultimediaSystemControlMessage_indication,
- } choice;
- union {
- RequestMessage request;
- ResponseMessage response;
- };
-} MultimediaSystemControlMessage;
-
-typedef struct H323_UU_PDU_h245Control { /* SEQUENCE OF */
- int count;
- MultimediaSystemControlMessage item[4];
-} H323_UU_PDU_h245Control;
-
-typedef struct H323_UU_PDU { /* SEQUENCE */
- enum {
- eH323_UU_PDU_nonStandardData = (1 << 31),
- eH323_UU_PDU_h4501SupplementaryService = (1 << 30),
- eH323_UU_PDU_h245Tunneling = (1 << 29),
- eH323_UU_PDU_h245Control = (1 << 28),
- eH323_UU_PDU_nonStandardControl = (1 << 27),
- eH323_UU_PDU_callLinkage = (1 << 26),
- eH323_UU_PDU_tunnelledSignallingMessage = (1 << 25),
- eH323_UU_PDU_provisionalRespToH245Tunneling = (1 << 24),
- eH323_UU_PDU_stimulusControl = (1 << 23),
- eH323_UU_PDU_genericData = (1 << 22),
- } options;
- H323_UU_PDU_h323_message_body h323_message_body;
- H323_UU_PDU_h245Control h245Control;
-} H323_UU_PDU;
-
-typedef struct H323_UserInformation { /* SEQUENCE */
- enum {
- eH323_UserInformation_user_data = (1 << 31),
- } options;
- H323_UU_PDU h323_uu_pdu;
-} H323_UserInformation;
-
-typedef struct GatekeeperRequest { /* SEQUENCE */
- enum {
- eGatekeeperRequest_nonStandardData = (1 << 31),
- eGatekeeperRequest_gatekeeperIdentifier = (1 << 30),
- eGatekeeperRequest_callServices = (1 << 29),
- eGatekeeperRequest_endpointAlias = (1 << 28),
- eGatekeeperRequest_alternateEndpoints = (1 << 27),
- eGatekeeperRequest_tokens = (1 << 26),
- eGatekeeperRequest_cryptoTokens = (1 << 25),
- eGatekeeperRequest_authenticationCapability = (1 << 24),
- eGatekeeperRequest_algorithmOIDs = (1 << 23),
- eGatekeeperRequest_integrity = (1 << 22),
- eGatekeeperRequest_integrityCheckValue = (1 << 21),
- eGatekeeperRequest_supportsAltGK = (1 << 20),
- eGatekeeperRequest_featureSet = (1 << 19),
- eGatekeeperRequest_genericData = (1 << 18),
- } options;
- TransportAddress rasAddress;
-} GatekeeperRequest;
-
-typedef struct GatekeeperConfirm { /* SEQUENCE */
- enum {
- eGatekeeperConfirm_nonStandardData = (1 << 31),
- eGatekeeperConfirm_gatekeeperIdentifier = (1 << 30),
- eGatekeeperConfirm_alternateGatekeeper = (1 << 29),
- eGatekeeperConfirm_authenticationMode = (1 << 28),
- eGatekeeperConfirm_tokens = (1 << 27),
- eGatekeeperConfirm_cryptoTokens = (1 << 26),
- eGatekeeperConfirm_algorithmOID = (1 << 25),
- eGatekeeperConfirm_integrity = (1 << 24),
- eGatekeeperConfirm_integrityCheckValue = (1 << 23),
- eGatekeeperConfirm_featureSet = (1 << 22),
- eGatekeeperConfirm_genericData = (1 << 21),
- } options;
- TransportAddress rasAddress;
-} GatekeeperConfirm;
-
-typedef struct RegistrationRequest_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} RegistrationRequest_callSignalAddress;
-
-typedef struct RegistrationRequest_rasAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} RegistrationRequest_rasAddress;
-
-typedef struct RegistrationRequest { /* SEQUENCE */
- enum {
- eRegistrationRequest_nonStandardData = (1 << 31),
- eRegistrationRequest_terminalAlias = (1 << 30),
- eRegistrationRequest_gatekeeperIdentifier = (1 << 29),
- eRegistrationRequest_alternateEndpoints = (1 << 28),
- eRegistrationRequest_timeToLive = (1 << 27),
- eRegistrationRequest_tokens = (1 << 26),
- eRegistrationRequest_cryptoTokens = (1 << 25),
- eRegistrationRequest_integrityCheckValue = (1 << 24),
- eRegistrationRequest_keepAlive = (1 << 23),
- eRegistrationRequest_endpointIdentifier = (1 << 22),
- eRegistrationRequest_willSupplyUUIEs = (1 << 21),
- eRegistrationRequest_maintainConnection = (1 << 20),
- eRegistrationRequest_alternateTransportAddresses = (1 << 19),
- eRegistrationRequest_additiveRegistration = (1 << 18),
- eRegistrationRequest_terminalAliasPattern = (1 << 17),
- eRegistrationRequest_supportsAltGK = (1 << 16),
- eRegistrationRequest_usageReportingCapability = (1 << 15),
- eRegistrationRequest_multipleCalls = (1 << 14),
- eRegistrationRequest_supportedH248Packages = (1 << 13),
- eRegistrationRequest_callCreditCapability = (1 << 12),
- eRegistrationRequest_capacityReportingCapability = (1 << 11),
- eRegistrationRequest_capacity = (1 << 10),
- eRegistrationRequest_featureSet = (1 << 9),
- eRegistrationRequest_genericData = (1 << 8),
- } options;
- RegistrationRequest_callSignalAddress callSignalAddress;
- RegistrationRequest_rasAddress rasAddress;
- unsigned timeToLive;
-} RegistrationRequest;
-
-typedef struct RegistrationConfirm_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} RegistrationConfirm_callSignalAddress;
-
-typedef struct RegistrationConfirm { /* SEQUENCE */
- enum {
- eRegistrationConfirm_nonStandardData = (1 << 31),
- eRegistrationConfirm_terminalAlias = (1 << 30),
- eRegistrationConfirm_gatekeeperIdentifier = (1 << 29),
- eRegistrationConfirm_alternateGatekeeper = (1 << 28),
- eRegistrationConfirm_timeToLive = (1 << 27),
- eRegistrationConfirm_tokens = (1 << 26),
- eRegistrationConfirm_cryptoTokens = (1 << 25),
- eRegistrationConfirm_integrityCheckValue = (1 << 24),
- eRegistrationConfirm_willRespondToIRR = (1 << 23),
- eRegistrationConfirm_preGrantedARQ = (1 << 22),
- eRegistrationConfirm_maintainConnection = (1 << 21),
- eRegistrationConfirm_serviceControl = (1 << 20),
- eRegistrationConfirm_supportsAdditiveRegistration = (1 << 19),
- eRegistrationConfirm_terminalAliasPattern = (1 << 18),
- eRegistrationConfirm_supportedPrefixes = (1 << 17),
- eRegistrationConfirm_usageSpec = (1 << 16),
- eRegistrationConfirm_featureServerAlias = (1 << 15),
- eRegistrationConfirm_capacityReportingSpec = (1 << 14),
- eRegistrationConfirm_featureSet = (1 << 13),
- eRegistrationConfirm_genericData = (1 << 12),
- } options;
- RegistrationConfirm_callSignalAddress callSignalAddress;
- unsigned timeToLive;
-} RegistrationConfirm;
-
-typedef struct UnregistrationRequest_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} UnregistrationRequest_callSignalAddress;
-
-typedef struct UnregistrationRequest { /* SEQUENCE */
- enum {
- eUnregistrationRequest_endpointAlias = (1 << 31),
- eUnregistrationRequest_nonStandardData = (1 << 30),
- eUnregistrationRequest_endpointIdentifier = (1 << 29),
- eUnregistrationRequest_alternateEndpoints = (1 << 28),
- eUnregistrationRequest_gatekeeperIdentifier = (1 << 27),
- eUnregistrationRequest_tokens = (1 << 26),
- eUnregistrationRequest_cryptoTokens = (1 << 25),
- eUnregistrationRequest_integrityCheckValue = (1 << 24),
- eUnregistrationRequest_reason = (1 << 23),
- eUnregistrationRequest_endpointAliasPattern = (1 << 22),
- eUnregistrationRequest_supportedPrefixes = (1 << 21),
- eUnregistrationRequest_alternateGatekeeper = (1 << 20),
- eUnregistrationRequest_genericData = (1 << 19),
- } options;
- UnregistrationRequest_callSignalAddress callSignalAddress;
-} UnregistrationRequest;
-
-typedef struct AdmissionRequest { /* SEQUENCE */
- enum {
- eAdmissionRequest_callModel = (1 << 31),
- eAdmissionRequest_destinationInfo = (1 << 30),
- eAdmissionRequest_destCallSignalAddress = (1 << 29),
- eAdmissionRequest_destExtraCallInfo = (1 << 28),
- eAdmissionRequest_srcCallSignalAddress = (1 << 27),
- eAdmissionRequest_nonStandardData = (1 << 26),
- eAdmissionRequest_callServices = (1 << 25),
- eAdmissionRequest_canMapAlias = (1 << 24),
- eAdmissionRequest_callIdentifier = (1 << 23),
- eAdmissionRequest_srcAlternatives = (1 << 22),
- eAdmissionRequest_destAlternatives = (1 << 21),
- eAdmissionRequest_gatekeeperIdentifier = (1 << 20),
- eAdmissionRequest_tokens = (1 << 19),
- eAdmissionRequest_cryptoTokens = (1 << 18),
- eAdmissionRequest_integrityCheckValue = (1 << 17),
- eAdmissionRequest_transportQOS = (1 << 16),
- eAdmissionRequest_willSupplyUUIEs = (1 << 15),
- eAdmissionRequest_callLinkage = (1 << 14),
- eAdmissionRequest_gatewayDataRate = (1 << 13),
- eAdmissionRequest_capacity = (1 << 12),
- eAdmissionRequest_circuitInfo = (1 << 11),
- eAdmissionRequest_desiredProtocols = (1 << 10),
- eAdmissionRequest_desiredTunnelledProtocol = (1 << 9),
- eAdmissionRequest_featureSet = (1 << 8),
- eAdmissionRequest_genericData = (1 << 7),
- } options;
- TransportAddress destCallSignalAddress;
- TransportAddress srcCallSignalAddress;
-} AdmissionRequest;
-
-typedef struct AdmissionConfirm { /* SEQUENCE */
- enum {
- eAdmissionConfirm_irrFrequency = (1 << 31),
- eAdmissionConfirm_nonStandardData = (1 << 30),
- eAdmissionConfirm_destinationInfo = (1 << 29),
- eAdmissionConfirm_destExtraCallInfo = (1 << 28),
- eAdmissionConfirm_destinationType = (1 << 27),
- eAdmissionConfirm_remoteExtensionAddress = (1 << 26),
- eAdmissionConfirm_alternateEndpoints = (1 << 25),
- eAdmissionConfirm_tokens = (1 << 24),
- eAdmissionConfirm_cryptoTokens = (1 << 23),
- eAdmissionConfirm_integrityCheckValue = (1 << 22),
- eAdmissionConfirm_transportQOS = (1 << 21),
- eAdmissionConfirm_willRespondToIRR = (1 << 20),
- eAdmissionConfirm_uuiesRequested = (1 << 19),
- eAdmissionConfirm_language = (1 << 18),
- eAdmissionConfirm_alternateTransportAddresses = (1 << 17),
- eAdmissionConfirm_useSpecifiedTransport = (1 << 16),
- eAdmissionConfirm_circuitInfo = (1 << 15),
- eAdmissionConfirm_usageSpec = (1 << 14),
- eAdmissionConfirm_supportedProtocols = (1 << 13),
- eAdmissionConfirm_serviceControl = (1 << 12),
- eAdmissionConfirm_multipleCalls = (1 << 11),
- eAdmissionConfirm_featureSet = (1 << 10),
- eAdmissionConfirm_genericData = (1 << 9),
- } options;
- TransportAddress destCallSignalAddress;
-} AdmissionConfirm;
-
-typedef struct LocationRequest { /* SEQUENCE */
- enum {
- eLocationRequest_endpointIdentifier = (1 << 31),
- eLocationRequest_nonStandardData = (1 << 30),
- eLocationRequest_sourceInfo = (1 << 29),
- eLocationRequest_canMapAlias = (1 << 28),
- eLocationRequest_gatekeeperIdentifier = (1 << 27),
- eLocationRequest_tokens = (1 << 26),
- eLocationRequest_cryptoTokens = (1 << 25),
- eLocationRequest_integrityCheckValue = (1 << 24),
- eLocationRequest_desiredProtocols = (1 << 23),
- eLocationRequest_desiredTunnelledProtocol = (1 << 22),
- eLocationRequest_featureSet = (1 << 21),
- eLocationRequest_genericData = (1 << 20),
- eLocationRequest_hopCount = (1 << 19),
- eLocationRequest_circuitInfo = (1 << 18),
- } options;
- TransportAddress replyAddress;
-} LocationRequest;
-
-typedef struct LocationConfirm { /* SEQUENCE */
- enum {
- eLocationConfirm_nonStandardData = (1 << 31),
- eLocationConfirm_destinationInfo = (1 << 30),
- eLocationConfirm_destExtraCallInfo = (1 << 29),
- eLocationConfirm_destinationType = (1 << 28),
- eLocationConfirm_remoteExtensionAddress = (1 << 27),
- eLocationConfirm_alternateEndpoints = (1 << 26),
- eLocationConfirm_tokens = (1 << 25),
- eLocationConfirm_cryptoTokens = (1 << 24),
- eLocationConfirm_integrityCheckValue = (1 << 23),
- eLocationConfirm_alternateTransportAddresses = (1 << 22),
- eLocationConfirm_supportedProtocols = (1 << 21),
- eLocationConfirm_multipleCalls = (1 << 20),
- eLocationConfirm_featureSet = (1 << 19),
- eLocationConfirm_genericData = (1 << 18),
- eLocationConfirm_circuitInfo = (1 << 17),
- eLocationConfirm_serviceControl = (1 << 16),
- } options;
- TransportAddress callSignalAddress;
- TransportAddress rasAddress;
-} LocationConfirm;
-
-typedef struct InfoRequestResponse_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} InfoRequestResponse_callSignalAddress;
-
-typedef struct InfoRequestResponse { /* SEQUENCE */
- enum {
- eInfoRequestResponse_nonStandardData = (1 << 31),
- eInfoRequestResponse_endpointAlias = (1 << 30),
- eInfoRequestResponse_perCallInfo = (1 << 29),
- eInfoRequestResponse_tokens = (1 << 28),
- eInfoRequestResponse_cryptoTokens = (1 << 27),
- eInfoRequestResponse_integrityCheckValue = (1 << 26),
- eInfoRequestResponse_needResponse = (1 << 25),
- eInfoRequestResponse_capacity = (1 << 24),
- eInfoRequestResponse_irrStatus = (1 << 23),
- eInfoRequestResponse_unsolicited = (1 << 22),
- eInfoRequestResponse_genericData = (1 << 21),
- } options;
- TransportAddress rasAddress;
- InfoRequestResponse_callSignalAddress callSignalAddress;
-} InfoRequestResponse;
-
-typedef struct RasMessage { /* CHOICE */
- enum {
- eRasMessage_gatekeeperRequest,
- eRasMessage_gatekeeperConfirm,
- eRasMessage_gatekeeperReject,
- eRasMessage_registrationRequest,
- eRasMessage_registrationConfirm,
- eRasMessage_registrationReject,
- eRasMessage_unregistrationRequest,
- eRasMessage_unregistrationConfirm,
- eRasMessage_unregistrationReject,
- eRasMessage_admissionRequest,
- eRasMessage_admissionConfirm,
- eRasMessage_admissionReject,
- eRasMessage_bandwidthRequest,
- eRasMessage_bandwidthConfirm,
- eRasMessage_bandwidthReject,
- eRasMessage_disengageRequest,
- eRasMessage_disengageConfirm,
- eRasMessage_disengageReject,
- eRasMessage_locationRequest,
- eRasMessage_locationConfirm,
- eRasMessage_locationReject,
- eRasMessage_infoRequest,
- eRasMessage_infoRequestResponse,
- eRasMessage_nonStandardMessage,
- eRasMessage_unknownMessageResponse,
- eRasMessage_requestInProgress,
- eRasMessage_resourcesAvailableIndicate,
- eRasMessage_resourcesAvailableConfirm,
- eRasMessage_infoRequestAck,
- eRasMessage_infoRequestNak,
- eRasMessage_serviceControlIndication,
- eRasMessage_serviceControlResponse,
- } choice;
- union {
- GatekeeperRequest gatekeeperRequest;
- GatekeeperConfirm gatekeeperConfirm;
- RegistrationRequest registrationRequest;
- RegistrationConfirm registrationConfirm;
- UnregistrationRequest unregistrationRequest;
- AdmissionRequest admissionRequest;
- AdmissionConfirm admissionConfirm;
- LocationRequest locationRequest;
- LocationConfirm locationConfirm;
- InfoRequestResponse infoRequestResponse;
- };
-} RasMessage;
diff --git a/net/ipv4/netfilter/ip_nat_helper_h323.c b/net/ipv4/netfilter/ip_nat_helper_h323.c
index a0bc883..6f19c20 100644
--- a/net/ipv4/netfilter/ip_nat_helper_h323.c
+++ b/net/ipv4/netfilter/ip_nat_helper_h323.c
@@ -41,65 +41,12 @@
#include <linux/netfilter_ipv4/ip_conntrack_h323.h>
#include <linux/netfilter_ipv4/ip_conntrack_helper.h>
-#include "ip_conntrack_helper_h323_asn1.h"
-
#if 0
#define DEBUGP printk
#else
#define DEBUGP(format, args...)
#endif
-extern int get_h245_addr(unsigned char *data, H245_TransportAddress * addr,
- u_int32_t * ip, u_int16_t * port);
-extern int get_h225_addr(unsigned char *data, TransportAddress * addr,
- u_int32_t * ip, u_int16_t * port);
-extern void ip_conntrack_h245_expect(struct ip_conntrack *new,
- struct ip_conntrack_expect *this);
-extern void ip_conntrack_q931_expect(struct ip_conntrack *new,
- struct ip_conntrack_expect *this);
-extern int (*set_h245_addr_hook) (struct sk_buff ** pskb,
- unsigned char **data, int dataoff,
- H245_TransportAddress * addr,
- u_int32_t ip, u_int16_t port);
-extern int (*set_h225_addr_hook) (struct sk_buff ** pskb,
- unsigned char **data, int dataoff,
- TransportAddress * addr,
- u_int32_t ip, u_int16_t port);
-extern int (*set_sig_addr_hook) (struct sk_buff ** pskb,
- struct ip_conntrack * ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data,
- TransportAddress * addr, int count);
-extern int (*set_ras_addr_hook) (struct sk_buff ** pskb,
- struct ip_conntrack * ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data,
- TransportAddress * addr, int count);
-extern int (*nat_rtp_rtcp_hook) (struct sk_buff ** pskb,
- struct ip_conntrack * ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- H245_TransportAddress * addr,
- u_int16_t port, u_int16_t rtp_port,
- struct ip_conntrack_expect * rtp_exp,
- struct ip_conntrack_expect * rtcp_exp);
-extern int (*nat_t120_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- H245_TransportAddress * addr, u_int16_t port,
- struct ip_conntrack_expect * exp);
-extern int (*nat_h245_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- TransportAddress * addr, u_int16_t port,
- struct ip_conntrack_expect * exp);
-extern int (*nat_q931_hook) (struct sk_buff ** pskb, struct ip_conntrack * ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, TransportAddress * addr,
- int idx, u_int16_t port,
- struct ip_conntrack_expect * exp);
-
-
/****************************************************************************/
static int set_addr(struct sk_buff **pskb,
unsigned char **data, int dataoff,
next prev parent reply other threads:[~2006-04-06 10:04 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-06 10:04 [NETFILTER 00/12]: Netfilter Update Patrick McHardy
2006-04-06 10:04 ` [NETFILTER 01/12]: Add helper functions for mass hook registration/unregistration Patrick McHardy
2006-04-06 15:42 ` Jones Desougi
2006-04-06 16:10 ` Patrick McHardy
2006-04-06 21:11 ` David S. Miller
2006-04-06 10:04 ` [NETFILTER 02/12]: Clean up hook registration Patrick McHardy
2006-04-06 21:12 ` David S. Miller
2006-04-06 10:04 ` [NETFILTER 03/12]: Fix section mismatch warnings Patrick McHardy
2006-04-06 21:13 ` David S. Miller
2006-04-06 22:42 ` Patrick McHardy
2006-04-06 10:04 ` Patrick McHardy [this message]
2006-04-06 21:13 ` [NETFILTER 04/12]: H.323 helper: move some function prototypes to ip_conntrack_h323.h David S. Miller
2006-04-06 10:05 ` [NETFILTER 05/12]: H.323 helper: change EXPORT_SYMBOL to EXPORT_SYMBOL_GPL Patrick McHardy
2006-04-06 21:14 ` David S. Miller
2006-04-06 10:05 ` [NETFILTER 06/12]: H.323 helper: make get_h245_addr() static Patrick McHardy
2006-04-06 21:15 ` David S. Miller
2006-04-06 10:05 ` [NETFILTER 07/12]: H.323 helper: add parameter 'default_rrq_ttl' Patrick McHardy
2006-04-06 21:15 ` David S. Miller
2006-04-06 10:05 ` [NETFILTER 08/12]: H.323 helper: update Changelog Patrick McHardy
2006-04-06 21:17 ` David S. Miller
2006-04-06 22:36 ` Patrick McHardy
2006-04-06 10:05 ` [NETFILTER 09/12]: Fix IP_NF_CONNTRACK_NETLINK dependency Patrick McHardy
2006-04-06 21:17 ` David S. Miller
2006-04-06 10:05 ` [NETFILTER 10/12]: Introduce infrastructure for address family specific operations Patrick McHardy
2006-04-06 21:18 ` David S. Miller
2006-04-06 10:05 ` [NETFILTER 11/12]: Add address family specific checksum helpers Patrick McHardy
2006-04-06 21:18 ` David S. Miller
2006-04-06 10:05 ` [NETFILTER 12/12]: Convert conntrack/ipt_REJECT to new checksumming functions Patrick McHardy
2006-04-06 21:19 ` David S. Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060406100458.17409.70510.sendpatchset@localhost.localdomain \
--to=kaber@trash.net \
--cc=davem@davemloft.net \
--cc=netfilter-devel@lists.netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.