- Update to 0.9.0;

- add optional support for building with Zaptel module.
This commit is contained in:
Maxim Sobolev 2004-04-30 05:21:08 +00:00
parent 7761770917
commit 962d6e05b4
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=107998
70 changed files with 1848 additions and 217 deletions

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm

View File

@ -6,7 +6,7 @@
#
PORTNAME= asterisk
PORTVERSION= 0.7.2
PORTVERSION= 0.9.0
CATEGORIES= net
MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
@ -14,8 +14,6 @@ MASTER_SITES= ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
FORBIDDEN= http://people.freebsd.org/~eik/portaudit/27c331d5-64c7-11d8-80e3-0020ed76ef5a.html
ONLY_FOR_ARCHS= i386
BUILD_DEPENDS= ${LOCALBASE}/lib/mysql/libmysqlclient.a:${PORTSDIR}/databases/mysql40-client \
@ -36,4 +34,14 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if defined(WITH_ZAPTEL) || exists(${LOCALBASE}/include/zaptel.h)
BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB= ZAPTEL=""
.else
PLIST_SUB= ZAPTEL="@comment "
.endif
.include <bsd.port.post.mk>

View File

@ -1,2 +1,2 @@
MD5 (asterisk-0.7.2.tar.gz) = a1f9485f5f85a4e4129782b6e642e236
SIZE (asterisk-0.7.2.tar.gz) = 2779788
MD5 (asterisk-0.9.0.tar.gz) = cb0fbb5185fdf2356ee30bdcf4ad9b9c
SIZE (asterisk-0.9.0.tar.gz) = 2787458

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- Makefile.orig Wed Jan 14 08:48:38 2004
+++ Makefile Fri Jan 30 02:25:09 2004
--- Makefile.orig Thu Apr 1 01:43:10 2004
+++ Makefile Wed Apr 14 22:08:43 2004
@@ -43,10 +43,10 @@
#K6OPT = -DK6OPT
@ -25,7 +25,7 @@ $FreeBSD$
# Staging directory
# Files are copied here temporarily during the install process
@@ -88,28 +88,26 @@
@@ -88,28 +88,27 @@
# Don't use together with -DBUSYDETECT_TONEONLY
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
@ -51,11 +51,11 @@ $FreeBSD$
MODULES_DIR=$(ASTLIBDIR)/modules
AGI_DIR=$(ASTVARLIBDIR)/agi-bin
INCLUDE=-Iinclude -I../include
INCLUDE=-Iinclude -I../include
-CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+CFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
CFLAGS+=$(OPTIMIZE)
-CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
ifeq (${OSARCH},FreeBSD)
-CFLAGS+=-pthread
@ -64,7 +64,7 @@ $FreeBSD$
endif
ifeq (${OSARCH},OpenBSD)
CFLAGS+=-pthread
@@ -151,7 +149,7 @@
@@ -151,7 +150,7 @@
LIBS=-pthread
else
ifeq (${OSARCH},FreeBSD)
@ -73,7 +73,7 @@ $FreeBSD$
else
endif
endif
@@ -179,7 +177,7 @@
@@ -179,7 +178,7 @@
SOLINK=-shared -Xlinker -x
endif
@ -82,7 +82,7 @@ $FreeBSD$
INSTALL=install
_all: all
@@ -200,13 +198,13 @@
@@ -200,13 +199,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@ -103,7 +103,7 @@ $FreeBSD$
ifneq ($(wildcard .depend),)
include .depend
@@ -244,8 +242,8 @@
@@ -244,8 +243,8 @@
exit 1; \
fi
@ -114,7 +114,7 @@ $FreeBSD$
subdirs:
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
@@ -260,10 +258,10 @@
@@ -260,10 +259,10 @@
$(MAKE) -C stdtime clean
datafiles: all
@ -127,7 +127,7 @@ $FreeBSD$
else \
echo "No description for $$x"; \
exit 1; \
@@ -271,18 +269,18 @@
@@ -271,18 +270,18 @@
done
for x in sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-*; do \
if grep -q "^%`basename $$x`%" sounds.txt; then \
@ -151,7 +151,7 @@ $FreeBSD$
update:
@if [ -d CVS ]; then \
@@ -294,105 +292,74 @@
@@ -294,105 +293,74 @@
fi
bininstall: all

View File

