[asterisk-commits] murf: branch murf/masqpark r155508 - /team/murf/masqpark/res/res_features.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Nov 8 10:57:56 CST 2008


Author: murf
Date: Sat Nov  8 10:57:55 2008
New Revision: 155508

URL: http://svn.digium.com/view/asterisk?view=rev&rev=155508
Log:
A small change, and it gets rid of an error message about
an invalid handler not found (in some cases), when
you use one-touch parking, that you didn't see when you
initiated parking by other methods. The builtin_parkcall
routine was setting the channel exten/prio to s/1, where
none of the other paths does. Removed with a comment.

Tested using an expanded test set:

1. A calls B, A parks B, B hangs while A is getting announcement.
2.                     , B hangs up after A gets anncmnt, before parking expires
3.                     , B waits,  A is redialed, answers, and rebridged.
4.                     , B is picked up by C.
5. A calls B, B parks A, A hangs up while B is getting anncmnt.
6.                     , A hangs up after B gets anncmnt, before parking expires
7.                     , A waits, B is redialed, answers, and rebridged.
8.                     , A is picked up by C.

Where "parks" is
   I.   Feature= one-touch parking (in my case via *3)
   II.  Feature= blind xfer to parking exten (in my case #700)
   III. Running park app from Dialplan (dahdi hookflash, 700; or sip xfer to 700) 
        (this case does not play the parking stall announcement to the parker,
         so we skip tests 1 and 5)
   IV.  Run Park via manager command interface. (I did not test this,
        as it's already doing the masq_park() thing, and I didn't change it).

So, after running all 8 tests (or 6) in the first 3 parking scenarios (I,II,III),
everything works fine.



Modified:
    team/murf/masqpark/res/res_features.c

Modified: team/murf/masqpark/res/res_features.c
URL: http://svn.digium.com/view/asterisk/team/murf/masqpark/res/res_features.c?view=diff&rev=155508&r1=155507&r2=155508
==============================================================================
--- team/murf/masqpark/res/res_features.c (original)
+++ team/murf/masqpark/res/res_features.c Sat Nov  8 10:57:55 2008
@@ -571,10 +571,14 @@
 	u = ast_module_user_add(chan);
 
 	set_peers(&parker, &parkee, peer, chan, sense);
-	/* Setup the exten/priority to be s/1 since we don't know
-	   where this call should return */
-	strcpy(chan->exten, "s");
-	chan->priority = 1;
+	/* we used to set chan's exten and priority to "s" and 1
+	   here, but this generates (in some cases) an invalid
+	   extension, and if "s" exists, could errantly
+	   cause execution of extensions you don't expect It
+	   makes more sense to let nature take its course
+	   when chan finishes, and let the pbx do its thing
+	   and hang up when the park is over.
+	*/
 	if (chan->_state != AST_STATE_UP)
 		res = ast_answer(chan);
 	if (!res)




More information about the asterisk-commits mailing list