[asterisk-dev] [svn-commits] extrachannel

Olle E. Johansson oej at edvina.net
Wed Dec 16 01:12:14 CST 2009


Where does the word "extra" come from in this case, like the docs mention "extrachannel"?
I've never heard of an extrachannel. 

I think this is a term that we could avoid by using the term "transferer channel" or something else that we already use. I don't get what's extra with the extrachannel.

/O

16 dec 2009 kl. 01.31 skrev SVN commits to the Digium repositories:

> Author: jpeeler
> Date: Tue Dec 15 18:31:53 2009
> New Revision: 235265
> 
> URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=235265
> Log:
> Enhance AMI redirect to allow channels to be redirected to different places.
> 
> New parameters ExtraContext, ExtraExtension, and ExtraPriority have been added
> to redirect the second channel to a different location. Previously, it was only
> possible to redirect both channels to the same place.
> 
> (closes issue #15853)
> Reported by: haakon
> Patches:
>      trunk-manager.c.patch uploaded by haakon (license 880)
> Tested by: jpeeler
> 
> Modified:
>    trunk/CHANGES
>    trunk/main/manager.c
> 
> Modified: trunk/CHANGES
> URL: http://svnview.digium.com/svn/asterisk/trunk/CHANGES?view=diff&rev=235265&r1=235264&r2=235265
> ==============================================================================
> --- trunk/CHANGES (original)
> +++ trunk/CHANGES Tue Dec 15 18:31:53 2009
> @@ -306,6 +306,9 @@
>  * The configuration file manager.conf now supports a channelvars option, which
>    specifies a list of channel variables to include in each channel-oriented
>    event.
> + * The redirect command now has new parameters ExtraContext, ExtraExtension, 
> +   and ExtraPriority to allow redirecting the second channel to a different
> +   location than the first.
> 
> Channel Event Logging
> ---------------------
> 
> Modified: trunk/main/manager.c
> URL: http://svnview.digium.com/svn/asterisk/trunk/main/manager.c?view=diff&rev=235265&r1=235264&r2=235265
> ==============================================================================
> --- trunk/main/manager.c (original)
> +++ trunk/main/manager.c Tue Dec 15 18:31:53 2009
> @@ -353,11 +353,20 @@
> 			<parameter name="Exten" required="true">
> 				<para>Extension to transfer to.</para>
> 			</parameter>
> +			<parameter name="ExtraExten">
> +				<para>Extension to transfer extrachannel to (optional).</para>
> +			</parameter>
> 			<parameter name="Context" required="true">
> 				<para>Context to transfer to.</para>
> 			</parameter>
> +			<parameter name="ExtraContext">
> +				<para>Context to transfer extrachannel to (optional).</para>
> +			</parameter>
> 			<parameter name="Priority" required="true">
> 				<para>Priority to transfer to.</para>
> +			</parameter>
> +			<parameter name="ExtraPriority">
> +				<para>Priority to transfer extrachannel to (optional).</para>
> 			</parameter>
> 		</syntax>
> 		<description>
> @@ -3054,10 +3063,13 @@
> 	const char *name = astman_get_header(m, "Channel");
> 	const char *name2 = astman_get_header(m, "ExtraChannel");
> 	const char *exten = astman_get_header(m, "Exten");
> +	const char *exten2 = astman_get_header(m, "ExtraExten");
> 	const char *context = astman_get_header(m, "Context");
> +	const char *context2 = astman_get_header(m, "ExtraContext");
> 	const char *priority = astman_get_header(m, "Priority");
> +	const char *priority2 = astman_get_header(m, "ExtraPriority");
> 	struct ast_channel *chan, *chan2 = NULL;
> -	int pi = 0;
> +	int pi, pi2 = 0;
> 	int res;
> 
> 	if (ast_strlen_zero(name)) {
> @@ -3068,6 +3080,13 @@
> 	if (!ast_strlen_zero(priority) && (sscanf(priority, "%30d", &pi) != 1)) {
> 		if ((pi = ast_findlabel_extension(NULL, context, exten, priority, NULL)) < 1) {
> 			astman_send_error(s, m, "Invalid priority");
> +			return 0;
> +		}
> +	}
> +
> +	if (!ast_strlen_zero(priority2) && (sscanf(priority2, "%30d", &pi2) != 1)) {
> +		if ((pi2 = ast_findlabel_extension(NULL, context2, exten2, priority2, NULL)) < 1) {
> +			astman_send_error(s, m, "Invalid ExtraPriority");
> 			return 0;
> 		}
> 	}
> @@ -3111,7 +3130,11 @@
> 					ast_set_flag(chan2, AST_FLAG_BRIDGE_HANGUP_DONT); /* don't let the after-bridge code run the h-exten */
> 					ast_channel_unlock(chan2);
> 				}
> -				res = ast_async_goto(chan2, context, exten, pi);
> +				if (context2) {
> +					res = ast_async_goto(chan2, context2, exten2, pi2);
> +				} else {
> +					res = ast_async_goto(chan2, context, exten, pi);
> +				}
> 			} else {
> 				res = -1;
> 			}
> 
> 
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
> 
> svn-commits mailing list
> To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/svn-commits

---
* Olle E Johansson - oej at edvina.net
* Cell phone +46 70 593 68 51, Office +46 8 96 40 20, Sweden






More information about the asterisk-dev mailing list