]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 69846 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Tue, 19 Jun 2007 13:00:57 +0000 (13:00 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 19 Jun 2007 13:00:57 +0000 (13:00 +0000)
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

res/res_features.c

index 81ac839504e04deeb2928bfdd28f41a786385b60..b672df72f745df441fca8a2fc58fb598165c6802 100644 (file)
@@ -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,