1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-07 06:40:06 +00:00

- Use pwlib and openh323 from ports

- Update to latest codec negotiation patch

Submitted by:   Andriy I Pylypenko <bamby@portaone.com> (MAINTAINER)
This commit is contained in:
Max Khon 2006-04-26 11:33:11 +00:00
parent b27709344b
commit 53e76e68e0
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=160513
8 changed files with 73 additions and 83 deletions

View File

@ -7,23 +7,23 @@
PORTNAME= asterisk-oh323
PORTVERSION= 0.7.3
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= net
MASTER_SITES= http://www.inaccessnetworks.com/projects/asterisk-oh323/download/
MAINTAINER= bamby@portaone.com
COMMENT= A H.323 support module for the Asterisk soft PBX
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/devel/pwlib152:build \
${NONEXISTENT}:${PORTSDIR}/net/openh323-112:build \
${LOCALBASE}/sbin/asterisk:${PORTSDIR}/net/asterisk
BUILD_DEPENDS= ${LOCALBASE}/sbin/asterisk:${PORTSDIR}/net/asterisk
LIB_DEPENDS= pt_r.1:${PORTSDIR}/devel/pwlib\
h323_r.1:${PORTSDIR}/net/openh323
USE_GMAKE= yes
MAKE_ENV= MKDIR="${MKDIR}" \
PWLIBDIR=${WRKDIRPREFIX}${PORTSDIR}/devel/pwlib152/work/pwlib \
OPENH323DIR=${WRKDIRPREFIX}${PORTSDIR}/net/openh323-112/work/openh323 \
PWLIBDIR=${LOCALBASE}/share/pwlib \
OPENH323DIR=${LOCALBASE}/share/openh323 \
CPP="${CXX}" \
USE_OLD_CAPABILITIES_API="yes"
SYSLIBDIR=${LOCALBASE}/lib
post-install:
@${CAT} ${PKGMESSAGE}

View File

@ -1,5 +1,5 @@
--- Makefile.orig Wed Jan 18 10:54:59 2006
+++ Makefile Wed Jan 18 11:50:59 2006
--- Makefile.orig Fri Sep 9 17:03:53 2005
+++ Makefile Thu Apr 13 13:52:00 2006
@@ -41,7 +41,7 @@
# Install everything under this directory. If this is empty, then everything
# will be installed under /
@ -52,3 +52,12 @@
#
# Set WRAPTRACING to 1 to enable tracing information from the OpenH323Wrap
@@ -120,7 +120,7 @@
# With this flag on the channel driver is huge, in size, but Asterisk boots
# faster!
#
-OH323STAT=1
+#OH323STAT=1
#
# Define options that were used during Asterisk compilation. It is

View File

@ -1,5 +1,33 @@
--- asterisk-driver/Makefile.orig Wed Jan 18 11:43:28 2006
+++ asterisk-driver/Makefile Wed Jan 18 11:55:34 2006
--- asterisk-driver/Makefile.orig Fri Sep 9 16:35:25 2005
+++ asterisk-driver/Makefile Thu Apr 13 14:22:51 2006
@@ -40,9 +40,9 @@
endif
else
ifeq ($(OH323BUILDTYPE),debug) # Shared, debug
- LIBPTPATH=$(word 1,$(shell ls $(PWLIBDIR)/lib/libpt*d.so))
+ LIBPTPATH=$(word 1,$(shell ls $(SYSLIBDIR)/libpt*d.so))
else # Shared, opt
- LIBPTPATH=$(word 1,$(shell ls $(PWLIBDIR)/lib/libpt*r.so))
+ LIBPTPATH=$(word 1,$(shell ls $(SYSLIBDIR)/libpt*r.so))
endif
endif
LIBPTNAME=$(subst lib,,$(basename $(notdir $(LIBPTPATH))))
@@ -69,12 +69,12 @@
endif
else
ifeq ($(OH323BUILDTYPE),debug) # Shared, debug
- LIBH323PATH=$(word 1,$(shell ls $(OPENH323DIR)/lib/libh323*d.so))
+ LIBH323PATH=$(word 1,$(shell ls $(SYSLIBDIR)/libh323*d.so))
else
ifeq ($(OH323BUILDTYPE),opt) # Shared, opt
- LIBH323PATH=$(word 1,$(shell ls $(OPENH323DIR)/lib/libh323*r.so))
+ LIBH323PATH=$(word 1,$(shell ls $(SYSLIBDIR)/libh323*r.so))
else # Shared, opt, no trace
- LIBH323PATH=$(word 1,$(shell ls $(OPENH323DIR)/lib/libh323*n.so))
+ LIBH323PATH=$(word 1,$(shell ls $(SYSLIBDIR)/libh323*n.so))
endif
endif
endif
@@ -90,7 +90,7 @@
LIBH323=$(LIBH323NAME)

