asterisk/asterisk.patch

Fri, 02 Dec 2011 16:12:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 02 Dec 2011 16:12:09 +0100
changeset 398
08f5eb82b58f
parent 362
7c568c62ffb3
child 404
b6420eee9bde
permissions
-rw-r--r--

Correct patch logic and update sound versions including russian.

michael@311 1 Index: addons/chan_ooh323.c
michael@311 2 diff -Nau addons/chan_ooh323.c.orig addons/chan_ooh323.c
michael@362 3 --- addons/chan_ooh323.c.orig 2011-08-09 18:13:09.000000000 +0200
michael@362 4 +++ addons/chan_ooh323.c 2011-09-14 14:29:50.740457577 +0200
michael@362 5 @@ -24,6 +24,12 @@
michael@202 6
michael@311 7 #include "chan_ooh323.h"
michael@311 8 #include <math.h>
michael@311 9 +#if defined __SVR4 && defined __sun
michael@311 10 +#include <sys/sockio.h>
michael@311 11 +#ifndef IPTOS_MINCOST
michael@311 12 +#define IPTOS_MINCOST 0x02
michael@311 13 +#endif
michael@311 14 +#endif
michael@202 15
michael@311 16 #define FORMAT_STRING_SIZE 512
michael@202 17
michael@311 18 Index: addons/ooh323c/src/ooCmdChannel.c
michael@311 19 diff -Nau addons/ooh323c/src/ooCmdChannel.c.orig addons/ooh323c/src/ooCmdChannel.c
michael@362 20 --- addons/ooh323c/src/ooCmdChannel.c.orig 2011-08-04 21:37:16.000000000 +0200
michael@362 21 +++ addons/ooh323c/src/ooCmdChannel.c 2011-09-14 14:29:50.740457577 +0200
michael@311 22 @@ -25,6 +25,10 @@
michael@311 23 #include "ooCalls.h"
michael@311 24 #include "ooCmdChannel.h"
michael@311 25
michael@311 26 +#ifndef AF_LOCAL
michael@311 27 +#define AF_LOCAL AF_UNIX
michael@311 28 +#define PF_LOCAL PF_UNIX
michael@311 29 +#endif
michael@311 30
michael@311 31 /** Global endpoint structure */
michael@311 32 extern OOH323EndPoint gH323ep;
michael@311 33 Index: addons/ooh323c/src/ooSocket.c
michael@311 34 diff -Nau addons/ooh323c/src/ooSocket.c.orig addons/ooh323c/src/ooSocket.c
michael@362 35 --- addons/ooh323c/src/ooSocket.c.orig 2011-05-04 22:50:18.000000000 +0200
michael@362 36 +++ addons/ooh323c/src/ooSocket.c 2011-09-14 14:29:50.740457577 +0200
michael@311 37 @@ -24,6 +24,9 @@
michael@311 38
michael@311 39 #include "ooSocket.h"
michael@311 40 #include "ootrace.h"
michael@311 41 +#if defined __SVR4 && defined __sun
michael@311 42 +#include <sys/sockio.h>
michael@311 43 +#endif
michael@311 44 #if defined(_WIN32_WCE)
michael@311 45 static int inited = 0;
michael@311 46 #define SEND_FLAGS 0
michael@311 47 Index: addons/ooh323cDriver.c
michael@311 48 diff -Nau addons/ooh323cDriver.c.orig addons/ooh323cDriver.c
michael@347 49 --- addons/ooh323cDriver.c.orig 2011-02-18 01:07:20.000000000 +0100
michael@362 50 +++ addons/ooh323cDriver.c 2011-09-14 14:29:50.740457577 +0200
michael@311 51 @@ -27,6 +27,11 @@
michael@311 52
michael@311 53 #define SEC_TO_HOLD_THREAD 24
michael@311 54
michael@311 55 +#ifndef AF_LOCAL
michael@311 56 +#define AF_LOCAL AF_UNIX
michael@311 57 +#define PF_LOCAL PF_UNIX
michael@311 58 +#endif
michael@311 59 +
michael@311 60 extern struct ast_module *myself;
michael@311 61 extern OOBOOL gH323Debug;
michael@311 62 extern OOH323EndPoint gH323ep;
michael@310 63 Index: apps/app_backticks.c
michael@311 64 diff -Nau apps/app_backticks.c.orig apps/app_backticks.c
michael@311 65 --- apps/app_backticks.c.orig 1970-01-01 01:00:00.000000000 +0100
michael@362 66 +++ apps/app_backticks.c 2011-09-14 14:29:50.740457577 +0200
michael@310 67 @@ -0,0 +1,129 @@
michael@202 68 +
michael@202 69 +#include "asterisk.h"
michael@202 70 +
michael@311 71 +ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.52 $")
michael@202 72 +
michael@310 73 +#include <stdio.h>
michael@310 74 +#include <asterisk/file.h>
michael@310 75 +#include <asterisk/logger.h>
michael@310 76 +#include <asterisk/channel.h>
michael@310 77 +#include <asterisk/pbx.h>
michael@310 78 +#include <asterisk/module.h>
michael@310 79 +#include <asterisk/lock.h>
michael@310 80 +#include <asterisk/app.h>
michael@310 81 +#include <stdlib.h>
michael@310 82 +#include <unistd.h>
michael@310 83 +#include <string.h>
michael@202 84 +
michael@310 85 +static char *app = "BackTicks";
michael@310 86 +static char *synopsis = "Execute a shell command and save the result as a variable.";
michael@310 87 +static char *desc = " Backticks(<VARNAME>|<command>)\n\n"
michael@310 88 + "Be sure to include a full path to the command!\n";
michael@202 89 +
michael@310 90 +static char *do_backticks(char *command, char *buf, size_t len)
michael@310 91 +{
michael@310 92 + int fds[2], pid = 0;
michael@310 93 + char *ret = NULL;
michael@202 94 +
michael@310 95 + memset(buf, 0, len);
michael@310 96 + if (pipe(fds)) {
michael@310 97 + ast_log(LOG_WARNING, "Pipe/Exec failed\n");
michael@310 98 + } else {
michael@310 99 + pid = fork();
michael@310 100 + if (pid < 0) {
michael@310 101 + ast_log(LOG_WARNING, "Fork failed\n");
michael@310 102 + close(fds[0]);
michael@310 103 + close(fds[1]);
michael@310 104 + } else if (pid) {
michael@310 105 + /* parent */
michael@310 106 + close(fds[1]);
michael@310 107 + read(fds[0], buf, len);
michael@310 108 + close(fds[0]);
michael@310 109 + ret = buf;
michael@310 110 + } else {
michael@310 111 + /* child */
michael@310 112 + char *argv[255] = {0};
michael@310 113 + int argc = 0;
michael@310 114 + char *p;
michael@310 115 + char *mycmd = ast_strdupa(command);
michael@310 116 + close(fds[0]);
michael@310 117 + dup2(fds[1], STDOUT_FILENO);
michael@310 118 + argv[argc++] = mycmd;
michael@310 119 + do {
michael@310 120 + if ((p = strchr(mycmd, ' '))) {
michael@310 121 + *p = '\0';
michael@310 122 + mycmd = ++p;
michael@310 123 + argv[argc++] = mycmd;
michael@310 124 + }
michael@310 125 + } while (p != NULL);
michael@310 126 + close(fds[1]);
michael@310 127 + execv(argv[0], argv);
michael@310 128 + ast_log(LOG_ERROR, "exec of %s failed\n", argv[0]);
michael@310 129 + exit(0);
michael@310 130 + }
michael@310 131 + }
michael@310 132 + return ret;
michael@202 133 +}
michael@202 134 +
michael@310 135 +static int backticks_exec(struct ast_channel *chan, void *data)
michael@202 136 +{
michael@310 137 + int res = 0;
michael@310 138 + const char *usage = "Usage: Backticks(<VARNAME>|<command>)";
michael@310 139 + char buf[1024], *argv[2], *mydata;
michael@310 140 + int argc = 0;
michael@310 141 +
michael@310 142 + if (!data) {
michael@310 143 + ast_log(LOG_WARNING, "%s\n", usage);
michael@310 144 + return -1;
michael@310 145 + }
michael@310 146 + ast_autoservice_start(chan);
michael@310 147 + if (!(mydata = ast_strdupa(data))) {
michael@310 148 + ast_log(LOG_ERROR, "Memory Error!\n");
michael@310 149 + res = -1;
michael@310 150 + } else {
michael@310 151 + if((argc = ast_app_separate_args(mydata, '|', argv, sizeof(argv) / sizeof(argv[0]))) < 2) {
michael@310 152 + ast_log(LOG_WARNING, "%s\n", usage);
michael@310 153 + res = -1;
michael@310 154 + }
michael@310 155 + if (do_backticks(argv[1], buf, sizeof(buf)))
michael@310 156 + pbx_builtin_setvar_helper(chan, argv[0], buf);
michael@310 157 + else {
michael@310 158 + ast_log(LOG_WARNING, "No Data!\n");
michael@310 159 + res = -1;
michael@310 160 + }
michael@310 161 + }
michael@310 162 + ast_autoservice_stop(chan);
michael@310 163 + return res;
michael@202 164 +}
michael@202 165 +
michael@310 166 +static int function_backticks(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
michael@202 167 +{
michael@310 168 + if (!do_backticks(data, buf, len)) {
michael@310 169 + ast_log(LOG_WARNING, "No Data!\n");
michael@310 170 + return -1;
michael@310 171 + }
michael@310 172 + return 0;
michael@202 173 +}
michael@202 174 +
michael@310 175 +static struct ast_custom_function backticks_function = {
michael@310 176 + .name = "BACKTICKS",
michael@310 177 + .desc = "Executes a shell command and evaluates to the result.",
michael@310 178 + .syntax = "BACKTICKS(<command>)",
michael@310 179 + .synopsis = "Executes a shell command.",
michael@310 180 + .read = function_backticks
michael@202 181 +};
michael@202 182 +
michael@202 183 +static int unload_module(void)
michael@202 184 +{
michael@310 185 + ast_custom_function_unregister(&backticks_function);
michael@310 186 + return ast_unregister_application(app);
michael@202 187 +}
michael@202 188 +
michael@202 189 +static int load_module(void)
michael@202 190 +{
michael@310 191 + ast_custom_function_register(&backticks_function);
michael@310 192 + return ast_register_application(app, backticks_exec, synopsis, desc);
michael@202 193 +}
michael@202 194 +
michael@310 195 +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "BACKTICKS() dialplan function");
michael@202 196 +
michael@310 197 Index: apps/app_meetme.c
michael@311 198 diff -Nau apps/app_meetme.c.orig apps/app_meetme.c
michael@362 199 --- apps/app_meetme.c.orig 2011-07-19 17:43:32.000000000 +0200
michael@362 200 +++ apps/app_meetme.c 2011-09-14 14:29:50.747960016 +0200
michael@398 201 @@ -607,6 +607,7 @@
michael@310 202
michael@398 203 /*! Do not write any audio to this channel until the state is up. */
michael@398 204 #define CONFFLAG_NO_AUDIO_UNTIL_UP (1ULL << 31)
michael@398 205 +#define CONFFLAG_USERNAME (1 << 32)
michael@398 206 /*! If set play an intro announcement at start of conference */
michael@398 207 #define CONFFLAG_INTROMSG (1ULL << 32)
michael@398 208
michael@398 209 @@ -618,6 +619,7 @@
michael@310 210 OPT_ARG_MOH_CLASS = 4,
michael@311 211 OPT_ARG_INTROMSG = 5,
michael@311 212 OPT_ARG_ARRAY_SIZE = 6,
michael@311 213 + OPT_ARG_USERNAME = 7,
michael@310 214 };
michael@310 215
michael@310 216 AST_APP_OPTIONS(meetme_opts, BEGIN_OPTIONS
michael@398 217 @@ -651,6 +653,7 @@
michael@310 218 AST_APP_OPTION('1', CONFFLAG_NOONLYPERSON ),
michael@310 219 AST_APP_OPTION_ARG('S', CONFFLAG_DURATION_STOP, OPT_ARG_DURATION_STOP),
michael@310 220 AST_APP_OPTION_ARG('L', CONFFLAG_DURATION_LIMIT, OPT_ARG_DURATION_LIMIT),
michael@310 221 + AST_APP_OPTION_ARG('n', CONFFLAG_USERNAME, OPT_ARG_USERNAME),
michael@310 222 END_OPTIONS );
michael@310 223
michael@311 224 static const char * const app = "MeetMe";
michael@398 225 @@ -2446,6 +2449,12 @@
michael@311 226 ast_test_flag64(confflags, CONFFLAG_INTROUSERNOREVIEW))) {
michael@310 227 char destdir[PATH_MAX];
michael@310 228
michael@311 229 + if (!ast_test_flag64(confflags, CONFFLAG_USERNAME)
michael@310 230 + && !ast_strlen_zero(optargs[OPT_ARG_USERNAME])
michael@310 231 + && ast_fileexists(optargs[OPT_ARG_USERNAME], NULL, NULL))
michael@310 232 + snprintf(destdir, sizeof(destdir), "%s", optargs[OPT_ARG_USERNAME]);
michael@310 233 + else {
michael@202 234 +
michael@310 235 snprintf(destdir, sizeof(destdir), "%s/meetme", ast_config_AST_SPOOL_DIR);
michael@310 236
michael@310 237 if (ast_mkdir(destdir, 0777) != 0) {
michael@398 238 @@ -2462,6 +2471,7 @@
michael@310 239 res = ast_record_review(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, NULL);
michael@310 240 if (res == -1)
michael@310 241 goto outrun;
michael@310 242 + }
michael@310 243 }
michael@310 244
michael@310 245 ast_mutex_lock(&conf->playlock);
michael@311 246 Index: apps/app_voicemail.c
michael@311 247 diff -Nau apps/app_voicemail.c.orig apps/app_voicemail.c
michael@362 248 --- apps/app_voicemail.c.orig 2011-07-26 16:04:55.000000000 +0200
michael@362 249 +++ apps/app_voicemail.c 2011-09-14 14:29:50.747960016 +0200
michael@362 250 @@ -373,6 +373,7 @@
michael@311 251 static char imapport[8];
michael@311 252 static char imapflags[128];
michael@311 253 static char imapfolder[64];
michael@311 254 +static int imapsubfold = 0;
michael@311 255 static char imapparentfolder[64] = "\0";
michael@311 256 static char greetingfolder[64];
michael@311 257 static char authuser[32];
michael@398 258 @@ -2517,7 +2518,7 @@
michael@310 259 }
michael@310 260
michael@311 261 /* Build up server information */
michael@311 262 - ast_build_string(&t, &left, "{%s:%s/imap", imapserver, imapport);
michael@311 263 + ast_build_string(&t, &left, "{%s:%s", imapserver, imapport);
michael@310 264
michael@311 265 /* Add authentication user if present */
michael@311 266 if (!ast_strlen_zero(authuser))
michael@398 267 @@ -6174,6 +6175,7 @@
michael@311 268 /* simple. huh? */
michael@311 269 char sequence[10];
michael@311 270 char mailbox[256];
michael@311 271 + char folder[256];
michael@311 272 int res;
michael@311 273
michael@311 274 /* get the real IMAP message number for this message */
michael@398 275 @@ -6189,10 +6191,24 @@
michael@311 276 mail_setflag(vms->mailstream, sequence, "\\Unseen");
michael@311 277 mail_clearflag(vms->mailstream, sequence, "\\Seen");
michael@311 278 }
michael@311 279 - if (!strcasecmp(mbox(vmu, NEW_FOLDER), vms->curbox) && (box == NEW_FOLDER || box == OLD_FOLDER)) {
michael@311 280 - ast_mutex_unlock(&vms->lock);
michael@311 281 +
michael@311 282 + if ((!strcasecmp(mbox(vmu, NEW_FOLDER), vms->curbox) || \
michael@311 283 + !strcasecmp(mbox(vmu, OLD_FOLDER), vms->curbox)) && \
michael@311 284 + (box == NEW_FOLDER || box == OLD_FOLDER)) { /* Don't copy data, */
michael@311 285 + ast_mutex_unlock(&vms->lock); /* just change Seen flag */
michael@311 286 return 0;
michael@311 287 + } else if (box != NEW_FOLDER && box != OLD_FOLDER) { /* Do copy data */
michael@311 288 + if (imapsubfold == 1) /* using INBOX or subfolder */
michael@311 289 + snprintf(folder, sizeof(folder), "%s%c%s", imapfolder, delimiter, mbox(vmu, box));
michael@311 290 + else
michael@311 291 + strncpy(folder, mbox(vmu, box), sizeof(folder));
michael@311 292 + int res = !mail_copy(vms->mailstream,sequence,folder);
michael@311 293 + ast_mutex_unlock(&vms->lock);
michael@311 294 + return res;
michael@311 295 + } else { /* Copy data to INBOX delegating new/old status to Seen flag */
michael@311 296 + int res = !mail_copy(vms->mailstream,sequence,imapfolder);
michael@311 297 }
michael@311 298 +
michael@311 299 /* Create the folder if it don't exist */
michael@311 300 imap_mailbox_name(mailbox, sizeof(mailbox), vms, box, 1); /* Get the full mailbox name */
michael@311 301 ast_debug(5, "Checking if folder exists: %s\n", mailbox);
michael@398 302 @@ -10467,6 +10483,10 @@
michael@311 303 #ifndef IMAP_STORAGE
michael@311 304 } else if (!cmd) {
michael@311 305 vms.deleted[vms.curmsg] = 1;
michael@311 306 +#else
michael@311 307 + } else if (!cmd && (folder_int(vms.curbox) > 1 || box > 1)) {
michael@311 308 + vms.deleted[vms.curmsg] = 1; /* Enforce deletion after */
michael@311 309 + deleted = 1; /* successful copy op */
michael@311 310 #endif
michael@311 311 } else {
michael@311 312 vms.deleted[vms.curmsg] = 0;
michael@398 313 @@ -11963,6 +11983,15 @@
michael@311 314 } else {
michael@311 315 ast_copy_string(imapfolder, "INBOX", sizeof(imapfolder));
michael@311 316 }
michael@311 317 + /* IMAP saved (sub)folder location policy */
michael@311 318 + if ((val = ast_variable_retrieve(cfg, "general", "imapsubfold"))) {
michael@311 319 + if (ast_false(val))
michael@311 320 + imapsubfold = 0;
michael@311 321 + else
michael@311 322 + imapsubfold = 1;
michael@311 323 + } else {
michael@311 324 + imapsubfold = 0;
michael@311 325 + }
michael@311 326 if ((val = ast_variable_retrieve(cfg, "general", "imapparentfolder"))) {
michael@311 327 ast_copy_string(imapparentfolder, val, sizeof(imapparentfolder));
michael@311 328 }
michael@362 329 Index: cdr/cdr_radius.c
michael@362 330 diff -Nau cdr/cdr_radius.c.orig cdr/cdr_radius.c
michael@362 331 --- cdr/cdr_radius.c.orig 2011-07-14 22:13:06.000000000 +0200
michael@362 332 +++ cdr/cdr_radius.c 2011-09-14 14:29:50.777958246 +0200
michael@362 333 @@ -106,10 +106,18 @@
michael@362 334 if (!rc_avpair_add(rh, tosend, PW_AST_SRC, &cdr->src, strlen(cdr->src), VENDOR_CODE))
michael@362 335 return -1;
michael@362 336
michael@362 337 + /* RADIUS standard identifier patch */
michael@362 338 + if (!rc_avpair_add(rh, tosend, PW_CALLING_STATION_ID, &cdr->src, strlen(cdr->src), 0))
michael@362 339 + return -1;
michael@362 340 +
michael@362 341 /* Destination */
michael@362 342 if (!rc_avpair_add(rh, tosend, PW_AST_DST, &cdr->dst, strlen(cdr->dst), VENDOR_CODE))
michael@362 343 return -1;
michael@362 344
michael@362 345 + /* RADIUS standard identifier patch */
michael@362 346 + if (!rc_avpair_add(rh, tosend, PW_CALLED_STATION_ID, &cdr->dst, strlen(cdr->dst), 0))
michael@362 347 + return -1;
michael@362 348 +
michael@362 349 /* Destination context */
michael@362 350 if (!rc_avpair_add(rh, tosend, PW_AST_DST_CTX, &cdr->dcontext, strlen(cdr->dcontext), VENDOR_CODE))
michael@362 351 return -1;
michael@362 352 @@ -164,6 +172,10 @@
michael@362 353 if (!rc_avpair_add(rh, tosend, PW_AST_BILL_SEC, &cdr->billsec, 0, VENDOR_CODE))
michael@362 354 return -1;
michael@362 355
michael@362 356 + /* RADIUS standard identifier patch */
michael@362 357 + if (!rc_avpair_add(rh, tosend, PW_ACCT_SESSION_TIME, &cdr->billsec, 0, 0))
michael@362 358 + return -1;
michael@362 359 +
michael@362 360 /* Disposition */
michael@362 361 tmp = ast_cdr_disp2str(cdr->disposition);
michael@362 362 if (!rc_avpair_add(rh, tosend, PW_AST_DISPOSITION, tmp, strlen(tmp), VENDOR_CODE))
michael@362 363 @@ -187,10 +199,14 @@
michael@362 364 }
michael@362 365
michael@362 366 /* Setting Acct-Session-Id & User-Name attributes for proper generation
michael@362 367 - of Acct-Unique-Session-Id on server side */
michael@362 368 - /* Channel */
michael@362 369 - if (!rc_avpair_add(rh, tosend, PW_USER_NAME, &cdr->channel, strlen(cdr->channel), 0))
michael@362 370 - return -1;
michael@362 371 + of Acct-Unique-Session-Id on server side Channel */
michael@362 372 + {
michael@362 373 + char szChanuser[PATH_MAX] = {0};
michael@362 374 + strncpy(szChanuser, &cdr->channel, PATH_MAX-1);
michael@362 375 + *(strrchr(szChanuser, '-')) = 0;
michael@362 376 + if (!rc_avpair_add(rh, tosend, PW_USER_NAME, szChanuser, strlen(cdr->channel), 0))
michael@362 377 + return -1;
michael@362 378 + }
michael@362 379
michael@362 380 /* Unique ID */
michael@362 381 if (!rc_avpair_add(rh, tosend, PW_ACCT_SESSION_ID, &cdr->uniqueid, strlen(cdr->uniqueid), 0))
michael@362 382 Index: chan_capi-1.1.5.20110914/chan_capi20.h
michael@362 383 diff -Nau chan_capi-1.1.5.20110914/chan_capi20.h.orig chan_capi-1.1.5.20110914/chan_capi20.h
michael@362 384 --- chan_capi-1.1.5.20110914/chan_capi20.h.orig 2011-01-07 02:29:32.000000000 +0100
michael@362 385 +++ chan_capi-1.1.5.20110914/chan_capi20.h 2011-05-23 17:35:28.348531751 +0200
michael@311 386 @@ -4,10 +4,13 @@
michael@311 387 * first. Else the checks below will fail.
michael@311 388 */
michael@311 389
michael@311 390 +#include <stddef.h>
michael@311 391 #include <capi20.h>
michael@310 392
michael@310 393 #undef CAPI_OS_HINT
michael@310 394
michael@310 395 +#ifndef USE_OWN_LIBCAPI
michael@310 396 +
michael@310 397 #if (defined(__FreeBSD__) || defined(__OpenBSD__) || \
michael@310 398 defined(__NetBSD__) || defined(__APPLE__))
michael@310 399
michael@311 400 @@ -29,6 +32,8 @@
michael@310 401 #include <capiutils.h>
michael@310 402 #endif /* BSD */
michael@310 403
michael@202 404 +#endif
michael@202 405 +
michael@310 406 #ifndef HEADER_CID
michael@310 407 #define HEADER_CID(x) ((x)->adr.adrNCCI)
michael@310 408 #endif
michael@362 409 Index: chan_capi-1.1.5.20110914/chan_capi_utils.c
michael@362 410 diff -Nau chan_capi-1.1.5.20110914/chan_capi_utils.c.orig chan_capi-1.1.5.20110914/chan_capi_utils.c
michael@362 411 --- chan_capi-1.1.5.20110914/chan_capi_utils.c.orig 2011-01-07 02:29:32.000000000 +0100
michael@362 412 +++ chan_capi-1.1.5.20110914/chan_capi_utils.c 2011-05-23 17:35:28.348531751 +0200
michael@362 413 @@ -1158,6 +1158,9 @@
michael@310 414 {
michael@310 415 MESSAGE_EXCHANGE_ERROR error;
michael@310 416 int waitcount = 50;
michael@310 417 +#ifndef CAPI_MANUFACTURER_LEN
michael@310 418 +#define CAPI_MANUFACTURER_LEN 64
michael@310 419 +#endif
michael@310 420 unsigned char manbuf[CAPI_MANUFACTURER_LEN];
michael@310 421 _cmsg CMSG;
michael@310 422
michael@362 423 Index: chan_capi-1.1.5.20110914/libcapi20/capi20.c
michael@362 424 diff -Nau chan_capi-1.1.5.20110914/libcapi20/capi20.c.orig chan_capi-1.1.5.20110914/libcapi20/capi20.c
michael@362 425 --- chan_capi-1.1.5.20110914/libcapi20/capi20.c.orig 2011-01-07 02:29:31.000000000 +0100
michael@362 426 +++ chan_capi-1.1.5.20110914/libcapi20/capi20.c 2011-05-23 17:35:28.348531751 +0200
michael@310 427 @@ -19,8 +19,10 @@
michael@310 428 #include <stdio.h>
michael@310 429 #include <ctype.h>
michael@310 430 #include <assert.h>
michael@310 431 +#ifdef __linux__
michael@310 432 #define _LINUX_LIST_H
michael@310 433 #include <linux/capi.h>
michael@310 434 +#endif
michael@310 435
michael@310 436 #include <sys/socket.h>
michael@310 437 #include <netinet/in.h>
michael@310 438 @@ -48,17 +50,23 @@
michael@310 439
michael@310 440 #define SEND_BUFSIZ (128+2048)
michael@310 441
michael@202 442 +#if 0
michael@310 443 static char capidevname[] = "/dev/capi20";
michael@310 444 static char capidevnamenew[] = "/dev/isdn/capi20";
michael@310 445 +#endif
michael@310 446
michael@310 447 static int capi_fd = -1;
michael@310 448 +#if 0
michael@310 449 static capi_ioctl_struct ioctl_data;
michael@310 450 +#endif
michael@310 451
michael@310 452 static int remote_capi;
michael@310 453 +#if 0
michael@310 454 static char *globalconfigfilename = "/etc/capi20.conf";
michael@310 455 static char *userconfigfilename = ".capi20rc";
michael@310 456 static unsigned short int port;
michael@310 457 static char hostname[1024];
michael@310 458 +#endif
michael@310 459 static int tracelevel;
michael@310 460 static char *tracefile;
michael@310 461
michael@310 462 @@ -77,17 +85,21 @@
michael@310 463 #define RCAPI_AUTH_USER_REQ CAPICMD(0xff, 0x00)
michael@310 464 #define RCAPI_AUTH_USER_CONF CAPICMD(0xff, 0x01)
michael@310 465
michael@310 466 +#if 0
michael@310 467 static char *skip_whitespace(char *s)
michael@310 468 {
michael@310 469 while (*s && isspace(*s)) s++;
michael@310 470 return s;
michael@310 471 }
michael@310 472 +#endif
michael@310 473
michael@310 474 +#if 0
michael@310 475 static char *skip_nonwhitespace(char *s)
michael@310 476 {
michael@310 477 while (*s && !isspace(*s)) s++;
michael@310 478 return s;
michael@310 479 }
michael@310 480 +#endif
michael@310 481
michael@310 482 static unsigned char get_byte(unsigned char **p)
michael@310 483 {
michael@310 484 @@ -95,10 +107,12 @@
michael@310 485 return((unsigned char)*(*p - 1));
michael@310 486 }
michael@310 487
michael@310 488 +#if 0
michael@310 489 static unsigned short get_word(unsigned char **p)
michael@310 490 {
michael@310 491 return(get_byte(p) | (get_byte(p) << 8));
michael@310 492 }
michael@310 493 +#endif
michael@310 494
michael@310 495 static unsigned short get_netword(unsigned char **p)
michael@310 496 {
michael@310 497 @@ -144,6 +158,7 @@
michael@310 498 * read config file
michael@310 499 */
michael@310 500
michael@310 501 +#if 0
michael@310 502 static int read_config(void)
michael@310 503 {
michael@310 504 FILE *fp = NULL;
michael@310 505 @@ -197,11 +212,13 @@
michael@310 506 fclose(fp);
michael@310 507 return(1);
michael@310 508 }
michael@310 509 +#endif
michael@310 510
michael@310 511 /*
michael@310 512 * socket function
michael@310 513 */
michael@310 514
michael@310 515 +#if 0
michael@310 516 static int open_socket(void)
michael@310 517 {
michael@310 518 int fd;
michael@310 519 @@ -225,6 +242,7 @@
michael@310 520 close(fd);
michael@310 521 return(-1);
michael@310 522 }
michael@310 523 +#endif
michael@310 524
michael@310 525 static int socket_read(int fd, unsigned char *buf, int l)
michael@310 526 {
michael@310 527 @@ -328,6 +346,8 @@
michael@310 528 if (likely(capi_fd >= 0))
michael@310 529 return CapiNoError;
michael@310 530
michael@310 531 +#if 0
michael@310 532 +
michael@310 533 /*----- open managment link -----*/
michael@310 534 if (read_config() && (remote_capi)) {
michael@310 535 capi_fd = open_socket();
michael@310 536 @@ -347,6 +367,8 @@
michael@310 537 if (ioctl(capi_fd, CAPI_INSTALLED, 0) == 0)
michael@310 538 return CapiNoError;
michael@310 539
michael@202 540 +#endif
michael@202 541 +
michael@310 542 return CapiRegNotInstalled;
michael@310 543 }
michael@310 544
michael@310 545 @@ -421,6 +443,7 @@
michael@310 546 unsigned char *bufferstart;
michael@310 547 };
michael@310 548
michael@310 549 +#if 0
michael@310 550 static struct applinfo *alloc_buffers(
michael@310 551 unsigned MaxB3Connection,
michael@310 552 unsigned MaxB3Blks,
michael@310 553 @@ -459,6 +482,7 @@
michael@310 554 ap->lastfree->next = 0;
michael@310 555 return ap;
michael@310 556 }
michael@202 557 +#endif
michael@310 558
michael@310 559 static void free_buffers(struct applinfo *ap)
michael@310 560 {
michael@310 561 @@ -576,14 +600,17 @@
michael@310 562 unsigned MaxSizeB3,
michael@310 563 unsigned *ApplID)
michael@310 564 {
michael@310 565 +#if 0
michael@310 566 int applid = 0;
michael@310 567 char buf[PATH_MAX];
michael@310 568 int i, fd = -1;
michael@310 569
michael@310 570 *ApplID = 0;
michael@310 571 +#endif
michael@310 572
michael@310 573 if (capi20_isinstalled() != CapiNoError)
michael@310 574 return CapiRegNotInstalled;
michael@310 575 +#if 0
michael@310 576 if ((!remote_capi) || ((remote_capi) && ((fd = open_socket()) < 0))) {
michael@310 577 if ((fd = open(capidevname, O_RDWR|O_NONBLOCK, 0666)) < 0 &&
michael@310 578 (errno == ENOENT)) {
michael@310 579 @@ -621,6 +648,8 @@
michael@310 580 close(fd);
michael@310 581 return(errcode);
michael@310 582 }
michael@310 583 + }
michael@310 584 +#if 0
michael@310 585 } else if ((applid = ioctl(fd, CAPI_REGISTER, &ioctl_data)) < 0) {
michael@310 586 if (errno == EIO) {
michael@310 587 if (ioctl(fd, CAPI_GET_ERRCODE, &ioctl_data) < 0) {
michael@310 588 @@ -666,6 +695,7 @@
michael@310 589 applid = alloc_applid(fd);
michael@310 590 } // end old driver compatibility
michael@310 591 }
michael@310 592 +#endif
michael@310 593 if (remember_applid(applid, fd) < 0) {
michael@310 594 close(fd);
michael@310 595 return CapiRegOSResourceErr;
michael@310 596 @@ -676,6 +706,7 @@
michael@310 597 return CapiRegOSResourceErr;
michael@310 598 }
michael@310 599 *ApplID = applid;
michael@310 600 +#endif
michael@310 601 return CapiNoError;
michael@310 602 }
michael@310 603
michael@310 604 @@ -784,11 +815,15 @@
michael@310 605 ret = CapiIllAppNr;
michael@310 606 break;
michael@310 607 case EIO:
michael@310 608 +#if 0
michael@310 609 if (ioctl(fd, CAPI_GET_ERRCODE, &ioctl_data) < 0) {
michael@310 610 +#endif
michael@310 611 ret = CapiMsgOSResourceErr;
michael@310 612 +#if 0
michael@310 613 } else {
michael@310 614 ret = (unsigned)ioctl_data.errcode;
michael@310 615 }
michael@310 616 +#endif
michael@310 617 break;
michael@310 618 default:
michael@310 619 ret = CapiMsgOSResourceErr;
michael@310 620 @@ -842,7 +877,7 @@
michael@310 621 rcvbuf[15] = (data >> 24) & 0xff;
michael@310 622 } else {
michael@310 623 u_int64_t data;
michael@310 624 - ulong radr = (ulong)rcvbuf;
michael@310 625 + unsigned long radr = (unsigned long)rcvbuf;
michael@310 626 if (CAPIMSG_LEN(rcvbuf) < 30) {
michael@310 627 /*
michael@310 628 * grr, 64bit arch, but no data64 included,
michael@310 629 @@ -899,6 +934,9 @@
michael@310 630 {
michael@310 631 if (capi20_isinstalled() != CapiNoError)
michael@310 632 return 0;
michael@310 633 +#ifndef CAPI_MANUFACTURER_LEN
michael@310 634 +#define CAPI_MANUFACTURER_LEN 64
michael@310 635 +#endif
michael@310 636
michael@310 637 if (remote_capi) {
michael@310 638 unsigned char buf[100];
michael@310 639 @@ -911,15 +949,19 @@
michael@310 640 return Buf;
michael@310 641 }
michael@310 642
michael@310 643 +#if 0
michael@310 644 ioctl_data.contr = Ctrl;
michael@310 645
michael@310 646 if (ioctl(capi_fd, CAPI_GET_MANUFACTURER, &ioctl_data) < 0)
michael@310 647 +#endif
michael@310 648 return 0;
michael@310 649
michael@310 650 +#if 0
michael@310 651 memcpy(Buf, ioctl_data.manufacturer, CAPI_MANUFACTURER_LEN);
michael@310 652 Buf[CAPI_MANUFACTURER_LEN-1] = 0;
michael@310 653
michael@310 654 return Buf;
michael@310 655 +#endif
michael@310 656 }
michael@310 657
michael@310 658 unsigned char *
michael@310 659 @@ -934,16 +976,20 @@
michael@310 660 set_rcapicmd_header(&p, 14, RCAPI_GET_VERSION_REQ, Ctrl);
michael@310 661 if(!(remote_command(capi_fd, buf, 14, RCAPI_GET_VERSION_CONF)))
michael@310 662 return 0;
michael@310 663 - memcpy(Buf, buf + 1, sizeof(capi_version));
michael@310 664 + memcpy(Buf, buf + 1, 128 /* sizeof(capi_version) */);
michael@310 665 return Buf;
michael@310 666 }
michael@310 667
michael@310 668 +#if 0
michael@310 669 ioctl_data.contr = Ctrl;
michael@310 670 if (ioctl(capi_fd, CAPI_GET_VERSION, &ioctl_data) < 0) {
michael@310 671 +#endif
michael@310 672 return 0;
michael@310 673 +#if 0
michael@310 674 }
michael@310 675 memcpy(Buf, &ioctl_data.version, sizeof(capi_version));
michael@310 676 return Buf;
michael@310 677 +#endif
michael@310 678 }
michael@310 679
michael@310 680 unsigned char *
michael@310 681 @@ -952,6 +998,10 @@
michael@310 682 if (capi20_isinstalled() != CapiNoError)
michael@310 683 return 0;
michael@310 684
michael@310 685 +#ifndef CAPI_SERIAL_LEN
michael@310 686 +#define CAPI_SERIAL_LEN 8
michael@202 687 +#endif
michael@202 688 +
michael@310 689 if (remote_capi) {
michael@310 690 unsigned char buf[100];
michael@310 691 unsigned char *p = buf;
michael@310 692 @@ -963,15 +1013,19 @@
michael@310 693 return Buf;
michael@310 694 }
michael@310 695
michael@310 696 +#if 0
michael@310 697 ioctl_data.contr = Ctrl;
michael@310 698
michael@310 699 if (ioctl(capi_fd, CAPI_GET_SERIAL, &ioctl_data) < 0)
michael@202 700 +#endif
michael@310 701 return 0;
michael@310 702
michael@202 703 +#if 0
michael@310 704 memcpy(Buf, &ioctl_data.serial, CAPI_SERIAL_LEN);
michael@310 705 Buf[CAPI_SERIAL_LEN-1] = 0;
michael@310 706
michael@310 707 return Buf;
michael@202 708 +#endif
michael@202 709 }
michael@202 710
michael@310 711 unsigned
michael@311 712 @@ -1018,6 +1072,7 @@
michael@310 713 sizeof(ioctl_data.profile.ncontroller));
michael@202 714 }
michael@310 715 return CapiNoError;
michael@310 716 +#endif
michael@310 717 }
michael@310 718 /*
michael@310 719 * functions added to the CAPI2.0 spec
michael@362 720 Index: chan_capi-1.1.5.20110914/libcapi20/convert.c
michael@362 721 diff -Nau chan_capi-1.1.5.20110914/libcapi20/convert.c.orig chan_capi-1.1.5.20110914/libcapi20/convert.c
michael@362 722 --- chan_capi-1.1.5.20110914/libcapi20/convert.c.orig 2011-01-07 02:29:31.000000000 +0100
michael@362 723 +++ chan_capi-1.1.5.20110914/libcapi20/convert.c 2011-05-23 17:35:28.348531751 +0200
michael@310 724 @@ -11,7 +11,14 @@
michael@310 725 #include <stddef.h>
michael@310 726 #include <time.h>
michael@310 727 #include <ctype.h>
michael@310 728 +#ifdef __FreeBSD__
michael@310 729 +#include <sys/endian.h>
michael@310 730 +#define bswap_16 bswap16
michael@310 731 +#define bswap_32 bswap32
michael@310 732 +#define bswap_64 bswap64
michael@310 733 +#else
michael@310 734 #include <byteswap.h>
michael@310 735 +#endif
michael@310 736
michael@310 737 #include "capi20.h"
michael@310 738
michael@362 739 Index: chan_capi-1.1.5.20110914/Makefile
michael@362 740 diff -Nau chan_capi-1.1.5.20110914/Makefile.orig chan_capi-1.1.5.20110914/Makefile
michael@362 741 --- chan_capi-1.1.5.20110914/Makefile.orig 2011-01-07 02:29:32.000000000 +0100
michael@362 742 +++ chan_capi-1.1.5.20110914/Makefile 2011-05-23 17:35:28.348531751 +0200
michael@362 743 @@ -114,6 +114,9 @@
michael@311 744 CFLAGS+=-O2
michael@311 745 CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
michael@311 746 CFLAGS+=$(shell if uname -m | grep -q "ppc\|arm\|s390"; then echo "-fsigned-char"; fi)
michael@311 747 +ifeq (${USE_OWN_LIBCAPI},yes)
michael@311 748 +CFLAGS+=-DUSE_OWN_LIBCAPI
michael@311 749 +endif
michael@311 750 ifeq (${DIVA_STREAMING},1)
michael@311 751 CFLAGS += -DDIVA_STREAMING=1
michael@311 752 endif
michael@311 753 Index: channels/chan_sip.c
michael@311 754 diff -Nau channels/chan_sip.c.orig channels/chan_sip.c
michael@362 755 --- channels/chan_sip.c.orig 2011-08-10 00:12:59.000000000 +0200
michael@362 756 +++ channels/chan_sip.c 2011-09-14 14:29:50.757959000 +0200
michael@398 757 @@ -11650,7 +11650,16 @@
michael@311 758 } else {
michael@311 759 if (sipmethod == SIP_NOTIFY && !ast_strlen_zero(p->theirtag)) {
michael@311 760 /* If this is a NOTIFY, use the From: tag in the subscribe (RFC 3265) */
michael@311 761 - snprintf(to, sizeof(to), "<%s%s>;tag=%s", (strncasecmp(p->uri, "sip:", 4) ? "sip:" : ""), p->uri, p->theirtag);
michael@311 762 + if (strncasecmp(p->uri, "sip:", strlen("sip:")))
michael@311 763 + if (strncasecmp(p->uri, "sips:", strlen("sips:")))
michael@311 764 + if (p->socket.type == SIP_TRANSPORT_TLS)
michael@311 765 + snprintf(to, sizeof(to), "<%s%s>;tag=%s", "sips:", p->uri, p->theirtag);
michael@311 766 + else
michael@311 767 + snprintf(to, sizeof(to), "<%s%s>;tag=%s", "sips:", p->uri, p->theirtag);
michael@311 768 + else /* if (strncasecmp(p->uri, "sips:"... */
michael@311 769 + snprintf(to, sizeof(to), "<%s%s>;tag=%s", "", p->uri, p->theirtag);
michael@311 770 + else /* if (strncasecmp(p->uri, "sip:"... */
michael@311 771 + snprintf(to, sizeof(to), "<%s%s>;tag=%s", "", p->uri, p->theirtag);
michael@311 772 } else if (p->options && p->options->vxml_url) {
michael@311 773 /* If there is a VXML URL append it to the SIP URL */
michael@311 774 snprintf(to, sizeof(to), "<%s>;%s", p->uri, p->options->vxml_url);
michael@310 775 Index: channels/console_video.h
michael@311 776 diff -Nau channels/console_video.h.orig channels/console_video.h
michael@310 777 --- channels/console_video.h.orig 2008-06-30 17:45:15.000000000 +0200
michael@362 778 +++ channels/console_video.h 2011-09-14 14:29:50.767970949 +0200
michael@310 779 @@ -28,10 +28,7 @@
michael@310 780 "console {device}"
michael@310 781 #else
michael@310 782
michael@310 783 -#include <ffmpeg/avcodec.h>
michael@310 784 -#ifndef OLD_FFMPEG
michael@310 785 -#include <ffmpeg/swscale.h> /* requires a recent ffmpeg */
michael@310 786 -#endif
michael@310 787 +#include <libavcoded/avcodec.h>
michael@310 788
michael@310 789 #define CONSOLE_VIDEO_CMDS \
michael@310 790 "console {videodevice|videocodec" \
michael@310 791 Index: configure
michael@311 792 diff -Nau configure.orig configure
michael@362 793 --- configure.orig 2011-08-25 21:08:04.000000000 +0200
michael@362 794 +++ configure 2011-09-14 14:29:50.767970949 +0200
michael@398 795 @@ -4244,11 +4244,6 @@
michael@311 796 esac
michael@310 797
michael@310 798 case "${host_os}" in
michael@310 799 - freebsd*)
michael@347 800 - ac_default_prefix=/usr/local
michael@310 801 - CPPFLAGS=-I/usr/local/include
michael@310 802 - LDFLAGS=-L/usr/local/lib
michael@310 803 - ;;
michael@310 804 openbsd*)
michael@347 805 ac_default_prefix=/usr/local
michael@310 806 if test ${prefix} = '/usr/local' || test ${prefix} = 'NONE'; then
michael@398 807 @@ -29617,8 +29612,8 @@
michael@311 808 if test -f "${IMAP_TK_DIR}/c-client/LDFLAGS"; then
michael@311 809 imap_ldflags=`cat ${IMAP_TK_DIR}/c-client/LDFLAGS`
michael@311 810 fi
michael@311 811 - imap_libs="${IMAP_TK_DIR}/c-client/c-client.a"
michael@311 812 - imap_include="-I${IMAP_TK_DIR}/c-client"
michael@311 813 + imap_libs="-limap -lssl -lcrypto -lcrypt"
michael@311 814 + imap_include="-DUSE_SYSTEM_IMAP -I${IMAP_TK_DIR}/include/imap"
michael@311 815 CPPFLAGS="${CPPFLAGS} ${imap_include}"
michael@311 816 LIBS="${LIBS} ${imap_libs} "`echo ${imap_ldflags}`
michael@398 817 cat >conftest.$ac_ext <<_ACEOF
michael@398 818 @@ -47493,7 +47488,7 @@
michael@311 819 pbxlibdir="-L${SQLITE_DIR}"
michael@311 820 fi
michael@311 821 fi
michael@311 822 - pbxfuncname="sqlite_exec"
michael@311 823 + pbxfuncname="sqlite3_exec"
michael@311 824 if test "x${pbxfuncname}" = "x" ; then # empty lib, assume only headers
michael@311 825 AST_SQLITE_FOUND=yes
michael@311 826 else
michael@398 827 @@ -49185,16 +49180,16 @@
michael@311 828 if test "x${PBX_GMIME}" != "x1" -a "${USE_GMIME}" != "no"; then
michael@311 829 PBX_GMIME=0
michael@311 830 if test -n "$ac_tool_prefix"; then
michael@311 831 - # Extract the first word of "${ac_tool_prefix}gmime-config", so it can be a program name with args.
michael@311 832 -set dummy ${ac_tool_prefix}gmime-config; ac_word=$2
michael@398 833 + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
michael@398 834 +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
michael@398 835 { echo "$as_me:$LINENO: checking for $ac_word" >&5
michael@398 836 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
michael@398 837 -if test "${ac_cv_path_CONFIG_GMIME+set}" = set; then
michael@398 838 +if test "${ac_cv_path_PKGCONFIG+set}" = set; then
michael@398 839 echo $ECHO_N "(cached) $ECHO_C" >&6
michael@311 840 else
michael@311 841 - case $CONFIG_GMIME in
michael@311 842 + case $PKGCONFIG in
michael@311 843 [\\/]* | ?:[\\/]*)
michael@311 844 - ac_cv_path_CONFIG_GMIME="$CONFIG_GMIME" # Let the user override the test with a path.
michael@311 845 + ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
michael@311 846 ;;
michael@311 847 *)
michael@311 848 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
michael@398 849 @@ -49205,7 +49200,7 @@
michael@311 850 test -z "$as_dir" && as_dir=.
michael@398 851 for ac_exec_ext in '' $ac_executable_extensions; do
michael@311 852 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
michael@311 853 - ac_cv_path_CONFIG_GMIME="$as_dir/$ac_word$ac_exec_ext"
michael@311 854 + ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
michael@398 855 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
michael@311 856 break 2
michael@311 857 fi
michael@398 858 @@ -49216,10 +49211,10 @@
michael@311 859 ;;
michael@311 860 esac
michael@311 861 fi
michael@311 862 -CONFIG_GMIME=$ac_cv_path_CONFIG_GMIME
michael@311 863 -if test -n "$CONFIG_GMIME"; then
michael@398 864 - { echo "$as_me:$LINENO: result: $CONFIG_GMIME" >&5
michael@398 865 -echo "${ECHO_T}$CONFIG_GMIME" >&6; }
michael@311 866 +PKGCONFIG=$ac_cv_path_PKGCONFIG
michael@311 867 +if test -n "$PKGCONFIG"; then
michael@398 868 + { echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
michael@398 869 +echo "${ECHO_T}$PKGCONFIG" >&6; }
michael@311 870 else
michael@398 871 { echo "$as_me:$LINENO: result: no" >&5
michael@398 872 echo "${ECHO_T}no" >&6; }
michael@398 873 @@ -49227,18 +49222,18 @@
michael@311 874
michael@311 875
michael@311 876 fi
michael@311 877 -if test -z "$ac_cv_path_CONFIG_GMIME"; then
michael@311 878 - ac_pt_CONFIG_GMIME=$CONFIG_GMIME
michael@311 879 - # Extract the first word of "gmime-config", so it can be a program name with args.
michael@311 880 -set dummy gmime-config; ac_word=$2
michael@311 881 +if test -z "$ac_cv_path_PKGCONFIG"; then
michael@311 882 + ac_pt_PKGCONFIG=$PKGCONFIG
michael@311 883 + # Extract the first word of "pkg-config", so it can be a program name with args.
michael@311 884 +set dummy pkg-config; ac_word=$2
michael@398 885 { echo "$as_me:$LINENO: checking for $ac_word" >&5
michael@398 886 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
michael@398 887 -if test "${ac_cv_path_ac_pt_CONFIG_GMIME+set}" = set; then
michael@398 888 +if test "${ac_cv_path_ac_pt_PKGCONFIG+set}" = set; then
michael@398 889 echo $ECHO_N "(cached) $ECHO_C" >&6
michael@311 890 else
michael@311 891 - case $ac_pt_CONFIG_GMIME in
michael@311 892 + case $ac_pt_PKGCONFIG in
michael@311 893 [\\/]* | ?:[\\/]*)
michael@311 894 - ac_cv_path_ac_pt_CONFIG_GMIME="$ac_pt_CONFIG_GMIME" # Let the user override the test with a path.
michael@311 895 + ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
michael@311 896 ;;
michael@311 897 *)
michael@311 898 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
michael@398 899 @@ -49249,7 +49244,7 @@
michael@311 900 test -z "$as_dir" && as_dir=.
michael@398 901 for ac_exec_ext in '' $ac_executable_extensions; do
michael@311 902 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
michael@311 903 - ac_cv_path_ac_pt_CONFIG_GMIME="$as_dir/$ac_word$ac_exec_ext"
michael@311 904 + ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
michael@398 905 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
michael@311 906 break 2
michael@311 907 fi
michael@398 908 @@ -49260,17 +49255,17 @@
michael@311 909 ;;
michael@311 910 esac
michael@311 911 fi
michael@311 912 -ac_pt_CONFIG_GMIME=$ac_cv_path_ac_pt_CONFIG_GMIME
michael@311 913 -if test -n "$ac_pt_CONFIG_GMIME"; then
michael@398 914 - { echo "$as_me:$LINENO: result: $ac_pt_CONFIG_GMIME" >&5
michael@398 915 -echo "${ECHO_T}$ac_pt_CONFIG_GMIME" >&6; }
michael@311 916 +ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
michael@311 917 +if test -n "$ac_pt_PKGCONFIG"; then
michael@398 918 + { echo "$as_me:$LINENO: result: $ac_pt_PKGCONFIG" >&5
michael@398 919 +echo "${ECHO_T}$ac_pt_PKGCONFIG" >&6; }
michael@311 920 else
michael@398 921 { echo "$as_me:$LINENO: result: no" >&5
michael@398 922 echo "${ECHO_T}no" >&6; }
michael@311 923 fi
michael@311 924
michael@311 925 - if test "x$ac_pt_CONFIG_GMIME" = x; then
michael@311 926 - CONFIG_GMIME="No"
michael@311 927 + if test "x$ac_pt_PKGCONFIG" = x; then
michael@311 928 + PKGCONFIG="No"
michael@311 929 else
michael@311 930 case $cross_compiling:$ac_tool_warned in
michael@311 931 yes:)
michael@398 932 @@ -49282,22 +49277,17 @@
michael@398 933 configuration is useful to you, please write to autoconf@gnu.org." >&2;}
michael@311 934 ac_tool_warned=yes ;;
michael@311 935 esac
michael@311 936 - CONFIG_GMIME=$ac_pt_CONFIG_GMIME
michael@311 937 + PKGCONFIG=$ac_pt_PKGCONFIG
michael@311 938 fi
michael@311 939 else
michael@311 940 - CONFIG_GMIME="$ac_cv_path_CONFIG_GMIME"
michael@311 941 + PKGCONFIG="$ac_cv_path_PKGCONFIG"
michael@311 942 fi
michael@311 943
michael@311 944 - if test ! "x${CONFIG_GMIME}" = xNo; then
michael@311 945 - if test x"" = x ; then A=--cflags ; else A="" ; fi
michael@311 946 - GMIME_INCLUDE=$(${CONFIG_GMIME} $A)
michael@311 947 - if test x"" = x ; then A=--libs ; else A="" ; fi
michael@311 948 - GMIME_LIB=$(${CONFIG_GMIME} $A)
michael@311 949 + if test ! "x${PKGCONFIG}" = xNo; then
michael@311 950 + GMIME_INCLUDE=$(${PKGCONFIG} gmime-2.4 --cflags 2>/dev/null)
michael@311 951 + GMIME_LIB=$(${PKGCONFIG} gmime-2.4 --libs)
michael@311 952 if test x"#include <gmime/gmime.h>" != x ; then
michael@311 953 saved_cppflags="${CPPFLAGS}"
michael@398 954 - if test "x${GMIME_DIR}" != "x"; then
michael@398 955 - GMIME_INCLUDE="-I${GMIME_DIR}/include"
michael@398 956 - fi
michael@398 957 CPPFLAGS="${CPPFLAGS} ${GMIME_INCLUDE}"
michael@398 958
michael@398 959 saved_libs="${LIBS}"
michael@311 960 Index: formats/format_pcm.c
michael@311 961 diff -Nau formats/format_pcm.c.orig formats/format_pcm.c
michael@362 962 --- formats/format_pcm.c.orig 2011-07-14 22:13:06.000000000 +0200
michael@362 963 +++ formats/format_pcm.c 2011-09-14 14:29:50.767970949 +0200
michael@362 964 @@ -354,6 +354,7 @@
michael@311 965 ast_log(LOG_WARNING, "Unable to write header\n");
michael@311 966 return -1;
michael@311 967 }
michael@311 968 + fflush(f); /* issues.asterisk.org bug 0016610 */
michael@311 969 return 0;
michael@311 970 }
michael@311 971
michael@311 972 Index: formats/format_wav.c
michael@311 973 diff -Nau formats/format_wav.c.orig formats/format_wav.c
michael@362 974 --- formats/format_wav.c.orig 2011-07-29 19:18:56.000000000 +0200
michael@362 975 +++ formats/format_wav.c 2011-09-14 14:29:50.767970949 +0200
michael@362 976 @@ -308,6 +308,7 @@
michael@311 977 ast_log(LOG_WARNING, "Unable to write header\n");
michael@311 978 return -1;
michael@311 979 }
michael@311 980 + fflush(f); /* issues.asterisk.org bug 0016610 */
michael@311 981 return 0;
michael@311 982 }
michael@311 983
michael@311 984 Index: formats/format_wav_gsm.c
michael@311 985 diff -Nau formats/format_wav_gsm.c.orig formats/format_wav_gsm.c
michael@362 986 --- formats/format_wav_gsm.c.orig 2011-07-14 22:13:06.000000000 +0200
michael@362 987 +++ formats/format_wav_gsm.c 2011-09-14 14:29:50.767970949 +0200
michael@362 988 @@ -366,6 +366,7 @@
michael@311 989 ast_log(LOG_WARNING, "Unable to write header\n");
michael@311 990 return -1;
michael@311 991 }
michael@311 992 + fflush(f); /* issues.asterisk.org bug 0016610 */
michael@311 993 return 0;
michael@311 994 }
michael@311 995
michael@311 996 Index: main/db1-ast/hash/hash.h
michael@311 997 diff -Nau main/db1-ast/hash/hash.h.orig main/db1-ast/hash/hash.h
michael@311 998 --- main/db1-ast/hash/hash.h.orig 2006-08-21 04:11:39.000000000 +0200
michael@362 999 +++ main/db1-ast/hash/hash.h 2011-09-14 14:29:50.767970949 +0200
michael@311 1000 @@ -36,6 +36,8 @@
michael@311 1001 * @(#)hash.h 8.3 (Berkeley) 5/31/94
michael@311 1002 */
michael@311 1003
michael@311 1004 +#include <stdint.h>
michael@311 1005 +
michael@311 1006 /* Operations */
michael@311 1007 typedef enum {
michael@311 1008 HASH_GET, HASH_PUT, HASH_PUTNEW, HASH_DELETE, HASH_FIRST, HASH_NEXT
michael@311 1009 Index: main/db1-ast/hash/ndbm.c
michael@311 1010 diff -Nau main/db1-ast/hash/ndbm.c.orig main/db1-ast/hash/ndbm.c
michael@311 1011 --- main/db1-ast/hash/ndbm.c.orig 2006-08-21 04:11:39.000000000 +0200
michael@362 1012 +++ main/db1-ast/hash/ndbm.c 2011-09-14 14:29:50.767970949 +0200
michael@311 1013 @@ -49,7 +49,8 @@
michael@311 1014 #include <string.h>
michael@311 1015 #include <stdlib.h>
michael@311 1016
michael@311 1017 -#include <ndbm.h>
michael@311 1018 +#include "../include/ndbm.h"
michael@311 1019 +#include "../include/db.h"
michael@311 1020 #include "hash.h"
michael@311 1021
michael@311 1022 /*
michael@311 1023 Index: main/features.c
michael@311 1024 diff -Nau main/features.c.orig main/features.c
michael@362 1025 --- main/features.c.orig 2011-08-10 00:12:59.000000000 +0200
michael@362 1026 +++ main/features.c 2011-09-14 14:29:50.777958246 +0200
michael@398 1027 @@ -1922,6 +1922,10 @@
michael@311 1028 snprintf(args, len, "%s,%s,m", S_OR(touch_format, "wav"), touch_filename);
michael@311 1029 }
michael@311 1030
michael@311 1031 + for(x = 0; x < strlen(touch_filename); x++) {
michael@311 1032 + if (args[x] == '/')
michael@311 1033 + args[x] = '-';
michael@311 1034 + }
michael@311 1035 for(x = 0; x < strlen(args); x++) {
michael@311 1036 if (args[x] == '/')
michael@311 1037 args[x] = '-';
michael@398 1038 @@ -2038,6 +2042,10 @@
michael@311 1039 snprintf(args, len, "%s.%s,b", touch_filename, S_OR(touch_format, "wav"));
michael@311 1040 }
michael@311 1041
michael@311 1042 + for( x = 0; x < strlen(touch_filename); x++) {
michael@311 1043 + if (args[x] == '/')
michael@311 1044 + args[x] = '-';
michael@311 1045 + }
michael@311 1046 for( x = 0; x < strlen(args); x++) {
michael@311 1047 if (args[x] == '/')
michael@311 1048 args[x] = '-';
michael@311 1049 Index: main/file.c
michael@311 1050 diff -Nau main/file.c.orig main/file.c
michael@362 1051 --- main/file.c.orig 2011-07-05 15:23:57.000000000 +0200
michael@362 1052 +++ main/file.c 2011-09-14 14:29:50.777958246 +0200
michael@362 1053 @@ -256,7 +256,7 @@
michael@311 1054 char *fn = NULL;
michael@311 1055
michael@311 1056 if (!strcmp(ext, "wav49"))
michael@311 1057 - ext = "WAV";
michael@311 1058 + ext = "wav";
michael@311 1059
michael@311 1060 if (filename[0] == '/') {
michael@311 1061 if (asprintf(&fn, "%s.%s", filename, ext) < 0) {
michael@310 1062 Index: main/Makefile
michael@311 1063 diff -Nau main/Makefile.orig main/Makefile
michael@362 1064 --- main/Makefile.orig 2011-08-03 17:14:36.000000000 +0200
michael@362 1065 +++ main/Makefile 2011-09-14 14:29:50.777958246 +0200
michael@311 1066 @@ -69,10 +69,7 @@
michael@310 1067 endif
michael@310 1068
michael@310 1069 ifeq ($(OSARCH),FreeBSD)
michael@310 1070 - # -V is understood by BSD Make, not by GNU make.
michael@310 1071 - BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
michael@310 1072 - AST_LIBS+=$(shell if test $(BSDVERSION) -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi)
michael@310 1073 - AST_LIBS+=-lcrypto
michael@310 1074 + AST_LIBS+=-lpthread -lcrypto
michael@310 1075 endif
michael@310 1076
michael@310 1077 ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
michael@310 1078 Index: main/tcptls.c
michael@311 1079 diff -Nau main/tcptls.c.orig main/tcptls.c
michael@362 1080 --- main/tcptls.c.orig 2011-05-23 18:18:33.000000000 +0200
michael@362 1081 +++ main/tcptls.c 2011-09-14 14:29:50.777958246 +0200
michael@362 1082 @@ -357,6 +357,7 @@
michael@310 1083 if (!ast_strlen_zero(cfg->cafile) || !ast_strlen_zero(cfg->capath)) {
michael@310 1084 if (SSL_CTX_load_verify_locations(cfg->ssl_ctx, S_OR(cfg->cafile, NULL), S_OR(cfg->capath,NULL)) == 0)
michael@310 1085 ast_verb(0, "SSL CA file(%s)/path(%s) error\n", cfg->cafile, cfg->capath);
michael@310 1086 + SSL_CTX_set_client_CA_list(cfg->ssl_ctx, S_OR(cfg->cafile, NULL));
michael@202 1087 }
michael@202 1088
michael@310 1089 ast_verb(0, "SSL certificate ok\n");
michael@311 1090 Index: main/udptl.c
michael@311 1091 diff -Nau main/udptl.c.orig main/udptl.c
michael@362 1092 --- main/udptl.c.orig 2011-05-03 21:55:49.000000000 +0200
michael@362 1093 +++ main/udptl.c 2011-09-14 14:29:50.777958246 +0200
michael@311 1094 @@ -98,6 +98,18 @@
michael@311 1095
michael@311 1096 #define UDPTL_BUF_MASK 15
michael@311 1097
michael@311 1098 +/*! Copied from chan_oss.c, corrects link errors:
michael@311 1099 +udptl.o: In function `calculate_local_max_datagram':
michael@311 1100 +main/udptl.c:740: undefined reference to `MIN'
michael@311 1101 +udptl.o: In function `calculate_far_max_ifp':
michael@311 1102 +main/udptl.c:770: undefined reference to `MAX' */
michael@311 1103 +#ifndef MIN
michael@311 1104 +#define MIN(a,b) ((a) < (b) ? (a) : (b))
michael@311 1105 +#endif
michael@311 1106 +#ifndef MAX
michael@311 1107 +#define MAX(a,b) ((a) > (b) ? (a) : (b))
michael@311 1108 +#endif
michael@311 1109 +
michael@311 1110 typedef struct {
michael@311 1111 int buf_len;
michael@311 1112 uint8_t buf[LOCAL_FAX_MAX_DATAGRAM];
michael@311 1113 Index: Makefile
michael@311 1114 diff -Nau Makefile.orig Makefile
michael@362 1115 --- Makefile.orig 2011-08-25 21:08:04.000000000 +0200
michael@362 1116 +++ Makefile 2011-09-14 14:29:50.777958246 +0200
michael@311 1117 @@ -230,15 +230,6 @@
michael@311 1118 _ASTCFLAGS+=-fsigned-char
michael@311 1119 endif
michael@311 1120
michael@311 1121 -ifeq ($(OSARCH),FreeBSD)
michael@311 1122 - ifeq ($(PROC),i386)
michael@311 1123 - _ASTCFLAGS+=-march=i686
michael@311 1124 - endif
michael@311 1125 - # -V is understood by BSD Make, not by GNU make.
michael@311 1126 - BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
michael@311 1127 - _ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
michael@311 1128 -endif
michael@311 1129 -
michael@311 1130 ifeq ($(OSARCH),NetBSD)
michael@311 1131 _ASTCFLAGS+=-pthread -I/usr/pkg/include
michael@311 1132 endif

mercurial