diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-30 16:40:38 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-06-30 16:40:38 +0000 |
commit | e9d15cbea7a98184521c851500176da7aa424012 (patch) | |
tree | d3d6aa7ea86d11ecaa6e88efbc46a5dde1c63ea5 /addons/ooh323c/src | |
parent | b85bdd32a783a8f07004d41db8a696645685a331 (diff) |
Move Asterisk-addons modules into the main Asterisk source tree.
Someone asked yesterday, "is there a good reason why we can't just put these
modules in Asterisk?". After a brief discussion, as long as the modules are
clearly set aside in their own directory and not enabled by default, it is
perfectly fine.
For more information about why a module goes in addons, see README-addons.txt.
chan_ooh323 does not currently compile as it is behind some trunk API updates.
However, it will not build by default, so it should be okay for now.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@204413 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'addons/ooh323c/src')
66 files changed, 173681 insertions, 0 deletions
diff --git a/addons/ooh323c/src/Makefile.in b/addons/ooh323c/src/Makefile.in new file mode 100644 index 000000000..d3a96024b --- /dev/null +++ b/addons/ooh323c/src/Makefile.in @@ -0,0 +1,564 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_HEADER = $(INSTALL_DATA) +transform = @program_transform_name@ +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +AMTAR = @AMTAR@ +AS = @AS@ +AWK = @AWK@ +CC = @CC@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +INSTALLPREFIX = @INSTALLPREFIX@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +OBJDUMP = @OBJDUMP@ +OOH323CDRIVERDIR = @OOH323CDRIVERDIR@ +OOH323CFLAGS = @OOH323CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +VERSION = @VERSION@ +am__include = @am__include@ +am__quote = @am__quote@ +install_sh = @install_sh@ +AUTOMAKE_OPTIONS = gnu +CFLAGS = @OOH323CFLAGS@ + +noinst_LIBRARIES = libooh323c.a + +libooh323c_a_SOURCES = ooLogChan.h ooLogChan.c ooUtils.c ooUtils.h ooGkClient.h ooGkClient.c context.c ooCommon.h ooDateTime.h ooDateTime.c decode.c dlist.c encode.c errmgmt.c memheap.c memheap.h ooasn1.h ootrace.h ootrace.c oochannels.c oochannels.h ooh245.c ooh245.h oohdr.h ooper.h ooports.c ooports.h ooq931.c ooq931.h ooCapability.c ooCapability.h ooSocket.c ooSocket.h ootypes.h perutil.c eventHandler.c eventHandler.h ooCalls.c ooCalls.h ooStackCmds.c ooStackCmds.h ooh323.c ooh323.h ooh323ep.c ooh323ep.h printHandler.c printHandler.h rtctype.c rtctype.h ooTimer.c ooTimer.h h323/H235-SECURITY-MESSAGESDec.c h323/H235-SECURITY-MESSAGESEnc.c h323/H235-SECURITY-MESSAGES.h h323/H323-MESSAGES.c h323/H323-MESSAGESDec.c h323/H323-MESSAGESEnc.c h323/H323-MESSAGES.h h323/MULTIMEDIA-SYSTEM-CONTROL.c h323/MULTIMEDIA-SYSTEM-CONTROLDec.c h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c h323/MULTIMEDIA-SYSTEM-CONTROL.h + +INCLUDES = -Ih323 + + +#include_HEADERS = ooUtils.h memheap.h ooCommon.h ooDateTime.h ooGkClient.h ooasn1.h oochannels.h ootrace.h ooh245.h ooports.h ooq931.h oohdr.h ooper.h ooSocket.h ooTimer.h ootypes.h eventHandler.h ooCapability.h ooCalls.h ooStackCmds.h ooh323.h ooh323ep.h printHandler.h rtctype.h h323/H235-SECURITY-MESSAGES.h h323/H323-MESSAGES.h h323/MULTIMEDIA-SYSTEM-CONTROL.h +EXTRA_DIST = oostk.dsp +subdir = ooh323c/src +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + +libooh323c_a_AR = $(AR) cru +libooh323c_a_LIBADD = +am_libooh323c_a_OBJECTS = ooLogChan.$(OBJEXT) ooUtils.$(OBJEXT) \ + ooGkClient.$(OBJEXT) context.$(OBJEXT) ooDateTime.$(OBJEXT) \ + decode.$(OBJEXT) dlist.$(OBJEXT) encode.$(OBJEXT) \ + errmgmt.$(OBJEXT) memheap.$(OBJEXT) ootrace.$(OBJEXT) \ + oochannels.$(OBJEXT) ooh245.$(OBJEXT) ooports.$(OBJEXT) \ + ooq931.$(OBJEXT) ooCapability.$(OBJEXT) ooSocket.$(OBJEXT) \ + perutil.$(OBJEXT) eventHandler.$(OBJEXT) ooCalls.$(OBJEXT) \ + ooStackCmds.$(OBJEXT) ooh323.$(OBJEXT) ooh323ep.$(OBJEXT) \ + printHandler.$(OBJEXT) rtctype.$(OBJEXT) ooTimer.$(OBJEXT) \ + H235-SECURITY-MESSAGESDec.$(OBJEXT) \ + H235-SECURITY-MESSAGESEnc.$(OBJEXT) H323-MESSAGES.$(OBJEXT) \ + H323-MESSAGESDec.$(OBJEXT) H323-MESSAGESEnc.$(OBJEXT) \ + MULTIMEDIA-SYSTEM-CONTROL.$(OBJEXT) \ + MULTIMEDIA-SYSTEM-CONTROLDec.$(OBJEXT) \ + MULTIMEDIA-SYSTEM-CONTROLEnc.$(OBJEXT) +libooh323c_a_OBJECTS = $(am_libooh323c_a_OBJECTS) + +DEFS = @DEFS@ +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/H235-SECURITY-MESSAGESDec.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/H235-SECURITY-MESSAGESEnc.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/H323-MESSAGES.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/H323-MESSAGESDec.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/H323-MESSAGESEnc.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/context.Po ./$(DEPDIR)/decode.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/dlist.Po ./$(DEPDIR)/encode.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/errmgmt.Po ./$(DEPDIR)/eventHandler.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/memheap.Po ./$(DEPDIR)/ooCalls.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooCapability.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooDateTime.Po ./$(DEPDIR)/ooGkClient.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooLogChan.Po ./$(DEPDIR)/ooSocket.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooStackCmds.Po ./$(DEPDIR)/ooTimer.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooUtils.Po ./$(DEPDIR)/oochannels.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooh245.Po ./$(DEPDIR)/ooh323.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooh323ep.Po ./$(DEPDIR)/ooports.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ooq931.Po ./$(DEPDIR)/ootrace.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/perutil.Po ./$(DEPDIR)/printHandler.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/rtctype.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(libooh323c_a_SOURCES) +DIST_COMMON = Makefile.am Makefile.in +SOURCES = $(libooh323c_a_SOURCES) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu ooh323c/src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +AR = ar + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +H235-SECURITY-MESSAGESDec.$(OBJEXT): h323/H235-SECURITY-MESSAGESDec.c +H235-SECURITY-MESSAGESEnc.$(OBJEXT): h323/H235-SECURITY-MESSAGESEnc.c +H323-MESSAGES.$(OBJEXT): h323/H323-MESSAGES.c +H323-MESSAGESDec.$(OBJEXT): h323/H323-MESSAGESDec.c +H323-MESSAGESEnc.$(OBJEXT): h323/H323-MESSAGESEnc.c +MULTIMEDIA-SYSTEM-CONTROL.$(OBJEXT): h323/MULTIMEDIA-SYSTEM-CONTROL.c +MULTIMEDIA-SYSTEM-CONTROLDec.$(OBJEXT): \ + h323/MULTIMEDIA-SYSTEM-CONTROLDec.c +MULTIMEDIA-SYSTEM-CONTROLEnc.$(OBJEXT): \ + h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c +libooh323c.a: $(libooh323c_a_OBJECTS) $(libooh323c_a_DEPENDENCIES) + -rm -f libooh323c.a + $(libooh323c_a_AR) libooh323c.a $(libooh323c_a_OBJECTS) $(libooh323c_a_LIBADD) + $(RANLIB) libooh323c.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H235-SECURITY-MESSAGESDec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H235-SECURITY-MESSAGESEnc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H323-MESSAGES.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H323-MESSAGESDec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H323-MESSAGESEnc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/errmgmt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventHandler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memheap.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooCalls.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooCapability.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooDateTime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooGkClient.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooLogChan.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooSocket.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooStackCmds.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooTimer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooUtils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oochannels.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooh245.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooh323.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooh323ep.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooports.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ooq931.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ootrace.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perutil.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printHandler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtctype.Po@am__quote@ + +distclean-depend: + -rm -rf ./$(DEPDIR) + +.c.o: +@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + +.c.obj: +@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(COMPILE) -c `cygpath -w $<` + +.c.lo: +@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +H235-SECURITY-MESSAGESDec.o: h323/H235-SECURITY-MESSAGESDec.c +@AMDEP_TRUE@ source='h323/H235-SECURITY-MESSAGESDec.c' object='H235-SECURITY-MESSAGESDec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H235-SECURITY-MESSAGESDec.Po' tmpdepfile='$(DEPDIR)/H235-SECURITY-MESSAGESDec.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H235-SECURITY-MESSAGESDec.o `test -f 'h323/H235-SECURITY-MESSAGESDec.c' || echo '$(srcdir)/'`h323/H235-SECURITY-MESSAGESDec.c + +H235-SECURITY-MESSAGESDec.obj: h323/H235-SECURITY-MESSAGESDec.c +@AMDEP_TRUE@ source='h323/H235-SECURITY-MESSAGESDec.c' object='H235-SECURITY-MESSAGESDec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H235-SECURITY-MESSAGESDec.Po' tmpdepfile='$(DEPDIR)/H235-SECURITY-MESSAGESDec.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H235-SECURITY-MESSAGESDec.obj `cygpath -w h323/H235-SECURITY-MESSAGESDec.c` + +H235-SECURITY-MESSAGESDec.lo: h323/H235-SECURITY-MESSAGESDec.c +@AMDEP_TRUE@ source='h323/H235-SECURITY-MESSAGESDec.c' object='H235-SECURITY-MESSAGESDec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H235-SECURITY-MESSAGESDec.Plo' tmpdepfile='$(DEPDIR)/H235-SECURITY-MESSAGESDec.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H235-SECURITY-MESSAGESDec.lo `test -f 'h323/H235-SECURITY-MESSAGESDec.c' || echo '$(srcdir)/'`h323/H235-SECURITY-MESSAGESDec.c + +H235-SECURITY-MESSAGESEnc.o: h323/H235-SECURITY-MESSAGESEnc.c +@AMDEP_TRUE@ source='h323/H235-SECURITY-MESSAGESEnc.c' object='H235-SECURITY-MESSAGESEnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H235-SECURITY-MESSAGESEnc.Po' tmpdepfile='$(DEPDIR)/H235-SECURITY-MESSAGESEnc.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H235-SECURITY-MESSAGESEnc.o `test -f 'h323/H235-SECURITY-MESSAGESEnc.c' || echo '$(srcdir)/'`h323/H235-SECURITY-MESSAGESEnc.c + +H235-SECURITY-MESSAGESEnc.obj: h323/H235-SECURITY-MESSAGESEnc.c +@AMDEP_TRUE@ source='h323/H235-SECURITY-MESSAGESEnc.c' object='H235-SECURITY-MESSAGESEnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H235-SECURITY-MESSAGESEnc.Po' tmpdepfile='$(DEPDIR)/H235-SECURITY-MESSAGESEnc.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H235-SECURITY-MESSAGESEnc.obj `cygpath -w h323/H235-SECURITY-MESSAGESEnc.c` + +H235-SECURITY-MESSAGESEnc.lo: h323/H235-SECURITY-MESSAGESEnc.c +@AMDEP_TRUE@ source='h323/H235-SECURITY-MESSAGESEnc.c' object='H235-SECURITY-MESSAGESEnc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H235-SECURITY-MESSAGESEnc.Plo' tmpdepfile='$(DEPDIR)/H235-SECURITY-MESSAGESEnc.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H235-SECURITY-MESSAGESEnc.lo `test -f 'h323/H235-SECURITY-MESSAGESEnc.c' || echo '$(srcdir)/'`h323/H235-SECURITY-MESSAGESEnc.c + +H323-MESSAGES.o: h323/H323-MESSAGES.c +@AMDEP_TRUE@ source='h323/H323-MESSAGES.c' object='H323-MESSAGES.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGES.Po' tmpdepfile='$(DEPDIR)/H323-MESSAGES.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGES.o `test -f 'h323/H323-MESSAGES.c' || echo '$(srcdir)/'`h323/H323-MESSAGES.c + +H323-MESSAGES.obj: h323/H323-MESSAGES.c +@AMDEP_TRUE@ source='h323/H323-MESSAGES.c' object='H323-MESSAGES.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGES.Po' tmpdepfile='$(DEPDIR)/H323-MESSAGES.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGES.obj `cygpath -w h323/H323-MESSAGES.c` + +H323-MESSAGES.lo: h323/H323-MESSAGES.c +@AMDEP_TRUE@ source='h323/H323-MESSAGES.c' object='H323-MESSAGES.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGES.Plo' tmpdepfile='$(DEPDIR)/H323-MESSAGES.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGES.lo `test -f 'h323/H323-MESSAGES.c' || echo '$(srcdir)/'`h323/H323-MESSAGES.c + +H323-MESSAGESDec.o: h323/H323-MESSAGESDec.c +@AMDEP_TRUE@ source='h323/H323-MESSAGESDec.c' object='H323-MESSAGESDec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGESDec.Po' tmpdepfile='$(DEPDIR)/H323-MESSAGESDec.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGESDec.o `test -f 'h323/H323-MESSAGESDec.c' || echo '$(srcdir)/'`h323/H323-MESSAGESDec.c + +H323-MESSAGESDec.obj: h323/H323-MESSAGESDec.c +@AMDEP_TRUE@ source='h323/H323-MESSAGESDec.c' object='H323-MESSAGESDec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGESDec.Po' tmpdepfile='$(DEPDIR)/H323-MESSAGESDec.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGESDec.obj `cygpath -w h323/H323-MESSAGESDec.c` + +H323-MESSAGESDec.lo: h323/H323-MESSAGESDec.c +@AMDEP_TRUE@ source='h323/H323-MESSAGESDec.c' object='H323-MESSAGESDec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGESDec.Plo' tmpdepfile='$(DEPDIR)/H323-MESSAGESDec.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGESDec.lo `test -f 'h323/H323-MESSAGESDec.c' || echo '$(srcdir)/'`h323/H323-MESSAGESDec.c + +H323-MESSAGESEnc.o: h323/H323-MESSAGESEnc.c +@AMDEP_TRUE@ source='h323/H323-MESSAGESEnc.c' object='H323-MESSAGESEnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGESEnc.Po' tmpdepfile='$(DEPDIR)/H323-MESSAGESEnc.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGESEnc.o `test -f 'h323/H323-MESSAGESEnc.c' || echo '$(srcdir)/'`h323/H323-MESSAGESEnc.c + +H323-MESSAGESEnc.obj: h323/H323-MESSAGESEnc.c +@AMDEP_TRUE@ source='h323/H323-MESSAGESEnc.c' object='H323-MESSAGESEnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGESEnc.Po' tmpdepfile='$(DEPDIR)/H323-MESSAGESEnc.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGESEnc.obj `cygpath -w h323/H323-MESSAGESEnc.c` + +H323-MESSAGESEnc.lo: h323/H323-MESSAGESEnc.c +@AMDEP_TRUE@ source='h323/H323-MESSAGESEnc.c' object='H323-MESSAGESEnc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/H323-MESSAGESEnc.Plo' tmpdepfile='$(DEPDIR)/H323-MESSAGESEnc.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o H323-MESSAGESEnc.lo `test -f 'h323/H323-MESSAGESEnc.c' || echo '$(srcdir)/'`h323/H323-MESSAGESEnc.c + +MULTIMEDIA-SYSTEM-CONTROL.o: h323/MULTIMEDIA-SYSTEM-CONTROL.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROL.c' object='MULTIMEDIA-SYSTEM-CONTROL.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.Po' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROL.o `test -f 'h323/MULTIMEDIA-SYSTEM-CONTROL.c' || echo '$(srcdir)/'`h323/MULTIMEDIA-SYSTEM-CONTROL.c + +MULTIMEDIA-SYSTEM-CONTROL.obj: h323/MULTIMEDIA-SYSTEM-CONTROL.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROL.c' object='MULTIMEDIA-SYSTEM-CONTROL.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.Po' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROL.obj `cygpath -w h323/MULTIMEDIA-SYSTEM-CONTROL.c` + +MULTIMEDIA-SYSTEM-CONTROL.lo: h323/MULTIMEDIA-SYSTEM-CONTROL.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROL.c' object='MULTIMEDIA-SYSTEM-CONTROL.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.Plo' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROL.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROL.lo `test -f 'h323/MULTIMEDIA-SYSTEM-CONTROL.c' || echo '$(srcdir)/'`h323/MULTIMEDIA-SYSTEM-CONTROL.c + +MULTIMEDIA-SYSTEM-CONTROLDec.o: h323/MULTIMEDIA-SYSTEM-CONTROLDec.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROLDec.c' object='MULTIMEDIA-SYSTEM-CONTROLDec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.Po' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROLDec.o `test -f 'h323/MULTIMEDIA-SYSTEM-CONTROLDec.c' || echo '$(srcdir)/'`h323/MULTIMEDIA-SYSTEM-CONTROLDec.c + +MULTIMEDIA-SYSTEM-CONTROLDec.obj: h323/MULTIMEDIA-SYSTEM-CONTROLDec.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROLDec.c' object='MULTIMEDIA-SYSTEM-CONTROLDec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.Po' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROLDec.obj `cygpath -w h323/MULTIMEDIA-SYSTEM-CONTROLDec.c` + +MULTIMEDIA-SYSTEM-CONTROLDec.lo: h323/MULTIMEDIA-SYSTEM-CONTROLDec.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROLDec.c' object='MULTIMEDIA-SYSTEM-CONTROLDec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.Plo' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLDec.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROLDec.lo `test -f 'h323/MULTIMEDIA-SYSTEM-CONTROLDec.c' || echo '$(srcdir)/'`h323/MULTIMEDIA-SYSTEM-CONTROLDec.c + +MULTIMEDIA-SYSTEM-CONTROLEnc.o: h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c' object='MULTIMEDIA-SYSTEM-CONTROLEnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.Po' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROLEnc.o `test -f 'h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c' || echo '$(srcdir)/'`h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c + +MULTIMEDIA-SYSTEM-CONTROLEnc.obj: h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c' object='MULTIMEDIA-SYSTEM-CONTROLEnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.Po' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROLEnc.obj `cygpath -w h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c` + +MULTIMEDIA-SYSTEM-CONTROLEnc.lo: h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c +@AMDEP_TRUE@ source='h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c' object='MULTIMEDIA-SYSTEM-CONTROLEnc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@ depfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.Plo' tmpdepfile='$(DEPDIR)/MULTIMEDIA-SYSTEM-CONTROLEnc.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MULTIMEDIA-SYSTEM-CONTROLEnc.lo `test -f 'h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c' || echo '$(srcdir)/'`h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c +CCDEPMODE = @CCDEPMODE@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ETAGS = etags +ETAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LIBRARIES) + +installdirs: + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-compile distclean-depend \ + distclean-generic distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +uninstall-am: uninstall-info-am + +.PHONY: GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES distclean distclean-compile \ + distclean-depend distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am info info-am install \ + install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + tags uninstall uninstall-am uninstall-info-am + + +opt: + $(MAKE) "CFLAGS = -DGNU -D_GNU_SOURCE -D_REENTRANT -O2 -D_COMPACT" all + +debug: + $(MAKE) "CFLAGS = -g -DGNU -D_GNU_SOURCE -D_REENTRANT" all + +profile: + $(MAKE) "CFLAGS = -g -pg -DGNU -D_GNU_SOURCE -D_REENTRANT" all +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/addons/ooh323c/src/context.c b/addons/ooh323c/src/context.c new file mode 100644 index 000000000..d243f88a0 --- /dev/null +++ b/addons/ooh323c/src/context.c @@ -0,0 +1,140 @@ +/* + * Copyright (C) 1997-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +#include "ooasn1.h" +#include <stdlib.h> + +int initContext (OOCTXT* pctxt) +{ + memset (pctxt, 0, sizeof(OOCTXT)); + + memHeapCreate (&pctxt->pTypeMemHeap); + pctxt->pMsgMemHeap = pctxt->pTypeMemHeap; + memHeapAddRef (&pctxt->pMsgMemHeap); + + return ASN_OK; +} + +int initContextBuffer +(OOCTXT* pctxt, const ASN1OCTET* bufaddr, ASN1UINT bufsiz) +{ + if (bufaddr == 0) { + /* dynamic buffer */ + if (bufsiz == 0) bufsiz = ASN_K_ENCBUFSIZ; + pctxt->buffer.data = (ASN1OCTET*) + memHeapAlloc (&pctxt->pMsgMemHeap, bufsiz); + if (!pctxt->buffer.data) return ASN_E_NOMEM; + pctxt->buffer.size = bufsiz; + pctxt->buffer.dynamic = TRUE; + } + else { + /* static buffer */ + pctxt->buffer.data = (ASN1OCTET*) bufaddr; + pctxt->buffer.size = bufsiz; + pctxt->buffer.dynamic = FALSE; + } + + pctxt->buffer.byteIndex = 0; + pctxt->buffer.bitOffset = 8; + + return ASN_OK; +} + +int initSubContext (OOCTXT* pctxt, OOCTXT* psrc) +{ + int stat = ASN_OK; + memset (pctxt, 0, sizeof(OOCTXT)); + pctxt->pTypeMemHeap = psrc->pTypeMemHeap; + memHeapAddRef (&pctxt->pTypeMemHeap); + pctxt->pMsgMemHeap = psrc->pMsgMemHeap; + memHeapAddRef (&pctxt->pMsgMemHeap); + pctxt->flags = psrc->flags; + pctxt->buffer.dynamic = TRUE; + pctxt->buffer.byteIndex = 0; + pctxt->buffer.bitOffset = 8; + return stat; +} + +void freeContext (OOCTXT* pctxt) +{ + ASN1BOOL saveBuf = (pctxt->flags & ASN1SAVEBUF) != 0; + + if (pctxt->buffer.dynamic && pctxt->buffer.data) { + if (saveBuf) { + memHeapMarkSaved (&pctxt->pMsgMemHeap, pctxt->buffer.data, TRUE); + } + else { + memHeapFreePtr (&pctxt->pMsgMemHeap, pctxt->buffer.data); + } + } + + errFreeParms (&pctxt->errInfo); + + memHeapRelease (&pctxt->pTypeMemHeap); + memHeapRelease (&pctxt->pMsgMemHeap); +} + +void copyContext (OOCTXT* pdest, OOCTXT* psrc) +{ + memcpy (&pdest->buffer, &psrc->buffer, sizeof(ASN1BUFFER)); + pdest->flags = psrc->flags; +} + +void setCtxtFlag (OOCTXT* pctxt, ASN1USINT mask) +{ + pctxt->flags |= mask; +} + +void clearCtxtFlag (OOCTXT* pctxt, ASN1USINT mask) +{ + pctxt->flags &= ~mask; +} + +int setPERBufferUsingCtxt (OOCTXT* pTarget, OOCTXT* pSource) +{ + int stat = initContextBuffer + (pTarget, pSource->buffer.data, pSource->buffer.size); + + if (ASN_OK == stat) { + pTarget->buffer.byteIndex = pSource->buffer.byteIndex; + pTarget->buffer.bitOffset = pSource->buffer.bitOffset; + } + + return stat; +} + +int setPERBuffer (OOCTXT* pctxt, + ASN1OCTET* bufaddr, ASN1UINT bufsiz, ASN1BOOL aligned) +{ + int stat = initContextBuffer (pctxt, bufaddr, bufsiz); + if(stat != ASN_OK) return stat; + + + return ASN_OK; +} + +OOCTXT* newContext () +{ + OOCTXT* pctxt = (OOCTXT*) ASN1CRTMALLOC0 (sizeof(OOCTXT)); + if (pctxt) { + if (initContext(pctxt) != ASN_OK) { + ASN1CRTFREE0 (pctxt); + pctxt = 0; + } + pctxt->flags |= ASN1DYNCTXT; + } + return (pctxt); +} diff --git a/addons/ooh323c/src/decode.c b/addons/ooh323c/src/decode.c new file mode 100644 index 000000000..d09247c94 --- /dev/null +++ b/addons/ooh323c/src/decode.c @@ -0,0 +1,1050 @@ +/* + * Copyright (C) 1997-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +#include "ooasn1.h" + +static int decode16BitConstrainedString +(OOCTXT* pctxt, Asn116BitCharString* pString, Asn116BitCharSet* pCharSet); + +static int decodeOctets +(OOCTXT* pctxt, ASN1OCTET* pbuffer, ASN1UINT bufsiz, ASN1UINT nbits); + +static int getComponentLength (OOCTXT* pctxt, ASN1UINT itemBits); + +int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits) +{ + unsigned char mask; + + if (nbits == 0) { + *pvalue = 0; + return ASN_OK; + } + + /* If the number of bits is less than the current bit offset, mask */ + /* off the required number of bits and return.. */ + + if (nbits < (unsigned)pctxt->buffer.bitOffset) { + /* Check if buffer contains number of bits requested */ + + if (pctxt->buffer.byteIndex >= pctxt->buffer.size) + return LOG_ASN1ERR (pctxt, ASN_E_ENDOFBUF); + + pctxt->buffer.bitOffset -= nbits; + + *pvalue = ((pctxt->buffer.data[pctxt->buffer.byteIndex]) >> + pctxt->buffer.bitOffset) & ((1 << nbits) - 1); + + return ASN_OK; + } + + /* Otherwise, we first need to mask off the remaining bits in the */ + /* current byte, followed by a loop to extract bits from full bytes, */ + /* followed by logic to mask of remaining bits from the start of */ + /* of the last byte.. */ + + else { + /* Check if buffer contains number of bits requested */ + + int nbytes = (((nbits - pctxt->buffer.bitOffset) + 7) / 8); + + if ((pctxt->buffer.byteIndex + nbytes) >= pctxt->buffer.size) { + return LOG_ASN1ERR (pctxt, ASN_E_ENDOFBUF); + } + + /* first read current byte remaining bits */ + mask = ((1 << pctxt->buffer.bitOffset) - 1); + + *pvalue = (pctxt->buffer.data[pctxt->buffer.byteIndex]) & mask; + + nbits -= pctxt->buffer.bitOffset; + pctxt->buffer.bitOffset = 8; + pctxt->buffer.byteIndex++; + + /* second read bytes from next byteIndex */ + while (nbits >= 8) { + *pvalue = (*pvalue << 8) | + (pctxt->buffer.data[pctxt->buffer.byteIndex]); + pctxt->buffer.byteIndex++; + nbits -= 8; + } + + /* third read bits & set bitoffset of the byteIndex */ + if (nbits > 0) { + pctxt->buffer.bitOffset = 8 - nbits; + *pvalue = (*pvalue << nbits) | + ((pctxt->buffer.data[pctxt->buffer.byteIndex]) >> + pctxt->buffer.bitOffset); + } + + return ASN_OK; + } +} + +int decodeBitString +(OOCTXT* pctxt, ASN1UINT* numbits_p, ASN1OCTET* buffer, ASN1UINT bufsiz) +{ + ASN1UINT bitcnt; + int lstat, octidx = 0, stat; + Asn1SizeCnst* pSizeList = pctxt->pSizeConstraint; + ASN1BOOL doAlign; + + for (*numbits_p = 0;;) { + lstat = decodeLength (pctxt, &bitcnt); + if (lstat < 0) return LOG_ASN1ERR (pctxt, lstat); + + if (bitcnt > 0) { + *numbits_p += bitcnt; + + stat = bitAndOctetStringAlignmentTest + (pSizeList, bitcnt, TRUE, &doAlign); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (doAlign) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + stat = decodeOctets (pctxt, &buffer[octidx], bufsiz - octidx, bitcnt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + if (lstat == ASN_OK_FRAG) { + octidx += (bitcnt / 8); + } + else break; + } + + return ASN_OK; +} + +int decodeBMPString +(OOCTXT* pctxt, ASN1BMPString* pvalue, Asn116BitCharSet* permCharSet) +{ + Asn116BitCharSet charSet; + int stat; + + /* Set character set */ + + init16BitCharSet (&charSet, BMP_FIRST, BMP_LAST, BMP_ABITS, BMP_UBITS); + + if (permCharSet) { + set16BitCharSet (pctxt, &charSet, permCharSet); + } + + /* Decode constrained string */ + + stat = decode16BitConstrainedString (pctxt, pvalue, &charSet); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + return (stat); +} + +int decodeByteAlign (OOCTXT* pctxt) +{ + if (pctxt->buffer.bitOffset != 8) { + pctxt->buffer.byteIndex++; + pctxt->buffer.bitOffset = 8; + } + return ASN_OK; +} + +int decodeConstrainedStringEx +(OOCTXT* pctxt, const char** string, const char* charSet, + ASN1UINT abits, ASN1UINT ubits, ASN1UINT canSetBits) +{ + int stat; + char* tmpstr; + + ASN1UINT i, idx, len, nbits = abits; + + /* note: need to save size constraint for use in alignCharStr */ + /* because it will be cleared in decodeLength from the context.. */ + Asn1SizeCnst* psize = pctxt->pSizeConstraint; + + /* Decode length */ + + stat = decodeLength (pctxt, &len); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Byte-align */ + + if (alignCharStr (pctxt, len, nbits, psize)) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + /* Decode data */ + + tmpstr = (char*) ASN1MALLOC (pctxt, len+1); + if (0 != tmpstr) { + if (nbits >= canSetBits && canSetBits > 4) { + for (i = 0; i < len; i++) { + if ((stat = decodeBits (pctxt, &idx, nbits)) == ASN_OK) { + tmpstr[i] = (char) idx; + } + else break; + } + } + else if (0 != charSet) { + ASN1UINT nchars = strlen (charSet); + for (i = 0; i < len; i++) { + if ((stat = decodeBits (pctxt, &idx, nbits)) == ASN_OK) { + if (idx < nchars) { + tmpstr[i] = charSet[idx]; + } + else return LOG_ASN1ERR (pctxt, ASN_E_CONSVIO); + } + else break; + } + } + else stat = ASN_E_INVPARAM; + + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + tmpstr[i] = '\0'; /* add null-terminator */ + } + else + return LOG_ASN1ERR (pctxt, ASN_E_NOMEM); + + *string = tmpstr; + + return ASN_OK; +} + +int decodeConsInteger +(OOCTXT* pctxt, ASN1INT* pvalue, ASN1INT lower, ASN1INT upper) +{ + ASN1UINT range_value = upper - lower; + ASN1UINT adjusted_value; + int stat = ASN_OK; + + if (range_value != ASN1UINT_MAX) { range_value += 1; } + + if (lower > upper) + return ASN_E_RANGERR; + else if (lower != upper) { + stat = decodeConsWholeNumber (pctxt, &adjusted_value, range_value); + if (stat == ASN_OK) { + *pvalue = adjusted_value + lower; + + if (*pvalue < lower || *pvalue > upper) + stat = ASN_E_CONSVIO; + } + } + else { + *pvalue = lower; + } + + return stat; +} + +int decodeConsUInt8 +(OOCTXT* pctxt, ASN1UINT8* pvalue, ASN1UINT lower, ASN1UINT upper) +{ + ASN1UINT range_value, value; + ASN1UINT adjusted_value; + int stat = ASN_OK; + + /* Check for special case: if lower is 0 and upper is ASN1UINT_MAX, */ + /* set range to ASN1UINT_MAX; otherwise to upper - lower + 1 */ + + range_value = (lower == 0 && upper == ASN1UINT_MAX) ? + ASN1UINT_MAX : upper - lower + 1; + + if (lower != upper) { + ASN1UINT range_bitcnt; + + /* If range is <= 255, bit-field case (10.5.7a) */ + + if (range_value <= 255) { + range_bitcnt = getUIntBitCount (range_value - 1); + } + + /* If range is exactly 256, one-octet case (10.5.7b) */ + + else if (range_value == 256) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + range_bitcnt = 8; + } + stat = decodeBits (pctxt, &adjusted_value, range_bitcnt); + if (stat == ASN_OK) { + value = adjusted_value + lower; + + if (value < lower || value > upper) + stat = ASN_E_CONSVIO; + + *pvalue = (ASN1OCTET)value; + } + } + else *pvalue = (ASN1OCTET)lower; + + return stat; +} + +int decodeConsUInt16 +(OOCTXT* pctxt, ASN1USINT* pvalue, ASN1UINT lower, ASN1UINT upper) +{ + ASN1UINT range_value, value; + ASN1UINT adjusted_value; + int stat = ASN_OK; + + /* Check for special case: if lower is 0 and upper is ASN1UINT_MAX, */ + /* set range to ASN1UINT_MAX; otherwise to upper - lower + 1 */ + + range_value = (lower == 0 && upper == ASN1UINT_MAX) ? + ASN1UINT_MAX : upper - lower + 1; + + if (lower != upper) { + stat = decodeConsWholeNumber (pctxt, &adjusted_value, range_value); + if (stat == ASN_OK) { + value = adjusted_value + lower; + + /* Verify value is within given range (ED, 1/15/2002) */ + if (value < lower || value > upper) + stat = ASN_E_CONSVIO; + *pvalue = (ASN1USINT) value; + } + } + else *pvalue = (ASN1USINT) lower; + + return stat; +} + +int decodeConsUnsigned +(OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower, ASN1UINT upper) +{ + ASN1UINT range_value; + ASN1UINT adjusted_value; + int stat = ASN_OK; + + /* Check for special case: if lower is 0 and upper is ASN1UINT_MAX, */ + /* set range to ASN1UINT_MAX; otherwise to upper - lower + 1 */ + + range_value = (lower == 0 && upper == ASN1UINT_MAX) ? + ASN1UINT_MAX : upper - lower + 1; + + if (lower != upper) { + stat = decodeConsWholeNumber (pctxt, &adjusted_value, range_value); + if (stat == ASN_OK) { + *pvalue = adjusted_value + lower; + if (*pvalue < lower || *pvalue > upper) + stat = ASN_E_CONSVIO; + } + } + else *pvalue = lower; + + return stat; +} + +int decodeConsWholeNumber +(OOCTXT* pctxt, ASN1UINT* padjusted_value, ASN1UINT range_value) +{ + ASN1UINT nocts, range_bitcnt; + int stat; + + /* If unaligned, decode non-negative binary integer in the minimum */ + /* number of bits necessary to represent the range (10.5.6) */ + + if (!TRUE) { + range_bitcnt = getUIntBitCount (range_value - 1); + } + + /* If aligned, encoding depended on range value (10.5.7) */ + + else { /* aligned */ + + /* If range is <= 255, bit-field case (10.5.7a) */ + + if (range_value <= 255) { + range_bitcnt = getUIntBitCount (range_value - 1); + } + + /* If range is exactly 256, one-octet case (10.5.7b) */ + + else if (range_value == 256) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + range_bitcnt = 8; + } + + /* If range > 256 and <= 64k (65535), two-octet case (10.5.7c) */ + + else if (range_value <= 65536) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + range_bitcnt = 16; + } + + /* If range > 64k, indefinite-length case (10.5.7d) */ + + else { + stat = decodeBits (pctxt, &nocts, 2); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + range_bitcnt = (nocts + 1) * 8; + } + } + + return decodeBits (pctxt, padjusted_value, range_bitcnt); +} + +int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr) +{ + ASN1UINT nocts; + ASN1OCTET* ptmp; + int nbits, stat = ASN_OK; + + /* If "fast copy" option is not set (ASN1FATSCOPY) or if constructed, + * copy the bit string value into a dynamic memory buffer; + * otherwise, store the pointer to the value in the decode + * buffer in the data pointer argument. */ + + if (pctxt->flags & ASN1FASTCOPY) { + /* check is it possible to do optimized decoding */ + + ASN1OCTET bit; + ASN1UINT byteIndex = pctxt->buffer.byteIndex; /* save byte index */ + ASN1USINT bitOffset = pctxt->buffer.bitOffset; /* save bit offset */ + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = DECODEBIT (pctxt, &bit); /* read first bit of length determinant */ + if (bit == 1 && stat == ASN_OK) + stat = DECODEBIT (pctxt, &bit); /* read second bit */ + + pctxt->buffer.byteIndex = byteIndex; /* restore byte index */ + pctxt->buffer.bitOffset = bitOffset; /* restore bit offset */ + + /* if either first or second bit != 0 - not fragmented */ + + if (bit == 0 && stat == ASN_OK) { + ASN1UINT bitcnt; + + stat = decodeLength (pctxt, &bitcnt); + if (stat != 0) return LOG_ASN1ERR (pctxt, stat); + + pBitStr->numbits = bitcnt; + if (bitcnt > 0) { + pBitStr->data = ASN1BUFPTR (pctxt); + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + else + pBitStr->data = 0; + + return stat; + } + } + + nbits = getComponentLength (pctxt, 1); + + if (nbits < 0) return LOG_ASN1ERR (pctxt, nbits); + else if (nbits == 0) { + pBitStr->numbits = 0; + ptmp = 0; + } + + nocts = (nbits + 7) / 8; + + /* Allocate memory for the target string */ + + if (nocts > 0) { + ptmp = (ASN1OCTET*) ASN1MALLOC (pctxt, nocts); + if (0 == ptmp) return LOG_ASN1ERR (pctxt, ASN_E_NOMEM); + + /* Call static bit string decode function */ + + stat = decodeBitString (pctxt, &pBitStr->numbits, ptmp, nocts); + } + pBitStr->data = ptmp; + + return stat; +} + +int decodeDynOctetString (OOCTXT* pctxt, ASN1DynOctStr* pOctStr) +{ + ASN1OCTET* ptmp; + int nocts, stat; + + /* If "fast copy" option is not set (ASN1FASTCOPY) or if constructed, + * copy the octet string value into a dynamic memory buffer; + * otherwise, store the pointer to the value in the decode + * buffer in the data pointer argument. */ + + if (pctxt->flags & ASN1FASTCOPY) { + /* check if it is possible to do optimized decoding */ + + ASN1OCTET bit; + ASN1UINT byteIndex = pctxt->buffer.byteIndex; /* save byte index */ + ASN1USINT bitOffset = pctxt->buffer.bitOffset; /* save bit offset */ + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = DECODEBIT (pctxt, &bit); /* read first bit of length determinant */ + if (bit == 1 && stat == ASN_OK) + stat = DECODEBIT (pctxt, &bit); /* read second bit */ + + pctxt->buffer.byteIndex = byteIndex; /* restore byte index */ + pctxt->buffer.bitOffset = bitOffset; /* restore bit offset */ + + /* if either first or second bit != 0 - not fragmented */ + + if (bit == 0 && stat == ASN_OK) { + ASN1UINT octcnt; + + stat = decodeLength (pctxt, &octcnt); + if (stat != 0) return LOG_ASN1ERR (pctxt, stat); + + pOctStr->numocts = octcnt; + if (octcnt > 0) { + pOctStr->data = ASN1BUFPTR (pctxt); + + stat = moveBitCursor (pctxt, octcnt * 8); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + else + pOctStr->data = 0; + + return stat; + } + } + + nocts = getComponentLength (pctxt, 8); + + if (nocts < 0) return LOG_ASN1ERR (pctxt, nocts); + else if (nocts == 0) { + pOctStr->numocts = 0; + ptmp = 0; + } + + /* Allocate memory for the target string */ + + else { + ptmp = (ASN1OCTET*) ASN1MALLOC (pctxt, nocts); + if (0 == ptmp) return LOG_ASN1ERR (pctxt, ASN_E_NOMEM); + } + + /* Call static octet string decode function */ + + stat = decodeOctetString (pctxt, &pOctStr->numocts, ptmp, nocts); + + pOctStr->data = ptmp; + + return stat; +} + +int decodeLength (OOCTXT* pctxt, ASN1UINT* pvalue) +{ + Asn1SizeCnst* pSize; + ASN1UINT lower, upper; + ASN1BOOL bitValue, extbit; + int stat; + + /* If size constraint is present and extendable, decode extension */ + /* bit.. */ + + if (isExtendableSize(pctxt->pSizeConstraint)) { + stat = DECODEBIT (pctxt, &extbit); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + else extbit = 0; + + /* Now use the value of the extension bit to select the proper */ + /* size constraint range specification.. */ + + pSize = getSizeConstraint (pctxt, extbit); + + lower = (pSize) ? pSize->lower : 0; + upper = (pSize) ? pSize->upper : ASN1UINT_MAX; + + /* Reset the size constraint in the context block structure */ + + pctxt->pSizeConstraint = 0; + + /* If upper limit is less than 64k, constrained case */ + + if (upper < 65536) { + if (lower == upper) { + *pvalue = 0; + stat = ASN_OK; + } + else + stat = decodeConsWholeNumber (pctxt, pvalue, (upper - lower + 1)); + + if (stat == ASN_OK) *pvalue += lower; + } + else { + /* unconstrained case OR constrained with upper bound >= 64K*/ + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = DECODEBIT (pctxt, &bitValue); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (bitValue == 0) { + stat = decodeBits (pctxt, pvalue, 7); /* 10.9.3.6 */ + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + else { + stat = DECODEBIT (pctxt, &bitValue); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (bitValue == 0) { + stat = decodeBits (pctxt, pvalue, 14); /* 10.9.3.7 */ + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + else { + ASN1UINT multiplier; + + stat = decodeBits (pctxt, &multiplier, 6); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + *pvalue = 16384 * multiplier; + + stat = ASN_OK_FRAG; + } + } + } + + return stat; +} + +int decodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue) +{ + ASN1UINT len; + int stat, j; + unsigned subid; + ASN1UINT b; + + /* Decode unconstrained length */ + + if ((stat = decodeLength (pctxt, &len)) < 0) { + return LOG_ASN1ERR (pctxt, stat); + } + + /* Copy contents to a byte-aligned local buffer */ + + j = 0; + while (len > 0 && stat == ASN_OK) { + if (j < ASN_K_MAXSUBIDS) { + + /* Parse a subidentifier out of the contents field */ + + pvalue->subid[j] = 0; + do { + if ((stat = decodeBits (pctxt, &b, 8)) == ASN_OK) { + pvalue->subid[j] = (pvalue->subid[j] * 128) + (b & 0x7F); + len--; + } + } while (b & 0x80 && stat == ASN_OK); + + /* Handle the first subidentifier special case: the first two */ + /* sub-id's are encoded into one using the formula (x * 40) + y */ + + if (j == 0) { + subid = pvalue->subid[0]; + pvalue->subid[0] = ((subid / 40) >= 2) ? 2 : subid / 40; + pvalue->subid[1] = (pvalue->subid[0] == 2) ? + subid - 80 : subid % 40; + j = 2; + } + else j++; + } + else + stat = ASN_E_INVOBJID; + } + + pvalue->numids = j; + if (stat == ASN_OK && len != 0) stat = ASN_E_INVLEN; + + return (stat); +} + +static int decodeOctets +(OOCTXT* pctxt, ASN1OCTET* pbuffer, ASN1UINT bufsiz, ASN1UINT nbits) +{ + ASN1UINT nbytes = (nbits + 7) / 8 ; + ASN1UINT i = 0, j; + ASN1UINT rshift = pctxt->buffer.bitOffset; + ASN1UINT lshift = 8 - rshift; + ASN1UINT nbitsInLastOctet; + ASN1OCTET mask; + int stat; + + /* Check to make sure buffer contains number of bits requested */ + + if ((pctxt->buffer.byteIndex + nbytes) > pctxt->buffer.size) { + return LOG_ASN1ERR (pctxt, ASN_E_ENDOFBUF); + } + + /* Check to make sure buffer is big enough to hold requested */ + /* number of bits.. */ + + if (nbytes > bufsiz) { + return LOG_ASN1ERR (pctxt, ASN_E_STROVFLW); + } + + /* If on a byte boundary, can do a direct memcpy to target buffer */ + + if (pctxt->buffer.bitOffset == 8) { + memcpy (pbuffer, &pctxt->buffer.data[pctxt->buffer.byteIndex], nbytes); + stat = moveBitCursor (pctxt, nbits); + if (stat != ASN_OK) return stat; + i = nbytes - 1; nbits %= 8; + } + else { + while (nbits >= 8) { + + /* Transfer lower bits from stream octet to upper bits of */ + /* target octet.. */ + + pbuffer[i] = pctxt->buffer.data[pctxt->buffer.byteIndex++] + << lshift; + + /* Transfer upper bits from next stream octet to lower bits */ + /* target octet.. */ + + pbuffer[i++] |= pctxt->buffer.data[pctxt->buffer.byteIndex] + >> rshift; + + nbits -= 8; + } + + /* Copy last partial byte */ + + if (nbits >= rshift) { + pbuffer[i] = + pctxt->buffer.data[pctxt->buffer.byteIndex++] << lshift; + + nbitsInLastOctet = nbits - rshift; + + if (nbitsInLastOctet > 0) { + pbuffer[i] |= + pctxt->buffer.data[pctxt->buffer.byteIndex] >> rshift; + } + + pctxt->buffer.bitOffset = 8 - nbitsInLastOctet; + } + else if (nbits > 0) { /* nbits < rshift */ + pbuffer[i] = + pctxt->buffer.data[pctxt->buffer.byteIndex] << lshift; + pctxt->buffer.bitOffset = rshift - nbits; + } + } + + /* Mask unused bits off of last byte */ + + if (nbits > 0) { + mask = 0; + for (j = 0; j < nbits; j++) { + mask >>= 1; + mask |= 0x80; + } + pbuffer[i] &= mask; + } + + return ASN_OK; +} + +int decodeOctetString +(OOCTXT* pctxt, ASN1UINT* numocts_p, ASN1OCTET* buffer, ASN1UINT bufsiz) +{ + ASN1UINT octcnt; + int lstat, octidx = 0, stat; + Asn1SizeCnst* pSizeList = pctxt->pSizeConstraint; + + for (*numocts_p = 0;;) { + lstat = decodeLength (pctxt, &octcnt); + if (lstat < 0) return LOG_ASN1ERR (pctxt, lstat); + + if (octcnt > 0) { + *numocts_p += octcnt; + + if (TRUE) { + ASN1BOOL doAlign; + + stat = bitAndOctetStringAlignmentTest + (pSizeList, octcnt, FALSE, &doAlign); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (doAlign) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + } + + stat = decodeOctets (pctxt, &buffer[octidx], + bufsiz - octidx, (octcnt * 8)); + + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + if (lstat == ASN_OK_FRAG) { + octidx += octcnt; + } + else break; + } + + return ASN_OK; +} + +int decodeOpenType +(OOCTXT* pctxt, const ASN1OCTET** object_p2, ASN1UINT* numocts_p) +{ + ASN1DynOctStr octStr; + int stat; + + stat = decodeDynOctetString (pctxt, &octStr); + if (stat == ASN_OK) { + *numocts_p = octStr.numocts; + *object_p2 = octStr.data; + } + + return stat; +} + +int decodeSemiConsInteger (OOCTXT* pctxt, ASN1INT* pvalue, ASN1INT lower) +{ + signed char b; + unsigned char ub; + ASN1UINT nbytes; + int stat; + + stat = decodeLength (pctxt, &nbytes); + if (stat < 0) return LOG_ASN1ERR (pctxt, stat); + + if (nbytes > 0) { + + /* Align buffer */ + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Decode first byte into a signed byte value and assign to integer. */ + /* This should handle sign extension.. */ + + stat = decodeOctets (pctxt, (ASN1OCTET*)&b, 1, 8); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + *pvalue = b; + nbytes--; + + /* Decode remaining bytes and add to result */ + + while (nbytes > 0) { + stat = decodeOctets (pctxt, (ASN1OCTET*)&ub, 1, 8); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + *pvalue = (*pvalue * 256) + ub; + nbytes--; + } + } + else { /* nbytes == 0 */ + *pvalue = 0; + } + if (lower > ASN1INT_MIN) + *pvalue += lower; + + return ASN_OK; +} + +int decodeSemiConsUnsigned (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower) +{ + ASN1UINT nbytes; + int stat; + + stat = decodeLength (pctxt, &nbytes); + if (stat < 0) return LOG_ASN1ERR (pctxt, stat); + + + if (nbytes > 0) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = decodeBits (pctxt, pvalue, nbytes * 8); + } + else + *pvalue = 0; + *pvalue += lower; + + return stat; +} + +int decodeSmallNonNegWholeNumber (OOCTXT* pctxt, ASN1UINT* pvalue) +{ + ASN1BOOL bitValue; + ASN1UINT len; + int ret; + + if ((ret = DECODEBIT (pctxt, &bitValue)) != ASN_OK) + return ret; + + if (bitValue == 0) { + return decodeBits (pctxt, pvalue, 6); /* 10.6.1 */ + } + else { + if ((ret = decodeLength (pctxt, &len)) < 0) + return ret; + + if ((ret = decodeByteAlign (pctxt)) != ASN_OK) + return ret; + + return decodeBits (pctxt, pvalue, len*8); + } +} + +int decodeVarWidthCharString (OOCTXT* pctxt, const char** pvalue) +{ + int stat; + ASN1OCTET* tmpstr; + ASN1UINT len; + + /* note: need to save size constraint for use in alignCharStr */ + /* because it will be cleared in decodeLength from the context.. */ + Asn1SizeCnst* psize = pctxt->pSizeConstraint; + + /* Decode length */ + + stat = decodeLength (pctxt, &len); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Byte-align */ + + if (alignCharStr (pctxt, len, 8, psize)) { + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + /* Decode data */ + + tmpstr = (ASN1OCTET*) ASN1MALLOC (pctxt, len + 1); + if (0 != tmpstr) { + if ((stat = decodeOctets (pctxt, tmpstr, len, len * 8)) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + + tmpstr[len] = '\0'; /* add null-terminator */ + } + else + return LOG_ASN1ERR (pctxt, ASN_E_NOMEM); + + *pvalue = (char*)tmpstr; + + return ASN_OK; +} + +static int decode16BitConstrainedString +(OOCTXT* pctxt, Asn116BitCharString* pString, Asn116BitCharSet* pCharSet) +{ + ASN1UINT i, idx, nbits = pCharSet->alignedBits; + int stat; + + /* Decode length */ + + stat = decodeLength (pctxt, &pString->nchars); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Byte-align */ + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Decode data */ + + pString->data = (ASN116BITCHAR*) + ASN1MALLOC (pctxt, pString->nchars*sizeof(ASN116BITCHAR)); + + if (pString->data) { + for (i = 0; i < pString->nchars; i++) { + stat = decodeBits (pctxt, &idx, nbits); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + pString->data[i] = (pCharSet->charSet.data == 0) ? + idx + pCharSet->firstChar : pCharSet->charSet.data[idx]; + } + } + else + return LOG_ASN1ERR (pctxt, ASN_E_NOMEM); + + return ASN_OK; +} + +static int getComponentLength (OOCTXT* pctxt, ASN1UINT itemBits) +{ + OOCTXT lctxt; + ASN1UINT len, totalLen = 0; + int stat; + + stat = initSubContext (&lctxt, pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) { + freeContext (&lctxt); + return LOG_ASN1ERR (pctxt, stat); + } + lctxt.pSizeConstraint = pctxt->pSizeConstraint; + + for (;;) { + stat = decodeLength (&lctxt, &len); + if (stat < 0) { + freeContext (&lctxt); + return LOG_ASN1ERR (pctxt, stat); + } + + totalLen += len; + + if (stat == ASN_OK_FRAG) { + stat = moveBitCursor (&lctxt, len * itemBits); + if (stat != ASN_OK) { + freeContext (&lctxt); + return LOG_ASN1ERR (pctxt, stat); + } + } + else break; + } + + freeContext (&lctxt); + + return totalLen; +} + +int moveBitCursor (OOCTXT* pctxt, int bitOffset) +{ + int currBitOffset = + (pctxt->buffer.byteIndex * 8) + (8 - pctxt->buffer.bitOffset); + + currBitOffset += bitOffset; + + pctxt->buffer.byteIndex = (currBitOffset / 8); + pctxt->buffer.bitOffset = 8 - (currBitOffset % 8); + + if (pctxt->buffer.byteIndex > pctxt->buffer.size) { + return (ASN_E_ENDOFBUF); + } + + return ASN_OK; +} diff --git a/addons/ooh323c/src/dlist.c b/addons/ooh323c/src/dlist.c new file mode 100644 index 000000000..52fc87d42 --- /dev/null +++ b/addons/ooh323c/src/dlist.c @@ -0,0 +1,256 @@ +/* + * Copyright (C) 1997-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +#include "ooasn1.h" + +void dListInit (DList* pList) +{ + if (pList) { + pList->count = 0; + pList->head = (DListNode*) 0; + pList->tail = (DListNode*) 0; + } +} + +DListNode* dListAppend (OOCTXT* pctxt, DList* pList, void* pData) +{ + DListNode* pListNode = (DListNode*) + memAlloc (pctxt, sizeof(DListNode)); + + if (0 != pListNode) { + pListNode->data = pData; + pListNode->next = (DListNode*) 0; + if (0 != pList->tail) { + pList->tail->next = pListNode; + pListNode->prev = pList->tail; + } + if (0 == pList->head) { + pList->head = pListNode; + pListNode->prev = (DListNode*) 0; + } + pList->tail = pListNode; + pList->count++; + } + + return pListNode; +} + +DListNode* dListAppendNode (OOCTXT* pctxt, DList* pList, void* pData) +{ + DListNode* pListNode = + (DListNode*) (((char*)pData) - sizeof(DListNode)); + + if (0 != pListNode) { + pListNode->data = pData; + pListNode->next = (DListNode*) 0; + if (0 != pList->tail) { + pList->tail->next = pListNode; + pListNode->prev = pList->tail; + } + if (0 == pList->head) { + pList->head = pListNode; + pListNode->prev = (DListNode*) 0; + } + pList->tail = pListNode; + pList->count++; + } + + return pListNode; +} + +/* Delete the head node from the list and return the data item stored */ +/* in that node.. */ + +void* dListDeleteHead (OOCTXT* pctxt, DList* pList) +{ + DListNode* pNode = (0 != pList) ? pList->head : 0; + if (0 != pNode) { + void* pdata = pNode->data; + dListRemove (pList, pNode); + memFreePtr (pctxt, pNode); + return pdata; + } + return 0; +} + +/* Free all nodes, but not the data */ +void dListFreeNodes (OOCTXT* pctxt, DList* pList) +{ + DListNode* pNode, *pNextNode; + + for (pNode = pList->head; pNode != 0; pNode = pNextNode) { + pNextNode = pNode->next; + memFreePtr (pctxt, pNode); + } + pList->count = 0; + pList->head = pList->tail = 0; +} + +/* Free all nodes and their data */ +void dListFreeAll (OOCTXT* pctxt, DList* pList) +{ + DListNode* pNode, *pNextNode; + + for (pNode = pList->head; pNode != 0; pNode = pNextNode) { + pNextNode = pNode->next; + + memFreePtr (pctxt, pNode->data); + memFreePtr (pctxt, pNode); + } + pList->count = 0; + pList->head = pList->tail = 0; +} + +/* Remove node from list. Node is not freed */ +void dListRemove (DList* pList, DListNode* node) +{ + if(node->next != 0) { + node->next->prev = node->prev; + } + else { /* tail */ + pList->tail = node->prev; + } + if(node->prev != 0) { + node->prev->next = node->next; + } + else { /* head */ + pList->head = node->next; + } + pList->count--; +} + +void dListFindAndRemove(DList* pList, void *data) +{ + DListNode *pNode, *pNextNode; + for(pNode = pList->head; pNode !=0; pNode = pNextNode){ + pNextNode = pNode->next; + if(pNode->data == data) /* pointer comparison*/ + break; + } + if(pNode) + dListRemove(pList, pNode); +} + +DListNode* dListFindByIndex (DList* pList, int index) +{ + DListNode* curNode; + int i; + + if(index >= (int)pList->count) return 0; + for(i = 0, curNode = pList->head; i < index && curNode != 0; i++) { + curNode = curNode->next; + } + return curNode; +} + +/* Insert item before given node */ + +DListNode* dListInsertBefore +(OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData) +{ + DListNode* pListNode = (DListNode*) memAlloc (pctxt, sizeof(DListNode)); + + if (0 != pListNode) { + pListNode->data = (void*)pData; + + if (node == 0) { /* insert before end (as last element) */ + pListNode->next = (DListNode*) 0; + if (0 != pList->tail) { + pList->tail->next = pListNode; + pListNode->prev = pList->tail; + } + if (0 == pList->head) { + pList->head = pListNode; + pListNode->prev = (DListNode*) 0; + } + pList->tail = pListNode; + } + else if (node == pList->head) { /* insert as head (head case) */ + pListNode->next = pList->head; + pListNode->prev = (DListNode*) 0; + if(pList->head != 0) { + pList->head->prev = pListNode; + } + if(pList->tail == 0) { + pList->tail = pListNode; + } + pList->head = pListNode; + } + else { /* other cases */ + pListNode->next = node; + pListNode->prev = node->prev; + node->prev = pListNode; + /* here, pListNode->prev always should be non-zero, + * because if pListNode->prev is zero - it is head case (see above). + */ + pListNode->prev->next = pListNode; + } + + pList->count++; + } + + return pListNode; +} + +/* Insert item after given node */ + +DListNode* dListInsertAfter +(OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData) +{ + DListNode* pListNode = (DListNode*) memAlloc (pctxt, sizeof(DListNode)); + + if (0 != pListNode) { + pListNode->data = (void*)pData; + + if (node == 0) { /* insert as head (as first element) */ + pListNode->next = pList->head; + pListNode->prev = (DListNode*) 0; + if (pList->head != 0) { + pList->head->prev = pListNode; + } + if (pList->tail == 0) { + pList->tail = pListNode; + } + pList->head = pListNode; + } + else if (node == pList->tail) { /* insert as tail (as last element) */ + pListNode->next = (DListNode*) 0; + if (0 != pList->tail) { + pList->tail->next = pListNode; + pListNode->prev = pList->tail; + } + if (0 == pList->head) { + pList->head = pListNode; + pListNode->prev = (DListNode*) 0; + } + pList->tail = pListNode; + } + else { /* other cases */ + pListNode->next = node->next; + pListNode->prev = node; + node->next = pListNode; + /* here, pListNode->next always should be non-zero, + * because if pListNode->next is zero - it is tail case (see above). + */ + pListNode->next->prev = pListNode; + } + + pList->count++; + } + + return pListNode; +} + diff --git a/addons/ooh323c/src/dlist.h b/addons/ooh323c/src/dlist.h new file mode 100644 index 000000000..79663d999 --- /dev/null +++ b/addons/ooh323c/src/dlist.h @@ -0,0 +1,204 @@ +/* + * Copyright (C) 1997-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * @file dlist.h + * Doubly-linked list structures and utility functions. + */ +#ifndef _OODLIST_H_ +#define _OODLIST_H_ + +struct OOCTXT; + +/** + * @defgroup llfuns Doubly-linked list structures and utility functions. + * @{ + */ +typedef struct _DListNode { + void* data; + struct _DListNode* next; + struct _DListNode* prev; +} DListNode; + +typedef struct _DList { + unsigned int count; + DListNode* head; + DListNode* tail; +} DList; + +#define ALLOC_ASN1ELEMDNODE(pctxt,type) \ +(type*) (((char*)memHeapAllocZ (&(pctxt)->pTypeMemHeap, sizeof(type) + \ +sizeof(DListNode))) + sizeof(DListNode)) + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef EXTERN +#if defined (MAKE_DLL) +#define EXTERN __declspec(dllexport) +#elif defined (USEASN1DLL) +#define EXTERN __declspec(dllimport) +#else +#define EXTERN +#endif /* MAKE_DLL */ +#endif /* EXTERN */ + +/** + * This function appends an item to the linked list structure. The data item is + * passed into the function as a void pointer that can point to any object of + * any type. The memAlloc function is used to allocated the memory for the + * list node structure; therefore, all internal list memory will be released + * whenever memFree is called. The pointer to the data item itself is stored + * in the node structure - a copy is not made. + * + * @param pctxt A pointer to a context structure. This provides a + * storage area for the function to store all working + * variables that must be maintained between function + * calls. + * @param pList A pointer to a linked list structure onto which the data + * item is to be appended. A pointer to an updated linked + * list structure. + * @param pData A pointer to a data item to be appended to the list. + * @return A pointer to an allocated node structure used to link + * the given data value into the list. + */ +EXTERN DListNode* dListAppend +(struct OOCTXT* pctxt, DList* pList, void* pData); + +EXTERN DListNode* dListAppendNode +(struct OOCTXT* pctxt, DList* pList, void* pData); + +/** + * This function delete the head item from the list and returns a pointer + * the data item stored in that node. The memory for the node structure + * is released. + * + * @param pctxt A pointer to a context structure. This provides a + * storage area for the function to store all working + * variables that must be maintained between function + * calls. + * @param pList A pointer to the linked list structure from which + * the node will be deleted. + * @return A pointer to the data item stored in the deleted node. + */ +EXTERN void* dListDeleteHead (struct OOCTXT* pctxt, DList* pList); + +EXTERN DListNode* dListFindByIndex (DList* pList, int index); + +/** + * This function initializes a doubly linked list structure. It sets the number + * of elements to zero and sets all internal pointer values to NULL. A doubly + * linked-list structure is described by the DList type. Nodes of the list + * are of type DListNode. + * + * Memory for the structures is allocated using the memAlloc run-time + * function and is maintained within the context structure that is a required + * parameter to all dList functions. This memory is released when memFree + * is called or the Context is released. Unless otherwise noted, all data + * passed into the list functions is simply stored on the list by value (i.e. a + * deep-copy of the data is not done). + * + * @param pList A pointer to a linked list structure to be initialized. + */ +EXTERN void dListInit (DList* pList); + +/** + * This function removes all nodes from the linked list and releases the memory + * that was allocated for storing the node structures (DListNode). The data + * will not be released. + * + * @param pctxt A pointer to a context structure. This provides a + * storage area for the function to store all working + * variables that must be maintained between function + * calls. + * @param pList A pointer to a linked list structure onto which the data + * item is to be appended. A pointer to an updated linked + * list structure. + */ +EXTERN void dListFreeNodes (struct OOCTXT* pctxt, DList* pList); + +/** + * This function removes all nodes from the linked list structure and releases + * the memory that was allocated for storing the node structures + * (DListNode) and for data. The memory for data in each node must have + * been previously allocated with calls to memAlloc, memAllocZ, or + * memRealloc functions. + * + * @param pctxt Pointer to a context structure. This provides a + * storage area for the function to store all working + * variables that must be maintained between function + * calls. + * @param pList Pointer to a linked list structure. + */ +EXTERN void dListFreeAll (struct OOCTXT* pctxt, DList* pList); + +/** + * This function inserts an item into the linked list structure before the + * specified element. + * + * @param pctxt Pointer to a context structure. + * @param pList A pointer to a linked list structure into which the + * data item is to be inserted. + * @param node The position in the list where the item is to be + * inserted. The item will be inserted before this + * node or appended to the list if node is null. + * @param pData A pointer to the data item to be inserted to the list. + * @return A pointer to an allocated node structure used to + * link the given data value into the list. + */ +EXTERN DListNode* dListInsertBefore +(struct OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData); + +/** + * This function inserts an item into the linked list structure after the + * specified element. + * + * @param pctxt Pointer to a context structure. + * @param pList A pointer to a linked list structure into which the + * data item is to be inserted. + * @param node The position in the list where the item is to be + * inserted. The item will be inserted after this + * node or added as the head element if node is null. + * @param pData A pointer to the data item to be inserted to the list. + * @return A pointer to an allocated node structure used to + * link the given data value into the list. + */ +EXTERN DListNode* dListInsertAfter +(struct OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData); + +/** + * This function removes a node from the linked list structure. The memAlloc + * function was used to allocate the memory for the list node structure, + * therefore, all internal list memory will be released whenever memFree or + * memFreePtr is called. + * + * @param pList A pointer to a linked list structure onto which the data + * item is to be removed. A pointer to an updated linked + * list structure. + * @param node A pointer to the node that is to be removed. It should + * already be in the linked list structure. + */ +EXTERN void dListRemove (DList* pList, DListNode* node); +void dListFindAndRemove(DList* pList, void* data); + +/** + * @} + */ +#ifdef __cplusplus +} +#endif + +#endif diff --git a/addons/ooh323c/src/encode.c b/addons/ooh323c/src/encode.c new file mode 100644 index 000000000..45e5916df --- /dev/null +++ b/addons/ooh323c/src/encode.c @@ -0,0 +1,1103 @@ +/* + * Copyright (C) 1997-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +#include <stdlib.h> +#include "ooasn1.h" + +static int encode16BitConstrainedString +(OOCTXT* pctxt, Asn116BitCharString value, Asn116BitCharSet* pCharSet); + +static int encode2sCompBinInt (OOCTXT* pctxt, ASN1INT value); +static int encodeNonNegBinInt (OOCTXT* pctxt, ASN1UINT value); +static int encodeUnconsLength (OOCTXT* pctxt, ASN1UINT value); +static int getIdentByteCount (ASN1UINT ident); + +int encodeBit (OOCTXT* pctxt, ASN1BOOL value) +{ + int stat = ASN_OK; + + /* If start of new byte, init to zero */ + + if (pctxt->buffer.bitOffset == 8) { + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + + /* Adjust bit offset and determine if at end of current byte */ + + if (--pctxt->buffer.bitOffset < 0) { + if (++pctxt->buffer.byteIndex >= pctxt->buffer.size) { + if ((stat = encodeExpandBuffer (pctxt, 1)) != ASN_OK) { + return stat; + } + } + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + pctxt->buffer.bitOffset = 7; + } + + /* Set single-bit value */ + + if (value) { + pctxt->buffer.data[pctxt->buffer.byteIndex] |= + ( 1 << pctxt->buffer.bitOffset ); + } + + /* If last bit in octet, set offsets to start new byte (ED, 9/7/01) */ + + if (pctxt->buffer.bitOffset == 0) { + pctxt->buffer.bitOffset = 8; + pctxt->buffer.byteIndex++; + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + + return stat; +} + +int encodeBits (OOCTXT* pctxt, ASN1UINT value, ASN1UINT nbits) +{ + int nbytes = (nbits + 7)/ 8, stat = ASN_OK; + + if (nbits == 0) return stat; + + /* If start of new byte, init to zero */ + + if (pctxt->buffer.bitOffset == 8) { + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + + /* Mask off unused bits from the front of the value */ + + if (nbits < (sizeof(ASN1UINT) * 8)) + value &= ((1 << nbits) - 1); + + /* If bits will fit in current byte, set them and return */ + + if (nbits < (unsigned)pctxt->buffer.bitOffset) { + pctxt->buffer.bitOffset -= nbits; + pctxt->buffer.data[pctxt->buffer.byteIndex] |= + ( value << pctxt->buffer.bitOffset ); + return stat; + } + + /* Check buffer space and allocate more memory if necessary */ + + stat = encodeCheckBuffer (pctxt, nbytes); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Set bits in remainder of the current byte and then loop */ + /* to set bits in subsequent bytes.. */ + + nbits -= pctxt->buffer.bitOffset; + pctxt->buffer.data[pctxt->buffer.byteIndex++] |= + (ASN1OCTET)( value >> nbits ); + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + + while (nbits >= 8) { + nbits -= 8; + pctxt->buffer.data[pctxt->buffer.byteIndex++] = + (ASN1OCTET)( value >> nbits ); + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + + /* copy final partial byte */ + + pctxt->buffer.bitOffset = 8 - nbits; + if (nbits > 0) { + pctxt->buffer.data[pctxt->buffer.byteIndex] = + (ASN1OCTET)((value & ((1 << nbits)-1)) << pctxt->buffer.bitOffset); + } + else + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + + return stat; +} + +int encodeBitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits) +{ + int lshift = pctxt->buffer.bitOffset; + int rshift = 8 - pctxt->buffer.bitOffset; + int stat = ASN_OK; + ASN1OCTET mask; + + if (nbits == 0) return ASN_OK; + + /* Mask off unused bits from the end of the value */ + + if (nbits < 8) { + switch (nbits) { + case 1: mask = 0x80; break; + case 2: mask = 0xC0; break; + case 3: mask = 0xE0; break; + case 4: mask = 0xF0; break; + case 5: mask = 0xF8; break; + case 6: mask = 0xFC; break; + case 7: mask = 0xFE; break; + default:; + } + value &= mask; + } + + /* If we are on a byte boundary, we can do a direct assignment */ + + if (pctxt->buffer.bitOffset == 8) { + pctxt->buffer.data[pctxt->buffer.byteIndex] = value; + if (nbits == 8) { + pctxt->buffer.byteIndex++; + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + else + pctxt->buffer.bitOffset -= nbits; + } + + /* Otherwise, need to set some bits in the first octet and */ + /* possibly some bits in the following octet.. */ + + else { + pctxt->buffer.data[pctxt->buffer.byteIndex] |= + (ASN1OCTET)(value >> rshift); + + pctxt->buffer.bitOffset -= nbits; + + if (pctxt->buffer.bitOffset < 0) { + pctxt->buffer.byteIndex++; + pctxt->buffer.data[pctxt->buffer.byteIndex] = + (ASN1OCTET)(value << lshift); + pctxt->buffer.bitOffset += 8; + } + } + + return stat; +} + +int encodeBitString (OOCTXT* pctxt, ASN1UINT numbits, const ASN1OCTET* data) +{ + int enclen, octidx = 0, stat; + Asn1SizeCnst* pSizeList = pctxt->pSizeConstraint; + + for (;;) { + if ((enclen = encodeLength (pctxt, numbits)) < 0) { + return LOG_ASN1ERR (pctxt, enclen); + } + + if (enclen > 0) { + ASN1BOOL doAlign; + + stat = bitAndOctetStringAlignmentTest + (pSizeList, numbits, TRUE, &doAlign); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (doAlign) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + stat = encodeOctets (pctxt, &data[octidx], enclen); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + if (enclen < (int)numbits) { + numbits -= enclen; + octidx += (enclen/8); + } + else break; + } + + return ASN_OK; +} + +int encodeBMPString +(OOCTXT* pctxt, ASN1BMPString value, Asn116BitCharSet* permCharSet) +{ + Asn116BitCharSet charSet; + int stat; + + /* Set character set */ + + init16BitCharSet (&charSet, BMP_FIRST, BMP_LAST, BMP_ABITS, BMP_UBITS); + + if (permCharSet) { + set16BitCharSet (pctxt, &charSet, permCharSet); + } + + /* Encode constrained string */ + + stat = encode16BitConstrainedString (pctxt, value, &charSet); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + return stat; +} + +int encodeByteAlign (OOCTXT* pctxt) +{ + if (pctxt->buffer.bitOffset != 8) { + if ((pctxt->buffer.byteIndex + 1) >= pctxt->buffer.size) { + int stat = encodeExpandBuffer (pctxt, 1); + if (stat != ASN_OK) return (stat); + } + pctxt->buffer.byteIndex++; + pctxt->buffer.bitOffset = 8; + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + + return ASN_OK; +} + +int encodeCheckBuffer (OOCTXT* pctxt, ASN1UINT nbytes) +{ + int stat = ASN_OK; + + /* Add one to required bytes because increment logic will always */ + /* init the byte at the incremented index to zero.. */ + + if ( ( pctxt->buffer.byteIndex + nbytes + 1 ) >= pctxt->buffer.size ) { + if ((stat = encodeExpandBuffer (pctxt, nbytes+1)) != ASN_OK) { + return LOG_ASN1ERR (pctxt, stat); + } + } + + return (stat); +} + +int encodeConsInteger +(OOCTXT* pctxt, ASN1INT value, ASN1INT lower, ASN1INT upper) +{ + ASN1UINT range_value; + ASN1UINT adjusted_value; + int stat; + + /* Check value against given range */ + + if (value < lower || value > upper) { + return ASN_E_CONSVIO; + } + + /* Adjust range value based on lower/upper signed values and */ + /* other possible conflicts.. */ + + if ((upper > 0 && lower >= 0) || (upper <= 0 && lower < 0)) { + range_value = upper - lower; + adjusted_value = value - lower; + } + else { + range_value = upper + abs(lower); + adjusted_value = value + abs(lower); + } + + if (range_value != ASN1UINT_MAX) { range_value += 1; } + + if (range_value == 0 || lower > upper) + stat = ASN_E_RANGERR; + else if (lower != upper) { + stat = encodeConsWholeNumber (pctxt, adjusted_value, range_value); + } + else + stat = ASN_OK; + + return stat; +} + +int encodeConsUnsigned +(OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower, ASN1UINT upper) +{ + ASN1UINT range_value; + ASN1UINT adjusted_value; + int stat; + + /* Check for special case: if lower is 0 and upper is ASN1UINT_MAX, */ + /* set range to ASN1UINT_MAX; otherwise to upper - lower + 1 */ + + range_value = (lower == 0 && upper == ASN1UINT_MAX) ? + ASN1UINT_MAX : upper - lower + 1; + + adjusted_value = value - lower; + + if (lower != upper) { + stat = encodeConsWholeNumber (pctxt, adjusted_value, range_value); + } + else + stat = ASN_OK; + + return stat; +} + +int encodeConsWholeNumber +(OOCTXT* pctxt, ASN1UINT adjusted_value, ASN1UINT range_value) +{ + ASN1UINT nocts, range_bitcnt = getUIntBitCount (range_value - 1); + int stat; + + if (adjusted_value >= range_value && range_value != ASN1UINT_MAX) { + return LOG_ASN1ERR (pctxt, ASN_E_RANGERR); + } + + /* If range is <= 255, bit-field case (10.5.7a) */ + + if (range_value <= 255) { + return encodeBits (pctxt, adjusted_value, range_bitcnt); + } + + /* If range is exactly 256, one-octet case (10.5.7b) */ + + else if (range_value == 256) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + return encodeBits (pctxt, adjusted_value, 8); + } + + /* If range > 256 and <= 64k (65536), two-octet case (10.5.7c) */ + + else if (range_value <= 65536) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + return encodeBits (pctxt, adjusted_value, 16); + } + + /* If range > 64k, indefinite-length case (10.5.7d) */ + + else { + /* Encode length determinant as a constrained whole number. */ + /* Constraint is 1 to max number of bytes needed to hold */ + /* the target integer value.. */ + + if (adjusted_value < 256) nocts = 1; + else if (adjusted_value < 65536) nocts = 2; + else if (adjusted_value < 0x1000000) nocts = 3; + else nocts = 4; + + stat = encodeBits (pctxt, nocts - 1, 2); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + return encodeNonNegBinInt (pctxt, adjusted_value); + } +} + +int encodeConstrainedStringEx (OOCTXT* pctxt, + const char* string, + const char* charSet, + ASN1UINT abits, /* aligned char bits */ + ASN1UINT ubits, /* unaligned char bits */ + ASN1UINT canSetBits) +{ + ASN1UINT i, len = strlen(string); + int stat; + /* note: need to save size constraint for use in alignCharStr */ + /* because it will be cleared in encodeLength from the context.. */ + Asn1SizeCnst* psize = pctxt->pSizeConstraint; + + /* Encode length */ + + stat = encodeLength (pctxt, len); + if (stat < 0) return LOG_ASN1ERR (pctxt, stat); + + /* Byte align */ + + if (alignCharStr (pctxt, len, abits, psize)) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + /* Encode data */ + + if (abits >= canSetBits && canSetBits > 4) { + for (i = 0; i < len; i++) { + if ((stat = encodeBits (pctxt, string[i], abits)) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + } + } + else if (0 != charSet) { + ASN1UINT nchars = strlen(charSet), pos; + const char* ptr; + for (i = 0; i < len; i++) { + ptr = memchr (charSet, string[i], nchars); + + if (0 == ptr) + return LOG_ASN1ERR (pctxt, ASN_E_CONSVIO); + else + pos = ptr - charSet; + + if ((stat = encodeBits (pctxt, pos, abits)) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + } + } + else return LOG_ASN1ERR (pctxt, ASN_E_INVPARAM); + + return stat; +} + +int encodeExpandBuffer (OOCTXT* pctxt, ASN1UINT nbytes) +{ + if (pctxt->buffer.dynamic) + { + /* If dynamic encoding is enabled, expand the current buffer to */ + /* allow encoding to continue. */ + + pctxt->buffer.size += ASN1MAX (ASN_K_ENCBUFSIZ, nbytes); + + pctxt->buffer.data = (ASN1OCTET*) memHeapRealloc + (&pctxt->pMsgMemHeap, pctxt->buffer.data, pctxt->buffer.size); + + if (!pctxt->buffer.data) return (ASN_E_NOMEM); + + return (ASN_OK); + } + + return (ASN_E_BUFOVFLW); +} + +int encodeGetMsgBitCnt (OOCTXT* pctxt) +{ + int numBitsInLastByte = 8 - pctxt->buffer.bitOffset; + return ((pctxt->buffer.byteIndex * 8) + numBitsInLastByte); +} + +ASN1OCTET* encodeGetMsgPtr (OOCTXT* pctxt, int* pLength) +{ + if (pLength) *pLength = getPERMsgLen (pctxt); + return pctxt->buffer.data; +} + +int encodeIdent (OOCTXT* pctxt, ASN1UINT ident) +{ + ASN1UINT mask; + int nshifts = 0, stat; + + if (ident !=0) { + ASN1UINT lv; + nshifts = getIdentByteCount (ident); + while (nshifts > 0) { + mask = ((ASN1UINT)0x7f) << (7 * (nshifts - 1)); + nshifts--; + lv = (ASN1UINT)((ident & mask) >> (nshifts * 7)); + if (nshifts != 0) { lv |= 0x80; } + if ((stat = encodeBits (pctxt, lv, 8)) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + } + } + else { + /* encode a single zero byte */ + if ((stat = encodeBits (pctxt, 0, 8)) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + } + + return ASN_OK; +} + +int encodeLength (OOCTXT* pctxt, ASN1UINT value) +{ + ASN1BOOL extendable; + Asn1SizeCnst* pSize = + checkSize (pctxt->pSizeConstraint, value, &extendable); + ASN1UINT lower = (pSize) ? pSize->lower : 0; + ASN1UINT upper = (pSize) ? pSize->upper : ASN1UINT_MAX; + int enclen, stat; + + /* If size constraints exist and the given length did not fall */ + /* within the range of any of them, signal constraint violation */ + /* error.. */ + + if (pctxt->pSizeConstraint && !pSize) + return LOG_ASN1ERR (pctxt, ASN_E_CONSVIO); + + /* Reset the size constraint in the context block structure */ + + pctxt->pSizeConstraint = 0; + + /* If size constraint is present and extendable, encode extension */ + /* bit.. */ + + if (extendable) { + stat = (pSize) ? + encodeBit (pctxt, pSize->extended) : encodeBit (pctxt, 1); + + if (stat != ASN_OK) return (stat); + } + + /* If upper limit is less than 64k, constrained case */ + + if (upper < 65536) { + stat = (lower == upper) ? ASN_OK : + encodeConsWholeNumber (pctxt, value - lower, upper - lower + 1); + enclen = (stat == ASN_OK) ? value : stat; + } + else { + /* unconstrained case or Constrained with upper bound >= 64K*/ + enclen = encodeUnconsLength (pctxt, value); + } + + return enclen; + +} + +int encodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue) +{ + int len, stat; + ASN1UINT temp; + register int numids, i; + + /* Calculate length in bytes and encode */ + + len = 1; /* 1st 2 arcs require 1 byte */ + numids = pvalue->numids; + for (i = 2; i < numids; i++) { + len += getIdentByteCount (pvalue->subid[i]); + } + + /* PER encode length */ + + if ((stat = encodeLength (pctxt, (ASN1UINT)len)) < 0) { + return LOG_ASN1ERR (pctxt, stat); + } + + /* Validate given object ID by applying ASN.1 rules */ + + if (0 == pvalue) return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID); + if (numids < 2) return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID); + if (pvalue->subid[0] > 2) return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID); + if (pvalue->subid[0] != 2 && pvalue->subid[1] > 39) + return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID); + + /* Passed checks, encode object identifier */ + + /* Munge first two sub ID's and encode */ + + temp = ((pvalue->subid[0] * 40) + pvalue->subid[1]); + if ((stat = encodeIdent (pctxt, temp)) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + + /* Encode the remainder of the OID value */ + + for (i = 2; i < numids; i++) { + if ((stat = encodeIdent (pctxt, pvalue->subid[i])) != ASN_OK) + return LOG_ASN1ERR (pctxt, stat); + } + + return ASN_OK; +} + +int encodebitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits) +{ + int lshift = pctxt->buffer.bitOffset; + int rshift = 8 - pctxt->buffer.bitOffset; + int stat = ASN_OK; + ASN1OCTET mask; + + if (nbits == 0) return ASN_OK; + + /* Mask off unused bits from the end of the value */ + + if (nbits < 8) { + switch (nbits) { + case 1: mask = 0x80; break; + case 2: mask = 0xC0; break; + case 3: mask = 0xE0; break; + case 4: mask = 0xF0; break; + case 5: mask = 0xF8; break; + case 6: mask = 0xFC; break; + case 7: mask = 0xFE; break; + default:; + } + value &= mask; + } + + /* If we are on a byte boundary, we can do a direct assignment */ + + if (pctxt->buffer.bitOffset == 8) { + pctxt->buffer.data[pctxt->buffer.byteIndex] = value; + if (nbits == 8) { + pctxt->buffer.byteIndex++; + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + } + else + pctxt->buffer.bitOffset -= nbits; + } + + /* Otherwise, need to set some bits in the first octet and */ + /* possibly some bits in the following octet.. */ + + else { + pctxt->buffer.data[pctxt->buffer.byteIndex] |= + (ASN1OCTET)(value >> rshift); + + pctxt->buffer.bitOffset -= nbits; + + if (pctxt->buffer.bitOffset < 0) { + pctxt->buffer.byteIndex++; + pctxt->buffer.data[pctxt->buffer.byteIndex] = + (ASN1OCTET)(value << lshift); + pctxt->buffer.bitOffset += 8; + } + } + + return stat; +} + +int encodeOctets (OOCTXT* pctxt, const ASN1OCTET* pvalue, ASN1UINT nbits) +{ + int i = 0, stat; + int numFullOcts = nbits / 8; + + if (nbits == 0) return 0; + + /* Check buffer space and allocate more memory if necessary */ + + stat = encodeCheckBuffer (pctxt, numFullOcts + 1); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (numFullOcts > 0) { + + /* If the current bit offset is 8 (i.e. we don't have a */ + /* byte started), can copy the string directly to the */ + /* encode buffer.. */ + + if (pctxt->buffer.bitOffset == 8) { + memcpy (&pctxt->buffer.data[pctxt->buffer.byteIndex], pvalue, + numFullOcts); + pctxt->buffer.byteIndex += numFullOcts; + pctxt->buffer.data[pctxt->buffer.byteIndex] = 0; + i = numFullOcts; + } + + /* Else, copy bits */ + + else { + for (i = 0; i < numFullOcts; i++) { + stat = encodeBitsFromOctet (pctxt, pvalue[i], 8); + if (stat != ASN_OK) return stat; + } + } + } + + /* Move remaining bits from the last octet to the output buffer */ + + if (nbits % 8 != 0) { + stat = encodeBitsFromOctet (pctxt, pvalue[i], nbits % 8); + } + + return stat; +} + +int encodeOctetString (OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data) +{ + int enclen, octidx = 0, stat; + Asn1SizeCnst* pSizeList = pctxt->pSizeConstraint; + + for (;;) { + if ((enclen = encodeLength (pctxt, numocts)) < 0) { + return LOG_ASN1ERR (pctxt, enclen); + } + + if (enclen > 0) { + ASN1BOOL doAlign; + + stat = bitAndOctetStringAlignmentTest + (pSizeList, numocts, FALSE, &doAlign); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (doAlign) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + stat = encodeOctets (pctxt, &data[octidx], enclen * 8); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + if (enclen < (int)numocts) { + numocts -= enclen; + octidx += enclen; + } + else break; + } + + return ASN_OK; +} + +int encodeOpenType (OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data) +{ + int enclen, octidx = 0, stat; + ASN1OCTET zeroByte = 0x00; + ASN1OpenType openType; + + /* If open type contains length zero, add a single zero byte (10.1) */ + + if (numocts == 0) { + openType.numocts = 1; + openType.data = &zeroByte; + } + else { + openType.numocts = numocts; + openType.data = data; + } + + /* Encode the open type */ + + for (;;) { + if ((enclen = encodeLength (pctxt, openType.numocts)) < 0) { + return LOG_ASN1ERR (pctxt, enclen); + } + + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = encodeOctets (pctxt, &openType.data[octidx], enclen * 8); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + if (enclen < (int)openType.numocts) { + openType.numocts -= enclen; + octidx += enclen; + } + else break; + } + + return ASN_OK; +} + +int encodeOpenTypeExt (OOCTXT* pctxt, DList* pElemList) +{ + DListNode* pnode; + ASN1OpenType* pOpenType; + int stat; + + if (0 != pElemList) { + pnode = pElemList->head; + while (0 != pnode) { + if (0 != pnode->data) { + pOpenType = (ASN1OpenType*)pnode->data; + + if (pOpenType->numocts > 0) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + stat = encodeOpenType + (pctxt, pOpenType->numocts, pOpenType->data); + + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + } + pnode = pnode->next; + } + } + + return ASN_OK; +} + +int encodeOpenTypeExtBits (OOCTXT* pctxt, DList* pElemList) +{ + DListNode* pnode; + int stat; + + if (0 != pElemList) { + pnode = pElemList->head; + + while (0 != pnode) { + stat = encodeBit (pctxt, (ASN1BOOL)(0 != pnode->data)); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + pnode = pnode->next; + } + } + + return ASN_OK; +} + +int encodeSemiConsInteger (OOCTXT* pctxt, ASN1INT value, ASN1INT lower) +{ + int nbytes, stat; + int shift = ((sizeof(value) - 1) * 8) - 1; + ASN1UINT tempValue; + + if (lower > ASN1INT_MIN) + value -= lower; + + /* Calculate signed number value length */ + + for ( ; shift > 0; shift -= 8) { + tempValue = (value >> shift) & 0x1ff; + if (tempValue == 0 || tempValue == 0x1ff) continue; + else break; + } + + nbytes = (shift + 9) / 8; + + /* Encode length */ + + if ((stat = encodeLength (pctxt, nbytes)) < 0) { + return stat; + } + + if ((stat = encodeByteAlign (pctxt)) != ASN_OK) + return stat; + + /* Encode signed value */ + + stat = encode2sCompBinInt (pctxt, value); + + return stat; +} + +int encodeSemiConsUnsigned (OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower) +{ + int nbytes, stat; + int shift = ((sizeof(value) - 1) * 8) - 1; + ASN1UINT mask = 1UL << ((sizeof(value) * 8) - 1); + ASN1UINT tempValue; + + value -= lower; + + /* Calculate unsigned number value length */ + + for ( ; shift > 0; shift -= 8) { + tempValue = (value >> shift) & 0x1ff; + + if (tempValue == 0) continue; + else break; + } + + nbytes = (shift + 9) / 8; + + /* If MS bit in unsigned number is set, add an extra zero byte */ + + if ((value & mask) != 0) nbytes++; + + /* Encode length */ + + if ((stat = encodeLength (pctxt, nbytes)) < 0) { + return stat; + } + + if ((stat = encodeByteAlign (pctxt)) != ASN_OK) + return stat; + + /* Encode additional zero byte if necessary */ + + if (nbytes > sizeof(value)) { + stat = encodebitsFromOctet (pctxt, 0, 8); + if (stat != ASN_OK) return (stat); + } + + /* Encode unsigned value */ + + stat = encodeNonNegBinInt (pctxt, value); + + return stat; +} + +int encodeSmallNonNegWholeNumber (OOCTXT* pctxt, ASN1UINT value) +{ + int stat; + + if (value < 64) { + stat = encodeBits (pctxt, value, 7); + } + else { + ASN1UINT len; + + /* Encode a one-byte length determinant value */ + if (value < 256) len = 1; + else if (value < 65536) len = 2; + else if (value < 0x1000000) len = 3; + else len = 4; + + stat = encodeBits (pctxt, len, 8); + + /* Byte-align and encode the value */ + if (stat == ASN_OK) { + if ((stat = encodeByteAlign (pctxt)) == ASN_OK) { + stat = encodeBits (pctxt, value, len*8); + } + } + } + + return stat; +} + +int encodeVarWidthCharString (OOCTXT* pctxt, const char* value) +{ + int stat; + ASN1UINT len = strlen (value); + /* note: need to save size constraint for use in alignCharStr */ + /* because it will be cleared in encodeLength from the context.. */ + Asn1SizeCnst* psize = pctxt->pSizeConstraint; + + /* Encode length */ + + stat = encodeLength (pctxt, len); + if (stat < 0) return LOG_ASN1ERR (pctxt, stat); + + /* Byte align */ + + if (alignCharStr (pctxt, len, 8, psize)) { + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + + /* Encode data */ + + stat = encodeOctets (pctxt, (const ASN1OCTET*)value, len * 8); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + return ASN_OK; +} + +static int encode16BitConstrainedString +(OOCTXT* pctxt, Asn116BitCharString value, Asn116BitCharSet* pCharSet) +{ + ASN1UINT i, pos; + ASN1UINT nbits = pCharSet->alignedBits; + int stat; + + /* Encode length */ + + stat = encodeLength (pctxt, value.nchars); + if (stat < 0) return LOG_ASN1ERR (pctxt, stat); + + /* Byte align */ + + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* Encode data */ + + for (i = 0; i < value.nchars; i++) { + if (pCharSet->charSet.data == 0) { + stat = encodeBits + (pctxt, value.data[i] - pCharSet->firstChar, nbits); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + } + else { + for (pos = 0; pos < pCharSet->charSet.nchars; pos++) { + if (value.data[i] == pCharSet->charSet.data[pos]) { + stat = encodeBits (pctxt, pos, nbits); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + break; + } + } + } + } + + return stat; +} + +int encode2sCompBinInt (OOCTXT* pctxt, ASN1INT value) +{ + /* 10.4.6 A minimum octet 2's-complement-binary-integer encoding */ + /* of the whole number has a field width that is a multiple of 8 */ + /* bits and also satisifies the condition that the leading 9 bits */ + /* field shall not be all zeros and shall not be all ones. */ + + /* first encode integer value into a local buffer */ + + ASN1OCTET lbuf[8], lb; + ASN1INT i = sizeof(lbuf), temp = value; + + memset (lbuf, 0, sizeof(lbuf)); + do { + lb = temp % 256; + temp /= 256; + if (temp < 0 && lb != 0) temp--; /* two's complement adjustment */ + lbuf[--i] = lb; + } while (temp != 0 && temp != -1); + + /* If the value is positive and bit 8 of the leading byte is set, */ + /* copy a zero byte to the contents to signal a positive number.. */ + + if (value > 0 && (lb & 0x80) != 0) { + i--; + } + + /* If the value is negative and bit 8 of the leading byte is clear, */ + /* copy a -1 byte (0xFF) to the contents to signal a negative */ + /* number.. */ + + else if (value < 0 && ((lb & 0x80) == 0)) { + lbuf[--i] = 0xff; + } + + /* Add the data to the encode buffer */ + + return encodeOctets (pctxt, &lbuf[i], (sizeof(lbuf) - i) * 8); +} + +static int encodeNonNegBinInt (OOCTXT* pctxt, ASN1UINT value) +{ + /* 10.3.6 A minimum octet non-negative binary integer encoding of */ + /* the whole number (which does not predetermine the number of */ + /* octets to be used for the encoding) has a field which is a */ + /* multiple of 8 bits and also satisifies the condition that the */ + /* leading eight bits of the field shall not be zero unless the */ + /* field is precisely 8 bits long. */ + + ASN1UINT bitcnt = (value == 0) ? 1 : getUIntBitCount (value); + + /* round-up to nearest 8-bit boundary */ + + bitcnt = (bitcnt + 7) & (~7); + + /* encode bits */ + + return encodeBits (pctxt, value, bitcnt); +} + +static int encodeUnconsLength (OOCTXT* pctxt, ASN1UINT value) +{ + int enclen, stat; + + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat); + + /* 1 octet case */ + if (value < 128) { + stat = encodeBits (pctxt, value, 8); + enclen = (stat == ASN_OK) ? value : stat; + } + /* 2 octet case */ + else if (value < 16384) { + if ((stat = encodeBit (pctxt, 1)) == ASN_OK) + stat = encodeBits (pctxt, value, 15); + enclen = (stat == ASN_OK) ? value : stat; + } + /* fragmentation case */ + else { + int multiplier = ASN1MIN (value/16384, 4); + encodeBit (pctxt, 1); /* set bit 8 of first octet */ + encodeBit (pctxt, 1); /* set bit 7 of first octet */ + stat = encodeBits (pctxt, multiplier, 6); + enclen = (stat == ASN_OK) ? 16384 * multiplier : stat; + } + + return enclen; +} + +static int getIdentByteCount (ASN1UINT ident) +{ + if (ident < (1u << 7)) { /* 7 */ + return 1; + } + else if (ident < (1u << 14)) { /* 14 */ + return 2; + } + else if (ident < (1u << 21)) { /* 21 */ + return 3; + } + else if (ident < (1u << 28)) { /* 28 */ + return 4; + } + return 5; +} diff --git a/addons/ooh323c/src/errmgmt.c b/addons/ooh323c/src/errmgmt.c new file mode 100644 index 000000000..d41bad102 --- /dev/null +++ b/addons/ooh323c/src/errmgmt.c @@ -0,0 +1,261 @@ +/* + * Copyright (C) 1997-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +/* Error management functions */ + +#include <stdlib.h> +#include "ooasn1.h" + +/* Error status text */ +static const char* g_status_text[] = { + "Encode buffer overflow", + "Unexpected end of buffer on decode", + "Unexpected tag encountered: expected = %s, parsed = %s", + "Invalid object identifier", + "Invalid field length detected", + "Enumerated value %s not in defined set", + "Duplicate element in SET", + "Missing required element in SET", + "Element with tag %s not part of SET", + "Max elements defined for SEQUENCE field exceeded", + "Element with tag %s is an invalid option in choice", + "No dynamic memory available", + "Invalid string type", + "Invalid hex string", + "Invalid binary string", + "Invalid real value", + "Max items in sized BIT or OCTET STRING field exceeded", + "Invalid value specification", + "No definition found for referenced defined value", + "No definition found for referenced defined type", + "Invalid tag value", + "Nesting level too deep", + "Value constraint violation: field %s, value %s", + "Value range error: lower bound is greater than upper", + "Unexpected end of file detected", + "Invalid UTF-8 character at index %d", + "List error: concurrent modification attempt while iterating", + "List error: illegal state for attempted operation", + "Array index out of bounds", + "Invalid parameter passed to function or method", + "Invalid time string format", + "Context is not initialized", + "ASN.1 value will not fit in target variable", + "Character is not within the defined character set", + "Invalid XML state for attempted operation", + "Error condition returned from XML parser:\n%s", + "SEQUENCE elements not in correct order", + "Invalid index for table constraint identifier", + "Invalid value for relational table constraint fixed type field", + "File not found", + "File read error", + "File write error", + "Invalid Base64 string", + "Socket error", + "XML interface library not found", + "Invalid XML interface library" +} ; + +#define ASN1_K_MAX_STAT (sizeof(g_status_text)/sizeof(char *)) + +/* Add an integer parameter to an error message */ + +int errAddIntParm (ASN1ErrInfo* pErrInfo, int errParm) +{ + char lbuf[16]; + sprintf (lbuf, "%d", errParm); + return errAddStrParm (pErrInfo, lbuf); +} + +/* Add a character string parameter to an error message */ + +int errAddStrParm (ASN1ErrInfo* pErrInfo, const char* errprm_p) +{ +#if defined(_NO_THREADS) || !defined(_NO_MALLOC) + if (pErrInfo->parmcnt < ASN_K_MAXERRP) { + char* tmpstr = (char*) ASN1CRTMALLOC0 (strlen(errprm_p)+1); + strcpy (tmpstr, errprm_p); + pErrInfo->parms[pErrInfo->parmcnt] = tmpstr; + pErrInfo->parmcnt++; + return TRUE; + } + else +#endif + return FALSE; +} + +/* Add an unsigned integer parameter to an error message */ + +int errAddUIntParm (ASN1ErrInfo* pErrInfo, unsigned int errParm) +{ + char lbuf[16]; + sprintf (lbuf, "%u", errParm); + return errAddStrParm (pErrInfo, lbuf); +} + +/* Free error parameter memory */ + +void errFreeParms (ASN1ErrInfo* pErrInfo) +{ +#if defined(_NO_THREADS) || !defined(_NO_MALLOC) + int i; + + for (i = 0; i < pErrInfo->parmcnt; i++) + ASN1CRTFREE0 ((char*)pErrInfo->parms[i]); +#endif + + pErrInfo->parmcnt = 0; + pErrInfo->status = 0; +} + +/* Reset error */ + +int errReset (ASN1ErrInfo* pErrInfo) +{ + errFreeParms (pErrInfo); + pErrInfo->stkx = 0; + return ASN_OK; +} + +/* Format error message */ + +char* errFmtMsg (ASN1ErrInfo* pErrInfo, char* bufp) +{ + const char* tp; + int i, j, pcnt; + + if (pErrInfo->status < 0) + { + i = abs (pErrInfo->status + 1); + + if (i >= 0 && i < ASN1_K_MAX_STAT) + { + /* Substitute error parameters into error message */ + + j = pcnt = 0; + tp = g_status_text[i]; + + while (*tp) + { + if (*tp == '%' && *(tp+1) == 's') + { + /* Plug in error parameter */ + + if (pcnt < pErrInfo->parmcnt && pErrInfo->parms[pcnt]) + { + strcpy (&bufp[j], pErrInfo->parms[pcnt]); + j += strlen (pErrInfo->parms[pcnt++]); + } + else + bufp[j++] = '?'; + + tp += 2; + } + else + bufp[j++] = *tp++; + } + + bufp[j] = '\0'; /* null terminate string */ + } + else + strcpy (bufp, "unrecognized completion status"); + } + else strcpy (bufp, "normal completion status"); + + return (bufp); +} + +/* Get error text in a dynamic memory buffer. This allocates memory */ +/* using the 'memAlloc' function. This memory is automatically freed */ +/* at the time the 'memFree' function is called. */ + +char* errGetText (OOCTXT* pctxt) +{ + char lbuf[500]; + char* pBuf = (char*) ASN1MALLOC (pctxt, + (sizeof(lbuf) + 100 * (2 + pctxt->errInfo.stkx)) * sizeof(char)); + + sprintf (pBuf, "ASN.1 ERROR: Status %d\n", pctxt->errInfo.status); + sprintf (lbuf, "%s\nStack trace:", errFmtMsg (&pctxt->errInfo, lbuf)); + strcat(pBuf, lbuf); + + while (pctxt->errInfo.stkx > 0) { + pctxt->errInfo.stkx--; + sprintf (lbuf, " Module: %s, Line %d\n", + pctxt->errInfo.stack[pctxt->errInfo.stkx].module, + pctxt->errInfo.stack[pctxt->errInfo.stkx].lineno); + strcat(pBuf, lbuf); + } + + errFreeParms (&pctxt->errInfo); + + return pBuf; +} + +/* Print error information to the standard output */ + +void errPrint (ASN1ErrInfo* pErrInfo) +{ + char lbuf[200]; + printf ("ASN.1 ERROR: Status %d\n", pErrInfo->status); + printf ("%s\n", errFmtMsg (pErrInfo, lbuf)); + printf ("Stack trace:"); + while (pErrInfo->stkx > 0) { + pErrInfo->stkx--; + printf (" Module: %s, Line %d\n", + pErrInfo->stack[pErrInfo->stkx].module, + pErrInfo->stack[pErrInfo->stkx].lineno); + } + errFreeParms (pErrInfo); +} + +/* Copy error data from one error structure to another */ + +int errCopyData (ASN1ErrInfo* pSrcErrInfo, ASN1ErrInfo* pDestErrInfo) +{ + int i; + pDestErrInfo->status = pSrcErrInfo->status; + + /* copy error parameters */ + + for (i = 0; i < pSrcErrInfo->parmcnt; i++) { + errAddStrParm (pDestErrInfo, pSrcErrInfo->parms[i]); + } + + /* copy stack info */ + + for (i = 0; i < pSrcErrInfo->stkx; i++) { + if (pDestErrInfo->stkx < ASN_K_MAXERRSTK) { + pDestErrInfo->stack[pDestErrInfo->stkx].module = + pSrcErrInfo->stack[i].module; + pDestErrInfo->stack[pDestErrInfo->stkx++].lineno = + pSrcErrInfo->stack[i].lineno; + } + } + + return (pSrcErrInfo->status); +} + + +int errSetData (ASN1ErrInfo* pErrInfo, int status, + const char* module, int lno) +{ + if (pErrInfo->status == 0) { + pErrInfo->status = status; + } + ooLogAsn1Error(status, module, lno); + return status; +} diff --git a/addons/ooh323c/src/eventHandler.c b/addons/ooh323c/src/eventHandler.c new file mode 100644 index 000000000..7b15759a6 --- /dev/null +++ b/addons/ooh323c/src/eventHandler.c @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +#include "eventHandler.h" + +void setEventHandler (OOCTXT* pctxt, EventHandler* pHandler) +{ + pctxt->pEventHandler = pHandler; +} + +void removeEventHandler (OOCTXT* pctxt) +{ + pctxt->pEventHandler = 0; +} + +void invokeStartElement (OOCTXT* pctxt, const char* name, int index) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->startElement (name, index); + } +} + +void invokeEndElement (OOCTXT* pctxt, const char* name, int index) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->endElement (name, index); + } +} + +void invokeBoolValue (OOCTXT* pctxt, ASN1BOOL value) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->boolValue (value); + } +} + +void invokeIntValue (OOCTXT* pctxt, ASN1INT value) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->intValue (value); + } +} + +void invokeUIntValue (OOCTXT* pctxt, ASN1UINT value) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->uIntValue (value); + } +} + +void invokeBitStrValue (OOCTXT* pctxt, ASN1UINT numbits, + const ASN1OCTET* data) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->bitStrValue (numbits, data); + } +} + +void invokeOctStrValue (OOCTXT* pctxt, ASN1UINT numocts, + const ASN1OCTET* data) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->octStrValue (numocts, data); + } +} + +void invokeCharStrValue (OOCTXT* pctxt, const char* value) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->charStrValue (value); + } +} + +void invokeCharStr16BitValue (OOCTXT* pctxt, ASN1UINT nchars, + ASN116BITCHAR* data) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->charStr16BitValue (nchars, data); + } +} + +void invokeNullValue (OOCTXT* pctxt) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->nullValue (); + } +} + +void invokeOidValue (OOCTXT* pctxt, ASN1UINT numSubIds, ASN1UINT* pSubIds) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->oidValue (numSubIds, pSubIds); + } +} + +void invokeEnumValue (OOCTXT* pctxt, ASN1UINT value) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->enumValue (value); + } +} + +void invokeOpenTypeValue (OOCTXT* pctxt, ASN1UINT numocts, + const ASN1OCTET* data) +{ + if (0 != pctxt->pEventHandler) { + pctxt->pEventHandler->openTypeValue (numocts, data); + } +} diff --git a/addons/ooh323c/src/eventHandler.h b/addons/ooh323c/src/eventHandler.h new file mode 100644 index 000000000..320a55b99 --- /dev/null +++ b/addons/ooh323c/src/eventHandler.h @@ -0,0 +1,284 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * @file eventHandler.h + * C event handler structure. This structure holds event handler function + * callbacks for use by the generated code. + */ +/** + * @defgroup EventHandler event handler + * Event handler structures and callback function definitions. + * @{ + */ +#ifndef _EVENTHANDLER_H_ +#define _EVENTHANDLER_H_ + +#include <stdio.h> +#include "ooasn1.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifndef EXTERN +#if define (MAKE_DLL) +#define EXTERN __declspec(dllexport) +#else +#define EXTERN +#endif /* MAKE_DLL */ +#endif /* EXTERN */ + + +/** + * This is a function pointer for a callback function which is invoked + * from within a decode function when an element of a SEQUENCE, SET, + * SEQUENCE OF, SET OF, or CHOICE construct is parsed. + * + * @param name For SEQUENCE, SET, or CHOICE, this is the name of the + * element as defined in the ASN.1 defination. For + * SEQUENCE OF or SET OF, this is set to the name + * "element". + * @param index For SEQUENCE, SET, or CHOICE, this is not used and is + * set to the value + * -1. For SEQUENCE OF or SET OF, this contains the + * zero-based index of the element in the conceptual + * array associated with the construct. + * @return - none + */ +typedef void (*StartElement) (const char* name, int index) ; + + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when parsing is complete on an element of a + * SEQUENCE, SET, SEQUENCE OF, SET OF, or CHOICE construct. + * + * @param name For SEQUENCE, SET, or CHOICE, this is the name of the + * element as defined in the ASN.1 defination. For + * SEQUENCE OF or SET OF, this is set to the name + * "element". + * @param index For SEQUENCE, SET, or CHOICE, this is not used and is + * set to the value + * -1. For SEQUENCE OF or SET OF, this contains the + * zero-based index of the element in the conceptual + * array associated with the construct. + * @return - none + */ +typedef void (*EndElement) (const char* name, int index) ; + + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of the BOOLEAN ASN.1 type is parsed. + * + * @param value Parsed value. + * @return - none + */ +typedef void (*BoolValue) (ASN1BOOL value); + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of the INTERGER ASN.1 type is parsed. + * + * @param value Parsed value. + * @return - none + */ +typedef void (*IntValue) (ASN1INT value); + +/** + * This is a function pointer for a callback function which is invoked + * from within a decode function when a value of the INTEGER ASN.1 type + * is parsed. In this case, constraints on the integer value forced the + * use of unsigned integer C type to represent the value. + * + * @param value Parsed value. + * @return - none + */ +typedef void (*UIntValue) (ASN1UINT value); + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of the BIT STRING ASN.1 type is + * parsed. + * + * @param numbits - Number of bits in the parsed value. + * @param data - Pointer to a byte array that contains the bit + * string data. + * @return - none + */ +typedef void (*BitStrValue) (ASN1UINT numbits, const ASN1OCTET* data); + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of one of the OCTET STRING ASN.1 type + * is parsed. + * + * @param numocts Number of octets in the parsed value. + * @param data Pointer to byte array containing the octet string + * data. + * @return - none + */ +typedef void (*OctStrValue) (ASN1UINT numocts, const ASN1OCTET* data) ; + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of one of the 8-bit ASN.1 character + * string types is parsed. + * + * @param value Null terminated character string value. + * @return - none + */ +typedef void (*CharStrValue) (const char* value) ; + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of one of the 16-bit ASN.1 character + * string types is parsed. + * + * This is used for the ASN.1 BmpString type. + * + * @param nchars Number of characters in the parsed value. + * @param data Pointer to an array containing 16-bit values. + * These are represented using unsigned short integer + * values. + * @return - none + */ +typedef void (*CharStrValue16Bit) (ASN1UINT nchars, ASN116BITCHAR* data) ; + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of the NULL ASN.1 type is parsed. + * + * @param - none + * @return - none + */ +typedef void (*NullValue) () ; + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function whn a value the OBJECT IDENTIFIER ASN.1 type is + * parsed. + * + * @param numSubIds Number of subidentifiers in the object identifier. + * @param pSubIds Pointer to array containing the subidentifier values. + * @return -none + */ +typedef void (*OidValue) (ASN1UINT numSubIds, ASN1UINT* pSubIds) ; + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when a value of the ENUMERATED ASN.1 type is + * parsed. + * + * @param value - Parsed enumerated value + * @return - none + */ +typedef void (*EnumValue) (ASN1UINT value) ; + +/** + * This is a function pointer for a callback function which is invoked from + * within a decode function when an ASN.1 open type is parsed. + * + * @param numocts Number of octets in the parsed value. + * @param data Pointer to byet array contain in tencoded ASN.1 + * value. + * @return - none + */ +typedef void (*OpenTypeValue) (ASN1UINT numocts, const ASN1OCTET* data) ; + + +/** + * This is a basic C based event handler structure, which can be used + * to define user-defined event handlers. + */ +typedef struct EventHandler { + StartElement startElement; + EndElement endElement; + BoolValue boolValue; + IntValue intValue; + UIntValue uIntValue; + BitStrValue bitStrValue; + OctStrValue octStrValue; + CharStrValue charStrValue; + CharStrValue16Bit charStr16BitValue; + NullValue nullValue; + OidValue oidValue; + EnumValue enumValue; + OpenTypeValue openTypeValue; +} EventHandler; + + +/** + * This function sets the event handler object within the context. It + * will overwrite the definition of any handler that was set previously. + * + * @param pctxt Context to which event handler has to be added. + * @param pHandler Pointer to the event handler structure. + * @return none + */ +EXTERN void setEventHandler (OOCTXT* pctxt, EventHandler* pHandler); + +/** + * This function is called to remove the event handler current defined + * in the context. This is done by setting the event handler object + * pointer to NULL. + * + * @param pctxt Context from which event handler has to be removed. + * @return none + */ +EXTERN void removeEventHandler (OOCTXT* pctxt); + +/** + * The following functions are invoked from within the generated + * code to call the various user-defined event handler methods .. + */ +EXTERN void invokeStartElement (OOCTXT* pctxt, const char* name, int index); +EXTERN void invokeEndElement (OOCTXT* pctxt, const char* name, int index); +EXTERN void invokeBoolValue (OOCTXT* pctxt, ASN1BOOL value); +EXTERN void invokeIntValue (OOCTXT* pctxt, ASN1INT value); +EXTERN void invokeUIntValue (OOCTXT* pctxt, ASN1UINT value); + +EXTERN void invokeBitStrValue +(OOCTXT* pctxt, ASN1UINT numbits, const ASN1OCTET* data); + +EXTERN void invokeOctStrValue +(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data); + +EXTERN void invokeCharStrValue (OOCTXT* pctxt, const char* value); + +EXTERN void invokeCharStr16BitValue +(OOCTXT* pctxt, ASN1UINT nchars, ASN116BITCHAR* data); + +EXTERN void invokeNullValue (OOCTXT* pctxt); + +EXTERN void invokeOidValue +(OOCTXT* pctxt, ASN1UINT numSubIds, ASN1UINT* pSubIds); + +EXTERN void invokeEnumValue (OOCTXT* pctxt, ASN1UINT value); + +EXTERN void invokeOpenTypeValue +(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h new file mode 100644 index 000000000..2f401b39a --- /dev/null +++ b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h @@ -0,0 +1,690 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * This file was generated by the Objective Systems ASN1C Compiler + * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005. + */ +#ifndef H235_SECURITY_MESSAGES_H +#define H235_SECURITY_MESSAGES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdio.h> +#include <stdlib.h> + +#include "ooasn1.h" + +/**************************************************************/ +/* */ +/* ChallengeString */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ChallengeString { + ASN1UINT numocts; + ASN1OCTET data[128]; +} H235ChallengeString; + +EXTERN int asn1PE_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue); + +EXTERN int asn1PD_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue); + +/**************************************************************/ +/* */ +/* TimeStamp */ +/* */ +/**************************************************************/ + +typedef ASN1UINT H235TimeStamp; + +EXTERN int asn1PE_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp value); + +EXTERN int asn1PD_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp* pvalue); + +/**************************************************************/ +/* */ +/* RandomVal */ +/* */ +/**************************************************************/ + +typedef ASN1INT H235RandomVal; + +EXTERN int asn1PE_H235RandomVal (OOCTXT* pctxt, H235RandomVal value); + +EXTERN int asn1PD_H235RandomVal (OOCTXT* pctxt, H235RandomVal* pvalue); + +/**************************************************************/ +/* */ +/* Password */ +/* */ +/**************************************************************/ + +typedef ASN1BMPString H235Password; + +EXTERN int asn1PE_H235Password (OOCTXT* pctxt, H235Password value); + +EXTERN int asn1PD_H235Password (OOCTXT* pctxt, H235Password* pvalue); + +/**************************************************************/ +/* */ +/* EncodedPwdCertToken */ +/* */ +/**************************************************************/ + +typedef ASN1OpenType H235EncodedPwdCertToken; + +EXTERN int asn1PE_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken value); + +EXTERN int asn1PD_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken* pvalue); + +/**************************************************************/ +/* */ +/* NonStandardParameter */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235NonStandardParameter { + ASN1OBJID nonStandardIdentifier; + ASN1DynOctStr data; +} H235NonStandardParameter; + +EXTERN int asn1PE_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue); + +EXTERN int asn1PD_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue); + +/**************************************************************/ +/* */ +/* AuthenticationBES */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H235AuthenticationBES_default_ 1 +#define T_H235AuthenticationBES_radius 2 +#define T_H235AuthenticationBES_extElem1 3 + +typedef struct EXTERN H235AuthenticationBES { + int t; +} H235AuthenticationBES; + +EXTERN int asn1PE_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue); + +EXTERN int asn1PD_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue); + +/**************************************************************/ +/* */ +/* AuthenticationMechanism */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H235AuthenticationMechanism_dhExch 1 +#define T_H235AuthenticationMechanism_pwdSymEnc 2 +#define T_H235AuthenticationMechanism_pwdHash 3 +#define T_H235AuthenticationMechanism_certSign 4 +#define T_H235AuthenticationMechanism_ipsec 5 +#define T_H235AuthenticationMechanism_tls 6 +#define T_H235AuthenticationMechanism_nonStandard 7 +#define T_H235AuthenticationMechanism_authenticationBES 8 +#define T_H235AuthenticationMechanism_extElem1 9 + +typedef struct EXTERN H235AuthenticationMechanism { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + /* t = 7 */ + H235NonStandardParameter *nonStandard; + /* t = 8 */ + H235AuthenticationBES *authenticationBES; + /* t = 9 */ + } u; +} H235AuthenticationMechanism; + +EXTERN int asn1PE_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue); + +EXTERN int asn1PD_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue); + +/**************************************************************/ +/* */ +/* DHset_halfkey */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235DHset_halfkey { + ASN1UINT numbits; + ASN1OCTET data[256]; +} H235DHset_halfkey; + +EXTERN int asn1PE_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue); + +EXTERN int asn1PD_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue); + +/**************************************************************/ +/* */ +/* DHset_modSize */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235DHset_modSize { + ASN1UINT numbits; + ASN1OCTET data[256]; +} H235DHset_modSize; + +EXTERN int asn1PE_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue); + +EXTERN int asn1PD_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue); + +/**************************************************************/ +/* */ +/* DHset_generator */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235DHset_generator { + ASN1UINT numbits; + ASN1OCTET data[256]; +} H235DHset_generator; + +EXTERN int asn1PE_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue); + +EXTERN int asn1PD_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue); + +/**************************************************************/ +/* */ +/* DHset */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235DHset { + H235DHset_halfkey halfkey; + H235DHset_modSize modSize; + H235DHset_generator generator; +} H235DHset; + +EXTERN int asn1PE_H235DHset (OOCTXT* pctxt, H235DHset* pvalue); + +EXTERN int asn1PD_H235DHset (OOCTXT* pctxt, H235DHset* pvalue); + +/**************************************************************/ +/* */ +/* TypedCertificate */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235TypedCertificate { + ASN1OBJID type; + ASN1DynOctStr certificate; +} H235TypedCertificate; + +EXTERN int asn1PE_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue); + +EXTERN int asn1PD_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue); + +/**************************************************************/ +/* */ +/* Identifier */ +/* */ +/**************************************************************/ + +typedef ASN1BMPString H235Identifier; + +EXTERN int asn1PE_H235Identifier (OOCTXT* pctxt, H235Identifier value); + +EXTERN int asn1PD_H235Identifier (OOCTXT* pctxt, H235Identifier* pvalue); + +/**************************************************************/ +/* */ +/* ECpoint_x */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECpoint_x { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECpoint_x; + +EXTERN int asn1PE_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue); + +EXTERN int asn1PD_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue); + +/**************************************************************/ +/* */ +/* ECpoint_y */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECpoint_y { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECpoint_y; + +EXTERN int asn1PE_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue); + +EXTERN int asn1PD_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue); + +/**************************************************************/ +/* */ +/* ECpoint */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECpoint { + struct { + unsigned xPresent : 1; + unsigned yPresent : 1; + } m; + H235ECpoint_x x; + H235ECpoint_y y; +} H235ECpoint; + +EXTERN int asn1PE_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue); + +EXTERN int asn1PD_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_modulus */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdhp_modulus { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECKASDH_eckasdhp_modulus; + +EXTERN int asn1PE_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_weierstrassA */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdhp_weierstrassA { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECKASDH_eckasdhp_weierstrassA; + +EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_weierstrassB */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdhp_weierstrassB { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECKASDH_eckasdhp_weierstrassB; + +EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdhp { + H235ECpoint public_key; + H235ECKASDH_eckasdhp_modulus modulus; + H235ECpoint base; + H235ECKASDH_eckasdhp_weierstrassA weierstrassA; + H235ECKASDH_eckasdhp_weierstrassB weierstrassB; +} H235ECKASDH_eckasdhp; + +EXTERN int asn1PE_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_fieldSize */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdh2_fieldSize { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECKASDH_eckasdh2_fieldSize; + +EXTERN int asn1PE_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_weierstrassA */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdh2_weierstrassA { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECKASDH_eckasdh2_weierstrassA; + +EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_weierstrassB */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdh2_weierstrassB { + ASN1UINT numbits; + ASN1OCTET data[64]; +} H235ECKASDH_eckasdh2_weierstrassB; + +EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2 */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ECKASDH_eckasdh2 { + H235ECpoint public_key; + H235ECKASDH_eckasdh2_fieldSize fieldSize; + H235ECpoint base; + H235ECKASDH_eckasdh2_weierstrassA weierstrassA; + H235ECKASDH_eckasdh2_weierstrassB weierstrassB; +} H235ECKASDH_eckasdh2; + +EXTERN int asn1PE_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue); + +EXTERN int asn1PD_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue); + +/**************************************************************/ +/* */ +/* ECKASDH */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H235ECKASDH_eckasdhp 1 +#define T_H235ECKASDH_eckasdh2 2 +#define T_H235ECKASDH_extElem1 3 + +typedef struct EXTERN H235ECKASDH { + int t; + union { + /* t = 1 */ + H235ECKASDH_eckasdhp *eckasdhp; + /* t = 2 */ + H235ECKASDH_eckasdh2 *eckasdh2; + /* t = 3 */ + } u; +} H235ECKASDH; + +EXTERN int asn1PE_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue); + +EXTERN int asn1PD_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue); + +/**************************************************************/ +/* */ +/* ClearToken */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ClearToken { + struct { + unsigned timeStampPresent : 1; + unsigned passwordPresent : 1; + unsigned dhkeyPresent : 1; + unsigned challengePresent : 1; + unsigned randomPresent : 1; + unsigned certificatePresent : 1; + unsigned generalIDPresent : 1; + unsigned nonStandardPresent : 1; + unsigned eckasdhkeyPresent : 1; + unsigned sendersIDPresent : 1; + } m; + ASN1OBJID tokenOID; + H235TimeStamp timeStamp; + H235Password password; + H235DHset dhkey; + H235ChallengeString challenge; + H235RandomVal random; + H235TypedCertificate certificate; + H235Identifier generalID; + H235NonStandardParameter nonStandard; + H235ECKASDH eckasdhkey; + H235Identifier sendersID; +} H235ClearToken; + +EXTERN int asn1PE_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue); + +EXTERN int asn1PD_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue); + +/**************************************************************/ +/* */ +/* IV8 */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235IV8 { + ASN1UINT numocts; + ASN1OCTET data[8]; +} H235IV8; + +EXTERN int asn1PE_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue); + +EXTERN int asn1PD_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue); + +/**************************************************************/ +/* */ +/* IV16 */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235IV16 { + ASN1UINT numocts; + ASN1OCTET data[16]; +} H235IV16; + +EXTERN int asn1PE_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue); + +EXTERN int asn1PD_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue); + +/**************************************************************/ +/* */ +/* Params */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235Params { + struct { + unsigned ranIntPresent : 1; + unsigned iv8Present : 1; + unsigned iv16Present : 1; + } m; + ASN1INT ranInt; + H235IV8 iv8; + H235IV16 iv16; +} H235Params; + +EXTERN int asn1PE_H235Params (OOCTXT* pctxt, H235Params* pvalue); + +EXTERN int asn1PD_H235Params (OOCTXT* pctxt, H235Params* pvalue); + +/**************************************************************/ +/* */ +/* ENCRYPTED */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235ENCRYPTED { + ASN1OBJID algorithmOID; + H235Params paramS; + ASN1DynOctStr encryptedData; +} H235ENCRYPTED; + +EXTERN int asn1PE_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue); + +EXTERN int asn1PD_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue); + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoEncryptedToken */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235CryptoToken_cryptoEncryptedToken { + ASN1OBJID tokenOID; + H235ENCRYPTED token; +} H235CryptoToken_cryptoEncryptedToken; + +EXTERN int asn1PE_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue); + +EXTERN int asn1PD_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue); + +/**************************************************************/ +/* */ +/* EncodedGeneralToken */ +/* */ +/**************************************************************/ + +typedef ASN1OpenType H235EncodedGeneralToken; + +EXTERN int asn1PE_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken value); + +EXTERN int asn1PD_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken* pvalue); + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoSignedToken_token */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235CryptoToken_cryptoSignedToken_token { + H235EncodedGeneralToken toBeSigned; + ASN1OBJID algorithmOID; + H235Params paramS; + ASN1DynBitStr signature; +} H235CryptoToken_cryptoSignedToken_token; + +EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue); + +EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue); + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoSignedToken */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235CryptoToken_cryptoSignedToken { + ASN1OBJID tokenOID; + H235CryptoToken_cryptoSignedToken_token token; +} H235CryptoToken_cryptoSignedToken; + +EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue); + +EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue); + +/**************************************************************/ +/* */ +/* HASHED */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235HASHED { + ASN1OBJID algorithmOID; + H235Params paramS; + ASN1DynBitStr hash; +} H235HASHED; + +EXTERN int asn1PE_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue); + +EXTERN int asn1PD_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue); + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoHashedToken */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H235CryptoToken_cryptoHashedToken { + ASN1OBJID tokenOID; + H235ClearToken hashedVals; + H235HASHED token; +} H235CryptoToken_cryptoHashedToken; + +EXTERN int asn1PE_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue); + +EXTERN int asn1PD_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue); + +/**************************************************************/ +/* */ +/* CryptoToken */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H235CryptoToken_cryptoEncryptedToken 1 +#define T_H235CryptoToken_cryptoSignedToken 2 +#define T_H235CryptoToken_cryptoHashedToken 3 +#define T_H235CryptoToken_cryptoPwdEncr 4 +#define T_H235CryptoToken_extElem1 5 + +typedef struct EXTERN H235CryptoToken { + int t; + union { + /* t = 1 */ + H235CryptoToken_cryptoEncryptedToken *cryptoEncryptedToken; + /* t = 2 */ + H235CryptoToken_cryptoSignedToken *cryptoSignedToken; + /* t = 3 */ + H235CryptoToken_cryptoHashedToken *cryptoHashedToken; + /* t = 4 */ + H235ENCRYPTED *cryptoPwdEncr; + /* t = 5 */ + } u; +} H235CryptoToken; + +EXTERN int asn1PE_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue); + +EXTERN int asn1PD_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c new file mode 100644 index 000000000..897bf0eec --- /dev/null +++ b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c @@ -0,0 +1,1782 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * This file was generated by the Objective Systems ASN1C Compiler + * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005. + */ +#include "ooasn1.h" +#include "H235-SECURITY-MESSAGES.h" +#include "eventHandler.h" + +/**************************************************************/ +/* */ +/* ChallengeString */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 8, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TimeStamp */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp* pvalue) +{ + int stat = ASN_OK; + + stat = decodeConsUnsigned (pctxt, pvalue, 1U, ASN1UINT_MAX); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* RandomVal */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235RandomVal (OOCTXT* pctxt, H235RandomVal* pvalue) +{ + int stat = ASN_OK; + + stat = decodeUnconsInteger (pctxt, pvalue); + if (stat != ASN_OK) return stat; + invokeIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* Password */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235Password (OOCTXT* pctxt, H235Password* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBMPString (pctxt, pvalue, 0); + if (stat != ASN_OK) return stat; + invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* EncodedPwdCertToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken* pvalue) +{ + int stat = ASN_OK; + + stat = decodeOpenType (pctxt, &pvalue->data, &pvalue->numocts); + if (stat != ASN_OK) return stat; + invokeOpenTypeValue + (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* NonStandardParameter */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue) +{ + int stat = ASN_OK; + + /* decode nonStandardIdentifier */ + + invokeStartElement (pctxt, "nonStandardIdentifier", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->nonStandardIdentifier); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->nonStandardIdentifier.numids, pvalue->nonStandardIdentifier.subid); + + invokeEndElement (pctxt, "nonStandardIdentifier", -1); + + /* decode data */ + + invokeStartElement (pctxt, "data", -1); + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->data); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->data.numocts, pvalue->data.data); + + invokeEndElement (pctxt, "data", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* AuthenticationBES */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* default_ */ + case 0: + invokeStartElement (pctxt, "default_", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "default_", -1); + + break; + + /* radius */ + case 1: + invokeStartElement (pctxt, "radius", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "radius", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* AuthenticationMechanism */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + OOCTXT lctxt; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 6); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* dhExch */ + case 0: + invokeStartElement (pctxt, "dhExch", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "dhExch", -1); + + break; + + /* pwdSymEnc */ + case 1: + invokeStartElement (pctxt, "pwdSymEnc", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "pwdSymEnc", -1); + + break; + + /* pwdHash */ + case 2: + invokeStartElement (pctxt, "pwdHash", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "pwdHash", -1); + + break; + + /* certSign */ + case 3: + invokeStartElement (pctxt, "certSign", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "certSign", -1); + + break; + + /* ipsec */ + case 4: + invokeStartElement (pctxt, "ipsec", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "ipsec", -1); + + break; + + /* tls */ + case 5: + invokeStartElement (pctxt, "tls", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "tls", -1); + + break; + + /* nonStandard */ + case 6: + invokeStartElement (pctxt, "nonStandard", -1); + + pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H235NonStandardParameter); + + stat = asn1PD_H235NonStandardParameter (pctxt, pvalue->u.nonStandard); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nonStandard", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 8; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + copyContext (&lctxt, pctxt); + initContextBuffer (pctxt, openType.data, openType.numocts); + + switch (pvalue->t) { + /* authenticationBES */ + case 8: + invokeStartElement (pctxt, "authenticationBES", -1); + + pvalue->u.authenticationBES = ALLOC_ASN1ELEM (pctxt, H235AuthenticationBES); + + stat = asn1PD_H235AuthenticationBES (pctxt, pvalue->u.authenticationBES); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "authenticationBES", -1); + + break; + + default:; + } + + copyContext (pctxt, &lctxt); + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset_halfkey */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset_modSize */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset_generator */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235DHset (OOCTXT* pctxt, H235DHset* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* decode halfkey */ + + invokeStartElement (pctxt, "halfkey", -1); + + stat = asn1PD_H235DHset_halfkey (pctxt, &pvalue->halfkey); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "halfkey", -1); + + /* decode modSize */ + + invokeStartElement (pctxt, "modSize", -1); + + stat = asn1PD_H235DHset_modSize (pctxt, &pvalue->modSize); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "modSize", -1); + + /* decode generator */ + + invokeStartElement (pctxt, "generator", -1); + + stat = asn1PD_H235DHset_generator (pctxt, &pvalue->generator); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "generator", -1); + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* TypedCertificate */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* decode type */ + + invokeStartElement (pctxt, "type", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->type); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->type.numids, pvalue->type.subid); + + invokeEndElement (pctxt, "type", -1); + + /* decode certificate */ + + invokeStartElement (pctxt, "certificate", -1); + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->certificate); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->certificate.numocts, pvalue->certificate.data); + + invokeEndElement (pctxt, "certificate", -1); + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* Identifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235Identifier (OOCTXT* pctxt, H235Identifier* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBMPString (pctxt, pvalue, 0); + if (stat != ASN_OK) return stat; + invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECpoint_x */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECpoint_y */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECpoint */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.xPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.yPresent = optbit; + + /* decode x */ + + if (pvalue->m.xPresent) { + invokeStartElement (pctxt, "x", -1); + + stat = asn1PD_H235ECpoint_x (pctxt, &pvalue->x); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "x", -1); + } + + /* decode y */ + + if (pvalue->m.yPresent) { + invokeStartElement (pctxt, "y", -1); + + stat = asn1PD_H235ECpoint_y (pctxt, &pvalue->y); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "y", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_modulus */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_weierstrassA */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_weierstrassB */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue) +{ + int stat = ASN_OK; + + /* decode public_key */ + + invokeStartElement (pctxt, "public_key", -1); + + stat = asn1PD_H235ECpoint (pctxt, &pvalue->public_key); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "public_key", -1); + + /* decode modulus */ + + invokeStartElement (pctxt, "modulus", -1); + + stat = asn1PD_H235ECKASDH_eckasdhp_modulus (pctxt, &pvalue->modulus); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "modulus", -1); + + /* decode base */ + + invokeStartElement (pctxt, "base", -1); + + stat = asn1PD_H235ECpoint (pctxt, &pvalue->base); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "base", -1); + + /* decode weierstrassA */ + + invokeStartElement (pctxt, "weierstrassA", -1); + + stat = asn1PD_H235ECKASDH_eckasdhp_weierstrassA (pctxt, &pvalue->weierstrassA); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "weierstrassA", -1); + + /* decode weierstrassB */ + + invokeStartElement (pctxt, "weierstrassB", -1); + + stat = asn1PD_H235ECKASDH_eckasdhp_weierstrassB (pctxt, &pvalue->weierstrassB); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "weierstrassB", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_fieldSize */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_weierstrassA */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_weierstrassB */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2 */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue) +{ + int stat = ASN_OK; + + /* decode public_key */ + + invokeStartElement (pctxt, "public_key", -1); + + stat = asn1PD_H235ECpoint (pctxt, &pvalue->public_key); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "public_key", -1); + + /* decode fieldSize */ + + invokeStartElement (pctxt, "fieldSize", -1); + + stat = asn1PD_H235ECKASDH_eckasdh2_fieldSize (pctxt, &pvalue->fieldSize); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "fieldSize", -1); + + /* decode base */ + + invokeStartElement (pctxt, "base", -1); + + stat = asn1PD_H235ECpoint (pctxt, &pvalue->base); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "base", -1); + + /* decode weierstrassA */ + + invokeStartElement (pctxt, "weierstrassA", -1); + + stat = asn1PD_H235ECKASDH_eckasdh2_weierstrassA (pctxt, &pvalue->weierstrassA); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "weierstrassA", -1); + + /* decode weierstrassB */ + + invokeStartElement (pctxt, "weierstrassB", -1); + + stat = asn1PD_H235ECKASDH_eckasdh2_weierstrassB (pctxt, &pvalue->weierstrassB); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "weierstrassB", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* eckasdhp */ + case 0: + invokeStartElement (pctxt, "eckasdhp", -1); + + pvalue->u.eckasdhp = ALLOC_ASN1ELEM (pctxt, H235ECKASDH_eckasdhp); + + stat = asn1PD_H235ECKASDH_eckasdhp (pctxt, pvalue->u.eckasdhp); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "eckasdhp", -1); + + break; + + /* eckasdh2 */ + case 1: + invokeStartElement (pctxt, "eckasdh2", -1); + + pvalue->u.eckasdh2 = ALLOC_ASN1ELEM (pctxt, H235ECKASDH_eckasdh2); + + stat = asn1PD_H235ECKASDH_eckasdh2 (pctxt, pvalue->u.eckasdh2); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "eckasdh2", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ClearToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + OOCTXT lctxt2; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.timeStampPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.passwordPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.dhkeyPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.challengePresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.randomPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.certificatePresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.generalIDPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.nonStandardPresent = optbit; + + /* decode tokenOID */ + + invokeStartElement (pctxt, "tokenOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid); + + invokeEndElement (pctxt, "tokenOID", -1); + + /* decode timeStamp */ + + if (pvalue->m.timeStampPresent) { + invokeStartElement (pctxt, "timeStamp", -1); + + stat = asn1PD_H235TimeStamp (pctxt, &pvalue->timeStamp); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "timeStamp", -1); + } + + /* decode password */ + + if (pvalue->m.passwordPresent) { + invokeStartElement (pctxt, "password", -1); + + stat = asn1PD_H235Password (pctxt, &pvalue->password); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "password", -1); + } + + /* decode dhkey */ + + if (pvalue->m.dhkeyPresent) { + invokeStartElement (pctxt, "dhkey", -1); + + stat = asn1PD_H235DHset (pctxt, &pvalue->dhkey); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "dhkey", -1); + } + + /* decode challenge */ + + if (pvalue->m.challengePresent) { + invokeStartElement (pctxt, "challenge", -1); + + stat = asn1PD_H235ChallengeString (pctxt, &pvalue->challenge); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "challenge", -1); + } + + /* decode random */ + + if (pvalue->m.randomPresent) { + invokeStartElement (pctxt, "random", -1); + + stat = asn1PD_H235RandomVal (pctxt, &pvalue->random); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "random", -1); + } + + /* decode certificate */ + + if (pvalue->m.certificatePresent) { + invokeStartElement (pctxt, "certificate", -1); + + stat = asn1PD_H235TypedCertificate (pctxt, &pvalue->certificate); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "certificate", -1); + } + + /* decode generalID */ + + if (pvalue->m.generalIDPresent) { + invokeStartElement (pctxt, "generalID", -1); + + stat = asn1PD_H235Identifier (pctxt, &pvalue->generalID); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "generalID", -1); + } + + /* decode nonStandard */ + + if (pvalue->m.nonStandardPresent) { + invokeStartElement (pctxt, "nonStandard", -1); + + stat = asn1PD_H235NonStandardParameter (pctxt, &pvalue->nonStandard); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nonStandard", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + if (i < 2 && openType.numocts > 0) { /* known element */ + copyContext (&lctxt2, pctxt); + initContextBuffer (pctxt, openType.data, openType.numocts); + + switch (i) { + case 0: + pvalue->m.eckasdhkeyPresent = 1; + + invokeStartElement (pctxt, "eckasdhkey", -1); + + stat = asn1PD_H235ECKASDH (pctxt, &pvalue->eckasdhkey); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "eckasdhkey", -1); + break; + + case 1: + pvalue->m.sendersIDPresent = 1; + + invokeStartElement (pctxt, "sendersID", -1); + + stat = asn1PD_H235Identifier (pctxt, &pvalue->sendersID); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "sendersID", -1); + break; + + default: + pctxt->buffer.byteIndex += openType.numocts; + } + copyContext (pctxt, &lctxt2); + } + else { /* unknown element */ + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* IV8 */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 8, 8, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* IV16 */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* Params */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235Params (OOCTXT* pctxt, H235Params* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + OOCTXT lctxt2; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.ranIntPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.iv8Present = optbit; + + /* decode ranInt */ + + if (pvalue->m.ranIntPresent) { + invokeStartElement (pctxt, "ranInt", -1); + + stat = decodeUnconsInteger (pctxt, &pvalue->ranInt); + if (stat != ASN_OK) return stat; + invokeIntValue (pctxt, pvalue->ranInt); + + invokeEndElement (pctxt, "ranInt", -1); + } + + /* decode iv8 */ + + if (pvalue->m.iv8Present) { + invokeStartElement (pctxt, "iv8", -1); + + stat = asn1PD_H235IV8 (pctxt, &pvalue->iv8); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "iv8", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + if (i < 1 && openType.numocts > 0) { /* known element */ + copyContext (&lctxt2, pctxt); + initContextBuffer (pctxt, openType.data, openType.numocts); + + switch (i) { + case 0: + pvalue->m.iv16Present = 1; + + invokeStartElement (pctxt, "iv16", -1); + + stat = asn1PD_H235IV16 (pctxt, &pvalue->iv16); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "iv16", -1); + break; + + default: + pctxt->buffer.byteIndex += openType.numocts; + } + copyContext (pctxt, &lctxt2); + } + else { /* unknown element */ + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ENCRYPTED */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue) +{ + int stat = ASN_OK; + + /* decode algorithmOID */ + + invokeStartElement (pctxt, "algorithmOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid); + + invokeEndElement (pctxt, "algorithmOID", -1); + + /* decode paramS */ + + invokeStartElement (pctxt, "paramS", -1); + + stat = asn1PD_H235Params (pctxt, &pvalue->paramS); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "paramS", -1); + + /* decode encryptedData */ + + invokeStartElement (pctxt, "encryptedData", -1); + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->encryptedData); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->encryptedData.numocts, pvalue->encryptedData.data); + + invokeEndElement (pctxt, "encryptedData", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoEncryptedToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue) +{ + int stat = ASN_OK; + + /* decode tokenOID */ + + invokeStartElement (pctxt, "tokenOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid); + + invokeEndElement (pctxt, "tokenOID", -1); + + /* decode token */ + + invokeStartElement (pctxt, "token", -1); + + stat = asn1PD_H235ENCRYPTED (pctxt, &pvalue->token); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "token", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* EncodedGeneralToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken* pvalue) +{ + int stat = ASN_OK; + + stat = decodeOpenType (pctxt, &pvalue->data, &pvalue->numocts); + if (stat != ASN_OK) return stat; + invokeOpenTypeValue + (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoSignedToken_token */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue) +{ + int stat = ASN_OK; + + /* decode toBeSigned */ + + invokeStartElement (pctxt, "toBeSigned", -1); + + stat = asn1PD_H235EncodedGeneralToken (pctxt, &pvalue->toBeSigned); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "toBeSigned", -1); + + /* decode algorithmOID */ + + invokeStartElement (pctxt, "algorithmOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid); + + invokeEndElement (pctxt, "algorithmOID", -1); + + /* decode paramS */ + + invokeStartElement (pctxt, "paramS", -1); + + stat = asn1PD_H235Params (pctxt, &pvalue->paramS); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "paramS", -1); + + /* decode signature */ + + invokeStartElement (pctxt, "signature", -1); + + stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->signature); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->signature.numbits, pvalue->signature.data); + + invokeEndElement (pctxt, "signature", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoSignedToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue) +{ + int stat = ASN_OK; + + /* decode tokenOID */ + + invokeStartElement (pctxt, "tokenOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid); + + invokeEndElement (pctxt, "tokenOID", -1); + + /* decode token */ + + invokeStartElement (pctxt, "token", -1); + + stat = asn1PD_H235CryptoToken_cryptoSignedToken_token (pctxt, &pvalue->token); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "token", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* HASHED */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue) +{ + int stat = ASN_OK; + + /* decode algorithmOID */ + + invokeStartElement (pctxt, "algorithmOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid); + + invokeEndElement (pctxt, "algorithmOID", -1); + + /* decode paramS */ + + invokeStartElement (pctxt, "paramS", -1); + + stat = asn1PD_H235Params (pctxt, &pvalue->paramS); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "paramS", -1); + + /* decode hash */ + + invokeStartElement (pctxt, "hash", -1); + + stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->hash); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->hash.numbits, pvalue->hash.data); + + invokeEndElement (pctxt, "hash", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoHashedToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue) +{ + int stat = ASN_OK; + + /* decode tokenOID */ + + invokeStartElement (pctxt, "tokenOID", -1); + + stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid); + + invokeEndElement (pctxt, "tokenOID", -1); + + /* decode hashedVals */ + + invokeStartElement (pctxt, "hashedVals", -1); + + stat = asn1PD_H235ClearToken (pctxt, &pvalue->hashedVals); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "hashedVals", -1); + + /* decode token */ + + invokeStartElement (pctxt, "token", -1); + + stat = asn1PD_H235HASHED (pctxt, &pvalue->token); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "token", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 3); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* cryptoEncryptedToken */ + case 0: + invokeStartElement (pctxt, "cryptoEncryptedToken", -1); + + pvalue->u.cryptoEncryptedToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken_cryptoEncryptedToken); + + stat = asn1PD_H235CryptoToken_cryptoEncryptedToken (pctxt, pvalue->u.cryptoEncryptedToken); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "cryptoEncryptedToken", -1); + + break; + + /* cryptoSignedToken */ + case 1: + invokeStartElement (pctxt, "cryptoSignedToken", -1); + + pvalue->u.cryptoSignedToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken_cryptoSignedToken); + + stat = asn1PD_H235CryptoToken_cryptoSignedToken (pctxt, pvalue->u.cryptoSignedToken); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "cryptoSignedToken", -1); + + break; + + /* cryptoHashedToken */ + case 2: + invokeStartElement (pctxt, "cryptoHashedToken", -1); + + pvalue->u.cryptoHashedToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken_cryptoHashedToken); + + stat = asn1PD_H235CryptoToken_cryptoHashedToken (pctxt, pvalue->u.cryptoHashedToken); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "cryptoHashedToken", -1); + + break; + + /* cryptoPwdEncr */ + case 3: + invokeStartElement (pctxt, "cryptoPwdEncr", -1); + + pvalue->u.cryptoPwdEncr = ALLOC_ASN1ELEM (pctxt, H235ENCRYPTED); + + stat = asn1PD_H235ENCRYPTED (pctxt, pvalue->u.cryptoPwdEncr); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "cryptoPwdEncr", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 5; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + diff --git a/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c new file mode 100644 index 000000000..8530c5198 --- /dev/null +++ b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c @@ -0,0 +1,1269 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * This file was generated by the Objective Systems ASN1C Compiler + * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005. + */ +#include "ooasn1.h" +#include "H235-SECURITY-MESSAGES.h" + +/**************************************************************/ +/* */ +/* ChallengeString */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 8, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* TimeStamp */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp value) +{ + int stat = ASN_OK; + + stat = encodeConsUnsigned (pctxt, value, 1U, ASN1UINT_MAX); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* RandomVal */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235RandomVal (OOCTXT* pctxt, H235RandomVal value) +{ + int stat = ASN_OK; + + stat = encodeUnconsInteger (pctxt, value); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* Password */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235Password (OOCTXT* pctxt, H235Password value) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBMPString (pctxt, value, 0); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* EncodedPwdCertToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken value) +{ + int stat = ASN_OK; + + stat = encodeOpenType (pctxt, value.numocts, value.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* NonStandardParameter */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue) +{ + int stat = ASN_OK; + + /* encode nonStandardIdentifier */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->nonStandardIdentifier); + if (stat != ASN_OK) return stat; + + /* encode data */ + + stat = encodeOctetString (pctxt, pvalue->data.numocts, pvalue->data.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* AuthenticationBES */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = (ASN1BOOL)(pvalue->t > 2); + + encodeBit (pctxt, extbit); + + if (!extbit) { + + /* Encode choice index value */ + + stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1); + if (stat != ASN_OK) return stat; + + /* Encode root element data value */ + + switch (pvalue->t) + { + /* default_ */ + case 1: + /* NULL */ + break; + + /* radius */ + case 2: + /* NULL */ + break; + + default: + return ASN_E_INVOPT; + } + } + else { + /* Encode extension choice index value */ + + stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3); + if (stat != ASN_OK) return stat; + + /* Encode extension element data value */ + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* AuthenticationMechanism */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = (ASN1BOOL)(pvalue->t > 7); + + encodeBit (pctxt, extbit); + + if (!extbit) { + + /* Encode choice index value */ + + stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 6); + if (stat != ASN_OK) return stat; + + /* Encode root element data value */ + + switch (pvalue->t) + { + /* dhExch */ + case 1: + /* NULL */ + break; + + /* pwdSymEnc */ + case 2: + /* NULL */ + break; + + /* pwdHash */ + case 3: + /* NULL */ + break; + + /* certSign */ + case 4: + /* NULL */ + break; + + /* ipsec */ + case 5: + /* NULL */ + break; + + /* tls */ + case 6: + /* NULL */ + break; + + /* nonStandard */ + case 7: + stat = asn1PE_H235NonStandardParameter (pctxt, pvalue->u.nonStandard); + if (stat != ASN_OK) return stat; + break; + + default: + return ASN_E_INVOPT; + } + } + else { + /* Encode extension choice index value */ + + stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 8); + if (stat != ASN_OK) return stat; + + /* Encode extension element data value */ + + initContext (&lctxt); + stat = setPERBuffer (&lctxt, 0, 0, TRUE); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + switch (pvalue->t) + { + /* authenticationBES */ + case 8: + stat = asn1PE_H235AuthenticationBES (&lctxt, pvalue->u.authenticationBES); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts); + break; + + default: + ; + } + + stat = encodeByteAlign (pctxt); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = encodeOpenType (pctxt, openType.numocts, openType.data); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + freeContext (&lctxt); + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset_halfkey */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset_modSize */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset_generator */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* DHset */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235DHset (OOCTXT* pctxt, H235DHset* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = 0; + + encodeBit (pctxt, extbit); + + /* encode halfkey */ + + stat = asn1PE_H235DHset_halfkey (pctxt, &pvalue->halfkey); + if (stat != ASN_OK) return stat; + + /* encode modSize */ + + stat = asn1PE_H235DHset_modSize (pctxt, &pvalue->modSize); + if (stat != ASN_OK) return stat; + + /* encode generator */ + + stat = asn1PE_H235DHset_generator (pctxt, &pvalue->generator); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* TypedCertificate */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = 0; + + encodeBit (pctxt, extbit); + + /* encode type */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->type); + if (stat != ASN_OK) return stat; + + /* encode certificate */ + + stat = encodeOctetString (pctxt, pvalue->certificate.numocts, pvalue->certificate.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* Identifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235Identifier (OOCTXT* pctxt, H235Identifier value) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBMPString (pctxt, value, 0); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECpoint_x */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECpoint_y */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECpoint */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = 0; + + encodeBit (pctxt, extbit); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.xPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.yPresent); + + /* encode x */ + + if (pvalue->m.xPresent) { + stat = asn1PE_H235ECpoint_x (pctxt, &pvalue->x); + if (stat != ASN_OK) return stat; + } + + /* encode y */ + + if (pvalue->m.yPresent) { + stat = asn1PE_H235ECpoint_y (pctxt, &pvalue->y); + if (stat != ASN_OK) return stat; + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_modulus */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_weierstrassA */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp_weierstrassB */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdhp */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue) +{ + int stat = ASN_OK; + + /* encode public_key */ + + stat = asn1PE_H235ECpoint (pctxt, &pvalue->public_key); + if (stat != ASN_OK) return stat; + + /* encode modulus */ + + stat = asn1PE_H235ECKASDH_eckasdhp_modulus (pctxt, &pvalue->modulus); + if (stat != ASN_OK) return stat; + + /* encode base */ + + stat = asn1PE_H235ECpoint (pctxt, &pvalue->base); + if (stat != ASN_OK) return stat; + + /* encode weierstrassA */ + + stat = asn1PE_H235ECKASDH_eckasdhp_weierstrassA (pctxt, &pvalue->weierstrassA); + if (stat != ASN_OK) return stat; + + /* encode weierstrassB */ + + stat = asn1PE_H235ECKASDH_eckasdhp_weierstrassB (pctxt, &pvalue->weierstrassB); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_fieldSize */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_weierstrassA */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2_weierstrassB */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH_eckasdh2 */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue) +{ + int stat = ASN_OK; + + /* encode public_key */ + + stat = asn1PE_H235ECpoint (pctxt, &pvalue->public_key); + if (stat != ASN_OK) return stat; + + /* encode fieldSize */ + + stat = asn1PE_H235ECKASDH_eckasdh2_fieldSize (pctxt, &pvalue->fieldSize); + if (stat != ASN_OK) return stat; + + /* encode base */ + + stat = asn1PE_H235ECpoint (pctxt, &pvalue->base); + if (stat != ASN_OK) return stat; + + /* encode weierstrassA */ + + stat = asn1PE_H235ECKASDH_eckasdh2_weierstrassA (pctxt, &pvalue->weierstrassA); + if (stat != ASN_OK) return stat; + + /* encode weierstrassB */ + + stat = asn1PE_H235ECKASDH_eckasdh2_weierstrassB (pctxt, &pvalue->weierstrassB); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* ECKASDH */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = (ASN1BOOL)(pvalue->t > 2); + + encodeBit (pctxt, extbit); + + if (!extbit) { + + /* Encode choice index value */ + + stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1); + if (stat != ASN_OK) return stat; + + /* Encode root element data value */ + + switch (pvalue->t) + { + /* eckasdhp */ + case 1: + stat = asn1PE_H235ECKASDH_eckasdhp (pctxt, pvalue->u.eckasdhp); + if (stat != ASN_OK) return stat; + break; + + /* eckasdh2 */ + case 2: + stat = asn1PE_H235ECKASDH_eckasdh2 (pctxt, pvalue->u.eckasdh2); + if (stat != ASN_OK) return stat; + break; + + default: + return ASN_E_INVOPT; + } + } + else { + /* Encode extension choice index value */ + + stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3); + if (stat != ASN_OK) return stat; + + /* Encode extension element data value */ + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ClearToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + ASN1OpenType openType; + OOCTXT lctxt; + + /* extension bit */ + + extbit = (ASN1BOOL)(pvalue->m.eckasdhkeyPresent || + pvalue->m.sendersIDPresent); + + encodeBit (pctxt, extbit); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.timeStampPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.passwordPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.dhkeyPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.challengePresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.randomPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.certificatePresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.generalIDPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent); + + /* encode tokenOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + + /* encode timeStamp */ + + if (pvalue->m.timeStampPresent) { + stat = asn1PE_H235TimeStamp (pctxt, pvalue->timeStamp); + if (stat != ASN_OK) return stat; + } + + /* encode password */ + + if (pvalue->m.passwordPresent) { + stat = asn1PE_H235Password (pctxt, pvalue->password); + if (stat != ASN_OK) return stat; + } + + /* encode dhkey */ + + if (pvalue->m.dhkeyPresent) { + stat = asn1PE_H235DHset (pctxt, &pvalue->dhkey); + if (stat != ASN_OK) return stat; + } + + /* encode challenge */ + + if (pvalue->m.challengePresent) { + stat = asn1PE_H235ChallengeString (pctxt, &pvalue->challenge); + if (stat != ASN_OK) return stat; + } + + /* encode random */ + + if (pvalue->m.randomPresent) { + stat = asn1PE_H235RandomVal (pctxt, pvalue->random); + if (stat != ASN_OK) return stat; + } + + /* encode certificate */ + + if (pvalue->m.certificatePresent) { + stat = asn1PE_H235TypedCertificate (pctxt, &pvalue->certificate); + if (stat != ASN_OK) return stat; + } + + /* encode generalID */ + + if (pvalue->m.generalIDPresent) { + stat = asn1PE_H235Identifier (pctxt, pvalue->generalID); + if (stat != ASN_OK) return stat; + } + + /* encode nonStandard */ + + if (pvalue->m.nonStandardPresent) { + stat = asn1PE_H235NonStandardParameter (pctxt, &pvalue->nonStandard); + if (stat != ASN_OK) return stat; + } + + if (extbit) { + + /* encode extension optional bits length */ + + stat = encodeSmallNonNegWholeNumber (pctxt, 1); + if (stat != ASN_OK) return stat; + + /* encode optional bits */ + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.eckasdhkeyPresent); + encodeBit (pctxt, (ASN1BOOL)pvalue->m.sendersIDPresent); + /* encode extension elements */ + + if (pvalue->m.eckasdhkeyPresent) { + initContext (&lctxt); + stat = setPERBuffer (&lctxt, 0, 0, TRUE); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = asn1PE_H235ECKASDH (&lctxt, &pvalue->eckasdhkey); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = encodeByteAlign (&lctxt); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts); + + stat = encodeOpenType (pctxt, openType.numocts, openType.data); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + freeContext (&lctxt); + } + + if (pvalue->m.sendersIDPresent) { + initContext (&lctxt); + stat = setPERBuffer (&lctxt, 0, 0, TRUE); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = asn1PE_H235Identifier (&lctxt, pvalue->sendersID); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = encodeByteAlign (&lctxt); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts); + + stat = encodeOpenType (pctxt, openType.numocts, openType.data); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + freeContext (&lctxt); + } + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* IV8 */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 8, 8, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* IV16 */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* Params */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235Params (OOCTXT* pctxt, H235Params* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + ASN1OpenType openType; + OOCTXT lctxt; + + /* extension bit */ + + extbit = (ASN1BOOL)(pvalue->m.iv16Present); + + encodeBit (pctxt, extbit); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.ranIntPresent); + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.iv8Present); + + /* encode ranInt */ + + if (pvalue->m.ranIntPresent) { + stat = encodeUnconsInteger (pctxt, pvalue->ranInt); + if (stat != ASN_OK) return stat; + } + + /* encode iv8 */ + + if (pvalue->m.iv8Present) { + stat = asn1PE_H235IV8 (pctxt, &pvalue->iv8); + if (stat != ASN_OK) return stat; + } + + if (extbit) { + + /* encode extension optional bits length */ + + stat = encodeSmallNonNegWholeNumber (pctxt, 0); + if (stat != ASN_OK) return stat; + + /* encode optional bits */ + + encodeBit (pctxt, (ASN1BOOL)pvalue->m.iv16Present); + /* encode extension elements */ + + if (pvalue->m.iv16Present) { + initContext (&lctxt); + stat = setPERBuffer (&lctxt, 0, 0, TRUE); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = asn1PE_H235IV16 (&lctxt, &pvalue->iv16); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + stat = encodeByteAlign (&lctxt); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts); + + stat = encodeOpenType (pctxt, openType.numocts, openType.data); + if (stat != ASN_OK) return freeContext (&lctxt), stat; + + freeContext (&lctxt); + } + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ENCRYPTED */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue) +{ + int stat = ASN_OK; + + /* encode algorithmOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->algorithmOID); + if (stat != ASN_OK) return stat; + + /* encode paramS */ + + stat = asn1PE_H235Params (pctxt, &pvalue->paramS); + if (stat != ASN_OK) return stat; + + /* encode encryptedData */ + + stat = encodeOctetString (pctxt, pvalue->encryptedData.numocts, pvalue->encryptedData.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoEncryptedToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue) +{ + int stat = ASN_OK; + + /* encode tokenOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + + /* encode token */ + + stat = asn1PE_H235ENCRYPTED (pctxt, &pvalue->token); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* EncodedGeneralToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken value) +{ + int stat = ASN_OK; + + stat = encodeOpenType (pctxt, value.numocts, value.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoSignedToken_token */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue) +{ + int stat = ASN_OK; + + /* encode toBeSigned */ + + stat = asn1PE_H235EncodedGeneralToken (pctxt, pvalue->toBeSigned); + if (stat != ASN_OK) return stat; + + /* encode algorithmOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->algorithmOID); + if (stat != ASN_OK) return stat; + + /* encode paramS */ + + stat = asn1PE_H235Params (pctxt, &pvalue->paramS); + if (stat != ASN_OK) return stat; + + /* encode signature */ + + stat = encodeBitString (pctxt, pvalue->signature.numbits, pvalue->signature.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoSignedToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue) +{ + int stat = ASN_OK; + + /* encode tokenOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + + /* encode token */ + + stat = asn1PE_H235CryptoToken_cryptoSignedToken_token (pctxt, &pvalue->token); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* HASHED */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue) +{ + int stat = ASN_OK; + + /* encode algorithmOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->algorithmOID); + if (stat != ASN_OK) return stat; + + /* encode paramS */ + + stat = asn1PE_H235Params (pctxt, &pvalue->paramS); + if (stat != ASN_OK) return stat; + + /* encode hash */ + + stat = encodeBitString (pctxt, pvalue->hash.numbits, pvalue->hash.data); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken_cryptoHashedToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue) +{ + int stat = ASN_OK; + + /* encode tokenOID */ + + stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID); + if (stat != ASN_OK) return stat; + + /* encode hashedVals */ + + stat = asn1PE_H235ClearToken (pctxt, &pvalue->hashedVals); + if (stat != ASN_OK) return stat; + + /* encode token */ + + stat = asn1PE_H235HASHED (pctxt, &pvalue->token); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* CryptoToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PE_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue) +{ + int stat = ASN_OK; + ASN1BOOL extbit; + + /* extension bit */ + + extbit = (ASN1BOOL)(pvalue->t > 4); + + encodeBit (pctxt, extbit); + + if (!extbit) { + + /* Encode choice index value */ + + stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3); + if (stat != ASN_OK) return stat; + + /* Encode root element data value */ + + switch (pvalue->t) + { + /* cryptoEncryptedToken */ + case 1: + stat = asn1PE_H235CryptoToken_cryptoEncryptedToken (pctxt, pvalue->u.cryptoEncryptedToken); + if (stat != ASN_OK) return stat; + break; + + /* cryptoSignedToken */ + case 2: + stat = asn1PE_H235CryptoToken_cryptoSignedToken (pctxt, pvalue->u.cryptoSignedToken); + if (stat != ASN_OK) return stat; + break; + + /* cryptoHashedToken */ + case 3: + stat = asn1PE_H235CryptoToken_cryptoHashedToken (pctxt, pvalue->u.cryptoHashedToken); + if (stat != ASN_OK) return stat; + break; + + /* cryptoPwdEncr */ + case 4: + stat = asn1PE_H235ENCRYPTED (pctxt, pvalue->u.cryptoPwdEncr); + if (stat != ASN_OK) return stat; + break; + + default: + return ASN_E_INVOPT; + } + } + else { + /* Encode extension choice index value */ + + stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5); + if (stat != ASN_OK) return stat; + + /* Encode extension element data value */ + + } + + return (stat); +} + diff --git a/addons/ooh323c/src/h323/H323-MESSAGES.c b/addons/ooh323c/src/h323/H323-MESSAGES.c new file mode 100644 index 000000000..2c27f3b93 --- /dev/null +++ b/addons/ooh323c/src/h323/H323-MESSAGES.c @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * This file was generated by the Objective Systems ASN1C Compiler + * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005. + */ +#include "ooasn1.h" +#include "H323-MESSAGES.h" + +/**************************************************************/ +/* */ +/* NumberDigits */ +/* */ +/**************************************************************/ + +EXTERN const char* gs_H323_MESSAGES_NumberDigits_CharSet = +"#*,0123456789"; + +/**************************************************************/ +/* */ +/* TBCD_STRING */ +/* */ +/**************************************************************/ + +EXTERN const char* gs_H323_MESSAGES_TBCD_STRING_CharSet = +"#*0123456789abc"; + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_system_id */ +/* */ +/**************************************************************/ + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet = +"#*0123456789abc"; + +/**************************************************************/ +/* */ +/* ANSI_41_UIM */ +/* */ +/**************************************************************/ + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet = +"#*0123456789abc"; + +/**************************************************************/ +/* */ +/* GSM_UIM */ +/* */ +/**************************************************************/ + +EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imsi_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imei_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet = +"#*0123456789abc"; + +EXTERN const char* gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet = +"#*0123456789abc"; + +/**************************************************************/ +/* */ +/* AliasAddress */ +/* */ +/**************************************************************/ + +EXTERN const char* gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet = +"#*,0123456789"; + diff --git a/addons/ooh323c/src/h323/H323-MESSAGES.h b/addons/ooh323c/src/h323/H323-MESSAGES.h new file mode 100644 index 000000000..fbd87b336 --- /dev/null +++ b/addons/ooh323c/src/h323/H323-MESSAGES.h @@ -0,0 +1,6510 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ +/** + * This file was generated by the Objective Systems ASN1C Compiler + * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005. + */ +#ifndef H323_MESSAGES_H +#define H323_MESSAGES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdio.h> +#include <stdlib.h> + +#include "ooasn1.h" +#include "H235-SECURITY-MESSAGES.h" +#include "MULTIMEDIA-SYSTEM-CONTROL.h" + +/**************************************************************/ +/* */ +/* ScreeningIndicator */ +/* */ +/**************************************************************/ + +typedef enum { + userProvidedNotScreened = 0, + userProvidedVerifiedAndPassed = 1, + userProvidedVerifiedAndFailed = 2, + networkProvided = 3 +} H225ScreeningIndicator_Root; + +typedef ASN1UINT H225ScreeningIndicator; + +EXTERN int asn1PE_H225ScreeningIndicator (OOCTXT* pctxt, H225ScreeningIndicator value); + +EXTERN int asn1PD_H225ScreeningIndicator (OOCTXT* pctxt, H225ScreeningIndicator* pvalue); + +/**************************************************************/ +/* */ +/* NumberDigits */ +/* */ +/**************************************************************/ + +typedef ASN1IA5String H225NumberDigits; + +EXTERN int asn1PE_H225NumberDigits (OOCTXT* pctxt, H225NumberDigits value); + +EXTERN int asn1PD_H225NumberDigits (OOCTXT* pctxt, H225NumberDigits* pvalue); + +/**************************************************************/ +/* */ +/* TBCD_STRING */ +/* */ +/**************************************************************/ + +typedef ASN1IA5String H225TBCD_STRING; + +EXTERN int asn1PE_H225TBCD_STRING (OOCTXT* pctxt, H225TBCD_STRING value); + +EXTERN int asn1PD_H225TBCD_STRING (OOCTXT* pctxt, H225TBCD_STRING* pvalue); + +/**************************************************************/ +/* */ +/* GloballyUniqueID */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GloballyUniqueID { + ASN1UINT numocts; + ASN1OCTET data[16]; +} H225GloballyUniqueID; + +EXTERN int asn1PE_H225GloballyUniqueID (OOCTXT* pctxt, H225GloballyUniqueID* pvalue); + +EXTERN int asn1PD_H225GloballyUniqueID (OOCTXT* pctxt, H225GloballyUniqueID* pvalue); + +/**************************************************************/ +/* */ +/* ConferenceIdentifier */ +/* */ +/**************************************************************/ + +typedef H225GloballyUniqueID H225ConferenceIdentifier; + +EXTERN int asn1PE_H225ConferenceIdentifier (OOCTXT* pctxt, H225ConferenceIdentifier* pvalue); + +EXTERN int asn1PD_H225ConferenceIdentifier (OOCTXT* pctxt, H225ConferenceIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* RequestSeqNum */ +/* */ +/**************************************************************/ + +typedef ASN1USINT H225RequestSeqNum; + +EXTERN int asn1PE_H225RequestSeqNum (OOCTXT* pctxt, H225RequestSeqNum value); + +EXTERN int asn1PD_H225RequestSeqNum (OOCTXT* pctxt, H225RequestSeqNum* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperIdentifier */ +/* */ +/**************************************************************/ + +typedef ASN1BMPString H225GatekeeperIdentifier; + +EXTERN int asn1PE_H225GatekeeperIdentifier (OOCTXT* pctxt, H225GatekeeperIdentifier value); + +EXTERN int asn1PD_H225GatekeeperIdentifier (OOCTXT* pctxt, H225GatekeeperIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* BandWidth */ +/* */ +/**************************************************************/ + +typedef ASN1UINT H225BandWidth; + +EXTERN int asn1PE_H225BandWidth (OOCTXT* pctxt, H225BandWidth value); + +EXTERN int asn1PD_H225BandWidth (OOCTXT* pctxt, H225BandWidth* pvalue); + +/**************************************************************/ +/* */ +/* CallReferenceValue */ +/* */ +/**************************************************************/ + +typedef ASN1USINT H225CallReferenceValue; + +EXTERN int asn1PE_H225CallReferenceValue (OOCTXT* pctxt, H225CallReferenceValue value); + +EXTERN int asn1PD_H225CallReferenceValue (OOCTXT* pctxt, H225CallReferenceValue* pvalue); + +/**************************************************************/ +/* */ +/* EndpointIdentifier */ +/* */ +/**************************************************************/ + +typedef ASN1BMPString H225EndpointIdentifier; + +EXTERN int asn1PE_H225EndpointIdentifier (OOCTXT* pctxt, H225EndpointIdentifier value); + +EXTERN int asn1PD_H225EndpointIdentifier (OOCTXT* pctxt, H225EndpointIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* ProtocolIdentifier */ +/* */ +/**************************************************************/ + +typedef ASN1OBJID H225ProtocolIdentifier; + +EXTERN int asn1PE_H225ProtocolIdentifier (OOCTXT* pctxt, H225ProtocolIdentifier value); + +EXTERN int asn1PD_H225ProtocolIdentifier (OOCTXT* pctxt, H225ProtocolIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* TimeToLive */ +/* */ +/**************************************************************/ + +typedef ASN1UINT H225TimeToLive; + +EXTERN int asn1PE_H225TimeToLive (OOCTXT* pctxt, H225TimeToLive value); + +EXTERN int asn1PD_H225TimeToLive (OOCTXT* pctxt, H225TimeToLive* pvalue); + +/**************************************************************/ +/* */ +/* H248PackagesDescriptor */ +/* */ +/**************************************************************/ + +typedef ASN1DynOctStr H225H248PackagesDescriptor; + +EXTERN int asn1PE_H225H248PackagesDescriptor (OOCTXT* pctxt, H225H248PackagesDescriptor value); + +EXTERN int asn1PD_H225H248PackagesDescriptor (OOCTXT* pctxt, H225H248PackagesDescriptor* pvalue); + +/**************************************************************/ +/* */ +/* H248SignalsDescriptor */ +/* */ +/**************************************************************/ + +typedef ASN1DynOctStr H225H248SignalsDescriptor; + +EXTERN int asn1PE_H225H248SignalsDescriptor (OOCTXT* pctxt, H225H248SignalsDescriptor value); + +EXTERN int asn1PD_H225H248SignalsDescriptor (OOCTXT* pctxt, H225H248SignalsDescriptor* pvalue); + +/**************************************************************/ +/* */ +/* GenericIdentifier */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225GenericIdentifier_standard 1 +#define T_H225GenericIdentifier_oid 2 +#define T_H225GenericIdentifier_nonStandard 3 +#define T_H225GenericIdentifier_extElem1 4 + +typedef struct EXTERN H225GenericIdentifier { + int t; + union { + /* t = 1 */ + ASN1INT standard; + /* t = 2 */ + ASN1OBJID *oid; + /* t = 3 */ + H225GloballyUniqueID *nonStandard; + /* t = 4 */ + } u; +} H225GenericIdentifier; + +EXTERN int asn1PE_H225GenericIdentifier (OOCTXT* pctxt, H225GenericIdentifier* pvalue); + +EXTERN int asn1PD_H225GenericIdentifier (OOCTXT* pctxt, H225GenericIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipAddress_ip */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipAddress_ip { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225TransportAddress_ipAddress_ip; + +EXTERN int asn1PE_H225TransportAddress_ipAddress_ip (OOCTXT* pctxt, H225TransportAddress_ipAddress_ip* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipAddress_ip (OOCTXT* pctxt, H225TransportAddress_ipAddress_ip* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipAddress */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipAddress { + H225TransportAddress_ipAddress_ip ip; + ASN1USINT port; +} H225TransportAddress_ipAddress; + +EXTERN int asn1PE_H225TransportAddress_ipAddress (OOCTXT* pctxt, H225TransportAddress_ipAddress* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipAddress (OOCTXT* pctxt, H225TransportAddress_ipAddress* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute_ip */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipSourceRoute_ip { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225TransportAddress_ipSourceRoute_ip; + +EXTERN int asn1PE_H225TransportAddress_ipSourceRoute_ip (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_ip* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_ip (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_ip* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute_route_element */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipSourceRoute_route_element { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225TransportAddress_ipSourceRoute_route_element; + +EXTERN int asn1PE_H225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_route_element* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_route_element* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225TransportAddress_ipSourceRoute_route_element */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225_SeqOfH225TransportAddress_ipSourceRoute_route_element { + ASN1UINT n; + H225TransportAddress_ipSourceRoute_route_element *elem; +} H225_SeqOfH225TransportAddress_ipSourceRoute_route_element; + +EXTERN int asn1PE_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225_SeqOfH225TransportAddress_ipSourceRoute_route_element* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225_SeqOfH225TransportAddress_ipSourceRoute_route_element* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute_routing */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225TransportAddress_ipSourceRoute_routing_strict 1 +#define T_H225TransportAddress_ipSourceRoute_routing_loose 2 +#define T_H225TransportAddress_ipSourceRoute_routing_extElem1 3 + +typedef struct EXTERN H225TransportAddress_ipSourceRoute_routing { + int t; +} H225TransportAddress_ipSourceRoute_routing; + +EXTERN int asn1PE_H225TransportAddress_ipSourceRoute_routing (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_routing* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_routing (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_routing* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipSourceRoute { + H225TransportAddress_ipSourceRoute_ip ip; + ASN1USINT port; + H225_SeqOfH225TransportAddress_ipSourceRoute_route_element route; + H225TransportAddress_ipSourceRoute_routing routing; +} H225TransportAddress_ipSourceRoute; + +EXTERN int asn1PE_H225TransportAddress_ipSourceRoute (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress_node */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipxAddress_node { + ASN1UINT numocts; + ASN1OCTET data[6]; +} H225TransportAddress_ipxAddress_node; + +EXTERN int asn1PE_H225TransportAddress_ipxAddress_node (OOCTXT* pctxt, H225TransportAddress_ipxAddress_node* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipxAddress_node (OOCTXT* pctxt, H225TransportAddress_ipxAddress_node* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress_netnum */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipxAddress_netnum { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225TransportAddress_ipxAddress_netnum; + +EXTERN int asn1PE_H225TransportAddress_ipxAddress_netnum (OOCTXT* pctxt, H225TransportAddress_ipxAddress_netnum* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipxAddress_netnum (OOCTXT* pctxt, H225TransportAddress_ipxAddress_netnum* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress_port */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipxAddress_port { + ASN1UINT numocts; + ASN1OCTET data[2]; +} H225TransportAddress_ipxAddress_port; + +EXTERN int asn1PE_H225TransportAddress_ipxAddress_port (OOCTXT* pctxt, H225TransportAddress_ipxAddress_port* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipxAddress_port (OOCTXT* pctxt, H225TransportAddress_ipxAddress_port* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ipxAddress { + H225TransportAddress_ipxAddress_node node; + H225TransportAddress_ipxAddress_netnum netnum; + H225TransportAddress_ipxAddress_port port; +} H225TransportAddress_ipxAddress; + +EXTERN int asn1PE_H225TransportAddress_ipxAddress (OOCTXT* pctxt, H225TransportAddress_ipxAddress* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ipxAddress (OOCTXT* pctxt, H225TransportAddress_ipxAddress* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ip6Address_ip */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ip6Address_ip { + ASN1UINT numocts; + ASN1OCTET data[16]; +} H225TransportAddress_ip6Address_ip; + +EXTERN int asn1PE_H225TransportAddress_ip6Address_ip (OOCTXT* pctxt, H225TransportAddress_ip6Address_ip* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ip6Address_ip (OOCTXT* pctxt, H225TransportAddress_ip6Address_ip* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_ip6Address */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_ip6Address { + H225TransportAddress_ip6Address_ip ip; + ASN1USINT port; +} H225TransportAddress_ip6Address; + +EXTERN int asn1PE_H225TransportAddress_ip6Address (OOCTXT* pctxt, H225TransportAddress_ip6Address* pvalue); + +EXTERN int asn1PD_H225TransportAddress_ip6Address (OOCTXT* pctxt, H225TransportAddress_ip6Address* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_netBios */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_netBios { + ASN1UINT numocts; + ASN1OCTET data[16]; +} H225TransportAddress_netBios; + +EXTERN int asn1PE_H225TransportAddress_netBios (OOCTXT* pctxt, H225TransportAddress_netBios* pvalue); + +EXTERN int asn1PD_H225TransportAddress_netBios (OOCTXT* pctxt, H225TransportAddress_netBios* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress_nsap */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportAddress_nsap { + ASN1UINT numocts; + ASN1OCTET data[20]; +} H225TransportAddress_nsap; + +EXTERN int asn1PE_H225TransportAddress_nsap (OOCTXT* pctxt, H225TransportAddress_nsap* pvalue); + +EXTERN int asn1PD_H225TransportAddress_nsap (OOCTXT* pctxt, H225TransportAddress_nsap* pvalue); + +/**************************************************************/ +/* */ +/* H221NonStandard */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H221NonStandard { + ASN1UINT8 t35CountryCode; + ASN1UINT8 t35Extension; + ASN1USINT manufacturerCode; +} H225H221NonStandard; + +EXTERN int asn1PE_H225H221NonStandard (OOCTXT* pctxt, H225H221NonStandard* pvalue); + +EXTERN int asn1PD_H225H221NonStandard (OOCTXT* pctxt, H225H221NonStandard* pvalue); + +/**************************************************************/ +/* */ +/* NonStandardIdentifier */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225NonStandardIdentifier_object 1 +#define T_H225NonStandardIdentifier_h221NonStandard 2 +#define T_H225NonStandardIdentifier_extElem1 3 + +typedef struct EXTERN H225NonStandardIdentifier { + int t; + union { + /* t = 1 */ + ASN1OBJID *object; + /* t = 2 */ + H225H221NonStandard *h221NonStandard; + /* t = 3 */ + } u; +} H225NonStandardIdentifier; + +EXTERN int asn1PE_H225NonStandardIdentifier (OOCTXT* pctxt, H225NonStandardIdentifier* pvalue); + +EXTERN int asn1PD_H225NonStandardIdentifier (OOCTXT* pctxt, H225NonStandardIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* NonStandardParameter */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225NonStandardParameter { + H225NonStandardIdentifier nonStandardIdentifier; + ASN1DynOctStr data; +} H225NonStandardParameter; + +EXTERN int asn1PE_H225NonStandardParameter (OOCTXT* pctxt, H225NonStandardParameter* pvalue); + +EXTERN int asn1PD_H225NonStandardParameter (OOCTXT* pctxt, H225NonStandardParameter* pvalue); + +/**************************************************************/ +/* */ +/* TransportAddress */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225TransportAddress_ipAddress 1 +#define T_H225TransportAddress_ipSourceRoute 2 +#define T_H225TransportAddress_ipxAddress 3 +#define T_H225TransportAddress_ip6Address 4 +#define T_H225TransportAddress_netBios 5 +#define T_H225TransportAddress_nsap 6 +#define T_H225TransportAddress_nonStandardAddress 7 +#define T_H225TransportAddress_extElem1 8 + +typedef struct EXTERN H225TransportAddress { + int t; + union { + /* t = 1 */ + H225TransportAddress_ipAddress *ipAddress; + /* t = 2 */ + H225TransportAddress_ipSourceRoute *ipSourceRoute; + /* t = 3 */ + H225TransportAddress_ipxAddress *ipxAddress; + /* t = 4 */ + H225TransportAddress_ip6Address *ip6Address; + /* t = 5 */ + H225TransportAddress_netBios *netBios; + /* t = 6 */ + H225TransportAddress_nsap *nsap; + /* t = 7 */ + H225NonStandardParameter *nonStandardAddress; + /* t = 8 */ + } u; +} H225TransportAddress; + +EXTERN int asn1PE_H225TransportAddress (OOCTXT* pctxt, H225TransportAddress* pvalue); + +EXTERN int asn1PD_H225TransportAddress (OOCTXT* pctxt, H225TransportAddress* pvalue); + +/**************************************************************/ +/* */ +/* PublicTypeOfNumber */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225PublicTypeOfNumber_unknown 1 +#define T_H225PublicTypeOfNumber_internationalNumber 2 +#define T_H225PublicTypeOfNumber_nationalNumber 3 +#define T_H225PublicTypeOfNumber_networkSpecificNumber 4 +#define T_H225PublicTypeOfNumber_subscriberNumber 5 +#define T_H225PublicTypeOfNumber_abbreviatedNumber 6 +#define T_H225PublicTypeOfNumber_extElem1 7 + +typedef struct EXTERN H225PublicTypeOfNumber { + int t; +} H225PublicTypeOfNumber; + +EXTERN int asn1PE_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue); + +EXTERN int asn1PD_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue); + +/**************************************************************/ +/* */ +/* PublicPartyNumber */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225PublicPartyNumber { + H225PublicTypeOfNumber publicTypeOfNumber; + H225NumberDigits publicNumberDigits; +} H225PublicPartyNumber; + +EXTERN int asn1PE_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue); + +EXTERN int asn1PD_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue); + +/**************************************************************/ +/* */ +/* PrivateTypeOfNumber */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225PrivateTypeOfNumber_unknown 1 +#define T_H225PrivateTypeOfNumber_level2RegionalNumber 2 +#define T_H225PrivateTypeOfNumber_level1RegionalNumber 3 +#define T_H225PrivateTypeOfNumber_pISNSpecificNumber 4 +#define T_H225PrivateTypeOfNumber_localNumber 5 +#define T_H225PrivateTypeOfNumber_abbreviatedNumber 6 +#define T_H225PrivateTypeOfNumber_extElem1 7 + +typedef struct EXTERN H225PrivateTypeOfNumber { + int t; +} H225PrivateTypeOfNumber; + +EXTERN int asn1PE_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue); + +EXTERN int asn1PD_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue); + +/**************************************************************/ +/* */ +/* PrivatePartyNumber */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225PrivatePartyNumber { + H225PrivateTypeOfNumber privateTypeOfNumber; + H225NumberDigits privateNumberDigits; +} H225PrivatePartyNumber; + +EXTERN int asn1PE_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue); + +EXTERN int asn1PD_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue); + +/**************************************************************/ +/* */ +/* PartyNumber */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225PartyNumber_e164Number 1 +#define T_H225PartyNumber_dataPartyNumber 2 +#define T_H225PartyNumber_telexPartyNumber 3 +#define T_H225PartyNumber_privateNumber 4 +#define T_H225PartyNumber_nationalStandardPartyNumber 5 +#define T_H225PartyNumber_extElem1 6 + +typedef struct EXTERN H225PartyNumber { + int t; + union { + /* t = 1 */ + H225PublicPartyNumber *e164Number; + /* t = 2 */ + H225NumberDigits dataPartyNumber; + /* t = 3 */ + H225NumberDigits telexPartyNumber; + /* t = 4 */ + H225PrivatePartyNumber *privateNumber; + /* t = 5 */ + H225NumberDigits nationalStandardPartyNumber; + /* t = 6 */ + } u; +} H225PartyNumber; + +EXTERN int asn1PE_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue); + +EXTERN int asn1PD_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue); + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_system_id */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ANSI_41_UIM_system_id_sid 1 +#define T_H225ANSI_41_UIM_system_id_mid 2 +#define T_H225ANSI_41_UIM_system_id_extElem1 3 + +typedef struct EXTERN H225ANSI_41_UIM_system_id { + int t; + union { + /* t = 1 */ + ASN1IA5String sid; + /* t = 2 */ + ASN1IA5String mid; + /* t = 3 */ + } u; +} H225ANSI_41_UIM_system_id; + +EXTERN int asn1PE_H225ANSI_41_UIM_system_id (OOCTXT* pctxt, H225ANSI_41_UIM_system_id* pvalue); + +EXTERN int asn1PD_H225ANSI_41_UIM_system_id (OOCTXT* pctxt, H225ANSI_41_UIM_system_id* pvalue); + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_systemMyTypeCode */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ANSI_41_UIM_systemMyTypeCode { + ASN1UINT numocts; + ASN1OCTET data[1]; +} H225ANSI_41_UIM_systemMyTypeCode; + +EXTERN int asn1PE_H225ANSI_41_UIM_systemMyTypeCode (OOCTXT* pctxt, H225ANSI_41_UIM_systemMyTypeCode* pvalue); + +EXTERN int asn1PD_H225ANSI_41_UIM_systemMyTypeCode (OOCTXT* pctxt, H225ANSI_41_UIM_systemMyTypeCode* pvalue); + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_systemAccessType */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ANSI_41_UIM_systemAccessType { + ASN1UINT numocts; + ASN1OCTET data[1]; +} H225ANSI_41_UIM_systemAccessType; + +EXTERN int asn1PE_H225ANSI_41_UIM_systemAccessType (OOCTXT* pctxt, H225ANSI_41_UIM_systemAccessType* pvalue); + +EXTERN int asn1PD_H225ANSI_41_UIM_systemAccessType (OOCTXT* pctxt, H225ANSI_41_UIM_systemAccessType* pvalue); + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_qualificationInformationCode */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ANSI_41_UIM_qualificationInformationCode { + ASN1UINT numocts; + ASN1OCTET data[1]; +} H225ANSI_41_UIM_qualificationInformationCode; + +EXTERN int asn1PE_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue); + +EXTERN int asn1PD_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue); + +/**************************************************************/ +/* */ +/* ANSI_41_UIM */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ANSI_41_UIM { + struct { + unsigned imsiPresent : 1; + unsigned minPresent : 1; + unsigned mdnPresent : 1; + unsigned msisdnPresent : 1; + unsigned esnPresent : 1; + unsigned mscidPresent : 1; + unsigned systemMyTypeCodePresent : 1; + unsigned systemAccessTypePresent : 1; + unsigned qualificationInformationCodePresent : 1; + unsigned sesnPresent : 1; + unsigned socPresent : 1; + } m; + ASN1IA5String imsi; + ASN1IA5String min; + ASN1IA5String mdn; + ASN1IA5String msisdn; + ASN1IA5String esn; + ASN1IA5String mscid; + H225ANSI_41_UIM_system_id system_id; + H225ANSI_41_UIM_systemMyTypeCode systemMyTypeCode; + H225ANSI_41_UIM_systemAccessType systemAccessType; + H225ANSI_41_UIM_qualificationInformationCode qualificationInformationCode; + ASN1IA5String sesn; + ASN1IA5String soc; +} H225ANSI_41_UIM; + +EXTERN int asn1PE_H225ANSI_41_UIM (OOCTXT* pctxt, H225ANSI_41_UIM* pvalue); + +EXTERN int asn1PD_H225ANSI_41_UIM (OOCTXT* pctxt, H225ANSI_41_UIM* pvalue); + +/**************************************************************/ +/* */ +/* GSM_UIM_tmsi */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GSM_UIM_tmsi { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225GSM_UIM_tmsi; + +EXTERN int asn1PE_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue); + +EXTERN int asn1PD_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue); + +/**************************************************************/ +/* */ +/* GSM_UIM */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GSM_UIM { + struct { + unsigned imsiPresent : 1; + unsigned tmsiPresent : 1; + unsigned msisdnPresent : 1; + unsigned imeiPresent : 1; + unsigned hplmnPresent : 1; + unsigned vplmnPresent : 1; + } m; + ASN1IA5String imsi; + H225GSM_UIM_tmsi tmsi; + ASN1IA5String msisdn; + ASN1IA5String imei; + ASN1IA5String hplmn; + ASN1IA5String vplmn; +} H225GSM_UIM; + +EXTERN int asn1PE_H225GSM_UIM (OOCTXT* pctxt, H225GSM_UIM* pvalue); + +EXTERN int asn1PD_H225GSM_UIM (OOCTXT* pctxt, H225GSM_UIM* pvalue); + +/**************************************************************/ +/* */ +/* MobileUIM */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225MobileUIM_ansi_41_uim 1 +#define T_H225MobileUIM_gsm_uim 2 +#define T_H225MobileUIM_extElem1 3 + +typedef struct EXTERN H225MobileUIM { + int t; + union { + /* t = 1 */ + H225ANSI_41_UIM *ansi_41_uim; + /* t = 2 */ + H225GSM_UIM *gsm_uim; + /* t = 3 */ + } u; +} H225MobileUIM; + +EXTERN int asn1PE_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue); + +EXTERN int asn1PD_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue); + +/**************************************************************/ +/* */ +/* AliasAddress */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225AliasAddress_dialedDigits 1 +#define T_H225AliasAddress_h323_ID 2 +#define T_H225AliasAddress_url_ID 3 +#define T_H225AliasAddress_transportID 4 +#define T_H225AliasAddress_email_ID 5 +#define T_H225AliasAddress_partyNumber 6 +#define T_H225AliasAddress_mobileUIM 7 +#define T_H225AliasAddress_extElem1 8 + +typedef struct EXTERN H225AliasAddress { + int t; + union { + /* t = 1 */ + ASN1IA5String dialedDigits; + /* t = 2 */ + ASN1BMPString h323_ID; + /* t = 3 */ + ASN1IA5String url_ID; + /* t = 4 */ + H225TransportAddress *transportID; + /* t = 5 */ + ASN1IA5String email_ID; + /* t = 6 */ + H225PartyNumber *partyNumber; + /* t = 7 */ + H225MobileUIM *mobileUIM; + /* t = 8 */ + } u; +} H225AliasAddress; + +EXTERN int asn1PE_H225AliasAddress (OOCTXT* pctxt, H225AliasAddress* pvalue); + +EXTERN int asn1PD_H225AliasAddress (OOCTXT* pctxt, H225AliasAddress* pvalue); + +/**************************************************************/ +/* */ +/* Content_compound */ +/* */ +/**************************************************************/ + +/* List of H225EnumeratedParameter */ +typedef DList H225Content_compound; + +EXTERN int asn1PE_H225Content_compound (OOCTXT* pctxt, H225Content_compound* pvalue); + +EXTERN int asn1PD_H225Content_compound (OOCTXT* pctxt, H225Content_compound* pvalue); + +/**************************************************************/ +/* */ +/* Content_nested */ +/* */ +/**************************************************************/ + +/* List of H225GenericData */ +typedef DList H225Content_nested; + +EXTERN int asn1PE_H225Content_nested (OOCTXT* pctxt, H225Content_nested* pvalue); + +EXTERN int asn1PD_H225Content_nested (OOCTXT* pctxt, H225Content_nested* pvalue); + +/**************************************************************/ +/* */ +/* Content */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225Content_raw 1 +#define T_H225Content_text 2 +#define T_H225Content_unicode 3 +#define T_H225Content_bool_ 4 +#define T_H225Content_number8 5 +#define T_H225Content_number16 6 +#define T_H225Content_number32 7 +#define T_H225Content_id 8 +#define T_H225Content_alias 9 +#define T_H225Content_transport 10 +#define T_H225Content_compound 11 +#define T_H225Content_nested 12 +#define T_H225Content_extElem1 13 + +typedef struct EXTERN H225Content { + int t; + union { + /* t = 1 */ + ASN1DynOctStr *raw; + /* t = 2 */ + ASN1IA5String text; + /* t = 3 */ + ASN1BMPString unicode; + /* t = 4 */ + ASN1BOOL bool_; + /* t = 5 */ + ASN1UINT8 number8; + /* t = 6 */ + ASN1USINT number16; + /* t = 7 */ + ASN1UINT number32; + /* t = 8 */ + H225GenericIdentifier *id; + /* t = 9 */ + H225AliasAddress *alias; + /* t = 10 */ + H225TransportAddress *transport; + /* t = 11 */ + H225Content_compound *compound; + /* t = 12 */ + H225Content_nested *nested; + /* t = 13 */ + } u; +} H225Content; + +EXTERN int asn1PE_H225Content (OOCTXT* pctxt, H225Content* pvalue); + +EXTERN int asn1PD_H225Content (OOCTXT* pctxt, H225Content* pvalue); + +/**************************************************************/ +/* */ +/* EnumeratedParameter */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225EnumeratedParameter { + struct { + unsigned contentPresent : 1; + } m; + H225GenericIdentifier id; + H225Content content; +} H225EnumeratedParameter; + +EXTERN int asn1PE_H225EnumeratedParameter (OOCTXT* pctxt, H225EnumeratedParameter* pvalue); + +EXTERN int asn1PD_H225EnumeratedParameter (OOCTXT* pctxt, H225EnumeratedParameter* pvalue); + +/**************************************************************/ +/* */ +/* GenericData_parameters */ +/* */ +/**************************************************************/ + +/* List of H225EnumeratedParameter */ +typedef DList H225GenericData_parameters; + +EXTERN int asn1PE_H225GenericData_parameters (OOCTXT* pctxt, H225GenericData_parameters* pvalue); + +EXTERN int asn1PD_H225GenericData_parameters (OOCTXT* pctxt, H225GenericData_parameters* pvalue); + +/**************************************************************/ +/* */ +/* GenericData */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GenericData { + struct { + unsigned parametersPresent : 1; + } m; + H225GenericIdentifier id; + H225GenericData_parameters parameters; +} H225GenericData; + +EXTERN int asn1PE_H225GenericData (OOCTXT* pctxt, H225GenericData* pvalue); + +EXTERN int asn1PD_H225GenericData (OOCTXT* pctxt, H225GenericData* pvalue); + +/**************************************************************/ +/* */ +/* FeatureDescriptor */ +/* */ +/**************************************************************/ + +typedef H225GenericData H225FeatureDescriptor; + +EXTERN int asn1PE_H225FeatureDescriptor (OOCTXT* pctxt, H225FeatureDescriptor* pvalue); + +EXTERN int asn1PD_H225FeatureDescriptor (OOCTXT* pctxt, H225FeatureDescriptor* pvalue); + +/**************************************************************/ +/* */ +/* FastStartToken */ +/* */ +/**************************************************************/ + +typedef H235ClearToken H225FastStartToken; + +EXTERN int asn1PE_H225FastStartToken (OOCTXT* pctxt, H225FastStartToken* pvalue); + +EXTERN int asn1PD_H225FastStartToken (OOCTXT* pctxt, H225FastStartToken* pvalue); + +/**************************************************************/ +/* */ +/* EncodedFastStartToken */ +/* */ +/**************************************************************/ + +typedef ASN1OpenType H225EncodedFastStartToken; + +EXTERN int asn1PE_H225EncodedFastStartToken (OOCTXT* pctxt, H225EncodedFastStartToken value); + +EXTERN int asn1PD_H225EncodedFastStartToken (OOCTXT* pctxt, H225EncodedFastStartToken* pvalue); + +/**************************************************************/ +/* */ +/* H323_UserInformation_user_data_user_information */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UserInformation_user_data_user_information { + ASN1UINT numocts; + ASN1OCTET data[131]; +} H225H323_UserInformation_user_data_user_information; + +EXTERN int asn1PE_H225H323_UserInformation_user_data_user_information (OOCTXT* pctxt, H225H323_UserInformation_user_data_user_information* pvalue); + +EXTERN int asn1PD_H225H323_UserInformation_user_data_user_information (OOCTXT* pctxt, H225H323_UserInformation_user_data_user_information* pvalue); + +/**************************************************************/ +/* */ +/* EndpointType_set */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225EndpointType_set { + ASN1UINT numbits; + ASN1OCTET data[4]; +} H225EndpointType_set; + +EXTERN int asn1PE_H225EndpointType_set (OOCTXT* pctxt, H225EndpointType_set* pvalue); + +EXTERN int asn1PD_H225EndpointType_set (OOCTXT* pctxt, H225EndpointType_set* pvalue); + +/**************************************************************/ +/* */ +/* VendorIdentifier_productId */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225VendorIdentifier_productId { + ASN1UINT numocts; + ASN1OCTET data[256]; +} H225VendorIdentifier_productId; + +EXTERN int asn1PE_H225VendorIdentifier_productId (OOCTXT* pctxt, H225VendorIdentifier_productId* pvalue); + +EXTERN int asn1PD_H225VendorIdentifier_productId (OOCTXT* pctxt, H225VendorIdentifier_productId* pvalue); + +/**************************************************************/ +/* */ +/* VendorIdentifier_versionId */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225VendorIdentifier_versionId { + ASN1UINT numocts; + ASN1OCTET data[256]; +} H225VendorIdentifier_versionId; + +EXTERN int asn1PE_H225VendorIdentifier_versionId (OOCTXT* pctxt, H225VendorIdentifier_versionId* pvalue); + +EXTERN int asn1PD_H225VendorIdentifier_versionId (OOCTXT* pctxt, H225VendorIdentifier_versionId* pvalue); + +/**************************************************************/ +/* */ +/* CicInfo_cic_element */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CicInfo_cic_element { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225CicInfo_cic_element; + +EXTERN int asn1PE_H225CicInfo_cic_element (OOCTXT* pctxt, H225CicInfo_cic_element* pvalue); + +EXTERN int asn1PD_H225CicInfo_cic_element (OOCTXT* pctxt, H225CicInfo_cic_element* pvalue); + +/**************************************************************/ +/* */ +/* CicInfo_pointCode */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CicInfo_pointCode { + ASN1UINT numocts; + ASN1OCTET data[5]; +} H225CicInfo_pointCode; + +EXTERN int asn1PE_H225CicInfo_pointCode (OOCTXT* pctxt, H225CicInfo_pointCode* pvalue); + +EXTERN int asn1PD_H225CicInfo_pointCode (OOCTXT* pctxt, H225CicInfo_pointCode* pvalue); + +/**************************************************************/ +/* */ +/* CarrierInfo_carrierIdentificationCode */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CarrierInfo_carrierIdentificationCode { + ASN1UINT numocts; + ASN1OCTET data[4]; +} H225CarrierInfo_carrierIdentificationCode; + +EXTERN int asn1PE_H225CarrierInfo_carrierIdentificationCode (OOCTXT* pctxt, H225CarrierInfo_carrierIdentificationCode* pvalue); + +EXTERN int asn1PD_H225CarrierInfo_carrierIdentificationCode (OOCTXT* pctxt, H225CarrierInfo_carrierIdentificationCode* pvalue); + +/**************************************************************/ +/* */ +/* CallTerminationCause_releaseCompleteCauseIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallTerminationCause_releaseCompleteCauseIE { + ASN1UINT numocts; + ASN1OCTET data[32]; +} H225CallTerminationCause_releaseCompleteCauseIE; + +EXTERN int asn1PE_H225CallTerminationCause_releaseCompleteCauseIE (OOCTXT* pctxt, H225CallTerminationCause_releaseCompleteCauseIE* pvalue); + +EXTERN int asn1PD_H225CallTerminationCause_releaseCompleteCauseIE (OOCTXT* pctxt, H225CallTerminationCause_releaseCompleteCauseIE* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225AliasAddress */ +/* */ +/**************************************************************/ + +/* List of H225AliasAddress */ +typedef DList H225_SeqOfH225AliasAddress; + +EXTERN int asn1PE_H225_SeqOfH225AliasAddress (OOCTXT* pctxt, H225_SeqOfH225AliasAddress* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225AliasAddress (OOCTXT* pctxt, H225_SeqOfH225AliasAddress* pvalue); + +/**************************************************************/ +/* */ +/* VendorIdentifier */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225VendorIdentifier { + struct { + unsigned productIdPresent : 1; + unsigned versionIdPresent : 1; + unsigned enterpriseNumberPresent : 1; + } m; + H225H221NonStandard vendor; + H225VendorIdentifier_productId productId; + H225VendorIdentifier_versionId versionId; + ASN1OBJID enterpriseNumber; +} H225VendorIdentifier; + +EXTERN int asn1PE_H225VendorIdentifier (OOCTXT* pctxt, H225VendorIdentifier* pvalue); + +EXTERN int asn1PD_H225VendorIdentifier (OOCTXT* pctxt, H225VendorIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GatekeeperInfo { + struct { + unsigned nonStandardDataPresent : 1; + } m; + H225NonStandardParameter nonStandardData; +} H225GatekeeperInfo; + +EXTERN int asn1PE_H225GatekeeperInfo (OOCTXT* pctxt, H225GatekeeperInfo* pvalue); + +EXTERN int asn1PD_H225GatekeeperInfo (OOCTXT* pctxt, H225GatekeeperInfo* pvalue); + +/**************************************************************/ +/* */ +/* DataRate */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225DataRate { + struct { + unsigned nonStandardDataPresent : 1; + unsigned channelMultiplierPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225BandWidth channelRate; + ASN1USINT channelMultiplier; +} H225DataRate; + +EXTERN int asn1PE_H225DataRate (OOCTXT* pctxt, H225DataRate* pvalue); + +EXTERN int asn1PD_H225DataRate (OOCTXT* pctxt, H225DataRate* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225DataRate */ +/* */ +/**************************************************************/ + +/* List of H225DataRate */ +typedef DList H225_SeqOfH225DataRate; + +EXTERN int asn1PE_H225_SeqOfH225DataRate (OOCTXT* pctxt, H225_SeqOfH225DataRate* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225DataRate (OOCTXT* pctxt, H225_SeqOfH225DataRate* pvalue); + +/**************************************************************/ +/* */ +/* SupportedPrefix */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225SupportedPrefix { + struct { + unsigned nonStandardDataPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225AliasAddress prefix; +} H225SupportedPrefix; + +EXTERN int asn1PE_H225SupportedPrefix (OOCTXT* pctxt, H225SupportedPrefix* pvalue); + +EXTERN int asn1PD_H225SupportedPrefix (OOCTXT* pctxt, H225SupportedPrefix* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225SupportedPrefix */ +/* */ +/**************************************************************/ + +/* List of H225SupportedPrefix */ +typedef DList H225_SeqOfH225SupportedPrefix; + +EXTERN int asn1PE_H225_SeqOfH225SupportedPrefix (OOCTXT* pctxt, H225_SeqOfH225SupportedPrefix* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225SupportedPrefix (OOCTXT* pctxt, H225_SeqOfH225SupportedPrefix* pvalue); + +/**************************************************************/ +/* */ +/* H310Caps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H310Caps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225H310Caps; + +EXTERN int asn1PE_H225H310Caps (OOCTXT* pctxt, H225H310Caps* pvalue); + +EXTERN int asn1PD_H225H310Caps (OOCTXT* pctxt, H225H310Caps* pvalue); + +/**************************************************************/ +/* */ +/* H320Caps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H320Caps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225H320Caps; + +EXTERN int asn1PE_H225H320Caps (OOCTXT* pctxt, H225H320Caps* pvalue); + +EXTERN int asn1PD_H225H320Caps (OOCTXT* pctxt, H225H320Caps* pvalue); + +/**************************************************************/ +/* */ +/* H321Caps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H321Caps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225H321Caps; + +EXTERN int asn1PE_H225H321Caps (OOCTXT* pctxt, H225H321Caps* pvalue); + +EXTERN int asn1PD_H225H321Caps (OOCTXT* pctxt, H225H321Caps* pvalue); + +/**************************************************************/ +/* */ +/* H322Caps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H322Caps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225H322Caps; + +EXTERN int asn1PE_H225H322Caps (OOCTXT* pctxt, H225H322Caps* pvalue); + +EXTERN int asn1PD_H225H322Caps (OOCTXT* pctxt, H225H322Caps* pvalue); + +/**************************************************************/ +/* */ +/* H323Caps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323Caps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225H323Caps; + +EXTERN int asn1PE_H225H323Caps (OOCTXT* pctxt, H225H323Caps* pvalue); + +EXTERN int asn1PD_H225H323Caps (OOCTXT* pctxt, H225H323Caps* pvalue); + +/**************************************************************/ +/* */ +/* H324Caps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H324Caps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225H324Caps; + +EXTERN int asn1PE_H225H324Caps (OOCTXT* pctxt, H225H324Caps* pvalue); + +EXTERN int asn1PD_H225H324Caps (OOCTXT* pctxt, H225H324Caps* pvalue); + +/**************************************************************/ +/* */ +/* VoiceCaps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225VoiceCaps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225VoiceCaps; + +EXTERN int asn1PE_H225VoiceCaps (OOCTXT* pctxt, H225VoiceCaps* pvalue); + +EXTERN int asn1PD_H225VoiceCaps (OOCTXT* pctxt, H225VoiceCaps* pvalue); + +/**************************************************************/ +/* */ +/* T120OnlyCaps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225T120OnlyCaps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225T120OnlyCaps; + +EXTERN int asn1PE_H225T120OnlyCaps (OOCTXT* pctxt, H225T120OnlyCaps* pvalue); + +EXTERN int asn1PD_H225T120OnlyCaps (OOCTXT* pctxt, H225T120OnlyCaps* pvalue); + +/**************************************************************/ +/* */ +/* NonStandardProtocol */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225NonStandardProtocol { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225NonStandardProtocol; + +EXTERN int asn1PE_H225NonStandardProtocol (OOCTXT* pctxt, H225NonStandardProtocol* pvalue); + +EXTERN int asn1PD_H225NonStandardProtocol (OOCTXT* pctxt, H225NonStandardProtocol* pvalue); + +/**************************************************************/ +/* */ +/* T38FaxAnnexbOnlyCaps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225T38FaxAnnexbOnlyCaps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; + H245DataProtocolCapability t38FaxProtocol; + H245T38FaxProfile t38FaxProfile; +} H225T38FaxAnnexbOnlyCaps; + +EXTERN int asn1PE_H225T38FaxAnnexbOnlyCaps (OOCTXT* pctxt, H225T38FaxAnnexbOnlyCaps* pvalue); + +EXTERN int asn1PD_H225T38FaxAnnexbOnlyCaps (OOCTXT* pctxt, H225T38FaxAnnexbOnlyCaps* pvalue); + +/**************************************************************/ +/* */ +/* SIPCaps */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225SIPCaps { + struct { + unsigned nonStandardDataPresent : 1; + unsigned dataRatesSupportedPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225DataRate dataRatesSupported; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225SIPCaps; + +EXTERN int asn1PE_H225SIPCaps (OOCTXT* pctxt, H225SIPCaps* pvalue); + +EXTERN int asn1PD_H225SIPCaps (OOCTXT* pctxt, H225SIPCaps* pvalue); + +/**************************************************************/ +/* */ +/* SupportedProtocols */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225SupportedProtocols_nonStandardData 1 +#define T_H225SupportedProtocols_h310 2 +#define T_H225SupportedProtocols_h320 3 +#define T_H225SupportedProtocols_h321 4 +#define T_H225SupportedProtocols_h322 5 +#define T_H225SupportedProtocols_h323 6 +#define T_H225SupportedProtocols_h324 7 +#define T_H225SupportedProtocols_voice 8 +#define T_H225SupportedProtocols_t120_only 9 +#define T_H225SupportedProtocols_nonStandardProtocol 10 +#define T_H225SupportedProtocols_t38FaxAnnexbOnly 11 +#define T_H225SupportedProtocols_sip 12 +#define T_H225SupportedProtocols_extElem1 13 + +typedef struct EXTERN H225SupportedProtocols { + int t; + union { + /* t = 1 */ + H225NonStandardParameter *nonStandardData; + /* t = 2 */ + H225H310Caps *h310; + /* t = 3 */ + H225H320Caps *h320; + /* t = 4 */ + H225H321Caps *h321; + /* t = 5 */ + H225H322Caps *h322; + /* t = 6 */ + H225H323Caps *h323; + /* t = 7 */ + H225H324Caps *h324; + /* t = 8 */ + H225VoiceCaps *voice; + /* t = 9 */ + H225T120OnlyCaps *t120_only; + /* t = 10 */ + H225NonStandardProtocol *nonStandardProtocol; + /* t = 11 */ + H225T38FaxAnnexbOnlyCaps *t38FaxAnnexbOnly; + /* t = 12 */ + H225SIPCaps *sip; + /* t = 13 */ + } u; +} H225SupportedProtocols; + +EXTERN int asn1PE_H225SupportedProtocols (OOCTXT* pctxt, H225SupportedProtocols* pvalue); + +EXTERN int asn1PD_H225SupportedProtocols (OOCTXT* pctxt, H225SupportedProtocols* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225SupportedProtocols */ +/* */ +/**************************************************************/ + +/* List of H225SupportedProtocols */ +typedef DList H225_SeqOfH225SupportedProtocols; + +EXTERN int asn1PE_H225_SeqOfH225SupportedProtocols (OOCTXT* pctxt, H225_SeqOfH225SupportedProtocols* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225SupportedProtocols (OOCTXT* pctxt, H225_SeqOfH225SupportedProtocols* pvalue); + +/**************************************************************/ +/* */ +/* GatewayInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GatewayInfo { + struct { + unsigned protocolPresent : 1; + unsigned nonStandardDataPresent : 1; + } m; + H225_SeqOfH225SupportedProtocols protocol; + H225NonStandardParameter nonStandardData; +} H225GatewayInfo; + +EXTERN int asn1PE_H225GatewayInfo (OOCTXT* pctxt, H225GatewayInfo* pvalue); + +EXTERN int asn1PD_H225GatewayInfo (OOCTXT* pctxt, H225GatewayInfo* pvalue); + +/**************************************************************/ +/* */ +/* McuInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225McuInfo { + struct { + unsigned nonStandardDataPresent : 1; + unsigned protocolPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225SupportedProtocols protocol; +} H225McuInfo; + +EXTERN int asn1PE_H225McuInfo (OOCTXT* pctxt, H225McuInfo* pvalue); + +EXTERN int asn1PD_H225McuInfo (OOCTXT* pctxt, H225McuInfo* pvalue); + +/**************************************************************/ +/* */ +/* TerminalInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TerminalInfo { + struct { + unsigned nonStandardDataPresent : 1; + } m; + H225NonStandardParameter nonStandardData; +} H225TerminalInfo; + +EXTERN int asn1PE_H225TerminalInfo (OOCTXT* pctxt, H225TerminalInfo* pvalue); + +EXTERN int asn1PD_H225TerminalInfo (OOCTXT* pctxt, H225TerminalInfo* pvalue); + +/**************************************************************/ +/* */ +/* TunnelledProtocolAlternateIdentifier */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TunnelledProtocolAlternateIdentifier { + struct { + unsigned protocolVariantPresent : 1; + } m; + ASN1IA5String protocolType; + ASN1IA5String protocolVariant; +} H225TunnelledProtocolAlternateIdentifier; + +EXTERN int asn1PE_H225TunnelledProtocolAlternateIdentifier (OOCTXT* pctxt, H225TunnelledProtocolAlternateIdentifier* pvalue); + +EXTERN int asn1PD_H225TunnelledProtocolAlternateIdentifier (OOCTXT* pctxt, H225TunnelledProtocolAlternateIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* TunnelledProtocol_id */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225TunnelledProtocol_id_tunnelledProtocolObjectID 1 +#define T_H225TunnelledProtocol_id_tunnelledProtocolAlternateID 2 +#define T_H225TunnelledProtocol_id_extElem1 3 + +typedef struct EXTERN H225TunnelledProtocol_id { + int t; + union { + /* t = 1 */ + ASN1OBJID *tunnelledProtocolObjectID; + /* t = 2 */ + H225TunnelledProtocolAlternateIdentifier *tunnelledProtocolAlternateID; + /* t = 3 */ + } u; +} H225TunnelledProtocol_id; + +EXTERN int asn1PE_H225TunnelledProtocol_id (OOCTXT* pctxt, H225TunnelledProtocol_id* pvalue); + +EXTERN int asn1PD_H225TunnelledProtocol_id (OOCTXT* pctxt, H225TunnelledProtocol_id* pvalue); + +/**************************************************************/ +/* */ +/* TunnelledProtocol */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TunnelledProtocol { + struct { + unsigned subIdentifierPresent : 1; + } m; + H225TunnelledProtocol_id id; + ASN1IA5String subIdentifier; +} H225TunnelledProtocol; + +EXTERN int asn1PE_H225TunnelledProtocol (OOCTXT* pctxt, H225TunnelledProtocol* pvalue); + +EXTERN int asn1PD_H225TunnelledProtocol (OOCTXT* pctxt, H225TunnelledProtocol* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225TunnelledProtocol */ +/* */ +/**************************************************************/ + +/* List of H225TunnelledProtocol */ +typedef DList H225_SeqOfH225TunnelledProtocol; + +EXTERN int asn1PE_H225_SeqOfH225TunnelledProtocol (OOCTXT* pctxt, H225_SeqOfH225TunnelledProtocol* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225TunnelledProtocol (OOCTXT* pctxt, H225_SeqOfH225TunnelledProtocol* pvalue); + +/**************************************************************/ +/* */ +/* EndpointType */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225EndpointType { + struct { + unsigned nonStandardDataPresent : 1; + unsigned vendorPresent : 1; + unsigned gatekeeperPresent : 1; + unsigned gatewayPresent : 1; + unsigned mcuPresent : 1; + unsigned terminalPresent : 1; + unsigned setPresent : 1; + unsigned supportedTunnelledProtocolsPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225VendorIdentifier vendor; + H225GatekeeperInfo gatekeeper; + H225GatewayInfo gateway; + H225McuInfo mcu; + H225TerminalInfo terminal; + ASN1BOOL mc; + ASN1BOOL undefinedNode; + H225EndpointType_set set; + H225_SeqOfH225TunnelledProtocol supportedTunnelledProtocols; +} H225EndpointType; + +EXTERN int asn1PE_H225EndpointType (OOCTXT* pctxt, H225EndpointType* pvalue); + +EXTERN int asn1PD_H225EndpointType (OOCTXT* pctxt, H225EndpointType* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225CallReferenceValue */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225_SeqOfH225CallReferenceValue { + ASN1UINT n; + H225CallReferenceValue *elem; +} H225_SeqOfH225CallReferenceValue; + +EXTERN int asn1PE_H225_SeqOfH225CallReferenceValue (OOCTXT* pctxt, H225_SeqOfH225CallReferenceValue* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225CallReferenceValue (OOCTXT* pctxt, H225_SeqOfH225CallReferenceValue* pvalue); + +/**************************************************************/ +/* */ +/* Setup_UUIE_conferenceGoal */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225Setup_UUIE_conferenceGoal_create 1 +#define T_H225Setup_UUIE_conferenceGoal_join 2 +#define T_H225Setup_UUIE_conferenceGoal_invite 3 +#define T_H225Setup_UUIE_conferenceGoal_capability_negotiation 4 +#define T_H225Setup_UUIE_conferenceGoal_callIndependentSupplementaryService 5 +#define T_H225Setup_UUIE_conferenceGoal_extElem1 6 + +typedef struct EXTERN H225Setup_UUIE_conferenceGoal { + int t; +} H225Setup_UUIE_conferenceGoal; + +EXTERN int asn1PE_H225Setup_UUIE_conferenceGoal (OOCTXT* pctxt, H225Setup_UUIE_conferenceGoal* pvalue); + +EXTERN int asn1PD_H225Setup_UUIE_conferenceGoal (OOCTXT* pctxt, H225Setup_UUIE_conferenceGoal* pvalue); + +/**************************************************************/ +/* */ +/* Q954Details */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Q954Details { + ASN1BOOL conferenceCalling; + ASN1BOOL threePartyService; +} H225Q954Details; + +EXTERN int asn1PE_H225Q954Details (OOCTXT* pctxt, H225Q954Details* pvalue); + +EXTERN int asn1PD_H225Q954Details (OOCTXT* pctxt, H225Q954Details* pvalue); + +/**************************************************************/ +/* */ +/* QseriesOptions */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225QseriesOptions { + ASN1BOOL q932Full; + ASN1BOOL q951Full; + ASN1BOOL q952Full; + ASN1BOOL q953Full; + ASN1BOOL q955Full; + ASN1BOOL q956Full; + ASN1BOOL q957Full; + H225Q954Details q954Info; +} H225QseriesOptions; + +EXTERN int asn1PE_H225QseriesOptions (OOCTXT* pctxt, H225QseriesOptions* pvalue); + +EXTERN int asn1PD_H225QseriesOptions (OOCTXT* pctxt, H225QseriesOptions* pvalue); + +/**************************************************************/ +/* */ +/* CallType */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225CallType_pointToPoint 1 +#define T_H225CallType_oneToN 2 +#define T_H225CallType_nToOne 3 +#define T_H225CallType_nToN 4 +#define T_H225CallType_extElem1 5 + +typedef struct EXTERN H225CallType { + int t; +} H225CallType; + +EXTERN int asn1PE_H225CallType (OOCTXT* pctxt, H225CallType* pvalue); + +EXTERN int asn1PD_H225CallType (OOCTXT* pctxt, H225CallType* pvalue); + +/**************************************************************/ +/* */ +/* CallIdentifier */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallIdentifier { + H225GloballyUniqueID guid; +} H225CallIdentifier; + +EXTERN int asn1PE_H225CallIdentifier (OOCTXT* pctxt, H225CallIdentifier* pvalue); + +EXTERN int asn1PD_H225CallIdentifier (OOCTXT* pctxt, H225CallIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* SecurityServiceMode */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225SecurityServiceMode_nonStandard 1 +#define T_H225SecurityServiceMode_none 2 +#define T_H225SecurityServiceMode_default_ 3 +#define T_H225SecurityServiceMode_extElem1 4 + +typedef struct EXTERN H225SecurityServiceMode { + int t; + union { + /* t = 1 */ + H225NonStandardParameter *nonStandard; + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + } u; +} H225SecurityServiceMode; + +EXTERN int asn1PE_H225SecurityServiceMode (OOCTXT* pctxt, H225SecurityServiceMode* pvalue); + +EXTERN int asn1PD_H225SecurityServiceMode (OOCTXT* pctxt, H225SecurityServiceMode* pvalue); + +/**************************************************************/ +/* */ +/* SecurityCapabilities */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225SecurityCapabilities { + struct { + unsigned nonStandardPresent : 1; + } m; + H225NonStandardParameter nonStandard; + H225SecurityServiceMode encryption; + H225SecurityServiceMode authenticaton; + H225SecurityServiceMode integrity; +} H225SecurityCapabilities; + +EXTERN int asn1PE_H225SecurityCapabilities (OOCTXT* pctxt, H225SecurityCapabilities* pvalue); + +EXTERN int asn1PD_H225SecurityCapabilities (OOCTXT* pctxt, H225SecurityCapabilities* pvalue); + +/**************************************************************/ +/* */ +/* H245Security */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225H245Security_nonStandard 1 +#define T_H225H245Security_noSecurity 2 +#define T_H225H245Security_tls 3 +#define T_H225H245Security_ipsec 4 +#define T_H225H245Security_extElem1 5 + +typedef struct EXTERN H225H245Security { + int t; + union { + /* t = 1 */ + H225NonStandardParameter *nonStandard; + /* t = 2 */ + /* t = 3 */ + H225SecurityCapabilities *tls; + /* t = 4 */ + H225SecurityCapabilities *ipsec; + /* t = 5 */ + } u; +} H225H245Security; + +EXTERN int asn1PE_H225H245Security (OOCTXT* pctxt, H225H245Security* pvalue); + +EXTERN int asn1PD_H225H245Security (OOCTXT* pctxt, H225H245Security* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225H245Security */ +/* */ +/**************************************************************/ + +/* List of H225H245Security */ +typedef DList H225_SeqOfH225H245Security; + +EXTERN int asn1PE_H225_SeqOfH225H245Security (OOCTXT* pctxt, H225_SeqOfH225H245Security* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225H245Security (OOCTXT* pctxt, H225_SeqOfH225H245Security* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225ClearToken */ +/* */ +/**************************************************************/ + +/* List of H235ClearToken */ +typedef DList H225_SeqOfH225ClearToken; + +EXTERN int asn1PE_H225_SeqOfH225ClearToken (OOCTXT* pctxt, H225_SeqOfH225ClearToken* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225ClearToken (OOCTXT* pctxt, H225_SeqOfH225ClearToken* pvalue); + +/**************************************************************/ +/* */ +/* CryptoH323Token_cryptoEPPwdHash */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CryptoH323Token_cryptoEPPwdHash { + H225AliasAddress alias; + H235TimeStamp timeStamp; + H235HASHED token; +} H225CryptoH323Token_cryptoEPPwdHash; + +EXTERN int asn1PE_H225CryptoH323Token_cryptoEPPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPPwdHash* pvalue); + +EXTERN int asn1PD_H225CryptoH323Token_cryptoEPPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPPwdHash* pvalue); + +/**************************************************************/ +/* */ +/* CryptoH323Token_cryptoGKPwdHash */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CryptoH323Token_cryptoGKPwdHash { + H225GatekeeperIdentifier gatekeeperId; + H235TimeStamp timeStamp; + H235HASHED token; +} H225CryptoH323Token_cryptoGKPwdHash; + +EXTERN int asn1PE_H225CryptoH323Token_cryptoGKPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKPwdHash* pvalue); + +EXTERN int asn1PD_H225CryptoH323Token_cryptoGKPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKPwdHash* pvalue); + +/**************************************************************/ +/* */ +/* CryptoH323Token_cryptoEPCert */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CryptoH323Token_cryptoEPCert { + H235EncodedPwdCertToken toBeSigned; + ASN1OBJID algorithmOID; + H235Params paramS; + ASN1DynBitStr signature; +} H225CryptoH323Token_cryptoEPCert; + +EXTERN int asn1PE_H225CryptoH323Token_cryptoEPCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPCert* pvalue); + +EXTERN int asn1PD_H225CryptoH323Token_cryptoEPCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPCert* pvalue); + +/**************************************************************/ +/* */ +/* CryptoH323Token_cryptoGKCert */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CryptoH323Token_cryptoGKCert { + H235EncodedPwdCertToken toBeSigned; + ASN1OBJID algorithmOID; + H235Params paramS; + ASN1DynBitStr signature; +} H225CryptoH323Token_cryptoGKCert; + +EXTERN int asn1PE_H225CryptoH323Token_cryptoGKCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKCert* pvalue); + +EXTERN int asn1PD_H225CryptoH323Token_cryptoGKCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKCert* pvalue); + +/**************************************************************/ +/* */ +/* CryptoH323Token_cryptoFastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CryptoH323Token_cryptoFastStart { + H225EncodedFastStartToken toBeSigned; + ASN1OBJID algorithmOID; + H235Params paramS; + ASN1DynBitStr signature; +} H225CryptoH323Token_cryptoFastStart; + +EXTERN int asn1PE_H225CryptoH323Token_cryptoFastStart (OOCTXT* pctxt, H225CryptoH323Token_cryptoFastStart* pvalue); + +EXTERN int asn1PD_H225CryptoH323Token_cryptoFastStart (OOCTXT* pctxt, H225CryptoH323Token_cryptoFastStart* pvalue); + +/**************************************************************/ +/* */ +/* CryptoH323Token */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225CryptoH323Token_cryptoEPPwdHash 1 +#define T_H225CryptoH323Token_cryptoGKPwdHash 2 +#define T_H225CryptoH323Token_cryptoEPPwdEncr 3 +#define T_H225CryptoH323Token_cryptoGKPwdEncr 4 +#define T_H225CryptoH323Token_cryptoEPCert 5 +#define T_H225CryptoH323Token_cryptoGKCert 6 +#define T_H225CryptoH323Token_cryptoFastStart 7 +#define T_H225CryptoH323Token_nestedcryptoToken 8 +#define T_H225CryptoH323Token_extElem1 9 + +typedef struct EXTERN H225CryptoH323Token { + int t; + union { + /* t = 1 */ + H225CryptoH323Token_cryptoEPPwdHash *cryptoEPPwdHash; + /* t = 2 */ + H225CryptoH323Token_cryptoGKPwdHash *cryptoGKPwdHash; + /* t = 3 */ + H235ENCRYPTED *cryptoEPPwdEncr; + /* t = 4 */ + H235ENCRYPTED *cryptoGKPwdEncr; + /* t = 5 */ + H225CryptoH323Token_cryptoEPCert *cryptoEPCert; + /* t = 6 */ + H225CryptoH323Token_cryptoGKCert *cryptoGKCert; + /* t = 7 */ + H225CryptoH323Token_cryptoFastStart *cryptoFastStart; + /* t = 8 */ + H235CryptoToken *nestedcryptoToken; + /* t = 9 */ + } u; +} H225CryptoH323Token; + +EXTERN int asn1PE_H225CryptoH323Token (OOCTXT* pctxt, H225CryptoH323Token* pvalue); + +EXTERN int asn1PD_H225CryptoH323Token (OOCTXT* pctxt, H225CryptoH323Token* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225CryptoH323Token */ +/* */ +/**************************************************************/ + +/* List of H225CryptoH323Token */ +typedef DList H225_SeqOfH225CryptoH323Token; + +EXTERN int asn1PE_H225_SeqOfH225CryptoH323Token (OOCTXT* pctxt, H225_SeqOfH225CryptoH323Token* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225CryptoH323Token (OOCTXT* pctxt, H225_SeqOfH225CryptoH323Token* pvalue); + +/**************************************************************/ +/* */ +/* Setup_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Setup_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Setup_UUIE_fastStart; + +EXTERN int asn1PE_H225Setup_UUIE_fastStart (OOCTXT* pctxt, H225Setup_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225Setup_UUIE_fastStart (OOCTXT* pctxt, H225Setup_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* ScnConnectionType */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ScnConnectionType_unknown 1 +#define T_H225ScnConnectionType_bChannel 2 +#define T_H225ScnConnectionType_hybrid2x64 3 +#define T_H225ScnConnectionType_hybrid384 4 +#define T_H225ScnConnectionType_hybrid1536 5 +#define T_H225ScnConnectionType_hybrid1920 6 +#define T_H225ScnConnectionType_multirate 7 +#define T_H225ScnConnectionType_extElem1 8 + +typedef struct EXTERN H225ScnConnectionType { + int t; +} H225ScnConnectionType; + +EXTERN int asn1PE_H225ScnConnectionType (OOCTXT* pctxt, H225ScnConnectionType* pvalue); + +EXTERN int asn1PD_H225ScnConnectionType (OOCTXT* pctxt, H225ScnConnectionType* pvalue); + +/**************************************************************/ +/* */ +/* ScnConnectionAggregation */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ScnConnectionAggregation_auto_ 1 +#define T_H225ScnConnectionAggregation_none 2 +#define T_H225ScnConnectionAggregation_h221 3 +#define T_H225ScnConnectionAggregation_bonded_mode1 4 +#define T_H225ScnConnectionAggregation_bonded_mode2 5 +#define T_H225ScnConnectionAggregation_bonded_mode3 6 +#define T_H225ScnConnectionAggregation_extElem1 7 + +typedef struct EXTERN H225ScnConnectionAggregation { + int t; +} H225ScnConnectionAggregation; + +EXTERN int asn1PE_H225ScnConnectionAggregation (OOCTXT* pctxt, H225ScnConnectionAggregation* pvalue); + +EXTERN int asn1PD_H225ScnConnectionAggregation (OOCTXT* pctxt, H225ScnConnectionAggregation* pvalue); + +/**************************************************************/ +/* */ +/* Setup_UUIE_connectionParameters */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Setup_UUIE_connectionParameters { + H225ScnConnectionType connectionType; + ASN1USINT numberOfScnConnections; + H225ScnConnectionAggregation connectionAggregation; +} H225Setup_UUIE_connectionParameters; + +EXTERN int asn1PE_H225Setup_UUIE_connectionParameters (OOCTXT* pctxt, H225Setup_UUIE_connectionParameters* pvalue); + +EXTERN int asn1PD_H225Setup_UUIE_connectionParameters (OOCTXT* pctxt, H225Setup_UUIE_connectionParameters* pvalue); + +/**************************************************************/ +/* */ +/* Setup_UUIE_language */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Setup_UUIE_language { + ASN1UINT n; + ASN1IA5String *elem; +} H225Setup_UUIE_language; + +EXTERN int asn1PE_H225Setup_UUIE_language (OOCTXT* pctxt, H225Setup_UUIE_language* pvalue); + +EXTERN int asn1PD_H225Setup_UUIE_language (OOCTXT* pctxt, H225Setup_UUIE_language* pvalue); + +/**************************************************************/ +/* */ +/* PresentationIndicator */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225PresentationIndicator_presentationAllowed 1 +#define T_H225PresentationIndicator_presentationRestricted 2 +#define T_H225PresentationIndicator_addressNotAvailable 3 +#define T_H225PresentationIndicator_extElem1 4 + +typedef struct EXTERN H225PresentationIndicator { + int t; +} H225PresentationIndicator; + +EXTERN int asn1PE_H225PresentationIndicator (OOCTXT* pctxt, H225PresentationIndicator* pvalue); + +EXTERN int asn1PD_H225PresentationIndicator (OOCTXT* pctxt, H225PresentationIndicator* pvalue); + +/**************************************************************/ +/* */ +/* CallCreditServiceControl_billingMode */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225CallCreditServiceControl_billingMode_credit 1 +#define T_H225CallCreditServiceControl_billingMode_debit 2 +#define T_H225CallCreditServiceControl_billingMode_extElem1 3 + +typedef struct EXTERN H225CallCreditServiceControl_billingMode { + int t; +} H225CallCreditServiceControl_billingMode; + +EXTERN int asn1PE_H225CallCreditServiceControl_billingMode (OOCTXT* pctxt, H225CallCreditServiceControl_billingMode* pvalue); + +EXTERN int asn1PD_H225CallCreditServiceControl_billingMode (OOCTXT* pctxt, H225CallCreditServiceControl_billingMode* pvalue); + +/**************************************************************/ +/* */ +/* CallCreditServiceControl_callStartingPoint */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225CallCreditServiceControl_callStartingPoint_alerting 1 +#define T_H225CallCreditServiceControl_callStartingPoint_connect 2 +#define T_H225CallCreditServiceControl_callStartingPoint_extElem1 3 + +typedef struct EXTERN H225CallCreditServiceControl_callStartingPoint { + int t; +} H225CallCreditServiceControl_callStartingPoint; + +EXTERN int asn1PE_H225CallCreditServiceControl_callStartingPoint (OOCTXT* pctxt, H225CallCreditServiceControl_callStartingPoint* pvalue); + +EXTERN int asn1PD_H225CallCreditServiceControl_callStartingPoint (OOCTXT* pctxt, H225CallCreditServiceControl_callStartingPoint* pvalue); + +/**************************************************************/ +/* */ +/* CallCreditServiceControl */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallCreditServiceControl { + struct { + unsigned amountStringPresent : 1; + unsigned billingModePresent : 1; + unsigned callDurationLimitPresent : 1; + unsigned enforceCallDurationLimitPresent : 1; + unsigned callStartingPointPresent : 1; + } m; + ASN1BMPString amountString; + H225CallCreditServiceControl_billingMode billingMode; + ASN1UINT callDurationLimit; + ASN1BOOL enforceCallDurationLimit; + H225CallCreditServiceControl_callStartingPoint callStartingPoint; +} H225CallCreditServiceControl; + +EXTERN int asn1PE_H225CallCreditServiceControl (OOCTXT* pctxt, H225CallCreditServiceControl* pvalue); + +EXTERN int asn1PD_H225CallCreditServiceControl (OOCTXT* pctxt, H225CallCreditServiceControl* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlDescriptor */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ServiceControlDescriptor_url 1 +#define T_H225ServiceControlDescriptor_signal 2 +#define T_H225ServiceControlDescriptor_nonStandard 3 +#define T_H225ServiceControlDescriptor_callCreditServiceControl 4 +#define T_H225ServiceControlDescriptor_extElem1 5 + +typedef struct EXTERN H225ServiceControlDescriptor { + int t; + union { + /* t = 1 */ + ASN1IA5String url; + /* t = 2 */ + H225H248SignalsDescriptor *signal; + /* t = 3 */ + H225NonStandardParameter *nonStandard; + /* t = 4 */ + H225CallCreditServiceControl *callCreditServiceControl; + /* t = 5 */ + } u; +} H225ServiceControlDescriptor; + +EXTERN int asn1PE_H225ServiceControlDescriptor (OOCTXT* pctxt, H225ServiceControlDescriptor* pvalue); + +EXTERN int asn1PD_H225ServiceControlDescriptor (OOCTXT* pctxt, H225ServiceControlDescriptor* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlSession_reason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ServiceControlSession_reason_open 1 +#define T_H225ServiceControlSession_reason_refresh 2 +#define T_H225ServiceControlSession_reason_close 3 +#define T_H225ServiceControlSession_reason_extElem1 4 + +typedef struct EXTERN H225ServiceControlSession_reason { + int t; +} H225ServiceControlSession_reason; + +EXTERN int asn1PE_H225ServiceControlSession_reason (OOCTXT* pctxt, H225ServiceControlSession_reason* pvalue); + +EXTERN int asn1PD_H225ServiceControlSession_reason (OOCTXT* pctxt, H225ServiceControlSession_reason* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlSession */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ServiceControlSession { + struct { + unsigned contentsPresent : 1; + } m; + ASN1UINT8 sessionId; + H225ServiceControlDescriptor contents; + H225ServiceControlSession_reason reason; +} H225ServiceControlSession; + +EXTERN int asn1PE_H225ServiceControlSession (OOCTXT* pctxt, H225ServiceControlSession* pvalue); + +EXTERN int asn1PD_H225ServiceControlSession (OOCTXT* pctxt, H225ServiceControlSession* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225ServiceControlSession */ +/* */ +/**************************************************************/ + +/* List of H225ServiceControlSession */ +typedef DList H225_SeqOfH225ServiceControlSession; + +EXTERN int asn1PE_H225_SeqOfH225ServiceControlSession (OOCTXT* pctxt, H225_SeqOfH225ServiceControlSession* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225ServiceControlSession (OOCTXT* pctxt, H225_SeqOfH225ServiceControlSession* pvalue); + +/**************************************************************/ +/* */ +/* CarrierInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CarrierInfo { + struct { + unsigned carrierIdentificationCodePresent : 1; + unsigned carrierNamePresent : 1; + } m; + H225CarrierInfo_carrierIdentificationCode carrierIdentificationCode; + ASN1IA5String carrierName; +} H225CarrierInfo; + +EXTERN int asn1PE_H225CarrierInfo (OOCTXT* pctxt, H225CarrierInfo* pvalue); + +EXTERN int asn1PD_H225CarrierInfo (OOCTXT* pctxt, H225CarrierInfo* pvalue); + +/**************************************************************/ +/* */ +/* CallsAvailable */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallsAvailable { + struct { + unsigned groupPresent : 1; + unsigned carrierPresent : 1; + } m; + ASN1UINT calls; + ASN1IA5String group; + H225CarrierInfo carrier; +} H225CallsAvailable; + +EXTERN int asn1PE_H225CallsAvailable (OOCTXT* pctxt, H225CallsAvailable* pvalue); + +EXTERN int asn1PD_H225CallsAvailable (OOCTXT* pctxt, H225CallsAvailable* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225CallsAvailable */ +/* */ +/**************************************************************/ + +/* List of H225CallsAvailable */ +typedef DList H225_SeqOfH225CallsAvailable; + +EXTERN int asn1PE_H225_SeqOfH225CallsAvailable (OOCTXT* pctxt, H225_SeqOfH225CallsAvailable* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225CallsAvailable (OOCTXT* pctxt, H225_SeqOfH225CallsAvailable* pvalue); + +/**************************************************************/ +/* */ +/* CallCapacityInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallCapacityInfo { + struct { + unsigned voiceGwCallsAvailablePresent : 1; + unsigned h310GwCallsAvailablePresent : 1; + unsigned h320GwCallsAvailablePresent : 1; + unsigned h321GwCallsAvailablePresent : 1; + unsigned h322GwCallsAvailablePresent : 1; + unsigned h323GwCallsAvailablePresent : 1; + unsigned h324GwCallsAvailablePresent : 1; + unsigned t120OnlyGwCallsAvailablePresent : 1; + unsigned t38FaxAnnexbOnlyGwCallsAvailablePresent : 1; + unsigned terminalCallsAvailablePresent : 1; + unsigned mcuCallsAvailablePresent : 1; + unsigned sipGwCallsAvailablePresent : 1; + } m; + H225_SeqOfH225CallsAvailable voiceGwCallsAvailable; + H225_SeqOfH225CallsAvailable h310GwCallsAvailable; + H225_SeqOfH225CallsAvailable h320GwCallsAvailable; + H225_SeqOfH225CallsAvailable h321GwCallsAvailable; + H225_SeqOfH225CallsAvailable h322GwCallsAvailable; + H225_SeqOfH225CallsAvailable h323GwCallsAvailable; + H225_SeqOfH225CallsAvailable h324GwCallsAvailable; + H225_SeqOfH225CallsAvailable t120OnlyGwCallsAvailable; + H225_SeqOfH225CallsAvailable t38FaxAnnexbOnlyGwCallsAvailable; + H225_SeqOfH225CallsAvailable terminalCallsAvailable; + H225_SeqOfH225CallsAvailable mcuCallsAvailable; + H225_SeqOfH225CallsAvailable sipGwCallsAvailable; +} H225CallCapacityInfo; + +EXTERN int asn1PE_H225CallCapacityInfo (OOCTXT* pctxt, H225CallCapacityInfo* pvalue); + +EXTERN int asn1PD_H225CallCapacityInfo (OOCTXT* pctxt, H225CallCapacityInfo* pvalue); + +/**************************************************************/ +/* */ +/* CallCapacity */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallCapacity { + struct { + unsigned maximumCallCapacityPresent : 1; + unsigned currentCallCapacityPresent : 1; + } m; + H225CallCapacityInfo maximumCallCapacity; + H225CallCapacityInfo currentCallCapacity; +} H225CallCapacity; + +EXTERN int asn1PE_H225CallCapacity (OOCTXT* pctxt, H225CallCapacity* pvalue); + +EXTERN int asn1PD_H225CallCapacity (OOCTXT* pctxt, H225CallCapacity* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225CicInfo_cic_element */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225_SeqOfH225CicInfo_cic_element { + ASN1UINT n; + H225CicInfo_cic_element *elem; +} H225_SeqOfH225CicInfo_cic_element; + +EXTERN int asn1PE_H225_SeqOfH225CicInfo_cic_element (OOCTXT* pctxt, H225_SeqOfH225CicInfo_cic_element* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225CicInfo_cic_element (OOCTXT* pctxt, H225_SeqOfH225CicInfo_cic_element* pvalue); + +/**************************************************************/ +/* */ +/* CicInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CicInfo { + H225_SeqOfH225CicInfo_cic_element cic; + H225CicInfo_pointCode pointCode; +} H225CicInfo; + +EXTERN int asn1PE_H225CicInfo (OOCTXT* pctxt, H225CicInfo* pvalue); + +EXTERN int asn1PD_H225CicInfo (OOCTXT* pctxt, H225CicInfo* pvalue); + +/**************************************************************/ +/* */ +/* GroupID_member */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GroupID_member { + ASN1UINT n; + ASN1USINT *elem; +} H225GroupID_member; + +EXTERN int asn1PE_H225GroupID_member (OOCTXT* pctxt, H225GroupID_member* pvalue); + +EXTERN int asn1PD_H225GroupID_member (OOCTXT* pctxt, H225GroupID_member* pvalue); + +/**************************************************************/ +/* */ +/* GroupID */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GroupID { + struct { + unsigned memberPresent : 1; + } m; + H225GroupID_member member; + ASN1IA5String group; +} H225GroupID; + +EXTERN int asn1PE_H225GroupID (OOCTXT* pctxt, H225GroupID* pvalue); + +EXTERN int asn1PD_H225GroupID (OOCTXT* pctxt, H225GroupID* pvalue); + +/**************************************************************/ +/* */ +/* CircuitIdentifier */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CircuitIdentifier { + struct { + unsigned cicPresent : 1; + unsigned groupPresent : 1; + unsigned carrierPresent : 1; + } m; + H225CicInfo cic; + H225GroupID group; + H225CarrierInfo carrier; +} H225CircuitIdentifier; + +EXTERN int asn1PE_H225CircuitIdentifier (OOCTXT* pctxt, H225CircuitIdentifier* pvalue); + +EXTERN int asn1PD_H225CircuitIdentifier (OOCTXT* pctxt, H225CircuitIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225GenericData */ +/* */ +/**************************************************************/ + +/* List of H225GenericData */ +typedef DList H225_SeqOfH225GenericData; + +EXTERN int asn1PE_H225_SeqOfH225GenericData (OOCTXT* pctxt, H225_SeqOfH225GenericData* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225GenericData (OOCTXT* pctxt, H225_SeqOfH225GenericData* pvalue); + +/**************************************************************/ +/* */ +/* CircuitInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CircuitInfo { + struct { + unsigned sourceCircuitIDPresent : 1; + unsigned destinationCircuitIDPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225CircuitIdentifier sourceCircuitID; + H225CircuitIdentifier destinationCircuitID; + H225_SeqOfH225GenericData genericData; +} H225CircuitInfo; + +EXTERN int asn1PE_H225CircuitInfo (OOCTXT* pctxt, H225CircuitInfo* pvalue); + +EXTERN int asn1PD_H225CircuitInfo (OOCTXT* pctxt, H225CircuitInfo* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225FeatureDescriptor */ +/* */ +/**************************************************************/ + +/* List of H225FeatureDescriptor */ +typedef DList H225_SeqOfH225FeatureDescriptor; + +EXTERN int asn1PE_H225_SeqOfH225FeatureDescriptor (OOCTXT* pctxt, H225_SeqOfH225FeatureDescriptor* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225FeatureDescriptor (OOCTXT* pctxt, H225_SeqOfH225FeatureDescriptor* pvalue); + +/**************************************************************/ +/* */ +/* Setup_UUIE_parallelH245Control */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Setup_UUIE_parallelH245Control { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Setup_UUIE_parallelH245Control; + +EXTERN int asn1PE_H225Setup_UUIE_parallelH245Control (OOCTXT* pctxt, H225Setup_UUIE_parallelH245Control* pvalue); + +EXTERN int asn1PD_H225Setup_UUIE_parallelH245Control (OOCTXT* pctxt, H225Setup_UUIE_parallelH245Control* pvalue); + +/**************************************************************/ +/* */ +/* ExtendedAliasAddress */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ExtendedAliasAddress { + struct { + unsigned presentationIndicatorPresent : 1; + unsigned screeningIndicatorPresent : 1; + } m; + H225AliasAddress address; + H225PresentationIndicator presentationIndicator; + H225ScreeningIndicator screeningIndicator; +} H225ExtendedAliasAddress; + +EXTERN int asn1PE_H225ExtendedAliasAddress (OOCTXT* pctxt, H225ExtendedAliasAddress* pvalue); + +EXTERN int asn1PD_H225ExtendedAliasAddress (OOCTXT* pctxt, H225ExtendedAliasAddress* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225ExtendedAliasAddress */ +/* */ +/**************************************************************/ + +/* List of H225ExtendedAliasAddress */ +typedef DList H225_SeqOfH225ExtendedAliasAddress; + +EXTERN int asn1PE_H225_SeqOfH225ExtendedAliasAddress (OOCTXT* pctxt, H225_SeqOfH225ExtendedAliasAddress* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225ExtendedAliasAddress (OOCTXT* pctxt, H225_SeqOfH225ExtendedAliasAddress* pvalue); + +/**************************************************************/ +/* */ +/* Setup_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Setup_UUIE { + struct { + unsigned h245AddressPresent : 1; + unsigned sourceAddressPresent : 1; + unsigned destinationAddressPresent : 1; + unsigned destCallSignalAddressPresent : 1; + unsigned destExtraCallInfoPresent : 1; + unsigned destExtraCRVPresent : 1; + unsigned callServicesPresent : 1; + unsigned sourceCallSignalAddressPresent : 1; + unsigned remoteExtensionAddressPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned h245SecurityCapabilityPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned fastStartPresent : 1; + unsigned mediaWaitForConnectPresent : 1; + unsigned canOverlapSendPresent : 1; + unsigned endpointIdentifierPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned connectionParametersPresent : 1; + unsigned languagePresent : 1; + unsigned presentationIndicatorPresent : 1; + unsigned screeningIndicatorPresent : 1; + unsigned serviceControlPresent : 1; + unsigned symmetricOperationRequiredPresent : 1; + unsigned capacityPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned desiredProtocolsPresent : 1; + unsigned neededFeaturesPresent : 1; + unsigned desiredFeaturesPresent : 1; + unsigned supportedFeaturesPresent : 1; + unsigned parallelH245ControlPresent : 1; + unsigned additionalSourceAddressesPresent : 1; + unsigned hopCountPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225TransportAddress h245Address; + H225_SeqOfH225AliasAddress sourceAddress; + H225EndpointType sourceInfo; + H225_SeqOfH225AliasAddress destinationAddress; + H225TransportAddress destCallSignalAddress; + H225_SeqOfH225AliasAddress destExtraCallInfo; + H225_SeqOfH225CallReferenceValue destExtraCRV; + ASN1BOOL activeMC; + H225ConferenceIdentifier conferenceID; + H225Setup_UUIE_conferenceGoal conferenceGoal; + H225QseriesOptions callServices; + H225CallType callType; + H225TransportAddress sourceCallSignalAddress; + H225AliasAddress remoteExtensionAddress; + H225CallIdentifier callIdentifier; + H225_SeqOfH225H245Security h245SecurityCapability; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225Setup_UUIE_fastStart fastStart; + ASN1BOOL mediaWaitForConnect; + ASN1BOOL canOverlapSend; + H225EndpointIdentifier endpointIdentifier; + ASN1BOOL multipleCalls; + ASN1BOOL maintainConnection; + H225Setup_UUIE_connectionParameters connectionParameters; + H225Setup_UUIE_language language; + H225PresentationIndicator presentationIndicator; + H225ScreeningIndicator screeningIndicator; + H225_SeqOfH225ServiceControlSession serviceControl; + H225CallCapacity capacity; + H225CircuitInfo circuitInfo; + H225_SeqOfH225SupportedProtocols desiredProtocols; + H225_SeqOfH225FeatureDescriptor neededFeatures; + H225_SeqOfH225FeatureDescriptor desiredFeatures; + H225_SeqOfH225FeatureDescriptor supportedFeatures; + H225Setup_UUIE_parallelH245Control parallelH245Control; + H225_SeqOfH225ExtendedAliasAddress additionalSourceAddresses; + ASN1UINT8 hopCount; +} H225Setup_UUIE; + +EXTERN int asn1PE_H225Setup_UUIE (OOCTXT* pctxt, H225Setup_UUIE* pvalue); + +EXTERN int asn1PD_H225Setup_UUIE (OOCTXT* pctxt, H225Setup_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* CallProceeding_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallProceeding_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225CallProceeding_UUIE_fastStart; + +EXTERN int asn1PE_H225CallProceeding_UUIE_fastStart (OOCTXT* pctxt, H225CallProceeding_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225CallProceeding_UUIE_fastStart (OOCTXT* pctxt, H225CallProceeding_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* FeatureSet */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225FeatureSet { + struct { + unsigned neededFeaturesPresent : 1; + unsigned desiredFeaturesPresent : 1; + unsigned supportedFeaturesPresent : 1; + } m; + ASN1BOOL replacementFeatureSet; + H225_SeqOfH225FeatureDescriptor neededFeatures; + H225_SeqOfH225FeatureDescriptor desiredFeatures; + H225_SeqOfH225FeatureDescriptor supportedFeatures; +} H225FeatureSet; + +EXTERN int asn1PE_H225FeatureSet (OOCTXT* pctxt, H225FeatureSet* pvalue); + +EXTERN int asn1PD_H225FeatureSet (OOCTXT* pctxt, H225FeatureSet* pvalue); + +/**************************************************************/ +/* */ +/* CallProceeding_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallProceeding_UUIE { + struct { + unsigned h245AddressPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned h245SecurityModePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned fastStartPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned fastConnectRefusedPresent : 1; + unsigned featureSetPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225EndpointType destinationInfo; + H225TransportAddress h245Address; + H225CallIdentifier callIdentifier; + H225H245Security h245SecurityMode; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225CallProceeding_UUIE_fastStart fastStart; + ASN1BOOL multipleCalls; + ASN1BOOL maintainConnection; + H225FeatureSet featureSet; +} H225CallProceeding_UUIE; + +EXTERN int asn1PE_H225CallProceeding_UUIE (OOCTXT* pctxt, H225CallProceeding_UUIE* pvalue); + +EXTERN int asn1PD_H225CallProceeding_UUIE (OOCTXT* pctxt, H225CallProceeding_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* Connect_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Connect_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Connect_UUIE_fastStart; + +EXTERN int asn1PE_H225Connect_UUIE_fastStart (OOCTXT* pctxt, H225Connect_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225Connect_UUIE_fastStart (OOCTXT* pctxt, H225Connect_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* Connect_UUIE_language */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Connect_UUIE_language { + ASN1UINT n; + ASN1IA5String *elem; +} H225Connect_UUIE_language; + +EXTERN int asn1PE_H225Connect_UUIE_language (OOCTXT* pctxt, H225Connect_UUIE_language* pvalue); + +EXTERN int asn1PD_H225Connect_UUIE_language (OOCTXT* pctxt, H225Connect_UUIE_language* pvalue); + +/**************************************************************/ +/* */ +/* Connect_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Connect_UUIE { + struct { + unsigned h245AddressPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned h245SecurityModePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned fastStartPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned languagePresent : 1; + unsigned connectedAddressPresent : 1; + unsigned presentationIndicatorPresent : 1; + unsigned screeningIndicatorPresent : 1; + unsigned fastConnectRefusedPresent : 1; + unsigned serviceControlPresent : 1; + unsigned capacityPresent : 1; + unsigned featureSetPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225TransportAddress h245Address; + H225EndpointType destinationInfo; + H225ConferenceIdentifier conferenceID; + H225CallIdentifier callIdentifier; + H225H245Security h245SecurityMode; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225Connect_UUIE_fastStart fastStart; + ASN1BOOL multipleCalls; + ASN1BOOL maintainConnection; + H225Connect_UUIE_language language; + H225_SeqOfH225AliasAddress connectedAddress; + H225PresentationIndicator presentationIndicator; + H225ScreeningIndicator screeningIndicator; + H225_SeqOfH225ServiceControlSession serviceControl; + H225CallCapacity capacity; + H225FeatureSet featureSet; +} H225Connect_UUIE; + +EXTERN int asn1PE_H225Connect_UUIE (OOCTXT* pctxt, H225Connect_UUIE* pvalue); + +EXTERN int asn1PD_H225Connect_UUIE (OOCTXT* pctxt, H225Connect_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* Alerting_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Alerting_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Alerting_UUIE_fastStart; + +EXTERN int asn1PE_H225Alerting_UUIE_fastStart (OOCTXT* pctxt, H225Alerting_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225Alerting_UUIE_fastStart (OOCTXT* pctxt, H225Alerting_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* Alerting_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Alerting_UUIE { + struct { + unsigned h245AddressPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned h245SecurityModePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned fastStartPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned alertingAddressPresent : 1; + unsigned presentationIndicatorPresent : 1; + unsigned screeningIndicatorPresent : 1; + unsigned fastConnectRefusedPresent : 1; + unsigned serviceControlPresent : 1; + unsigned capacityPresent : 1; + unsigned featureSetPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225EndpointType destinationInfo; + H225TransportAddress h245Address; + H225CallIdentifier callIdentifier; + H225H245Security h245SecurityMode; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225Alerting_UUIE_fastStart fastStart; + ASN1BOOL multipleCalls; + ASN1BOOL maintainConnection; + H225_SeqOfH225AliasAddress alertingAddress; + H225PresentationIndicator presentationIndicator; + H225ScreeningIndicator screeningIndicator; + H225_SeqOfH225ServiceControlSession serviceControl; + H225CallCapacity capacity; + H225FeatureSet featureSet; +} H225Alerting_UUIE; + +EXTERN int asn1PE_H225Alerting_UUIE (OOCTXT* pctxt, H225Alerting_UUIE* pvalue); + +EXTERN int asn1PD_H225Alerting_UUIE (OOCTXT* pctxt, H225Alerting_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* Information_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Information_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Information_UUIE_fastStart; + +EXTERN int asn1PE_H225Information_UUIE_fastStart (OOCTXT* pctxt, H225Information_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225Information_UUIE_fastStart (OOCTXT* pctxt, H225Information_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* Information_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Information_UUIE { + struct { + unsigned callIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned fastStartPresent : 1; + unsigned fastConnectRefusedPresent : 1; + unsigned circuitInfoPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225Information_UUIE_fastStart fastStart; + H225CircuitInfo circuitInfo; +} H225Information_UUIE; + +EXTERN int asn1PE_H225Information_UUIE (OOCTXT* pctxt, H225Information_UUIE* pvalue); + +EXTERN int asn1PD_H225Information_UUIE (OOCTXT* pctxt, H225Information_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* SecurityErrors */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225SecurityErrors_securityWrongSyncTime 1 +#define T_H225SecurityErrors_securityReplay 2 +#define T_H225SecurityErrors_securityWrongGeneralID 3 +#define T_H225SecurityErrors_securityWrongSendersID 4 +#define T_H225SecurityErrors_securityIntegrityFailed 5 +#define T_H225SecurityErrors_securityWrongOID 6 +#define T_H225SecurityErrors_securityDHmismatch 7 +#define T_H225SecurityErrors_securityCertificateExpired 8 +#define T_H225SecurityErrors_securityCertificateDateInvalid 9 +#define T_H225SecurityErrors_securityCertificateRevoked 10 +#define T_H225SecurityErrors_securityCertificateNotReadable 11 +#define T_H225SecurityErrors_securityCertificateSignatureInvalid 12 +#define T_H225SecurityErrors_securityCertificateMissing 13 +#define T_H225SecurityErrors_securityCertificateIncomplete 14 +#define T_H225SecurityErrors_securityUnsupportedCertificateAlgOID 15 +#define T_H225SecurityErrors_securityUnknownCA 16 +#define T_H225SecurityErrors_extElem1 17 + +typedef struct EXTERN H225SecurityErrors { + int t; +} H225SecurityErrors; + +EXTERN int asn1PE_H225SecurityErrors (OOCTXT* pctxt, H225SecurityErrors* pvalue); + +EXTERN int asn1PD_H225SecurityErrors (OOCTXT* pctxt, H225SecurityErrors* pvalue); + +/**************************************************************/ +/* */ +/* ReleaseCompleteReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ReleaseCompleteReason_noBandwidth 1 +#define T_H225ReleaseCompleteReason_gatekeeperResources 2 +#define T_H225ReleaseCompleteReason_unreachableDestination 3 +#define T_H225ReleaseCompleteReason_destinationRejection 4 +#define T_H225ReleaseCompleteReason_invalidRevision 5 +#define T_H225ReleaseCompleteReason_noPermission 6 +#define T_H225ReleaseCompleteReason_unreachableGatekeeper 7 +#define T_H225ReleaseCompleteReason_gatewayResources 8 +#define T_H225ReleaseCompleteReason_badFormatAddress 9 +#define T_H225ReleaseCompleteReason_adaptiveBusy 10 +#define T_H225ReleaseCompleteReason_inConf 11 +#define T_H225ReleaseCompleteReason_undefinedReason 12 +#define T_H225ReleaseCompleteReason_facilityCallDeflection 13 +#define T_H225ReleaseCompleteReason_securityDenied 14 +#define T_H225ReleaseCompleteReason_calledPartyNotRegistered 15 +#define T_H225ReleaseCompleteReason_callerNotRegistered 16 +#define T_H225ReleaseCompleteReason_newConnectionNeeded 17 +#define T_H225ReleaseCompleteReason_nonStandardReason 18 +#define T_H225ReleaseCompleteReason_replaceWithConferenceInvite 19 +#define T_H225ReleaseCompleteReason_genericDataReason 20 +#define T_H225ReleaseCompleteReason_neededFeatureNotSupported 21 +#define T_H225ReleaseCompleteReason_tunnelledSignallingRejected 22 +#define T_H225ReleaseCompleteReason_invalidCID 23 +#define T_H225ReleaseCompleteReason_securityError 24 +#define T_H225ReleaseCompleteReason_hopCountExceeded 25 +#define T_H225ReleaseCompleteReason_extElem1 26 + +typedef struct EXTERN H225ReleaseCompleteReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + /* t = 7 */ + /* t = 8 */ + /* t = 9 */ + /* t = 10 */ + /* t = 11 */ + /* t = 12 */ + /* t = 13 */ + /* t = 14 */ + /* t = 15 */ + /* t = 16 */ + /* t = 17 */ + /* t = 18 */ + H225NonStandardParameter *nonStandardReason; + /* t = 19 */ + H225ConferenceIdentifier *replaceWithConferenceInvite; + /* t = 20 */ + /* t = 21 */ + /* t = 22 */ + /* t = 23 */ + /* t = 24 */ + H225SecurityErrors *securityError; + /* t = 25 */ + /* t = 26 */ + } u; +} H225ReleaseCompleteReason; + +EXTERN int asn1PE_H225ReleaseCompleteReason (OOCTXT* pctxt, H225ReleaseCompleteReason* pvalue); + +EXTERN int asn1PD_H225ReleaseCompleteReason (OOCTXT* pctxt, H225ReleaseCompleteReason* pvalue); + +/**************************************************************/ +/* */ +/* ReleaseComplete_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ReleaseComplete_UUIE { + struct { + unsigned reasonPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned busyAddressPresent : 1; + unsigned presentationIndicatorPresent : 1; + unsigned screeningIndicatorPresent : 1; + unsigned capacityPresent : 1; + unsigned serviceControlPresent : 1; + unsigned featureSetPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225ReleaseCompleteReason reason; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225_SeqOfH225AliasAddress busyAddress; + H225PresentationIndicator presentationIndicator; + H225ScreeningIndicator screeningIndicator; + H225CallCapacity capacity; + H225_SeqOfH225ServiceControlSession serviceControl; + H225FeatureSet featureSet; +} H225ReleaseComplete_UUIE; + +EXTERN int asn1PE_H225ReleaseComplete_UUIE (OOCTXT* pctxt, H225ReleaseComplete_UUIE* pvalue); + +EXTERN int asn1PD_H225ReleaseComplete_UUIE (OOCTXT* pctxt, H225ReleaseComplete_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* FacilityReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225FacilityReason_routeCallToGatekeeper 1 +#define T_H225FacilityReason_callForwarded 2 +#define T_H225FacilityReason_routeCallToMC 3 +#define T_H225FacilityReason_undefinedReason 4 +#define T_H225FacilityReason_conferenceListChoice 5 +#define T_H225FacilityReason_startH245 6 +#define T_H225FacilityReason_noH245 7 +#define T_H225FacilityReason_newTokens 8 +#define T_H225FacilityReason_featureSetUpdate 9 +#define T_H225FacilityReason_forwardedElements 10 +#define T_H225FacilityReason_transportedInformation 11 +#define T_H225FacilityReason_extElem1 12 + +typedef struct EXTERN H225FacilityReason { + int t; +} H225FacilityReason; + +EXTERN int asn1PE_H225FacilityReason (OOCTXT* pctxt, H225FacilityReason* pvalue); + +EXTERN int asn1PD_H225FacilityReason (OOCTXT* pctxt, H225FacilityReason* pvalue); + +/**************************************************************/ +/* */ +/* ConferenceList */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ConferenceList { + struct { + unsigned conferenceIDPresent : 1; + unsigned conferenceAliasPresent : 1; + unsigned nonStandardDataPresent : 1; + } m; + H225ConferenceIdentifier conferenceID; + H225AliasAddress conferenceAlias; + H225NonStandardParameter nonStandardData; +} H225ConferenceList; + +EXTERN int asn1PE_H225ConferenceList (OOCTXT* pctxt, H225ConferenceList* pvalue); + +EXTERN int asn1PD_H225ConferenceList (OOCTXT* pctxt, H225ConferenceList* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225ConferenceList */ +/* */ +/**************************************************************/ + +/* List of H225ConferenceList */ +typedef DList H225_SeqOfH225ConferenceList; + +EXTERN int asn1PE_H225_SeqOfH225ConferenceList (OOCTXT* pctxt, H225_SeqOfH225ConferenceList* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225ConferenceList (OOCTXT* pctxt, H225_SeqOfH225ConferenceList* pvalue); + +/**************************************************************/ +/* */ +/* Facility_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Facility_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Facility_UUIE_fastStart; + +EXTERN int asn1PE_H225Facility_UUIE_fastStart (OOCTXT* pctxt, H225Facility_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225Facility_UUIE_fastStart (OOCTXT* pctxt, H225Facility_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* Facility_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Facility_UUIE { + struct { + unsigned alternativeAddressPresent : 1; + unsigned alternativeAliasAddressPresent : 1; + unsigned conferenceIDPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned destExtraCallInfoPresent : 1; + unsigned remoteExtensionAddressPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned conferencesPresent : 1; + unsigned h245AddressPresent : 1; + unsigned fastStartPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned fastConnectRefusedPresent : 1; + unsigned serviceControlPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned featureSetPresent : 1; + unsigned destinationInfoPresent : 1; + unsigned h245SecurityModePresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225TransportAddress alternativeAddress; + H225_SeqOfH225AliasAddress alternativeAliasAddress; + H225ConferenceIdentifier conferenceID; + H225FacilityReason reason; + H225CallIdentifier callIdentifier; + H225_SeqOfH225AliasAddress destExtraCallInfo; + H225AliasAddress remoteExtensionAddress; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225_SeqOfH225ConferenceList conferences; + H225TransportAddress h245Address; + H225Facility_UUIE_fastStart fastStart; + ASN1BOOL multipleCalls; + ASN1BOOL maintainConnection; + H225_SeqOfH225ServiceControlSession serviceControl; + H225CircuitInfo circuitInfo; + H225FeatureSet featureSet; + H225EndpointType destinationInfo; + H225H245Security h245SecurityMode; +} H225Facility_UUIE; + +EXTERN int asn1PE_H225Facility_UUIE (OOCTXT* pctxt, H225Facility_UUIE* pvalue); + +EXTERN int asn1PD_H225Facility_UUIE (OOCTXT* pctxt, H225Facility_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* Progress_UUIE_fastStart */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Progress_UUIE_fastStart { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225Progress_UUIE_fastStart; + +EXTERN int asn1PE_H225Progress_UUIE_fastStart (OOCTXT* pctxt, H225Progress_UUIE_fastStart* pvalue); + +EXTERN int asn1PD_H225Progress_UUIE_fastStart (OOCTXT* pctxt, H225Progress_UUIE_fastStart* pvalue); + +/**************************************************************/ +/* */ +/* Progress_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Progress_UUIE { + struct { + unsigned h245AddressPresent : 1; + unsigned h245SecurityModePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned fastStartPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned fastConnectRefusedPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225EndpointType destinationInfo; + H225TransportAddress h245Address; + H225CallIdentifier callIdentifier; + H225H245Security h245SecurityMode; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225Progress_UUIE_fastStart fastStart; + ASN1BOOL multipleCalls; + ASN1BOOL maintainConnection; +} H225Progress_UUIE; + +EXTERN int asn1PE_H225Progress_UUIE (OOCTXT* pctxt, H225Progress_UUIE* pvalue); + +EXTERN int asn1PD_H225Progress_UUIE (OOCTXT* pctxt, H225Progress_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* Status_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Status_UUIE { + struct { + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; +} H225Status_UUIE; + +EXTERN int asn1PE_H225Status_UUIE (OOCTXT* pctxt, H225Status_UUIE* pvalue); + +EXTERN int asn1PD_H225Status_UUIE (OOCTXT* pctxt, H225Status_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* StatusInquiry_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225StatusInquiry_UUIE { + struct { + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; +} H225StatusInquiry_UUIE; + +EXTERN int asn1PE_H225StatusInquiry_UUIE (OOCTXT* pctxt, H225StatusInquiry_UUIE* pvalue); + +EXTERN int asn1PD_H225StatusInquiry_UUIE (OOCTXT* pctxt, H225StatusInquiry_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* SetupAcknowledge_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225SetupAcknowledge_UUIE { + struct { + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; +} H225SetupAcknowledge_UUIE; + +EXTERN int asn1PE_H225SetupAcknowledge_UUIE (OOCTXT* pctxt, H225SetupAcknowledge_UUIE* pvalue); + +EXTERN int asn1PD_H225SetupAcknowledge_UUIE (OOCTXT* pctxt, H225SetupAcknowledge_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* Notify_UUIE */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Notify_UUIE { + struct { + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + } m; + H225ProtocolIdentifier protocolIdentifier; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; +} H225Notify_UUIE; + +EXTERN int asn1PE_H225Notify_UUIE (OOCTXT* pctxt, H225Notify_UUIE* pvalue); + +EXTERN int asn1PD_H225Notify_UUIE (OOCTXT* pctxt, H225Notify_UUIE* pvalue); + +/**************************************************************/ +/* */ +/* H323_UU_PDU_h323_message_body */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225H323_UU_PDU_h323_message_body_setup 1 +#define T_H225H323_UU_PDU_h323_message_body_callProceeding 2 +#define T_H225H323_UU_PDU_h323_message_body_connect 3 +#define T_H225H323_UU_PDU_h323_message_body_alerting 4 +#define T_H225H323_UU_PDU_h323_message_body_information 5 +#define T_H225H323_UU_PDU_h323_message_body_releaseComplete 6 +#define T_H225H323_UU_PDU_h323_message_body_facility 7 +#define T_H225H323_UU_PDU_h323_message_body_progress 8 +#define T_H225H323_UU_PDU_h323_message_body_empty 9 +#define T_H225H323_UU_PDU_h323_message_body_status 10 +#define T_H225H323_UU_PDU_h323_message_body_statusInquiry 11 +#define T_H225H323_UU_PDU_h323_message_body_setupAcknowledge 12 +#define T_H225H323_UU_PDU_h323_message_body_notify 13 +#define T_H225H323_UU_PDU_h323_message_body_extElem1 14 + +typedef struct EXTERN H225H323_UU_PDU_h323_message_body { + int t; + union { + /* t = 1 */ + H225Setup_UUIE *setup; + /* t = 2 */ + H225CallProceeding_UUIE *callProceeding; + /* t = 3 */ + H225Connect_UUIE *connect; + /* t = 4 */ + H225Alerting_UUIE *alerting; + /* t = 5 */ + H225Information_UUIE *information; + /* t = 6 */ + H225ReleaseComplete_UUIE *releaseComplete; + /* t = 7 */ + H225Facility_UUIE *facility; + /* t = 8 */ + H225Progress_UUIE *progress; + /* t = 9 */ + /* t = 10 */ + H225Status_UUIE *status; + /* t = 11 */ + H225StatusInquiry_UUIE *statusInquiry; + /* t = 12 */ + H225SetupAcknowledge_UUIE *setupAcknowledge; + /* t = 13 */ + H225Notify_UUIE *notify; + /* t = 14 */ + } u; +} H225H323_UU_PDU_h323_message_body; + +EXTERN int asn1PE_H225H323_UU_PDU_h323_message_body (OOCTXT* pctxt, H225H323_UU_PDU_h323_message_body* pvalue); + +EXTERN int asn1PD_H225H323_UU_PDU_h323_message_body (OOCTXT* pctxt, H225H323_UU_PDU_h323_message_body* pvalue); + +/**************************************************************/ +/* */ +/* H323_UU_PDU_h4501SupplementaryService */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UU_PDU_h4501SupplementaryService { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225H323_UU_PDU_h4501SupplementaryService; + +EXTERN int asn1PE_H225H323_UU_PDU_h4501SupplementaryService (OOCTXT* pctxt, H225H323_UU_PDU_h4501SupplementaryService* pvalue); + +EXTERN int asn1PD_H225H323_UU_PDU_h4501SupplementaryService (OOCTXT* pctxt, H225H323_UU_PDU_h4501SupplementaryService* pvalue); + +/**************************************************************/ +/* */ +/* H323_UU_PDU_h245Control */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UU_PDU_h245Control { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225H323_UU_PDU_h245Control; + +EXTERN int asn1PE_H225H323_UU_PDU_h245Control (OOCTXT* pctxt, H225H323_UU_PDU_h245Control* pvalue); + +EXTERN int asn1PD_H225H323_UU_PDU_h245Control (OOCTXT* pctxt, H225H323_UU_PDU_h245Control* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225NonStandardParameter */ +/* */ +/**************************************************************/ + +/* List of H225NonStandardParameter */ +typedef DList H225_SeqOfH225NonStandardParameter; + +EXTERN int asn1PE_H225_SeqOfH225NonStandardParameter (OOCTXT* pctxt, H225_SeqOfH225NonStandardParameter* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225NonStandardParameter (OOCTXT* pctxt, H225_SeqOfH225NonStandardParameter* pvalue); + +/**************************************************************/ +/* */ +/* CallLinkage */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallLinkage { + struct { + unsigned globalCallIdPresent : 1; + unsigned threadIdPresent : 1; + } m; + H225GloballyUniqueID globalCallId; + H225GloballyUniqueID threadId; +} H225CallLinkage; + +EXTERN int asn1PE_H225CallLinkage (OOCTXT* pctxt, H225CallLinkage* pvalue); + +EXTERN int asn1PD_H225CallLinkage (OOCTXT* pctxt, H225CallLinkage* pvalue); + +/**************************************************************/ +/* */ +/* H323_UU_PDU_tunnelledSignallingMessage_messageContent */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UU_PDU_tunnelledSignallingMessage_messageContent { + ASN1UINT n; + ASN1DynOctStr *elem; +} H225H323_UU_PDU_tunnelledSignallingMessage_messageContent; + +EXTERN int asn1PE_H225H323_UU_PDU_tunnelledSignallingMessage_messageContent (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage_messageContent* pvalue); + +EXTERN int asn1PD_H225H323_UU_PDU_tunnelledSignallingMessage_messageContent (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage_messageContent* pvalue); + +/**************************************************************/ +/* */ +/* H323_UU_PDU_tunnelledSignallingMessage */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UU_PDU_tunnelledSignallingMessage { + struct { + unsigned tunnellingRequiredPresent : 1; + unsigned nonStandardDataPresent : 1; + } m; + H225TunnelledProtocol tunnelledProtocolID; + H225H323_UU_PDU_tunnelledSignallingMessage_messageContent messageContent; + H225NonStandardParameter nonStandardData; +} H225H323_UU_PDU_tunnelledSignallingMessage; + +EXTERN int asn1PE_H225H323_UU_PDU_tunnelledSignallingMessage (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage* pvalue); + +EXTERN int asn1PD_H225H323_UU_PDU_tunnelledSignallingMessage (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage* pvalue); + +/**************************************************************/ +/* */ +/* StimulusControl */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225StimulusControl { + struct { + unsigned nonStandardPresent : 1; + unsigned isTextPresent : 1; + unsigned h248MessagePresent : 1; + } m; + H225NonStandardParameter nonStandard; + ASN1DynOctStr h248Message; +} H225StimulusControl; + +EXTERN int asn1PE_H225StimulusControl (OOCTXT* pctxt, H225StimulusControl* pvalue); + +EXTERN int asn1PD_H225StimulusControl (OOCTXT* pctxt, H225StimulusControl* pvalue); + +/**************************************************************/ +/* */ +/* H323_UU_PDU */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UU_PDU { + struct { + unsigned nonStandardDataPresent : 1; + unsigned h4501SupplementaryServicePresent : 1; + unsigned h245TunnelingPresent : 1; + unsigned h245ControlPresent : 1; + unsigned nonStandardControlPresent : 1; + unsigned callLinkagePresent : 1; + unsigned tunnelledSignallingMessagePresent : 1; + unsigned provisionalRespToH245TunnelingPresent : 1; + unsigned stimulusControlPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225H323_UU_PDU_h323_message_body h323_message_body; + H225NonStandardParameter nonStandardData; + H225H323_UU_PDU_h4501SupplementaryService h4501SupplementaryService; + ASN1BOOL h245Tunneling; + H225H323_UU_PDU_h245Control h245Control; + H225_SeqOfH225NonStandardParameter nonStandardControl; + H225CallLinkage callLinkage; + H225H323_UU_PDU_tunnelledSignallingMessage tunnelledSignallingMessage; + H225StimulusControl stimulusControl; + H225_SeqOfH225GenericData genericData; +} H225H323_UU_PDU; + +EXTERN int asn1PE_H225H323_UU_PDU (OOCTXT* pctxt, H225H323_UU_PDU* pvalue); + +EXTERN int asn1PD_H225H323_UU_PDU (OOCTXT* pctxt, H225H323_UU_PDU* pvalue); + +/**************************************************************/ +/* */ +/* H323_UserInformation_user_data */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UserInformation_user_data { + ASN1UINT8 protocol_discriminator; + H225H323_UserInformation_user_data_user_information user_information; +} H225H323_UserInformation_user_data; + +EXTERN int asn1PE_H225H323_UserInformation_user_data (OOCTXT* pctxt, H225H323_UserInformation_user_data* pvalue); + +EXTERN int asn1PD_H225H323_UserInformation_user_data (OOCTXT* pctxt, H225H323_UserInformation_user_data* pvalue); + +/**************************************************************/ +/* */ +/* H323_UserInformation */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225H323_UserInformation { + struct { + unsigned user_dataPresent : 1; + } m; + H225H323_UU_PDU h323_uu_pdu; + H225H323_UserInformation_user_data user_data; +} H225H323_UserInformation; + +EXTERN int asn1PE_H225H323_UserInformation (OOCTXT* pctxt, H225H323_UserInformation* pvalue); + +EXTERN int asn1PD_H225H323_UserInformation (OOCTXT* pctxt, H225H323_UserInformation* pvalue); + +/**************************************************************/ +/* */ +/* AddressPattern_range */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AddressPattern_range { + H225PartyNumber startOfRange; + H225PartyNumber endOfRange; +} H225AddressPattern_range; + +EXTERN int asn1PE_H225AddressPattern_range (OOCTXT* pctxt, H225AddressPattern_range* pvalue); + +EXTERN int asn1PD_H225AddressPattern_range (OOCTXT* pctxt, H225AddressPattern_range* pvalue); + +/**************************************************************/ +/* */ +/* AddressPattern */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225AddressPattern_wildcard 1 +#define T_H225AddressPattern_range 2 +#define T_H225AddressPattern_extElem1 3 + +typedef struct EXTERN H225AddressPattern { + int t; + union { + /* t = 1 */ + H225AliasAddress *wildcard; + /* t = 2 */ + H225AddressPattern_range *range; + /* t = 3 */ + } u; +} H225AddressPattern; + +EXTERN int asn1PE_H225AddressPattern (OOCTXT* pctxt, H225AddressPattern* pvalue); + +EXTERN int asn1PD_H225AddressPattern (OOCTXT* pctxt, H225AddressPattern* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225TransportAddress */ +/* */ +/**************************************************************/ + +/* List of H225TransportAddress */ +typedef DList H225_SeqOfH225TransportAddress; + +EXTERN int asn1PE_H225_SeqOfH225TransportAddress (OOCTXT* pctxt, H225_SeqOfH225TransportAddress* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225TransportAddress (OOCTXT* pctxt, H225_SeqOfH225TransportAddress* pvalue); + +/**************************************************************/ +/* */ +/* AlternateTransportAddresses */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AlternateTransportAddresses { + struct { + unsigned annexEPresent : 1; + unsigned sctpPresent : 1; + } m; + H225_SeqOfH225TransportAddress annexE; + H225_SeqOfH225TransportAddress sctp; +} H225AlternateTransportAddresses; + +EXTERN int asn1PE_H225AlternateTransportAddresses (OOCTXT* pctxt, H225AlternateTransportAddresses* pvalue); + +EXTERN int asn1PD_H225AlternateTransportAddresses (OOCTXT* pctxt, H225AlternateTransportAddresses* pvalue); + +/**************************************************************/ +/* */ +/* Endpoint */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225Endpoint { + struct { + unsigned nonStandardDataPresent : 1; + unsigned aliasAddressPresent : 1; + unsigned callSignalAddressPresent : 1; + unsigned rasAddressPresent : 1; + unsigned endpointTypePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned priorityPresent : 1; + unsigned remoteExtensionAddressPresent : 1; + unsigned destExtraCallInfoPresent : 1; + unsigned alternateTransportAddressesPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned featureSetPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225AliasAddress aliasAddress; + H225_SeqOfH225TransportAddress callSignalAddress; + H225_SeqOfH225TransportAddress rasAddress; + H225EndpointType endpointType; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + ASN1UINT8 priority; + H225_SeqOfH225AliasAddress remoteExtensionAddress; + H225_SeqOfH225AliasAddress destExtraCallInfo; + H225AlternateTransportAddresses alternateTransportAddresses; + H225CircuitInfo circuitInfo; + H225FeatureSet featureSet; +} H225Endpoint; + +EXTERN int asn1PE_H225Endpoint (OOCTXT* pctxt, H225Endpoint* pvalue); + +EXTERN int asn1PD_H225Endpoint (OOCTXT* pctxt, H225Endpoint* pvalue); + +/**************************************************************/ +/* */ +/* UseSpecifiedTransport */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225UseSpecifiedTransport_tcp 1 +#define T_H225UseSpecifiedTransport_annexE 2 +#define T_H225UseSpecifiedTransport_sctp 3 +#define T_H225UseSpecifiedTransport_extElem1 4 + +typedef struct EXTERN H225UseSpecifiedTransport { + int t; +} H225UseSpecifiedTransport; + +EXTERN int asn1PE_H225UseSpecifiedTransport (OOCTXT* pctxt, H225UseSpecifiedTransport* pvalue); + +EXTERN int asn1PD_H225UseSpecifiedTransport (OOCTXT* pctxt, H225UseSpecifiedTransport* pvalue); + +/**************************************************************/ +/* */ +/* AlternateGK */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AlternateGK { + struct { + unsigned gatekeeperIdentifierPresent : 1; + } m; + H225TransportAddress rasAddress; + H225GatekeeperIdentifier gatekeeperIdentifier; + ASN1BOOL needToRegister; + ASN1UINT8 priority; +} H225AlternateGK; + +EXTERN int asn1PE_H225AlternateGK (OOCTXT* pctxt, H225AlternateGK* pvalue); + +EXTERN int asn1PD_H225AlternateGK (OOCTXT* pctxt, H225AlternateGK* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225AlternateGK */ +/* */ +/**************************************************************/ + +/* List of H225AlternateGK */ +typedef DList H225_SeqOfH225AlternateGK; + +EXTERN int asn1PE_H225_SeqOfH225AlternateGK (OOCTXT* pctxt, H225_SeqOfH225AlternateGK* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225AlternateGK (OOCTXT* pctxt, H225_SeqOfH225AlternateGK* pvalue); + +/**************************************************************/ +/* */ +/* AltGKInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AltGKInfo { + H225_SeqOfH225AlternateGK alternateGatekeeper; + ASN1BOOL altGKisPermanent; +} H225AltGKInfo; + +EXTERN int asn1PE_H225AltGKInfo (OOCTXT* pctxt, H225AltGKInfo* pvalue); + +EXTERN int asn1PD_H225AltGKInfo (OOCTXT* pctxt, H225AltGKInfo* pvalue); + +/**************************************************************/ +/* */ +/* SecurityErrors2 */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225SecurityErrors2_securityWrongSyncTime 1 +#define T_H225SecurityErrors2_securityReplay 2 +#define T_H225SecurityErrors2_securityWrongGeneralID 3 +#define T_H225SecurityErrors2_securityWrongSendersID 4 +#define T_H225SecurityErrors2_securityIntegrityFailed 5 +#define T_H225SecurityErrors2_securityWrongOID 6 +#define T_H225SecurityErrors2_extElem1 7 + +typedef struct EXTERN H225SecurityErrors2 { + int t; +} H225SecurityErrors2; + +EXTERN int asn1PE_H225SecurityErrors2 (OOCTXT* pctxt, H225SecurityErrors2* pvalue); + +EXTERN int asn1PD_H225SecurityErrors2 (OOCTXT* pctxt, H225SecurityErrors2* pvalue); + +/**************************************************************/ +/* */ +/* EncryptIntAlg */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225EncryptIntAlg_nonStandard 1 +#define T_H225EncryptIntAlg_isoAlgorithm 2 +#define T_H225EncryptIntAlg_extElem1 3 + +typedef struct EXTERN H225EncryptIntAlg { + int t; + union { + /* t = 1 */ + H225NonStandardParameter *nonStandard; + /* t = 2 */ + ASN1OBJID *isoAlgorithm; + /* t = 3 */ + } u; +} H225EncryptIntAlg; + +EXTERN int asn1PE_H225EncryptIntAlg (OOCTXT* pctxt, H225EncryptIntAlg* pvalue); + +EXTERN int asn1PD_H225EncryptIntAlg (OOCTXT* pctxt, H225EncryptIntAlg* pvalue); + +/**************************************************************/ +/* */ +/* NonIsoIntegrityMechanism */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225NonIsoIntegrityMechanism_hMAC_MD5 1 +#define T_H225NonIsoIntegrityMechanism_hMAC_iso10118_2_s 2 +#define T_H225NonIsoIntegrityMechanism_hMAC_iso10118_2_l 3 +#define T_H225NonIsoIntegrityMechanism_hMAC_iso10118_3 4 +#define T_H225NonIsoIntegrityMechanism_extElem1 5 + +typedef struct EXTERN H225NonIsoIntegrityMechanism { + int t; + union { + /* t = 1 */ + /* t = 2 */ + H225EncryptIntAlg *hMAC_iso10118_2_s; + /* t = 3 */ + H225EncryptIntAlg *hMAC_iso10118_2_l; + /* t = 4 */ + ASN1OBJID *hMAC_iso10118_3; + /* t = 5 */ + } u; +} H225NonIsoIntegrityMechanism; + +EXTERN int asn1PE_H225NonIsoIntegrityMechanism (OOCTXT* pctxt, H225NonIsoIntegrityMechanism* pvalue); + +EXTERN int asn1PD_H225NonIsoIntegrityMechanism (OOCTXT* pctxt, H225NonIsoIntegrityMechanism* pvalue); + +/**************************************************************/ +/* */ +/* IntegrityMechanism */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225IntegrityMechanism_nonStandard 1 +#define T_H225IntegrityMechanism_digSig 2 +#define T_H225IntegrityMechanism_iso9797 3 +#define T_H225IntegrityMechanism_nonIsoIM 4 +#define T_H225IntegrityMechanism_extElem1 5 + +typedef struct EXTERN H225IntegrityMechanism { + int t; + union { + /* t = 1 */ + H225NonStandardParameter *nonStandard; + /* t = 2 */ + /* t = 3 */ + ASN1OBJID *iso9797; + /* t = 4 */ + H225NonIsoIntegrityMechanism *nonIsoIM; + /* t = 5 */ + } u; +} H225IntegrityMechanism; + +EXTERN int asn1PE_H225IntegrityMechanism (OOCTXT* pctxt, H225IntegrityMechanism* pvalue); + +EXTERN int asn1PD_H225IntegrityMechanism (OOCTXT* pctxt, H225IntegrityMechanism* pvalue); + +/**************************************************************/ +/* */ +/* ICV */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ICV { + ASN1OBJID algorithmOID; + ASN1DynBitStr icv; +} H225ICV; + +EXTERN int asn1PE_H225ICV (OOCTXT* pctxt, H225ICV* pvalue); + +EXTERN int asn1PD_H225ICV (OOCTXT* pctxt, H225ICV* pvalue); + +/**************************************************************/ +/* */ +/* CapacityReportingCapability */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CapacityReportingCapability { + ASN1BOOL canReportCallCapacity; +} H225CapacityReportingCapability; + +EXTERN int asn1PE_H225CapacityReportingCapability (OOCTXT* pctxt, H225CapacityReportingCapability* pvalue); + +EXTERN int asn1PD_H225CapacityReportingCapability (OOCTXT* pctxt, H225CapacityReportingCapability* pvalue); + +/**************************************************************/ +/* */ +/* CapacityReportingSpecification_when */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CapacityReportingSpecification_when { + struct { + unsigned callStartPresent : 1; + unsigned callEndPresent : 1; + } m; + ASN1OCTET __dummy__; +} H225CapacityReportingSpecification_when; + +EXTERN int asn1PE_H225CapacityReportingSpecification_when (OOCTXT* pctxt, H225CapacityReportingSpecification_when* pvalue); + +EXTERN int asn1PD_H225CapacityReportingSpecification_when (OOCTXT* pctxt, H225CapacityReportingSpecification_when* pvalue); + +/**************************************************************/ +/* */ +/* CapacityReportingSpecification */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CapacityReportingSpecification { + H225CapacityReportingSpecification_when when; +} H225CapacityReportingSpecification; + +EXTERN int asn1PE_H225CapacityReportingSpecification (OOCTXT* pctxt, H225CapacityReportingSpecification* pvalue); + +EXTERN int asn1PD_H225CapacityReportingSpecification (OOCTXT* pctxt, H225CapacityReportingSpecification* pvalue); + +/**************************************************************/ +/* */ +/* RasUsageInfoTypes */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RasUsageInfoTypes { + struct { + unsigned startTimePresent : 1; + unsigned endTimePresent : 1; + unsigned terminationCausePresent : 1; + } m; + H225_SeqOfH225NonStandardParameter nonStandardUsageTypes; +} H225RasUsageInfoTypes; + +EXTERN int asn1PE_H225RasUsageInfoTypes (OOCTXT* pctxt, H225RasUsageInfoTypes* pvalue); + +EXTERN int asn1PD_H225RasUsageInfoTypes (OOCTXT* pctxt, H225RasUsageInfoTypes* pvalue); + +/**************************************************************/ +/* */ +/* RasUsageSpecification_when */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RasUsageSpecification_when { + struct { + unsigned startPresent : 1; + unsigned endPresent : 1; + unsigned inIrrPresent : 1; + } m; + ASN1OCTET __dummy__; +} H225RasUsageSpecification_when; + +EXTERN int asn1PE_H225RasUsageSpecification_when (OOCTXT* pctxt, H225RasUsageSpecification_when* pvalue); + +EXTERN int asn1PD_H225RasUsageSpecification_when (OOCTXT* pctxt, H225RasUsageSpecification_when* pvalue); + +/**************************************************************/ +/* */ +/* RasUsageSpecification_callStartingPoint */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RasUsageSpecification_callStartingPoint { + struct { + unsigned alertingPresent : 1; + unsigned connectPresent : 1; + } m; + ASN1OCTET __dummy__; +} H225RasUsageSpecification_callStartingPoint; + +EXTERN int asn1PE_H225RasUsageSpecification_callStartingPoint (OOCTXT* pctxt, H225RasUsageSpecification_callStartingPoint* pvalue); + +EXTERN int asn1PD_H225RasUsageSpecification_callStartingPoint (OOCTXT* pctxt, H225RasUsageSpecification_callStartingPoint* pvalue); + +/**************************************************************/ +/* */ +/* RasUsageSpecification */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RasUsageSpecification { + struct { + unsigned callStartingPointPresent : 1; + } m; + H225RasUsageSpecification_when when; + H225RasUsageSpecification_callStartingPoint callStartingPoint; + H225RasUsageInfoTypes required; +} H225RasUsageSpecification; + +EXTERN int asn1PE_H225RasUsageSpecification (OOCTXT* pctxt, H225RasUsageSpecification* pvalue); + +EXTERN int asn1PD_H225RasUsageSpecification (OOCTXT* pctxt, H225RasUsageSpecification* pvalue); + +/**************************************************************/ +/* */ +/* RasUsageInformation */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RasUsageInformation { + struct { + unsigned alertingTimePresent : 1; + unsigned connectTimePresent : 1; + unsigned endTimePresent : 1; + } m; + H225_SeqOfH225NonStandardParameter nonStandardUsageFields; + H235TimeStamp alertingTime; + H235TimeStamp connectTime; + H235TimeStamp endTime; +} H225RasUsageInformation; + +EXTERN int asn1PE_H225RasUsageInformation (OOCTXT* pctxt, H225RasUsageInformation* pvalue); + +EXTERN int asn1PD_H225RasUsageInformation (OOCTXT* pctxt, H225RasUsageInformation* pvalue); + +/**************************************************************/ +/* */ +/* CallTerminationCause */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225CallTerminationCause_releaseCompleteReason 1 +#define T_H225CallTerminationCause_releaseCompleteCauseIE 2 +#define T_H225CallTerminationCause_extElem1 3 + +typedef struct EXTERN H225CallTerminationCause { + int t; + union { + /* t = 1 */ + H225ReleaseCompleteReason *releaseCompleteReason; + /* t = 2 */ + H225CallTerminationCause_releaseCompleteCauseIE *releaseCompleteCauseIE; + /* t = 3 */ + } u; +} H225CallTerminationCause; + +EXTERN int asn1PE_H225CallTerminationCause (OOCTXT* pctxt, H225CallTerminationCause* pvalue); + +EXTERN int asn1PD_H225CallTerminationCause (OOCTXT* pctxt, H225CallTerminationCause* pvalue); + +/**************************************************************/ +/* */ +/* TransportChannelInfo */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225TransportChannelInfo { + struct { + unsigned sendAddressPresent : 1; + unsigned recvAddressPresent : 1; + } m; + H225TransportAddress sendAddress; + H225TransportAddress recvAddress; +} H225TransportChannelInfo; + +EXTERN int asn1PE_H225TransportChannelInfo (OOCTXT* pctxt, H225TransportChannelInfo* pvalue); + +EXTERN int asn1PD_H225TransportChannelInfo (OOCTXT* pctxt, H225TransportChannelInfo* pvalue); + +/**************************************************************/ +/* */ +/* BandwidthDetails */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225BandwidthDetails { + ASN1BOOL sender; + ASN1BOOL multicast; + H225BandWidth bandwidth; + H225TransportChannelInfo rtcpAddresses; +} H225BandwidthDetails; + +EXTERN int asn1PE_H225BandwidthDetails (OOCTXT* pctxt, H225BandwidthDetails* pvalue); + +EXTERN int asn1PD_H225BandwidthDetails (OOCTXT* pctxt, H225BandwidthDetails* pvalue); + +/**************************************************************/ +/* */ +/* CallCreditCapability */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225CallCreditCapability { + struct { + unsigned canDisplayAmountStringPresent : 1; + unsigned canEnforceDurationLimitPresent : 1; + } m; + ASN1BOOL canDisplayAmountString; + ASN1BOOL canEnforceDurationLimit; +} H225CallCreditCapability; + +EXTERN int asn1PE_H225CallCreditCapability (OOCTXT* pctxt, H225CallCreditCapability* pvalue); + +EXTERN int asn1PD_H225CallCreditCapability (OOCTXT* pctxt, H225CallCreditCapability* pvalue); + +/**************************************************************/ +/* */ +/* RTPSession_associatedSessionIds */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RTPSession_associatedSessionIds { + ASN1UINT n; + ASN1UINT8 *elem; +} H225RTPSession_associatedSessionIds; + +EXTERN int asn1PE_H225RTPSession_associatedSessionIds (OOCTXT* pctxt, H225RTPSession_associatedSessionIds* pvalue); + +EXTERN int asn1PD_H225RTPSession_associatedSessionIds (OOCTXT* pctxt, H225RTPSession_associatedSessionIds* pvalue); + +/**************************************************************/ +/* */ +/* RTPSession */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RTPSession { + struct { + unsigned multicastPresent : 1; + unsigned bandwidthPresent : 1; + } m; + H225TransportChannelInfo rtpAddress; + H225TransportChannelInfo rtcpAddress; + ASN1PrintableString cname; + ASN1UINT ssrc; + ASN1UINT8 sessionId; + H225RTPSession_associatedSessionIds associatedSessionIds; + H225BandWidth bandwidth; +} H225RTPSession; + +EXTERN int asn1PE_H225RTPSession (OOCTXT* pctxt, H225RTPSession* pvalue); + +EXTERN int asn1PD_H225RTPSession (OOCTXT* pctxt, H225RTPSession* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225Endpoint */ +/* */ +/**************************************************************/ + +/* List of H225Endpoint */ +typedef DList H225_SeqOfH225Endpoint; + +EXTERN int asn1PE_H225_SeqOfH225Endpoint (OOCTXT* pctxt, H225_SeqOfH225Endpoint* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225Endpoint (OOCTXT* pctxt, H225_SeqOfH225Endpoint* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225AuthenticationMechanism */ +/* */ +/**************************************************************/ + +/* List of H235AuthenticationMechanism */ +typedef DList H225_SeqOfH225AuthenticationMechanism; + +EXTERN int asn1PE_H225_SeqOfH225AuthenticationMechanism (OOCTXT* pctxt, H225_SeqOfH225AuthenticationMechanism* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225AuthenticationMechanism (OOCTXT* pctxt, H225_SeqOfH225AuthenticationMechanism* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperRequest_algorithmOIDs */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GatekeeperRequest_algorithmOIDs { + ASN1UINT n; + ASN1OBJID *elem; +} H225GatekeeperRequest_algorithmOIDs; + +EXTERN int asn1PE_H225GatekeeperRequest_algorithmOIDs (OOCTXT* pctxt, H225GatekeeperRequest_algorithmOIDs* pvalue); + +EXTERN int asn1PD_H225GatekeeperRequest_algorithmOIDs (OOCTXT* pctxt, H225GatekeeperRequest_algorithmOIDs* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225IntegrityMechanism */ +/* */ +/**************************************************************/ + +/* List of H225IntegrityMechanism */ +typedef DList H225_SeqOfH225IntegrityMechanism; + +EXTERN int asn1PE_H225_SeqOfH225IntegrityMechanism (OOCTXT* pctxt, H225_SeqOfH225IntegrityMechanism* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225IntegrityMechanism (OOCTXT* pctxt, H225_SeqOfH225IntegrityMechanism* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GatekeeperRequest { + struct { + unsigned nonStandardDataPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned callServicesPresent : 1; + unsigned endpointAliasPresent : 1; + unsigned alternateEndpointsPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned authenticationCapabilityPresent : 1; + unsigned algorithmOIDsPresent : 1; + unsigned integrityPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned supportsAltGKPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225TransportAddress rasAddress; + H225EndpointType endpointType; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225QseriesOptions callServices; + H225_SeqOfH225AliasAddress endpointAlias; + H225_SeqOfH225Endpoint alternateEndpoints; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225_SeqOfH225AuthenticationMechanism authenticationCapability; + H225GatekeeperRequest_algorithmOIDs algorithmOIDs; + H225_SeqOfH225IntegrityMechanism integrity; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225GatekeeperRequest; + +EXTERN int asn1PE_H225GatekeeperRequest (OOCTXT* pctxt, H225GatekeeperRequest* pvalue); + +EXTERN int asn1PD_H225GatekeeperRequest (OOCTXT* pctxt, H225GatekeeperRequest* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GatekeeperConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned alternateGatekeeperPresent : 1; + unsigned authenticationModePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned algorithmOIDPresent : 1; + unsigned integrityPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225TransportAddress rasAddress; + H225_SeqOfH225AlternateGK alternateGatekeeper; + H235AuthenticationMechanism authenticationMode; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + ASN1OBJID algorithmOID; + H225_SeqOfH225IntegrityMechanism integrity; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225GatekeeperConfirm; + +EXTERN int asn1PE_H225GatekeeperConfirm (OOCTXT* pctxt, H225GatekeeperConfirm* pvalue); + +EXTERN int asn1PD_H225GatekeeperConfirm (OOCTXT* pctxt, H225GatekeeperConfirm* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225GatekeeperRejectReason_resourceUnavailable 1 +#define T_H225GatekeeperRejectReason_terminalExcluded 2 +#define T_H225GatekeeperRejectReason_invalidRevision 3 +#define T_H225GatekeeperRejectReason_undefinedReason 4 +#define T_H225GatekeeperRejectReason_securityDenial 5 +#define T_H225GatekeeperRejectReason_genericDataReason 6 +#define T_H225GatekeeperRejectReason_neededFeatureNotSupported 7 +#define T_H225GatekeeperRejectReason_securityError 8 +#define T_H225GatekeeperRejectReason_extElem1 9 + +typedef struct EXTERN H225GatekeeperRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + /* t = 7 */ + /* t = 8 */ + H225SecurityErrors *securityError; + /* t = 9 */ + } u; +} H225GatekeeperRejectReason; + +EXTERN int asn1PE_H225GatekeeperRejectReason (OOCTXT* pctxt, H225GatekeeperRejectReason* pvalue); + +EXTERN int asn1PD_H225GatekeeperRejectReason (OOCTXT* pctxt, H225GatekeeperRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* GatekeeperReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225GatekeeperReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225GatekeeperRejectReason rejectReason; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225GatekeeperReject; + +EXTERN int asn1PE_H225GatekeeperReject (OOCTXT* pctxt, H225GatekeeperReject* pvalue); + +EXTERN int asn1PD_H225GatekeeperReject (OOCTXT* pctxt, H225GatekeeperReject* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225AddressPattern */ +/* */ +/**************************************************************/ + +/* List of H225AddressPattern */ +typedef DList H225_SeqOfH225AddressPattern; + +EXTERN int asn1PE_H225_SeqOfH225AddressPattern (OOCTXT* pctxt, H225_SeqOfH225AddressPattern* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225AddressPattern (OOCTXT* pctxt, H225_SeqOfH225AddressPattern* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225H248PackagesDescriptor */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225_SeqOfH225H248PackagesDescriptor { + ASN1UINT n; + H225H248PackagesDescriptor *elem; +} H225_SeqOfH225H248PackagesDescriptor; + +EXTERN int asn1PE_H225_SeqOfH225H248PackagesDescriptor (OOCTXT* pctxt, H225_SeqOfH225H248PackagesDescriptor* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225H248PackagesDescriptor (OOCTXT* pctxt, H225_SeqOfH225H248PackagesDescriptor* pvalue); + +/**************************************************************/ +/* */ +/* RegistrationRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RegistrationRequest { + struct { + unsigned nonStandardDataPresent : 1; + unsigned terminalAliasPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned alternateEndpointsPresent : 1; + unsigned timeToLivePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned keepAlivePresent : 1; + unsigned endpointIdentifierPresent : 1; + unsigned willSupplyUUIEsPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned alternateTransportAddressesPresent : 1; + unsigned additiveRegistrationPresent : 1; + unsigned terminalAliasPatternPresent : 1; + unsigned supportsAltGKPresent : 1; + unsigned usageReportingCapabilityPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned supportedH248PackagesPresent : 1; + unsigned callCreditCapabilityPresent : 1; + unsigned capacityReportingCapabilityPresent : 1; + unsigned capacityPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + unsigned restartPresent : 1; + unsigned supportsACFSequencesPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + ASN1BOOL discoveryComplete; + H225_SeqOfH225TransportAddress callSignalAddress; + H225_SeqOfH225TransportAddress rasAddress; + H225EndpointType terminalType; + H225_SeqOfH225AliasAddress terminalAlias; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225VendorIdentifier endpointVendor; + H225_SeqOfH225Endpoint alternateEndpoints; + H225TimeToLive timeToLive; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1BOOL keepAlive; + H225EndpointIdentifier endpointIdentifier; + ASN1BOOL willSupplyUUIEs; + ASN1BOOL maintainConnection; + H225AlternateTransportAddresses alternateTransportAddresses; + H225_SeqOfH225AddressPattern terminalAliasPattern; + H225RasUsageInfoTypes usageReportingCapability; + ASN1BOOL multipleCalls; + H225_SeqOfH225H248PackagesDescriptor supportedH248Packages; + H225CallCreditCapability callCreditCapability; + H225CapacityReportingCapability capacityReportingCapability; + H225CallCapacity capacity; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225RegistrationRequest; + +EXTERN int asn1PE_H225RegistrationRequest (OOCTXT* pctxt, H225RegistrationRequest* pvalue); + +EXTERN int asn1PD_H225RegistrationRequest (OOCTXT* pctxt, H225RegistrationRequest* pvalue); + +/**************************************************************/ +/* */ +/* RegistrationConfirm_preGrantedARQ */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RegistrationConfirm_preGrantedARQ { + struct { + unsigned irrFrequencyInCallPresent : 1; + unsigned totalBandwidthRestrictionPresent : 1; + unsigned alternateTransportAddressesPresent : 1; + unsigned useSpecifiedTransportPresent : 1; + } m; + ASN1BOOL makeCall; + ASN1BOOL useGKCallSignalAddressToMakeCall; + ASN1BOOL answerCall; + ASN1BOOL useGKCallSignalAddressToAnswer; + ASN1USINT irrFrequencyInCall; + H225BandWidth totalBandwidthRestriction; + H225AlternateTransportAddresses alternateTransportAddresses; + H225UseSpecifiedTransport useSpecifiedTransport; +} H225RegistrationConfirm_preGrantedARQ; + +EXTERN int asn1PE_H225RegistrationConfirm_preGrantedARQ (OOCTXT* pctxt, H225RegistrationConfirm_preGrantedARQ* pvalue); + +EXTERN int asn1PD_H225RegistrationConfirm_preGrantedARQ (OOCTXT* pctxt, H225RegistrationConfirm_preGrantedARQ* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225RasUsageSpecification */ +/* */ +/**************************************************************/ + +/* List of H225RasUsageSpecification */ +typedef DList H225_SeqOfH225RasUsageSpecification; + +EXTERN int asn1PE_H225_SeqOfH225RasUsageSpecification (OOCTXT* pctxt, H225_SeqOfH225RasUsageSpecification* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225RasUsageSpecification (OOCTXT* pctxt, H225_SeqOfH225RasUsageSpecification* pvalue); + +/**************************************************************/ +/* */ +/* RegistrationConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RegistrationConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned terminalAliasPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned alternateGatekeeperPresent : 1; + unsigned timeToLivePresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned willRespondToIRRPresent : 1; + unsigned preGrantedARQPresent : 1; + unsigned maintainConnectionPresent : 1; + unsigned serviceControlPresent : 1; + unsigned supportsAdditiveRegistrationPresent : 1; + unsigned terminalAliasPatternPresent : 1; + unsigned supportedPrefixesPresent : 1; + unsigned usageSpecPresent : 1; + unsigned featureServerAliasPresent : 1; + unsigned capacityReportingSpecPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225TransportAddress callSignalAddress; + H225_SeqOfH225AliasAddress terminalAlias; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225EndpointIdentifier endpointIdentifier; + H225_SeqOfH225AlternateGK alternateGatekeeper; + H225TimeToLive timeToLive; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1BOOL willRespondToIRR; + H225RegistrationConfirm_preGrantedARQ preGrantedARQ; + ASN1BOOL maintainConnection; + H225_SeqOfH225ServiceControlSession serviceControl; + H225_SeqOfH225AddressPattern terminalAliasPattern; + H225_SeqOfH225SupportedPrefix supportedPrefixes; + H225_SeqOfH225RasUsageSpecification usageSpec; + H225AliasAddress featureServerAlias; + H225CapacityReportingSpecification capacityReportingSpec; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225RegistrationConfirm; + +EXTERN int asn1PE_H225RegistrationConfirm (OOCTXT* pctxt, H225RegistrationConfirm* pvalue); + +EXTERN int asn1PD_H225RegistrationConfirm (OOCTXT* pctxt, H225RegistrationConfirm* pvalue); + +/**************************************************************/ +/* */ +/* RegistrationRejectReason_invalidTerminalAliases */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RegistrationRejectReason_invalidTerminalAliases { + struct { + unsigned terminalAliasPresent : 1; + unsigned terminalAliasPatternPresent : 1; + unsigned supportedPrefixesPresent : 1; + } m; + H225_SeqOfH225AliasAddress terminalAlias; + H225_SeqOfH225AddressPattern terminalAliasPattern; + H225_SeqOfH225SupportedPrefix supportedPrefixes; +} H225RegistrationRejectReason_invalidTerminalAliases; + +EXTERN int asn1PE_H225RegistrationRejectReason_invalidTerminalAliases (OOCTXT* pctxt, H225RegistrationRejectReason_invalidTerminalAliases* pvalue); + +EXTERN int asn1PD_H225RegistrationRejectReason_invalidTerminalAliases (OOCTXT* pctxt, H225RegistrationRejectReason_invalidTerminalAliases* pvalue); + +/**************************************************************/ +/* */ +/* RegistrationRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225RegistrationRejectReason_discoveryRequired 1 +#define T_H225RegistrationRejectReason_invalidRevision 2 +#define T_H225RegistrationRejectReason_invalidCallSignalAddress 3 +#define T_H225RegistrationRejectReason_invalidRASAddress 4 +#define T_H225RegistrationRejectReason_duplicateAlias 5 +#define T_H225RegistrationRejectReason_invalidTerminalType 6 +#define T_H225RegistrationRejectReason_undefinedReason 7 +#define T_H225RegistrationRejectReason_transportNotSupported 8 +#define T_H225RegistrationRejectReason_transportQOSNotSupported 9 +#define T_H225RegistrationRejectReason_resourceUnavailable 10 +#define T_H225RegistrationRejectReason_invalidAlias 11 +#define T_H225RegistrationRejectReason_securityDenial 12 +#define T_H225RegistrationRejectReason_fullRegistrationRequired 13 +#define T_H225RegistrationRejectReason_additiveRegistrationNotSupported 14 +#define T_H225RegistrationRejectReason_invalidTerminalAliases 15 +#define T_H225RegistrationRejectReason_genericDataReason 16 +#define T_H225RegistrationRejectReason_neededFeatureNotSupported 17 +#define T_H225RegistrationRejectReason_securityError 18 +#define T_H225RegistrationRejectReason_extElem1 19 + +typedef struct EXTERN H225RegistrationRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + H225_SeqOfH225AliasAddress *duplicateAlias; + /* t = 6 */ + /* t = 7 */ + /* t = 8 */ + /* t = 9 */ + /* t = 10 */ + /* t = 11 */ + /* t = 12 */ + /* t = 13 */ + /* t = 14 */ + /* t = 15 */ + H225RegistrationRejectReason_invalidTerminalAliases *invalidTerminalAliases; + /* t = 16 */ + /* t = 17 */ + /* t = 18 */ + H225SecurityErrors *securityError; + /* t = 19 */ + } u; +} H225RegistrationRejectReason; + +EXTERN int asn1PE_H225RegistrationRejectReason (OOCTXT* pctxt, H225RegistrationRejectReason* pvalue); + +EXTERN int asn1PD_H225RegistrationRejectReason (OOCTXT* pctxt, H225RegistrationRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* RegistrationReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RegistrationReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225RegistrationRejectReason rejectReason; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225RegistrationReject; + +EXTERN int asn1PE_H225RegistrationReject (OOCTXT* pctxt, H225RegistrationReject* pvalue); + +EXTERN int asn1PD_H225RegistrationReject (OOCTXT* pctxt, H225RegistrationReject* pvalue); + +/**************************************************************/ +/* */ +/* UnregRequestReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225UnregRequestReason_reregistrationRequired 1 +#define T_H225UnregRequestReason_ttlExpired 2 +#define T_H225UnregRequestReason_securityDenial 3 +#define T_H225UnregRequestReason_undefinedReason 4 +#define T_H225UnregRequestReason_maintenance 5 +#define T_H225UnregRequestReason_securityError 6 +#define T_H225UnregRequestReason_extElem1 7 + +typedef struct EXTERN H225UnregRequestReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + H225SecurityErrors2 *securityError; + /* t = 7 */ + } u; +} H225UnregRequestReason; + +EXTERN int asn1PE_H225UnregRequestReason (OOCTXT* pctxt, H225UnregRequestReason* pvalue); + +EXTERN int asn1PD_H225UnregRequestReason (OOCTXT* pctxt, H225UnregRequestReason* pvalue); + +/**************************************************************/ +/* */ +/* UnregistrationRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225UnregistrationRequest { + struct { + unsigned endpointAliasPresent : 1; + unsigned nonStandardDataPresent : 1; + unsigned endpointIdentifierPresent : 1; + unsigned alternateEndpointsPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned reasonPresent : 1; + unsigned endpointAliasPatternPresent : 1; + unsigned supportedPrefixesPresent : 1; + unsigned alternateGatekeeperPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225_SeqOfH225TransportAddress callSignalAddress; + H225_SeqOfH225AliasAddress endpointAlias; + H225NonStandardParameter nonStandardData; + H225EndpointIdentifier endpointIdentifier; + H225_SeqOfH225Endpoint alternateEndpoints; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225UnregRequestReason reason; + H225_SeqOfH225AddressPattern endpointAliasPattern; + H225_SeqOfH225SupportedPrefix supportedPrefixes; + H225_SeqOfH225AlternateGK alternateGatekeeper; + H225_SeqOfH225GenericData genericData; +} H225UnregistrationRequest; + +EXTERN int asn1PE_H225UnregistrationRequest (OOCTXT* pctxt, H225UnregistrationRequest* pvalue); + +EXTERN int asn1PD_H225UnregistrationRequest (OOCTXT* pctxt, H225UnregistrationRequest* pvalue); + +/**************************************************************/ +/* */ +/* UnregistrationConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225UnregistrationConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225_SeqOfH225GenericData genericData; +} H225UnregistrationConfirm; + +EXTERN int asn1PE_H225UnregistrationConfirm (OOCTXT* pctxt, H225UnregistrationConfirm* pvalue); + +EXTERN int asn1PD_H225UnregistrationConfirm (OOCTXT* pctxt, H225UnregistrationConfirm* pvalue); + +/**************************************************************/ +/* */ +/* UnregRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225UnregRejectReason_notCurrentlyRegistered 1 +#define T_H225UnregRejectReason_callInProgress 2 +#define T_H225UnregRejectReason_undefinedReason 3 +#define T_H225UnregRejectReason_permissionDenied 4 +#define T_H225UnregRejectReason_securityDenial 5 +#define T_H225UnregRejectReason_securityError 6 +#define T_H225UnregRejectReason_extElem1 7 + +typedef struct EXTERN H225UnregRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + H225SecurityErrors2 *securityError; + /* t = 7 */ + } u; +} H225UnregRejectReason; + +EXTERN int asn1PE_H225UnregRejectReason (OOCTXT* pctxt, H225UnregRejectReason* pvalue); + +EXTERN int asn1PD_H225UnregRejectReason (OOCTXT* pctxt, H225UnregRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* UnregistrationReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225UnregistrationReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225UnregRejectReason rejectReason; + H225NonStandardParameter nonStandardData; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225_SeqOfH225GenericData genericData; +} H225UnregistrationReject; + +EXTERN int asn1PE_H225UnregistrationReject (OOCTXT* pctxt, H225UnregistrationReject* pvalue); + +EXTERN int asn1PD_H225UnregistrationReject (OOCTXT* pctxt, H225UnregistrationReject* pvalue); + +/**************************************************************/ +/* */ +/* CallModel */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225CallModel_direct 1 +#define T_H225CallModel_gatekeeperRouted 2 +#define T_H225CallModel_extElem1 3 + +typedef struct EXTERN H225CallModel { + int t; +} H225CallModel; + +EXTERN int asn1PE_H225CallModel (OOCTXT* pctxt, H225CallModel* pvalue); + +EXTERN int asn1PD_H225CallModel (OOCTXT* pctxt, H225CallModel* pvalue); + +/**************************************************************/ +/* */ +/* TransportQOS */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225TransportQOS_endpointControlled 1 +#define T_H225TransportQOS_gatekeeperControlled 2 +#define T_H225TransportQOS_noControl 3 +#define T_H225TransportQOS_extElem1 4 + +typedef struct EXTERN H225TransportQOS { + int t; +} H225TransportQOS; + +EXTERN int asn1PE_H225TransportQOS (OOCTXT* pctxt, H225TransportQOS* pvalue); + +EXTERN int asn1PD_H225TransportQOS (OOCTXT* pctxt, H225TransportQOS* pvalue); + +/**************************************************************/ +/* */ +/* AdmissionRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AdmissionRequest { + struct { + unsigned callModelPresent : 1; + unsigned destinationInfoPresent : 1; + unsigned destCallSignalAddressPresent : 1; + unsigned destExtraCallInfoPresent : 1; + unsigned srcCallSignalAddressPresent : 1; + unsigned nonStandardDataPresent : 1; + unsigned callServicesPresent : 1; + unsigned canMapAliasPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned srcAlternativesPresent : 1; + unsigned destAlternativesPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned transportQOSPresent : 1; + unsigned willSupplyUUIEsPresent : 1; + unsigned callLinkagePresent : 1; + unsigned gatewayDataRatePresent : 1; + unsigned capacityPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned desiredProtocolsPresent : 1; + unsigned desiredTunnelledProtocolPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + unsigned canMapSrcAliasPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225CallType callType; + H225CallModel callModel; + H225EndpointIdentifier endpointIdentifier; + H225_SeqOfH225AliasAddress destinationInfo; + H225TransportAddress destCallSignalAddress; + H225_SeqOfH225AliasAddress destExtraCallInfo; + H225_SeqOfH225AliasAddress srcInfo; + H225TransportAddress srcCallSignalAddress; + H225BandWidth bandWidth; + H225CallReferenceValue callReferenceValue; + H225NonStandardParameter nonStandardData; + H225QseriesOptions callServices; + H225ConferenceIdentifier conferenceID; + ASN1BOOL activeMC; + ASN1BOOL answerCall; + ASN1BOOL canMapAlias; + H225CallIdentifier callIdentifier; + H225_SeqOfH225Endpoint srcAlternatives; + H225_SeqOfH225Endpoint destAlternatives; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225TransportQOS transportQOS; + ASN1BOOL willSupplyUUIEs; + H225CallLinkage callLinkage; + H225DataRate gatewayDataRate; + H225CallCapacity capacity; + H225CircuitInfo circuitInfo; + H225_SeqOfH225SupportedProtocols desiredProtocols; + H225TunnelledProtocol desiredTunnelledProtocol; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; + ASN1BOOL canMapSrcAlias; +} H225AdmissionRequest; + +EXTERN int asn1PE_H225AdmissionRequest (OOCTXT* pctxt, H225AdmissionRequest* pvalue); + +EXTERN int asn1PD_H225AdmissionRequest (OOCTXT* pctxt, H225AdmissionRequest* pvalue); + +/**************************************************************/ +/* */ +/* UUIEsRequested */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225UUIEsRequested { + struct { + unsigned statusPresent : 1; + unsigned statusInquiryPresent : 1; + unsigned setupAcknowledgePresent : 1; + unsigned notifyPresent : 1; + } m; + ASN1BOOL setup; + ASN1BOOL callProceeding; + ASN1BOOL connect; + ASN1BOOL alerting; + ASN1BOOL information; + ASN1BOOL releaseComplete; + ASN1BOOL facility; + ASN1BOOL progress; + ASN1BOOL empty; + ASN1BOOL status; + ASN1BOOL statusInquiry; + ASN1BOOL setupAcknowledge; + ASN1BOOL notify; +} H225UUIEsRequested; + +EXTERN int asn1PE_H225UUIEsRequested (OOCTXT* pctxt, H225UUIEsRequested* pvalue); + +EXTERN int asn1PD_H225UUIEsRequested (OOCTXT* pctxt, H225UUIEsRequested* pvalue); + +/**************************************************************/ +/* */ +/* AdmissionConfirm_language */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AdmissionConfirm_language { + ASN1UINT n; + ASN1IA5String *elem; +} H225AdmissionConfirm_language; + +EXTERN int asn1PE_H225AdmissionConfirm_language (OOCTXT* pctxt, H225AdmissionConfirm_language* pvalue); + +EXTERN int asn1PD_H225AdmissionConfirm_language (OOCTXT* pctxt, H225AdmissionConfirm_language* pvalue); + +/**************************************************************/ +/* */ +/* AdmissionConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AdmissionConfirm { + struct { + unsigned irrFrequencyPresent : 1; + unsigned nonStandardDataPresent : 1; + unsigned destinationInfoPresent : 1; + unsigned destExtraCallInfoPresent : 1; + unsigned destinationTypePresent : 1; + unsigned remoteExtensionAddressPresent : 1; + unsigned alternateEndpointsPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned transportQOSPresent : 1; + unsigned willRespondToIRRPresent : 1; + unsigned uuiesRequestedPresent : 1; + unsigned languagePresent : 1; + unsigned alternateTransportAddressesPresent : 1; + unsigned useSpecifiedTransportPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned usageSpecPresent : 1; + unsigned supportedProtocolsPresent : 1; + unsigned serviceControlPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + unsigned modifiedSrcInfoPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225BandWidth bandWidth; + H225CallModel callModel; + H225TransportAddress destCallSignalAddress; + ASN1USINT irrFrequency; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225AliasAddress destinationInfo; + H225_SeqOfH225AliasAddress destExtraCallInfo; + H225EndpointType destinationType; + H225_SeqOfH225AliasAddress remoteExtensionAddress; + H225_SeqOfH225Endpoint alternateEndpoints; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225TransportQOS transportQOS; + ASN1BOOL willRespondToIRR; + H225UUIEsRequested uuiesRequested; + H225AdmissionConfirm_language language; + H225AlternateTransportAddresses alternateTransportAddresses; + H225UseSpecifiedTransport useSpecifiedTransport; + H225CircuitInfo circuitInfo; + H225_SeqOfH225RasUsageSpecification usageSpec; + H225_SeqOfH225SupportedProtocols supportedProtocols; + H225_SeqOfH225ServiceControlSession serviceControl; + ASN1BOOL multipleCalls; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; + H225_SeqOfH225AliasAddress modifiedSrcInfo; +} H225AdmissionConfirm; + +EXTERN int asn1PE_H225AdmissionConfirm (OOCTXT* pctxt, H225AdmissionConfirm* pvalue); + +EXTERN int asn1PD_H225AdmissionConfirm (OOCTXT* pctxt, H225AdmissionConfirm* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225PartyNumber */ +/* */ +/**************************************************************/ + +/* List of H225PartyNumber */ +typedef DList H225_SeqOfH225PartyNumber; + +EXTERN int asn1PE_H225_SeqOfH225PartyNumber (OOCTXT* pctxt, H225_SeqOfH225PartyNumber* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225PartyNumber (OOCTXT* pctxt, H225_SeqOfH225PartyNumber* pvalue); + +/**************************************************************/ +/* */ +/* AdmissionRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225AdmissionRejectReason_calledPartyNotRegistered 1 +#define T_H225AdmissionRejectReason_invalidPermission 2 +#define T_H225AdmissionRejectReason_requestDenied 3 +#define T_H225AdmissionRejectReason_undefinedReason 4 +#define T_H225AdmissionRejectReason_callerNotRegistered 5 +#define T_H225AdmissionRejectReason_routeCallToGatekeeper 6 +#define T_H225AdmissionRejectReason_invalidEndpointIdentifier 7 +#define T_H225AdmissionRejectReason_resourceUnavailable 8 +#define T_H225AdmissionRejectReason_securityDenial 9 +#define T_H225AdmissionRejectReason_qosControlNotSupported 10 +#define T_H225AdmissionRejectReason_incompleteAddress 11 +#define T_H225AdmissionRejectReason_aliasesInconsistent 12 +#define T_H225AdmissionRejectReason_routeCallToSCN 13 +#define T_H225AdmissionRejectReason_exceedsCallCapacity 14 +#define T_H225AdmissionRejectReason_collectDestination 15 +#define T_H225AdmissionRejectReason_collectPIN 16 +#define T_H225AdmissionRejectReason_genericDataReason 17 +#define T_H225AdmissionRejectReason_neededFeatureNotSupported 18 +#define T_H225AdmissionRejectReason_securityErrors 19 +#define T_H225AdmissionRejectReason_securityDHmismatch 20 +#define T_H225AdmissionRejectReason_noRouteToDestination 21 +#define T_H225AdmissionRejectReason_unallocatedNumber 22 +#define T_H225AdmissionRejectReason_extElem1 23 + +typedef struct EXTERN H225AdmissionRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + /* t = 7 */ + /* t = 8 */ + /* t = 9 */ + /* t = 10 */ + /* t = 11 */ + /* t = 12 */ + /* t = 13 */ + H225_SeqOfH225PartyNumber *routeCallToSCN; + /* t = 14 */ + /* t = 15 */ + /* t = 16 */ + /* t = 17 */ + /* t = 18 */ + /* t = 19 */ + H225SecurityErrors2 *securityErrors; + /* t = 20 */ + /* t = 21 */ + /* t = 22 */ + /* t = 23 */ + } u; +} H225AdmissionRejectReason; + +EXTERN int asn1PE_H225AdmissionRejectReason (OOCTXT* pctxt, H225AdmissionRejectReason* pvalue); + +EXTERN int asn1PD_H225AdmissionRejectReason (OOCTXT* pctxt, H225AdmissionRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* AdmissionReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225AdmissionReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned callSignalAddressPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned serviceControlPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225AdmissionRejectReason rejectReason; + H225NonStandardParameter nonStandardData; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225_SeqOfH225TransportAddress callSignalAddress; + H225ICV integrityCheckValue; + H225_SeqOfH225ServiceControlSession serviceControl; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225AdmissionReject; + +EXTERN int asn1PE_H225AdmissionReject (OOCTXT* pctxt, H225AdmissionReject* pvalue); + +EXTERN int asn1PD_H225AdmissionReject (OOCTXT* pctxt, H225AdmissionReject* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225BandwidthDetails */ +/* */ +/**************************************************************/ + +/* List of H225BandwidthDetails */ +typedef DList H225_SeqOfH225BandwidthDetails; + +EXTERN int asn1PE_H225_SeqOfH225BandwidthDetails (OOCTXT* pctxt, H225_SeqOfH225BandwidthDetails* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225BandwidthDetails (OOCTXT* pctxt, H225_SeqOfH225BandwidthDetails* pvalue); + +/**************************************************************/ +/* */ +/* BandwidthRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225BandwidthRequest { + struct { + unsigned callTypePresent : 1; + unsigned nonStandardDataPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned answeredCallPresent : 1; + unsigned callLinkagePresent : 1; + unsigned capacityPresent : 1; + unsigned usageInformationPresent : 1; + unsigned bandwidthDetailsPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225EndpointIdentifier endpointIdentifier; + H225ConferenceIdentifier conferenceID; + H225CallReferenceValue callReferenceValue; + H225CallType callType; + H225BandWidth bandWidth; + H225NonStandardParameter nonStandardData; + H225CallIdentifier callIdentifier; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1BOOL answeredCall; + H225CallLinkage callLinkage; + H225CallCapacity capacity; + H225RasUsageInformation usageInformation; + H225_SeqOfH225BandwidthDetails bandwidthDetails; + H225_SeqOfH225GenericData genericData; +} H225BandwidthRequest; + +EXTERN int asn1PE_H225BandwidthRequest (OOCTXT* pctxt, H225BandwidthRequest* pvalue); + +EXTERN int asn1PD_H225BandwidthRequest (OOCTXT* pctxt, H225BandwidthRequest* pvalue); + +/**************************************************************/ +/* */ +/* BandwidthConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225BandwidthConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned capacityPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225BandWidth bandWidth; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225CallCapacity capacity; + H225_SeqOfH225GenericData genericData; +} H225BandwidthConfirm; + +EXTERN int asn1PE_H225BandwidthConfirm (OOCTXT* pctxt, H225BandwidthConfirm* pvalue); + +EXTERN int asn1PD_H225BandwidthConfirm (OOCTXT* pctxt, H225BandwidthConfirm* pvalue); + +/**************************************************************/ +/* */ +/* BandRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225BandRejectReason_notBound 1 +#define T_H225BandRejectReason_invalidConferenceID 2 +#define T_H225BandRejectReason_invalidPermission 3 +#define T_H225BandRejectReason_insufficientResources 4 +#define T_H225BandRejectReason_invalidRevision 5 +#define T_H225BandRejectReason_undefinedReason 6 +#define T_H225BandRejectReason_securityDenial 7 +#define T_H225BandRejectReason_securityError 8 +#define T_H225BandRejectReason_extElem1 9 + +typedef struct EXTERN H225BandRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + /* t = 7 */ + /* t = 8 */ + H225SecurityErrors2 *securityError; + /* t = 9 */ + } u; +} H225BandRejectReason; + +EXTERN int asn1PE_H225BandRejectReason (OOCTXT* pctxt, H225BandRejectReason* pvalue); + +EXTERN int asn1PD_H225BandRejectReason (OOCTXT* pctxt, H225BandRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* BandwidthReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225BandwidthReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225BandRejectReason rejectReason; + H225BandWidth allowedBandWidth; + H225NonStandardParameter nonStandardData; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225_SeqOfH225GenericData genericData; +} H225BandwidthReject; + +EXTERN int asn1PE_H225BandwidthReject (OOCTXT* pctxt, H225BandwidthReject* pvalue); + +EXTERN int asn1PD_H225BandwidthReject (OOCTXT* pctxt, H225BandwidthReject* pvalue); + +/**************************************************************/ +/* */ +/* DisengageReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225DisengageReason_forcedDrop 1 +#define T_H225DisengageReason_normalDrop 2 +#define T_H225DisengageReason_undefinedReason 3 +#define T_H225DisengageReason_extElem1 4 + +typedef struct EXTERN H225DisengageReason { + int t; +} H225DisengageReason; + +EXTERN int asn1PE_H225DisengageReason (OOCTXT* pctxt, H225DisengageReason* pvalue); + +EXTERN int asn1PD_H225DisengageReason (OOCTXT* pctxt, H225DisengageReason* pvalue); + +/**************************************************************/ +/* */ +/* DisengageRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225DisengageRequest { + struct { + unsigned nonStandardDataPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned answeredCallPresent : 1; + unsigned callLinkagePresent : 1; + unsigned capacityPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned usageInformationPresent : 1; + unsigned terminationCausePresent : 1; + unsigned serviceControlPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225EndpointIdentifier endpointIdentifier; + H225ConferenceIdentifier conferenceID; + H225CallReferenceValue callReferenceValue; + H225DisengageReason disengageReason; + H225NonStandardParameter nonStandardData; + H225CallIdentifier callIdentifier; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1BOOL answeredCall; + H225CallLinkage callLinkage; + H225CallCapacity capacity; + H225CircuitInfo circuitInfo; + H225RasUsageInformation usageInformation; + H225CallTerminationCause terminationCause; + H225_SeqOfH225ServiceControlSession serviceControl; + H225_SeqOfH225GenericData genericData; +} H225DisengageRequest; + +EXTERN int asn1PE_H225DisengageRequest (OOCTXT* pctxt, H225DisengageRequest* pvalue); + +EXTERN int asn1PD_H225DisengageRequest (OOCTXT* pctxt, H225DisengageRequest* pvalue); + +/**************************************************************/ +/* */ +/* DisengageConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225DisengageConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned capacityPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned usageInformationPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225CallCapacity capacity; + H225CircuitInfo circuitInfo; + H225RasUsageInformation usageInformation; + H225_SeqOfH225GenericData genericData; +} H225DisengageConfirm; + +EXTERN int asn1PE_H225DisengageConfirm (OOCTXT* pctxt, H225DisengageConfirm* pvalue); + +EXTERN int asn1PD_H225DisengageConfirm (OOCTXT* pctxt, H225DisengageConfirm* pvalue); + +/**************************************************************/ +/* */ +/* DisengageRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225DisengageRejectReason_notRegistered 1 +#define T_H225DisengageRejectReason_requestToDropOther 2 +#define T_H225DisengageRejectReason_securityDenial 3 +#define T_H225DisengageRejectReason_securityError 4 +#define T_H225DisengageRejectReason_extElem1 5 + +typedef struct EXTERN H225DisengageRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + H225SecurityErrors2 *securityError; + /* t = 5 */ + } u; +} H225DisengageRejectReason; + +EXTERN int asn1PE_H225DisengageRejectReason (OOCTXT* pctxt, H225DisengageRejectReason* pvalue); + +EXTERN int asn1PD_H225DisengageRejectReason (OOCTXT* pctxt, H225DisengageRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* DisengageReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225DisengageReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225DisengageRejectReason rejectReason; + H225NonStandardParameter nonStandardData; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225_SeqOfH225GenericData genericData; +} H225DisengageReject; + +EXTERN int asn1PE_H225DisengageReject (OOCTXT* pctxt, H225DisengageReject* pvalue); + +EXTERN int asn1PD_H225DisengageReject (OOCTXT* pctxt, H225DisengageReject* pvalue); + +/**************************************************************/ +/* */ +/* LocationRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225LocationRequest { + struct { + unsigned endpointIdentifierPresent : 1; + unsigned nonStandardDataPresent : 1; + unsigned sourceInfoPresent : 1; + unsigned canMapAliasPresent : 1; + unsigned gatekeeperIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned desiredProtocolsPresent : 1; + unsigned desiredTunnelledProtocolPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + unsigned hopCountPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned bandWidthPresent : 1; + unsigned sourceEndpointInfoPresent : 1; + unsigned canMapSrcAliasPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225EndpointIdentifier endpointIdentifier; + H225_SeqOfH225AliasAddress destinationInfo; + H225NonStandardParameter nonStandardData; + H225TransportAddress replyAddress; + H225_SeqOfH225AliasAddress sourceInfo; + ASN1BOOL canMapAlias; + H225GatekeeperIdentifier gatekeeperIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225_SeqOfH225SupportedProtocols desiredProtocols; + H225TunnelledProtocol desiredTunnelledProtocol; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; + ASN1UINT8 hopCount; + H225CircuitInfo circuitInfo; + H225CallIdentifier callIdentifier; + H225BandWidth bandWidth; + H225_SeqOfH225AliasAddress sourceEndpointInfo; + ASN1BOOL canMapSrcAlias; +} H225LocationRequest; + +EXTERN int asn1PE_H225LocationRequest (OOCTXT* pctxt, H225LocationRequest* pvalue); + +EXTERN int asn1PD_H225LocationRequest (OOCTXT* pctxt, H225LocationRequest* pvalue); + +/**************************************************************/ +/* */ +/* LocationConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225LocationConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned destinationInfoPresent : 1; + unsigned destExtraCallInfoPresent : 1; + unsigned destinationTypePresent : 1; + unsigned remoteExtensionAddressPresent : 1; + unsigned alternateEndpointsPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned alternateTransportAddressesPresent : 1; + unsigned supportedProtocolsPresent : 1; + unsigned multipleCallsPresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + unsigned circuitInfoPresent : 1; + unsigned serviceControlPresent : 1; + unsigned modifiedSrcInfoPresent : 1; + unsigned bandWidthPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225TransportAddress callSignalAddress; + H225TransportAddress rasAddress; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225AliasAddress destinationInfo; + H225_SeqOfH225AliasAddress destExtraCallInfo; + H225EndpointType destinationType; + H225_SeqOfH225AliasAddress remoteExtensionAddress; + H225_SeqOfH225Endpoint alternateEndpoints; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225AlternateTransportAddresses alternateTransportAddresses; + H225_SeqOfH225SupportedProtocols supportedProtocols; + ASN1BOOL multipleCalls; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; + H225CircuitInfo circuitInfo; + H225_SeqOfH225ServiceControlSession serviceControl; + H225_SeqOfH225AliasAddress modifiedSrcInfo; + H225BandWidth bandWidth; +} H225LocationConfirm; + +EXTERN int asn1PE_H225LocationConfirm (OOCTXT* pctxt, H225LocationConfirm* pvalue); + +EXTERN int asn1PD_H225LocationConfirm (OOCTXT* pctxt, H225LocationConfirm* pvalue); + +/**************************************************************/ +/* */ +/* LocationRejectReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225LocationRejectReason_notRegistered 1 +#define T_H225LocationRejectReason_invalidPermission 2 +#define T_H225LocationRejectReason_requestDenied 3 +#define T_H225LocationRejectReason_undefinedReason 4 +#define T_H225LocationRejectReason_securityDenial 5 +#define T_H225LocationRejectReason_aliasesInconsistent 6 +#define T_H225LocationRejectReason_routeCalltoSCN 7 +#define T_H225LocationRejectReason_resourceUnavailable 8 +#define T_H225LocationRejectReason_genericDataReason 9 +#define T_H225LocationRejectReason_neededFeatureNotSupported 10 +#define T_H225LocationRejectReason_hopCountExceeded 11 +#define T_H225LocationRejectReason_incompleteAddress 12 +#define T_H225LocationRejectReason_securityError 13 +#define T_H225LocationRejectReason_securityDHmismatch 14 +#define T_H225LocationRejectReason_noRouteToDestination 15 +#define T_H225LocationRejectReason_unallocatedNumber 16 +#define T_H225LocationRejectReason_extElem1 17 + +typedef struct EXTERN H225LocationRejectReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + /* t = 5 */ + /* t = 6 */ + /* t = 7 */ + H225_SeqOfH225PartyNumber *routeCalltoSCN; + /* t = 8 */ + /* t = 9 */ + /* t = 10 */ + /* t = 11 */ + /* t = 12 */ + /* t = 13 */ + H225SecurityErrors2 *securityError; + /* t = 14 */ + /* t = 15 */ + /* t = 16 */ + /* t = 17 */ + } u; +} H225LocationRejectReason; + +EXTERN int asn1PE_H225LocationRejectReason (OOCTXT* pctxt, H225LocationRejectReason* pvalue); + +EXTERN int asn1PD_H225LocationRejectReason (OOCTXT* pctxt, H225LocationRejectReason* pvalue); + +/**************************************************************/ +/* */ +/* LocationReject */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225LocationReject { + struct { + unsigned nonStandardDataPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + unsigned serviceControlPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225LocationRejectReason rejectReason; + H225NonStandardParameter nonStandardData; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; + H225_SeqOfH225ServiceControlSession serviceControl; +} H225LocationReject; + +EXTERN int asn1PE_H225LocationReject (OOCTXT* pctxt, H225LocationReject* pvalue); + +EXTERN int asn1PD_H225LocationReject (OOCTXT* pctxt, H225LocationReject* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequest */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225InfoRequest { + struct { + unsigned nonStandardDataPresent : 1; + unsigned replyAddressPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned uuiesRequestedPresent : 1; + unsigned callLinkagePresent : 1; + unsigned usageInfoRequestedPresent : 1; + unsigned segmentedResponseSupportedPresent : 1; + unsigned nextSegmentRequestedPresent : 1; + unsigned capacityInfoRequestedPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225CallReferenceValue callReferenceValue; + H225NonStandardParameter nonStandardData; + H225TransportAddress replyAddress; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225UUIEsRequested uuiesRequested; + H225CallLinkage callLinkage; + H225RasUsageInfoTypes usageInfoRequested; + ASN1USINT nextSegmentRequested; + H225_SeqOfH225GenericData genericData; +} H225InfoRequest; + +EXTERN int asn1PE_H225InfoRequest (OOCTXT* pctxt, H225InfoRequest* pvalue); + +EXTERN int asn1PD_H225InfoRequest (OOCTXT* pctxt, H225InfoRequest* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225RTPSession */ +/* */ +/**************************************************************/ + +/* List of H225RTPSession */ +typedef DList H225_SeqOfH225RTPSession; + +EXTERN int asn1PE_H225_SeqOfH225RTPSession (OOCTXT* pctxt, H225_SeqOfH225RTPSession* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225RTPSession (OOCTXT* pctxt, H225_SeqOfH225RTPSession* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225TransportChannelInfo */ +/* */ +/**************************************************************/ + +/* List of H225TransportChannelInfo */ +typedef DList H225_SeqOfH225TransportChannelInfo; + +EXTERN int asn1PE_H225_SeqOfH225TransportChannelInfo (OOCTXT* pctxt, H225_SeqOfH225TransportChannelInfo* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225TransportChannelInfo (OOCTXT* pctxt, H225_SeqOfH225TransportChannelInfo* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225ConferenceIdentifier */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225_SeqOfH225ConferenceIdentifier { + ASN1UINT n; + H225ConferenceIdentifier *elem; +} H225_SeqOfH225ConferenceIdentifier; + +EXTERN int asn1PE_H225_SeqOfH225ConferenceIdentifier (OOCTXT* pctxt, H225_SeqOfH225ConferenceIdentifier* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225ConferenceIdentifier (OOCTXT* pctxt, H225_SeqOfH225ConferenceIdentifier* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestResponse_perCallInfo_element_pdu_element */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225InfoRequestResponse_perCallInfo_element_pdu_element { + H225H323_UU_PDU h323pdu; + ASN1BOOL sent; +} H225InfoRequestResponse_perCallInfo_element_pdu_element; + +EXTERN int asn1PE_H225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue); + +EXTERN int asn1PD_H225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_el */ +/* */ +/**************************************************************/ + +/* List of H225InfoRequestResponse_perCallInfo_element_pdu_element */ +typedef DList H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element; + +EXTERN int asn1PE_H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestResponse_perCallInfo_element */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225InfoRequestResponse_perCallInfo_element { + struct { + unsigned nonStandardDataPresent : 1; + unsigned originatorPresent : 1; + unsigned audioPresent : 1; + unsigned videoPresent : 1; + unsigned dataPresent : 1; + unsigned callIdentifierPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned substituteConfIDsPresent : 1; + unsigned pduPresent : 1; + unsigned callLinkagePresent : 1; + unsigned usageInformationPresent : 1; + unsigned circuitInfoPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225CallReferenceValue callReferenceValue; + H225ConferenceIdentifier conferenceID; + ASN1BOOL originator; + H225_SeqOfH225RTPSession audio; + H225_SeqOfH225RTPSession video; + H225_SeqOfH225TransportChannelInfo data; + H225TransportChannelInfo h245; + H225TransportChannelInfo callSignaling; + H225CallType callType; + H225BandWidth bandWidth; + H225CallModel callModel; + H225CallIdentifier callIdentifier; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225_SeqOfH225ConferenceIdentifier substituteConfIDs; + H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element pdu; + H225CallLinkage callLinkage; + H225RasUsageInformation usageInformation; + H225CircuitInfo circuitInfo; +} H225InfoRequestResponse_perCallInfo_element; + +EXTERN int asn1PE_H225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element* pvalue); + +EXTERN int asn1PD_H225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225InfoRequestResponse_perCallInfo_element */ +/* */ +/**************************************************************/ + +/* List of H225InfoRequestResponse_perCallInfo_element */ +typedef DList H225_SeqOfH225InfoRequestResponse_perCallInfo_element; + +EXTERN int asn1PE_H225_SeqOfH225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestResponseStatus */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225InfoRequestResponseStatus_complete 1 +#define T_H225InfoRequestResponseStatus_incomplete 2 +#define T_H225InfoRequestResponseStatus_segment 3 +#define T_H225InfoRequestResponseStatus_invalidCall 4 +#define T_H225InfoRequestResponseStatus_extElem1 5 + +typedef struct EXTERN H225InfoRequestResponseStatus { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + ASN1USINT segment; + /* t = 4 */ + /* t = 5 */ + } u; +} H225InfoRequestResponseStatus; + +EXTERN int asn1PE_H225InfoRequestResponseStatus (OOCTXT* pctxt, H225InfoRequestResponseStatus* pvalue); + +EXTERN int asn1PD_H225InfoRequestResponseStatus (OOCTXT* pctxt, H225InfoRequestResponseStatus* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestResponse */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225InfoRequestResponse { + struct { + unsigned nonStandardDataPresent : 1; + unsigned endpointAliasPresent : 1; + unsigned perCallInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned needResponsePresent : 1; + unsigned capacityPresent : 1; + unsigned irrStatusPresent : 1; + unsigned unsolicitedPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225NonStandardParameter nonStandardData; + H225RequestSeqNum requestSeqNum; + H225EndpointType endpointType; + H225EndpointIdentifier endpointIdentifier; + H225TransportAddress rasAddress; + H225_SeqOfH225TransportAddress callSignalAddress; + H225_SeqOfH225AliasAddress endpointAlias; + H225_SeqOfH225InfoRequestResponse_perCallInfo_element perCallInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1BOOL needResponse; + H225CallCapacity capacity; + H225InfoRequestResponseStatus irrStatus; + ASN1BOOL unsolicited; + H225_SeqOfH225GenericData genericData; +} H225InfoRequestResponse; + +EXTERN int asn1PE_H225InfoRequestResponse (OOCTXT* pctxt, H225InfoRequestResponse* pvalue); + +EXTERN int asn1PD_H225InfoRequestResponse (OOCTXT* pctxt, H225InfoRequestResponse* pvalue); + +/**************************************************************/ +/* */ +/* NonStandardMessage */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225NonStandardMessage { + struct { + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225NonStandardMessage; + +EXTERN int asn1PE_H225NonStandardMessage (OOCTXT* pctxt, H225NonStandardMessage* pvalue); + +EXTERN int asn1PD_H225NonStandardMessage (OOCTXT* pctxt, H225NonStandardMessage* pvalue); + +/**************************************************************/ +/* */ +/* UnknownMessageResponse */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225UnknownMessageResponse { + struct { + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned messageNotUnderstoodPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1DynOctStr messageNotUnderstood; +} H225UnknownMessageResponse; + +EXTERN int asn1PE_H225UnknownMessageResponse (OOCTXT* pctxt, H225UnknownMessageResponse* pvalue); + +EXTERN int asn1PD_H225UnknownMessageResponse (OOCTXT* pctxt, H225UnknownMessageResponse* pvalue); + +/**************************************************************/ +/* */ +/* RequestInProgress */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225RequestInProgress { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + ASN1USINT delay; +} H225RequestInProgress; + +EXTERN int asn1PE_H225RequestInProgress (OOCTXT* pctxt, H225RequestInProgress* pvalue); + +EXTERN int asn1PD_H225RequestInProgress (OOCTXT* pctxt, H225RequestInProgress* pvalue); + +/**************************************************************/ +/* */ +/* ResourcesAvailableIndicate */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ResourcesAvailableIndicate { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned capacityPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225EndpointIdentifier endpointIdentifier; + H225_SeqOfH225SupportedProtocols protocols; + ASN1BOOL almostOutOfResources; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225CallCapacity capacity; + H225_SeqOfH225GenericData genericData; +} H225ResourcesAvailableIndicate; + +EXTERN int asn1PE_H225ResourcesAvailableIndicate (OOCTXT* pctxt, H225ResourcesAvailableIndicate* pvalue); + +EXTERN int asn1PD_H225ResourcesAvailableIndicate (OOCTXT* pctxt, H225ResourcesAvailableIndicate* pvalue); + +/**************************************************************/ +/* */ +/* ResourcesAvailableConfirm */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ResourcesAvailableConfirm { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ProtocolIdentifier protocolIdentifier; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225_SeqOfH225GenericData genericData; +} H225ResourcesAvailableConfirm; + +EXTERN int asn1PE_H225ResourcesAvailableConfirm (OOCTXT* pctxt, H225ResourcesAvailableConfirm* pvalue); + +EXTERN int asn1PD_H225ResourcesAvailableConfirm (OOCTXT* pctxt, H225ResourcesAvailableConfirm* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestAck */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225InfoRequestAck { + struct { + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; +} H225InfoRequestAck; + +EXTERN int asn1PE_H225InfoRequestAck (OOCTXT* pctxt, H225InfoRequestAck* pvalue); + +EXTERN int asn1PD_H225InfoRequestAck (OOCTXT* pctxt, H225InfoRequestAck* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestNakReason */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225InfoRequestNakReason_notRegistered 1 +#define T_H225InfoRequestNakReason_securityDenial 2 +#define T_H225InfoRequestNakReason_undefinedReason 3 +#define T_H225InfoRequestNakReason_securityError 4 +#define T_H225InfoRequestNakReason_extElem1 5 + +typedef struct EXTERN H225InfoRequestNakReason { + int t; + union { + /* t = 1 */ + /* t = 2 */ + /* t = 3 */ + /* t = 4 */ + H225SecurityErrors2 *securityError; + /* t = 5 */ + } u; +} H225InfoRequestNakReason; + +EXTERN int asn1PE_H225InfoRequestNakReason (OOCTXT* pctxt, H225InfoRequestNakReason* pvalue); + +EXTERN int asn1PD_H225InfoRequestNakReason (OOCTXT* pctxt, H225InfoRequestNakReason* pvalue); + +/**************************************************************/ +/* */ +/* InfoRequestNak */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225InfoRequestNak { + struct { + unsigned nonStandardDataPresent : 1; + unsigned altGKInfoPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225InfoRequestNakReason nakReason; + H225AltGKInfo altGKInfo; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; +} H225InfoRequestNak; + +EXTERN int asn1PE_H225InfoRequestNak (OOCTXT* pctxt, H225InfoRequestNak* pvalue); + +EXTERN int asn1PD_H225InfoRequestNak (OOCTXT* pctxt, H225InfoRequestNak* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlIndication_callSpecific */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ServiceControlIndication_callSpecific { + H225CallIdentifier callIdentifier; + H225ConferenceIdentifier conferenceID; + ASN1BOOL answeredCall; +} H225ServiceControlIndication_callSpecific; + +EXTERN int asn1PE_H225ServiceControlIndication_callSpecific (OOCTXT* pctxt, H225ServiceControlIndication_callSpecific* pvalue); + +EXTERN int asn1PD_H225ServiceControlIndication_callSpecific (OOCTXT* pctxt, H225ServiceControlIndication_callSpecific* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlIndication */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ServiceControlIndication { + struct { + unsigned nonStandardDataPresent : 1; + unsigned endpointIdentifierPresent : 1; + unsigned callSpecificPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ServiceControlSession serviceControl; + H225EndpointIdentifier endpointIdentifier; + H225ServiceControlIndication_callSpecific callSpecific; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225ServiceControlIndication; + +EXTERN int asn1PE_H225ServiceControlIndication (OOCTXT* pctxt, H225ServiceControlIndication* pvalue); + +EXTERN int asn1PD_H225ServiceControlIndication (OOCTXT* pctxt, H225ServiceControlIndication* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlResponse_result */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225ServiceControlResponse_result_started 1 +#define T_H225ServiceControlResponse_result_failed 2 +#define T_H225ServiceControlResponse_result_stopped 3 +#define T_H225ServiceControlResponse_result_notAvailable 4 +#define T_H225ServiceControlResponse_result_neededFeatureNotSupported 5 +#define T_H225ServiceControlResponse_result_extElem1 6 + +typedef struct EXTERN H225ServiceControlResponse_result { + int t; +} H225ServiceControlResponse_result; + +EXTERN int asn1PE_H225ServiceControlResponse_result (OOCTXT* pctxt, H225ServiceControlResponse_result* pvalue); + +EXTERN int asn1PD_H225ServiceControlResponse_result (OOCTXT* pctxt, H225ServiceControlResponse_result* pvalue); + +/**************************************************************/ +/* */ +/* ServiceControlResponse */ +/* */ +/**************************************************************/ + +typedef struct EXTERN H225ServiceControlResponse { + struct { + unsigned resultPresent : 1; + unsigned nonStandardDataPresent : 1; + unsigned tokensPresent : 1; + unsigned cryptoTokensPresent : 1; + unsigned integrityCheckValuePresent : 1; + unsigned featureSetPresent : 1; + unsigned genericDataPresent : 1; + } m; + H225RequestSeqNum requestSeqNum; + H225ServiceControlResponse_result result; + H225NonStandardParameter nonStandardData; + H225_SeqOfH225ClearToken tokens; + H225_SeqOfH225CryptoH323Token cryptoTokens; + H225ICV integrityCheckValue; + H225FeatureSet featureSet; + H225_SeqOfH225GenericData genericData; +} H225ServiceControlResponse; + +EXTERN int asn1PE_H225ServiceControlResponse (OOCTXT* pctxt, H225ServiceControlResponse* pvalue); + +EXTERN int asn1PD_H225ServiceControlResponse (OOCTXT* pctxt, H225ServiceControlResponse* pvalue); + +/**************************************************************/ +/* */ +/* _SeqOfH225AdmissionConfirm */ +/* */ +/**************************************************************/ + +/* List of H225AdmissionConfirm */ +typedef DList H225_SeqOfH225AdmissionConfirm; + +EXTERN int asn1PE_H225_SeqOfH225AdmissionConfirm (OOCTXT* pctxt, H225_SeqOfH225AdmissionConfirm* pvalue); + +EXTERN int asn1PD_H225_SeqOfH225AdmissionConfirm (OOCTXT* pctxt, H225_SeqOfH225AdmissionConfirm* pvalue); + +/**************************************************************/ +/* */ +/* RasMessage */ +/* */ +/**************************************************************/ + +/* Choice tag constants */ + +#define T_H225RasMessage_gatekeeperRequest 1 +#define T_H225RasMessage_gatekeeperConfirm 2 +#define T_H225RasMessage_gatekeeperReject 3 +#define T_H225RasMessage_registrationRequest 4 +#define T_H225RasMessage_registrationConfirm 5 +#define T_H225RasMessage_registrationReject 6 +#define T_H225RasMessage_unregistrationRequest 7 +#define T_H225RasMessage_unregistrationConfirm 8 +#define T_H225RasMessage_unregistrationReject 9 +#define T_H225RasMessage_admissionRequest 10 +#define T_H225RasMessage_admissionConfirm 11 +#define T_H225RasMessage_admissionReject 12 +#define T_H225RasMessage_bandwidthRequest 13 +#define T_H225RasMessage_bandwidthConfirm 14 +#define T_H225RasMessage_bandwidthReject 15 +#define T_H225RasMessage_disengageRequest 16 +#define T_H225RasMessage_disengageConfirm 17 +#define T_H225RasMessage_disengageReject 18 +#define T_H225RasMessage_locationRequest 19 +#define T_H225RasMessage_locationConfirm 20 +#define T_H225RasMessage_locationReject 21 +#define T_H225RasMessage_infoRequest 22 +#define T_H225RasMessage_infoRequestResponse 23 +#define T_H225RasMessage_nonStandardMessage 24 +#define T_H225RasMessage_unknownMessageResponse 25 +#define T_H225RasMessage_requestInProgress 26 +#define T_H225RasMessage_resourcesAvailableIndicate 27 +#define T_H225RasMessage_resourcesAvailableConfirm 28 +#define T_H225RasMessage_infoRequestAck 29 +#define T_H225RasMessage_infoRequestNak 30 +#define T_H225RasMessage_serviceControlIndication 31 +#define T_H225RasMessage_serviceControlResponse 32 +#define T_H225RasMessage_admissionConfirmSequence 33 +#define T_H225RasMessage_extElem1 34 + +typedef struct EXTERN H225RasMessage { + int t; + union { + /* t = 1 */ + H225GatekeeperRequest *gatekeeperRequest; + /* t = 2 */ + H225GatekeeperConfirm *gatekeeperConfirm; + /* t = 3 */ + H225GatekeeperReject *gatekeeperReject; + /* t = 4 */ + H225RegistrationRequest *registrationRequest; + /* t = 5 */ + H225RegistrationConfirm *registrationConfirm; + /* t = 6 */ + H225RegistrationReject *registrationReject; + /* t = 7 */ + H225UnregistrationRequest *unregistrationRequest; + /* t = 8 */ + H225UnregistrationConfirm *unregistrationConfirm; + /* t = 9 */ + H225UnregistrationReject *unregistrationReject; + /* t = 10 */ + H225AdmissionRequest *admissionRequest; + /* t = 11 */ + H225AdmissionConfirm *admissionConfirm; + /* t = 12 */ + H225AdmissionReject *admissionReject; + /* t = 13 */ + H225BandwidthRequest *bandwidthRequest; + /* t = 14 */ + H225BandwidthConfirm *bandwidthConfirm; + /* t = 15 */ + H225BandwidthReject *bandwidthReject; + /* t = 16 */ + H225DisengageRequest *disengageRequest; + /* t = 17 */ + H225DisengageConfirm *disengageConfirm; + /* t = 18 */ + H225DisengageReject *disengageReject; + /* t = 19 */ + H225LocationRequest *locationRequest; + /* t = 20 */ + H225LocationConfirm *locationConfirm; + /* t = 21 */ + H225LocationReject *locationReject; + /* t = 22 */ + H225InfoRequest *infoRequest; + /* t = 23 */ + H225InfoRequestResponse *infoRequestResponse; + /* t = 24 */ + H225NonStandardMessage *nonStandardMessage; + /* t = 25 */ + H225UnknownMessageResponse *unknownMessageResponse; + /* t = 26 */ + H225RequestInProgress *requestInProgress; + /* t = 27 */ + H225ResourcesAvailableIndicate *resourcesAvailableIndicate; + /* t = 28 */ + H225ResourcesAvailableConfirm *resourcesAvailableConfirm; + /* t = 29 */ + H225InfoRequestAck *infoRequestAck; + /* t = 30 */ + H225InfoRequestNak *infoRequestNak; + /* t = 31 */ + H225ServiceControlIndication *serviceControlIndication; + /* t = 32 */ + H225ServiceControlResponse *serviceControlResponse; + /* t = 33 */ + H225_SeqOfH225AdmissionConfirm *admissionConfirmSequence; + /* t = 34 */ + } u; +} H225RasMessage; + +EXTERN int asn1PE_H225RasMessage (OOCTXT* pctxt, H225RasMessage* pvalue); + +EXTERN int asn1PD_H225RasMessage (OOCTXT* pctxt, H225RasMessage* pvalue); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/addons/ooh323c/src/h323/H323-MESSAGESDec.c b/addons/ooh323c/src/h323/H323-MESSAGESDec.c new file mode 100644 index 000000000..2f8700b66 --- /dev/null +++ b/addons/ooh323c/src/h323/H323-MESSAGESDec.c @@ -0,0 +1,27199 @@ +/* + * Copyright (C) 2004-2005 by Objective Systems, Inc. + * + * This software is furnished under an open source license and may be + * used and copied only in accordance with the terms of this license. + * The text of the license may generally be found in the root + * directory of this installation in the COPYING file. It + * can also be viewed online at the following URL: + * + * http://www.obj-sys.com/open/license.html + * + * Any redistributions of this file including modified versions must + * maintain this copyright notice. + * + *****************************************************************************/ + +#include "ooasn1.h" +#include "H323-MESSAGES.h" +#include "eventHandler.h" + +/**************************************************************/ +/* */ +/* ScreeningIndicator */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225ScreeningIndicator (OOCTXT* pctxt, H225ScreeningIndicator* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (extbit) { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + + *pvalue = ui; + } + else { + stat = decodeConsUnsigned (pctxt, &ui, 0, 3); + if (stat != ASN_OK) return stat; + + switch (ui) { + case 0: *pvalue = userProvidedNotScreened; break; + case 1: *pvalue = userProvidedVerifiedAndPassed; break; + case 2: *pvalue = userProvidedVerifiedAndFailed; break; + case 3: *pvalue = networkProvided; break; + default: return ASN_E_INVENUM; + } + } + invokeUIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* NumberDigits */ +/* */ +/**************************************************************/ + +extern EXTERN const char* gs_H323_MESSAGES_NumberDigits_CharSet; + +EXTERN int asn1PD_H225NumberDigits (OOCTXT* pctxt, H225NumberDigits* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeConstrainedStringEx (pctxt, pvalue, gs_H323_MESSAGES_NumberDigits_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TBCD_STRING */ +/* */ +/**************************************************************/ + +extern EXTERN const char* gs_H323_MESSAGES_TBCD_STRING_CharSet; + +EXTERN int asn1PD_H225TBCD_STRING (OOCTXT* pctxt, H225TBCD_STRING* pvalue) +{ + int stat = ASN_OK; + + stat = decodeConstrainedStringEx (pctxt, pvalue, gs_H323_MESSAGES_TBCD_STRING_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* GloballyUniqueID */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225GloballyUniqueID (OOCTXT* pctxt, H225GloballyUniqueID* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ConferenceIdentifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225ConferenceIdentifier (OOCTXT* pctxt, H225ConferenceIdentifier* pvalue) +{ + int stat = ASN_OK; + + stat = asn1PD_H225GloballyUniqueID (pctxt, pvalue); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* RequestSeqNum */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225RequestSeqNum (OOCTXT* pctxt, H225RequestSeqNum* pvalue) +{ + int stat = ASN_OK; + + stat = decodeConsUInt16 (pctxt, pvalue, 1U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* GatekeeperIdentifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225GatekeeperIdentifier (OOCTXT* pctxt, H225GatekeeperIdentifier* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBMPString (pctxt, pvalue, 0); + if (stat != ASN_OK) return stat; + invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* BandWidth */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225BandWidth (OOCTXT* pctxt, H225BandWidth* pvalue) +{ + int stat = ASN_OK; + + stat = decodeConsUnsigned (pctxt, pvalue, 0U, ASN1UINT_MAX); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* CallReferenceValue */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225CallReferenceValue (OOCTXT* pctxt, H225CallReferenceValue* pvalue) +{ + int stat = ASN_OK; + + stat = decodeConsUInt16 (pctxt, pvalue, 0U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* EndpointIdentifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225EndpointIdentifier (OOCTXT* pctxt, H225EndpointIdentifier* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBMPString (pctxt, pvalue, 0); + if (stat != ASN_OK) return stat; + invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ProtocolIdentifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225ProtocolIdentifier (OOCTXT* pctxt, H225ProtocolIdentifier* pvalue) +{ + int stat = ASN_OK; + + stat = decodeObjectIdentifier (pctxt, pvalue); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->numids, pvalue->subid); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TimeToLive */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TimeToLive (OOCTXT* pctxt, H225TimeToLive* pvalue) +{ + int stat = ASN_OK; + + stat = decodeConsUnsigned (pctxt, pvalue, 1U, ASN1UINT_MAX); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, *pvalue); + + return (stat); +} + +/**************************************************************/ +/* */ +/* H248PackagesDescriptor */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225H248PackagesDescriptor (OOCTXT* pctxt, H225H248PackagesDescriptor* pvalue) +{ + int stat = ASN_OK; + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)pvalue); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* H248SignalsDescriptor */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225H248SignalsDescriptor (OOCTXT* pctxt, H225H248SignalsDescriptor* pvalue) +{ + int stat = ASN_OK; + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)pvalue); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* GenericIdentifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225GenericIdentifier (OOCTXT* pctxt, H225GenericIdentifier* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 2); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* standard */ + case 0: + invokeStartElement (pctxt, "standard", -1); + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (extbit == 0) { + stat = decodeConsInteger (pctxt, &pvalue->u.standard, 0, 16383); + if (stat != ASN_OK) return stat; + } + else { + stat = decodeUnconsInteger (pctxt, &pvalue->u.standard); + if (stat != ASN_OK) return stat; + } + invokeIntValue (pctxt, pvalue->u.standard); + + invokeEndElement (pctxt, "standard", -1); + + break; + + /* oid */ + case 1: + invokeStartElement (pctxt, "oid", -1); + + pvalue->u.oid = ALLOC_ASN1ELEM (pctxt, ASN1OBJID); + + stat = decodeObjectIdentifier (pctxt, pvalue->u.oid); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->u.oid->numids, pvalue->u.oid->subid); + + invokeEndElement (pctxt, "oid", -1); + + break; + + /* nonStandard */ + case 2: + invokeStartElement (pctxt, "nonStandard", -1); + + pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H225GloballyUniqueID); + + stat = asn1PD_H225GloballyUniqueID (pctxt, pvalue->u.nonStandard); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nonStandard", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 4; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipAddress_ip */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipAddress_ip (OOCTXT* pctxt, H225TransportAddress_ipAddress_ip* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipAddress */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipAddress (OOCTXT* pctxt, H225TransportAddress_ipAddress* pvalue) +{ + int stat = ASN_OK; + + /* decode ip */ + + invokeStartElement (pctxt, "ip", -1); + + stat = asn1PD_H225TransportAddress_ipAddress_ip (pctxt, &pvalue->ip); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ip", -1); + + /* decode port */ + + invokeStartElement (pctxt, "port", -1); + + stat = decodeConsUInt16 (pctxt, &pvalue->port, 0U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->port); + + invokeEndElement (pctxt, "port", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute_ip */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_ip (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_ip* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute_route_element */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_route_element* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* _SeqOfH225TransportAddress_ipSourceRoute_route_element */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225_SeqOfH225TransportAddress_ipSourceRoute_route_element* pvalue) +{ + int stat = ASN_OK; + ASN1UINT xx1; + + /* decode length determinant */ + + stat = decodeLength (pctxt, &pvalue->n); + if (stat != ASN_OK) return stat; + + /* decode elements */ + + ALLOC_ASN1ARRAY (pctxt, pvalue, H225TransportAddress_ipSourceRoute_route_element); + + for (xx1 = 0; xx1 < pvalue->n; xx1++) { + invokeStartElement (pctxt, "elem", xx1); + + stat = asn1PD_H225TransportAddress_ipSourceRoute_route_element (pctxt, &pvalue->elem[xx1]); + if (stat != ASN_OK) return stat; + invokeEndElement (pctxt, "elem", xx1); + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute_routing */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_routing (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_routing* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* strict */ + case 0: + invokeStartElement (pctxt, "strict", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "strict", -1); + + break; + + /* loose */ + case 1: + invokeStartElement (pctxt, "loose", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "loose", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipSourceRoute */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipSourceRoute (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* decode ip */ + + invokeStartElement (pctxt, "ip", -1); + + stat = asn1PD_H225TransportAddress_ipSourceRoute_ip (pctxt, &pvalue->ip); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ip", -1); + + /* decode port */ + + invokeStartElement (pctxt, "port", -1); + + stat = decodeConsUInt16 (pctxt, &pvalue->port, 0U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->port); + + invokeEndElement (pctxt, "port", -1); + + /* decode route */ + + invokeStartElement (pctxt, "route", -1); + + stat = asn1PD_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (pctxt, &pvalue->route); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "route", -1); + + /* decode routing */ + + invokeStartElement (pctxt, "routing", -1); + + stat = asn1PD_H225TransportAddress_ipSourceRoute_routing (pctxt, &pvalue->routing); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "routing", -1); + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress_node */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipxAddress_node (OOCTXT* pctxt, H225TransportAddress_ipxAddress_node* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 6, 6, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress_netnum */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipxAddress_netnum (OOCTXT* pctxt, H225TransportAddress_ipxAddress_netnum* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress_port */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipxAddress_port (OOCTXT* pctxt, H225TransportAddress_ipxAddress_port* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 2, 2, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ipxAddress */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ipxAddress (OOCTXT* pctxt, H225TransportAddress_ipxAddress* pvalue) +{ + int stat = ASN_OK; + + /* decode node */ + + invokeStartElement (pctxt, "node", -1); + + stat = asn1PD_H225TransportAddress_ipxAddress_node (pctxt, &pvalue->node); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "node", -1); + + /* decode netnum */ + + invokeStartElement (pctxt, "netnum", -1); + + stat = asn1PD_H225TransportAddress_ipxAddress_netnum (pctxt, &pvalue->netnum); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "netnum", -1); + + /* decode port */ + + invokeStartElement (pctxt, "port", -1); + + stat = asn1PD_H225TransportAddress_ipxAddress_port (pctxt, &pvalue->port); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "port", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ip6Address_ip */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ip6Address_ip (OOCTXT* pctxt, H225TransportAddress_ip6Address_ip* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_ip6Address */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_ip6Address (OOCTXT* pctxt, H225TransportAddress_ip6Address* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* decode ip */ + + invokeStartElement (pctxt, "ip", -1); + + stat = asn1PD_H225TransportAddress_ip6Address_ip (pctxt, &pvalue->ip); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ip", -1); + + /* decode port */ + + invokeStartElement (pctxt, "port", -1); + + stat = decodeConsUInt16 (pctxt, &pvalue->port, 0U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->port); + + invokeEndElement (pctxt, "port", -1); + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_netBios */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_netBios (OOCTXT* pctxt, H225TransportAddress_netBios* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress_nsap */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress_nsap (OOCTXT* pctxt, H225TransportAddress_nsap* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 20, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* H221NonStandard */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225H221NonStandard (OOCTXT* pctxt, H225H221NonStandard* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* decode t35CountryCode */ + + invokeStartElement (pctxt, "t35CountryCode", -1); + + stat = decodeConsUInt8 (pctxt, &pvalue->t35CountryCode, 0U, 255U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->t35CountryCode); + + invokeEndElement (pctxt, "t35CountryCode", -1); + + /* decode t35Extension */ + + invokeStartElement (pctxt, "t35Extension", -1); + + stat = decodeConsUInt8 (pctxt, &pvalue->t35Extension, 0U, 255U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->t35Extension); + + invokeEndElement (pctxt, "t35Extension", -1); + + /* decode manufacturerCode */ + + invokeStartElement (pctxt, "manufacturerCode", -1); + + stat = decodeConsUInt16 (pctxt, &pvalue->manufacturerCode, 0U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->manufacturerCode); + + invokeEndElement (pctxt, "manufacturerCode", -1); + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* NonStandardIdentifier */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225NonStandardIdentifier (OOCTXT* pctxt, H225NonStandardIdentifier* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* object */ + case 0: + invokeStartElement (pctxt, "object", -1); + + pvalue->u.object = ALLOC_ASN1ELEM (pctxt, ASN1OBJID); + + stat = decodeObjectIdentifier (pctxt, pvalue->u.object); + if (stat != ASN_OK) return stat; + invokeOidValue (pctxt, pvalue->u.object->numids, pvalue->u.object->subid); + + invokeEndElement (pctxt, "object", -1); + + break; + + /* h221NonStandard */ + case 1: + invokeStartElement (pctxt, "h221NonStandard", -1); + + pvalue->u.h221NonStandard = ALLOC_ASN1ELEM (pctxt, H225H221NonStandard); + + stat = asn1PD_H225H221NonStandard (pctxt, pvalue->u.h221NonStandard); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "h221NonStandard", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* NonStandardParameter */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225NonStandardParameter (OOCTXT* pctxt, H225NonStandardParameter* pvalue) +{ + int stat = ASN_OK; + + /* decode nonStandardIdentifier */ + + invokeStartElement (pctxt, "nonStandardIdentifier", -1); + + stat = asn1PD_H225NonStandardIdentifier (pctxt, &pvalue->nonStandardIdentifier); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nonStandardIdentifier", -1); + + /* decode data */ + + invokeStartElement (pctxt, "data", -1); + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->data); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->data.numocts, pvalue->data.data); + + invokeEndElement (pctxt, "data", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* TransportAddress */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225TransportAddress (OOCTXT* pctxt, H225TransportAddress* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 6); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* ipAddress */ + case 0: + invokeStartElement (pctxt, "ipAddress", -1); + + pvalue->u.ipAddress = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ipAddress); + + stat = asn1PD_H225TransportAddress_ipAddress (pctxt, pvalue->u.ipAddress); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ipAddress", -1); + + break; + + /* ipSourceRoute */ + case 1: + invokeStartElement (pctxt, "ipSourceRoute", -1); + + pvalue->u.ipSourceRoute = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ipSourceRoute); + + stat = asn1PD_H225TransportAddress_ipSourceRoute (pctxt, pvalue->u.ipSourceRoute); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ipSourceRoute", -1); + + break; + + /* ipxAddress */ + case 2: + invokeStartElement (pctxt, "ipxAddress", -1); + + pvalue->u.ipxAddress = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ipxAddress); + + stat = asn1PD_H225TransportAddress_ipxAddress (pctxt, pvalue->u.ipxAddress); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ipxAddress", -1); + + break; + + /* ip6Address */ + case 3: + invokeStartElement (pctxt, "ip6Address", -1); + + pvalue->u.ip6Address = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ip6Address); + + stat = asn1PD_H225TransportAddress_ip6Address (pctxt, pvalue->u.ip6Address); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ip6Address", -1); + + break; + + /* netBios */ + case 4: + invokeStartElement (pctxt, "netBios", -1); + + pvalue->u.netBios = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_netBios); + + stat = asn1PD_H225TransportAddress_netBios (pctxt, pvalue->u.netBios); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "netBios", -1); + + break; + + /* nsap */ + case 5: + invokeStartElement (pctxt, "nsap", -1); + + pvalue->u.nsap = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_nsap); + + stat = asn1PD_H225TransportAddress_nsap (pctxt, pvalue->u.nsap); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nsap", -1); + + break; + + /* nonStandardAddress */ + case 6: + invokeStartElement (pctxt, "nonStandardAddress", -1); + + pvalue->u.nonStandardAddress = ALLOC_ASN1ELEM (pctxt, H225NonStandardParameter); + + stat = asn1PD_H225NonStandardParameter (pctxt, pvalue->u.nonStandardAddress); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nonStandardAddress", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 8; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* PublicTypeOfNumber */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 5); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* unknown */ + case 0: + invokeStartElement (pctxt, "unknown", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "unknown", -1); + + break; + + /* internationalNumber */ + case 1: + invokeStartElement (pctxt, "internationalNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "internationalNumber", -1); + + break; + + /* nationalNumber */ + case 2: + invokeStartElement (pctxt, "nationalNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "nationalNumber", -1); + + break; + + /* networkSpecificNumber */ + case 3: + invokeStartElement (pctxt, "networkSpecificNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "networkSpecificNumber", -1); + + break; + + /* subscriberNumber */ + case 4: + invokeStartElement (pctxt, "subscriberNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "subscriberNumber", -1); + + break; + + /* abbreviatedNumber */ + case 5: + invokeStartElement (pctxt, "abbreviatedNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "abbreviatedNumber", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 7; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* PublicPartyNumber */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue) +{ + int stat = ASN_OK; + + /* decode publicTypeOfNumber */ + + invokeStartElement (pctxt, "publicTypeOfNumber", -1); + + stat = asn1PD_H225PublicTypeOfNumber (pctxt, &pvalue->publicTypeOfNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "publicTypeOfNumber", -1); + + /* decode publicNumberDigits */ + + invokeStartElement (pctxt, "publicNumberDigits", -1); + + stat = asn1PD_H225NumberDigits (pctxt, &pvalue->publicNumberDigits); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "publicNumberDigits", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* PrivateTypeOfNumber */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 5); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* unknown */ + case 0: + invokeStartElement (pctxt, "unknown", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "unknown", -1); + + break; + + /* level2RegionalNumber */ + case 1: + invokeStartElement (pctxt, "level2RegionalNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "level2RegionalNumber", -1); + + break; + + /* level1RegionalNumber */ + case 2: + invokeStartElement (pctxt, "level1RegionalNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "level1RegionalNumber", -1); + + break; + + /* pISNSpecificNumber */ + case 3: + invokeStartElement (pctxt, "pISNSpecificNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "pISNSpecificNumber", -1); + + break; + + /* localNumber */ + case 4: + invokeStartElement (pctxt, "localNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "localNumber", -1); + + break; + + /* abbreviatedNumber */ + case 5: + invokeStartElement (pctxt, "abbreviatedNumber", -1); + + /* NULL */ + invokeNullValue (pctxt); + + invokeEndElement (pctxt, "abbreviatedNumber", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 7; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* PrivatePartyNumber */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue) +{ + int stat = ASN_OK; + + /* decode privateTypeOfNumber */ + + invokeStartElement (pctxt, "privateTypeOfNumber", -1); + + stat = asn1PD_H225PrivateTypeOfNumber (pctxt, &pvalue->privateTypeOfNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "privateTypeOfNumber", -1); + + /* decode privateNumberDigits */ + + invokeStartElement (pctxt, "privateNumberDigits", -1); + + stat = asn1PD_H225NumberDigits (pctxt, &pvalue->privateNumberDigits); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "privateNumberDigits", -1); + + return (stat); +} + +/**************************************************************/ +/* */ +/* PartyNumber */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 4); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* e164Number */ + case 0: + invokeStartElement (pctxt, "e164Number", -1); + + pvalue->u.e164Number = ALLOC_ASN1ELEM (pctxt, H225PublicPartyNumber); + + stat = asn1PD_H225PublicPartyNumber (pctxt, pvalue->u.e164Number); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "e164Number", -1); + + break; + + /* dataPartyNumber */ + case 1: + invokeStartElement (pctxt, "dataPartyNumber", -1); + + stat = asn1PD_H225NumberDigits (pctxt, &pvalue->u.dataPartyNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "dataPartyNumber", -1); + + break; + + /* telexPartyNumber */ + case 2: + invokeStartElement (pctxt, "telexPartyNumber", -1); + + stat = asn1PD_H225NumberDigits (pctxt, &pvalue->u.telexPartyNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "telexPartyNumber", -1); + + break; + + /* privateNumber */ + case 3: + invokeStartElement (pctxt, "privateNumber", -1); + + pvalue->u.privateNumber = ALLOC_ASN1ELEM (pctxt, H225PrivatePartyNumber); + + stat = asn1PD_H225PrivatePartyNumber (pctxt, pvalue->u.privateNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "privateNumber", -1); + + break; + + /* nationalStandardPartyNumber */ + case 4: + invokeStartElement (pctxt, "nationalStandardPartyNumber", -1); + + stat = asn1PD_H225NumberDigits (pctxt, &pvalue->u.nationalStandardPartyNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nationalStandardPartyNumber", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 6; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_system_id */ +/* */ +/**************************************************************/ + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet; + +EXTERN int asn1PD_H225ANSI_41_UIM_system_id (OOCTXT* pctxt, H225ANSI_41_UIM_system_id* pvalue) +{ + static Asn1SizeCnst sid_lsize1 = { 0, 1, 4, 0 }; + static Asn1SizeCnst mid_lsize1 = { 0, 1, 4, 0 }; + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* sid */ + case 0: + invokeStartElement (pctxt, "sid", -1); + + addSizeConstraint (pctxt, &sid_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->u.sid, gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->u.sid); + + invokeEndElement (pctxt, "sid", -1); + + break; + + /* mid */ + case 1: + invokeStartElement (pctxt, "mid", -1); + + addSizeConstraint (pctxt, &mid_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->u.mid, gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->u.mid); + + invokeEndElement (pctxt, "mid", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_systemMyTypeCode */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225ANSI_41_UIM_systemMyTypeCode (OOCTXT* pctxt, H225ANSI_41_UIM_systemMyTypeCode* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_systemAccessType */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225ANSI_41_UIM_systemAccessType (OOCTXT* pctxt, H225ANSI_41_UIM_systemAccessType* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ANSI_41_UIM_qualificationInformationCode */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* ANSI_41_UIM */ +/* */ +/**************************************************************/ + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet; + +EXTERN int asn1PD_H225ANSI_41_UIM (OOCTXT* pctxt, H225ANSI_41_UIM* pvalue) +{ + static Asn1SizeCnst imsi_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst min_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst mdn_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst msisdn_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst esn_lsize1 = { 0, 16, 16, 0 }; + static Asn1SizeCnst mscid_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst sesn_lsize1 = { 0, 16, 16, 0 }; + static Asn1SizeCnst soc_lsize1 = { 0, 3, 16, 0 }; + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.imsiPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.minPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.mdnPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.msisdnPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.esnPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.mscidPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.systemMyTypeCodePresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.systemAccessTypePresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.qualificationInformationCodePresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.sesnPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.socPresent = optbit; + + /* decode imsi */ + + if (pvalue->m.imsiPresent) { + invokeStartElement (pctxt, "imsi", -1); + + addSizeConstraint (pctxt, &imsi_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->imsi, gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->imsi); + + invokeEndElement (pctxt, "imsi", -1); + } + + /* decode min */ + + if (pvalue->m.minPresent) { + invokeStartElement (pctxt, "min", -1); + + addSizeConstraint (pctxt, &min_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->min, gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->min); + + invokeEndElement (pctxt, "min", -1); + } + + /* decode mdn */ + + if (pvalue->m.mdnPresent) { + invokeStartElement (pctxt, "mdn", -1); + + addSizeConstraint (pctxt, &mdn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->mdn, gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->mdn); + + invokeEndElement (pctxt, "mdn", -1); + } + + /* decode msisdn */ + + if (pvalue->m.msisdnPresent) { + invokeStartElement (pctxt, "msisdn", -1); + + addSizeConstraint (pctxt, &msisdn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->msisdn, gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->msisdn); + + invokeEndElement (pctxt, "msisdn", -1); + } + + /* decode esn */ + + if (pvalue->m.esnPresent) { + invokeStartElement (pctxt, "esn", -1); + + addSizeConstraint (pctxt, &esn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->esn, gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->esn); + + invokeEndElement (pctxt, "esn", -1); + } + + /* decode mscid */ + + if (pvalue->m.mscidPresent) { + invokeStartElement (pctxt, "mscid", -1); + + addSizeConstraint (pctxt, &mscid_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->mscid, gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->mscid); + + invokeEndElement (pctxt, "mscid", -1); + } + + /* decode system_id */ + + invokeStartElement (pctxt, "system_id", -1); + + stat = asn1PD_H225ANSI_41_UIM_system_id (pctxt, &pvalue->system_id); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "system_id", -1); + + /* decode systemMyTypeCode */ + + if (pvalue->m.systemMyTypeCodePresent) { + invokeStartElement (pctxt, "systemMyTypeCode", -1); + + stat = asn1PD_H225ANSI_41_UIM_systemMyTypeCode (pctxt, &pvalue->systemMyTypeCode); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "systemMyTypeCode", -1); + } + + /* decode systemAccessType */ + + if (pvalue->m.systemAccessTypePresent) { + invokeStartElement (pctxt, "systemAccessType", -1); + + stat = asn1PD_H225ANSI_41_UIM_systemAccessType (pctxt, &pvalue->systemAccessType); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "systemAccessType", -1); + } + + /* decode qualificationInformationCode */ + + if (pvalue->m.qualificationInformationCodePresent) { + invokeStartElement (pctxt, "qualificationInformationCode", -1); + + stat = asn1PD_H225ANSI_41_UIM_qualificationInformationCode (pctxt, &pvalue->qualificationInformationCode); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "qualificationInformationCode", -1); + } + + /* decode sesn */ + + if (pvalue->m.sesnPresent) { + invokeStartElement (pctxt, "sesn", -1); + + addSizeConstraint (pctxt, &sesn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->sesn, gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->sesn); + + invokeEndElement (pctxt, "sesn", -1); + } + + /* decode soc */ + + if (pvalue->m.socPresent) { + invokeStartElement (pctxt, "soc", -1); + + addSizeConstraint (pctxt, &soc_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->soc, gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->soc); + + invokeEndElement (pctxt, "soc", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* GSM_UIM_tmsi */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 4, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* GSM_UIM */ +/* */ +/**************************************************************/ + +extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imsi_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imei_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet; + +extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet; + +EXTERN int asn1PD_H225GSM_UIM (OOCTXT* pctxt, H225GSM_UIM* pvalue) +{ + static Asn1SizeCnst imsi_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst msisdn_lsize1 = { 0, 3, 16, 0 }; + static Asn1SizeCnst imei_lsize1 = { 0, 15, 16, 0 }; + static Asn1SizeCnst hplmn_lsize1 = { 0, 1, 4, 0 }; + static Asn1SizeCnst vplmn_lsize1 = { 0, 1, 4, 0 }; + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.imsiPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.tmsiPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.msisdnPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.imeiPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.hplmnPresent = optbit; + + DECODEBIT (pctxt, &optbit); + pvalue->m.vplmnPresent = optbit; + + /* decode imsi */ + + if (pvalue->m.imsiPresent) { + invokeStartElement (pctxt, "imsi", -1); + + addSizeConstraint (pctxt, &imsi_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->imsi, gs_H323_MESSAGES_GSM_UIM_imsi_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->imsi); + + invokeEndElement (pctxt, "imsi", -1); + } + + /* decode tmsi */ + + if (pvalue->m.tmsiPresent) { + invokeStartElement (pctxt, "tmsi", -1); + + stat = asn1PD_H225GSM_UIM_tmsi (pctxt, &pvalue->tmsi); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "tmsi", -1); + } + + /* decode msisdn */ + + if (pvalue->m.msisdnPresent) { + invokeStartElement (pctxt, "msisdn", -1); + + addSizeConstraint (pctxt, &msisdn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->msisdn, gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->msisdn); + + invokeEndElement (pctxt, "msisdn", -1); + } + + /* decode imei */ + + if (pvalue->m.imeiPresent) { + invokeStartElement (pctxt, "imei", -1); + + addSizeConstraint (pctxt, &imei_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->imei, gs_H323_MESSAGES_GSM_UIM_imei_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->imei); + + invokeEndElement (pctxt, "imei", -1); + } + + /* decode hplmn */ + + if (pvalue->m.hplmnPresent) { + invokeStartElement (pctxt, "hplmn", -1); + + addSizeConstraint (pctxt, &hplmn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->hplmn, gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->hplmn); + + invokeEndElement (pctxt, "hplmn", -1); + } + + /* decode vplmn */ + + if (pvalue->m.vplmnPresent) { + invokeStartElement (pctxt, "vplmn", -1); + + addSizeConstraint (pctxt, &vplmn_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->vplmn, gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->vplmn); + + invokeEndElement (pctxt, "vplmn", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* MobileUIM */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* ansi_41_uim */ + case 0: + invokeStartElement (pctxt, "ansi_41_uim", -1); + + pvalue->u.ansi_41_uim = ALLOC_ASN1ELEM (pctxt, H225ANSI_41_UIM); + + stat = asn1PD_H225ANSI_41_UIM (pctxt, pvalue->u.ansi_41_uim); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "ansi_41_uim", -1); + + break; + + /* gsm_uim */ + case 1: + invokeStartElement (pctxt, "gsm_uim", -1); + + pvalue->u.gsm_uim = ALLOC_ASN1ELEM (pctxt, H225GSM_UIM); + + stat = asn1PD_H225GSM_UIM (pctxt, pvalue->u.gsm_uim); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "gsm_uim", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* AliasAddress */ +/* */ +/**************************************************************/ + +extern EXTERN const char* gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet; + +EXTERN int asn1PD_H225AliasAddress (OOCTXT* pctxt, H225AliasAddress* pvalue) +{ + static Asn1SizeCnst dialedDigits_lsize1 = { 0, 1, 128, 0 }; + static Asn1SizeCnst h323_ID_lsize1 = { 0, 1, 256, 0 }; + static Asn1SizeCnst url_ID_lsize1 = { 0, 1, 512, 0 }; + static Asn1SizeCnst email_ID_lsize1 = { 0, 1, 512, 0 }; + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + OOCTXT lctxt; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 1); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* dialedDigits */ + case 0: + invokeStartElement (pctxt, "dialedDigits", -1); + + addSizeConstraint (pctxt, &dialedDigits_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->u.dialedDigits, gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet, 4, 4, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->u.dialedDigits); + + invokeEndElement (pctxt, "dialedDigits", -1); + + break; + + /* h323_ID */ + case 1: + invokeStartElement (pctxt, "h323_ID", -1); + + addSizeConstraint (pctxt, &h323_ID_lsize1); + + stat = decodeBMPString (pctxt, &pvalue->u.h323_ID, 0); + if (stat != ASN_OK) return stat; + invokeCharStr16BitValue (pctxt, pvalue->u.h323_ID.nchars, pvalue->u.h323_ID.data); + + invokeEndElement (pctxt, "h323_ID", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 3; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + copyContext (&lctxt, pctxt); + initContextBuffer (pctxt, openType.data, openType.numocts); + + switch (pvalue->t) { + /* url_ID */ + case 3: + invokeStartElement (pctxt, "url_ID", -1); + + addSizeConstraint (pctxt, &url_ID_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->u.url_ID, 0, 8, 7, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->u.url_ID); + + invokeEndElement (pctxt, "url_ID", -1); + + break; + + /* transportID */ + case 4: + invokeStartElement (pctxt, "transportID", -1); + + pvalue->u.transportID = ALLOC_ASN1ELEM (pctxt, H225TransportAddress); + + stat = asn1PD_H225TransportAddress (pctxt, pvalue->u.transportID); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "transportID", -1); + + break; + + /* email_ID */ + case 5: + invokeStartElement (pctxt, "email_ID", -1); + + addSizeConstraint (pctxt, &email_ID_lsize1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->u.email_ID, 0, 8, 7, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->u.email_ID); + + invokeEndElement (pctxt, "email_ID", -1); + + break; + + /* partyNumber */ + case 6: + invokeStartElement (pctxt, "partyNumber", -1); + + pvalue->u.partyNumber = ALLOC_ASN1ELEM (pctxt, H225PartyNumber); + + stat = asn1PD_H225PartyNumber (pctxt, pvalue->u.partyNumber); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "partyNumber", -1); + + break; + + /* mobileUIM */ + case 7: + invokeStartElement (pctxt, "mobileUIM", -1); + + pvalue->u.mobileUIM = ALLOC_ASN1ELEM (pctxt, H225MobileUIM); + + stat = asn1PD_H225MobileUIM (pctxt, pvalue->u.mobileUIM); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "mobileUIM", -1); + + break; + + default:; + } + + copyContext (pctxt, &lctxt); + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* Content_compound */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225Content_compound (OOCTXT* pctxt, H225Content_compound* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 512, 0 }; + int stat = ASN_OK; + H225EnumeratedParameter* pdata; + ASN1UINT count = 0; + ASN1UINT xx1; + + /* decode length determinant */ + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeLength (pctxt, &count); + if (stat != ASN_OK) return stat; + + /* decode elements */ + + dListInit (pvalue); + + for (xx1 = 0; xx1 < count; xx1++) { + invokeStartElement (pctxt, "elem", xx1); + + pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225EnumeratedParameter); + + stat = asn1PD_H225EnumeratedParameter (pctxt, (H225EnumeratedParameter*)pdata); + if (stat != ASN_OK) return stat; + invokeEndElement (pctxt, "elem", xx1); + + dListAppendNode (pctxt, pvalue, pdata); + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* Content_nested */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225Content_nested (OOCTXT* pctxt, H225Content_nested* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 }; + int stat = ASN_OK; + H225GenericData* pdata; + ASN1UINT count = 0; + ASN1UINT xx1; + + /* decode length determinant */ + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeLength (pctxt, &count); + if (stat != ASN_OK) return stat; + + /* decode elements */ + + dListInit (pvalue); + + for (xx1 = 0; xx1 < count; xx1++) { + invokeStartElement (pctxt, "elem", xx1); + + pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225GenericData); + + stat = asn1PD_H225GenericData (pctxt, (H225GenericData*)pdata); + if (stat != ASN_OK) return stat; + invokeEndElement (pctxt, "elem", xx1); + + dListAppendNode (pctxt, pvalue, pdata); + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* Content */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225Content (OOCTXT* pctxt, H225Content* pvalue) +{ + int stat = ASN_OK; + ASN1UINT ui; + ASN1OpenType openType; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + if (!extbit) { + stat = decodeConsUnsigned (pctxt, &ui, 0, 11); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 1; + + switch (ui) { + /* raw */ + case 0: + invokeStartElement (pctxt, "raw", -1); + + pvalue->u.raw = ALLOC_ASN1ELEM (pctxt, ASN1DynOctStr); + + stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)pvalue->u.raw); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->u.raw->numocts, pvalue->u.raw->data); + + invokeEndElement (pctxt, "raw", -1); + + break; + + /* text */ + case 1: + invokeStartElement (pctxt, "text", -1); + + stat = decodeConstrainedStringEx (pctxt, &pvalue->u.text, 0, 8, 7, 7); + if (stat != ASN_OK) return stat; + invokeCharStrValue (pctxt, pvalue->u.text); + + invokeEndElement (pctxt, "text", -1); + + break; + + /* unicode */ + case 2: + invokeStartElement (pctxt, "unicode", -1); + + stat = decodeBMPString (pctxt, &pvalue->u.unicode, 0); + if (stat != ASN_OK) return stat; + invokeCharStr16BitValue (pctxt, pvalue->u.unicode.nchars, pvalue->u.unicode.data); + + invokeEndElement (pctxt, "unicode", -1); + + break; + + /* bool_ */ + case 3: + invokeStartElement (pctxt, "bool_", -1); + + stat = DECODEBIT (pctxt, &pvalue->u.bool_); + if (stat != ASN_OK) return stat; + invokeBoolValue (pctxt, pvalue->u.bool_); + + invokeEndElement (pctxt, "bool_", -1); + + break; + + /* number8 */ + case 4: + invokeStartElement (pctxt, "number8", -1); + + stat = decodeConsUInt8 (pctxt, &pvalue->u.number8, 0U, 255U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->u.number8); + + invokeEndElement (pctxt, "number8", -1); + + break; + + /* number16 */ + case 5: + invokeStartElement (pctxt, "number16", -1); + + stat = decodeConsUInt16 (pctxt, &pvalue->u.number16, 0U, 65535U); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->u.number16); + + invokeEndElement (pctxt, "number16", -1); + + break; + + /* number32 */ + case 6: + invokeStartElement (pctxt, "number32", -1); + + stat = decodeConsUnsigned (pctxt, &pvalue->u.number32, 0U, ASN1UINT_MAX); + if (stat != ASN_OK) return stat; + invokeUIntValue (pctxt, pvalue->u.number32); + + invokeEndElement (pctxt, "number32", -1); + + break; + + /* id */ + case 7: + invokeStartElement (pctxt, "id", -1); + + pvalue->u.id = ALLOC_ASN1ELEM (pctxt, H225GenericIdentifier); + + stat = asn1PD_H225GenericIdentifier (pctxt, pvalue->u.id); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "id", -1); + + break; + + /* alias */ + case 8: + invokeStartElement (pctxt, "alias", -1); + + pvalue->u.alias = ALLOC_ASN1ELEM (pctxt, H225AliasAddress); + + stat = asn1PD_H225AliasAddress (pctxt, pvalue->u.alias); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "alias", -1); + + break; + + /* transport */ + case 9: + invokeStartElement (pctxt, "transport", -1); + + pvalue->u.transport = ALLOC_ASN1ELEM (pctxt, H225TransportAddress); + + stat = asn1PD_H225TransportAddress (pctxt, pvalue->u.transport); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "transport", -1); + + break; + + /* compound */ + case 10: + invokeStartElement (pctxt, "compound", -1); + + pvalue->u.compound = ALLOC_ASN1ELEM (pctxt, H225Content_compound); + + stat = asn1PD_H225Content_compound (pctxt, pvalue->u.compound); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "compound", -1); + + break; + + /* nested */ + case 11: + invokeStartElement (pctxt, "nested", -1); + + pvalue->u.nested = ALLOC_ASN1ELEM (pctxt, H225Content_nested); + + stat = asn1PD_H225Content_nested (pctxt, pvalue->u.nested); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "nested", -1); + + break; + + default: + return ASN_E_INVOPT; + } + } + else { + stat = decodeSmallNonNegWholeNumber (pctxt, &ui); + if (stat != ASN_OK) return stat; + else pvalue->t = ui + 13; + + stat = decodeByteAlign (pctxt); + if (stat != ASN_OK) return stat; + + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* EnumeratedParameter */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225EnumeratedParameter (OOCTXT* pctxt, H225EnumeratedParameter* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.contentPresent = optbit; + + /* decode id */ + + invokeStartElement (pctxt, "id", -1); + + stat = asn1PD_H225GenericIdentifier (pctxt, &pvalue->id); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "id", -1); + + /* decode content */ + + if (pvalue->m.contentPresent) { + invokeStartElement (pctxt, "content", -1); + + stat = asn1PD_H225Content (pctxt, &pvalue->content); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "content", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* GenericData_parameters */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225GenericData_parameters (OOCTXT* pctxt, H225GenericData_parameters* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 512, 0 }; + int stat = ASN_OK; + H225EnumeratedParameter* pdata; + ASN1UINT count = 0; + ASN1UINT xx1; + + /* decode length determinant */ + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeLength (pctxt, &count); + if (stat != ASN_OK) return stat; + + /* decode elements */ + + dListInit (pvalue); + + for (xx1 = 0; xx1 < count; xx1++) { + invokeStartElement (pctxt, "elem", xx1); + + pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225EnumeratedParameter); + + stat = asn1PD_H225EnumeratedParameter (pctxt, pdata); + if (stat != ASN_OK) return stat; + invokeEndElement (pctxt, "elem", xx1); + + dListAppendNode (pctxt, pvalue, pdata); + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* GenericData */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225GenericData (OOCTXT* pctxt, H225GenericData* pvalue) +{ + int stat = ASN_OK; + OOCTXT lctxt; + ASN1OpenType openType; + ASN1UINT bitcnt; + ASN1UINT i; + ASN1BOOL optbit; + ASN1BOOL extbit; + + /* extension bit */ + + DECODEBIT (pctxt, &extbit); + + /* optional bits */ + + memset (&pvalue->m, 0, sizeof(pvalue->m)); + + DECODEBIT (pctxt, &optbit); + pvalue->m.parametersPresent = optbit; + + /* decode id */ + + invokeStartElement (pctxt, "id", -1); + + stat = asn1PD_H225GenericIdentifier (pctxt, &pvalue->id); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "id", -1); + + /* decode parameters */ + + if (pvalue->m.parametersPresent) { + invokeStartElement (pctxt, "parameters", -1); + + stat = asn1PD_H225GenericData_parameters (pctxt, &pvalue->parameters); + if (stat != ASN_OK) return stat; + + invokeEndElement (pctxt, "parameters", -1); + } + + if (extbit) { + + /* decode extension optional bits length */ + + stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt); + if (stat != ASN_OK) return stat; + + bitcnt += 1; + + ZEROCONTEXT (&lctxt); + stat = setPERBufferUsingCtxt (&lctxt, pctxt); + if (stat != ASN_OK) return stat; + + stat = moveBitCursor (pctxt, bitcnt); + if (stat != ASN_OK) return stat; + + for (i = 0; i < bitcnt; i++) { + DECODEBIT (&lctxt, &optbit); + + if (optbit) { + stat = decodeOpenType (pctxt, &openType.data, &openType.numocts); + if (stat != ASN_OK) return stat; + + pctxt->buffer.byteIndex += openType.numocts; + } + } + } + + return (stat); +} + +/**************************************************************/ +/* */ +/* FeatureDescriptor */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225FeatureDescriptor (OOCTXT* pctxt, H225FeatureDescriptor* pvalue) +{ + int stat = ASN_OK; + + stat = asn1PD_H225GenericData (pctxt, pvalue); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* FastStartToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225FastStartToken (OOCTXT* pctxt, H225FastStartToken* pvalue) +{ + int stat = ASN_OK; + + stat = asn1PD_H235ClearToken (pctxt, pvalue); + if (stat != ASN_OK) return stat; + + return (stat); +} + +/**************************************************************/ +/* */ +/* EncodedFastStartToken */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225EncodedFastStartToken (OOCTXT* pctxt, H225EncodedFastStartToken* pvalue) +{ + int stat = ASN_OK; + + stat = decodeOpenType (pctxt, &pvalue->data, &pvalue->numocts); + if (stat != ASN_OK) return stat; + invokeOpenTypeValue + (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* H323_UserInformation_user_data_user_information */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225H323_UserInformation_user_data_user_information (OOCTXT* pctxt, H225H323_UserInformation_user_data_user_information* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 1, 131, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeOctetString (pctxt, + &pvalue->numocts, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* EndpointType_set */ +/* */ +/**************************************************************/ + +EXTERN int asn1PD_H225EndpointType_set (OOCTXT* pctxt, H225EndpointType_set* pvalue) +{ + static Asn1SizeCnst lsize1 = { 0, 32, 32, 0 }; + int stat = ASN_OK; + + addSizeConstraint (pctxt, &lsize1); + + stat = decodeBitString (pctxt, + &pvalue->numbits, + pvalue->data, + sizeof(pvalue->data)); + if (stat != ASN_OK) return stat; + + invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data); + + return (stat); +} + +/**************************************************************/ +/* */ +/* VendorIdentifier_productId |