SOURCES: asterisk-bristuff.patch - updated to todays version
arekm
arekm at pld-linux.org
Wed Jul 16 21:05:03 CEST 2008
Author: arekm Date: Wed Jul 16 19:05:03 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- updated to todays version
---- Files affected:
SOURCES:
asterisk-bristuff.patch (1.6 -> 1.7)
---- Diffs:
================================================================
Index: SOURCES/asterisk-bristuff.patch
diff -u SOURCES/asterisk-bristuff.patch:1.6 SOURCES/asterisk-bristuff.patch:1.7
--- SOURCES/asterisk-bristuff.patch:1.6 Sun Feb 10 01:03:44 2008
+++ SOURCES/asterisk-bristuff.patch Wed Jul 16 21:04:57 2008
@@ -57,7 +57,7 @@
--- a/main/asterisk.c
+++ b/main/asterisk.c
-@@ -2387,6 +2387,7 @@ static void ast_readconfig(void)
+@@ -2427,6 +2427,7 @@ static void ast_readconfig(void)
ast_copy_string(ast_config_AST_PID, AST_PID, sizeof(ast_config_AST_PID));
ast_copy_string(ast_config_AST_SOCKET, AST_SOCKET, sizeof(ast_config_AST_SOCKET));
ast_copy_string(ast_config_AST_RUN_DIR, AST_RUN_DIR, sizeof(ast_config_AST_RUN_DIR));
@@ -65,7 +65,7 @@
/* no asterisk.conf? no problem, use buildtime config! */
if (!cfg) {
-@@ -2511,6 +2512,8 @@ static void ast_readconfig(void)
+@@ -2551,6 +2552,8 @@ static void ast_readconfig(void)
ast_copy_string(ast_config_AST_RUN_GROUP, v->value, sizeof(ast_config_AST_RUN_GROUP));
} else if (!strcasecmp(v->name, "systemname")) {
ast_copy_string(ast_config_AST_SYSTEM_NAME, v->value, sizeof(ast_config_AST_SYSTEM_NAME));
@@ -76,12 +76,10 @@
}
--- a/include/asterisk/agi.h
+++ b/include/asterisk/agi.h
-@@ -29,7 +29,8 @@ extern "C" {
-
+@@ -30,6 +30,7 @@ extern "C" {
typedef struct agi_state {
int fd; /* FD for general output */
-- int audio; /* FD for audio output */
-+ int audio_out; /* FD for audio output */
+ int audio; /* FD for audio output */
+ int audio_in; /* FD for audio output */
int ctrl; /* FD for input control */
unsigned int fast:1; /* flag for fast agi or not */
@@ -160,7 +158,7 @@
+ return AGI_RESULT_FAILURE;
+ }
+ res = fcntl(audio2[0], F_GETFL);
-+ if (res > -1)
++ if (res > -1)
+ res = fcntl(audio2[0], F_SETFL, res | O_NONBLOCK);
+ if (res < 0) {
+ ast_log(LOG_WARNING, "unable to set audio pipe parameters: %s\n", strerror(errno));
@@ -195,11 +193,11 @@
/* Close everything but stdin/out/error */
- for (x=STDERR_FILENO + 2;x<1024;x++)
-+ for (x=STDERR_FILENO + 3;x<1024;x++)
++ for (x=STDERR_FILENO + 3;x<1024;x++)
close(x);
/* Execute script */
-@@ -357,12 +398,19 @@ static enum agi_result launch_script(cha
+@@ -359,12 +400,19 @@ static enum agi_result launch_script(cha
if (efd) {
*efd = audio[1];
}
@@ -220,7 +218,7 @@
*opid = pid;
return AGI_RESULT_SUCCESS;
-@@ -392,7 +440,7 @@ static void setup_env(struct ast_channel
+@@ -394,7 +442,7 @@ static void setup_env(struct ast_channel
fdprintf(fd, "agi_context: %s\n", chan->context);
fdprintf(fd, "agi_extension: %s\n", chan->exten);
fdprintf(fd, "agi_priority: %d\n", chan->priority);
@@ -229,88 +227,7 @@
/* User information */
fdprintf(fd, "agi_accountcode: %s\n", chan->accountcode ? chan->accountcode : "");
-@@ -421,7 +469,7 @@ static int handle_waitfordigit(struct as
- return RESULT_SHOWUSAGE;
- if (sscanf(argv[3], "%d", &to) != 1)
- return RESULT_SHOWUSAGE;
-- res = ast_waitfordigit_full(chan, to, agi->audio, agi->ctrl);
-+ res = ast_waitfordigit_full(chan, to, agi->audio_out, agi->ctrl);
- fdprintf(agi->fd, "200 result=%d\n", res);
- return (res >= 0) ? RESULT_SUCCESS : RESULT_FAILURE;
- }
-@@ -596,7 +644,7 @@ static int handle_streamfile(struct ast_
- if (vfs)
- ast_playstream(vfs);
-
-- res = ast_waitstream_full(chan, argv[3], agi->audio, agi->ctrl);
-+ res = ast_waitstream_full(chan, argv[3], agi->audio_out, agi->ctrl);
- /* this is to check for if ast_waitstream closed the stream, we probably are at
- * the end of the stream, return that amount, else check for the amount */
- sample_offset = (chan->stream) ? ast_tellstream(fs) : max_length;
-@@ -657,7 +705,7 @@ static int handle_getoption(struct ast_c
- if (vfs)
- ast_playstream(vfs);
-
-- res = ast_waitstream_full(chan, argv[3], agi->audio, agi->ctrl);
-+ res = ast_waitstream_full(chan, argv[3], agi->audio_out, agi->ctrl);
- /* this is to check for if ast_waitstream closed the stream, we probably are at
- * the end of the stream, return that amount, else check for the amount */
- sample_offset = (chan->stream)?ast_tellstream(fs):max_length;
-@@ -669,7 +717,7 @@ static int handle_getoption(struct ast_c
-
- /* If the user didnt press a key, wait for digitTimeout*/
- if (res == 0 ) {
-- res = ast_waitfordigit_full(chan, timeout, agi->audio, agi->ctrl);
-+ res = ast_waitfordigit_full(chan, timeout, agi->audio_out, agi->ctrl);
- /* Make sure the new result is in the escape digits of the GET OPTION */
- if ( !strchr(edigits,res) )
- res=0;
-@@ -693,7 +741,7 @@ static int handle_saynumber(struct ast_c
- return RESULT_SHOWUSAGE;
- if (sscanf(argv[2], "%d", &num) != 1)
- return RESULT_SHOWUSAGE;
-- res = ast_say_number_full(chan, num, argv[3], chan->language, (char *) NULL, agi->audio, agi->ctrl);
-+ res = ast_say_number_full(chan, num, argv[3], chan->language, (char *) NULL, agi->audio_out, agi->ctrl);
- if (res == 1)
- return RESULT_SUCCESS;
- fdprintf(agi->fd, "200 result=%d\n", res);
-@@ -710,7 +758,7 @@ static int handle_saydigits(struct ast_c
- if (sscanf(argv[2], "%d", &num) != 1)
- return RESULT_SHOWUSAGE;
-
-- res = ast_say_digit_str_full(chan, argv[2], argv[3], chan->language, agi->audio, agi->ctrl);
-+ res = ast_say_digit_str_full(chan, argv[2], argv[3], chan->language, agi->audio_out, agi->ctrl);
- if (res == 1) /* New command */
- return RESULT_SUCCESS;
- fdprintf(agi->fd, "200 result=%d\n", res);
-@@ -724,7 +772,7 @@ static int handle_sayalpha(struct ast_ch
- if (argc != 4)
- return RESULT_SHOWUSAGE;
-
-- res = ast_say_character_str_full(chan, argv[2], argv[3], chan->language, agi->audio, agi->ctrl);
-+ res = ast_say_character_str_full(chan, argv[2], argv[3], chan->language, agi->audio_out, agi->ctrl);
- if (res == 1) /* New command */
- return RESULT_SUCCESS;
- fdprintf(agi->fd, "200 result=%d\n", res);
-@@ -802,7 +850,7 @@ static int handle_sayphonetic(struct ast
- if (argc != 4)
- return RESULT_SHOWUSAGE;
-
-- res = ast_say_phonetic_str_full(chan, argv[2], argv[3], chan->language, agi->audio, agi->ctrl);
-+ res = ast_say_phonetic_str_full(chan, argv[2], argv[3], chan->language, agi->audio_out, agi->ctrl);
- if (res == 1) /* New command */
- return RESULT_SUCCESS;
- fdprintf(agi->fd, "200 result=%d\n", res);
-@@ -826,7 +874,7 @@ static int handle_getdata(struct ast_cha
- max = atoi(argv[4]);
- else
- max = 1024;
-- res = ast_app_getdata_full(chan, argv[2], data, max, timeout, agi->audio, agi->ctrl);
-+ res = ast_app_getdata_full(chan, argv[2], data, max, timeout, agi->audio_out, agi->ctrl);
- if (res == 2) /* New command */
- return RESULT_SUCCESS;
- else if (res == 1)
-@@ -1833,8 +1881,13 @@ static enum agi_result run_agi(struct as
+@@ -1835,8 +1883,13 @@ static enum agi_result run_agi(struct as
int ms;
enum agi_result returnstatus = AGI_RESULT_SUCCESS;
struct ast_frame *f;
@@ -324,12 +241,12 @@
FILE *readf;
/* how many times we'll retry if ast_waitfor_nandfs will return without either
channel or file descriptor in case select is interrupted by a system call (EINTR) */
-@@ -1848,10 +1901,22 @@ static enum agi_result run_agi(struct as
+@@ -1850,10 +1903,22 @@ static enum agi_result run_agi(struct as
return AGI_RESULT_FAILURE;
}
setlinebuf(readf);
- setup_env(chan, request, agi->fd, (agi->audio > -1));
-+ if (agi->audio_out > -1) {
++ if (agi->audio > -1) {
+ enhanced = 1;
+ }
+ if (agi->audio_in > -1) {
@@ -349,16 +266,7 @@
if (c) {
retry = AGI_NANDFS_RETRY;
/* Idle the channel until we get a command */
-@@ -1862,13 +1927,23 @@ static enum agi_result run_agi(struct as
- break;
- } else {
- /* If it's voice, write it to the audio pipe */
-- if ((agi->audio > -1) && (f->frametype == AST_FRAME_VOICE)) {
-+ if ((agi->audio_out > -1) && (f->frametype == AST_FRAME_VOICE)) {
- /* Write, ignoring errors */
-- write(agi->audio, f->data, f->datalen);
-+ write(agi->audio_out, f->data, f->datalen);
- }
+@@ -1871,6 +1936,16 @@ static enum agi_result run_agi(struct as
ast_frfree(f);
}
} else if (outfd > -1) {
@@ -375,7 +283,7 @@
size_t len = sizeof(buf);
size_t buflen = 0;
-@@ -1914,6 +1989,7 @@ static enum agi_result run_agi(struct as
+@@ -1922,6 +1997,7 @@ static enum agi_result run_agi(struct as
if ((returnstatus < 0) || (returnstatus == AST_PBX_KEEPALIVE)) {
break;
}
@@ -383,7 +291,7 @@
} else {
if (--retry <= 0) {
ast_log(LOG_WARNING, "No channel, no fd?\n");
-@@ -2022,6 +2098,7 @@ static int agi_exec_full(struct ast_chan
+@@ -2030,6 +2106,7 @@ static int agi_exec_full(struct ast_chan
int argc = 0;
int fds[2];
int efd = -1;
@@ -391,32 +299,31 @@
int pid;
char *stringp;
AGI agi;
-@@ -2047,12 +2124,13 @@ static int agi_exec_full(struct ast_chan
- }
+@@ -2056,12 +2133,13 @@ static int agi_exec_full(struct ast_chan
}
#endif
+ ast_replace_sigchld();
- res = launch_script(argv[0], argv, fds, enhanced ? &efd : NULL, &pid);
+ res = launch_script(argv[0], argv, fds, enhanced ? &efd : NULL, (enhanced == 2) ? &efd2 : NULL, &pid);
if (res == AGI_RESULT_SUCCESS || res == AGI_RESULT_SUCCESS_FAST) {
int status = 0;
agi.fd = fds[1];
agi.ctrl = fds[0];
-- agi.audio = efd;
-+ agi.audio_out = efd;
+ agi.audio = efd;
+ agi.audio_in = efd2;
agi.fast = (res == AGI_RESULT_SUCCESS_FAST) ? 1 : 0;
res = run_agi(chan, argv[0], &agi, pid, &status, dead);
/* If the fork'd process returns non-zero, set AGISTATUS to FAILURE */
-@@ -2062,6 +2140,8 @@ static int agi_exec_full(struct ast_chan
+@@ -2071,6 +2149,8 @@ static int agi_exec_full(struct ast_chan
close(fds[1]);
if (efd > -1)
close(efd);
+ if (efd2 > -1)
+ close(efd2);
- ast_unreplace_sigchld();
}
+ ast_unreplace_sigchld();
ast_module_user_remove(u);
-@@ -2110,6 +2190,35 @@ static int eagi_exec(struct ast_channel
+@@ -2119,6 +2199,35 @@ static int eagi_exec(struct ast_channel
return res;
}
@@ -452,7 +359,7 @@
static int deadagi_exec(struct ast_channel *chan, void *data)
{
if (!ast_check_hangup(chan))
-@@ -2165,6 +2274,7 @@ static int unload_module(void)
+@@ -2174,6 +2283,7 @@ static int unload_module(void)
{
ast_module_user_hangup_all();
ast_cli_unregister_multiple(cli_agi, sizeof(cli_agi) / sizeof(struct ast_cli_entry));
@@ -460,7 +367,7 @@
ast_unregister_application(eapp);
ast_unregister_application(deadapp);
return ast_unregister_application(app);
-@@ -2175,6 +2285,7 @@ static int load_module(void)
+@@ -2184,6 +2294,7 @@ static int load_module(void)
ast_cli_register_multiple(cli_agi, sizeof(cli_agi) / sizeof(struct ast_cli_entry));
ast_register_application(deadapp, deadagi_exec, deadsynopsis, descrip);
ast_register_application(eapp, eagi_exec, esynopsis, descrip);
@@ -474,8 +381,8 @@
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
-+ * XAGI sample script
-+ *
++ * XAGI sample script
++ *
+ * Copyright (C) 2005 Junghanns.NET GmbH
+ * Klaus-Peter Junghanns <kpj at junghanns.net>
+ *
@@ -524,7 +431,7 @@
+
+ /* Load into normal environment */
+ setenv(buf, val, 1);
-+
++
+ }
+ /* Never reached */
+ return 0;
@@ -599,7 +506,7 @@
+ /* drop it, like it's hot */
+ }
+ }
-+
++
+}
+
+static char *run_command(char *command)
@@ -1043,7 +950,7 @@
@@ -0,0 +1,202 @@
+/*
+ * Devstate application
-+ *
++ *
+ * Since we like the snom leds so much, a little app to
+ * light the lights on the snom on demand ....
+ *
@@ -1081,8 +988,8 @@
+
+static char descrip[] = " Devstate(device|state): Generate a device state change event given the input parameters. Returns 0. State values match the asterisk device states. They are 0 = unknown, 1 = not inuse, 2 = inuse, 3 = busy, 4 = invalid, 5 = unavailable, 6 = ringing\n";
+
-+static char devstate_cli_usage[] =
-+"Usage: devstate device state\n"
++static char devstate_cli_usage[] =
++"Usage: devstate device state\n"
+" Generate a device state change event given the input parameters.\n Mainly used for lighting the LEDs on the snoms.\n";
+
+static int devstate_cli(int fd, int argc, char *argv[]);
@@ -1181,7 +1088,7 @@
+ .setoption = NULL,
+};
+
-+static char mandescr_devstate[] =
++static char mandescr_devstate[] =
+"Description: Put a value into astdb\n"
+"Variables: \n"
+" Family: ...\n"
@@ -1224,7 +1131,7 @@
+ ast_log(LOG_DEBUG, "Unable to register channel class %s\n", type);
+ return -1;
+ }
-+ ast_cli_register(&cli_dev_state);
++ ast_cli_register(&cli_dev_state);
+ ast_manager_register2( "Devstate", EVENT_FLAG_CALL, action_devstate, "Change a device state", mandescr_devstate );
+ return ast_register_application(app, devstate_exec, synopsis, descrip);
+}
@@ -1237,7 +1144,7 @@
+ ast_manager_unregister( "Devstate");
+ ast_cli_unregister(&cli_dev_state);
+ res = ast_unregister_application(app);
-+ ast_channel_unregister(&devstate_tech);
++ ast_channel_unregister(&devstate_tech);
+ return res;
+}
+
@@ -1871,7 +1778,7 @@
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
-@@ -3240,7 +3243,7 @@ static int iax2_hangup(struct ast_channe
+@@ -3362,7 +3365,7 @@ static int iax2_hangup(struct ast_channe
ast_mutex_lock(&iaxsl[callno]);
if (callno && iaxs[callno]) {
if (option_debug)
@@ -1880,7 +1787,7 @@
alreadygone = ast_test_flag(iaxs[callno], IAX_ALREADYGONE);
/* Send the hangup unless we have had a transmission error or are already gone */
iax_ie_append_byte(&ied, IAX_IE_CAUSECODE, (unsigned char)c->hangupcause);
-@@ -3294,7 +3297,8 @@ static int iax2_setoption(struct ast_cha
+@@ -3416,7 +3419,8 @@ static int iax2_setoption(struct ast_cha
static struct ast_frame *iax2_read(struct ast_channel *c)
{
@@ -1901,9 +1808,22 @@
ioctl(chan->fds[0], ZT_AUDIOMODE, &x);
/* Restore saved values */
+--- a/main/channel.c
++++ b/main/channel.c
+@@ -3898,6 +3898,10 @@ enum ast_bridge_result ast_channel_bridg
+ c1->name, c1->_bridge->name);
+ return -1;
+ }
++
++ if (IS_DIGITAL(c0->transfercapability) || IS_DIGITAL(c1->transfercapability)) {
++ config->flags = 0;
++ }
+
+ /* Stop if we're a zombie or need a soft hangup */
+ if (ast_test_flag(c0, AST_FLAG_ZOMBIE) || ast_check_hangup_locked(c0) ||
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
-@@ -1403,8 +1403,9 @@ static int conf_run(struct ast_channel *
+@@ -1405,8 +1405,9 @@ static int conf_run(struct ast_channel *
char members[10] = "";
int dtmf, opt_waitmarked_timeout = 0;
time_t timeout = 0;
@@ -1914,7 +1834,7 @@
char *buf = __buf + AST_FRIENDLY_OFFSET;
int setusercount = 0;
-@@ -1604,7 +1605,7 @@ static int conf_run(struct ast_channel *
+@@ -1615,7 +1616,7 @@ static int conf_run(struct ast_channel *
}
/* Setup buffering information */
memset(&bi, 0, sizeof(bi));
@@ -1923,7 +1843,7 @@
bi.txbufpolicy = ZT_POLICY_IMMEDIATE;
bi.rxbufpolicy = ZT_POLICY_IMMEDIATE;
bi.numbufs = audio_buffers;
-@@ -1913,6 +1914,14 @@ static int conf_run(struct ast_channel *
+@@ -1926,6 +1927,14 @@ static int conf_run(struct ast_channel *
f = ast_read(c);
if (!f)
break;
@@ -1943,17 +1863,17 @@
--- a/main/pbx.c
+++ b/main/pbx.c
-@@ -6060,6 +6060,9 @@ static int pbx_builtin_saynumber(struct
+@@ -6076,6 +6076,9 @@ static int pbx_builtin_saynumber(struct
return -1;
}
}
+ if (chan->_state != AST_STATE_UP) {
+ ast_answer(chan);
+ }
- return ast_say_number(chan, atoi(tmp), "", chan->language, options);
- }
-@@ -6067,8 +6070,12 @@ static int pbx_builtin_saydigits(struct
+ if (ast_say_number(chan, atoi(tmp), "", chan->language, options)) {
+ ast_log(LOG_WARNING, "We were unable to say the number %s, is it too large?\n", tmp);
+@@ -6088,8 +6091,12 @@ static int pbx_builtin_saydigits(struct
{
int res = 0;
@@ -1967,7 +1887,7 @@
return res;
}
-@@ -6076,8 +6083,12 @@ static int pbx_builtin_saycharacters(str
+@@ -6097,8 +6104,12 @@ static int pbx_builtin_saycharacters(str
{
int res = 0;
@@ -1981,7 +1901,7 @@
return res;
}
-@@ -6085,8 +6096,12 @@ static int pbx_builtin_sayphonetic(struc
+@@ -6106,8 +6117,12 @@ static int pbx_builtin_sayphonetic(struc
{
int res = 0;
@@ -2008,7 +1928,7 @@
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
-@@ -125,7 +129,8 @@ static char *descrip =
+@@ -130,7 +134,8 @@ static char *descrip =
" H - Allow the calling party to hang up by hitting the '*' DTMF digit.\n"
" i - Asterisk will ignore any forwarding requests it may receive on this\n"
" dial attempt.\n"
@@ -2018,7 +1938,7 @@
" k - Allow the called party to enable parking of the call by sending\n"
" the DTMF sequence defined for call parking in features.conf.\n"
" K - Allow the calling party to enable parking of the call by sending\n"
-@@ -1300,14 +1305,16 @@ static int dial_exec_full(struct ast_cha
+@@ -1292,14 +1297,16 @@ static int dial_exec_full(struct ast_cha
}
if (!outgoing) {
@@ -2039,7 +1959,7 @@
if (!ast_strlen_zero(opt_args[OPT_ARG_MUSICBACK])) {
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
-@@ -66,6 +66,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revisi
+@@ -71,6 +71,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revisi
#include "asterisk/privacy.h"
#include "asterisk/stringfields.h"
#include "asterisk/global_datastores.h"
@@ -2047,7 +1967,7 @@
static char *app = "Dial";
-@@ -1654,23 +1655,25 @@ static int dial_exec_full(struct ast_cha
+@@ -1652,23 +1653,25 @@ static int dial_exec_full(struct ast_cha
ast_set_flag(&(config.features_caller), AST_FEATURE_PLAY_WARNING);
if (play_to_callee)
ast_set_flag(&(config.features_callee), AST_FEATURE_PLAY_WARNING);
@@ -2084,7 +2004,7 @@
config.warning_freq = warning_freq;
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
-@@ -193,6 +193,8 @@ static char *descrip =
+@@ -198,6 +198,8 @@ static char *descrip =
" family/key is not specified.\n"
" r - Indicate ringing to the calling party. Pass no audio to the calling\n"
" party until the called channel has answered.\n"
@@ -2093,7 +2013,7 @@
" S(x) - Hang up the call after 'x' seconds *after* the called party has\n"
" answered the call.\n"
" t - Allow the called party to transfer the calling party by sending the\n"
-@@ -249,6 +251,7 @@ enum {
+@@ -254,6 +256,7 @@ enum {
OPT_CALLEE_PARK = (1 << 25),
OPT_CALLER_PARK = (1 << 26),
OPT_IGNORE_FORWARDING = (1 << 27),
@@ -2101,7 +2021,7 @@
} dial_exec_option_flags;
#define DIAL_STILLGOING (1 << 30)
-@@ -292,6 +295,7 @@ AST_APP_OPTIONS(dial_exec_options, {
+@@ -297,6 +300,7 @@ AST_APP_OPTIONS(dial_exec_options, {
AST_APP_OPTION('p', OPT_SCREENING),
AST_APP_OPTION_ARG('P', OPT_PRIVACY, OPT_ARG_PRIVACY),
AST_APP_OPTION('r', OPT_RINGBACK),
@@ -2109,7 +2029,7 @@
AST_APP_OPTION_ARG('S', OPT_DURATION_STOP, OPT_ARG_DURATION_STOP),
AST_APP_OPTION('t', OPT_CALLEE_TRANSFER),
AST_APP_OPTION('T', OPT_CALLER_TRANSFER),
-@@ -407,7 +411,7 @@ static struct ast_channel *wait_for_answ
+@@ -412,7 +416,7 @@ static struct ast_channel *wait_for_answ
int orig = *to;
struct ast_channel *peer = NULL;
/* single is set if only one destination is enabled */
@@ -2118,7 +2038,7 @@
if (single) {
/* Turn off hold music, etc */
-@@ -628,7 +632,7 @@ static struct ast_channel *wait_for_answ
+@@ -633,7 +637,7 @@ static struct ast_channel *wait_for_answ
/* Setup early media if appropriate */
if (single && CAN_EARLY_BRIDGE(peerflags))
ast_rtp_early_bridge(in, c);
@@ -2127,7 +2047,7 @@
ast_indicate(in, AST_CONTROL_PROGRESS);
break;
case AST_CONTROL_VIDUPDATE:
-@@ -641,7 +645,7 @@ static struct ast_channel *wait_for_answ
+@@ -651,7 +655,7 @@ static struct ast_channel *wait_for_answ
ast_verbose (VERBOSE_PREFIX_3 "%s is proceeding passing it to %s\n", c->name, in->name);
if (single && CAN_EARLY_BRIDGE(peerflags))
ast_rtp_early_bridge(in, c);
@@ -2136,7 +2056,7 @@
ast_indicate(in, AST_CONTROL_PROCEEDING);
break;
case AST_CONTROL_HOLD:
-@@ -659,7 +663,7 @@ static struct ast_channel *wait_for_answ
+@@ -669,7 +673,7 @@ static struct ast_channel *wait_for_answ
/* Ignore going off hook and flash */
break;
case -1:
@@ -2145,7 +2065,7 @@
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "%s stopped sounds\n", c->name);
ast_indicate(in, -1);
-@@ -1099,7 +1103,7 @@ static int dial_exec_full(struct ast_cha
+@@ -1091,7 +1095,7 @@ static int dial_exec_full(struct ast_cha
outbound_group = pbx_builtin_getvar_helper(chan, "OUTBOUND_GROUP");
}
@@ -2154,7 +2074,7 @@
/* loop through the list of dial destinations */
rest = args.peers;
while ((cur = strsep(&rest, "&")) ) {
-@@ -1124,7 +1128,7 @@ static int dial_exec_full(struct ast_cha
+@@ -1116,7 +1120,7 @@ static int dial_exec_full(struct ast_cha
OPT_CALLEE_HANGUP | OPT_CALLER_HANGUP |
OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR |
OPT_CALLEE_PARK | OPT_CALLER_PARK |
@@ -2163,7 +2083,7 @@
ast_set2_flag(tmp, args.url, DIAL_NOFORWARDHTML);
}
ast_copy_string(numsubst, number, sizeof(numsubst));
-@@ -1327,7 +1331,7 @@ static int dial_exec_full(struct ast_cha
+@@ -1319,7 +1323,7 @@ static int dial_exec_full(struct ast_cha
ast_moh_start(chan, NULL, NULL);
}
ast_indicate(chan, AST_CONTROL_PROGRESS);
@@ -2172,7 +2092,7 @@
ast_indicate(chan, AST_CONTROL_RINGING);
sentringing++;
}
-@@ -1444,7 +1448,7 @@ static int dial_exec_full(struct ast_cha
+@@ -1442,7 +1446,7 @@ static int dial_exec_full(struct ast_cha
if (ast_test_flag(&opts, OPT_MUSICBACK)) {
ast_moh_stop(chan);
@@ -2183,7 +2103,7 @@
}
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
-@@ -196,7 +196,8 @@ static char *descrip =
+@@ -201,7 +201,8 @@ static char *descrip =
" R - indicate ringing to the calling party when the called party indicates\n"
" ringing, pass no audio until answered.\n"
" S(x) - Hang up the call after 'x' seconds *after* the called party has\n"
@@ -2193,7 +2113,7 @@
" t - Allow the called party to transfer the calling party by sending the\n"
" DTMF sequence defined in features.conf.\n"
" T - Allow the calling party to transfer the called party by sending the\n"
-@@ -252,6 +253,7 @@ enum {
+@@ -257,6 +258,7 @@ enum {
OPT_CALLER_PARK = (1 << 26),
OPT_IGNORE_FORWARDING = (1 << 27),
OPT_NOINBAND = (1 << 28),
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/asterisk-bristuff.patch?r1=1.6&r2=1.7&f=u
More information about the pld-cvs-commit
mailing list