]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 375389 via svnmerge from
authorAutomerge script <automerge@asterisk.org>
Mon, 29 Oct 2012 20:25:32 +0000 (20:25 +0000)
committerAutomerge script <automerge@asterisk.org>
Mon, 29 Oct 2012 20:25:32 +0000 (20:25 +0000)
file:///srv/subversion/repos/asterisk/branches/10

................
  r375389 | rmudgett | 2012-10-29 14:28:38 -0500 (Mon, 29 Oct 2012) | 16 lines

  Fix the Park 'r' option when a channel parks itself.

  When a channel uses the Park appliation to park itself with the 'r'
  option, the channel hears music-on-hold instead of the requested ringing.

  * Added a missing check for the 'r' option when a channel parks itself.

  (closes issue ASTERISK-19382)
  Reported by: James Stocks
  Patches by: dsessions

  Review: https://reviewboard.asterisk.org/r/2148/
  ........

  Merged revisions 375388 from http://svn.asterisk.org/svn/asterisk/branches/1.8
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10-digiumphones@375414 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/features.c

index 27694d1cffa2601f2cb3fa743ea2fff508a9a213..8e0df929b81963dce16854fced575c2359452dec 100644 (file)
@@ -1642,10 +1642,15 @@ static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, st
        }
        if (peer == chan) { /* pu->notquiteyet = 1 */
                /* Wake up parking thread if we're really done */
-               pu->hold_method = AST_CONTROL_HOLD;
-               ast_indicate_data(chan, AST_CONTROL_HOLD,
-                       S_OR(pu->parkinglot->cfg.mohclass, NULL),
-                       !ast_strlen_zero(pu->parkinglot->cfg.mohclass) ? strlen(pu->parkinglot->cfg.mohclass) + 1 : 0);
+               if (ast_test_flag(args, AST_PARK_OPT_RINGING)) {
+                       pu->hold_method = AST_CONTROL_RINGING;
+                       ast_indicate(chan, AST_CONTROL_RINGING);
+               } else {
+                       pu->hold_method = AST_CONTROL_HOLD;
+                       ast_indicate_data(chan, AST_CONTROL_HOLD,
+                               S_OR(pu->parkinglot->cfg.mohclass, NULL),
+                               !ast_strlen_zero(pu->parkinglot->cfg.mohclass) ? strlen(pu->parkinglot->cfg.mohclass) + 1 : 0);
+               }
                pu->notquiteyet = 0;
                pthread_kill(parking_thread, SIGURG);
        }