diff -u --recursive --new-file channels/h323/.cvsignore.orig channels/h323/.cvsignore
--- channels/h323/.cvsignore.orig	Sat Apr  9 00:18:43 2005
+++ channels/h323/.cvsignore	Mon Apr 25 00:58:24 2005
@@ -1 +1,6 @@
 .depend
+Makefile.ast
+ast_h323.dep
+ast_h323.cxx
+ast_h323.o
+libchanh323.a
diff -u --recursive --new-file channels/h323/Makefile.orig channels/h323/Makefile
--- channels/h323/Makefile.orig	Sat Apr  9 00:21:18 2005
+++ channels/h323/Makefile	Mon Apr 25 00:48:37 2005
@@ -1,117 +1,41 @@
-# include the Makefile of OpenH323 
-
-ifndef OPENH323DIR
-OPENH323DIR=$(HOME)/openh323
-endif
-
-ifndef PWLIBDIR
-PWLIBDIR=$(HOME)/pwlib
-endif
-
-ifndef ASTERISKDIR
-ASTERISKDIR= /usr/lib/asterisk/modules
-endif
-
-ifndef ASTETCDIR
-ASTETCDIR=/etc/asterisk
-endif
-
-PWLIBVERSIONFILE=$(PWLIBDIR)/version.h
-OPENH323VERSIONFILE=$(OPENH323DIR)/version.h
-
-PWLIB_MAJOR_VERSION=$(shell test -e ${PWLIBVERSIONFILE} && cat ${PWLIBVERSIONFILE} | grep MAJOR_VERSION | cut -f3 -d' ')
-PWLIB_MINOR_VERSION=$(shell test -e ${PWLIBVERSIONFILE} && cat ${PWLIBVERSIONFILE} | grep MINOR_VERSION | cut -f3 -d' ')
-PWLIB_BUILD_NUMBER=$(shell test -e ${PWLIBVERSIONFILE} && cat ${PWLIBVERSIONFILE} | grep BUILD_NUMBER | cut -f3 -d' ')
-PWLIB_VERSION="${PWLIB_MAJOR_VERSION}.${PWLIB_MINOR_VERSION}.${PWLIB_BUILD_NUMBER}"
-
-OPENH323_MAJOR_VERSION=$(shell test -e ${OPENH323VERSIONFILE} && cat ${OPENH323VERSIONFILE} | grep MAJOR_VERSION | cut -f3 -d' ')
-OPENH323_MINOR_VERSION=$(shell test -e ${OPENH323VERSIONFILE} && cat ${OPENH323VERSIONFILE} | grep MINOR_VERSION | cut -f3 -d' ')
-OPENH323_BUILD_NUMBER=$(shell test -e ${OPENH323VERSIONFILE} && cat ${OPENH323VERSIONFILE} | grep BUILD_NUMBER | cut -f3 -d' ')
-OPENH323_VERSION="${OPENH323_MAJOR_VERSION}.${OPENH323_MINOR_VERSION}.${OPENH323_BUILD_NUMBER}"
-
 #
-# This needs to be updated to deal with more than just little endian machines
+# Makefile
+#
+# Make file for OpenH323 support layer
 #
-OSARCH=$(shell uname -s)
-PROC=$(shell uname -m)
-ifneq (${OSARCH},FreeBSD)
-ifneq (${OSARCH},NetBSD)
-ifneq (${PROC},ppc)
-CFLAGS += -march=$(PROC)
-endif
-endif
-endif
-CFLAGS += -DPBYTE_ORDER=PLITTLE_ENDIAN
 
-ifeq (${OSARCH},Linux)
-LDLIBS+=-ldl
-endif
+# Verify those options with main Makefile
+STDCCFLAGS	+= -DNDEBUG
+STDCCFLAGS	+= $(shell grep ^DEBUG_THREADS ../../Makefile | sed -e "s/^DEBUG_THREADS[ 	]*=//" -e "s/\([^\#]*\)\#.*/\1/")
+STDCCFLAGS	+= -I../../include
+STDCCFLAGS	+= -Wmissing-prototypes
+STDCCFLAGS	+= -fPIC
+#OPTCCFLAGS	+=
+CFLAGS		+= -pipe
+TARGET		+= libchanh323.a
+TARGET		+= Makefile.ast
+SOURCES		= ast_h323.cxx
+OBJDIR		= .
 
-#############################################
-#
-# Only change below if you know WTF your doing
-#
-OSARCH=$(shell uname -s)
-CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS
-CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes
-CFLAGS += -D_REENTRANT -D_GNU_SOURCE
-CFLAGS += -I../../include
-CFLAGS += -I$(PWLIBDIR)/include 
-CFLAGS += -I$(OPENH323DIR)/include -Wno-missing-prototypes
-
-all:	checkversion depend libchanh323.a
-
-samples: 
-	if [ -f $(ASTETCDIR)/h323.conf ]; then \
-		mv -f $(ASTETCDIR)/h323.conf $(ASTETCDIR)/h323.conf.old ; \
-	fi ; 
-	install h323.conf.sample $(ASTETCDIR)/h323.conf
- 
+ifndef OPENH323DIR
+OPENH323DIR=$(HOME)/openh323
+endif
 
-libchanh323.a:	ast_h323.o
-	ar cr $@ $<
+include $(OPENH323DIR)/openh323u.mak
 
