You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

797 lines
22 KiB

Index: Makefile
--- Makefile.orig 2009-02-24 21:44:50 +0100
+++ Makefile 2009-05-04 12:48:53 +0200
@@ -122,42 +122,20 @@
# Define standard directories for various platforms
# These apply if they are not redefined in asterisk.conf
-ifeq ($(OSARCH),SunOS)
- ASTETCDIR=/var/etc/asterisk
- ASTLIBDIR=/opt/asterisk/lib
- ASTVARLIBDIR=/var/opt/asterisk
- ASTDBDIR=$(ASTVARLIBDIR)
- ASTKEYDIR=$(ASTVARLIBDIR)
- ASTSPOOLDIR=/var/spool/asterisk
- ASTLOGDIR=/var/log/asterisk
- ASTHEADERDIR=/opt/asterisk/include
- ASTBINDIR=/opt/asterisk/bin
- ASTSBINDIR=/opt/asterisk/sbin
- ASTVARRUNDIR=/var/run/asterisk
- ASTMANDIR=/opt/asterisk/man
-else
ASTETCDIR=$(sysconfdir)/asterisk
ASTLIBDIR=$(libdir)/asterisk
ASTHEADERDIR=$(includedir)/asterisk
ASTBINDIR=$(bindir)
ASTSBINDIR=$(sbindir)
- ASTSPOOLDIR=$(localstatedir)/spool/asterisk
- ASTLOGDIR=$(localstatedir)/log/asterisk
+ ASTSPOOLDIR=$(localstatedir)/spool
+ ASTLOGDIR=$(localstatedir)/log
ASTVARRUNDIR=$(localstatedir)/run
ASTMANDIR=$(mandir)
-ifneq ($(findstring BSD,$(OSARCH)),)
ASTVARLIBDIR=$(prefix)/share/asterisk
- ASTVARRUNDIR=$(localstatedir)/run/asterisk
- ASTDBDIR=$(localstatedir)/db/asterisk
-else
- ASTVARLIBDIR=$(localstatedir)/lib/asterisk
- ASTDBDIR=$(ASTVARLIBDIR)
-endif
+ ASTVARRUNDIR=$(localstatedir)/run
+ ASTDBDIR=$(localstatedir)/db
ASTKEYDIR=$(ASTVARLIBDIR)
-endif
-ifeq ($(ASTDATADIR),)
ASTDATADIR:=$(ASTVARLIBDIR)
-endif
# Asterisk.conf is located in ASTETCDIR or by using the -C flag
# when starting Asterisk
@@ -258,12 +236,6 @@
ASTCFLAGS+=-fsigned-char
endif
-ifeq ($(OSARCH),FreeBSD)
- # -V is understood by BSD Make, not by GNU make.
- BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
- ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
-endif
-
ifeq ($(OSARCH),NetBSD)
ASTCFLAGS+=-pthread -I/usr/pkg/include
endif
@@ -534,8 +506,7 @@
if [ -n "$(OLDHEADERS)" ]; then \
rm -f $(addprefix $(DESTDIR)$(ASTHEADERDIR)/,$(OLDHEADERS)) ;\
fi
- mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-csv
- mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr-custom
+ mkdir -p $(DESTDIR)$(ASTLOGDIR)/cdr
mkdir -p $(DESTDIR)$(ASTDATADIR)/keys
mkdir -p $(DESTDIR)$(ASTDATADIR)/firmware
mkdir -p $(DESTDIR)$(ASTDATADIR)/firmware/iax
Index: apps/app_backticks.c
--- /dev/null 2009-05-04 12:48:56 +0200
+++ apps/app_backticks.c 2009-05-04 12:48:53 +0200
@@ -0,0 +1,129 @@
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.49 $")
+
+#include <stdio.h>
+#include <asterisk/file.h>
+#include <asterisk/logger.h>
+#include <asterisk/channel.h>
+#include <asterisk/pbx.h>
+#include <asterisk/module.h>
+#include <asterisk/lock.h>
+#include <asterisk/app.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+static char *app = "BackTicks";
+static char *synopsis = "Execute a shell command and save the result as a variable.";
+static char *desc = " Backticks(<VARNAME>|<command>)\n\n"
+ "Be sure to include a full path to the command!\n";
+
+static char *do_backticks(char *command, char *buf, size_t len)
+{
+ int fds[2], pid = 0;
+ char *ret = NULL;
+
+ memset(buf, 0, len);
+ if (pipe(fds)) {
+ ast_log(LOG_WARNING, "Pipe/Exec failed\n");
+ } else {
+ pid = fork();
+ if (pid < 0) {
+ ast_log(LOG_WARNING, "Fork failed\n");
+ close(fds[0]);
+ close(fds[1]);
+ } else if (pid) {
+ /* parent */
+ close(fds[1]);
+ read(fds[0], buf, len);
+ close(fds[0]);
+ ret = buf;
+ } else {
+ /* child */
+ char *argv[255] = {0};
+ int argc = 0;
+ char *p;
+ char *mycmd = ast_strdupa(command);
+ close(fds[0]);
+ dup2(fds[1], STDOUT_FILENO);
+ argv[argc++] = mycmd;
+ do {
+ if ((p = strchr(mycmd, ' '))) {
+ *p = '\0';
+ mycmd = ++p;
+ argv[argc++] = mycmd;
+ }
+ } while (p != NULL);
+ close(fds[1]);
+ execv(argv[0], argv);
+ ast_log(LOG_ERROR, "exec of %s failed\n", argv[0]);
+ exit(0);
+ }
+ }
+ return ret;
+}
+
+static int backticks_exec(struct ast_channel *chan, void *data)
+{
+ int res = 0;
+ const char *usage = "Usage: Backticks(<VARNAME>|<command>)";
+ char buf[1024], *argv[2], *mydata;
+ int argc = 0;
+
+ if (!data) {
+ ast_log(LOG_WARNING, "%s\n", usage);
+ return -1;
+ }
+ ast_autoservice_start(chan);
+ if (!(mydata = ast_strdupa(data))) {
+ ast_log(LOG_ERROR, "Memory Error!\n");
+ res = -1;
+ } else {
+ if((argc = ast_app_separate_args(mydata, '|', argv, sizeof(argv) / sizeof(argv[0]))) < 2) {
+ ast_log(LOG_WARNING, "%s\n", usage);
+ res = -1;
+ }
+ if (do_backticks(argv[1], buf, sizeof(buf)))
+ pbx_builtin_setvar_helper(chan, argv[0], buf);
+ else {
+ ast_log(LOG_WARNING, "No Data!\n");
+ res = -1;
+ }
+ }
+ ast_autoservice_stop(chan);
+ return res;
+}
+
+static int function_backticks(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
+{
+ if (!do_backticks(data, buf, len)) {
+ ast_log(LOG_WARNING, "No Data!\n");
+ return -1;
+ }
+ return 0;
+}
+
+static struct ast_custom_function backticks_function = {
+ .name = "BACKTICKS",
+ .desc = "Executes a shell command and evaluates to the result.",
+ .syntax = "BACKTICKS(<command>)",
+ .synopsis = "Executes a shell command.",
+ .read = function_backticks
+};
+
+static int unload_module(void)
+{
+ ast_custom_function_unregister(&backticks_function);
+ return ast_unregister_application(app);
+}
+
+static int load_module(void)
+{
+ ast_custom_function_register(&backticks_function);
+ return ast_register_application(app, backticks_exec, synopsis, desc);
+}
+
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "BACKTICKS() dialplan function");
+
Index: apps/app_meetme.c
--- apps/app_meetme.c.orig 2009-03-03 00:39:56 +0100
+++ apps/app_meetme.c 2009-05-04 12:48:53 +0200
@@ -163,6 +163,7 @@
CONFFLAG_DURATION_LIMIT = (1 << 30),
/*! Do not write any audio to this channel until the state is up. */
CONFFLAG_NO_AUDIO_UNTIL_UP = (1 << 31),
+ CONFFLAG_USERNAME = (1 << 31),
};
enum {
@@ -172,6 +173,7 @@
OPT_ARG_DURATION_LIMIT = 3,
OPT_ARG_MOH_CLASS = 4,
OPT_ARG_ARRAY_SIZE = 5,
+ OPT_ARG_USERNAME = 6,
};
AST_APP_OPTIONS(meetme_opts, BEGIN_OPTIONS
@@ -204,6 +206,7 @@
AST_APP_OPTION('1', CONFFLAG_NOONLYPERSON ),
AST_APP_OPTION_ARG('S', CONFFLAG_DURATION_STOP, OPT_ARG_DURATION_STOP),
AST_APP_OPTION_ARG('L', CONFFLAG_DURATION_LIMIT, OPT_ARG_DURATION_LIMIT),
+ AST_APP_OPTION_ARG('n', CONFFLAG_USERNAME, OPT_ARG_USERNAME),
END_OPTIONS );
static const char *app = "MeetMe";
@@ -1876,6 +1879,12 @@
if (!(confflags & CONFFLAG_QUIET) && ((confflags & CONFFLAG_INTROUSER) || (confflags & CONFFLAG_INTROUSERNOREVIEW))) {
char destdir[PATH_MAX];
+ if ( (confflags & CONFFLAG_USERNAME)
+ && !ast_strlen_zero(optargs[OPT_ARG_USERNAME])
+ && ast_fileexists(optargs[OPT_ARG_USERNAME], NULL, NULL))
+ snprintf(destdir, sizeof(destdir), "%s", optargs[OPT_ARG_USERNAME]);
+ else {
+
snprintf(destdir, sizeof(destdir), "%s/meetme", ast_config_AST_SPOOL_DIR);
if (ast_mkdir(destdir, 0777) != 0) {
@@ -1892,6 +1901,7 @@
res = ast_record_review(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, NULL);
if (res == -1)
goto outrun;
+ }
}
ast_mutex_lock(&conf->playlock);
Index: build_tools/make_defaults_h
--- build_tools/make_defaults_h.orig 2008-01-24 23:58:10 +0100
+++ build_tools/make_defaults_h 2009-05-04 12:48:53 +0200
@@ -17,7 +17,7 @@
#define DEFAULT_PID "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.pid"
#define DEFAULT_VAR_DIR "${INSTALL_PATH}${ASTVARLIBDIR}"
-#define DEFAULT_DB "${INSTALL_PATH}${ASTDBDIR}/astdb"
+#define DEFAULT_DB "${INSTALL_PATH}${ASTDBDIR}/asterisk.db"
#define DEFAULT_DATA_DIR "${INSTALL_PATH}${ASTDATADIR}"
#define DEFAULT_KEY_DIR "${INSTALL_PATH}${ASTDATADIR}/keys"
Index: cdr/cdr_custom.c
--- cdr/cdr_custom.c.orig 2008-11-20 19:23:03 +0100
+++ cdr/cdr_custom.c 2009-05-04 12:48:53 +0200
@@ -78,7 +78,7 @@
ast_log(LOG_WARNING, "Format string too long, will be truncated, at line %d\n", var->lineno);
ast_copy_string(format, var->value, sizeof(format) - 1);
strcat(format,"\n");
- snprintf(master, sizeof(master),"%s/%s/%s", ast_config_AST_LOG_DIR, name, var->name);
+ snprintf(master, sizeof(master),"%s/cdr/%s", ast_config_AST_LOG_DIR, var->name);
if (var->next) {
ast_log(LOG_NOTICE, "Sorry, only one mapping is supported at this time, mapping '%s' will be ignored at line %d.\n", var->next->name, var->next->lineno);
break;
Index: cdr/cdr_sqlite3_custom.c
--- cdr/cdr_sqlite3_custom.c.orig 2009-03-02 18:19:41 +0100
+++ cdr/cdr_sqlite3_custom.c 2009-05-04 12:48:53 +0200
@@ -322,7 +322,7 @@
return AST_MODULE_LOAD_DECLINE;
/* is the database there? */
- snprintf(filename, sizeof(filename), "%s/master.db", ast_config_AST_LOG_DIR);
+ snprintf(filename, sizeof(filename), "%s/cdr/master.db", ast_config_AST_LOG_DIR);
res = sqlite3_open(filename, &db);
if (res != SQLITE_OK) {
ast_log(LOG_ERROR, "Could not open database %s.\n", filename);
Index: chan_capi-1.1.2/Makefile
--- chan_capi-1.1.2/Makefile.orig 2009-01-17 18:36:50 +0100
+++ chan_capi-1.1.2/Makefile 2009-05-04 12:48:53 +0200
@@ -90,6 +90,9 @@
CFLAGS+=-O6
CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
+ifeq (${USE_OWN_LIBCAPI},yes)
+CFLAGS+=-DUSE_OWN_LIBCAPI
+endif
LIBS=-ldl -lpthread -lm
CC=gcc
Index: chan_capi-1.1.2/chan_capi20.h
--- chan_capi-1.1.2/chan_capi20.h.orig 2005-09-20 20:33:40 +0200
+++ chan_capi-1.1.2/chan_capi20.h 2009-05-04 12:48:53 +0200
@@ -8,6 +8,8 @@
#undef CAPI_OS_HINT
+#ifndef USE_OWN_LIBCAPI
+
#if (defined(__FreeBSD__) || defined(__OpenBSD__) || \
defined(__NetBSD__) || defined(__APPLE__))
@@ -29,6 +31,8 @@
#include <capiutils.h>
#endif /* BSD */
+#endif
+
#ifndef HEADER_CID
#define HEADER_CID(x) ((x)->adr.adrNCCI)
#endif
Index: chan_capi-1.1.2/libcapi20/capi20.c
--- chan_capi-1.1.2/libcapi20/capi20.c.orig 2008-12-31 17:29:36 +0100
+++ chan_capi-1.1.2/libcapi20/capi20.c 2009-05-04 12:48:53 +0200
@@ -19,8 +19,10 @@
#include <stdio.h>
#include <ctype.h>
#include <assert.h>
+#ifdef __linux__
#define _LINUX_LIST_H
#include <linux/capi.h>
+#endif
#include <sys/socket.h>
#include <netinet/in.h>
@@ -46,17 +48,23 @@
#define SEND_BUFSIZ (128+2048)
+#if 0
static char capidevname[] = "/dev/capi20";
static char capidevnamenew[] = "/dev/isdn/capi20";
+#endif
static int capi_fd = -1;
+#if 0
static capi_ioctl_struct ioctl_data;
+#endif
static int remote_capi;
+#if 0
static char *globalconfigfilename = "/etc/capi20.conf";
static char *userconfigfilename = ".capi20rc";
static unsigned short int port;
static char hostname[1024];
+#endif
static int tracelevel;
static char *tracefile;
@@ -75,17 +83,21 @@
#define RCAPI_AUTH_USER_REQ CAPICMD(0xff, 0x00)
#define RCAPI_AUTH_USER_CONF CAPICMD(0xff, 0x01)
+#if 0
static char *skip_whitespace(char *s)
{
while (*s && isspace(*s)) s++;
return s;
}
+#endif
+#if 0
static char *skip_nonwhitespace(char *s)
{
while (*s && !isspace(*s)) s++;
return s;
}
+#endif
static unsigned char get_byte(unsigned char **p)
{
@@ -93,10 +105,12 @@
return((unsigned char)*(*p - 1));
}
+#if 0
static unsigned short get_word(unsigned char **p)
{
return(get_byte(p) | (get_byte(p) << 8));
}
+#endif
static unsigned short get_netword(unsigned char **p)
{
@@ -142,6 +156,7 @@
* read config file
*/
+#if 0
static int read_config(void)
{
FILE *fp = NULL;
@@ -195,11 +210,13 @@
fclose(fp);
return(1);
}
+#endif
/*
* socket function
*/
+#if 0
static int open_socket(void)
{
int fd;
@@ -223,6 +240,7 @@
close(fd);
return(-1);
}
+#endif
static int socket_read(int fd, unsigned char *buf, int l)
{
@@ -316,6 +334,8 @@
if (capi_fd >= 0)
return CapiNoError;
+#if 0
+
/*----- open managment link -----*/
if (read_config() && (remote_capi)) {
capi_fd = open_socket();
@@ -335,6 +355,8 @@
if (ioctl(capi_fd, CAPI_INSTALLED, 0) == 0)
return CapiNoError;
+#endif
+
return CapiRegNotInstalled;
}
@@ -409,6 +431,7 @@
unsigned char *bufferstart;
};
+#if 0
static struct applinfo *alloc_buffers(
unsigned MaxB3Connection,
unsigned MaxB3Blks,
@@ -447,6 +470,7 @@
ap->lastfree->next = 0;
return ap;
}
+#endif
static void free_buffers(struct applinfo *ap)
{
@@ -564,14 +588,17 @@
unsigned MaxSizeB3,
unsigned *ApplID)
{
+#if 0
int applid = 0;
char buf[PATH_MAX];
int i, fd = -1;
*ApplID = 0;
+#endif
if (capi20_isinstalled() != CapiNoError)
return CapiRegNotInstalled;
+#if 0
if ((!remote_capi) || ((remote_capi) && ((fd = open_socket()) < 0))) {
if ((fd = open(capidevname, O_RDWR|O_NONBLOCK, 0666)) < 0 &&
(errno == ENOENT)) {
@@ -609,6 +636,8 @@
close(fd);
return(errcode);
}
+ }
+#if 0
} else if ((applid = ioctl(fd, CAPI_REGISTER, &ioctl_data)) < 0) {
if (errno == EIO) {
if (ioctl(fd, CAPI_GET_ERRCODE, &ioctl_data) < 0) {
@@ -654,6 +683,7 @@
applid = alloc_applid(fd);
} // end old driver compatibility
}
+#endif
if (remember_applid(applid, fd) < 0) {
close(fd);
return CapiRegOSResourceErr;
@@ -664,6 +694,7 @@
return CapiRegOSResourceErr;
}
*ApplID = applid;
+#endif
return CapiNoError;
}
@@ -772,11 +803,15 @@
ret = CapiIllAppNr;
break;
case EIO:
+#if 0
if (ioctl(fd, CAPI_GET_ERRCODE, &ioctl_data) < 0) {
+#endif
ret = CapiMsgOSResourceErr;
+#if 0
} else {
ret = (unsigned)ioctl_data.errcode;
}
+#endif
break;
default:
ret = CapiMsgOSResourceErr;
@@ -830,7 +865,7 @@
rcvbuf[15] = (data >> 24) & 0xff;
} else {
u_int64_t data;
- ulong radr = (ulong)rcvbuf;
+ unsigned long radr = (unsigned long)rcvbuf;
if (CAPIMSG_LEN(rcvbuf) < 30) {
/*
* grr, 64bit arch, but no data64 included,
@@ -887,6 +922,9 @@
{
if (capi20_isinstalled() != CapiNoError)
return 0;
+#ifndef CAPI_MANUFACTURER_LEN
+#define CAPI_MANUFACTURER_LEN 64
+#endif
if (remote_capi) {
unsigned char buf[100];
@@ -899,15 +937,19 @@
return Buf;
}
+#if 0
ioctl_data.contr = Ctrl;
if (ioctl(capi_fd, CAPI_GET_MANUFACTURER, &ioctl_data) < 0)
+#endif
return 0;
+#if 0
memcpy(Buf, ioctl_data.manufacturer, CAPI_MANUFACTURER_LEN);
Buf[CAPI_MANUFACTURER_LEN-1] = 0;
return Buf;
+#endif
}
unsigned char *
@@ -922,16 +964,20 @@
set_rcapicmd_header(&p, 14, RCAPI_GET_VERSION_REQ, Ctrl);
if(!(remote_command(capi_fd, buf, 14, RCAPI_GET_VERSION_CONF)))
return 0;
- memcpy(Buf, buf + 1, sizeof(capi_version));
+ memcpy(Buf, buf + 1, 128 /* sizeof(capi_version) */);
return Buf;
}
+#if 0
ioctl_data.contr = Ctrl;
if (ioctl(capi_fd, CAPI_GET_VERSION, &ioctl_data) < 0) {
+#endif
return 0;
+#if 0
}
memcpy(Buf, &ioctl_data.version, sizeof(capi_version));
return Buf;
+#endif
}
unsigned char *
@@ -940,6 +986,10 @@
if (capi20_isinstalled() != CapiNoError)
return 0;
+#ifndef CAPI_SERIAL_LEN
+#define CAPI_SERIAL_LEN 8
+#endif
+
if (remote_capi) {
unsigned char buf[100];
unsigned char *p = buf;
@@ -951,15 +1001,19 @@
return Buf;
}
+#if 0
ioctl_data.contr = Ctrl;
if (ioctl(capi_fd, CAPI_GET_SERIAL, &ioctl_data) < 0)
+#endif
return 0;
+#if 0
memcpy(Buf, &ioctl_data.serial, CAPI_SERIAL_LEN);
Buf[CAPI_SERIAL_LEN-1] = 0;
return Buf;
+#endif
}
unsigned
@@ -975,11 +1029,14 @@
if(!(remote_command(capi_fd, buf, 14, RCAPI_GET_PROFILE_CONF)))
return CapiMsgOSResourceErr;
if(*(unsigned short *)buf == CapiNoError) {
- memcpy(Buf, buf + 2, (Ctrl) ? sizeof(struct capi_profile) : 2);
+ memcpy(Buf, buf + 2, (Ctrl) ? 224 /* sizeof(struct capi_profile) */ : 2);
}
return (*(unsigned short *)buf);
}
+#if 1
+ return CapiMsgOSResourceErr;
+#else
ioctl_data.contr = Ctrl;
if (ioctl(capi_fd, CAPI_GET_PROFILE, &ioctl_data) < 0) {
@@ -996,6 +1053,7 @@
sizeof(ioctl_data.profile.ncontroller));
}
return CapiNoError;
+#endif
}
/*
* functions added to the CAPI2.0 spec
Index: chan_capi-1.1.2/libcapi20/convert.c
--- chan_capi-1.1.2/libcapi20/convert.c.orig 2008-03-13 12:02:41 +0100
+++ chan_capi-1.1.2/libcapi20/convert.c 2009-05-04 12:48:53 +0200
@@ -11,7 +11,14 @@
#include <stddef.h>
#include <time.h>
#include <ctype.h>
+#ifdef __FreeBSD__
+#include <sys/endian.h>
+#define bswap_16 bswap16
+#define bswap_32 bswap32
+#define bswap_64 bswap64
+#else
#include <byteswap.h>
+#endif
#include "capi20.h"
Index: channels/console_video.h
--- channels/console_video.h.orig 2008-06-30 17:45:15 +0200
+++ channels/console_video.h 2009-05-04 12:48:53 +0200
@@ -28,10 +28,7 @@
"console {device}"
#else
-#include <ffmpeg/avcodec.h>
-#ifndef OLD_FFMPEG
-#include <ffmpeg/swscale.h> /* requires a recent ffmpeg */
-#endif
+#include <libavcoded/avcodec.h>
#define CONSOLE_VIDEO_CMDS \
"console {videodevice|videocodec" \
Index: configure
--- configure.orig 2009-03-19 19:14:55 +0100
+++ configure 2009-05-04 12:48:53 +0200
@@ -4053,12 +4053,6 @@
# note- does not work on FreeBSD
case "${host_os}" in
- freebsd*)
- ac_default_prefix=/usr/local
- CPPFLAGS=-I/usr/local/include
- LDFLAGS=-L/usr/local/lib
- ;;
-
darwin*)
cat >>confdefs.h <<\_ACEOF
Index: main/Makefile
--- main/Makefile.orig 2009-04-09 07:16:25 +0200
+++ main/Makefile 2009-05-04 12:48:53 +0200
@@ -72,10 +72,7 @@
endif
ifeq ($(OSARCH),FreeBSD)
- # -V is understood by BSD Make, not by GNU make.
- BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
- AST_LIBS+=$(shell if test $(BSDVERSION) -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi)
- AST_LIBS+=-lcrypto
+ AST_LIBS+=-lpthread -lcrypto
endif
ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
Index: main/file.c
--- main/file.c.orig 2009-04-15 22:20:23 +0200
+++ main/file.c 2009-05-04 12:48:53 +0200
@@ -248,7 +248,7 @@
char *fn = NULL;
if (!strcmp(ext, "wav49"))
- ext = "WAV";
+ ext = "wav";
if (filename[0] == '/') {
if (asprintf(&fn, "%s.%s", filename, ext) < 0) {
Index: main/tcptls.c
--- main/tcptls.c.orig 2009-03-09 22:22:42 +0100
+++ main/tcptls.c 2009-05-04 12:48:53 +0200
@@ -314,6 +314,7 @@
if (!ast_strlen_zero(cfg->cafile) || !ast_strlen_zero(cfg->capath)) {
if (SSL_CTX_load_verify_locations(cfg->ssl_ctx, S_OR(cfg->cafile, NULL), S_OR(cfg->capath,NULL)) == 0)
ast_verb(0, "SSL CA file(%s)/path(%s) error\n", cfg->cafile, cfg->capath);
+ SSL_CTX_set_client_CA_list(cfg->ssl_ctx, S_OR(cfg->cafile, NULL));
}
ast_verb(0, "SSL certificate ok\n");
Index: menuselect-tree
--- menuselect-tree.orig 2009-04-27 21:45:53 +0200
+++ menuselect-tree 2009-05-04 12:48:53 +0200
@@ -148,6 +148,8 @@
</member>
<member name="app_system" displayname="Generic System() application" remove_on_change="apps/app_system.o apps/app_system.so">
</member>
+<member name="app_backticks" displayname="Generic Backticks() application" remove_on_change="apps/app_backticks.o apps/app_backticks.so">
+</member>
<member name="app_talkdetect" displayname="Playback with Talk Detection" remove_on_change="apps/app_talkdetect.o apps/app_talkdetect.so">
</member>
<member name="app_test" displayname="Interface Test Application" remove_on_change="apps/app_test.o apps/app_test.so">
@@ -647,9 +649,9 @@
<member name="CORE-SOUNDS-EN-ULAW" displayname="English, mu-Law format">
</member>
<member name="CORE-SOUNDS-EN-ALAW" displayname="English, a-Law format">
+ <defaultenabled>yes</defaultenabled>
</member>
<member name="CORE-SOUNDS-EN-GSM" displayname="English, GSM format" >
- <defaultenabled>yes</defaultenabled>
</member>
<member name="CORE-SOUNDS-EN-G729" displayname="English, G.729 format">
</member>
@@ -709,6 +711,7 @@
<member name="EXTRA-SOUNDS-EN-ULAW" displayname="English, mu-Law format">
</member>
<member name="EXTRA-SOUNDS-EN-ALAW" displayname="English, a-Law format">
+ <defaultenabled>yes</defaultenabled>
</member>
<member name="EXTRA-SOUNDS-EN-GSM" displayname="English, GSM format" >
</member>
Index: res/res_http_post.c
--- res/res_http_post.c.orig 2009-01-14 00:14:29 +0100
+++ res/res_http_post.c 2009-05-04 12:48:53 +0200
@@ -119,14 +119,8 @@
ast_log(LOG_WARNING, "Got unexpected GMIME_IS_MESSAGE_PARTIAL\n");
return;
} else if (GMIME_IS_MULTIPART(part)) {
- GList *l;
-
- ast_log(LOG_WARNING, "Got unexpected GMIME_IS_MULTIPART, trying to process subparts\n");
- l = GMIME_MULTIPART(part)->subparts;
- while (l) {
- process_message_callback(l->data, cbinfo);
- l = l->next;
- }
+ ast_log(LOG_WARNING, "Got unexpected GMIME_IS_MULTIPART, trying to process subparts\n");
+ g_mime_multipart_foreach(GMIME_MULTIPART(part), process_message_callback, cbinfo);
} else if (GMIME_IS_PART(part)) {
const char *filename;
Index: sounds/sounds.xml
--- sounds/sounds.xml.orig 2008-10-09 22:01:38 +0200
+++ sounds/sounds.xml 2009-05-04 12:48:53 +0200
@@ -4,9 +4,9 @@
<member name="CORE-SOUNDS-EN-ULAW" displayname="English, mu-Law format">
</member>
<member name="CORE-SOUNDS-EN-ALAW" displayname="English, a-Law format">
+ <defaultenabled>yes</defaultenabled>
</member>
<member name="CORE-SOUNDS-EN-GSM" displayname="English, GSM format" >
- <defaultenabled>yes</defaultenabled>
</member>
<member name="CORE-SOUNDS-EN-G729" displayname="English, G.729 format">
</member>
@@ -66,6 +66,7 @@
<member name="EXTRA-SOUNDS-EN-ULAW" displayname="English, mu-Law format">
</member>
<member name="EXTRA-SOUNDS-EN-ALAW" displayname="English, a-Law format">
+ <defaultenabled>yes</defaultenabled>
</member>
<member name="EXTRA-SOUNDS-EN-GSM" displayname="English, GSM format" >
</member>