[asterisk-commits] rmudgett: branch rmudgett/parking r331245 - /team/rmudgett/parking/main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Aug 9 13:26:55 CDT 2011


Author: rmudgett
Date: Tue Aug  9 13:26:51 2011
New Revision: 331245

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=331245
Log:
Fixed retrieving parked call connected line update.

Modified:
    team/rmudgett/parking/main/features.c

Modified: team/rmudgett/parking/main/features.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/parking/main/features.c?view=diff&rev=331245&r1=331244&r2=331245
==============================================================================
--- team/rmudgett/parking/main/features.c (original)
+++ team/rmudgett/parking/main/features.c Tue Aug  9 13:26:51 2011
@@ -1398,7 +1398,6 @@
 	 */
 	pu->options_specified = (!ast_strlen_zero(args->return_con) || !ast_strlen_zero(args->return_ext) || args->return_pri);
 
-/* BUGBUG this may be what we need to save here to use when the parked call is retrieved. */
 	/*
 	 * If extension has options specified, they override all other
 	 * possibilities such as the returntoorigin flag and transferred
@@ -4874,7 +4873,6 @@
 	}
 	AST_LIST_UNLOCK(&parkinglot->parkings);
 
-/* BUGBUG updating connected line for parked calls could be considered a feature enhancement or bug. */
 	if (peer) {
 		/* Update connected line between retrieving call and parked call. */
 		struct ast_party_connected_line connected;
@@ -4886,14 +4884,22 @@
 		ast_connected_line_copy_from_caller(&connected, &chan->caller);
 		ast_channel_unlock(chan);
 		connected.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-		ast_channel_queue_connected_line_update(chan, &connected, NULL);
-
-		/* Get caller-id from peer. */
+		if (ast_channel_connected_line_macro(chan, peer, &connected, 0, 0)) {
+			ast_channel_update_connected_line(peer, &connected, NULL);
+		}
+
+		/*
+		 * Get caller-id from peer.
+		 *
+		 * Update the retrieving call before it is answered if possible
+		 * for best results.  Some phones do not support updating the
+		 * connected line information after connection.
+		 */
 		ast_channel_lock(peer);
 		ast_connected_line_copy_from_caller(&connected, &peer->caller);
 		ast_channel_unlock(peer);
 		connected.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-		if (ast_channel_connected_line_macro(peer, chan, &connected, 0, 0)) {
+		if (ast_channel_connected_line_macro(peer, chan, &connected, 1, 0)) {
 			ast_channel_update_connected_line(chan, &connected, NULL);
 		}
 
@@ -4968,7 +4974,6 @@
 		}
 		ast_channel_unlock(peer);
 
-/* BUGBUG this may be what we need to fix here to use when the parked call is retrieved. */
 		if ((parkinglot->cfg.parkedcalltransfers == AST_FEATURE_FLAG_BYCALLEE) || (parkinglot->cfg.parkedcalltransfers == AST_FEATURE_FLAG_BYBOTH)) {
 			ast_set_flag(&(config.features_callee), AST_FEATURE_REDIRECT);
 		}




More information about the asterisk-commits mailing list