[asterisk-commits] branch oej/metermaids-trunk r35235 - in /team/oej/metermaids-trunk: ./ channe...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Jun 21 01:55:27 MST 2006


Author: oej
Date: Wed Jun 21 03:55:25 2006
New Revision: 35235

URL: http://svn.digium.com/view/asterisk?rev=35235&view=rev
Log:
Reset automerge

Modified:
    team/oej/metermaids-trunk/   (props changed)
    team/oej/metermaids-trunk/channels/chan_sip.c
    team/oej/metermaids-trunk/res/res_features.c

Propchange: team/oej/metermaids-trunk/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Jun 21 03:55:25 2006
@@ -1,1 +1,1 @@
-/trunk:1-35209
+/trunk:1-35234

Modified: team/oej/metermaids-trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/oej/metermaids-trunk/channels/chan_sip.c?rev=35235&r1=35234&r2=35235&view=diff
==============================================================================
--- team/oej/metermaids-trunk/channels/chan_sip.c (original)
+++ team/oej/metermaids-trunk/channels/chan_sip.c Wed Jun 21 03:55:25 2006
@@ -11972,7 +11972,7 @@
 
 	if (!transferee || !transferer) {
 		ast_log(LOG_ERROR, "Missing channels for parking! Transferer %s Transferee %s\n", transferer ? "<available>" : "<missing>", transferee ? "<available>" : "<missing>" );
-		return;
+		return NULL;
 	}
 	if (option_debug > 3) 
 		ast_log(LOG_DEBUG, "SIP Park: Transferer channel %s, Transferee %s\n", transferer->name, transferee->name);

Modified: team/oej/metermaids-trunk/res/res_features.c
URL: http://svn.digium.com/view/asterisk/team/oej/metermaids-trunk/res/res_features.c?rev=35235&r1=35234&r2=35235&view=diff
==============================================================================
--- team/oej/metermaids-trunk/res/res_features.c (original)
+++ team/oej/metermaids-trunk/res/res_features.c Wed Jun 21 03:55:25 2006
@@ -89,19 +89,19 @@
 
 static char *parkedcall = "ParkedCall";
 
+static int parkaddhints = 0;                               /*!< Add parking hints automatically */
 static int parkingtime = DEFAULT_PARK_TIME;                /*!< No more than 45 seconds parked before you do something with them */
 static char parking_con[AST_MAX_EXTENSION];                /*!< Context for which parking is made accessible */
 static char parking_con_dial[AST_MAX_EXTENSION];           /*!< Context for dialback for parking (KLUDGE) */
 static char parking_ext[AST_MAX_EXTENSION];                /*!< Extension you type to park the call */
 static char pickup_ext[AST_MAX_EXTENSION];                 /*!< Call pickup extension */
-static int parkaddhints = 0;                               /*!< Add parking hints automatically */
 static int parking_start;                                  /*!< First available extension for parking */
 static int parking_stop;                                   /*!< Last available extension for parking */
 
 static char courtesytone[256];                             /*!< Courtesy tone */
 static int parkedplay = 0;                                 /*!< Who to play the courtesy tone to */
 static char xfersound[256];                                /*!< Call transfer sound */
-static char xferfailsound[256];				   /*!< Call transfer failure sound */
+static char xferfailsound[256];                            /*!< Call transfer failure sound */
 
 static int parking_offset;
 static int parkfindnext;
@@ -114,7 +114,7 @@
 
 static int atxfernoanswertimeout;
 
-static char *registrar = "res_features";		/*!< Registrar for operations */
+static char *registrar = "res_features";		   /*!< Registrar for operations */
 
 /* module and CLI command definitions */
 static char *synopsis = "Answer a parked call";