@ -1,9 +1,9 @@
$FreeBSD$
--- channels/Makefile.orig Fri Jan 23 22:57:48 2004
+++ channels/Makefile Thu Feb 19 01:48:41 2004
@@ -26,12 +26,10 @@
--- channels/Makefile.orig Thu Mar 25 11:43:36 2004
+++ channels/Makefile Thu Apr 29 14:36:36 2004
@@ -33,12 +33,10 @@
#
#CHANNEL_LIBS+=chan_vofr
@ -17,7 +17,25 @@ $FreeBSD$
CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
@@ -99,10 +97,8 @@
@@ -48,7 +46,7 @@
CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
@@ -69,7 +67,7 @@
ZAPDIR=/usr/lib
-CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
@@ -110,10 +108,8 @@
chan_oss.o: chan_oss.c busy.h ringtone.h
@ -29,7 +47,16 @@ $FreeBSD$
chan_iax2.so: chan_iax2.o iax2-parser.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -146,15 +142,17 @@
@@ -133,7 +129,7 @@
$(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
chan_zap.so: chan_zap.o
- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
chan_sip.so: chan_sip.o
ifeq ($(USE_MYSQL_FRIENDS),1)
@@ -157,16 +153,17 @@
chan_vpb.so: chan_vpb.o
$(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
@ -46,6 +73,7 @@ $FreeBSD$
install: all
- for x in $(CHANNEL_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
+ for x in $(CHANNEL_LIBS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
depend: .depend

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_iax2.c 2004/04/29 21:36:51 1.1
+++ channels/chan_iax2.c 2004/04/29 21:37:10
@@ -52,7 +52,7 @@
#include <sys/stat.h>
#ifdef IAX_TRUNKING
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#endif
#ifdef MYSQL_FRIENDS
#include <mysql/mysql.h>

View File

@ -0,0 +1,120 @@
$FreeBSD$
--- channels/chan_sip.c.orig Wed Jan 14 08:10:53 2004
+++ channels/chan_sip.c Fri Jan 30 01:47:34 2004
@@ -124,7 +124,7 @@
static int restart_monitor(void);
/* Codecs that we support by default: */
-static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+static int capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 | AST_FORMAT_G723_1 | AST_FORMAT_G729A;
static int noncodeccapability = AST_RTP_DTMF;
static char ourhost[256];
@@ -176,6 +176,7 @@
struct sip_route {
struct sip_route *next;
char hop[0];
+ int lr;
};
static struct sip_pvt {
@@ -3417,6 +3418,10 @@
/* Make a struct route */
thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
if (thishop) {
+ if (strnstr(rr, ";lr", len) != NULL)
+ thishop->lr = 1;
+ else
+ thishop->lr = 0;
strncpy(thishop->hop, rr, len);
thishop->hop[len] = '\0';
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
@@ -3440,31 +3445,41 @@
rr += len+1;
}
}
- /* 2nd append the Contact: if there is one */
- /* Can be multiple Contact headers, comma separated values - we just take the first */
- contact = get_header(req, "Contact");
- if (strlen(contact)) {
- ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
- /* Look for <: delimited address */
- c = strchr(contact, '<');
- if (c) {
- /* Take to > */
- ++c;
- len = strcspn(c, ">");
- } else {
- /* No <> - just take the lot */
- c = contact; len = strlen(contact);
- }
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ /* Duplicate first route from the list */
+ if (head && head->lr) {
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+strlen(head->hop)+1);
if (thishop) {
- strncpy(thishop->hop, c, len);
- thishop->hop[len] = '\0';
- thishop->next = NULL;
- /* Goes at the end */
- if (tail)
- tail->next = thishop;
- else
- head = thishop;
+ memcpy(thishop, head, sizeof(struct sip_route)+strlen(head->hop)+1);
+ thishop->next = head;
+ head = thishop;
+ }
+ } else {
+ /* Append the Contact: if there is one and first route is w/o `lr' param */
+ /* Can be multiple Contact headers, comma separated values - we just take the first */
+ contact = get_header(req, "Contact");
+ if (strlen(contact)) {
+ ast_log(LOG_DEBUG, "build_route: Contact hop: %s\n", contact);
+ /* Look for <: delimited address */
+ c = strchr(contact, '<');
+ if (c) {
+ /* Take to > */
+ ++c;
+ len = strcspn(c, ">");
+ } else {
+ /* No <> - just take the lot */
+ c = contact; len = strlen(contact);
+ }
+ thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ if (thishop) {
+ strncpy(thishop->hop, c, len);
+ thishop->hop[len] = '\0';
+ thishop->next = NULL;
+ /* Goes at the end */
+ if (tail)
+ tail->next = thishop;
+ else
+ head = thishop;
+ }
}
}
/* Store as new route */
@@ -5143,7 +5158,11 @@
/* Get destination right away */
gotdest = get_destination(p, NULL);
get_rdnis(p, NULL);
- extract_uri(p, req);
+ build_route(p, req, 0);
+ if (!p->route->lr)
+ strncpy(p->uri, p->route->hop, sizeof(p->uri) - 1);
+ else
+ extract_uri(p, req);
build_contact(p);
if (gotdest) {
@@ -5165,7 +5184,6 @@
c = sip_new(p, AST_STATE_DOWN, strlen(p->username) ? p->username : NULL);
*recount = 1;
/* Save Record-Route for any later requests we make on this dialogue */
- build_route(p, req, 0);
if (c) {
/* Pre-lock the call */
ast_mutex_lock(&c->lock);

View File

@ -0,0 +1,14 @@
$FreeBSD$
--- channels/chan_zap.c 2004/04/29 21:36:51 1.1
+++ channels/chan_zap.c 2004/04/29 21:37:17
@@ -45,7 +45,7 @@
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
-#include <linux/zaptel.h>
+#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>

View File

@ -1,8 +1,8 @@
$FreeBSD$
--- codecs/lpc10/Makefile.orig Thu Jan 8 18:52:11 2004
+++ codecs/lpc10/Makefile Fri Jan 30 02:06:54 2004
--- codecs/lpc10/Makefile.orig Mon Mar 15 18:52:28 2004
+++ codecs/lpc10/Makefile Wed Apr 14 22:13:47 2004
@@ -3,7 +3,7 @@
#
@ -12,7 +12,7 @@ $FreeBSD$
#
# These definitions for CFLAGS and LIB_TARGET_DIR are used when one
@@ -22,14 +22,14 @@
@@ -22,7 +22,7 @@
#
WARNINGS = -Wall -Wno-comment -Wno-error
@ -20,12 +20,13 @@ $FreeBSD$
+CFLAGS += $(OPTIMIZE) -I$(LIB_TARGET_DIR) $(WARNINGS) -fPIC
#CFLAGS+= $(shell if uname -m | grep -q 86; then echo "-mpentium" ; fi)
#fix for PPC processors
ifneq ($(OSARCH),Darwin)
#fix for PPC processors and ALPHA too
@@ -30,7 +30,7 @@
ifneq ($(PROC),ppc)
ifneq ($(PROC),x86_64)
ifneq ($(PROC),alpha)
- CFLAGS+= -march=$(PROC)
+ CFLAGS+=
+ CFLAGS+=
endif
endif
endif

View File

@ -0,0 +1,42 @@
$FreeBSD$
--- rtp.c.orig Tue Nov 25 23:15:28 2003
+++ rtp.c Fri Jan 30 01:47:34 2004
@@ -114,7 +114,7 @@
{
switch(buf & TYPE_MASK) {
case TYPE_DONTSEND:
- return 0;
+ return 2;
break;
case TYPE_SILENCE:
return 4;
@@ -1028,19 +1028,6 @@
while((f = ast_smoother_read(rtp->smoother)))
ast_rtp_raw_write(rtp, f, codec);
break;
- case AST_FORMAT_G729A:
- if (!rtp->smoother) {
- rtp->smoother = ast_smoother_new(20);
- }
- if (!rtp->smoother) {
- ast_log(LOG_WARNING, "Unable to create g729 smoother :(\n");
- return -1;
- }
- ast_smoother_feed(rtp->smoother, _f);
-
- while((f = ast_smoother_read(rtp->smoother)))
- ast_rtp_raw_write(rtp, f, codec);
- break;
case AST_FORMAT_GSM:
if (!rtp->smoother) {
rtp->smoother = ast_smoother_new(33);
@@ -1071,6 +1058,7 @@
case AST_FORMAT_H261:
case AST_FORMAT_H263:
case AST_FORMAT_G723_1:
+ case AST_FORMAT_G729A:
case AST_FORMAT_SPEEX:
// Don't buffer outgoing frames; send them one-per-packet:
if (_f->offset < hdrlen) {

View File

@ -200,7 +200,6 @@ lib/asterisk/modules/app_zapateller.so
lib/asterisk/modules/cdr_csv.so
lib/asterisk/modules/chan_agent.so
lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
@ -211,6 +210,7 @@ lib/asterisk/modules/chan_modem_i4l.so
lib/asterisk/modules/chan_oss.so
lib/asterisk/modules/chan_sip.so
lib/asterisk/modules/chan_skinny.so
%%ZAPTEL%%lib/asterisk/modules/chan_zap.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
@ -377,6 +377,11 @@ share/asterisk/sounds/tt-monkeysintro.gsm
share/asterisk/sounds/tt-somethingwrong.gsm
share/asterisk/sounds/tt-weasels.gsm
share/asterisk/sounds/vm
share/asterisk/sounds/vm-Cust1.gsm
share/asterisk/sounds/vm-Cust2.gsm
share/asterisk/sounds/vm-Cust3.gsm
share/asterisk/sounds/vm-Cust4.gsm
share/asterisk/sounds/vm-Cust5.gsm
share/asterisk/sounds/vm-Family.gsm
share/asterisk/sounds/vm-Friends.gsm
share/asterisk/sounds/vm-INBOX.gsm
@ -447,6 +452,7 @@ share/asterisk/sounds/voicemail
@dirrm lib/asterisk
@dirrm include/asterisk
@dirrm etc/asterisk
@unexec rm -f %D/share/asterisk/astdb
@cwd /var
spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm