aboutsummaryrefslogtreecommitdiffstats
path: root/net/asterisk
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2006-01-18 06:27:45 +0800
committersobomax <sobomax@FreeBSD.org>2006-01-18 06:27:45 +0800
commit41ebb09a42e72a07d9cba26b5f2fc07ef7a520cf (patch)
treea50c0ed1c778d55dabd7993a379cce54313ae9dd /net/asterisk
parenta8a010f61e1ec050cb77ee08e4118d27c11faa85 (diff)
downloadfreebsd-ports-gnome-41ebb09a42e72a07d9cba26b5f2fc07ef7a520cf.tar.gz
freebsd-ports-gnome-41ebb09a42e72a07d9cba26b5f2fc07ef7a520cf.tar.zst
freebsd-ports-gnome-41ebb09a42e72a07d9cba26b5f2fc07ef7a520cf.zip
Update to 1.2.1.
Diffstat (limited to 'net/asterisk')
-rw-r--r--net/asterisk/Makefile22
-rw-r--r--net/asterisk/distinfo7
-rw-r--r--net/asterisk/files/chan_oss.c1327
-rw-r--r--net/asterisk/files/patch-Makefile525
-rw-r--r--net/asterisk/files/patch-agi::Makefile11
-rw-r--r--net/asterisk/files/patch-apps::Makefile74
-rw-r--r--net/asterisk/files/patch-apps::app_rxfax.c10
-rw-r--r--net/asterisk/files/patch-apps::app_txfax.c8
-rw-r--r--net/asterisk/files/patch-astman::Makefile25
-rw-r--r--net/asterisk/files/patch-cdr::Makefile80
-rw-r--r--net/asterisk/files/patch-channels::Makefile132
-rw-r--r--net/asterisk/files/patch-channels::chan_h323.c20
-rw-r--r--net/asterisk/files/patch-channels::chan_sip.c233
-rw-r--r--net/asterisk/files/patch-channels::chan_zap.c76
-rw-r--r--net/asterisk/files/patch-channels::h323::Makefile39
-rw-r--r--net/asterisk/files/patch-channels::h323::ast_h323.cpp16
-rw-r--r--net/asterisk/files/patch-channels::h323::ast_h323.h16
-rw-r--r--net/asterisk/files/patch-codecs::Makefile73
-rw-r--r--net/asterisk/files/patch-codecs::codec_g723_1_dummy.c314
-rw-r--r--net/asterisk/files/patch-codecs::codec_g729_dummy.c281
-rw-r--r--net/asterisk/files/patch-codecs::g729_slin_ex.h20
-rw-r--r--net/asterisk/files/patch-codecs::ilbc::Makefile17
-rw-r--r--net/asterisk/files/patch-codecs::slin_g729_ex.h31
-rw-r--r--net/asterisk/files/patch-configs::musiconhold.conf.sample14
-rw-r--r--net/asterisk/files/patch-db.c23
-rw-r--r--net/asterisk/files/patch-formats::Makefile18
-rw-r--r--net/asterisk/files/patch-formats::format_g723_1.c47
-rw-r--r--net/asterisk/files/patch-formats::format_g729.c25
-rw-r--r--net/asterisk/files/patch-funcs::Makefile14
-rw-r--r--net/asterisk/files/patch-pbx::Makefile20
-rw-r--r--net/asterisk/files/patch-pbx::pbx_wilcalu.c14
-rw-r--r--net/asterisk/files/patch-res-res_watchdog.c13
-rw-r--r--net/asterisk/files/patch-res::Makefile50
-rw-r--r--net/asterisk/files/patch-rtp.c22
-rw-r--r--net/asterisk/files/patch-utils::Makefile34
-rw-r--r--net/asterisk/pkg-plist159
36 files changed, 1008 insertions, 2802 deletions
diff --git a/net/asterisk/Makefile b/net/asterisk/Makefile
index 276aa57eb71c..3cfbf7e2cfb8 100644
--- a/net/asterisk/Makefile
+++ b/net/asterisk/Makefile
@@ -6,30 +6,24 @@
#
PORTNAME= asterisk
-PORTVERSION= 1.0.9
-PORTREVISION= 2
+PORTVERSION= 1.2.1
CATEGORIES= net
MASTER_SITES= http://ftp.digium.com/pub/asterisk/ \
http://ftp.digium.com/pub/asterisk/old-releases/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/ \
ftp://ftp.asterisk.org/pub/telephony/asterisk/old-releases/
-PATCHFILES= ${PORTNAME}-1.0.8-${BRIVER}.patch.gz
-PATCH_SITES= ${MASTER_SITE_LOCAL}
-PATCH_SITE_SUBDIR= fjoe
-PATCH_DIST_STRIP= -p1
-
MAINTAINER= sobomax@FreeBSD.org
COMMENT= An Open Source PBX and telephony toolkit
BUILD_DEPENDS= mpg123:${PORTSDIR}/audio/mpg123
LIB_DEPENDS= speex.3:${PORTSDIR}/audio/speex \
- newt.51:${PORTSDIR}/devel/newt
+ newt.51:${PORTSDIR}/devel/newt \
+ curl.3:${PORTSDIR}/ftp/curl
RUN_DEPENDS= mpg123:${PORTSDIR}/audio/mpg123
ONLY_FOR_ARCHS= i386 sparc64 amd64
-BRIVER= bristuff-0.2.0-RC8h
GNU_CONFIGURE= yes
CONFIGURE_WRKSRC= ${WRKSRC}/editline
USE_GMAKE= yes
@@ -44,7 +38,7 @@ MAKE_ENV= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
OSVERSION=${OSVERSION} \
CXX="${CXX}"
-MAN8= asterisk.8
+MAN8= asterisk.8 astgenkey.8 autosupport.8 safe_asterisk.8
.include <bsd.port.pre.mk>
@@ -68,8 +62,9 @@ MAKE_ENV+= WITH_H323=1
.if defined(WITHOUT_ZAPTEL)
PLIST_SUB+= WITH_ZAPTEL="@comment "
.else
+BUILD_DEPENDS+= libpri>=1.2.0:${PORTSDIR}/misc/libpri \
+ ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
LIB_DEPENDS+= pri.1:${PORTSDIR}/misc/libpri
-BUILD_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
RUN_DEPENDS+= ${LOCALBASE}/include/zaptel.h:${PORTSDIR}/misc/zaptel
PLIST_SUB+= WITH_ZAPTEL=""
MAKE_ENV+= WITH_ZAPTEL=1
@@ -86,10 +81,6 @@ PLIST_SUB+= WITH_ODBC=""
MAKE_ENV+= WITH_ODBC=1
.endif
-.if !defined(WITHOUT_MYSQL)
-USE_MYSQL= yes
-.endif
-
.if defined(WITHOUT_FAX)
PLIST_SUB+= WITH_FAX="@comment "
.else
@@ -99,7 +90,6 @@ PLIST_SUB+= WITH_FAX=""
.endif
post-patch:
- ${CP} ${FILESDIR}/chan_oss.c ${WRKSRC}/channels
${REINPLACE_CMD} -e 's|/var/lib|${PREFIX}/share|g' ${WRKSRC}/configs/musiconhold.conf.sample
.include <bsd.port.post.mk>
diff --git a/net/asterisk/distinfo b/net/asterisk/distinfo
index 9ef6daa2ce76..9d56959bc9d2 100644
--- a/net/asterisk/distinfo
+++ b/net/asterisk/distinfo
@@ -1,4 +1,3 @@
-MD5 (asterisk-1.0.9.tar.gz) = 0d7f1c680ae53a739f26a069ef8b580a
-SIZE (asterisk-1.0.9.tar.gz) = 9604582
-MD5 (asterisk-1.0.8-bristuff-0.2.0-RC8h.patch.gz) = 42172c5b04af9080f22b883296c34002
-SIZE (asterisk-1.0.8-bristuff-0.2.0-RC8h.patch.gz) = 56589
+MD5 (asterisk-1.2.1.tar.gz) = 04657086791e80f319c0d728af705001
+SHA256 (asterisk-1.2.1.tar.gz) = f0d3ed36353c1f5726225d2794bea7d1d1a92c9e58336b02b293f43dd4b97948
+SIZE (asterisk-1.2.1.tar.gz) = 10517194
diff --git a/net/asterisk/files/chan_oss.c b/net/asterisk/files/chan_oss.c
deleted file mode 100644
index 95a92369882d..000000000000
--- a/net/asterisk/files/chan_oss.c
+++ /dev/null
@@ -1,1327 +0,0 @@
-/*
- * Asterisk -- A telephony toolkit for Linux.
- *
- * Copyright (C) 1999, Mark Spencer
- *
- * Mark Spencer <markster@linux-support.net>
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License
- *
- * FreeBSD changes and multiple device support by Luigi Rizzo, 2005.05.02
- * note-this code best seen with ts=8 (8-spaces tabs) in the editor
- */
-
-#include <asterisk/lock.h>
-#include <asterisk/frame.h>
-#include <asterisk/logger.h>
-#include <asterisk/channel.h>
-#include <asterisk/module.h>
-#include <asterisk/channel_pvt.h>
-#include <asterisk/options.h>
-#include <asterisk/pbx.h>
-#include <asterisk/config.h>
-#include <asterisk/cli.h>
-#include <asterisk/utils.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h> /* for isalnum */
-#ifdef __linux
-#include <linux/soundcard.h>
-#elif defined(__FreeBSD__)
-#include <sys/soundcard.h>
-#else
-#include <soundcard.h>
-#endif
-#include "busy.h"
-#include "ringtone.h"
-#include "ring10.h"
-#include "answer.h"
-
-/*
- * Helper macros to parse config arguments. They will go in a common
- * header file if their usage is globally accepted. In the meantime,
- * we define them here. Typical usage is as below, WITHOUT ; on each line.
- *
- * {
- * M_START(v->name, v->value)
- *
- * M_BOOL("dothis", x->flag1)
- * M_STR("name", x->somestring)
- * M_F("bar", some_c_code)
- * M_END(some_final_statement)
- */
-#define M_START(var, val) \
- char *__s = var; char *__val = val;
-#define M_END(x) x;
-#define M_F(tag, f) if (!strcasecmp((__s), tag)) { f; } else
-#define M_BOOL(tag, dst) M_F(tag, (dst) = ast_true(__val) )
-#define M_UINT(tag, dst) M_F(tag, (dst) = strtoul(__val, NULL, 0) )
-#define M_STR(tag, dst) M_F(tag, strncpy(dst, __val, sizeof(dst) - 1) )
-
-
-/* Which device to use */
-#if defined( __OpenBSD__ ) || defined( __NetBSD__ )
-#define DEV_DSP "/dev/audio"
-#else
-#define DEV_DSP "/dev/dsp"
-#endif
-
-/*
- * Basic mode of operation:
- *
- * we have one keyboard (which receives commands from the keyboard)
- * and multiple headset's connected to audio cards. Headsets are named as
- * the sections of oss.conf
- *
- * At any time, the keyboard is attached to one headset, and you
- * can switch among them using the 'console' command.
- *
- * The following parameters are important for the configuration of
- * the device:
- *
- * FRAME_SIZE the size of an audio frame, in samples.
- * 160 is used almost universally, so you should not change it.
- *
- * FRAGS the argument for the SETFRAGMENT ioctl.
- * Overridden by the 'frags' parameter in oss.conf
- *
- * Bits 0-7 are the base-2 log of the device's block size,
- * bits 16-31 are the number of blocks in the driver's queue.
- * There are a lot of differences in the way this parameter
- * is supported by different drivers, so you may need to
- * experiment a bit with the value.
- * A good default for linux is 30 blocks of 64 bytes, which
- * results in 6 frames of 320 bytes (160 samples).
- * FreeBSD works decently with blocks of 256 or 512 bytes,
- * leaving the number unspecified.
- * Note that this only refers to the device buffer size,
- * this module will then try to keep the lenght of audio
- * buffered within small constraints.
- *
- * QUEUE_SIZE The max number of blocks actually allowed in the device
- * driver's buffer, irrespective of the available number.
- * Overridden by the 'queuesize' parameter in oss.conf
- *
- * Should be >=2, and at most as large as the hw queue above
- * (otherwise it will never be full).
- */
-
-#define FRAME_SIZE 160
-#define QUEUE_SIZE 10
-
-#if defined(__FreeBSD__)
-#define FRAGS 0x8
-#else
-#define FRAGS ( ( (6 * 5) << 16 ) | 0x6 )
-#endif
-
-
-/* Don't switch between read/write modes faster than every 300 ms */
-#define MIN_SWITCH_TIME 300
-
-
-static int usecnt;
-AST_MUTEX_DEFINE_STATIC(usecnt_lock);
-
-static char *desc = "OSS Console Channel Driver";
-static char *tdesc = "OSS Console Channel Driver";
-static char *config = "oss.conf"; /* default config file */
-
-static int oss_debug;
-
-/*
- * Each sound is made of 'datalen' samples of sound, repeated as needed to
- * generate 'samplen' samples of data, then followed by 'silencelen' samples
- * of silence. The loop is repeated if 'repeat' is set.
- */
-struct sound {
- int ind;
- char *desc;
- short *data;
- int datalen;
- int samplen;
- int silencelen;
- int repeat;
-};
-
-static struct sound sounds[] = {
- { AST_CONTROL_RINGING, "RINGING", ringtone, sizeof(ringtone)/2, 16000, 32000, 1 },
- { AST_CONTROL_BUSY, "BUSY", busy, sizeof(busy)/2, 4000, 4000, 1 },
- { AST_CONTROL_CONGESTION, "CONGESTION", busy, sizeof(busy)/2, 2000, 2000, 1 },
- { AST_CONTROL_RING, "RING10", ring10, sizeof(ring10)/2, 16000, 32000, 1 },
- { AST_CONTROL_ANSWER, "ANSWER", answer, sizeof(answer)/2, 2200, 0, 0 },
- { -1, NULL, 0, 0, 0, 0 }, /* end marker */
-};
-
-
-/*
- * descriptor for one of our channels.
- * There is one used for 'default' values (from the [general] entry in
- * the configuration file, and then one instance for each device
- * (the default is cloned from [general], others are only created
- * if the relevant section exists.
- */
-struct chan_oss_pvt {
- struct chan_oss_pvt *next;
-
- char *type;
- char *name;
- /*
- * cursound indicates which in struct sound we play. -1 means nothing,
- * any other value is a valid sound, in which case sampsent indicates
- * the next sample to send in [0..samplen + silencelen]
- * nosound is set to disable the audio data from the channel
- * (so we can play the tones etc.).
- */
- int sndcmd[2]; /* Sound command pipe */
- int cursound; /* index of sound to send */
- int sampsent; /* # of sound samples sent */
- int nosound; /* set to block audio from the PBX */
-
- int total_blocks; /* total blocks in the output device */
- int sounddev;
- enum { M_UNSET, M_FULL, M_READ, M_WRITE } duplex;
- int autoanswer;
- int autohangup;
- int hookstate;
- struct timeval lasttime; /* last setformat */
- char *mixer_cmd; /* initial command to issue to the mixer */
- unsigned int queuesize; /* max fragments in queue */
- unsigned int frags; /* parameter for SETFRAGMENT */
-
- int warned; /* various flags used for warnings */
-#define WARN_used_blocks 1
-#define WARN_speed 2
-#define WARN_frag 4
- int w_errors; /* overfull in the write path */
-
- int silencesuppression;
- int silencethreshold;
- int playbackonly;
- char device[64]; /* device to open */
-
- pthread_t sthread;
-
- struct ast_channel *owner;
- char ext[AST_MAX_EXTENSION];
- char ctx[AST_MAX_EXTENSION];
- char language[MAX_LANGUAGE];
-
- /* buffers used in oss_write */
- char oss_write_buf[FRAME_SIZE*2];
- int oss_write_dst;
- /* buffers used in oss_read - AST_FRIENDLY_OFFSET space for headers
- * plus enough room for a full frame
- */
- char oss_read_buf[FRAME_SIZE * 2 + AST_FRIENDLY_OFFSET];
- int readpos; /* read position above */
- struct ast_frame read_f; /* returned by oss_read */
-};
-
-static struct chan_oss_pvt oss_default = {
- .type = "Console",
- .cursound = -1,
- .sounddev = -1,
- .duplex = M_UNSET, /* XXX check this */
- .autoanswer = 1,
- .autohangup = 1,
- .queuesize = QUEUE_SIZE,
- .frags = FRAGS,
- .silencethreshold = 1000, /* currently unused */
- .ext = "s",
- .ctx = "default",
- .readpos = AST_FRIENDLY_OFFSET, /* start here on reads */
-};
-
-static char *oss_active; /* the active device */
-
-/*
- * returns true if too early to switch
- */
-static int too_early(struct chan_oss_pvt *o)
-{
- struct timeval tv;
- int ms;
- gettimeofday(&tv, NULL);
- ms = (tv.tv_sec - o->lasttime.tv_sec) * 1000 +
- (tv.tv_usec - o->lasttime.tv_usec) / 1000;
- if (ms < MIN_SWITCH_TIME)
- return -1;
- return 0;
-}
-
-/*
- * Returns the number of blocks used in the audio output channel
- */
-static int used_blocks(struct chan_oss_pvt *o)
-{
- struct audio_buf_info info;
-
- if (ioctl(o->sounddev, SNDCTL_DSP_GETOSPACE, &info)) {
- if (! (o->warned & WARN_used_blocks)) {
- ast_log(LOG_WARNING, "Error reading output space\n");
- o->warned |= WARN_used_blocks;
- }
- return 1;
- }
- if (o->total_blocks == 0) {
- if (0) /* debugging */
- ast_log(LOG_WARNING, "fragtotal %d size %d avail %d\n",
- info.fragstotal,
- info.fragsize,
- info.fragments);
- o->total_blocks = info.fragments;
- }
- return o->total_blocks - info.fragments;
-}
-
-static int soundcard_writeframe(struct chan_oss_pvt *o, short *data)
-{
- /* Write an exactly FRAME_SIZE sized frame */
- int res;
-
- /*
- * Nothing complex to manage the audio device queue.
- * If the buffer is full just drop the extra, otherwise write.
- * XXX in some cases it might be useful to write anyways after
- * a number of failures, to restart the output chain.
- */
- res = used_blocks(o);
- if (res > o->queuesize) { /* no room to write a block */
- if (o->w_errors++ == 0 && (oss_debug & 0x4))
- ast_log(LOG_WARNING, "write: used %d blocks (%d)\n",
- res, o->w_errors);
- return 0;
- }
- o->w_errors = 0;
- res = write(o->sounddev, ((void *)data), FRAME_SIZE * 2);
- return res;
-}
-
-/*
- * handler for 'sound writable' events from the sound thread.
- * Builds a frame from the high level description of the sounds,
- * and passes it to the audio device.
- * The actual sound is made of 1 or more sequences of sound samples
- * (s->datalen, repeated to make s->samplen samples) followed by
- * s->silencelen samples of silence. The position in the sequence is stored
- * in o->sampsent, which goes between 0 .. s->samplen+s->silencelen.
- * In case we fail to write a frame, don't update o->sampsent.
- */
-static void send_sound(struct chan_oss_pvt *o)
-{
- short myframe[FRAME_SIZE];
- int ofs, l, start;
- int l_sampsent = o->sampsent;
- struct sound *s;
-
- if (o->cursound < 0) /* no sound to send */
- return;
- s = &sounds[o->cursound];
- for (ofs = 0; ofs < FRAME_SIZE; ofs += l) {
- l = s->samplen - l_sampsent; /* sound available */
- if (l > 0) {
- start = l_sampsent % s->datalen; /* source offset */
- if (l > FRAME_SIZE - ofs) /* don't overflow the frame */
- l = FRAME_SIZE - ofs;
- if (l > s->datalen - start) /* don't overflow the source */
- l = s->datalen - start;
- bcopy(s->data + start, myframe + ofs, l*2);
- if (0)
- ast_log(LOG_WARNING, "send_sound sound %d/%d of %d into %d\n",
- l_sampsent, l, s->samplen, ofs);
- l_sampsent += l;
- } else { /* no sound, maybe some silence */
- static short silence[FRAME_SIZE] = {0, };
-
- l += s->silencelen;
- if (l > 0) {
- if (l > FRAME_SIZE - ofs)
- l = FRAME_SIZE - ofs;
- bcopy(silence, myframe + ofs, l*2);
- l_sampsent += l;
- } else { /* silence is over, restart sound if loop */
- if (s->repeat == 0) { /* last block */
- o->cursound = -1;
- o->nosound = 0; /* allow audio data */
- if (ofs < FRAME_SIZE) /* pad with silence */
- bcopy(silence, myframe + ofs, (FRAME_SIZE - ofs)*2);
- }
- l_sampsent = 0;
- }
- }
- }
- l = soundcard_writeframe(o, myframe);
- if (l > 0)
- o->sampsent = l_sampsent; /* update status */
-}
-
-static void *sound_thread(void *arg)
-{
- char ign[4096];
- struct chan_oss_pvt *o = (struct chan_oss_pvt *)arg;
-
- /* kick the driver by trying to read from it. Ignore errors */
- read(o->sounddev, ign, sizeof(ign));
- for(;;) {
- fd_set rfds, wfds;
- int maxfd, res;
-
- FD_ZERO(&rfds);
- FD_ZERO(&wfds);
- maxfd = o->sndcmd[0]; /* pipe from the main process */
- FD_SET(o->sndcmd[0], &rfds);
- if (!o->owner) { /* no one owns the audio, so we must drain it */
- FD_SET(o->sounddev, &rfds);
- if (o->sounddev > maxfd)
- maxfd = o->sounddev;
- }
- if (o->cursound > -1) {
- FD_SET(o->sounddev, &wfds);
- if (o->sounddev > maxfd)
- maxfd = o->sounddev;
- }
- /* ast_select emulates linux behaviour in terms of timeout handling */
- res = ast_select(maxfd + 1, &rfds, &wfds, NULL, NULL);
- if (res < 1) {
- ast_log(LOG_WARNING, "select failed: %s\n",
- strerror(errno));
- continue;
- }
- if (FD_ISSET(o->sndcmd[0], &rfds)) {
- /* read which sound to play from the pipe */
- int i, what = -1;
-
- read(o->sndcmd[0], &what, sizeof(what));
- for (i = 0; sounds[i].ind != -1; i++) {
- if (sounds[i].ind == what) {
- o->cursound = i;
- o->sampsent = 0;
- o->nosound = 1; /* block audio from pbx */
- break;
- }
- }
- if (sounds[i].ind == -1)
- ast_log(LOG_WARNING, "invalid sound index: %d\n", what);
- }
- if (FD_ISSET(o->sounddev, &rfds)) { /* read and ignore errors */
- read(o->sounddev, ign, sizeof(ign));
- }
- if (FD_ISSET(o->sounddev, &wfds))
- send_sound(o);
- }
- /* Never reached */
- return NULL;
-}
-
-/*
- * reset and close the device if opened,
- * then open and initialize it in the desired mode,
- * trigger reads and writes so we can start using it.
- */
-static int setformat(struct chan_oss_pvt *o, int mode)
-{
- int fmt, desired, res, fd;
-
- if (o->sounddev >= 0) {
- ioctl(o->sounddev, SNDCTL_DSP_RESET, 0);
- close(o->sounddev);
- o->duplex = M_UNSET;
- }
- fd = o->sounddev = open(o->device, mode |O_NONBLOCK);
- if (o->sounddev < 0) {
- ast_log(LOG_WARNING, "Unable to re-open DSP device: %s\n",
- strerror(errno));
- return -1;
- }
-
- gettimeofday(&o->lasttime, NULL);
- fmt = AFMT_S16_LE;
- res = ioctl(fd, SNDCTL_DSP_SETFMT, &fmt);
- if (res < 0) {
- ast_log(LOG_WARNING, "Unable to set format to 16-bit signed\n");
- return -1;
- }
- switch (mode) {
- case O_RDWR:
- res = ioctl(fd, SNDCTL_DSP_SETDUPLEX, 0);
- /* Check to see if duplex set (FreeBSD Bug)*/
- res = ioctl(fd, SNDCTL_DSP_GETCAPS, &fmt);
- if (res == 0 && (fmt & DSP_CAP_DUPLEX)) {
- if (option_verbose > 1)
- ast_verbose(VERBOSE_PREFIX_2 "Console is full duplex\n");
- o->duplex = M_FULL;
- };
- break;
- case O_WRONLY:
- o->duplex = M_WRITE;
- break;
- case O_RDONLY:
- o->duplex = M_READ;
- break;
- }
-
- fmt = 0;
- res = ioctl(fd, SNDCTL_DSP_STEREO, &fmt);
- if (res < 0) {
- ast_log(LOG_WARNING, "Failed to set audio device to mono\n");
- return -1;
- }
- /* 8000 Hz desired */
- desired = 8000;
- fmt = desired;
- res = ioctl(fd, SNDCTL_DSP_SPEED, &fmt);
-
- if (res < 0) {
- ast_log(LOG_WARNING, "Failed to set audio device to mono\n");
- return -1;
- }
- if (fmt != desired) {
- if (!(o->warned & WARN_speed)) {
- ast_log(LOG_WARNING,
- "Requested %d Hz, got %d Hz -- sound may be choppy\n",
- desired, fmt);
- o->warned |= WARN_speed;
- }
- }
- /*
- * on Freebsd, SETFRAGMENT does not work very well on some cards.
- * Default to use 256 bytes, let the user override
- */
- if (o->frags) {
- fmt = o->frags;
- res = ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &fmt);
- if (res < 0) {
- if (!(o->warned & WARN_frag)) {
- ast_log(LOG_WARNING,
- "Unable to set fragment size -- sound may be choppy\n");
- o->warned |= WARN_frag;
- }
- }
- }
- /* XXX on some cards, we need SNDCTL_DSP_SETTRIGGER to start outputting */
- res = PCM_ENABLE_INPUT | PCM_ENABLE_OUTPUT;
- res = ioctl(fd, SNDCTL_DSP_SETTRIGGER, &res);
- /* it may fail if we are in half duplex, never mind */
- return 0;
-}
-
-/*
- * make sure output mode is available. Returns 0 if done,
- * 1 if too early to switch, -1 if error
- */
-static int soundcard_setoutput(struct chan_oss_pvt *o, int force)
-{
- if (o->duplex == M_FULL || (o->duplex == M_WRITE && !force))
- return 0;
- if (!force && too_early(o))
- return 1;
- if (setformat(o, O_WRONLY))
- return -1;
- return 0;
-}
-
-/*
- * make sure input mode is available. Returns 0 if done
- * 1 if too early to switch, -1 if error
- */
-static int soundcard_setinput(struct chan_oss_pvt *o, int force)
-{
- if (o->duplex == M_FULL || (o->duplex == M_READ && !force))
- return 0;
- if (!force && too_early(o))
- return 1;
- if (setformat(o, O_RDONLY))
- return -1;
- return 0;
-}
-
-/*
- * some of the standard methods supported by channels.
- */
-static int oss_digit(struct ast_channel *c, char digit)
-{
- /* no better use for received digits than print them */
- ast_verbose( " << Console Received digit %c >> \n", digit);
- return 0;
-}
-
-static int oss_text(struct ast_channel *c, char *text)
-{
- /* print received messages */
- ast_verbose( " << Console Received text %s >> \n", text);
- return 0;
-}
-
-/* Play ringtone 'x' on device 'o' */
-#define RING(o, x) { int what = x; write((o)->sndcmd[1], &what, sizeof(what)); }
-
-/*
- * handler for incoming calls. Either autoanswer, or start ringing
- */
-static int oss_call(struct ast_channel *c, char *dest, int timeout)
-{
- struct chan_oss_pvt *o = c->pvt->pvt;
- struct ast_frame f = { 0, };
-
- ast_verbose( " << Call placed to '%s' on console >> \n", dest);
- if (o->autoanswer) {
- ast_verbose( " << Auto-answered >> \n" );
- f.frametype = AST_FRAME_CONTROL;
- f.subclass = AST_CONTROL_ANSWER;
- ast_queue_frame(c, &f);
- } else {
- ast_verbose(" << Type 'answer' to answer, or use 'autoanswer' for future calls >> \n");
- f.frametype = AST_FRAME_CONTROL;
- f.subclass = AST_CONTROL_RINGING;
- ast_queue_frame(c, &f);
- RING(o, AST_CONTROL_RING);
- }
- return 0;
-}
-
-/*
- * remote side answered the phone
- */
-static int oss_answer(struct ast_channel *c)
-{
- struct chan_oss_pvt *o = c->pvt->pvt;
-
- ast_verbose( " << Console call has been answered >> \n");
-#if 0
- /* play an answer tone (XXX do we really need it ?) */
- RING(o, AST_CONTROL_ANSWER);
-#endif
- ast_setstate(c, AST_STATE_UP);
- o->cursound = -1;
- o->nosound=0;
- return 0;
-}
-
-static int oss_hangup(struct ast_channel *c)
-{
- struct chan_oss_pvt *o = c->pvt->pvt;
-
- o->cursound = -1;
- c->pvt->pvt = NULL;
- o->owner = NULL;
- ast_verbose( " << Hangup on console >> \n");
- ast_mutex_lock(&usecnt_lock); /* XXX not sure why */
- usecnt--;
- ast_mutex_unlock(&usecnt_lock);
- if (o->hookstate) {
- if (o->autoanswer || o->autohangup) {
- /* Assume auto-hangup too */
- o->hookstate = 0;
- } else {
- /* Make congestion noise */
- RING(o, AST_CONTROL_CONGESTION);
- }
- }
- return 0;
-}
-
-/* used for data coming from the network */
-static int oss_write(struct ast_channel *c, struct ast_frame *f)
-{
- int res;
- int src;
- struct chan_oss_pvt *o = c->pvt->pvt;
-
- /* Immediately return if no sound is enabled */
- if (o->nosound)
- return 0;
- /* Stop any currently playing sound */
- o->cursound = -1;
- if (o->duplex != M_FULL && !o->playbackonly) {
- /* XXX check this, looks weird! */
- /* If we're half duplex, we have to switch to read mode
- to honor immediate needs if necessary */
- res = soundcard_setinput(o, 1); /* force set if not full_duplex */
- if (res < 0) {
- ast_log(LOG_WARNING, "Unable to set device to input mode\n");
- return -1;
- }
- return 0;
- }
- res = soundcard_setoutput(o, 0);
- if (res < 0) {
- ast_log(LOG_WARNING, "Unable to set output device\n");
- return -1;
- } else if (res > 0) {
- /* The device is still in read mode, and it's too soon to change it,
- so just pretend we wrote it */
- return 0;
- }
- /*
- * we could receive a sample which is not a multiple of our FRAME_SIZE,
- * so we buffer it locally and write to the device in FRAME_SIZE
- * chunks, keeping the residue stored for future use.
- */
- src = 0; /* read position into f->data */
- while ( src < f->datalen ) {
- /* Compute spare room in the buffer */
- int l = sizeof(o->oss_write_buf) - o->oss_write_dst;
-
- if (f->datalen - src >= l) { /* enough to fill a frame */
- memcpy(o->oss_write_buf + o->oss_write_dst,
- f->data + src, l);
- soundcard_writeframe(o, (short *)o->oss_write_buf);
- src += l;
- o->oss_write_dst = 0;
- } else { /* copy residue */
- l = f->datalen - src;
- memcpy(o->oss_write_buf + o->oss_write_dst,
- f->data + src, l);
- src += l; /* but really, we are done */
- o->oss_write_dst += l;
- }
- }
- return 0;
-}
-
-static struct ast_frame *oss_read(struct ast_channel *c)
-{
- int res;
- struct chan_oss_pvt *o = c->pvt->pvt;
- struct ast_frame *f = &o->read_f;
-
- /* prepare a NULL frame in case we don't have enough data to return */
- bzero(f, sizeof(struct ast_frame));
- f->frametype = AST_FRAME_NULL;
- f->src = o->type;
-
- res = soundcard_setinput(o, 0);
- if (res < 0) {
- ast_log(LOG_WARNING, "Unable to set input mode\n");
- return NULL;
- } else if (res > 0) { /* too early to switch ? */
- /* Theoretically shouldn't happen, but anyway, return a NULL frame */
- return f;
- }
-
- res = read(o->sounddev, o->oss_read_buf + o->readpos,
- sizeof(o->oss_read_buf) - o->readpos);
- if (res < 0) /* audio data not ready, return a NULL frame */
- return f;
-
- o->readpos += res;
- if (o->readpos < sizeof(o->oss_read_buf)) /* not enough samples */
- return f;
-
- o->readpos = AST_FRIENDLY_OFFSET; /* reset read pointer for next frame */
- if (c->_state != AST_STATE_UP) /* drop data if frame is not up */
- return f;
- /* ok we can build and deliver the frame to the caller */
- f->frametype = AST_FRAME_VOICE;
- f->subclass = AST_FORMAT_SLINEAR;
- f->samples = FRAME_SIZE;
- f->datalen = FRAME_SIZE * 2;
- f->data = o->oss_read_buf + AST_FRIENDLY_OFFSET;
- f->offset = AST_FRIENDLY_OFFSET;
- return f;
-}
-
-static int oss_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
-{
- struct chan_oss_pvt *o = newchan->pvt->pvt;
- o->owner = newchan;
- return 0;
-}
-
-static int oss_indicate(struct ast_channel *c, int cond)
-{
- struct chan_oss_pvt *o = c->pvt->pvt;
- int res;
-
- switch(cond) {
- case AST_CONTROL_BUSY:
- case AST_CONTROL_CONGESTION:
- case AST_CONTROL_RINGING:
- res = cond;
- break;
- case -1:
- o->cursound = -1;
- return 0;
- default:
- ast_log(LOG_WARNING,
- "Don't know how to display condition %d on %s\n",
- cond, c->name);
- return -1;
- }
- if (res > -1)
- RING(o, res);
- return 0;
-}
-
-static struct ast_channel *oss_new(struct chan_oss_pvt *o,
- char *ext, char *ctx, int state)
-{
- struct ast_channel *c;
- struct ast_channel_pvt *pvt;
-
- c = ast_channel_alloc(1);
- if (c == NULL)
- return NULL;
- snprintf(c->name, sizeof(c->name), "OSS/%s", o->device + 5);
- c->type = o->type;
- c->fds[0] = o->sounddev;
- c->nativeformats = AST_FORMAT_SLINEAR;
- pvt = c->pvt;
- pvt->pvt = o;
-
- /* relevant callbacks */
- pvt->send_digit = oss_digit;
- pvt->send_text = oss_text;
- pvt->hangup = oss_hangup;
- pvt->answer = oss_answer;
- pvt->read = oss_read;
- pvt->call = oss_call;
- pvt->write = oss_write;
- pvt->indicate = oss_indicate;
- pvt->fixup = oss_fixup;
-
-#define S_OVERRIDE(dst, src) \
- { if (src && src[0] != '\0') /* non-empty string */ \
- strncpy((dst), src, sizeof(dst)-1); }
- S_OVERRIDE(c->context, ctx);
- S_OVERRIDE(c->exten, ext);
- S_OVERRIDE(c->language, o->language);
- o->owner = c;
- ast_setstate(c, state);
- ast_mutex_lock(&usecnt_lock);
- usecnt++;
- ast_mutex_unlock(&usecnt_lock);
- ast_update_use_count();
- if (state != AST_STATE_DOWN) {
- if (ast_pbx_start(c)) {
- ast_log(LOG_WARNING, "Unable to start PBX on %s\n", c->name);
- ast_hangup(c);
- o->owner = c = NULL;
- /* XXX what about the channel itself ? */
- /* XXX what about usecnt ? */
- }
- }
- return c;
-}
-
-/*
- * returns a pointer to the descriptor with the given name
- */
-static struct chan_oss_pvt *find_desc(char *dev)
-{
- struct chan_oss_pvt *o;
-
- for (o = oss_default.next; o && strcmp(o->name, dev) != 0; o = o->next)
- ;
- if (o == NULL)
- ast_log(LOG_WARNING, "%s could not find <%s>\n", __func__, dev);
- return o;
-}
-
-static struct ast_channel *oss_request(char *type, int format, void *data)
-{
- struct ast_channel *c;
- struct chan_oss_pvt *o = find_desc(data);
-
- ast_log(LOG_WARNING, "oss_request ty <%s> data 0x%p <%s>\n",
- type, data, (char *)data);
- if (o == NULL) {
- ast_log(LOG_NOTICE, "Device %s not found\n", (char *)data);
- /* XXX we could default to 'dsp' perhaps ? */
- return NULL;
- }
- if ((format & AST_FORMAT_SLINEAR) == 0) {
- ast_log(LOG_NOTICE, "Format 0x%x unsupported\n", format);
- return NULL;
- }
- if (o->owner) {
- ast_log(LOG_NOTICE, "Already have a call on the OSS channel\n");
- return NULL;
- }
- c= oss_new(o, NULL, NULL, AST_STATE_DOWN);
- if (c == NULL) {
- ast_log(LOG_WARNING, "Unable to create new OSS channel\n");
- return NULL;
- }
- return c;
-}
-
-static int console_autoanswer(int fd, int argc, char *argv[])
-{
- struct chan_oss_pvt *o = find_desc(oss_active);
-
- if ((argc != 1) && (argc != 2))
- return RESULT_SHOWUSAGE;
- if (o == NULL) {
- ast_log(LOG_WARNING, "Cannot find device %s (should not happen!)\n",
- oss_active);
- return RESULT_FAILURE;
- }
- if (argc == 1) {
- ast_cli(fd, "Auto answer is %s.\n", o->autoanswer ? "on" : "off");
- return RESULT_SUCCESS;
- }
- if (!strcasecmp(argv[1], "on"))
- o->autoanswer = -1;
- else if (!strcasecmp(argv[1], "off"))
- o->autoanswer = 0;
- else
- return RESULT_SHOWUSAGE;
- return RESULT_SUCCESS;
-}
-
-static char *autoanswer_complete(char *line, char *word, int pos, int state)
-{
-#ifndef MIN
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
-#endif
- int l = strlen(word);
-
- switch(state) {
- case 0:
- if (l && !strncasecmp(word, "on", MIN(l, 2)))
- return strdup("on");
- case 1:
- if (l && !strncasecmp(word, "off", MIN(l, 3)))
- return strdup("off");
- default:
- return NULL;
- }
- return NULL;
-}
-
-static char autoanswer_usage[] =
-"Usage: autoanswer [on|off]\n"
-" Enables or disables autoanswer feature. If used without\n"
-" argument, displays the current on/off status of autoanswer.\n"
-" The default value of autoanswer is in 'oss.conf'.\n";
-
-/*
- * answer command from the console
- */
-static int console_answer(int fd, int argc, char *argv[])
-{
- struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_ANSWER };
- struct chan_oss_pvt *o = find_desc(oss_active);
-
- if (argc != 1)
- return RESULT_SHOWUSAGE;
- if (!o->owner) {
- ast_cli(fd, "No one is calling us\n");
- return RESULT_FAILURE;
- }
- o->hookstate = 1;
- o->cursound = -1;
- ast_queue_frame(o->owner, &f);
- RING(o, AST_CONTROL_ANSWER);
- return RESULT_SUCCESS;
-}
-
-static char sendtext_usage[] =
-"Usage: send text <message>\n"
-" Sends a text message for display on the remote terminal.\n";
-
-static int console_sendtext(int fd, int argc, char *argv[])
-{
- struct chan_oss_pvt *o = find_desc(oss_active);
- int tmparg = 2;
- char text2send[256] = "";
- struct ast_frame f = { 0, };
-
- if (argc < 2)
- return RESULT_SHOWUSAGE;
- if (!o->owner) {
- ast_cli(fd, "No one is calling us\n");
- return RESULT_FAILURE;
- }
- if (strlen(text2send))
- ast_cli(fd, "Warning: message already waiting to be sent, overwriting\n");
- text2send[0] = '\0';
- while(tmparg < argc) {
- strncat(text2send, argv[tmparg++], sizeof(text2send) - strlen(text2send) - 1);
- strncat(text2send, " ", sizeof(text2send) - strlen(text2send) - 1);
- }
- if (strlen(text2send)) {
- f.frametype = AST_FRAME_TEXT;
- f.subclass = 0;
- f.data = text2send;
- f.datalen = strlen(text2send);
- ast_queue_frame(o->owner, &f);
- }
- return RESULT_SUCCESS;
-}
-
-static char answer_usage[] =
-"Usage: answer\n"
-" Answers an incoming call on the console (OSS) channel.\n";
-
-static int console_hangup(int fd, int argc, char *argv[])
-{
- struct chan_oss_pvt *o = find_desc(oss_active);
-
- if (argc != 1)
- return RESULT_SHOWUSAGE;
- o->cursound = -1;
- if (!o->owner && !o->hookstate) {
- ast_cli(fd, "No call to hangup up\n");
- return RESULT_FAILURE;
- }
- o->hookstate = 0;
- if (o->owner) {
- ast_queue_hangup(o->owner);
- }
- return RESULT_SUCCESS;
-}
-
-static char hangup_usage[] =
-"Usage: hangup\n"
-" Hangs up any call currently placed on the console.\n";
-
-
-static int console_flash(int fd, int argc, char *argv[])
-{
- struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_FLASH };
- struct chan_oss_pvt *o = find_desc(oss_active);
-
- if (argc != 1)
- return RESULT_SHOWUSAGE;
- o->cursound = -1;
- if (!o->owner) { /* XXX maybe !o->hookstate too ? */
- ast_cli(fd, "No call to flash\n");
- return RESULT_FAILURE;
- }
- o->hookstate = 0;
- if (o->owner) { /* XXX must be true, right ? */
- ast_queue_frame(o->owner, &f);
- }
- return RESULT_SUCCESS;
-}
-
-
-static char flash_usage[] =
-"Usage: flash\n"
-" Flashes the call currently placed on the console.\n";
-
-
-
-static int console_dial(int fd, int argc, char *argv[])
-{
- char *tmp = NULL, *mye = NULL, *myc = NULL;
- int i;
- struct ast_frame f = { AST_FRAME_DTMF, 0 };
- struct chan_oss_pvt *o = find_desc(oss_active);
-
- if ((argc != 1) && (argc != 2))
- return RESULT_SHOWUSAGE;
- if (o->owner) { /* already in a call */
- if (argc == 1) { /* argument is mandatory here */
- ast_cli(fd, "Already in a call. You can only dial digits until you hangup.\n");
- return RESULT_FAILURE;
- }
- mye = argv[1];
- /* send the string one char at a time */
- for (i=0; i<strlen(mye); i++) {
- f.subclass = mye[i];
- ast_queue_frame(o->owner, &f);
- }
- return RESULT_SUCCESS;
- }
- /* if we have an argument split it into extension and context */
-
- if (argc == 2) {
- tmp = myc = strdup(argv[1]); /* make a writable copy */
- mye = strsep(&myc, "@"); /* set exten, advance to context */
- myc = strsep(&myc, "@"); /* set context */
- }
- /* supply default values if needed */
- if (mye == NULL)
- mye = o->ext;
- if (myc == NULL)
- myc = o->ctx;
- if (ast_exists_extension(NULL, myc, mye, 1, NULL)) {
- o->hookstate = 1;
- oss_new(o, mye, myc, AST_STATE_RINGING);
- } else
- ast_cli(fd, "No such extension '%s' in context '%s'\n", mye, myc);
- return RESULT_SUCCESS;
-}
-
-static char dial_usage[] =
-"Usage: dial [extension[@context]]\n"
-" Dials a given extensison (and context if specified)\n";
-
-static int console_transfer(int fd, int argc, char *argv[])
-{
- struct chan_oss_pvt *o = find_desc(oss_active);
- struct ast_channel *b = NULL;
- char *ext, *ctx;
-
- if (argc != 2)
- return RESULT_SHOWUSAGE;
- if (o == NULL)
- return RESULT_FAILURE;
- if (o->owner == NULL || (b = o->owner->bridge) == NULL) {
- ast_cli(fd, "There is no call to transfer\n");
- return RESULT_SUCCESS;
- }
-
- ext = ctx = strdup(argv[1]); /* make a writable copy */
- strsep(&ctx, "@"); /* set exten, advance to context */
- ctx = strsep(&ctx, "@"); /* strip trailing @ and the rest */
-
- if (ctx == NULL) /* supply default context if needed */
- ctx = o->owner->context;
- if (!ast_exists_extension(b, ctx, ext, 1, b->callerid)) {
- ast_cli(fd, "No such extension exists\n");
- } else {
- ast_cli(fd, "Whee, transferring %s to %s@%s.\n", b->name, ext, ctx);
- if (ast_async_goto(b, ctx, ext, 1))
- ast_cli(fd, "Failed to transfer :(\n");
- }
- free(ext);
- return RESULT_SUCCESS;
-}
-
-static char transfer_usage[] =
-"Usage: transfer <extension>[@context]\n"
-" Transfers the currently connected call to the given extension (and\n"
-"context if specified)\n";
-
-static int console_active(int fd, int argc, char *argv[])
-{
- if (argc == 1) {
- ast_cli(fd, "active console is [%s]\n", oss_active);
- } else if (argc != 2) {
- return RESULT_SHOWUSAGE;
- } else {
- struct chan_oss_pvt *o;
- if (strcmp(argv[1], "show") == 0) {
- for (o = oss_default.next; o ; o = o->next)
- ast_cli(fd, "device [%s] exists\n", o->name);
- return RESULT_SUCCESS;
- }
- o = find_desc(argv[1]);
- if (o == NULL)
- ast_cli(fd, "No device [%s] exists\n", argv[1]);
- else
- oss_active = o->name;
- }
- return RESULT_SUCCESS;
-}
-
-static struct ast_cli_entry myclis[] = {
- { { "answer", NULL }, console_answer, "Answer an incoming console call", answer_usage },
- { { "hangup", NULL }, console_hangup, "Hangup a call on the console", hangup_usage },
- { { "flash", NULL }, console_flash, "Flash a call on the console", flash_usage },
- { { "dial", NULL }, console_dial, "Dial an extension on the console", dial_usage },
- { { "transfer", NULL }, console_transfer, "Transfer a call to a different extension", transfer_usage },
- { { "send", "text", NULL }, console_sendtext, "Send text to the remote device", sendtext_usage },
- { { "autoanswer", NULL }, console_autoanswer, "Sets/displays autoanswer", autoanswer_usage, autoanswer_complete },
- { { "console", NULL }, console_active, "Sets/displays active console",
- "console foo sets foo as the console"}
-};
-
-/*
- * store the mixer argument from the config file, filtering possibly
- * invalid or dangerous values (the string is used as argument for
- * system("mixer %s")
- */
-static void store_mixer(struct chan_oss_pvt *o, char *s)
-{
- int i;
-
- for (i=0; i < strlen(s); i++) {
- if (!isalnum(s[i]) && index(" \t-/", s[i]) == NULL) {
- ast_log(LOG_WARNING,
- "Suspect char %c in mixer cmd, ignoring:\n\t%s\n", s[i], s);
- return;
- }
- }
- if (o->mixer_cmd)
- free(o->mixer_cmd);
- o->mixer_cmd = strdup(s);
- ast_log(LOG_WARNING, "setting mixer %s\n", s);
-}
-
-/*
- * grab fields from the config file, init the descriptor and open the device.
- */
-static struct chan_oss_pvt * store_config(struct ast_config *cfg,
- char *ctg)
-{
- struct ast_variable *v;
- struct chan_oss_pvt *o;
-
- if (ctg == NULL) {
- o = &oss_default;
- o->next = NULL; /* XXX needed ? */
- ctg = "general";
- } else {
- o = (struct chan_oss_pvt *)malloc(sizeof *o);
- if (o == NULL) /* fail */
- return NULL;
- *o = oss_default;
- /* "general" is also the default thing */
- if (strcmp(ctg, "general") == 0) {
- o->name = strdup("dsp");
- oss_active = o->name;
- goto openit;
- }
- o->name = strdup(ctg);
- }
- ast_log(LOG_WARNING, "found category [%s]\n", ctg);
-
- /* fill other fields from configuration */
- v = ast_variable_browse(cfg, ctg);
- while(v) {
- M_START(v->name, v->value);
-
- M_BOOL("autoanswer", o->autoanswer)
- M_BOOL("autohangup", o->autohangup)
- M_BOOL("playbackonly", o->playbackonly)
- M_BOOL("silencesuppression", o->silencesuppression)
- M_UINT("silencethreshold", o->silencethreshold )
- M_STR("device", o->device)
- M_UINT("frags", o->frags)
- M_UINT("debug", oss_debug)
- M_UINT("queuesize", o->queuesize)
- M_STR("context", o->ctx)
- M_STR("language", o->language)
- M_STR("extension", o->ext)
- M_F("mixer", store_mixer(o, v->value))
- M_END(;);
- v=v->next;
- }
- if (!strlen(o->device))
- strncpy(o->device, DEV_DSP, sizeof(o->device)-1);
- if (o->mixer_cmd) {
- char *cmd;
-
- asprintf(&cmd, "mixer %s", o->mixer_cmd);
- ast_log(LOG_WARNING, "running [%s]\n", cmd);
- system(cmd);
- free(cmd);
- }
- if (o == &oss_default) /* we are done with the default */
- return NULL;
-
-openit:
- if (setformat(o, O_RDWR) < 0) { /* open device */
- if (option_verbose > 0) {
- ast_verbose(VERBOSE_PREFIX_2 "Device %s not detected\n", ctg);
- ast_verbose(VERBOSE_PREFIX_2 "Turn off OSS support by adding "
- "'noload=chan_oss.so' in /etc/asterisk/modules.conf\n");
- }
- goto error;
- }
- soundcard_setinput(o, 1); /* force set if not full_duplex */
- if (o->duplex != M_FULL)
- ast_log(LOG_WARNING, "XXX I don't work right with non "
- "full-duplex sound cards XXX\n");
- if ( pipe(o->sndcmd) != 0 ) {
- ast_log(LOG_ERROR, "Unable to create pipe\n");
- goto error;
- }
- ast_pthread_create(&o->sthread, NULL, sound_thread, o);
- /* link into list of devices */
- if (o != &oss_default) {
- o->next = oss_default.next;
- oss_default.next = o;
- }
- return o;
-
-error:
- if (o != &oss_default)
- free(o);
- return NULL;
-}
-
-int load_module()
-{
- int i;
- struct ast_config *cfg;
-
- /* load config file */
- cfg = ast_load(config);
- if (cfg != NULL) {
- char *ctg;
-
- store_config(cfg, NULL); /* init general category */
- ctg = ast_category_browse(cfg, NULL); /* initial category */
- while (ctg != NULL) {
- store_config(cfg, ctg);
- ctg = ast_category_browse(cfg, ctg);
- }
- ast_destroy(cfg);
- }
- if (find_desc(oss_active) == NULL) {
- ast_log(LOG_NOTICE, "Device %s not found\n", oss_active);
- /* XXX we could default to 'dsp' perhaps ? */
- /* XXX should cleanup allocated memory etc. */
- return -1;
- }
- i = ast_channel_register(oss_default.type, tdesc,
- AST_FORMAT_SLINEAR, oss_request);
- if (i < 0) {
- ast_log(LOG_ERROR, "Unable to register channel class '%s'\n",
- oss_default.type);
- /* XXX should cleanup allocated memory etc. */
- return -1;
- }
- for (i=0; i<sizeof(myclis)/sizeof(struct ast_cli_entry); i++)
- ast_cli_register(myclis + i);
- return 0;
-}
-
-
-int unload_module()
-{
- int x;
- struct chan_oss_pvt *o;
-
- /* XXX do we need a ast_channel_unregister oss_request ? */
- for (x=0;x<sizeof(myclis)/sizeof(struct ast_cli_entry); x++)
- ast_cli_unregister(myclis + x);
-
- for (o = oss_default.next; o ; o = o->next) {
- close(o->sounddev);
- if (o->sndcmd[0] > 0) {
- close(o->sndcmd[0]);
- close(o->sndcmd[1]);
- }
- if (o->owner)
- ast_softhangup(o->owner, AST_SOFTHANGUP_APPUNLOAD);
- if (o->owner) /* XXX how ??? */
- return -1;
- /* XXX what about the thread ? */
- /* XXX what about the memory allocated ? */
- }
- return 0;
-}
-
-char *description()
-{
- return desc;
-}
-
-int usecount() /* XXX is this per-device or global for the module ? */
-{
- int res;
- ast_mutex_lock(&usecnt_lock);
- res = usecnt;
- ast_mutex_unlock(&usecnt_lock);
- return res;
-}
-
-char *key()
-{
- return ASTERISK_GPL_KEY;
-}
diff --git a/net/asterisk/files/patch-Makefile b/net/asterisk/files/patch-Makefile
index 49c66ed7e4e8..16f6b03edab1 100644
--- a/net/asterisk/files/patch-Makefile
+++ b/net/asterisk/files/patch-Makefile
@@ -3,128 +3,200 @@ $FreeBSD$
--- Makefile.orig
+++ Makefile
-@@ -45,6 +45,19 @@
- PROC=$(shell uname -m)
- endif
-
-+ifeq (${OSARCH},FreeBSD)
-+ifeq ($(PROC),sparc64)
-+PROC=ultrasparc
-+OPTIONS+=$(shell if $(CC) -mtune=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-mtune=$(PROC)"; fi)
-+OPTIONS+=$(shell if $(CC) -mcpu=v9 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-mcpu=v9"; fi)
-+OPTIONS+=-fomit-frame-pointer
-+endif
-+ifeq ($(PROC),amd64)
-+PROC=k8
-+OPTIONS+=-m64
-+endif
-+endif
-+
- # Pentium Pro Optimize
- #PROC=i686
-
-@@ -63,10 +76,10 @@
+@@ -19,8 +19,8 @@
+ # CROSS_COMPILE=/opt/montavista/pro/devkit/arm/xscale_be/bin/xscale_be-
+ # CROSS_COMPILE_BIN=/opt/montavista/pro/devkit/arm/xscale_be/bin/
+ # CROSS_COMPILE_TARGET=/opt/montavista/pro/devkit/arm/xscale_be/target
+-CC=$(CROSS_COMPILE)gcc
+-HOST_CC=gcc
++CC?=$(CROSS_COMPILE)gcc
++HOST_CC=${CC}
+ # CROSS_ARCH=Linux
+ # CROSS_PROC=arm
+ # SUB_PROC=xscale # or maverick
+@@ -44,14 +44,14 @@
#K6OPT = -DK6OPT
- #Tell gcc to optimize the asterisk's code
+ #Tell gcc to optimize the code
-OPTIMIZE+=-O6
+#OPTIMIZE+=-O6
+ endif
- #Include debug symbols in the executables (-g) and profiling info (-pg)
--DEBUG=-g #-pg
-+#DEBUG=-g #-pg
+ #Overwite config files on "make samples"
+-OVERWRITE=y
++OVERWRITE=n
- # If you are running a radio application, define RADIO_RELAX so that the DTMF
- # will be received more reliably
-@@ -91,7 +104,7 @@
+ #Include debug and macro symbols in the executables (-g) and profiling info (-pg)
+-DEBUG=-g3 #-pg
++#DEBUG=-g3 #-pg
+
+ #Set NOCRYPTO to yes if you do not want to have crypto support or
+ #dependencies
+@@ -83,7 +83,7 @@
# Where to install asterisk after compiling
# Default -> leave empty
--INSTALL_PREFIX=
+-INSTALL_PREFIX?=
+INSTALL_PREFIX=$(PREFIX)
# Staging directory
# Files are copied here temporarily during the install process
-@@ -111,23 +124,23 @@
- # Don't use together with -DBUSYDETECT_TONEONLY
+@@ -106,17 +106,17 @@
BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
--ASTLIBDIR=$(INSTALL_PREFIX)/usr/lib/asterisk
--ASTVARLIBDIR=$(INSTALL_PREFIX)/var/lib/asterisk
-+ASTLIBDIR=$(INSTALL_PREFIX)/lib/asterisk
-+ASTVARLIBDIR=$(INSTALL_PREFIX)/share/asterisk
- ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk
--ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
--ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
--ASTHEADERDIR=$(INSTALL_PREFIX)/usr/include/asterisk
-+ASTSPOOLDIR=/var/spool/asterisk
-+ASTLOGDIR=/var/log/asterisk
-+ASTHEADERDIR=$(INSTALL_PREFIX)/include/asterisk
- ASTCONFPATH=$(ASTETCDIR)/asterisk.conf
--ASTBINDIR=$(INSTALL_PREFIX)/usr/bin
--ASTSBINDIR=$(INSTALL_PREFIX)/usr/sbin
--ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
--ASTMANDIR=$(INSTALL_PREFIX)/usr/share/man
-+ASTBINDIR=$(INSTALL_PREFIX)/bin
-+ASTSBINDIR=$(INSTALL_PREFIX)/sbin
-+ASTVARRUNDIR=/var/run
-+ASTMANDIR=$(INSTALL_PREFIX)/man
-
- MODULES_DIR=$(ASTLIBDIR)/modules
- AGI_DIR=$(ASTVARLIBDIR)/agi-bin
-
- 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+=$(OPTIMIZE)
+ ifneq ($(OSARCH),SunOS)
+- ASTLIBDIR=$(INSTALL_PREFIX)/usr/lib/asterisk
+- ASTVARLIBDIR=$(INSTALL_PREFIX)/var/lib/asterisk
++ ASTLIBDIR=$(INSTALL_PREFIX)/lib/asterisk
++ ASTVARLIBDIR=$(INSTALL_PREFIX)/share/asterisk
+ ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk
+- ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
+- ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
+- ASTHEADERDIR=$(INSTALL_PREFIX)/usr/include/asterisk
++ ASTSPOOLDIR=/var/spool/asterisk
++ ASTLOGDIR=/var/log/asterisk
++ ASTHEADERDIR=$(INSTALL_PREFIX)/include/asterisk
+ ASTCONFPATH=$(ASTETCDIR)/asterisk.conf
+- ASTBINDIR=$(INSTALL_PREFIX)/usr/bin
+- ASTSBINDIR=$(INSTALL_PREFIX)/usr/sbin
+- ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
+- ASTMANDIR=$(INSTALL_PREFIX)/usr/share/man
++ ASTBINDIR=$(INSTALL_PREFIX)/bin
++ ASTSBINDIR=$(INSTALL_PREFIX)/sbin
++ ASTVARRUNDIR=/var/run
++ ASTMANDIR=$(INSTALL_PREFIX)/man
+ MODULES_DIR=$(ASTLIBDIR)/modules
+ AGI_DIR=$(ASTVARLIBDIR)/agi-bin
+ else
+@@ -218,13 +218,13 @@
+ endif
+
+ INCLUDE+=-Iinclude -I../include
+-ASTCFLAGS+=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
+-ASTCFLAGS+=$(OPTIMIZE)
++ASTCFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
++#ASTCFLAGS+=$(OPTIMIZE)
+ ASTOBJ=-o asterisk
+
+ ifeq ($(findstring BSD,$(OSARCH)),BSD)
+ PROC=$(shell uname -m)
+- ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include -L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ endif
ifneq ($(PROC),ultrasparc)
-@@ -138,12 +151,8 @@
- CFLAGS+=$(shell if [ -f /usr/include/osp/osp.h ]; then echo "-DOSP_SUPPORT -I/usr/include/osp" ; fi)
-
- ifeq (${OSARCH},FreeBSD)
--OSVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
--CFLAGS+=$(shell if test ${OSVERSION} -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
--LIBS+=$(shell if test ${OSVERSION} -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi)
--INCLUDE+=-I/usr/local/include
--CFLAGS+=$(shell if [ -d /usr/local/include/spandsp ]; then echo "-I/usr/local/include/spandsp"; fi)
--MPG123TARG=freebsd
-+CFLAGS+=$(PTHREAD_CFLAGS)
-+LIBS+=$(PTHREAD_LIBS)
+@@ -235,8 +235,8 @@
+ ASTCFLAGS+=-fsigned-char
+ endif
+
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/osp/osp.h),)
+- ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)/usr/local/include/osp
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/osp/osp.h),)
++ ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/osp
+ else
+ ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),)
+ ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)/usr/include/osp
+@@ -245,27 +245,24 @@
+
+ ifeq ($(OSARCH),FreeBSD)
+ BSDVERSION=$(shell make -V OSVERSION -f $(CROSS_COMPILE_TARGET)/usr/share/mk/bsd.port.subdir.mk)
+- ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
+- LIBS+=$(shell if test $(BSDVERSION) -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi)
+- ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/spandsp),)
+- ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include/spandsp
++ ASTCFLAGS+=$(PTHREAD_CFLAGS)
++ LIBS+=$(PTHREAD_LIBS)
++ ifneq ($(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/spandsp),)
++ ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/spandsp
+ endif
+ MPG123TARG=freebsd
+
+- # XXX FreeBSD paths
+- PREFIX?=/usr/local
+- ASTLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/lib/asterisk
+- ASTVARLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/share/asterisk
+- ASTETCDIR=$(INSTALL_PREFIX)$(PREFIX)/etc/asterisk
+- ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
+- ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
+- ASTHEADERDIR=$(INSTALL_PREFIX)$(PREFIX)/include/asterisk
++ ASTLIBDIR=$(INSTALL_PREFIX)/lib/asterisk
++ ASTVARLIBDIR=$(INSTALL_PREFIX)/share/asterisk
++ ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk
++ ASTSPOOLDIR=/var/spool/asterisk
++ ASTLOGDIR=/var/log/asterisk
++ ASTHEADERDIR=$(INSTALL_PREFIX)/include/asterisk
+ ASTCONFPATH=$(ASTETCDIR)/asterisk.conf
+- ASTBINDIR=$(INSTALL_PREFIX)$(PREFIX)/bin
+- ASTSBINDIR=$(INSTALL_PREFIX)$(PREFIX)/sbin
+- ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
+- ASTMANDIR=$(INSTALL_PREFIX)$(PREFIX)/man
+- # XXX end FreeBSD paths
++ ASTBINDIR=$(INSTALL_PREFIX)/bin
++ ASTSBINDIR=$(INSTALL_PREFIX)/sbin
++ ASTVARRUNDIR=/var/run
++ ASTMANDIR=$(INSTALL_PREFIX)/man
+
endif # FreeBSD
- ifeq (${OSARCH},NetBSD)
-@@ -160,7 +169,10 @@
- #CFLAGS+=-DOLD_DSP_ROUTINES
+@@ -281,7 +278,7 @@
- CFLAGS+=$(shell if [ -f /usr/include/linux/zaptel.h ]; then echo "-DZAPTEL_OPTIMIZATIONS"; fi)
--CFLAGS+=$(shell if [ -f /usr/local/include/zaptel.h ]; then echo "-DZAPTEL_OPTIMIZATIONS"; fi)
-+CFLAGS+=-I$(LOCALBASE)/include
-+ifdef WITH_ZAPTEL
-+CFLAGS+=-DZAPTEL_OPTIMIZATIONS
-+endif
+ ifeq ($(OSARCH),SunOS)
+ ASTCFLAGS+=-Wcast-align -DSOLARIS
+- INCLUDE+=-Iinclude/solaris-compat -I$(CROSS_COMPILE_TARGET)/usr/local/ssl/include
++ INCLUDE+=-Iinclude/solaris-compat -I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/ssl/include
+ endif
- LIBEDIT=editline/libedit.a
+ ifeq ($(findstring CYGWIN,$(OSARCH)),CYGWIN)
+@@ -296,7 +293,7 @@
-@@ -222,7 +234,7 @@
- SOLINK=-shared -Xlinker -x
+ ifndef WITHOUT_ZAPTEL
+
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/pkg/include/zaptel.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/pkg/include/zaptel.h),)
+ ASTCFLAGS+=-DZAPTEL_OPTIMIZATIONS
+ endif
+
+@@ -323,7 +320,7 @@
+ ASTERISKVERSIONNUM=999999
+ ASTERISKVERSION=SVN-$(shell build_tools/make_svn_branch_name)
+ else
+- ASTERISKVERSIONNUM=000000
++ ASTERISKVERSIONNUM?=000000
+ endif
+ endif
+
+@@ -388,10 +385,10 @@
endif
--CC=gcc
-+CC?=gcc
- INSTALL=install
+ ifeq ($(OSARCH),SunOS)
+- LIBS+=-lpthread -ldl -lnsl -lsocket -lresolv -L$(CROSS_COMPILE_TARGET)/usr/local/ssl/lib
++ LIBS+=-lpthread -ldl -lnsl -lsocket -lresolv -L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/ssl/lib
+ OBJS+=strcompat.o
+ ASTLINK=
+- SOLINK=-shared -fpic -L$(CROSS_COMPILE_TARGET)/usr/local/ssl/lib
++ SOLINK=-shared -fpic -L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/ssl/lib
+ endif
+
+ ifeq ($(MAKETOPLEVEL),$(MAKELEVEL))
+@@ -399,7 +396,7 @@
+ endif
- _all: all
-@@ -234,7 +246,7 @@
+ # This is used when generating the doxygen documentation
+-ifneq ($(wildcard /usr/local/bin/dot)$(wildcard /usr/bin/dot),)
++ifneq ($(wildcard $(LOCALBASE)/bin/dot)$(wildcard /usr/bin/dot),)
+ HAVEDOT=yes
+ else
+ HAVEDOT=no
+@@ -418,7 +415,7 @@
@echo " + $(MAKE) install +"
@echo " +-------------------------------------------+"
--all: depend asterisk subdirs
-+all: depend asterisk subdirs manpage
+-all: cleantest depend asterisk subdirs
++all: cleantest depend asterisk subdirs manpage
- editline/config.h:
- cd editline && unset CFLAGS LIBS && ./configure ; \
-@@ -243,13 +255,13 @@
+ #ifneq ($(wildcard tags),)
+ ctags: tags
+@@ -437,13 +434,13 @@
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
$(MAKE) -C editline libedit.a
@@ -144,55 +216,57 @@ $FreeBSD$
+# fi
ifneq ($(wildcard .depend),)
- include .depend
-@@ -271,13 +283,10 @@
-
- asterisk.o: asterisk.c build.h
-
--manpage: asterisk.8.gz
-+manpage: asterisk.8
-
--asterisk.8.gz: asterisk.sgml
-- rm -f asterisk.8
-- docbook2man asterisk.sgml
-- mv ./*.8 asterisk.8
-- gzip asterisk.8
-+asterisk.8: asterisk.8.gz
-+ gzcat asterisk.8.gz > asterisk.8
-
- ifneq ($(strip $(ASTERISKVERSION)),)
- build.h: .version
-@@ -295,8 +304,8 @@
- exit 1; \
+ include .depend
+@@ -510,14 +507,14 @@
+ cygwin_a:
+ $(MAKE) -C cygwin all
+
+-asterisk: $(CYGLOADER) editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
++asterisk: $(CYGLOADER) editline/libedit.a stdtime/libtime.a $(OBJS)
+ build_tools/make_build_h > include/asterisk/build.h.tmp
+ if cmp -s include/asterisk/build.h.tmp include/asterisk/build.h ; then echo ; else \
+ mv include/asterisk/build.h.tmp include/asterisk/build.h ; \
fi
-
--asterisk: editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
-- $(CC) $(DEBUG) -o asterisk $(ASTLINK) $(OBJS) $(LIBEDIT) db1-ast/libdb1.a stdtime/libtime.a $(LIBS)
-+asterisk: editline/libedit.a stdtime/libtime.a $(OBJS)
-+ $(CC) $(DEBUG) -o asterisk $(ASTLINK) $(OBJS) $(LIBEDIT) stdtime/libtime.a $(LIBS)
+ rm -f include/asterisk/build.h.tmp
+ $(CC) -c -o buildinfo.o $(CFLAGS) buildinfo.c
+- $(CC) $(DEBUG) $(ASTOBJ) $(ASTLINK) $(OBJS) buildinfo.o $(LIBEDIT) db1-ast/libdb1.a stdtime/libtime.a $(LIBS)
++ $(CC) $(DEBUG) $(ASTOBJ) $(ASTLINK) $(OBJS) buildinfo.o $(LIBEDIT) stdtime/libtime.a $(LIBS)
muted: muted.o
- $(CC) -o muted muted.o
-@@ -315,28 +324,28 @@
- $(MAKE) -C stdtime clean
+ $(CC) $(AUDIO_LIBS) -o muted muted.o
+@@ -539,38 +536,38 @@
datafiles: all
+ if [ x`whoami` = xroot ]; then sh mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits
+- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/priv-callerintros
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits
++ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds/priv-callerintros
for x in sounds/digits/*.gsm; do \
- if grep -q "^%`basename $$x`%" sounds.txt; then \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits ; \
+ if $(GREP) -q "^%`basename $$x`%" sounds.txt; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits ; \
else \
echo "No description for $$x"; \
exit 1; \
fi; \
done
+- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/dictate
++ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds/dictate
+ for x in sounds/dictate/*.gsm; do \
+ if $(GREP) -q "^%`basename $$x`%" sounds.txt; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/dictate ; \
++ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/dictate ; \
+ else \
+ echo "No description for $$x"; \
+ exit 1; \
+ fi; \
+ done
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/letters
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds/letters
for x in sounds/letters/*.gsm; do \
- if grep -q "^%`basename $$x`%" sounds.txt; then \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/letters ; \
+ if $(GREP) -q "^%`basename $$x`%" sounds.txt; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/letters ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/letters ; \
else \
echo "No description for $$x"; \
@@ -202,17 +276,17 @@ $FreeBSD$
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/phonetic
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds/phonetic
for x in sounds/phonetic/*.gsm; do \
- if grep -q "^%`basename $$x`%" sounds.txt; then \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/phonetic ; \
+ if $(GREP) -q "^%`basename $$x`%" sounds.txt; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/phonetic ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds/phonetic ; \
else \
echo "No description for $$x"; \
exit 1; \
-@@ -344,18 +353,18 @@
+@@ -578,18 +575,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-* sounds/queue-*; do \
- if grep -q "^%`basename $$x`%" sounds.txt; then \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
+ for x in sounds/demo-* sounds/vm-* sounds/transfer* sounds/pbx-* sounds/ss-* sounds/beep* sounds/dir-* sounds/conf-* sounds/agent-* sounds/invalid* sounds/tt-* sounds/auth-* sounds/privacy-* sounds/queue-* sounds/spy-* sounds/priv-* sounds/screen-* sounds/hello-*; do \
+ if $(GREP) -q "^%`basename $$x`%" sounds.txt; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
else \
echo "No description for $$x"; \
@@ -224,70 +298,80 @@ $FreeBSD$
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/mohmp3
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/images
for x in images/*.jpg; do \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/images ; \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/images ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/images ; \
done
- mkdir -p $(DESTDIR)$(AGI_DIR)
+ $(MKDIR) $(DESTDIR)$(AGI_DIR)
update:
- @if [ -d CVS ]; then \
-@@ -367,127 +376,90 @@
- fi
+ @if [ -d .svn ]; then \
+@@ -618,75 +615,53 @@
+ OLDHEADERS=$(filter-out $(NEWHEADERS),$(notdir $(wildcard $(DESTDIR)$(ASTHEADERDIR)/*.h)))
bininstall: all
- mkdir -p $(DESTDIR)$(MODULES_DIR)
- mkdir -p $(DESTDIR)$(ASTSBINDIR)
- mkdir -p $(DESTDIR)$(ASTETCDIR)
- mkdir -p $(DESTDIR)$(ASTBINDIR)
-- mkdir -p $(DESTDIR)$(ASTSBINDIR)
- mkdir -p $(DESTDIR)$(ASTVARRUNDIR)
- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail
+- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/dictate
+- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/system
- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/tmp
-- install -m 755 asterisk $(DESTDIR)$(ASTSBINDIR)/
-- install -m 755 contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/
-- install -m 755 contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
+- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/meetme
+- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/monitor
+- if [ -f asterisk ]; then $(INSTALL) -m 755 asterisk $(DESTDIR)$(ASTSBINDIR)/; fi
+- if [ -f cygwin/asterisk.exe ]; then $(INSTALL) -m 755 cygwin/asterisk.exe $(DESTDIR)$(ASTSBINDIR)/; fi
+- if [ -f asterisk.dll ]; then $(INSTALL) -m 755 asterisk.dll $(DESTDIR)$(ASTSBINDIR)/; fi
+ $(MKDIR) $(DESTDIR)$(MODULES_DIR)
+ $(MKDIR) $(DESTDIR)$(ASTSBINDIR)
+ $(MKDIR) $(DESTDIR)$(ASTETCDIR)
+ $(MKDIR) $(DESTDIR)$(ASTBINDIR)
-+ $(MKDIR) $(DESTDIR)$(ASTSBINDIR)
+ $(MKDIR) $(DESTDIR)$(ASTVARRUNDIR)
+ $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/voicemail
++ $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/dictate
++ $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/system
+ $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/tmp
-+ $(BSD_INSTALL_PROGRAM) asterisk $(DESTDIR)$(ASTSBINDIR)/
++ $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/meetme
++ $(MKDIR) $(DESTDIR)$(ASTSPOOLDIR)/monitor
++ if [ -f asterisk ]; then $(BSD_INSTALL_PROGRAM) asterisk $(DESTDIR)$(ASTSBINDIR)/; fi
++ if [ -f cygwin/asterisk.exe ]; then $(BSD_INSTALL_PROGRAM) cygwin/asterisk.exe $(DESTDIR)$(ASTSBINDIR)/; fi
++ if [ -f asterisk.dll ]; then $(BSD_INSTALL_PROGRAM) asterisk.dll $(DESTDIR)$(ASTSBINDIR)/; fi
+ ln -sf asterisk $(DESTDIR)$(ASTSBINDIR)/rasterisk
+- $(INSTALL) -m 755 contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/
+- $(INSTALL) -m 755 contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
+ $(BSD_INSTALL_SCRIPT) contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/
-+ $(BSD_INSTALL_SCRIPT) contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
++ $(BSD_INSTALL_SCRIPT) contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
if [ ! -f $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ]; then \
-- install -m 755 contrib/scripts/safe_asterisk $(DESTDIR)$(ASTSBINDIR)/ ;\
-+ $(BSD_INSTALL_SCRIPT) contrib/scripts/safe_asterisk $(DESTDIR)$(ASTSBINDIR)/ ;\
+ cat contrib/scripts/safe_asterisk | sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;' > $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ;\
+ chmod 755 $(DESTDIR)$(ASTSBINDIR)/safe_asterisk;\
fi
for x in $(SUBDIRS); do $(MAKE) -C $$x install || exit 1 ; done
-- install -d $(DESTDIR)$(ASTHEADERDIR)
-- install -m 644 include/asterisk/*.h $(DESTDIR)$(ASTHEADERDIR)
+- $(INSTALL) -d $(DESTDIR)$(ASTHEADERDIR)
+- $(INSTALL) -m 644 include/asterisk/*.h $(DESTDIR)$(ASTHEADERDIR)
+ $(MKDIR) $(DESTDIR)$(ASTHEADERDIR)
+ $(BSD_INSTALL_DATA) include/asterisk/*.h $(DESTDIR)$(ASTHEADERDIR)
- rm -f $(DESTDIR)$(ASTVARLIBDIR)/sounds/vm
-- rm -f $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail
-- if [ ! -h $(DESTDIR)$(ASTSPOOLDIR)/vm ] && [ -d $(DESTDIR)$(ASTSPOOLDIR)/vm ]; then \
-- mv $(DESTDIR)$(ASTSPOOLDIR)/vm $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default; \
-- else \
-- mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default; \
-- rm -f $(DESTDIR)$(ASTSPOOLDIR)/vm; \
-- fi
-- ln -s $(ASTSPOOLDIR)/voicemail/default $(DESTDIR)$(ASTSPOOLDIR)/vm
+ if [ -n "$(OLDHEADERS)" ]; then \
+ rm -f $(addprefix $(DESTDIR)$(ASTHEADERDIR)/,$(OLDHEADERS)) ;\
+ fi
+ rm -f $(DESTDIR)$(ASTVARLIBDIR)/sounds/voicemail
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds
- mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-csv
+- mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-custom
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/keys
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/firmware
- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/firmware/iax
- mkdir -p $(DESTDIR)$(ASTMANDIR)/man8
-- install -m 644 keys/iaxtel.pub $(DESTDIR)$(ASTVARLIBDIR)/keys
-- install -m 644 keys/freeworlddialup.pub $(DESTDIR)$(ASTVARLIBDIR)/keys
-- install -m 644 asterisk.8.gz $(DESTDIR)$(ASTMANDIR)/man8
-+ ln -sf $(ASTSPOOLDIR)/voicemail/default $(DESTDIR)$(ASTSPOOLDIR)/vm
+- $(INSTALL) -m 644 keys/iaxtel.pub $(DESTDIR)$(ASTVARLIBDIR)/keys
+- $(INSTALL) -m 644 keys/freeworlddialup.pub $(DESTDIR)$(ASTVARLIBDIR)/keys
+- $(INSTALL) -m 644 asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8
+- $(INSTALL) -m 644 contrib/scripts/astgenkey.8 $(DESTDIR)$(ASTMANDIR)/man8
+- $(INSTALL) -m 644 contrib/scripts/autosupport.8 $(DESTDIR)$(ASTMANDIR)/man8
+- $(INSTALL) -m 644 contrib/scripts/safe_asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds
+ $(MKDIR) $(DESTDIR)$(ASTLOGDIR)/cdr-csv
++ $(MKDIR) $(DESTDIR)$(ASTLOGDIR)/cdr-custom
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/keys
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/firmware
+ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/firmware/iax
@@ -295,14 +379,16 @@ $FreeBSD$
+ $(BSD_INSTALL_DATA) keys/iaxtel.pub $(DESTDIR)$(ASTVARLIBDIR)/keys
+ $(BSD_INSTALL_DATA) keys/freeworlddialup.pub $(DESTDIR)$(ASTVARLIBDIR)/keys
+ $(BSD_INSTALL_DATA) asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8
++ $(BSD_INSTALL_DATA) contrib/scripts/astgenkey.8 $(DESTDIR)$(ASTMANDIR)/man8
++ $(BSD_INSTALL_DATA) contrib/scripts/autosupport.8 $(DESTDIR)$(ASTMANDIR)/man8
++ $(BSD_INSTALL_DATA) contrib/scripts/safe_asterisk.8 $(DESTDIR)$(ASTMANDIR)/man8
if [ -d contrib/firmware/iax ]; then \
-- install -m 644 contrib/firmware/iax/iaxy.bin $(DESTDIR)$(ASTVARLIBDIR)/firmware/iax/iaxy.bin; \
+- $(INSTALL) -m 644 contrib/firmware/iax/iaxy.bin $(DESTDIR)$(ASTVARLIBDIR)/firmware/iax/iaxy.bin; \
+ $(BSD_INSTALL_DATA) contrib/firmware/iax/iaxy.bin $(DESTDIR)$(ASTVARLIBDIR)/firmware/iax/iaxy.bin; \
else \
echo "You need to do cvs update -d not just cvs update" ; \
fi
-- ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/vm . )
-- ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/voicemail . )
+ ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -s $(ASTSPOOLDIR)/voicemail . )
- if [ -f mpg123-0.59r/mpg123 ]; then $(MAKE) -C mpg123-0.59r install; fi
- @echo " +---- Asterisk Installation Complete -------+"
- @echo " + +"
@@ -325,85 +411,74 @@ $FreeBSD$
- @echo " + **Note** This requires that you have +"
- @echo " + doxygen installed on your local system +"
- @echo " +-------------------------------------------+"
-- @echo " + +"
-- @echo " + ** NOTE FOR DOWNGRADING FROM CVS HEAD ** +"
-- @echo " + +"
-- @echo " + If you are downgrading from CVS HEAD to +"
-- @echo " + a stable release, remember to delete +"
-- @echo " + everything from your asterisk modules +"
-- @echo " + directory (/usr/lib/asterisk/modules/) +"
-- @echo " + and the asterisk header directory +"
-- @echo " + (/usr/include/asterisk/) +"
-- @echo " + before doing a '$(MAKE) install'. +"
-- @echo " + +"
-- @echo " +-------------------------------------------+"
-+ ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -sf $(ASTSPOOLDIR)/vm . )
-+ ( cd $(DESTDIR)$(ASTVARLIBDIR)/sounds ; ln -sf $(ASTSPOOLDIR)/voicemail . )
+ @$(MAKE) -s oldmodcheck
+ NEWMODS=$(notdir $(wildcard */*.so))
+@@ -710,7 +685,7 @@
+ echo " WARNING WARNING WARNING" ;\
+ fi
-install: all datafiles bininstall
+install: all datafiles bininstall samples
-
+ @if [ -x /usr/sbin/asterisk-post-install ]; then \
+ /usr/sbin/asterisk-post-install $(DESTDIR) . ; \
+ fi
+@@ -718,16 +693,19 @@
upgrade: all bininstall
- adsi: all
+ adsi:
- mkdir -p $(DESTDIR)$(ASTETCDIR)
+ $(MKDIR) $(DESTDIR)$(ASTETCDIR)
for x in configs/*.adsi; do \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x`-dist; \
- if ! [ -f $(DESTDIR)$(ASTETCDIRX)/$$x ]; then \
-- install -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x` ; \
+ if [ ! -f $(DESTDIR)$(ASTETCDIRX)/$$x ]; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x` ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x` ; \
fi ; \
done
- samples: all datafiles adsi
+ samples: adsi
- mkdir -p $(DESTDIR)$(ASTETCDIR)
-- for x in configs/*.sample; do \
-- if [ -f $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ]; then \
-- mv -f $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample`.old ; \
++ echo ADSI INSTALL $(BSD_INSTALL_DATA)
+ $(MKDIR) $(DESTDIR)$(ASTETCDIR)
-+ for x in configs/*.sample channels/h323/*.sample; do \
+ for x in configs/*.sample; do \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample`-dist;\
-+ if ! [ -f $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ]; then \
-+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ;\
+ if [ -f $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ]; then \
+ if [ "$(OVERWRITE)" = "y" ]; then \
+ if cmp -s $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` $$x ; then \
+@@ -740,7 +718,7 @@
+ continue; \
+ fi ;\
fi ; \
-- install -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ;\
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ;\
++ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x .sample` ;\
done
-- echo "[directories]" > $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astetcdir => $(ASTETCDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astmoddir => $(MODULES_DIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astvarlibdir => $(ASTVARLIBDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astagidir => $(AGI_DIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astspooldir => $(ASTSPOOLDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astrundir => $(ASTVARRUNDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "astlogdir => $(ASTLOGDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "[options]" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-- echo "uniquename = asterisk" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf
-+ echo "[directories]" > $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astetcdir => $(ASTETCDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astmoddir => $(MODULES_DIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astvarlibdir => $(ASTVARLIBDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astagidir => $(AGI_DIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astspooldir => $(ASTSPOOLDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astrundir => $(ASTVARRUNDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "astlogdir => $(ASTLOGDIR)" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "[options]" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ echo "uniquename = asterisk" >> $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist
-+ if ! [ -f $(DESTDIR)$(ASTETCDIR)/asterisk.conf ]; then \
-+ $(BSD_INSTALL_DATA) $(DESTDIR)$(ASTETCDIR)/asterisk.conf-dist $(DESTDIR)$(ASTETCDIR)/asterisk.conf; \
-+ fi
+ if [ "$(OVERWRITE)" = "y" ] || [ ! -f $(DESTDIR)$(ASTCONFPATH) ]; then \
+ ( \
+@@ -759,25 +737,25 @@
+ echo ";astctlowner = root" ; \
+ echo ";astctlgroup = apache" ; \
+ echo ";astctl = asterisk.ctl" ; \
+- ) > $(DESTDIR)$(ASTCONFPATH) ; \
++ ) > $(DESTDIR)$(ASTCONFPATH)-dist ; \
+ else \
+ echo "Skipping asterisk.conf creation"; \
+ fi
+- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
++ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
for x in sounds/demo-*; do \
- if grep -q "^%`basename $$x`%" sounds.txt; then \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
+ if $(GREP) -q "^%`basename $$x`%" sounds.txt; then \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/sounds ; \
else \
echo "No description for $$x"; \
exit 1; \
fi; \
done
+- mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 ; \
++ $(MKDIR) $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 ; \
for x in sounds/*.mp3; do \
-- install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 ; \
+- $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 ; \
+ $(BSD_INSTALL_DATA) $$x $(DESTDIR)$(ASTVARLIBDIR)/mohmp3 ; \
done
rm -f $(DESTDIR)$(ASTVARLIBDIR)/mohmp3/sample-hold.mp3
@@ -412,18 +487,18 @@ $FreeBSD$
:> $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/unavail.gsm
for x in vm-theperson digits/1 digits/2 digits/3 digits/4 vm-isunavail; do \
cat $(DESTDIR)$(ASTVARLIBDIR)/sounds/$$x.gsm >> $(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/unavail.gsm ; \
-@@ -502,7 +474,7 @@
- @[ -d $(DESTDIR)$(HTTPDIR)/html ] || ( echo "No http directory" && exit 1 )
- @[ -d $(DESTDIR)$(HTTPDIR)/cgi-bin ] || ( echo "No cgi-bin directory" && exit 1 )
- install -m 4755 -o root -g root contrib/scripts/vmail.cgi $(DESTDIR)$(HTTPDIR)/cgi-bin/vmail.cgi
-- mkdir -p $(DESTDIR)$(HTTPDIR)/html/_asterisk
-+ $(MKDIR) $(DESTDIR)$(HTTPDIR)/html/_asterisk
+@@ -791,7 +769,7 @@
+ @[ -d $(DESTDIR)$(HTTP_DOCSDIR)/ ] || ( printf "http docs directory not found.\nUpdate assignment of variable HTTP_DOCSDIR in Makefile!\n" && exit 1 )
+ @[ -d $(DESTDIR)$(HTTP_CGIDIR) ] || ( printf "cgi-bin directory not found.\nUpdate assignment of variable HTTP_CGIDIR in Makefile!\n" && exit 1 )
+ $(INSTALL) -m 4755 -o root -g root contrib/scripts/vmail.cgi $(DESTDIR)$(HTTP_CGIDIR)/vmail.cgi
+- mkdir -p $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk
++ $(MKDIR) $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk
for x in images/*.gif; do \
- install -m 644 $$x $(DESTDIR)$(HTTPDIR)/html/_asterisk/; \
+ $(INSTALL) -m 644 $$x $(DESTDIR)$(HTTP_DOCSDIR)/_asterisk/; \
done
-@@ -522,10 +494,10 @@
+@@ -820,10 +798,10 @@
- __rpm: _version
+ __rpm: include/asterisk/version.h spec
rm -rf /tmp/asterisk ; \
- mkdir -p /tmp/asterisk/redhat/RPMS/i386 ; \
+ $(MKDIR) /tmp/asterisk/redhat/RPMS/i386 ; \
@@ -431,6 +506,6 @@ $FreeBSD$
$(MAKE) DESTDIR=/tmp/asterisk samples ; \
- mkdir -p /tmp/asterisk/etc/rc.d/init.d ; \
+ $(MKDIR) /tmp/asterisk/etc/rc.d/init.d ; \
- cp -f redhat/asterisk /tmp/asterisk/etc/rc.d/init.d/ ; \
- sed "s/^Version:.*/Version: $(RPMVERSION)/g" redhat/asterisk.spec > asterisk.spec ; \
+ cp -f contrib/init.d/rc.redhat.asterisk /tmp/asterisk/etc/rc.d/init.d/asterisk ; \
rpmbuild --rcfile /usr/lib/rpm/rpmrc:redhat/rpmrc -bb asterisk.spec
+
diff --git a/net/asterisk/files/patch-agi::Makefile b/net/asterisk/files/patch-agi::Makefile
index 32efb5d2b101..b35976526f59 100644
--- a/net/asterisk/files/patch-agi::Makefile
+++ b/net/asterisk/files/patch-agi::Makefile
@@ -1,9 +1,9 @@
$FreeBSD$
---- agi/Makefile.orig Tue Jun 22 20:42:13 2004
-+++ agi/Makefile Tue Oct 5 21:03:40 2004
-@@ -11,15 +11,18 @@
+--- agi/Makefile.orig Thu Jan 12 15:42:07 2006
++++ agi/Makefile Thu Jan 12 15:44:39 2006
+@@ -11,7 +11,9 @@
# the GNU General Public License
#
@@ -14,14 +14,15 @@ $FreeBSD$
CFLAGS+=
+@@ -27,8 +29,9 @@
all: depend $(AGIS)
install: all
- mkdir -p $(DESTDIR)$(AGI_DIR)
- for x in $(AGIS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(AGI_DIR) ; done
-+ $(MKDIR) $(DESTDIR)$(AGI_DIR)
++ $(MKDIR) -p $(DESTDIR)$(AGI_DIR)
+ for x in $(AGIS_BIN); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(AGI_DIR) ; done
+ for x in $(AGIS_SCR); do $(BSD_INSTALL_SCRIPT) $$x $(DESTDIR)$(AGI_DIR) ; done
eagi-test: eagi-test.o
- $(CC) $(CFLAGS) -o eagi-test eagi-test.o
+ $(CC) $(CFLAGS) -o eagi-test eagi-test.o $(LIBS)
diff --git a/net/asterisk/files/patch-apps::Makefile b/net/asterisk/files/patch-apps::Makefile
index 44f8495864c4..ee7d560bed69 100644
--- a/net/asterisk/files/patch-apps::Makefile
+++ b/net/asterisk/files/patch-apps::Makefile
@@ -1,38 +1,56 @@
---- apps/Makefile.orig Wed Jun 22 14:40:11 2005
-+++ apps/Makefile Wed Jun 22 14:43:45 2005
-@@ -40,9 +40,13 @@
+
+$FreeBSD$
+
+--- apps/Makefile.orig
++++ apps/Makefile
+@@ -45,25 +45,27 @@
#APPS+=app_rpt.so
- APPS+=$(shell if [ -f /usr/include/linux/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
--APPS+=$(shell if [ -f /usr/local/include/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
-+APPS+=$(shell if [ -f $(LOCALBASE)/include/zaptel.h ]; then echo "app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so" ; fi)
- APPS+=$(shell if [ -f /usr/include/osp/osp.h ]; then echo "app_osplookup.so" ; fi)
+ ifndef WITHOUT_ZAPTEL
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/zaptel.h),)
+ APPS+=app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so app_page.so
+ endif
+ endif # WITHOUT_ZAPTEL
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/osp/osp.h $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),)
+ifdef WITH_FAX
-+APPS+=$(shell if [ -f $(LOCALBASE)/include/spandsp.h ]; then echo "app_rxfax.so app_txfax.so" ; fi)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/spandsp.h),)
++APPS+=app_rxfax.so app_txfax.so
++endif
+endif
+
- CFLAGS+=-fPIC
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/osp/osp.h $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),)
+ APPS+=app_osplookup.so
+ endif
+
+ ifeq ($(findstring BSD,${OSARCH}),BSD)
+-CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
++CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include -L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ endif
+
+-CURLLIBS=$(shell $(CROSS_COMPILE_BIN)curl-config --libs)
+-ifneq ($(shell if [[ 0x`$(CROSS_COMPILE_BIN)curl-config --vernum` -ge 0x70907 ]]; then echo "OK" ; fi),)
+- ifneq (${CURLLIBS},)
+- APPS+=app_curl.so
+- endif
+-endif
++CURLLIBS=$(shell $(CROSS_COMPILE_BIN)$(LOCALBASE)/bin/curl-config --libs)
++APPS+=app_curl.so
- ifeq ($(USE_POSTGRES_VM_INTERFACE),1)
-@@ -65,12 +69,12 @@
- $(CC) $(SOLINK) -o $@ $< -ltonezone
+ ifeq (${OSARCH},CYGWIN)
+ CYGSOLINK=-Wl,--out-implib=lib$@.a -Wl,--export-all-symbols
+@@ -95,24 +97,32 @@
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -ltonezone
install: all
- for x in $(APPS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
+ for x in $(APPS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
rm -f $(DESTDIR)$(MODULES_DIR)/app_datetime.so
+ rm -f $(DESTDIR)$(MODULES_DIR)/app_qcall.so
- app_voicemail.so : app_voicemail.o
- ifeq ($(USE_MYSQL_VM_INTERFACE),1)
-- $(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -L/usr/lib/mysql -lmysqlclient -lz
-+ $(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -L$(LOCALBASE)/lib/mysql -lmysqlclient -lz
- else
- ifeq ($(USE_POSTGRES_VM_INTERFACE),1)
- $(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -lpq
-@@ -79,17 +83,25 @@
- endif
- endif
+ app_curl.so: app_curl.o
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} $(CURLLIBS)
+ifdef WITH_FAX
+app_rxfax.so : app_rxfax.o
@@ -47,15 +65,15 @@
+ $(CC) -I$(LOCALBASE)/include/pgsql $(CFLAGS) -c -o app_sql_postgres.o app_sql_postgres.c
app_sql_postgres.so: app_sql_postgres.o
-- $(CC) $(SOLINK) -o $@ $< -L/usr/local/pgsql/lib -lpq
-+ $(CC) $(SOLINK) -o $@ $< -L$(LOCALBASE)/lib -lpq
+- $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -L/usr/local/pgsql/lib -lpq
++ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -L$(LOCALBASE)/lib -lpq
app_sql_odbc.so: app_sql_odbc.o
- $(CC) $(SOLINK) -o $@ $< -lodbc
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -lodbc
look: look.c
- $(CC) -pipe -O6 -g look.c -o look -lncurses
-+ $(CC) $(CFLAGS) look.c -o look -lncurses
++ $(CC) look.c -o look -lncurses
- ifneq ($(wildcard .depend),)
- include .depend
+ ifeq (SunOS,$(shell uname))
+ app_chanspy.so: app_chanspy.o
diff --git a/net/asterisk/files/patch-apps::app_rxfax.c b/net/asterisk/files/patch-apps::app_rxfax.c
index 88362bfc7914..820208e1943d 100644
--- a/net/asterisk/files/patch-apps::app_rxfax.c
+++ b/net/asterisk/files/patch-apps::app_rxfax.c
@@ -1,9 +1,9 @@
$FreeBSD$
---- apps/app_rxfax.c.orig
-+++ apps/app_rxfax.c
-@@ -0,0 +1,371 @@
+--- /dev/null Thu Jan 12 17:44:40 2006
++++ apps/app_rxfax.c Thu Jan 12 17:41:53 2006
+@@ -0,0 +1,373 @@
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
@@ -17,6 +17,7 @@ $FreeBSD$
+ * the GNU General Public License
+ */
+
++#include <stdio.h>
+#include <asterisk/lock.h>
+#include <asterisk/file.h>
+#include <asterisk/logger.h>
@@ -26,6 +27,7 @@ $FreeBSD$
+#include <asterisk/translate.h>
+#include <asterisk/dsp.h>
+#include <asterisk/manager.h>
++#include <asterisk/version.h>
+#include <string.h>
+#include <stdlib.h>
+#if defined(__FreeBSD__) && __FreeBSD_version < 500028
@@ -100,7 +102,7 @@ $FreeBSD$
+ "FaxReceived", "Channel: %s\nExten: %s\nCallerID: %s\nRemoteStationID: %s\nLocalStationID: %s\nPagesTransferred: %i\nResolution: %i\nTransferRate: %i\nFileName: %s\n",
+ chan->name,
+ chan->exten,
-+#if (ASTERISK_VERSION_NUM <= 011000)
++#if ASTERISK_VERSION_NUM <= 010010
+ chan->callerid,
+#else
+ (chan->cid.cid_num) ? chan->cid.cid_num : "",
diff --git a/net/asterisk/files/patch-apps::app_txfax.c b/net/asterisk/files/patch-apps::app_txfax.c
index 8daf0f979334..15ad6674788e 100644
--- a/net/asterisk/files/patch-apps::app_txfax.c
+++ b/net/asterisk/files/patch-apps::app_txfax.c
@@ -1,9 +1,9 @@
$FreeBSD$
---- apps/app_txfax.c.orig
-+++ apps/app_txfax.c
-@@ -0,0 +1,293 @@
+--- /dev/null Thu Jan 12 17:48:54 2006
++++ apps/app_txfax.c Thu Jan 12 17:48:36 2006
+@@ -0,0 +1,295 @@
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
@@ -17,6 +17,7 @@ $FreeBSD$
+ * the GNU General Public License
+ */
+
++#include <stdio.h>
+#include <asterisk/lock.h>
+#include <asterisk/file.h>
+#include <asterisk/logger.h>
@@ -26,6 +27,7 @@ $FreeBSD$
+#include <asterisk/translate.h>
+#include <string.h>
+#include <stdlib.h>
++#include <math.h>
+#if defined(__FreeBSD__) && __FreeBSD_version < 500028
+#include <inttypes.h>
+#else
diff --git a/net/asterisk/files/patch-astman::Makefile b/net/asterisk/files/patch-astman::Makefile
deleted file mode 100644
index 2745860cdd36..000000000000
--- a/net/asterisk/files/patch-astman::Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-
-$FreeBSD$
-
---- astman/Makefile.orig Sat Jun 26 22:25:39 2004
-+++ astman/Makefile Thu Oct 14 19:14:22 2004
-@@ -5,16 +5,16 @@
-
- OSARCH=$(shell uname -s)
- ifeq ($(findstring BSD,${OSARCH}),BSD)
--CFLAGS+=-I/usr/local/include -L/usr/local/lib
-+CFLAGS+=-I$(LOCALBASE)/include -L$(LOCALBASE)/lib
- endif
-
--TARGET=$(shell if [ -f /usr/include/newt.h ]; then echo "astman"; else if [ -f /usr/local/include/newt.h ]; then echo "astman"; else echo "none" ; fi ; fi)
-+TARGET=astman
- all: depend $(TARGET)
-
- install:
- if [ "$(TARGET)" != "none" ]; then \
- for x in $(TARGET); do \
-- install -m 755 $$x $(DESTDIR)$(ASTSBINDIR)/astman; \
-+ $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(ASTSBINDIR)/astman; \
- done ; \
- fi
-
diff --git a/net/asterisk/files/patch-cdr::Makefile b/net/asterisk/files/patch-cdr::Makefile
index 1d0fb2049ba2..da16b609d5f2 100644
--- a/net/asterisk/files/patch-cdr::Makefile
+++ b/net/asterisk/files/patch-cdr::Makefile
@@ -1,51 +1,65 @@
---- cdr/Makefile.orig Tue Aug 31 23:33:00 2004
-+++ cdr/Makefile Tue Aug 9 17:28:11 2005
-@@ -21,7 +21,7 @@
- OSARCH=$(shell uname -s)
-
- ifeq (${OSARCH},FreeBSD)
--SOLINK+=-L/usr/local/lib
-+SOLINK+=-L$(LOCALBASE)/lib
+
+$FreeBSD$
+
+--- cdr/Makefile.orig Tue Nov 29 20:24:39 2005
++++ cdr/Makefile Thu Jan 12 17:56:23 2006
+@@ -21,8 +21,8 @@
+ endif
+
+ ifeq ($(findstring BSD,${OSARCH}),BSD)
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include
+- SOLINK+=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include
++ SOLINK+=-L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
endif
#The problem with sparc is the best stuff is in newer versions of gcc (post 3.0) only.
-@@ -37,18 +37,23 @@
+@@ -38,18 +38,18 @@
#
# unixODBC stuff...
#
-+ifdef WITH_ODBC
- MODS+=$(shell if [ -f "/usr/include/odbcinst.h" ]; then echo "cdr_odbc.so"; fi)
- MODS+=$(shell if [ -f "/usr/local/include/odbcinst.h" ]; then echo "cdr_odbc.so"; fi)
-+endif
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/odbcinst.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/odbcinst.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/odbcinst.h)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/odbcinst.h),)
+ MODS+=cdr_odbc.so
+ endif
#
# FreeTDS stuff...
#
-+ifdef WITH_FREETDS
- MODS+=$(shell if [ -f "/usr/include/tds.h" ]; then echo "cdr_tds.so"; fi)
- MODS+=$(shell if [ -f "/usr/local/include/tds.h" ]; then echo "cdr_tds.so"; fi)
-+endif
-
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/tds.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/tds.h),)
+- ifeq ($(shell grep -s TDS_VERSION_NO $(CROSS_COMPILE_TARGET)/usr/include/tdsver.h $(CROSS_COMPILE_TARGET)/usr/local/include/tdsver.h | grep -c 0.63),1)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/tds.h)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/tds.h),)
++ ifeq ($(shell grep -s TDS_VERSION_NO $(CROSS_COMPILE_TARGET)/usr/include/tdsver.h $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/tdsver.h | grep -c 0.63),1)
+ CFLAGS += -DFREETDS_0_63
+ else
+- ifeq ($(shell grep -s TDS_VERSION_NO $(CROSS_COMPILE_TARGET)/usr/include/tdsver.h $(CROSS_COMPILE_TARGET)/usr/local/include/tdsver.h | grep -c 0.62),1)
++ ifeq ($(shell grep -s TDS_VERSION_NO $(CROSS_COMPILE_TARGET)/usr/include/tdsver.h $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/tdsver.h | grep -c 0.62),1)
+ CFLAGS += -DFREETDS_0_62
+ else
+ CFLAGS += -DFREETDS_PRE_0_62
+@@ -61,7 +61,7 @@
#
# PGSQL stuff... Autoconf anyone??
#
-+ifdef WITH_PGSQL
- MODS+=$(shell if [ -d /usr/local/pgsql/include ] || [ -d /usr/include/pgsql ] || [ -d /usr/local/include/pgsql ] || [ -d /opt/pgsql/include ] || [ -f /usr/include/libpq-fe.h ] ; then echo "cdr_pgsql.so"; fi)
- CFLAGS+=$(shell if [ -d /usr/local/pgsql/include ]; then echo "-I/usr/local/pgsql/include"; fi)
- CFLAGS+=$(shell if [ -d /usr/include/pgsql ]; then echo "-I/usr/include/pgsql"; fi)
-@@ -62,16 +67,19 @@
- MLFLAGS+=$(shell if [ -d /usr/local/lib/pgsql ]; then echo "-L/usr/local/lib/pgsql"; fi)
- MLFLAGS+=$(shell if [ -d /opt/pgsql/lib ]; then echo "-L/opt/pgsql/lib"; fi)
- MLFLAGS+=$(shell if [ -f /usr/lib/libpq.so ]; then echo "-L/usr/lib"; fi)
-+endif
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/postgresql)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/pgsql/include)$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/pgsql)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/pgsql)$(wildcard $(CROSS_COMPILE_TARGET)/opt/pgsql/include)$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/libpq-fe.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/postgresql)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/pgsql/include)$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/pgsql)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/pgsql)$(wildcard $(CROSS_COMPILE_TARGET)/opt/pgsql/include)$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/libpq-fe.h),)
+ MODS+=cdr_pgsql.so
+ endif
- #
- # SQLIte stuff...
- #
-+ifdef WITH_SQLITE
- MODS+=$(shell if [ -f "/usr/include/sqlite.h" ]; then echo "cdr_sqlite.so"; fi)
-+endif
+@@ -82,9 +82,9 @@
+ MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/lib/pgsql
+ endif
+
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/pgsql),)
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include/pgsql
+- MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/local/lib/pgsql
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/pgsql),)
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/pgsql
++ MLFLAGS+=-L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib/pgsql
+ endif
+ ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/opt/pgsql/include),)
+@@ -110,7 +110,7 @@
all: depend $(MODS)
install: all
diff --git a/net/asterisk/files/patch-channels::Makefile b/net/asterisk/files/patch-channels::Makefile
index 7ecab67f9571..edca9b1e7694 100644
--- a/net/asterisk/files/patch-channels::Makefile
+++ b/net/asterisk/files/patch-channels::Makefile
@@ -1,97 +1,85 @@
---- channels/Makefile.orig Tue Aug 31 23:33:00 2004
-+++ channels/Makefile Tue Aug 9 17:34:28 2005
-@@ -57,10 +57,10 @@
-
+
+$FreeBSD$
+
+--- channels/Makefile.orig
++++ channels/Makefile
+@@ -48,9 +48,9 @@
endif
+
ifeq (${OSARCH},FreeBSD)
--PTLIB=-lpt_FreeBSD_x86_r
--H323LIB=-lh323_FreeBSD_x86_r
--CHANH323LIB=-pthread
--SOLINK+=-L/usr/local/lib
-+PTLIB=-lpt_FreeBSD_x86_r_s
-+H323LIB=-lh323_FreeBSD_x86_r_s
-+CHANH323LIB=
-+SOLINK+=-L$(LOCALBASE)/lib
+- PTLIB=-lpt_FreeBSD_x86_r
+- H323LIB=-lh323_FreeBSD_x86_r
+- CHANH323LIB=-pthread
++ PTLIB=-lpt_FreeBSD_x86_r_s
++ H323LIB=-lh323_FreeBSD_x86_r_s
++ CHANH323LIB=
endif
+
ifeq (${OSARCH},NetBSD)
- PTLIB=-lpt_NetBSD_x86_r
-@@ -72,19 +72,23 @@
+@@ -73,11 +73,11 @@
+ SOLINK+=-lrt
endif
- CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/ixjuser.h ] && echo chan_phone.so)
--CHANNEL_LIBS+=$(shell [ -f /usr/local/include/ixjuser.h ] && echo chan_phone.so)
--CHANNEL_LIBS+=$(shell [ -f h323/libchanh323.a ] && echo chan_h323.so)
-+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/ixjuser.h ] && echo chan_phone.so)
-+ifdef WITH_H323
-+CHANNEL_LIBS+=chan_h323.so
-+endif
-
- CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
- CFLAGS+=$(shell [ ! -f /usr/include/linux/if_wanpipe.h ] && echo " -DOLD_SANGOMA_API")
- CHANNEL_LIBS+=$(shell [ -f /usr/include/alsa/asoundlib.h ] && echo "chan_alsa.so")
--CFLAGS+=$(shell [ -f /usr/lib/libpri.so.1 ] && echo " -DZAPATA_PRI")
-+CFLAGS+=$(shell [ -f $(LOCALBASE)/lib/libpri.so.1 ] && echo " -DZAPATA_PRI")
- CFLAGS+=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo " -DZAPATA_R2")
- CFLAGS+=$(shell [ -f alsa-monitor.h ] && echo " -DALSA_MONITOR")
--ZAPPRI=$(shell [ -f /usr/lib/libpri.so.1 ] && echo "-lpri")
-+ZAPPRI=$(shell [ -f $(LOCALBASE)/lib/libpri.so.1 ] && echo "-lpri")
- ZAPR2=$(shell [ -f /usr/lib/libmfcr2.so.1 ] && echo "-lmfcr2")
-+ifdef WITH_ZAPTEL
- CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "-DIAX_TRUNKING")
--CFLAGS+=$(shell [ -f /usr/local/include/zaptel.h ] && echo "-DIAX_TRUNKING")
-+CFLAGS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "-DIAX_TRUNKING -I$(LOCALBASE)/include")
-+endif
- CHANNEL_LIBS+=$(shell [ -f /usr/include/vpbapi.h ] && echo "chan_vpb.so" )
- CFLAGS+=$(shell [ -f /usr/include/vpbapi.h ] && echo " -DLINUX")
-
-@@ -106,8 +110,10 @@
-
- ZAPDIR=/usr/lib
-
-+ifdef WITH_ZAPTEL
- CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo "chan_zap.so")
--CHANNEL_LIBS+=$(shell [ -f /usr/local/include/zaptel.h ] && echo "chan_zap.so")
-+CHANNEL_LIBS+=$(shell [ -f $(LOCALBASE)/include/zaptel.h ] && echo "chan_zap.so")
-+endif
-
- CHANNEL_LIBS+=$(shell [ -f /usr/include/nbs.h ] && echo "chan_nbs.so" )
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/ixjuser.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/ixjuser.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/ixjuser.h)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/ixjuser.h),)
+ CHANNEL_LIBS+=chan_phone.so
+ endif
-@@ -156,6 +162,8 @@
- chan_oss.so: chan_oss.o
- $(CC) $(SOLINK) -o $@ chan_oss.o -lossaudio
+-ifneq ($(wildcard h323/libchanh323.a),)
++ifdef WITH_H323
+ CHANNEL_LIBS+=chan_h323.so
endif
-+chan_oss.so: chan_oss.o
-+ $(CC) $(SOLINK) -o $@ chan_oss.o
- chan_iax2.so: chan_iax2.o iax2-parser.o iax2-provision.o
- ifeq ($(USE_MYSQL_FRIENDS),1)
-@@ -175,7 +183,7 @@
- $(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
+@@ -91,12 +91,12 @@
+ CHANNEL_LIBS+=chan_alsa.so
+ endif
- chan_zap.so: chan_zap.o
-- $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -ltonezone
-+ $(CC) $(SOLINK) -o $@ $< $(ZAPPRI) $(ZAPR2) -L$(LOCALBASE)/lib -ltonezone
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libpri.so.1)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/lib/libpri.so.1),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libpri.so.1)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib/libpri.so.1),)
+ CFLAGS+=-DZAPATA_PRI
+ ZAPPRI=-lpri
+ endif
- chan_sip.so: chan_sip.o
- ifeq ($(USE_SIP_MYSQL_FRIENDS),1)
-@@ -199,15 +207,17 @@
- chan_vpb.so: chan_vpb.o
- $(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libmfcr2.so.1)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/lib/libmfcr2.so.1),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libmfcr2.so.1)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib/libmfcr2.so.1),)
+ CFLAGS+=-DZAPATA_R2
+ ZAPR2=-lmfcr2
+ endif
+@@ -109,12 +109,12 @@
+ endif
+ ifndef WITHOUT_ZAPTEL
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/pkg/include/zaptel.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/pkg/include/zaptel.h),)
+ ifeq (${OSARCH},NetBSD)
+ SOLINK+=-L$(CROSS_COMPILE_TARGET)/usr/pkg/lib
+ endif
+ ifeq (${OSARCH},FreeBSD)
+- SOLINK+=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ SOLINK+=-L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ endif
+ CFLAGS+=-DIAX_TRUNKING
+ CHANNEL_LIBS+=chan_zap.so
+@@ -229,8 +229,10 @@
+ chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast
+ $(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) -lstdc++
+ else
-chan_h323.so: chan_h323.o h323/libchanh323.a
- $(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
+chan_h323.so: chan_h323.o h323/ast_h323.o
-+ $(CXX) $(SOLINK) -o $@ $< h323/ast_h323.o -L$(OPENH323DIR)/lib $(H323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -lcrypto -lssl -L$(LOCALBASE)/lib -lexpat -llber -lldap -lldap_r
-
++ $(CXX) $(SOLINK) -o $@ $< h323/ast_h323.o $(CHANH323LIB) -L$(OPENH323DIR)/lib $(H323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L/usr/lib -lcrypto -lssl -lexpat -L$(LOCALBASE)/lib -llber -lldap -lldap_r
+h323/ast_h323.o:
+ $(MAKE) -C h323 ast_h323.o
+ endif
- #chan_modem.so : chan_modem.o
+ chan_misdn.so: chan_misdn.o chan_misdn_config.o misdn/chan_misdn_lib.a
+@@ -244,8 +246,7 @@
# $(CC) -rdynamic -shared -Xlinker -x -o $@ $<
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
- if ! [ -f chan_iax.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/chan_iax.so ; fi
depend: .depend
+
diff --git a/net/asterisk/files/patch-channels::chan_h323.c b/net/asterisk/files/patch-channels::chan_h323.c
index de2ed3978663..6498b9721fdc 100644
--- a/net/asterisk/files/patch-channels::chan_h323.c
+++ b/net/asterisk/files/patch-channels::chan_h323.c
@@ -1,14 +1,14 @@
$FreeBSD$
---- channels/chan_h323.c 2004/10/10 13:00:17 1.1
-+++ channels/chan_h323.c 2004/10/10 13:00:39
-@@ -26,7 +26,7 @@
- * Version Info: $Id: patch-channels::chan_h323.c,v 1.3.2.3 2004/10/14 14:30:13 sobomax Exp $
- */
+--- channels/chan_h323.c.orig Tue Nov 29 20:24:39 2005
++++ channels/chan_h323.c Thu Jan 12 18:29:50 2006
+@@ -2281,7 +2281,7 @@ static char *convertcap(int cap)
+ }
+ }
--
-+#include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/signal.h>
- #include <sys/param.h>
+-static int oh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, int codecs)
++static int oh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, int codecs, int nat_active)
+ {
+ /* XXX Deal with Video */
+ struct oh323_pvt *pvt;
diff --git a/net/asterisk/files/patch-channels::chan_sip.c b/net/asterisk/files/patch-channels::chan_sip.c
index e634ce47c97f..355c558c2ab1 100644
--- a/net/asterisk/files/patch-channels::chan_sip.c
+++ b/net/asterisk/files/patch-channels::chan_sip.c
@@ -1,144 +1,131 @@
$FreeBSD$
---- channels/chan_sip.c.orig Sun Feb 17 18:01:43 2002
-+++ channels/chan_sip.c Sun Feb 17 18:10:52 2002
-@@ -141,7 +141,7 @@
+--- channels/chan_sip.c.orig Thu Jan 12 18:43:37 2006
++++ channels/chan_sip.c Thu Jan 12 18:50:11 2006
+@@ -336,7 +336,7 @@ static char global_vmexten[AST_MAX_EXTEN
static char default_language[MAX_LANGUAGE] = "";
--static char default_callerid[AST_MAX_EXTENSION] = "asterisk";
-+static char default_callerid[AST_MAX_EXTENSION] = "Unknown";
+-#define DEFAULT_CALLERID "asterisk"
++#define DEFAULT_CALLERID "Unknown"
+ static char default_callerid[AST_MAX_EXTENSION] = DEFAULT_CALLERID;
static char default_fromdomain[AST_MAX_EXTENSION] = "";
+@@ -474,6 +474,7 @@ struct sip_invite_param {
-@@ -244,6 +244,7 @@
struct sip_route {
struct sip_route *next;
- char hop[0];
+ int lr;
+ char hop[0];
};
- struct sip_history {
-@@ -2218,7 +2219,7 @@
- if (p->owner) {
- /* We already hold the channel lock */
- if (f->frametype == AST_FRAME_VOICE) {
-- if (f->subclass != p->owner->nativeformats) {
-+ if (!(f->subclass & p->owner->nativeformats)) {
- ast_log(LOG_DEBUG, "Oooh, format changed to %d\n", f->subclass);
- p->owner->nativeformats = f->subclass;
- ast_set_read_format(p->owner, p->owner->readformat);
-@@ -4620,6 +4621,10 @@
+@@ -5993,6 +5994,7 @@ static void build_route(struct sip_pvt *
/* Make a struct route */
- thishop = (struct sip_route *)malloc(sizeof(struct sip_route)+len+1);
+ thishop = malloc(sizeof(*thishop) + len);
if (thishop) {
-+ if (strnstr(rr, ";lr", len) != NULL)
-+ thishop->lr = 1;
-+ else
-+ thishop->lr = 0;
- strncpy(thishop->hop, rr, len); /* safe */
- thishop->hop[len] = '\0';
++ thishop->lr = (strnstr(rr, ";lr", len) != NULL ? 1 : 0);
+ ast_copy_string(thishop->hop, rr, len);
ast_log(LOG_DEBUG, "build_route: Record-Route hop: <%s>\n", thishop->hop);
-@@ -4643,31 +4648,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 (!ast_strlen_zero(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); /* safe */
-- 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 (!ast_strlen_zero(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); /* safe */
-+ thishop->hop[len] = '\0';
-+ thishop->next = NULL;
-+ /* Goes at the end */
-+ if (tail)
-+ tail->next = thishop;
-+ else
-+ head = thishop;
+ /* Link in */
+@@ -6018,31 +6020,41 @@ static void build_route(struct sip_pvt *
+
+ /* Only append the contact if we are dealing with a strict router */
+ if (!head || (!ast_strlen_zero(head->hop) && strstr(head->hop,";lr") == NULL) ) {
+- /* 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 (!ast_strlen_zero(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, ">") + 1;
+- } else {
+- /* No <> - just take the lot */
+- c = contact;
+- len = strlen(contact) + 1;
+- }
+- thishop = malloc(sizeof(*thishop) + len);
++ /* 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) {
+- ast_copy_string(thishop->hop, c, len);
+- 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 (!ast_strlen_zero(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, ">") + 1;
++ } else {
++ /* No <> - just take the lot */
++ c = contact;
++ len = strlen(contact) + 1;
++ }
++ thishop = malloc(sizeof(*thishop) + len);
++ if (thishop) {
++ ast_copy_string(thishop->hop, c, len);
++ thishop->next = NULL;
++ /* Goes at the end */
++ if (tail)
++ tail->next = thishop;
++ else
++ head = thishop;
++ }
+ }
}
}
- /* Store as new route */
-@@ -7338,7 +7353,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);
+@@ -10336,7 +10348,11 @@ static int handle_request_invite(struct
+ gotdest = get_destination(p, NULL);
- if (gotdest) {
-@@ -7366,7 +7385,6 @@
- c = sip_new(p, AST_STATE_DOWN, ast_strlen_zero(p->username) ? NULL : p->username );
- *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);
-@@ -7426,6 +7444,14 @@
- transmit_response(p, "180 Ringing", req);
- break;
- case AST_STATE_UP:
-+ /* Assuming this to be reinvite, process new SDP portion */
-+ if (!ast_strlen_zero(get_header(req, "Content-Type"))) {
-+ process_sdp(p, req);
-+ } else {
-+ p->jointcapability = p->capability;
-+ ast_log(LOG_DEBUG, "Hm.... No sdp for the moment\n");
-+ }
-+
- transmit_response_with_sdp(p, "200 OK", req, 1);
- break;
- default:
+ 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) {
+@@ -10364,7 +10380,6 @@ static int handle_request_invite(struct
+ c = sip_new(p, AST_STATE_DOWN, ast_strlen_zero(p->username) ? NULL : p->username );
+ *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);
+@@ -10450,6 +10465,13 @@ static int handle_request_invite(struct
+ transmit_response(p, "180 Ringing", req);
+ break;
+ case AST_STATE_UP:
++ /* Assuming this to be reinvite, process new SDP portion */
++ if (!ast_strlen_zero(get_header(req, "Content-Type"))) {
++ process_sdp(p, req);
++ } else {
++ p->jointcapability = p->capability;
++ ast_log(LOG_DEBUG, "Hm.... No sdp for the moment\n");
++ }
+ transmit_response_with_sdp(p, "200 OK", req, 1);
+ break;
+ default:
diff --git a/net/asterisk/files/patch-channels::chan_zap.c b/net/asterisk/files/patch-channels::chan_zap.c
index 458a6147d215..ab02c02af962 100644
--- a/net/asterisk/files/patch-channels::chan_zap.c
+++ b/net/asterisk/files/patch-channels::chan_zap.c
@@ -1,85 +1,65 @@
$FreeBSD$
---- channels/chan_zap.c.orig Sun Feb 17 18:01:44 2002
-+++ channels/chan_zap.c Sun Feb 17 18:03:26 2002
-@@ -46,7 +46,9 @@
- #include <sys/signal.h>
- #include <errno.h>
- #include <stdlib.h>
-+#ifndef __FreeBSD__
- #include <stdint.h>
-+#endif
- #include <unistd.h>
- #include <sys/ioctl.h>
- #ifdef __linux__
-@@ -320,7 +322,7 @@
- #define CALLWAITING_REPEAT_SAMPLES ( (10000 * 8) / READ_SIZE) /* 300 ms */
- #define CIDCW_EXPIRE_SAMPLES ( (500 * 8) / READ_SIZE) /* 500 ms */
- #define MIN_MS_SINCE_FLASH ( (2000) ) /* 2000 ms */
--#define RINGT ( (8000 * 8) / READ_SIZE)
-+#define RINGT ( (8000 * 8) / READ_SIZE) /* 8000 ms */
-
- struct zt_pvt;
-
-@@ -535,6 +537,7 @@
- int cidpos;
+--- channels/chan_zap.c.orig Tue Nov 29 20:24:39 2005
++++ channels/chan_zap.c Fri Jan 13 13:28:33 2006
+@@ -638,6 +638,7 @@ static struct zt_pvt {
int cidlen;
int ringt;
+ int ringt_base;
+ int waitnorings;
int stripmsd;
- int callwaiting;
int callwaitcas;
-@@ -2134,12 +2137,20 @@
-
- if (option_debug)
- ast_log(LOG_DEBUG, "zt_hangup(%s)\n", ast->name);
-+
- if (!ast->pvt->pvt) {
- ast_log(LOG_WARNING, "Asked to hangup channel not connected\n");
- return 0;
+ int callwaitrings;
+@@ -2308,6 +2309,19 @@ static int zt_hangup(struct ast_channel
}
ast_mutex_lock(&p->lock);
++ switch (p->sig) {
++ case SIG_FXSGS:
++ case SIG_FXSKS:
++ case SIG_FXSLS:
++ if((ast->_state == AST_STATE_RING) && (p->ringt > 1))
++ {
++ p->waitnorings = 1;
++ }
++ break;
++ default:
++ break;
++ };
+
-+
-+ if((p->sig == SIG_FXSGS) || (p->sig == SIG_FXSKS) || (p->sig == SIG_FXSLS))
-+ if((ast->_state == AST_STATE_RING) && (p->ringt > 1))
-+ {
-+ p->waitnorings = 1;
-+ }
index = zt_get_index(ast, p, 1);
-@@ -5717,7 +5728,37 @@
+@@ -6129,7 +6143,37 @@ static void *ss_thread(void *data)
ast_setstate(chan, AST_STATE_RING);
chan->rings = 1;
- p->ringt = RINGT;
+ p->ringt = p->ringt_base;
+ p->waitnorings = 0;
res = ast_pbx_run(chan);
+
+ if(p->waitnorings)
+ {
-+ p->ringt = RINGT;
++ p->ringt = p->ringt_base;
+ for(;;)
+ {
+ int i,j=0;
+ i = ZT_IOMUX_SIGEVENT | ZT_IOMUX_NOWAIT;
-+ if (ioctl(p->subs[index].zfd, ZT_IOMUX, &i) == -1)
++ if (ioctl(p->subs[index].zfd, ZT_IOMUX, &i) == -1)
+ break;
-+
-+ if (ioctl(p->subs[index].zfd, ZT_GETEVENT, &j) == -1)
++
++ if (ioctl(p->subs[index].zfd, ZT_GETEVENT, &j) == -1)
+ break;
-+
++
+ if(j == ZT_EVENT_RINGOFFHOOK)
-+ p->ringt = RINGT;
++ p->ringt = p->ringt_base;
+
+ usleep(20000);
+
+ if (p->ringt <= 0)
+ break;
+
-+ else if (p->ringt > 0)
++ else if (p->ringt > 0)
+ p->ringt--;
+ }
+ p->ringt = 0;
@@ -89,7 +69,7 @@ $FreeBSD$
if (res) {
ast_hangup(chan);
ast_log(LOG_WARNING, "PBX exited non-zero\n");
-@@ -6018,7 +6059,7 @@
+@@ -6431,7 +6475,7 @@ static void *do_monitor(void *data)
i = iflist;
while(i) {
if ((i->subs[SUB_REAL].zfd > -1) && i->sig && (!i->radio)) {
diff --git a/net/asterisk/files/patch-channels::h323::Makefile b/net/asterisk/files/patch-channels::h323::Makefile
deleted file mode 100644
index 779096bb2267..000000000000
--- a/net/asterisk/files/patch-channels::h323::Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-
-$FreeBSD$
-
---- channels/h323/Makefile.orig
-+++ channels/h323/Makefile
-@@ -53,7 +53,7 @@
- LIBS+=-lpthread
- endif
- ifeq ($(findstring BSD,${OSARCH}),BSD)
--CFLAGS += -pthread
-+CFLAGS += $(PTHREAD_LIBS)
- endif
- CFLAGS += -D_REENTRANT -D_GNU_SOURCE
- CFLAGS += -DP_HAS_SEMAPHORES -DP_SSL -DP_PTHREADS
-@@ -77,20 +77,20 @@
- ar cr libchanh323.a ast_h323.o
-
- ast_h323.o: ast_h323.cpp
-- $(CXX) -g -c -fno-rtti -o $@ $(CFLAGS) $<
-+ $(CXX) $(CXXFLAGS) -c -fno-rtti -o $@ $(CFLAGS) $<
-
- ifneq ($(wildcard .depend),)
- include .depend
- endif
-
- chan_h323.so:
-- $(CXX) -g -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_linux_x86_r -L$(OPENH323DIR)/lib -lh323_linux_x86_r -L/usr/lib $(CHANH323LIB)
-+ $(CXX) $(CXXFLAGS) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_FreeBSD_x86_r_s -L$(OPENH323DIR)/lib -lh323_FreeBSD_x86_r $(CHANH323LIB)
-
- chan_h323_d.so: chan_h323.o ast_h323.o
-- $(CXX) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_linux_x86_d -L$(OPENH323DIR)/lib -lh323_linux_x86_d -L/usr/lib $(CHANH323LIB)
-+ $(CXX) $(CXXFLAGS) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_FreeBSD_x86_r_s -L$(OPENH323DIR)/lib -lh323_FreeBSD_x86_r $(CHANH323LIB)
-
- chan_h323_s.so: chan_h323.o ast_h323.o
-- $(CXX) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_linux_x86_r_s -L$(OPENH323DIR)/lib -lh323_linux_x86_r_s -L/usr/lib $(CHANH323LIB)
-+ $(CXX) $(CXXFLAGS) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_FreeBSD_x86_r_s -L$(OPENH323DIR)/lib -lh323_FreeBSD_x86_r $(CHANH323LIB)
- clean:
- rm -f *.o *.so core.* libchanh323.a .depend
-
diff --git a/net/asterisk/files/patch-channels::h323::ast_h323.cpp b/net/asterisk/files/patch-channels::h323::ast_h323.cpp
new file mode 100644
index 000000000000..feb79e586e91
--- /dev/null
+++ b/net/asterisk/files/patch-channels::h323::ast_h323.cpp
@@ -0,0 +1,16 @@
+
+$FreeBSD$
+
+--- channels/h323/ast_h323.cpp.orig Thu Jan 12 18:16:08 2006
++++ channels/h323/ast_h323.cpp Thu Jan 12 18:16:35 2006
+@@ -953,8 +953,8 @@ BOOL MyH323Connection::OnReceivedCapabil
+ H323Channel * MyH323Connection::CreateRealTimeLogicalChannel(const H323Capability & capability,
+ H323Channel::Directions dir,
+ unsigned sessionID,
+- const H245_H2250LogicalChannelParameters * /*param*/,
+- RTP_QOS * /*param*/ )
++ const H245_H2250LogicalChannelParameters * /*param*/ /*,
++ RTP_QOS * */ /*param*/ )
+ {
+ return new MyH323_ExternalRTPChannel(*this, capability, dir, sessionID);
+ }
diff --git a/net/asterisk/files/patch-channels::h323::ast_h323.h b/net/asterisk/files/patch-channels::h323::ast_h323.h
new file mode 100644
index 000000000000..606bb0123173
--- /dev/null
+++ b/net/asterisk/files/patch-channels::h323::ast_h323.h
@@ -0,0 +1,16 @@
+
+$FreeBSD$
+
+--- channels/h323/ast_h323.h.orig Thu Jan 12 18:14:49 2006
++++ channels/h323/ast_h323.h Thu Jan 12 18:15:02 2006
+@@ -155,8 +155,8 @@ class MyH323Connection : public H323Conn
+ H323Channel * CreateRealTimeLogicalChannel(const H323Capability &,
+ H323Channel::Directions,
+ unsigned,
+- const H245_H2250LogicalChannelParameters *,
+- RTP_QOS *);
++ const H245_H2250LogicalChannelParameters * /* ,
++ RTP_QOS * */);
+ H323Connection::AnswerCallResponse OnAnswerCall(const PString &,
+ const H323SignalPDU &,
+ H323SignalPDU &);
diff --git a/net/asterisk/files/patch-codecs::Makefile b/net/asterisk/files/patch-codecs::Makefile
index 325e590423a2..ab5cbc4aef2c 100644
--- a/net/asterisk/files/patch-codecs::Makefile
+++ b/net/asterisk/files/patch-codecs::Makefile
@@ -1,39 +1,48 @@
---- codecs/Makefile.orig Thu Mar 17 20:43:51 2005
-+++ codecs/Makefile Thu Apr 14 00:09:04 2005
-@@ -17,25 +17,23 @@
- # g723.1b)
- #
- #MODG723=codec_g723_1.so codec_g723_1b.so
--MODG723=$(shell [ -f g723.1/coder.c ] && echo "codec_g723_1.so")
--MODG723+=$(shell [ -f g723.1b/coder2.c ] && echo "codec_g723_1b.so")
--MODSPEEX=$(shell [ -f /usr/include/speex.h ] || [ -f /usr/include/speex/speex.h ] || [ -f /usr/local/include/speex.h ] || [ -f /usr/local/include/speex/speex.h ] && echo "codec_speex.so")
--MODILBC=$(shell [ -f ilbc/iLBC_decode.h ] && echo "codec_ilbc.so")
-+MODG723=codec_g723_1_dummy.so
-+MODG729=codec_g729_dummy.so
-+MODSPEEX=codec_speex.so
-+MODILBC=codec_ilbc.so
- CFLAGS+=-fPIC
--CFLAGS+=$(shell [ -f /usr/local/include/speex.h ] && echo "-I/usr/local/include")
--CFLAGS+=$(shell [ -f /usr/local/include/speex/speex.h ] && echo "-I/usr/local/include/speex")
--CFLAGS+=$(shell [ -f /usr/include/speex/speex.h ] && echo "-I/usr/include/speex")
-+CFLAGS+=-I$(LOCALBASE)/include
+
+$FreeBSD$
+
+--- codecs/Makefile.orig Tue Nov 29 20:24:39 2005
++++ codecs/Makefile Fri Jan 13 10:33:21 2006
+@@ -30,8 +30,8 @@
- LIBG723=g723.1/libg723.a
- LIBG723B=g723.1b/libg723b.a
- LIBGSM=gsm/lib/libgsm.a
- LIBGSMT=gsm/lib/libgsm.a
+ UI_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/speex.h)
+ UIS_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/speex/speex.h)
+-ULI_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/speex.h)
+-ULIS_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/speex/speex.h)
++ULI_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/speex.h)
++ULIS_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/speex/speex.h)
+ ifneq (${UI_SPEEX},)
+ MODSPEEX=codec_speex.so
+ LIBSPEEX+=-lspeex -lm
+@@ -43,14 +43,14 @@
+ endif
+ ifneq (${ULI_SPEEX},)
+ MODSPEEX=codec_speex.so
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include
+- LIBSPEEX=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include
++ LIBSPEEX=-L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ LIBSPEEX+=-lspeex -lm
+ endif
+ ifneq (${ULIS_SPEEX},)
+ MODSPEEX=codec_speex.so
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include/speex
+- LIBSPEEX=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/speex
++ LIBSPEEX=-L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ LIBSPEEX+=-lspeex -lm
+ endif
+
+@@ -65,7 +65,7 @@
LIBLPC10=lpc10/liblpc10.a
--LIBSPEEX=$(shell [ -f /usr/local/lib/libspeex.a ] && echo "-L/usr/local/lib")
-+LIBSPEEX=-L$(LOCALBASE)/lib
- LIBSPEEX+=-lspeex -lm
- LIBILBC=ilbc/libilbc.a
--CODECS+=$(MODG723) $(MODSPEEX) $(MODILBC) codec_gsm.so codec_lpc10.so \
-+CODECS+=$(MODG723) $(MODG729) $(MODSPEEX) $(MODILBC) codec_gsm.so codec_lpc10.so \
- codec_adpcm.so codec_ulaw.so codec_alaw.so codec_a_mu.so \
- codec_g726.so
+ ifeq ($(findstring BSD,${OSARCH}),BSD)
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include -L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ endif
-@@ -93,7 +91,7 @@
+ CODECS+=$(MODG723) $(MODSPEEX) $(MODILBC) codec_gsm.so codec_lpc10.so \
+@@ -126,7 +126,7 @@
endif
install: all
diff --git a/net/asterisk/files/patch-codecs::codec_g723_1_dummy.c b/net/asterisk/files/patch-codecs::codec_g723_1_dummy.c
deleted file mode 100644
index 3ce9571013ec..000000000000
--- a/net/asterisk/files/patch-codecs::codec_g723_1_dummy.c
+++ /dev/null
@@ -1,314 +0,0 @@
-
-$FreeBSD$
-
---- codecs/codec_g723_1_dummy.c.orig Sun Oct 10 16:05:56 2004
-+++ codecs/codec_g723_1_dummy.c Sun Oct 10 16:07:05 2004
-@@ -0,0 +1,308 @@
-+/*
-+ * Asterisk -- A telephony toolkit for Linux.
-+ *
-+ * Translate between signed linear and G.723.1 (dummy!)
-+ *
-+ * The G.723.1 code is not included in the Asterisk distribution because
-+ * it is covered with patents, and in spite of statements to the contrary,
-+ * the "technology" is extremely expensive to license.
-+ *
-+ * Copyright (C) 1999, Mark Spencer
-+ *
-+ * Mark Spencer <markster@linux-support.net>
-+ *
-+ * This program is free software, distributed under the terms of
-+ * the GNU General Public License
-+ */
-+
-+#define TYPE_HIGH 0x0
-+#define TYPE_LOW 0x1
-+#define TYPE_SILENCE 0x2
-+#define TYPE_DONTSEND 0x3
-+#define TYPE_MASK 0x3
-+
-+#include <sys/types.h>
-+#include <asterisk/translate.h>
-+#include <asterisk/module.h>
-+#include <asterisk/logger.h>
-+#include <asterisk/channel.h>
-+#include <pthread.h>
-+#include <fcntl.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <netinet/in.h>
-+#include <string.h>
-+#include <stdio.h>
-+
-+/* Sample frame data */
-+#include "slin_g723_ex.h"
-+#include "g723_slin_ex.h"
-+
-+AST_MUTEX_DEFINE_STATIC(localuser_lock);
-+static int localusecnt=0;
-+
-+static char *tdesc = "Dummy G.723.1/PCM16 Codec Translator";
-+
-+struct g723_encoder_pvt {
-+ struct ast_frame f;
-+ /* Space to build offset */
-+ char offset[AST_FRIENDLY_OFFSET];
-+ /* Buffer for our outgoing frame */
-+ char outbuf[8000];
-+ /* Enough to store a full second */
-+ short buf[8000];
-+ int tail;
-+};
-+
-+struct g723_decoder_pvt {
-+ struct ast_frame f;
-+ /* Space to build offset */
-+ char offset[AST_FRIENDLY_OFFSET];
-+ /* Enough to store a full second */
-+ short buf[8000];
-+ int tail;
-+};
-+
-+static struct ast_translator_pvt *g723tolin_new()
-+{
-+ struct g723_decoder_pvt *tmp;
-+ tmp = malloc(sizeof(struct g723_decoder_pvt));
-+ if (tmp) {
-+ tmp->tail = 0;
-+ localusecnt++;
-+ ast_update_use_count();
-+ }
-+ return (struct ast_translator_pvt *)tmp;
-+}
-+
-+static struct ast_frame *lintog723_sample()
-+{
-+ static struct ast_frame f;
-+ f.frametype = AST_FRAME_VOICE;
-+ f.subclass = AST_FORMAT_SLINEAR;
-+ f.datalen = sizeof(slin_g723_ex);
-+ /* Assume 8000 Hz */
-+ f.samples = sizeof(slin_g723_ex)/16;
-+ f.mallocd = 0;
-+ f.offset = 0;
-+ f.src = __PRETTY_FUNCTION__;
-+ f.data = slin_g723_ex;
-+ return &f;
-+}
-+
-+static struct ast_frame *g723tolin_sample()
-+{
-+ static struct ast_frame f;
-+ f.frametype = AST_FRAME_VOICE;
-+ f.subclass = AST_FORMAT_G723_1;
-+ f.datalen = sizeof(g723_slin_ex);
-+ /* All frames are 30 ms long */
-+ f.samples = 30;
-+ f.mallocd = 0;
-+ f.offset = 0;
-+ f.src = __PRETTY_FUNCTION__;
-+ f.data = g723_slin_ex;
-+ return &f;
-+}
-+
-+static struct ast_translator_pvt *lintog723_new()
-+{
-+ struct g723_encoder_pvt *tmp;
-+ tmp = malloc(sizeof(struct g723_encoder_pvt));
-+ if (tmp) {
-+ localusecnt++;
-+ ast_update_use_count();
-+ tmp->tail = 0;
-+ }
-+ return (struct ast_translator_pvt *)tmp;
-+}
-+
-+static struct ast_frame *g723tolin_frameout(struct ast_translator_pvt *pvt)
-+{
-+ struct g723_decoder_pvt *tmp = (struct g723_decoder_pvt *)pvt;
-+ if (!tmp->tail)
-+ return NULL;
-+ /* Signed linear is no particular frame size, so just send whatever
-+ we have in the buffer in one lump sum */
-+ tmp->f.frametype = AST_FRAME_VOICE;
-+ tmp->f.subclass = AST_FORMAT_SLINEAR;
-+ tmp->f.datalen = tmp->tail * 2;
-+ /* Assume 8000 Hz */
-+ tmp->f.samples = tmp->tail / 8;
-+ tmp->f.mallocd = 0;
-+ tmp->f.offset = AST_FRIENDLY_OFFSET;
-+ tmp->f.src = __PRETTY_FUNCTION__;
-+ tmp->f.data = tmp->buf;
-+ /* Reset tail pointer */
-+ tmp->tail = 0;
-+
-+ return &tmp->f;
-+}
-+
-+static int g723_len(unsigned char buf)
-+{
-+ switch(buf & TYPE_MASK) {
-+ case TYPE_DONTSEND:
-+ return 2;
-+ break;
-+ case TYPE_SILENCE:
-+ return 4;
-+ break;
-+ case TYPE_HIGH:
-+ return 24;
-+ break;
-+ case TYPE_LOW:
-+ return 20;
-+ break;
-+ default:
-+ ast_log(LOG_WARNING, "Badly encoded frame (%d)\n", buf & TYPE_MASK);
-+ }
-+ return -1;
-+}
-+
-+static int g723tolin_framein(struct ast_translator_pvt *pvt, struct ast_frame *f)
-+{
-+ struct g723_decoder_pvt *tmp = (struct g723_decoder_pvt *)pvt;
-+ int len = 0;
-+ int res;
-+ while(len < f->datalen) {
-+ /* Assuming there's space left, decode into the current buffer at
-+ the tail location */
-+ res = g723_len(((unsigned char *)f->data + len)[0]);
-+ if (res < 0) {
-+ ast_log(LOG_WARNING, "Invalid data\n");
-+ return -1;
-+ }
-+ if (res + len > f->datalen) {
-+ ast_log(LOG_WARNING, "Measured length exceeds frame length\n");
-+ return -1;
-+ }
-+ if (tmp->tail + 480 < sizeof(tmp->buf)/2) {
-+ memset(tmp->buf + tmp->tail, 0, 480);
-+ tmp->tail+=480;
-+ } else {
-+ ast_log(LOG_WARNING, "Out of buffer space\n");
-+ return -1;
-+ }
-+ len += res;
-+ }
-+ return 0;
-+}
-+
-+static int lintog723_framein(struct ast_translator_pvt *pvt, struct ast_frame *f)
-+{
-+ /* Just add the frames to our stream */
-+ /* XXX We should look at how old the rest of our stream is, and if it
-+ is too old, then we should overwrite it entirely, otherwise we can
-+ get artifacts of earlier talk that do not belong */
-+ struct g723_encoder_pvt *tmp = (struct g723_encoder_pvt *)pvt;
-+ if (tmp->tail + f->datalen/2 < sizeof(tmp->buf) / 2) {
-+ memcpy(&tmp->buf[tmp->tail], f->data, f->datalen);
-+ tmp->tail += f->datalen/2;
-+ } else {
-+ ast_log(LOG_WARNING, "Out of buffer space\n");
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+static struct ast_frame *lintog723_frameout(struct ast_translator_pvt *pvt)
-+{
-+ struct g723_encoder_pvt *tmp = (struct g723_encoder_pvt *)pvt;
-+ int cnt=0;
-+ /* We can't work on anything less than a frame in size */
-+ if (tmp->tail < 480)
-+ return NULL;
-+ tmp->f.frametype = AST_FRAME_VOICE;
-+ tmp->f.subclass = AST_FORMAT_G723_1;
-+ tmp->f.offset = AST_FRIENDLY_OFFSET;
-+ tmp->f.src = __PRETTY_FUNCTION__;
-+ tmp->f.samples = 0;
-+ tmp->f.mallocd = 0;
-+ while(tmp->tail >= 480) {
-+ /* Encode a frame of data */
-+ if (cnt + 24 >= sizeof(tmp->outbuf)) {
-+ ast_log(LOG_WARNING, "Out of buffer space\n");
-+ return NULL;
-+ }
-+ memset(tmp->outbuf + cnt, 0, 24);
-+ /* Assume 8000 Hz */
-+ tmp->f.samples += 30;
-+ cnt += 24;
-+ tmp->tail -= 480;
-+ /* Move the data at the end of the buffer to the front */
-+ if (tmp->tail)
-+ memmove(tmp->buf, tmp->buf + 480, tmp->tail * 2);
-+ }
-+ tmp->f.datalen = cnt;
-+ tmp->f.data = tmp->outbuf;
-+ return &tmp->f;
-+}
-+
-+static void g723_destroy(struct ast_translator_pvt *pvt)
-+{
-+ free(pvt);
-+ localusecnt--;
-+ ast_update_use_count();
-+}
-+
-+static struct ast_translator g723tolin =
-+ { "g723tolin_dummy",
-+ AST_FORMAT_G723_1, AST_FORMAT_SLINEAR,
-+ g723tolin_new,
-+ g723tolin_framein,
-+ g723tolin_frameout,
-+ g723_destroy,
-+ g723tolin_sample
-+ };
-+
-+static struct ast_translator lintog723 =
-+ { "lintog723_dummy",
-+ AST_FORMAT_SLINEAR, AST_FORMAT_G723_1,
-+ lintog723_new,
-+ lintog723_framein,
-+ lintog723_frameout,
-+ g723_destroy,
-+ lintog723_sample
-+ };
-+
-+int unload_module(void)
-+{
-+ int res;
-+ ast_mutex_lock(&localuser_lock);
-+ res = ast_unregister_translator(&lintog723);
-+ if (!res)
-+ res = ast_unregister_translator(&g723tolin);
-+ if (localusecnt)
-+ res = -1;
-+ ast_mutex_unlock(&localuser_lock);
-+ return res;
-+}
-+
-+int load_module(void)
-+{
-+ int res;
-+ res=ast_register_translator(&g723tolin);
-+ if (!res)
-+ res=ast_register_translator(&lintog723);
-+ else
-+ ast_unregister_translator(&g723tolin);
-+ return res;
-+}
-+
-+char *description(void)
-+{
-+ return tdesc;
-+}
-+
-+int usecount(void)
-+{
-+ int res;
-+ STANDARD_USECOUNT(res);
-+ return res;
-+}
-+
-+char *key()
-+{
-+ return ASTERISK_GPL_KEY;
-+}
diff --git a/net/asterisk/files/patch-codecs::codec_g729_dummy.c b/net/asterisk/files/patch-codecs::codec_g729_dummy.c
deleted file mode 100644
index 9fcc7b19ca35..000000000000
--- a/net/asterisk/files/patch-codecs::codec_g729_dummy.c
+++ /dev/null
@@ -1,281 +0,0 @@
-
-$FreeBSD$
-
---- codecs/codec_g729_dummy.c.orig Sun Oct 10 16:05:56 2004
-+++ codecs/codec_g729_dummy.c Sun Oct 10 16:07:12 2004
-@@ -0,0 +1,275 @@
-+/*
-+ * Asterisk -- A telephony toolkit for Linux.
-+ *
-+ * Translate between signed linear and G.729 (dummy!)
-+ *
-+ * The G.729 code is not included in the Asterisk distribution because
-+ * it is covered with patents, and in spite of statements to the contrary,
-+ * the "technology" is extremely expensive to license.
-+ *
-+ * Copyright (C) 1999, Mark Spencer
-+ *
-+ * Mark Spencer <markster@linux-support.net>
-+ *
-+ * This program is free software, distributed under the terms of
-+ * the GNU General Public License
-+ */
-+
-+#include <sys/types.h>
-+#include <asterisk/translate.h>
-+#include <asterisk/module.h>
-+#include <asterisk/logger.h>
-+#include <asterisk/channel.h>
-+#include <pthread.h>
-+#include <fcntl.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <netinet/in.h>
-+#include <string.h>
-+#include <stdio.h>
-+
-+/* Sample frame data */
-+#include "slin_g729_ex.h"
-+#include "g729_slin_ex.h"
-+
-+AST_MUTEX_DEFINE_STATIC(localuser_lock);
-+static int localusecnt=0;
-+
-+static char *tdesc = "Dummy G.729/PCM16 Codec Translator";
-+
-+struct g729_encoder_pvt {
-+ struct ast_frame f;
-+ /* Space to build offset */
-+ char offset[AST_FRIENDLY_OFFSET];
-+ /* Buffer for our outgoing frame */
-+ char outbuf[8000];
-+ /* Enough to store a full second */
-+ short buf[8000];
-+ int tail;
-+};
-+
-+struct g729_decoder_pvt {
-+ struct ast_frame f;
-+ /* Space to build offset */
-+ char offset[AST_FRIENDLY_OFFSET];
-+ /* Enough to store a full second */
-+ short buf[8000];
-+ int tail;
-+};
-+
-+static struct ast_translator_pvt *g729tolin_new()
-+{
-+ struct g729_decoder_pvt *tmp;
-+ tmp = malloc(sizeof(struct g729_decoder_pvt));
-+ if (tmp) {
-+ tmp->tail = 0;
-+ localusecnt++;
-+ ast_update_use_count();
-+ }
-+ return (struct ast_translator_pvt *)tmp;
-+}
-+
-+static struct ast_frame *lintog729_sample()
-+{
-+ static struct ast_frame f;
-+ f.frametype = AST_FRAME_VOICE;
-+ f.subclass = AST_FORMAT_SLINEAR;
-+ f.datalen = sizeof(slin_g729_ex);
-+ /* Assume 8000 Hz */
-+ f.samples = sizeof(slin_g729_ex)/16;
-+ f.mallocd = 0;
-+ f.offset = 0;
-+ f.src = __PRETTY_FUNCTION__;
-+ f.data = slin_g729_ex;
-+ return &f;
-+}
-+
-+static struct ast_frame *g729tolin_sample()
-+{
-+ static struct ast_frame f;
-+ f.frametype = AST_FRAME_VOICE;
-+ f.subclass = AST_FORMAT_G729A;
-+ f.datalen = sizeof(g729_slin_ex);
-+ /* All frames are 10 ms long */
-+ f.samples = 10;
-+ f.mallocd = 0;
-+ f.offset = 0;
-+ f.src = __PRETTY_FUNCTION__;
-+ f.data = g729_slin_ex;
-+ return &f;
-+}
-+
-+static struct ast_translator_pvt *lintog729_new()
-+{
-+ struct g729_encoder_pvt *tmp;
-+ tmp = malloc(sizeof(struct g729_encoder_pvt));
-+ if (tmp) {
-+ localusecnt++;
-+ ast_update_use_count();
-+ tmp->tail = 0;
-+ }
-+ return (struct ast_translator_pvt *)tmp;
-+}
-+
-+static struct ast_frame *g729tolin_frameout(struct ast_translator_pvt *pvt)
-+{
-+ struct g729_decoder_pvt *tmp = (struct g729_decoder_pvt *)pvt;
-+ if (!tmp->tail)
-+ return NULL;
-+ /* Signed linear is no particular frame size, so just send whatever
-+ we have in the buffer in one lump sum */
-+ tmp->f.frametype = AST_FRAME_VOICE;
-+ tmp->f.subclass = AST_FORMAT_SLINEAR;
-+ tmp->f.datalen = tmp->tail * 2;
-+ /* Assume 8000 Hz */
-+ tmp->f.samples = tmp->tail / 8;
-+ tmp->f.mallocd = 0;
-+ tmp->f.offset = AST_FRIENDLY_OFFSET;
-+ tmp->f.src = __PRETTY_FUNCTION__;
-+ tmp->f.data = tmp->buf;
-+ /* Reset tail pointer */
-+ tmp->tail = 0;
-+
-+ return &tmp->f;
-+}
-+
-+static int g729tolin_framein(struct ast_translator_pvt *pvt, struct ast_frame *f)
-+{
-+ struct g729_decoder_pvt *tmp = (struct g729_decoder_pvt *)pvt;
-+ int len = 0;
-+ while(len < f->datalen) {
-+ /* Assuming there's space left, decode into the current buffer at
-+ the tail location */
-+ if (10 + len > f->datalen) {
-+ ast_log(LOG_WARNING, "Measured length exceeds frame length\n");
-+ return -1;
-+ }
-+ if (tmp->tail + 160 < sizeof(tmp->buf)/2) {
-+ memset(tmp->buf + tmp->tail, 0, 160);
-+ tmp->tail+=160;
-+ } else {
-+ ast_log(LOG_WARNING, "Out of buffer space\n");
-+ return -1;
-+ }
-+ len += 10;
-+ }
-+ return 0;
-+}
-+
-+static int lintog729_framein(struct ast_translator_pvt *pvt, struct ast_frame *f)
-+{
-+ /* Just add the frames to our stream */
-+ /* XXX We should look at how old the rest of our stream is, and if it
-+ is too old, then we should overwrite it entirely, otherwise we can
-+ get artifacts of earlier talk that do not belong */
-+ struct g729_encoder_pvt *tmp = (struct g729_encoder_pvt *)pvt;
-+ if (tmp->tail + f->datalen/2 < sizeof(tmp->buf) / 2) {
-+ memcpy(&tmp->buf[tmp->tail], f->data, f->datalen);
-+ tmp->tail += f->datalen/2;
-+ } else {
-+ ast_log(LOG_WARNING, "Out of buffer space\n");
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+static struct ast_frame *lintog729_frameout(struct ast_translator_pvt *pvt)
-+{
-+ struct g729_encoder_pvt *tmp = (struct g729_encoder_pvt *)pvt;
-+ int cnt=0;
-+ /* We can't work on anything less than a frame in size */
-+ if (tmp->tail < 160)
-+ return NULL;
-+ tmp->f.frametype = AST_FRAME_VOICE;
-+ tmp->f.subclass = AST_FORMAT_G729A;
-+ tmp->f.offset = AST_FRIENDLY_OFFSET;
-+ tmp->f.src = __PRETTY_FUNCTION__;
-+ tmp->f.samples = 0;
-+ tmp->f.mallocd = 0;
-+ while(tmp->tail >= 160) {
-+ /* Encode a frame of data */
-+ if (cnt + 10 >= sizeof(tmp->outbuf)) {
-+ ast_log(LOG_WARNING, "Out of buffer space\n");
-+ return NULL;
-+ }
-+ memset(tmp->outbuf + cnt, 0, 10);
-+ /* Assume 8000 Hz */
-+ tmp->f.samples += 10;
-+ cnt += 10;
-+ tmp->tail -= 160;
-+ /* Move the data at the end of the buffer to the front */
-+ if (tmp->tail)
-+ memmove(tmp->buf, tmp->buf + 160, tmp->tail * 2);
-+ }
-+ tmp->f.datalen = cnt;
-+ tmp->f.data = tmp->outbuf;
-+ return &tmp->f;
-+}
-+
-+static void g729_destroy(struct ast_translator_pvt *pvt)
-+{
-+ free(pvt);
-+ localusecnt--;
-+ ast_update_use_count();
-+}
-+
-+static struct ast_translator g729tolin =
-+ { "g729tolin_dummy",
-+ AST_FORMAT_G729A, AST_FORMAT_SLINEAR,
-+ g729tolin_new,
-+ g729tolin_framein,
-+ g729tolin_frameout,
-+ g729_destroy,
-+ g729tolin_sample
-+ };
-+
-+static struct ast_translator lintog729 =
-+ { "lintog729_dummy",
-+ AST_FORMAT_SLINEAR, AST_FORMAT_G729A,
-+ lintog729_new,
-+ lintog729_framein,
-+ lintog729_frameout,
-+ g729_destroy,
-+ lintog729_sample
-+ };
-+
-+int unload_module(void)
-+{
-+ int res;
-+ ast_mutex_lock(&localuser_lock);
-+ res = ast_unregister_translator(&lintog729);
-+ if (!res)
-+ res = ast_unregister_translator(&g729tolin);
-+ if (localusecnt)
-+ res = -1;
-+ ast_mutex_unlock(&localuser_lock);
-+ return res;
-+}
-+
-+int load_module(void)
-+{
-+ int res;
-+ res=ast_register_translator(&g729tolin);
-+ if (!res)
-+ res=ast_register_translator(&lintog729);
-+ else
-+ ast_unregister_translator(&g729tolin);
-+ return res;
-+}
-+
-+char *description(void)
-+{
-+ return tdesc;
-+}
-+
-+int usecount(void)
-+{
-+ int res;
-+ STANDARD_USECOUNT(res);
-+ return res;
-+}
-+
-+char *key()
-+{
-+ return ASTERISK_GPL_KEY;
-+}
diff --git a/net/asterisk/files/patch-codecs::g729_slin_ex.h b/net/asterisk/files/patch-codecs::g729_slin_ex.h
deleted file mode 100644
index 44e60f2de848..000000000000
--- a/net/asterisk/files/patch-codecs::g729_slin_ex.h
+++ /dev/null
@@ -1,20 +0,0 @@
-
-$FreeBSD$
-
---- /dev/null Fri Jan 30 01:52:11 2004
-+++ codecs/g729_slin_ex.h Fri Jan 30 01:57:59 2004
-@@ -0,0 +1,14 @@
-+/*
-+ * g729_slin_ex.h --
-+ *
-+ * 8-bit G.729 data, 10 milliseconds worth at 8 kHz.
-+ *
-+ * Copyright (C) 2004, Maxim Sobolev <sobomax@FreeBSD.org>
-+ *
-+ * Distributed under the terms of the GNU General Public License
-+ *
-+ */
-+
-+static unsigned char g729_slin_ex[] = {
-+120,82,175,64,0,250,219,0,7,214
-+};
diff --git a/net/asterisk/files/patch-codecs::ilbc::Makefile b/net/asterisk/files/patch-codecs::ilbc::Makefile
index 7770e07550a4..26a2f20e5529 100644
--- a/net/asterisk/files/patch-codecs::ilbc::Makefile
+++ b/net/asterisk/files/patch-codecs::ilbc::Makefile
@@ -1,11 +1,12 @@
$FreeBSD$
---- codecs/ilbc/Makefile.orig Sun Apr 27 21:13:11 2003
-+++ codecs/ilbc/Makefile Fri Jan 30 01:47:34 2004
-@@ -1,4 +1,4 @@
--CFLAGS+= -fPIC -O3
-+CFLAGS+= -fPIC
- LIB=libilbc.a
-
- OBJS= anaFilter.o iCBSearch.o packing.o \
+--- codecs/ilbc/Makefile.orig Fri Jan 13 11:01:07 2006
++++ codecs/ilbc/Makefile Fri Jan 13 11:01:51 2006
+@@ -1,5 +1,5 @@
+ ARCH=$(PROC)
+-CFLAGS+=-Wall -O3 -funroll-loops
++CFLAGS+=-Wall -funroll-loops
+ ifneq (${OSARCH},CYGWIN)
+ CFLAGS += -fPIC
+ endif
diff --git a/net/asterisk/files/patch-codecs::slin_g729_ex.h b/net/asterisk/files/patch-codecs::slin_g729_ex.h
deleted file mode 100644
index e1236d2498dc..000000000000
--- a/net/asterisk/files/patch-codecs::slin_g729_ex.h
+++ /dev/null
@@ -1,31 +0,0 @@
-
-$FreeBSD$
-
---- /dev/null Fri Jan 30 01:52:11 2004
-+++ codecs/slin_g729_ex.h Fri Jan 30 01:57:59 2004
-@@ -0,0 +1,25 @@
-+/*
-+ * slin_g729_ex.h --
-+ *
-+ * Signed 16-bit audio data, 10 milliseconds worth at 8 kHz.
-+ *
-+ * Source: g723.example
-+ *
-+ * Copyright (C) 2001, Linux Support Services, Inc.
-+ *
-+ * Distributed under the terms of the GNU General Public License
-+ *
-+ */
-+
-+static signed short slin_g729_ex[] = {
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-+};
diff --git a/net/asterisk/files/patch-configs::musiconhold.conf.sample b/net/asterisk/files/patch-configs::musiconhold.conf.sample
new file mode 100644
index 000000000000..ff63cc9ff08b
--- /dev/null
+++ b/net/asterisk/files/patch-configs::musiconhold.conf.sample
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- configs/musiconhold.conf.sample.orig Tue Nov 29 20:24:39 2005
++++ configs/musiconhold.conf.sample Fri Jan 13 11:38:39 2006
+@@ -4,7 +4,7 @@
+
+ [default]
+ mode=quietmp3
+-directory=/var/lib/asterisk/mohmp3
++directory=/usr/local/share/asterisk/mohmp3
+
+ ; valid mode options:
+ ; quietmp3 -- default
diff --git a/net/asterisk/files/patch-db.c b/net/asterisk/files/patch-db.c
index 6c2bdcd443c8..ba7f3f206b78 100644
--- a/net/asterisk/files/patch-db.c
+++ b/net/asterisk/files/patch-db.c
@@ -1,14 +1,21 @@
$FreeBSD$
---- db.c.orig Fri Jul 9 13:08:09 2004
-+++ db.c Sun Oct 10 15:32:33 2004
-@@ -33,7 +33,7 @@
- #include <asterisk/cli.h>
- #include <asterisk/utils.h>
- #include <asterisk/lock.h>
--#include "db1-ast/include/db.h"
+--- db.c.orig Fri Jan 13 11:05:32 2006
++++ db.c Fri Jan 13 11:06:55 2006
+@@ -35,6 +35,7 @@
+ #include <errno.h>
+ #include <unistd.h>
+ #include <dirent.h>
+#include <db.h>
+
#include "asterisk.h"
- #include "astconf.h"
+@@ -51,7 +52,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revisi
+ #include "asterisk/utils.h"
+ #include "asterisk/lock.h"
+ #include "asterisk/manager.h"
+-#include "db1-ast/include/db.h"
+
+ #ifdef __CYGWIN__
+ #define dbopen __dbopen
diff --git a/net/asterisk/files/patch-formats::Makefile b/net/asterisk/files/patch-formats::Makefile
index dacfd7b08303..b2b1db5a37bd 100644
--- a/net/asterisk/files/patch-formats::Makefile
+++ b/net/asterisk/files/patch-formats::Makefile
@@ -1,19 +1,19 @@
$FreeBSD$
---- formats/Makefile.orig Tue Nov 4 04:40:09 2003
-+++ formats/Makefile Fri Jan 30 01:47:34 2004
-@@ -18,7 +18,7 @@
+--- formats/Makefile.orig Fri Jan 13 11:16:07 2006
++++ formats/Makefile Fri Jan 13 11:47:25 2006
+@@ -20,7 +20,7 @@
#
- # G723 simple frame is depricated
+ # G723 simple frame is deprecated
#
--#FORMAT_LIBS+=format_g723.so
+-FORMAT_LIBS+=format_g723.so
+FORMAT_LIBS+=format_g723_1.so
- GSMLIB=../codecs/gsm/lib/libgsm.a
-
-@@ -40,7 +40,7 @@
- $(CC) $(SOLINK) -o $@ $< -lm
+ #
+ # OGG/Vorbis format
+@@ -60,7 +60,7 @@
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -logg -lvorbis -lvorbisenc -lm
install: all
- for x in $(FORMAT_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
diff --git a/net/asterisk/files/patch-formats::format_g723_1.c b/net/asterisk/files/patch-formats::format_g723_1.c
index fb5eb12833dc..ae814f197a1e 100644
--- a/net/asterisk/files/patch-formats::format_g723_1.c
+++ b/net/asterisk/files/patch-formats::format_g723_1.c
@@ -1,9 +1,9 @@
$FreeBSD$
---- formats/format_g723_1.c.orig Sun Oct 10 15:59:18 2004
-+++ formats/format_g723_1.c Sun Oct 10 16:05:05 2004
-@@ -0,0 +1,345 @@
+--- /dev/null Fri Jan 13 12:18:51 2006
++++ formats/format_g723_1.c Fri Jan 13 12:18:41 2006
+@@ -0,0 +1,348 @@
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
@@ -16,6 +16,7 @@ $FreeBSD$
+ * the GNU General Public License
+ */
+
++#include <stdio.h>
+#include <asterisk/lock.h>
+#include <asterisk/channel.h>
+#include <asterisk/file.h>
@@ -26,7 +27,6 @@ $FreeBSD$
+#include <arpa/inet.h>
+#include <stdlib.h>
+#include <sys/time.h>
-+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
@@ -48,7 +48,7 @@ $FreeBSD$
+struct ast_filestream {
+ void *reserved[AST_RESERVED_POINTERS];
+ /* This is what a filestream means to us */
-+ int fd; /* Descriptor */
++ FILE *f; /* Descriptor */
+ struct ast_frame fr; /* Frame information */
+ char waste[AST_FRIENDLY_OFFSET]; /* Buffer for sending frames, etc */
+ char empty; /* Empty character */
@@ -85,7 +85,7 @@ $FreeBSD$
+ return -1;
+}
+
-+static struct ast_filestream *g723_open(int fd)
++static struct ast_filestream *g723_open(FILE *f)
+{
+ /* We don't have any header to read or anything really, but
+ if we did, it would go here. We also might want to check
@@ -98,7 +98,7 @@ $FreeBSD$
+ free(tmp);
+ return NULL;
+ }
-+ tmp->fd = fd;
++ tmp->f = f;
+ tmp->fr.data = tmp->g723;
+ tmp->fr.frametype = AST_FRAME_VOICE;
+ tmp->fr.subclass = AST_FORMAT_G723_1;
@@ -112,7 +112,7 @@ $FreeBSD$
+ return tmp;
+}
+
-+static struct ast_filestream *g723_rewrite(int fd, char *comment)
++static struct ast_filestream *g723_rewrite(FILE *f, const char *comment)
+{
+ /* We don't have any header to read or anything really, but
+ if we did, it would go here. We also might want to check
@@ -125,7 +125,7 @@ $FreeBSD$
+ free(tmp);
+ return NULL;
+ }
-+ tmp->fd = fd;
++ tmp->f = f;
+ glistcnt++;
+ ast_mutex_unlock(&g723_lock);
+ ast_update_use_count();
@@ -143,7 +143,7 @@ $FreeBSD$
+ glistcnt--;
+ ast_mutex_unlock(&g723_lock);
+ ast_update_use_count();
-+ close(s->fd);
++ fclose(s->f);
+ free(s);
+ s = NULL;
+}
@@ -158,7 +158,7 @@ $FreeBSD$
+ s->fr.samples = 240;
+ s->fr.mallocd = 0;
+ s->fr.data = s->g723;
-+ if ((res = read(s->fd, s->g723, 1)) != 1) {
++ if ((res = fread(s->g723, 1, 1, s->f)) != 1) {
+ if (res)
+ ast_log(LOG_WARNING, "Short read (%d) (%s)!\n", res, strerror(errno));
+ return NULL;
@@ -168,7 +168,7 @@ $FreeBSD$
+ ast_log(LOG_WARNING, "Invalid G723.1 frame!\n");
+ return NULL;
+ }
-+ if (s->fr.datalen > 1 && (res = read(s->fd, s->g723 + 1, s->fr.datalen - 1)) != s->fr.datalen - 1) {
++ if (s->fr.datalen > 1 && (res = fread(s->g723 + 1, 1, s->fr.datalen - 1, s->f)) != s->fr.datalen - 1) {
+ if (res)
+ ast_log(LOG_WARNING, "Short read (%d) (%s)!\n", res, strerror(errno));
+ return NULL;
@@ -200,7 +200,7 @@ $FreeBSD$
+ ast_log(LOG_WARNING, "Invalid G723.1 data length, %d\n", f->datalen);
+ return -1;
+ }
-+ if ((res = write(fs->fd, f->data, f->datalen)) != f->datalen) {
++ if ((res = fwrite(f->data, 1, f->datalen, fs->f)) != f->datalen) {
+ ast_log(LOG_WARNING, "Bad write %d: %s\n", res, strerror(errno));
+ return -1;
+ }
@@ -229,10 +229,13 @@ $FreeBSD$
+ }
+ offset = cur + sample_offset;
+ }
-+ if ((moffset = lseek(fs->fd, 0, SEEK_END)) == -1) {
++ if (fseeko(fs->f, 0, SEEK_END) == -1) {
+ ast_log(LOG_WARNING, "Can't seek stream to an end!\n");
+ return -1;
+ }
++ else {
++ moffset = ftello(fs->f);
++ }
+ if (whence == SEEK_END) {
+ if ((max = g723_tell(fs)) == -1) {
+ ast_log(LOG_WARNING, "Can't get maximum position!\n");
@@ -244,11 +247,11 @@ $FreeBSD$
+ offset = 0;
+ soffset = -1;
+ for (coffset = 0; coffset < moffset && offset > 0; coffset += res) {
-+ if (lseek(fs->fd, coffset, SEEK_SET) != coffset) {
++ if (fseeko(fs->f, coffset, SEEK_SET) == -1) {
+ ast_log(LOG_WARNING, "Can't seek to offset %lli!\n", coffset);
+ return -1;
+ }
-+ if (read(fs->fd, &c, 1) != 1) {
++ if (fread(&c, 1, 1, fs->f) != 1) {
+ ast_log(LOG_WARNING, "Can't read from offset %lli!\n", coffset);
+ return -1;
+ }
@@ -260,7 +263,7 @@ $FreeBSD$
+ if (res > 1)
+ offset -= 240;
+ }
-+ if (soffset != -1 && lseek(fs->fd, soffset, SEEK_SET) != soffset) {
++ if (soffset != -1 && fseeko(fs->f, soffset, SEEK_SET) == -1) {
+ ast_log(LOG_WARNING, "Can't seek to offset %lli!\n", soffset);
+ return -1;
+ }
@@ -271,7 +274,7 @@ $FreeBSD$
+static int g723_trunc(struct ast_filestream *fs)
+{
+ /* Truncate file to current length */
-+ if (ftruncate(fs->fd, lseek(fs->fd, 0, SEEK_CUR)) < 0)
++ if (ftruncate(fileno(fs->f), ftello(fs->f)) < 0)
+ return -1;
+ return 0;
+}
@@ -283,14 +286,14 @@ $FreeBSD$
+ long rval;
+ unsigned char c;
+
-+ offset = lseek(fs->fd, 0, SEEK_CUR);
++ offset = ftello(fs->f);
+ rval = 0;
+ for (coffset = 0; coffset < offset; coffset += res) {
-+ if (lseek(fs->fd, coffset, SEEK_SET) != coffset) {
++ if (fseeko(fs->f, coffset, SEEK_SET) == -1) {
+ ast_log(LOG_WARNING, "Can't seek to offset %llu!\n", coffset);
+ return -1;
+ }
-+ if (read(fs->fd, &c, 1) != 1) {
++ if (fread(&c, 1, 1, fs->f) != 1) {
+ ast_log(LOG_WARNING, "Can't read from offset %llu!\n", coffset);
+ return -1;
+ }
@@ -301,7 +304,7 @@ $FreeBSD$
+ if (res > 1)
+ rval += 240;
+ }
-+ if (lseek(fs->fd, offset, SEEK_SET) != offset) {
++ if (fseeko(fs->f, offset, SEEK_SET) == -1) {
+ ast_log(LOG_WARNING, "Can't seek to offset %llu!\n", offset);
+ return -1;
+ }
diff --git a/net/asterisk/files/patch-formats::format_g729.c b/net/asterisk/files/patch-formats::format_g729.c
index 78899a3e5d43..11be5281608f 100644
--- a/net/asterisk/files/patch-formats::format_g729.c
+++ b/net/asterisk/files/patch-formats::format_g729.c
@@ -1,6 +1,9 @@
---- formats/format_g729.c.orig Mon Feb 7 10:29:19 2005
-+++ formats/format_g729.c Wed Mar 9 06:26:36 2005
-@@ -44,7 +44,7 @@
+
+$FreeBSD$
+
+--- formats/format_g729.c.orig Fri Jan 13 12:20:53 2006
++++ formats/format_g729.c Fri Jan 13 12:23:33 2006
+@@ -60,7 +60,7 @@ struct ast_filestream {
struct ast_frame fr; /* Frame information */
char waste[AST_FRIENDLY_OFFSET]; /* Buffer for sending frames, etc */
char empty; /* Empty character */
@@ -9,7 +12,7 @@
};
-@@ -125,11 +125,11 @@
+@@ -141,11 +141,11 @@ static struct ast_frame *g729_read(struc
s->fr.frametype = AST_FRAME_VOICE;
s->fr.subclass = AST_FORMAT_G729A;
s->fr.offset = AST_FRIENDLY_OFFSET;
@@ -19,24 +22,24 @@
+ s->fr.datalen = 10;
s->fr.mallocd = 0;
s->fr.data = s->g729;
-- if ((res = read(s->fd, s->g729, 20)) != 20) {
-+ if ((res = read(s->fd, s->g729, 10)) != 10) {
+- if ((res = fread(s->g729, 1, 20, s->f)) != 20) {
++ if ((res = fread(s->g729, 1, 10, s->f)) != 10) {
if (res && (res != 10))
ast_log(LOG_WARNING, "Short read (%d) (%s)!\n", res, strerror(errno));
return NULL;
-@@ -173,7 +173,7 @@
- cur = lseek(fs->fd, 0, SEEK_CUR);
- max = lseek(fs->fd, 0, SEEK_END);
+@@ -190,7 +190,7 @@ static int g729_seek(struct ast_filestre
+ fseek(fs->f, 0, SEEK_END);
+ max = ftell(fs->f);
- bytes = 20 * (sample_offset / 160);
+ bytes = 10 * (sample_offset / 80);
if (whence == SEEK_SET)
offset = bytes;
else if (whence == SEEK_CUR || whence == SEEK_FORCECUR)
-@@ -202,7 +202,7 @@
+@@ -219,7 +219,7 @@ static long g729_tell(struct ast_filestr
{
off_t offset;
- offset = lseek(fs->fd, 0, SEEK_CUR);
+ offset = ftell(fs->f);
- return (offset/20)*160;
+ return (offset/10)*80;
}
diff --git a/net/asterisk/files/patch-funcs::Makefile b/net/asterisk/files/patch-funcs::Makefile
new file mode 100644
index 000000000000..a14daeed285c
--- /dev/null
+++ b/net/asterisk/files/patch-funcs::Makefile
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- funcs/Makefile.orig Tue Nov 29 20:24:39 2005
++++ funcs/Makefile Fri Jan 13 12:36:57 2006
+@@ -67,7 +67,7 @@
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB}
+
+ install: all
+- for x in $(FUNCS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
++ for x in $(FUNCS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
+
+ ifneq ($(wildcard .depend),)
+ include .depend
diff --git a/net/asterisk/files/patch-pbx::Makefile b/net/asterisk/files/patch-pbx::Makefile
index dca6672c389a..97d03e10f871 100644
--- a/net/asterisk/files/patch-pbx::Makefile
+++ b/net/asterisk/files/patch-pbx::Makefile
@@ -1,18 +1,20 @@
$FreeBSD$
---- pbx/Makefile.orig Sun Oct 26 20:50:49 2003
-+++ pbx/Makefile Fri Jan 30 01:47:34 2004
-@@ -16,7 +16,7 @@
- PBX_LIBS=pbx_config.so pbx_wilcalu.so pbx_spool.so # pbx_gtkconsole.so pbx_kdeconsole.so
-
- # Add GTK console if appropriate
--PBX_LIBS+=$(shell gtk-config --cflags >/dev/null 2>/dev/null && echo "pbx_gtkconsole.so")
-+#PBX_LIBS+=$(shell gtk-config --cflags >/dev/null 2>/dev/null && echo "pbx_gtkconsole.so")
+--- pbx/Makefile.orig
++++ pbx/Makefile
+@@ -23,8 +23,8 @@
# Add KDE Console if appropriate
#PBX_LIBS+=$(shell [ "$$QTDIR" != "" ] && echo "pbx_kdeconsole.so")
-@@ -62,7 +62,7 @@
+-GTK_FLAGS=`${CROSS_COMPILE_BIN}gtk-config --cflags gthread`
+-GTK_LIBS=`${CROSS_COMPILE_BIN}gtk-config --libs gthread`
++#GTK_FLAGS=`${CROSS_COMPILE_BIN}gtk-config --cflags gthread`
++#GTK_LIBS=`${CROSS_COMPILE_BIN}gtk-config --libs gthread`
+ MOC=$(QTDIR)/bin/moc
+ KDE_FLAGS=-I$(KDEDIR)/include -I$(KDEDIR)/include/kde -I$(QTDIR)/include
+ KDE_LIBS=-L$(KDEDIR)/lib -L$(QTDIR)/lib -lqt -lkdecore -lkdeui
+@@ -72,7 +72,7 @@
endif
install: all
diff --git a/net/asterisk/files/patch-pbx::pbx_wilcalu.c b/net/asterisk/files/patch-pbx::pbx_wilcalu.c
deleted file mode 100644
index 41722c65568d..000000000000
--- a/net/asterisk/files/patch-pbx::pbx_wilcalu.c
+++ /dev/null
@@ -1,14 +0,0 @@
---- pbx/pbx_wilcalu.c.orig Tue Apr 26 10:00:28 2005
-+++ pbx/pbx_wilcalu.c Tue Apr 26 10:03:42 2005
-@@ -82,6 +82,11 @@
- fds[0].events = POLLIN;
- poll(fds, 1, -1);
- bytes=read(fd,buf,256);
-+ if (bytes <= 0) {
-+ /* XXX error on device, sleep a bit before retrying */
-+ sleep(1);
-+ continue;
-+ }
- buf[(int)bytes]=0;
-
- if(bytes>0){
diff --git a/net/asterisk/files/patch-res-res_watchdog.c b/net/asterisk/files/patch-res-res_watchdog.c
deleted file mode 100644
index 51e4b0ae6c71..000000000000
--- a/net/asterisk/files/patch-res-res_watchdog.c
+++ /dev/null
@@ -1,13 +0,0 @@
---- res/res_watchdog.c.orig Fri Jul 15 13:24:24 2005
-+++ res/res_watchdog.c Fri Jul 15 13:24:42 2005
-@@ -40,6 +40,10 @@
-
- /* Registrar for operations */
-
-+#ifndef O_SYNC
-+#define O_SYNC O_FSYNC
-+#endif
-+
- static struct watchdog_pvt *watchdogs = NULL;
-
- STANDARD_LOCAL_USER;
diff --git a/net/asterisk/files/patch-res::Makefile b/net/asterisk/files/patch-res::Makefile
index 3e48e84189a2..de5c365db34d 100644
--- a/net/asterisk/files/patch-res::Makefile
+++ b/net/asterisk/files/patch-res::Makefile
@@ -1,33 +1,35 @@
---- res/Makefile.orig Tue Aug 9 17:18:55 2005
-+++ res/Makefile Tue Aug 9 17:33:36 2005
-@@ -13,15 +13,18 @@
+
+$FreeBSD$
+
+--- res/Makefile
++++ res/Makefile
+@@ -37,8 +37,8 @@
+ endif
- MODS=res_adsi.so res_features.so res_crypto.so res_musiconhold.so res_indications.so res_monitor.so \
- res_agi.so res_watchdog.so
--MODS+=$(shell if [ -f "/usr/include/odbcinst.h" ]; then echo "res_odbc.so res_config_odbc.so"; fi)
--MODS+=$(shell if [ -f "/usr/local/include/odbcinst.h" ]; then echo "res_odbc.so res_config_odbc.so"; fi)
-+#MODS+=$(shell if [ -f "/usr/include/odbcinst.h" ]; then echo "res_odbc.so res_config_odbc.so"; fi)
-+#MODS+=$(shell if [ -f "/usr/local/include/odbcinst.h" ]; then echo "res_odbc.so res_config_odbc.so"; fi)
- MODS+=$(shell if [ -f "/usr/include/osp/osp.h" ]; then echo "res_osp.so"; fi)
-
- CRYPTO_LIBS=-lssl -lcrypto
+ ifeq ($(findstring BSD,${OSARCH}),BSD)
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include
+- SOLINK+=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include
++ SOLINK+=-L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ endif
+ ifeq (${OSARCH},CYGWIN)
+@@ -55,9 +55,7 @@
CFLAGS+=
- CFLAGS+=$(shell [ -f /usr/include/linux/zaptel.h ] && echo " -DZAPATA_MOH")
--CFLAGS+=$(shell [ -f /usr/local/include/zaptel.h ] && echo " -DZAPATA_MOH")
-+CFLAGS+=-I$(LOCALBASE)/include
-+ifdef WITH_ZAPTEL
-+CFLAGS+=-DZAPATA_MOH
-+endif
- #
- # Work around buggy RedHat 9.0
+
+ ifndef WITHOUT_ZAPTEL
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h),)
+ CFLAGS+=-DZAPATA_MOH
+-endif
+ endif # WITHOUT_ZAPTEL
+
#
-@@ -34,7 +37,7 @@
+@@ -75,7 +73,7 @@
rm -f $(DESTDIR)$(ASTHEADERDIR)/parking.h
rm -f $(DESTDIR)$(MODULES_DIR)/app_agi.so
rm -f $(DESTDIR)$(MODULES_DIR)/res_parking.so
- for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
+ for x in $(MODS); do $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(MODULES_DIR) ; done
-
- res_crypto.so: res_crypto.o
- $(CC) $(SOLINK) -o $@ $< $(CRYPTO_LIBS)
+ @if [ x`which mpg123 2>/dev/null | grep -v '^no'` != x ] ; then \
+ if mpg123 --longhelp 2>&1 | grep -q .59r 2>&1 >/dev/null ; then echo ; else \
+ echo "*************************************************************";\
diff --git a/net/asterisk/files/patch-rtp.c b/net/asterisk/files/patch-rtp.c
index c652add6a2f2..bbc2649929f9 100644
--- a/net/asterisk/files/patch-rtp.c
+++ b/net/asterisk/files/patch-rtp.c
@@ -1,23 +1,17 @@
---- rtp.c.orig Tue Apr 26 10:00:28 2005
-+++ rtp.c Tue Apr 26 10:06:35 2005
-@@ -127,7 +127,7 @@
- {
- switch(buf & TYPE_MASK) {
- case TYPE_DONTSEND:
-- return 0;
-+ return 2;
- break;
- case TYPE_SILENCE:
- return 4;
-@@ -862,8 +858,10 @@
- /* Must be an even port number by RTP spec */
+
+$FreeBSD$
+
+--- rtp.c.orig Fri Jan 13 13:38:01 2006
++++ rtp.c Fri Jan 13 13:40:50 2006
+@@ -950,8 +950,10 @@ struct ast_rtp *ast_rtp_new_with_bindadd
rtp->us.sin_port = htons(x);
rtp->us.sin_addr = addr;
+ /* If there's rtcp, initialize it as well. */
- if (rtp->rtcp)
+ if (rtp->rtcp) {
rtp->rtcp->us.sin_port = htons(x + 1);
+ rtp->rtcp->us.sin_addr = addr;
+ }
+ /* Try to bind it/them. */
if (!(first = bind(rtp->s, (struct sockaddr *)&rtp->us, sizeof(rtp->us))) &&
(!rtp->rtcp || !bind(rtp->rtcp->s, (struct sockaddr *)&rtp->rtcp->us, sizeof(rtp->rtcp->us))))
- break;
diff --git a/net/asterisk/files/patch-utils::Makefile b/net/asterisk/files/patch-utils::Makefile
new file mode 100644
index 000000000000..f3164c0f478a
--- /dev/null
+++ b/net/asterisk/files/patch-utils::Makefile
@@ -0,0 +1,34 @@
+
+$FreeBSD$
+
+--- utils/Makefile
++++ utils/Makefile
+@@ -17,16 +17,16 @@
+ CFLAGS+=-DNO_AST_MM
+
+ ifeq ($(findstring BSD,${OSARCH}),BSD)
+- CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
++ CFLAGS+=-I$(CROSS_COMPILE_TARGET)$(LOCALBASE)/include -L$(CROSS_COMPILE_TARGET)$(LOCALBASE)/lib
+ endif
+
+ TARGET=stereorize streamplayer
+
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/popt.h)$(wildcard -f $(CROSS_COMPILE_TARGET)/usr/local/include/popt.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/popt.h)$(wildcard -f $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/popt.h),)
+ TARGET+=smsq
+ endif
+
+-ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/newt.h)$(wildcard -f $(CROSS_COMPILE_TARGET)/usr/local/include/newt.h),)
++ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/newt.h)$(wildcard -f $(CROSS_COMPILE_TARGET)$(LOCALBASE)/include/newt.h),)
+ TARGET+=astman
+ endif
+
+@@ -40,7 +40,7 @@
+ install:
+ for x in $(TARGET); do \
+ if [ "$$x" != "none" ]; then \
+- $(INSTALL) -m 755 $$x $(DESTDIR)$(ASTSBINDIR)/$$x; \
++ $(BSD_INSTALL_PROGRAM) $$x $(DESTDIR)$(ASTSBINDIR)/$$x; \
+ fi; \
+ done
+
diff --git a/net/asterisk/pkg-plist b/net/asterisk/pkg-plist
index 019b270e64cf..702370ab9fa7 100644
--- a/net/asterisk/pkg-plist
+++ b/net/asterisk/pkg-plist
@@ -19,6 +19,12 @@ etc/asterisk/asterisk.adsi-dist
@unexec if cmp -s %D/etc/asterisk/asterisk.conf %D/etc/asterisk/asterisk.conf-dist; then rm -f %D/etc/asterisk/asterisk.conf; fi
etc/asterisk/asterisk.conf-dist
@exec [ -f %B/asterisk.conf ] || cp %B/%f %B/asterisk.conf
+@unexec if cmp -s %D/etc/asterisk/cdr.conf %D/etc/asterisk/cdr.conf-dist; then rm -f %D/etc/asterisk/cdr.conf; fi
+etc/asterisk/cdr.conf-dist
+@exec [ -f %B/cdr.conf ] || cp %B/%f %B/cdr.conf
+@unexec if cmp -s %D/etc/asterisk/cdr_custom.conf %D/etc/asterisk/cdr_custom.conf-dist; then rm -f %D/etc/asterisk/cdr_custom.conf; fi
+etc/asterisk/cdr_custom.conf-dist
+@exec [ -f %B/cdr_custom.conf ] || cp %B/%f %B/cdr_custom.conf
@unexec if cmp -s %D/etc/asterisk/cdr_manager.conf %D/etc/asterisk/cdr_manager.conf-dist; then rm -f %D/etc/asterisk/cdr_manager.conf; fi
etc/asterisk/cdr_manager.conf-dist
@exec [ -f %B/cdr_manager.conf ] || cp %B/%f %B/cdr_manager.conf
@@ -31,9 +37,21 @@ etc/asterisk/cdr_pgsql.conf-dist
@unexec if cmp -s %D/etc/asterisk/cdr_tds.conf %D/etc/asterisk/cdr_tds.conf-dist; then rm -f %D/etc/asterisk/cdr_tds.conf; fi
etc/asterisk/cdr_tds.conf-dist
@exec [ -f %B/cdr_tds.conf ] || cp %B/%f %B/cdr_tds.conf
+@unexec if cmp -s %D/etc/asterisk/codecs.conf %D/etc/asterisk/codecs.conf-dist; then rm -f %D/etc/asterisk/codecs.conf; fi
+etc/asterisk/codecs.conf-dist
+@exec [ -f %B/codecs.conf ] || cp %B/%f %B/codecs.conf
+@unexec if cmp -s %D/etc/asterisk/dnsmgr.conf %D/etc/asterisk/dnsmgr.conf-dist; then rm -f %D/etc/asterisk/dnsmgr.conf; fi
+etc/asterisk/dnsmgr.conf-dist
+@exec [ -f %B/dnsmgr.conf ] || cp %B/%f %B/dmsmgr.conf
+@unexec if cmp -s %D/etc/asterisk/dundi.conf %D/etc/asterisk/dundi.conf-dist; then rm -f %D/etc/asterisk/dundi.conf; fi
+etc/asterisk/dundi.conf-dist
+@exec [ -f %B/dundi.conf ] || cp %B/%f %B/dundi.conf
@unexec if cmp -s %D/etc/asterisk/enum.conf %D/etc/asterisk/enum.conf-dist; then rm -f %D/etc/asterisk/enum.conf; fi
etc/asterisk/enum.conf-dist
@exec [ -f %B/enum.conf ] || cp %B/%f %B/enum.conf
+@unexec if cmp -s %D/etc/asterisk/extensions.ael %D/etc/asterisk/extensions.ael-dist; then rm -f %D/etc/asterisk/extensions.ael; fi
+etc/asterisk/extensions.ael-dist
+@exec [ -f %B/extensions.ael ] || cp %B/%f %B/extensions.ael
@unexec if cmp -s %D/etc/asterisk/extconfig.conf %D/etc/asterisk/extconfig.conf-dist; then rm -f %D/etc/asterisk/extconfig.conf; fi
etc/asterisk/extconfig.conf-dist
@exec [ -f %B/extconfig.conf ] || cp %B/%f %B/extconfig.conf
@@ -46,9 +64,6 @@ etc/asterisk/features.conf-dist
@unexec if cmp -s %D/etc/asterisk/festival.conf %D/etc/asterisk/festival.conf-dist; then rm -f %D/etc/asterisk/festival.conf; fi
etc/asterisk/festival.conf-dist
@exec [ -f %B/festival.conf ] || cp %B/%f %B/festival.conf
-@unexec if cmp -s %D/etc/asterisk/h323.conf %D/etc/asterisk/h323.conf-dist; then rm -f %D/etc/asterisk/h323.conf; fi
-etc/asterisk/h323.conf-dist
-@exec [ -f %B/h323.conf ] || cp %B/%f %B/h323.conf
@unexec if cmp -s %D/etc/asterisk/iax.conf %D/etc/asterisk/iax.conf-dist; then rm -f %D/etc/asterisk/iax.conf; fi
etc/asterisk/iax.conf-dist
@exec [ -f %B/iax.conf ] || cp %B/%f %B/iax.conf
@@ -70,6 +85,9 @@ etc/asterisk/meetme.conf-dist
@unexec if cmp -s %D/etc/asterisk/mgcp.conf %D/etc/asterisk/mgcp.conf-dist; then rm -f %D/etc/asterisk/mgcp.conf; fi
etc/asterisk/mgcp.conf-dist
@exec [ -f %B/mgcp.conf ] || cp %B/%f %B/mgcp.conf
+@unexec if cmp -s %D/etc/asterisk/misdn.conf %D/etc/asterisk/misdn.conf-dist; then rm -f %D/etc/asterisk/misdn.conf; fi
+etc/asterisk/misdn.conf-dist
+@exec [ -f %B/misdn.conf ] || cp %B/%f %B/misdn.conf
@unexec if cmp -s %D/etc/asterisk/modem.conf %D/etc/asterisk/modem.conf-dist; then rm -f %D/etc/asterisk/modem.conf; fi
etc/asterisk/modem.conf-dist
@exec [ -f %B/modem.conf ] || cp %B/%f %B/modem.conf
@@ -94,9 +112,6 @@ etc/asterisk/privacy.conf-dist
@unexec if cmp -s %D/etc/asterisk/queues.conf %D/etc/asterisk/queues.conf-dist; then rm -f %D/etc/asterisk/queues.conf; fi
etc/asterisk/queues.conf-dist
@exec [ -f %B/queues.conf ] || cp %B/%f %B/queues.conf
-@unexec if cmp -s %D/etc/asterisk/res_config_odbc.conf %D/etc/asterisk/res_config_odbc.conf-dist; then rm -f %D/etc/asterisk/res_config_odbc.conf; fi
-etc/asterisk/res_config_odbc.conf-dist
-@exec [ -f %B/res_config_odbc.conf ] || cp %B/%f %B/res_config_odbc.conf
@unexec if cmp -s %D/etc/asterisk/res_odbc.conf %D/etc/asterisk/res_odbc.conf-dist; then rm -f %D/etc/asterisk/res_odbc.conf; fi
etc/asterisk/res_odbc.conf-dist
@exec [ -f %B/res_odbc.conf ] || cp %B/%f %B/res_odbc.conf
@@ -109,6 +124,9 @@ etc/asterisk/rtp.conf-dist
@unexec if cmp -s %D/etc/asterisk/sip.conf %D/etc/asterisk/sip.conf-dist; then rm -f %D/etc/asterisk/sip.conf; fi
etc/asterisk/sip.conf-dist
@exec [ -f %B/sip.conf ] || cp %B/%f %B/sip.conf
+@unexec if cmp -s %D/etc/asterisk/sip_notify.conf %D/etc/asterisk/sip_notify.conf-dist; then rm -f %D/etc/asterisk/sip_notify.conf; fi
+etc/asterisk/sip_notify.conf-dist
+@exec [ -f %B/sip_notify.conf ] || cp %B/%f %B/sip_notify.conf
@unexec if cmp -s %D/etc/asterisk/skinny.conf %D/etc/asterisk/skinny.conf-dist; then rm -f %D/etc/asterisk/skinny.conf; fi
etc/asterisk/skinny.conf-dist
@exec [ -f %B/skinny.conf ] || cp %B/%f %B/skinny.conf
@@ -121,9 +139,6 @@ etc/asterisk/voicemail.conf-dist
@unexec if cmp -s %D/etc/asterisk/vpb.conf %D/etc/asterisk/vpb.conf-dist; then rm -f %D/etc/asterisk/vpb.conf; fi
etc/asterisk/vpb.conf-dist
@exec [ -f %B/vpb.conf ] || cp %B/%f %B/vpb.conf
-@unexec if cmp -s %D/etc/asterisk/watchdog.conf %D/etc/asterisk/watchdog.conf-dist; then rm -f %D/etc/asterisk/watchdog.conf; fi
-etc/asterisk/watchdog.conf-dist
-@exec [ -f %B/watchdog.conf ] || cp %B/%f %B/watchdog.conf
@unexec if cmp -s %D/etc/asterisk/zapata.conf %D/etc/asterisk/zapata.conf-dist; then rm -f %D/etc/asterisk/zapata.conf; fi
etc/asterisk/zapata.conf-dist
@exec [ -f %B/zapata.conf ] || cp %B/%f %B/zapata.conf
@@ -136,28 +151,36 @@ include/asterisk/app.h
include/asterisk/ast_expr.h
include/asterisk/astdb.h
include/asterisk/astmm.h
+include/asterisk/astobj.h
include/asterisk/astosp.h
+include/asterisk/build.h
include/asterisk/callerid.h
include/asterisk/causes.h
include/asterisk/cdr.h
include/asterisk/channel.h
-include/asterisk/channel_pvt.h
+include/asterisk/chanspy.h
include/asterisk/chanvars.h
include/asterisk/cli.h
+include/asterisk/compat.h
include/asterisk/config.h
-include/asterisk/config_pvt.h
+include/asterisk/compiler.h
include/asterisk/crypto.h
-include/asterisk/cvsid.h
+include/asterisk/devicestate.h
include/asterisk/dlfcn-compat.h
include/asterisk/dns.h
+include/asterisk/dnsmgr.h
+include/asterisk/doxyref.h
include/asterisk/dsp.h
+include/asterisk/dundi.h
include/asterisk/enum.h
+include/asterisk/endian.h
include/asterisk/features.h
include/asterisk/file.h
include/asterisk/frame.h
include/asterisk/fskmodem.h
include/asterisk/image.h
include/asterisk/indications.h
+include/asterisk/inline_api.h
include/asterisk/io.h
include/asterisk/linkedlists.h
include/asterisk/localtime.h
@@ -168,38 +191,50 @@ include/asterisk/md5.h
include/asterisk/module.h
include/asterisk/monitor.h
include/asterisk/musiconhold.h
+include/asterisk/netsock.h
include/asterisk/options.h
include/asterisk/pbx.h
+include/asterisk/plc.h
include/asterisk/poll-compat.h
include/asterisk/privacy.h
include/asterisk/res_odbc.h
include/asterisk/rtp.h
include/asterisk/say.h
include/asterisk/sched.h
+include/asterisk/slinfactory.h
include/asterisk/srv.h
+include/asterisk/strings.h
include/asterisk/tdd.h
include/asterisk/term.h
+include/asterisk/time.h
include/asterisk/transcap.h
include/asterisk/translate.h
include/asterisk/ulaw.h
+include/asterisk/unaligned.h
include/asterisk/utils.h
+include/asterisk/version.h
include/asterisk/vmodem.h
lib/asterisk/modules/app_adsiprog.so
lib/asterisk/modules/app_alarmreceiver.so
lib/asterisk/modules/app_authenticate.so
lib/asterisk/modules/app_cdr.so
lib/asterisk/modules/app_chanisavail.so
+lib/asterisk/modules/app_chanspy.so
lib/asterisk/modules/app_controlplayback.so
+lib/asterisk/modules/app_curl.so
lib/asterisk/modules/app_cut.so
lib/asterisk/modules/app_db.so
-lib/asterisk/modules/app_devstate.so
lib/asterisk/modules/app_dial.so
+lib/asterisk/modules/app_dictate.so
+lib/asterisk/modules/app_directed_pickup.so
lib/asterisk/modules/app_directory.so
lib/asterisk/modules/app_disa.so
+lib/asterisk/modules/app_dumpchan.so
lib/asterisk/modules/app_echo.so
lib/asterisk/modules/app_enumlookup.so
lib/asterisk/modules/app_eval.so
lib/asterisk/modules/app_exec.so
+lib/asterisk/modules/app_externalivr.so
lib/asterisk/modules/app_festival.so
%%WITH_ZAPTEL%%lib/asterisk/modules/app_flash.so
lib/asterisk/modules/app_forkcdr.so
@@ -208,64 +243,66 @@ lib/asterisk/modules/app_groupcount.so
lib/asterisk/modules/app_hasnewvoicemail.so
lib/asterisk/modules/app_ices.so
lib/asterisk/modules/app_image.so
-lib/asterisk/modules/app_intercom.so
lib/asterisk/modules/app_lookupblacklist.so
lib/asterisk/modules/app_lookupcidname.so
lib/asterisk/modules/app_macro.so
+lib/asterisk/modules/app_math.so
+lib/asterisk/modules/app_md5.so
%%WITH_ZAPTEL%%lib/asterisk/modules/app_meetme.so
lib/asterisk/modules/app_milliwatt.so
+lib/asterisk/modules/app_mixmonitor.so
lib/asterisk/modules/app_mp3.so
lib/asterisk/modules/app_nbscat.so
+%%WITH_ZAPTEL%%lib/asterisk/modules/app_page.so
lib/asterisk/modules/app_parkandannounce.so
-lib/asterisk/modules/app_pickup.so
lib/asterisk/modules/app_playback.so
lib/asterisk/modules/app_privacy.so
-lib/asterisk/modules/app_qcall.so
lib/asterisk/modules/app_queue.so
lib/asterisk/modules/app_random.so
lib/asterisk/modules/app_read.so
+lib/asterisk/modules/app_readfile.so
+lib/asterisk/modules/app_realtime.so
lib/asterisk/modules/app_record.so
%%WITH_FAX%%lib/asterisk/modules/app_rxfax.so
lib/asterisk/modules/app_sayunixtime.so
-lib/asterisk/modules/app_segfault.so
lib/asterisk/modules/app_senddtmf.so
lib/asterisk/modules/app_sendtext.so
lib/asterisk/modules/app_setcallerid.so
lib/asterisk/modules/app_setcdruserfield.so
lib/asterisk/modules/app_setcidname.so
lib/asterisk/modules/app_setcidnum.so
+lib/asterisk/modules/app_setrdnis.so
lib/asterisk/modules/app_settransfercapability.so
lib/asterisk/modules/app_sms.so
lib/asterisk/modules/app_softhangup.so
-lib/asterisk/modules/app_striplsd.so
-lib/asterisk/modules/app_substring.so
+lib/asterisk/modules/app_stack.so
lib/asterisk/modules/app_system.so
lib/asterisk/modules/app_talkdetect.so
lib/asterisk/modules/app_test.so
lib/asterisk/modules/app_transfer.so
-lib/asterisk/modules/app_txtcidname.so
%%WITH_FAX%%lib/asterisk/modules/app_txfax.so
+lib/asterisk/modules/app_txtcidname.so
lib/asterisk/modules/app_url.so
lib/asterisk/modules/app_userevent.so
lib/asterisk/modules/app_verbose.so
lib/asterisk/modules/app_voicemail.so
lib/asterisk/modules/app_waitforring.so
+lib/asterisk/modules/app_waitforsilence.so
+lib/asterisk/modules/app_while.so
lib/asterisk/modules/app_zapateller.so
%%WITH_ZAPTEL%%lib/asterisk/modules/app_zapbarge.so
%%WITH_ZAPTEL%%lib/asterisk/modules/app_zapras.so
%%WITH_ZAPTEL%%lib/asterisk/modules/app_zapscan.so
lib/asterisk/modules/cdr_csv.so
+lib/asterisk/modules/cdr_custom.so
lib/asterisk/modules/cdr_manager.so
%%WITH_ODBC%%lib/asterisk/modules/cdr_odbc.so
lib/asterisk/modules/chan_agent.so
+lib/asterisk/modules/chan_features.so
%%WITH_H323%%lib/asterisk/modules/chan_h323.so
lib/asterisk/modules/chan_iax2.so
lib/asterisk/modules/chan_local.so
lib/asterisk/modules/chan_mgcp.so
-lib/asterisk/modules/chan_modem.so
-lib/asterisk/modules/chan_modem_aopen.so
-lib/asterisk/modules/chan_modem_bestdata.so
-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
@@ -273,14 +310,13 @@ lib/asterisk/modules/chan_skinny.so
lib/asterisk/modules/codec_a_mu.so
lib/asterisk/modules/codec_adpcm.so
lib/asterisk/modules/codec_alaw.so
-lib/asterisk/modules/codec_g723_1_dummy.so
lib/asterisk/modules/codec_g726.so
-lib/asterisk/modules/codec_g729_dummy.so
lib/asterisk/modules/codec_gsm.so
lib/asterisk/modules/codec_ilbc.so
lib/asterisk/modules/codec_lpc10.so
lib/asterisk/modules/codec_speex.so
lib/asterisk/modules/codec_ulaw.so
+lib/asterisk/modules/format_au.so
lib/asterisk/modules/format_g723_1.so
lib/asterisk/modules/format_g726.so
lib/asterisk/modules/format_g729.so
@@ -294,22 +330,34 @@ lib/asterisk/modules/format_sln.so
lib/asterisk/modules/format_vox.so
lib/asterisk/modules/format_wav.so
lib/asterisk/modules/format_wav_gsm.so
+lib/asterisk/modules/func_callerid.so
+lib/asterisk/modules/func_enum.so
+lib/asterisk/modules/func_uri.so
+lib/asterisk/modules/pbx_ael.so
lib/asterisk/modules/pbx_config.so
+lib/asterisk/modules/pbx_dundi.so
+lib/asterisk/modules/pbx_functions.so
+lib/asterisk/modules/pbx_loopback.so
+lib/asterisk/modules/pbx_realtime.so
lib/asterisk/modules/pbx_spool.so
-lib/asterisk/modules/pbx_wilcalu.so
lib/asterisk/modules/res_adsi.so
lib/asterisk/modules/res_agi.so
+lib/asterisk/modules/res_config_odbc.so
lib/asterisk/modules/res_crypto.so
lib/asterisk/modules/res_features.so
lib/asterisk/modules/res_indications.so
lib/asterisk/modules/res_monitor.so
+lib/asterisk/modules/res_odbc.so
lib/asterisk/modules/res_musiconhold.so
-lib/asterisk/modules/res_watchdog.so
sbin/asterisk
sbin/astgenkey
sbin/astman
sbin/autosupport
+sbin/rasterisk
sbin/safe_asterisk
+sbin/smsq
+sbin/stereorize
+sbin/streamplayer
%%DATADIR%%/agi-bin/agi-test.agi
%%DATADIR%%/agi-bin/eagi-sphinx-test
%%DATADIR%%/agi-bin/eagi-test
@@ -330,23 +378,34 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/auth-incorrect.gsm
%%DATADIR%%/sounds/auth-thankyou.gsm
%%DATADIR%%/sounds/beep.gsm
+%%DATADIR%%/sounds/beeperr.gsm
%%DATADIR%%/sounds/conf-adminmenu.gsm
%%DATADIR%%/sounds/conf-enteringno.gsm
%%DATADIR%%/sounds/conf-errormenu.gsm
%%DATADIR%%/sounds/conf-getchannel.gsm
%%DATADIR%%/sounds/conf-getconfno.gsm
%%DATADIR%%/sounds/conf-getpin.gsm
+%%DATADIR%%/sounds/conf-hasjoin.gsm
+%%DATADIR%%/sounds/conf-hasleft.gsm
%%DATADIR%%/sounds/conf-invalid.gsm
%%DATADIR%%/sounds/conf-invalidpin.gsm
%%DATADIR%%/sounds/conf-kicked.gsm
+%%DATADIR%%/sounds/conf-leaderhasleft.gsm
%%DATADIR%%/sounds/conf-locked.gsm
%%DATADIR%%/sounds/conf-lockednow.gsm
%%DATADIR%%/sounds/conf-muted.gsm
%%DATADIR%%/sounds/conf-noempty.gsm
+%%DATADIR%%/sounds/conf-onlyone.gsm
%%DATADIR%%/sounds/conf-onlyperson.gsm
+%%DATADIR%%/sounds/conf-otherinparty.gsm
+%%DATADIR%%/sounds/conf-placeintoconf.gsm
+%%DATADIR%%/sounds/conf-thereare.gsm
%%DATADIR%%/sounds/conf-unlockednow.gsm
%%DATADIR%%/sounds/conf-unmuted.gsm
%%DATADIR%%/sounds/conf-usermenu.gsm
+%%DATADIR%%/sounds/conf-userswilljoin.gsm
+%%DATADIR%%/sounds/conf-userwilljoin.gsm
+%%DATADIR%%/sounds/conf-waitforleader.gsm
%%DATADIR%%/sounds/demo-abouttotry.gsm
%%DATADIR%%/sounds/demo-congrats.gsm
%%DATADIR%%/sounds/demo-echodone.gsm
@@ -357,6 +416,18 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/demo-nogo.gsm
%%DATADIR%%/sounds/demo-nomatch.gsm
%%DATADIR%%/sounds/demo-thanks.gsm
+%%DATADIR%%/sounds/dictate/both_help.gsm
+%%DATADIR%%/sounds/dictate/enter_filename.gsm
+%%DATADIR%%/sounds/dictate/forhelp.gsm
+%%DATADIR%%/sounds/dictate/pause.gsm
+%%DATADIR%%/sounds/dictate/paused.gsm
+%%DATADIR%%/sounds/dictate/play_help.gsm
+%%DATADIR%%/sounds/dictate/playback.gsm
+%%DATADIR%%/sounds/dictate/playback_mode.gsm
+%%DATADIR%%/sounds/dictate/record.gsm
+%%DATADIR%%/sounds/dictate/record_help.gsm
+%%DATADIR%%/sounds/dictate/record_mode.gsm
+%%DATADIR%%/sounds/dictate/truncating_audio.gsm
%%DATADIR%%/sounds/digits/0.gsm
%%DATADIR%%/sounds/digits/1.gsm
%%DATADIR%%/sounds/digits/10.gsm
@@ -445,6 +516,7 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/dir-intro.gsm
%%DATADIR%%/sounds/dir-nomatch.gsm
%%DATADIR%%/sounds/dir-nomore.gsm
+%%DATADIR%%/sounds/hello-world.gsm
%%DATADIR%%/sounds/invalid.gsm
%%DATADIR%%/sounds/letters/a.gsm
%%DATADIR%%/sounds/letters/at.gsm
@@ -512,6 +584,10 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/phonetic/x_p.gsm
%%DATADIR%%/sounds/phonetic/y_p.gsm
%%DATADIR%%/sounds/phonetic/z_p.gsm
+%%DATADIR%%/sounds/priv-callee-options.gsm
+%%DATADIR%%/sounds/priv-callpending.gsm
+%%DATADIR%%/sounds/priv-introsaved.gsm
+%%DATADIR%%/sounds/priv-recordintro.gsm
%%DATADIR%%/sounds/privacy-incorrect.gsm
%%DATADIR%%/sounds/privacy-prompt.gsm
%%DATADIR%%/sounds/privacy-thankyou.gsm
@@ -520,10 +596,21 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/queue-holdtime.gsm
%%DATADIR%%/sounds/queue-less-than.gsm
%%DATADIR%%/sounds/queue-minutes.gsm
+%%DATADIR%%/sounds/queue-periodic-announce.gsm
+%%DATADIR%%/sounds/queue-reporthold.gsm
%%DATADIR%%/sounds/queue-seconds.gsm
%%DATADIR%%/sounds/queue-thankyou.gsm
%%DATADIR%%/sounds/queue-thereare.gsm
%%DATADIR%%/sounds/queue-youarenext.gsm
+%%DATADIR%%/sounds/screen-callee-options.gsm
+%%DATADIR%%/sounds/spy-agent.gsm
+%%DATADIR%%/sounds/spy-h323.gsm
+%%DATADIR%%/sounds/spy-iax.gsm
+%%DATADIR%%/sounds/spy-iax2.gsm
+%%DATADIR%%/sounds/spy-mgcp.gsm
+%%DATADIR%%/sounds/spy-sip.gsm
+%%DATADIR%%/sounds/spy-skinny.gsm
+%%DATADIR%%/sounds/spy-zap.gsm
%%DATADIR%%/sounds/ss-noservice.gsm
%%DATADIR%%/sounds/transfer.gsm
%%DATADIR%%/sounds/tt-allbusy.gsm
@@ -531,7 +618,6 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/tt-monkeysintro.gsm
%%DATADIR%%/sounds/tt-somethingwrong.gsm
%%DATADIR%%/sounds/tt-weasels.gsm
-%%DATADIR%%/sounds/vm
%%DATADIR%%/sounds/vm-Cust1.gsm
%%DATADIR%%/sounds/vm-Cust2.gsm
%%DATADIR%%/sounds/vm-Cust3.gsm
@@ -553,6 +639,7 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/vm-extension.gsm
%%DATADIR%%/sounds/vm-first.gsm
%%DATADIR%%/sounds/vm-for.gsm
+%%DATADIR%%/sounds/vm-forward.gsm
%%DATADIR%%/sounds/vm-forwardoptions.gsm
%%DATADIR%%/sounds/vm-from-extension.gsm
%%DATADIR%%/sounds/vm-from-phonenumber.gsm
@@ -571,10 +658,12 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/vm-mailboxfull.gsm
%%DATADIR%%/sounds/vm-message.gsm
%%DATADIR%%/sounds/vm-messages.gsm
+%%DATADIR%%/sounds/vm-minutes.gsm
%%DATADIR%%/sounds/vm-mismatch.gsm
%%DATADIR%%/sounds/vm-msginstruct.gsm
%%DATADIR%%/sounds/vm-msgsaved.gsm
%%DATADIR%%/sounds/vm-newpassword.gsm
+%%DATADIR%%/sounds/vm-newuser.gsm
%%DATADIR%%/sounds/vm-next.gsm
%%DATADIR%%/sounds/vm-no.gsm
%%DATADIR%%/sounds/vm-nobodyavail.gsm
@@ -592,6 +681,7 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/vm-reachoper.gsm
%%DATADIR%%/sounds/vm-rec-busy.gsm
%%DATADIR%%/sounds/vm-rec-name.gsm
+%%DATADIR%%/sounds/vm-rec-temp.gsm
%%DATADIR%%/sounds/vm-rec-unv.gsm
%%DATADIR%%/sounds/vm-received.gsm
%%DATADIR%%/sounds/vm-reenterpassword.gsm
@@ -605,6 +695,9 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/vm-sorry.gsm
%%DATADIR%%/sounds/vm-star-cancel.gsm
%%DATADIR%%/sounds/vm-starmain.gsm
+%%DATADIR%%/sounds/vm-tempgreeting.gsm
+%%DATADIR%%/sounds/vm-tempgreeting2.gsm
+%%DATADIR%%/sounds/vm-tempremoved.gsm
%%DATADIR%%/sounds/vm-then-pound.gsm
%%DATADIR%%/sounds/vm-theperson.gsm
%%DATADIR%%/sounds/vm-tocallback.gsm
@@ -624,9 +717,11 @@ sbin/safe_asterisk
%%DATADIR%%/sounds/vm-whichbox.gsm
%%DATADIR%%/sounds/vm-youhave.gsm
%%DATADIR%%/sounds/voicemail
+@dirrm %%DATADIR%%/sounds/dictate
@dirrm %%DATADIR%%/sounds/phonetic
@dirrm %%DATADIR%%/sounds/letters
@dirrm %%DATADIR%%/sounds/digits
+@dirrm %%DATADIR%%/sounds/priv-callerintros
@dirrm %%DATADIR%%/sounds
@dirrm %%DATADIR%%/mohmp3
@dirrm %%DATADIR%%/keys
@@ -641,11 +736,14 @@ sbin/safe_asterisk
@dirrm etc/asterisk
@unexec rm -f %D/%%DATADIR%%/astdb
@cwd /var
-spool/asterisk/vm
spool/asterisk/voicemail/default/1234/busy.gsm
spool/asterisk/voicemail/default/1234/unavail.gsm
@exec mkdir -p %D/log/asterisk/cdr-csv
@exec mkdir -p %D/spool/asterisk/voicemail/default/1234/INBOX
+@dirrm spool/asterisk/dictate
+@dirrm spool/asterisk/meetme
+@dirrm spool/asterisk/monitor
+@dirrm spool/asterisk/system
@dirrm spool/asterisk/voicemail/default/1234/INBOX
@dirrm spool/asterisk/voicemail/default/1234
@dirrm spool/asterisk/voicemail/default
@@ -653,4 +751,5 @@ spool/asterisk/voicemail/default/1234/unavail.gsm
@dirrm spool/asterisk/tmp
@dirrm spool/asterisk
@dirrm log/asterisk/cdr-csv
+@dirrm log/asterisk/cdr-custom
@dirrm log/asterisk