View File

@ -1,8 +1,5 @@
$FreeBSD$
--- asterisk-driver/chan_oh323.c.orig Tue Sep 20 13:50:34 2005
+++ asterisk-driver/chan_oh323.c Wed Jan 25 17:59:14 2006
+++ asterisk-driver/chan_oh323.c Wed Apr 19 16:06:11 2006
@@ -43,10 +43,12 @@
#include <sys/types.h>
#include <sys/stat.h>
@ -26,32 +23,33 @@ $FreeBSD$
static int oh323_text(struct ast_channel *c, const char *text);
static int oh323_call(struct ast_channel *c, char *dest, int timeout);
static int oh323_hangup(struct ast_channel *c);
@@ -2402,11 +2404,11 @@ static int oh323_write(struct ast_channe
@@ -2402,11 +2404,12 @@ static int oh323_write(struct ast_channe
}
/* Check for format changes */
- if (f->subclass != i->owner->nativeformats) {
+ if (!f->subclass & i->owner->nativeformats.bits) {
+ if (!f->subclass & ast_codec_pref_bits(&i->owner->nativeformats)) {
+ char tmp[512];
ast_log(LOG_NOTICE, "%s: Format changed to %s (native %s).\n",
c->name,
ast_getformatname(f->subclass),
- ast_getformatname(c->nativeformats));
+ ast_getformatname(c->nativeformats.bits));
+ ast_codec_pref_dump(tmp, sizeof(tmp), &c->nativeformats));
if (ast_set_write_format(c, f->subclass) < 0) {
ast_mutex_unlock(&oh323_tab_lock);
return(-1);
@@ -2802,8 +2804,8 @@ static struct ast_channel *ast_oh323_new
@@ -2802,8 +2805,8 @@ static struct ast_channel *ast_oh323_new
/* Set our native format */
/* XXX: Only one should be selected */
- tmp->nativeformats = oh323_capability;
- fmt = oh323_codec_choose(tmp->nativeformats);
+ ast_codec_pref_append_missing2(&tmp->nativeformats, oh323_capability);
+ fmt = oh323_codec_choose(tmp->nativeformats.bits);
+ fmt = oh323_codec_choose(ast_codec_pref_bits(&tmp->nativeformats));
/*fmt = ast_best_codec(tmp->nativeformats);*/
tmp->writeformat = fmt;
@@ -2927,23 +2929,15 @@ static struct ast_channel *ast_oh323_new
@@ -2927,23 +2930,15 @@ static struct ast_channel *ast_oh323_new
* This function limits the number of outbound H.323 calls.
* Return NULL on error, the pointer to the channel on success.
*/
@ -74,28 +72,32 @@ $FreeBSD$
- ast_log(LOG_ERROR, "Asked to get a channel of unsupported format '%d'\n", format);
- return NULL;
- }
+ type, formats->bits, (char *)data);
+ type, ast_codec_pref_bits(formats), (char *)data);
ast_mutex_lock(&oh323_tab_lock);
@@ -3003,12 +2997,12 @@ static struct ast_channel *oh323_request
@@ -3003,13 +2998,14 @@ static struct ast_channel *oh323_request
oh323_tab[i]->owner = c;
/* Specify our native formats */
- c->nativeformats = format;
- c->rawwriteformat = format;
- c->rawreadformat = format;
- if (option_debug)
+ memcpy(&c->nativeformats, formats, sizeof(struct ast_codec_pref));
+ c->rawwriteformat = formats->bits;
+ c->rawreadformat = formats->bits;
if (option_debug)
+ c->rawwriteformat = ast_codec_pref_bits(formats);
+ c->rawreadformat = ast_codec_pref_bits(formats);
+ if (option_debug) {
+ char tmp[512];
ast_log(LOG_DEBUG, "%s: Native format changed to %s.\n",
- c->name, ast_getformatname(format));
+ c->name, ast_getformatname(formats->bits));
-
+ c->name, ast_codec_pref_dump(tmp, sizeof(tmp), formats));
+ }
ast_mutex_unlock(&oh323_tab_lock);
return c;
@@ -3439,7 +3433,8 @@ char *setup_h323_connection(call_details
}
@@ -3439,7 +3435,8 @@ char *setup_h323_connection(call_details
ast_log(LOG_DEBUG, "Setting channel '%s' native format to %s!\n",
oh323_tab[i]->owner->name,
ast_getformatname(oh323_tab[i]->capability));
@ -105,7 +107,7 @@ $FreeBSD$
}
/* Set environment variables */
@@ -3512,7 +3507,8 @@ char *setup_h323_connection(call_details
@@ -3512,7 +3509,8 @@ char *setup_h323_connection(call_details
ast_log(LOG_DEBUG, "Setting channel '%s' native format to %s!\n",
oh323_tab[i]->owner->name,
ast_getformatname(oh323_tab[i]->capability));
@ -115,7 +117,7 @@ $FreeBSD$
if (oh323_tab[i]->tx_smooth) {
ast_smoother_free(oh323_tab[i]->tx_smooth);
oh323_tab[i]->tx_smooth = NULL;
@@ -4429,7 +4425,7 @@ static int kill_monitor(void)
@@ -4429,7 +4427,7 @@ static int kill_monitor(void)
return(-1);
}
}

View File

@ -1,20 +0,0 @@
--- wrapper/asteriskaudio.cxx.orig Wed Jan 18 11:01:05 2006
+++ wrapper/asteriskaudio.cxx Wed Jan 18 11:01:34 2006
@@ -164,7 +164,7 @@ PAsteriskSoundChannel::~PAsteriskSoundCh
WRAPTRACE(3, "Total I/Os: read=" << readCount << ", write=" << writeCount);
WRAPTRACE(3, "Short I/Os: write=" << shortWriteCount);
WRAPTRACE(4, "Object deleted.");
- baseChannel = NULL;
+// baseChannel = NULL;
}
PStringArray PAsteriskSoundChannel::GetDeviceNames(Directions dir)
@@ -231,7 +231,7 @@ BOOL PAsteriskSoundChannel::Open(const P
**********/
if (deviceFd < 0)
return FALSE;
- baseChannel = this; // XXX Use the old interface of the PSoundChannel
+// baseChannel = this; // XXX Use the old interface of the PSoundChannel
os_handle = deviceFd;
mediaFormat = mediaFmt;
frameTime = frameTm;

View File

@ -1,20 +0,0 @@
--- wrapper/wrapendpoint.cxx.orig Wed Jan 18 11:11:31 2006
+++ wrapper/wrapendpoint.cxx Wed Jan 18 11:12:23 2006
@@ -1206,7 +1206,7 @@ WrapH323EndPoint::CreateConnection(unsig
WRAPTRACE(2, "Incoming connection with no calling party number in SETUP.");
ud.calling_num[0] = '\0';
}
- tmp.MakeEmpty();
+ tmp = PString();
/* Get Called party number */
(setupPDU->GetQ931()).GetCalledPartyNumber(tmp);
if (!tmp.IsEmpty()) {
@@ -1230,7 +1230,7 @@ WrapH323EndPoint::CreateConnection(unsig
WRAPTRACE(2, "Incoming connection with no called party number in SETUP.");
ud.called_num[0] = '\0';
}
- tmp.MakeEmpty();
+ tmp = PString();
/* Get Redirecting number */
(setupPDU->GetQ931()).GetRedirectingNumber(tmp);
if (!tmp.IsEmpty()) {

View File

@ -1,11 +0,0 @@
--- wrapper/wrapper.cxx.orig Wed Jan 18 11:15:33 2006
+++ wrapper/wrapper.cxx Wed Jan 18 11:15:36 2006
@@ -570,7 +570,7 @@ extern "C" {
{ H323Connection::EndedByTemporaryFailure, OH323END_TEMP_FAILURE, "Temporary failure" },
{ H323Connection::EndedByQ931Cause, OH323END_Q931CAUSE, "Call ended with Q.931 cause" },
{ H323Connection::EndedByDurationLimit, OH323END_DURATION_LIMIT, "Call ended due to enforced duration limit" },
- { H323Connection::EndedByInvalidConferenceID, OH323END_INVALIDCID, "Call cleared due to invalid conference ID" },
+// { H323Connection::EndedByInvalidConferenceID, OH323END_INVALIDCID, "Call cleared due to invalid conference ID" },
{ -1, -1, "Unknown reason" },
};

View File

@ -1,5 +1,7 @@
@unexec if cmp -s %D/etc/asterisk/oh323.conf %D/etc/asterisk/oh323.conf.sample; then rm -f %D/etc/asterisk/oh323.conf; fi
etc/asterisk/oh323.conf.sample
@exec [ -f %B/oh323.conf ] || cp %B/%f %B/oh323.conf
lib/liboh323wrap_s.a
lib/asterisk/modules/chan_oh323.so
lib/liboh323wrap.so
lib/liboh323wrap.so.1
lib/liboh323wrap.so.1.1