From: Joshua Colp Date: Tue, 19 Jun 2007 13:00:57 +0000 (+0000) Subject: Merged revisions 69846 via svnmerge from X-Git-Tag: 1.4.6~87 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bba22a6876554c3910739026dd4560080b1a8e49;p=thirdparty%2Fasterisk.git Merged revisions 69846 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r69846 | file | 2007-06-19 08:57:55 -0400 (Tue, 19 Jun 2007) | 2 lines Add parked call extension AFTER the parking slot has been announced, otherwise two threads will try to handle the same channel and it will go kaboom. (issue #9191 reported by japple) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69847 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_features.c b/res/res_features.c index 81ac839504..b672df72f7 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -421,13 +421,13 @@ int ast_park_call(struct ast_channel *chan, struct ast_channel *peer, int timeou con = ast_context_create(NULL, parking_con, registrar); 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 */ - if (!ast_add_extension2(con, 1, pu->parkingexten, 1, NULL, NULL, parkedcall, strdup(pu->parkingexten), ast_free, registrar)) - notify_metermaids(pu->parkingexten, parking_con); - } /* Tell the peer channel the number of the parking space */ if (peer && pu->parkingnum != -1) /* Only say number if it's a number */ ast_say_digits(peer, pu->parkingnum, "", peer->language); + if (con) { + if (!ast_add_extension2(con, 1, pu->parkingexten, 1, NULL, NULL, parkedcall, strdup(pu->parkingexten), ast_free, registrar)) + notify_metermaids(pu->parkingexten, parking_con); + } if (pu->notquiteyet) { /* Wake up parking thread if we're really done */ ast_indicate_data(pu->chan, AST_CONTROL_HOLD,