-ast_h323.o:	ast_h323.cpp
-	$(CXX) -g -c -o $@ $(CFLAGS) $<
+$(SOURCES)::	$(SOURCES:.cxx=.cpp)
+	ln -f $< $@
 
-ifneq ($(wildcard .depend),)
-include .depend
-endif
+$(SOURCES)::	Makefile ../../Makefile
+	touch $(SOURCES)
 
-chan_h323.so:	
-	$(CXX)  -g -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib  -lpt_linux_x86_r -L$(OPENH323DIR)/lib -lh323_linux_x86_r -L/usr/lib $(CHANH323LIB)
+libchanh323.a:	$(OBJS)
+	ar crv $@ $(OBJS)
 
-chan_h323_d.so:	chan_h323.o ast_h323.o
-	$(CXX)     -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib  -lpt_linux_x86_d -L$(OPENH323DIR)/lib -lh323_linux_x86_d -L/usr/lib $(CHANH323LIB)
+Makefile.ast:	FORCE
+	@echo H323CFLAGS  = $(STDCCFLAGS) $(OPTCCFLAGS) $(CFLAGS) >$@.tmp
+	@echo H323LDFLAGS = $(CFLAGS) $(LDFLAGS) >>$@.tmp
+	@echo H323LDLIBS  = $(LDLIBS) $(ENDLDLIBS) $(ENDLDFLAGS) >>$@.tmp
+	@if [ -r $@ ] && cmp -s $@ $@.tmp; then rm -f $@.tmp; else mv -f $@.tmp $@; fi
 
-chan_h323_s.so:	chan_h323.o ast_h323.o
-	$(CXX)  -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib  -lpt_linux_x86_r_s -L$(OPENH323DIR)/lib -lh323_linux_x86_r_s -L/usr/lib $(CHANH323LIB)
-clean:
-	rm -f *.o *.so core.* libchanh323.a .depend
-
-depend: .depend
-
-.depend:
-	../../mkdep $(CFLAGS) `ls *.cpp`
-
-checkversion:
-	@echo -n "PWLib version is ${PWLIB_VERSION}... "
-	@if [ ${PWLIB_MAJOR_VERSION} -gt 1 -o ${PWLIB_MAJOR_VERSION} -eq 1 -a ${PWLIB_MINOR_VERSION} -gt 8 -o ${PWLIB_MAJOR_VERSION} -eq 1 -a ${PWLIB_MINOR_VERSION} -eq 8 -a ${PWLIB_BUILD_NUMBER} -ge 1 ]; then \
-		echo "ok" ; \
-	else \
-		echo "BAD" ; \
-		echo ; \
-		echo "Please read README for further details!" ; \
-		echo ; \
-		exit 1 ; \
-	fi
-	@echo -n "OpenH323 version is ${OPENH323_VERSION}... "
-	@if [ ${OPENH323_MAJOR_VERSION} -gt 1 -o ${OPENH323_MAJOR_VERSION} -eq 1 -a ${OPENH323_MINOR_VERSION} -gt 15 -o ${OPENH323_MAJOR_VERSION} -eq 1 -a ${OPENH323_MINOR_VERSION} -eq 15 -a ${OPENH323_BUILD_NUMBER} -ge 1 ]; then \
-		echo "ok" ; \
-	else \
-		echo "BAD" ; \
-		echo ; \
-		echo "Please read README for further details!" ; \
-		echo ; \
-		exit 1 ; \
-	fi
+FORCE:
diff -u --recursive --new-file channels/h323/README.orig channels/h323/README
--- channels/h323/README.orig	Mon Apr 25 00:59:30 2005
+++ channels/h323/README	Mon Apr 25 00:57:23 2005
@@ -19,10 +19,10 @@
 
 To compile this code
 --------------------
-Once PWLib and Open H.323 have been compiled per their specific build 
-instructions, issue  a make in the asterisk/channels/h323 directory, 
-then go back to the Asterisk source top level directory and issue a make
-install.
+Once PWLib and Open H.323 have been compiled per their specific build
+instructions, issue a make in the asterisk/channels/h323 directory with
+argument used to build PWLib and OpenH323 (for example, make opt), then go
+back to the Asterisk source top level directory and issue a make install.
 
 
 The most common compile error  
@@ -45,7 +45,7 @@
 ./configure
 make clean opt 
 cd /path/to/asterisk/channels/h323
-make  
+make opt
 cd /path/to/asterisk
 make install 
 
diff -u --recursive --new-file channels/Makefile.orig channels/Makefile
--- channels/Makefile.orig	Sat Apr  9 00:18:43 2005
+++ channels/Makefile	Sat Apr  9 02:18:36 2005
@@ -121,6 +121,10 @@
 include .depend
 endif
 
+ifneq ($(wildcard h323/Makefile.ast),)
+include h323/Makefile.ast
+endif
+
 ifeq ($(CROSS_COMPILE),)
 gentone: gentone.c
 	$(CC) -o gentone gentone.c -lm
@@ -178,8 +182,13 @@
 chan_vpb.so: chan_vpb.o
 	 $(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
 
+ifeq (${OSARCH},Linux)
+chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast
+	$(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) -lstdc++
+else
 chan_h323.so: chan_h323.o h323/libchanh323.a
 	$(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
+endif
 
 
 #chan_modem.so : chan_modem.o
