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