[svn-commits] mmichelson: branch mmichelson/bridged_channel r395725 - /team/mmichelson/brid...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Jul 29 18:24:40 CDT 2013


Author: mmichelson
Date: Mon Jul 29 18:24:38 2013
New Revision: 395725

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=395725
Log:
Get rid of ast_bridged_channel in chan_oss.c


Modified:
    team/mmichelson/bridged_channel/channels/chan_oss.c

Modified: team/mmichelson/bridged_channel/channels/chan_oss.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/bridged_channel/channels/chan_oss.c?view=diff&rev=395725&r1=395724&r2=395725
==============================================================================
--- team/mmichelson/bridged_channel/channels/chan_oss.c (original)
+++ team/mmichelson/bridged_channel/channels/chan_oss.c Mon Jul 29 18:24:38 2013
@@ -68,6 +68,7 @@
 #include "asterisk/causes.h"
 #include "asterisk/musiconhold.h"
 #include "asterisk/app.h"
+#include "asterisk/bridge.h"
 
 #include "console_video.h"
 
@@ -1173,7 +1174,7 @@
 static char *console_transfer(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
 	struct chan_oss_pvt *o = find_desc(oss_active);
-	struct ast_channel *b = NULL;
+	RAII_VAR(struct ast_channel *, b, NULL, ast_channel_cleanup);
 	char *tmp, *ext, *ctx;
 
 	switch (cmd) {
@@ -1192,24 +1193,19 @@
 		return CLI_SHOWUSAGE;
 	if (o == NULL)
 		return CLI_FAILURE;
-	if (o->owner == NULL || (b = ast_bridged_channel(o->owner)) == NULL) {
+	if (o->owner == NULL || !ast_channel_is_bridged(o->owner)) {
 		ast_cli(a->fd, "There is no call to transfer\n");
 		return CLI_SUCCESS;
 	}
 
 	tmp = ast_ext_ctx(a->argv[2], &ext, &ctx);
-	if (ctx == NULL)			/* supply default context if needed */
+	if (ctx == NULL) {			/* supply default context if needed */
 		ctx = ast_strdupa(ast_channel_context(o->owner));
-	if (!ast_exists_extension(b, ctx, ext, 1,
-		S_COR(ast_channel_caller(b)->id.number.valid, ast_channel_caller(b)->id.number.str, NULL))) {
-		ast_cli(a->fd, "No such extension exists\n");
-	} else {
-		ast_cli(a->fd, "Whee, transferring %s to %s@%s.\n", ast_channel_name(b), ext, ctx);
-		if (ast_async_goto(b, ctx, ext, 1))
-			ast_cli(a->fd, "Failed to transfer :(\n");
-	}
-	if (tmp)
-		ast_free(tmp);
+	}
+	if (ast_bridge_transfer_blind(1, o->owner, ext, ctx, NULL, NULL) != AST_BRIDGE_TRANSFER_SUCCESS) {
+		ast_log(LOG_WARNING, "Unable to transfer call from channel %s\n", ast_channel_name(o->owner));
+	}
+	ast_free(tmp);
 	return CLI_SUCCESS;
 }
 




More information about the svn-commits mailing list