@@ -140,14 +140,13 @@
 static int monitor_ok = 1;
 
 struct parkeduser {
-	struct ast_channel *chan;
-	struct timeval start;
-	int parkingnum;
-	/* Where to go if our parking time expires */
-	char context[AST_MAX_CONTEXT];
+	struct ast_channel *chan;                   /*!< Parking channel */
+	struct timeval start;                       /*!< Time the parking started */
+	int parkingnum;                             /*!< Parking lot */
+	char context[AST_MAX_CONTEXT];              /*!< Where to go if our parking time expires */
 	char exten[AST_MAX_EXTENSION];
 	int priority;
-	int parkingtime;
+	int parkingtime;                            /*!< Maximum length in parking lot before return */
 	int notquiteyet;
 	char peername[1024];
 	unsigned char moh_trys;
@@ -359,7 +358,7 @@
 
 
 /*! \brief Park a call 
- 	We put the user in the parking list, then wake up the parking thread to be sure it looks
+ 	\note We put the user in the parking list, then wake up the parking thread to be sure it looks
 	after these channels too */
 int ast_park_call(struct ast_channel *chan, struct ast_channel *peer, int timeout, int *extout)
 {
@@ -368,9 +367,9 @@
 	char exten[AST_MAX_EXTENSION];
 	struct ast_context *con;
 	
-	if (!(pu = ast_calloc(1, sizeof(*pu)))) {
+	if (!(pu = ast_calloc(1, sizeof(*pu)))) 
 		return -1;
-	}
+
 	ast_mutex_lock(&parking_lock);
 	parking_range = parking_stop - parking_start+1;
 	for (i = 0; i < parking_range; i++) {
@@ -399,7 +398,7 @@
 	pu->chan = chan;
 	/* Start music on hold */
 	if (chan != peer) {
-		ast_indicate(pu->chan, AST_CONTROL_HOLD);
+		ast_indicate(pu->chan, AST_CONTROL_HOLD);	/* Indicate to peer that we're on hold */
 		ast_moh_start(pu->chan, NULL);
 	}
 	pu->start = ast_tvnow();
@@ -439,23 +438,22 @@
 		S_OR(pu->chan->cid.cid_name, "<unknown>")
 		);
 
-	if (peer) {
-		if (adsipark && adsi_available(peer))
-			adsi_announce_park(peer, pu->parkingnum);
-		if (adsipark && adsi_available(peer))
-			adsi_unload_session(peer);
-	}
+	if (peer && adsipark && adsi_available(peer)) {
+		adsi_announce_park(peer, pu->parkingnum);
+		adsi_unload_session(peer);
+	}
+
 	con = ast_context_find(parking_con);
-	if (!con) {
+	if (!con) 
 		con = ast_context_create(NULL, parking_con, registrar);
-		if (!con)
-			ast_log(LOG_ERROR, "Parking context '%s' does not exist and unable to create\n", parking_con);
-	}
-	if (con) {
+	if (!con)	/* Still no context? Bad */
+		ast_log(LOG_ERROR, "Parking context '%s' does not exist and unable to create\n", parking_con);
+	else {		/* Add extension to context */
 		snprintf(exten, sizeof(exten), "%d", x);
 		if (ast_add_extension2(con, 1, exten, 1, NULL, NULL, parkedcall, strdup(exten), FREE, registrar))
 			notify_metermaids(exten, parking_con);
 	}
+	/* Tell the peer channel the number of the parking space */
 	if (peer) 
 		ast_say_digits(peer, pu->parkingnum, "", peer->language);
 	if (pu->notquiteyet) {
@@ -473,27 +471,27 @@
 	struct ast_frame *f;
 
 	/* Make a new, fake channel that we'll use to masquerade in the real one */
-	if ((chan = ast_channel_alloc(0))) {
-		/* Let us keep track of the channel name */
-		ast_string_field_build(chan, name, "Parked/%s",rchan->name);
-
-		/* Make formats okay */
-		chan->readformat = rchan->readformat;
-		chan->writeformat = rchan->writeformat;
-		ast_channel_masquerade(chan, rchan);
-
-		/* Setup the extensions and such */
-		set_c_e_p(chan, rchan->context, rchan->exten, rchan->priority);
-
-		/* Make the masq execute */
-		f = ast_read(chan);
-		if (f)
-			ast_frfree(f);
-		ast_park_call(chan, peer, timeout, extout);
-	} else {
+	if (!(chan = ast_channel_alloc(0))) {
 		ast_log(LOG_WARNING, "Unable to create parked channel\n");
 		return -1;
 	}
+	/* Let us keep track of the channel name */
+	ast_string_field_build(chan, name, "Parked/%s",rchan->name);
+
+	/* Make formats okay */
+	chan->readformat = rchan->readformat;
+	chan->writeformat = rchan->writeformat;
+	ast_channel_masquerade(chan, rchan);
+
+	/* Setup the extensions and such */
+	set_c_e_p(chan, rchan->context, rchan->exten, rchan->priority);
+
+	/* Make the masq execute */
+	f = ast_read(chan);
+	if (f)
+		ast_frfree(f);
+
+	ast_park_call(chan, peer, timeout, extout);
 	return 0;
 }
 



More information about the asterisk-commits mailing list