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
........

Merged revisions 375389 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 375390 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@375391 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2012-10-29 19:31:36 +00:00
parent e2702177a4
commit 8d65c777c8

View File

@@ -1817,10 +1817,15 @@ static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, st
} }
if (peer == chan) { /* pu->notquiteyet = 1 */ if (peer == chan) { /* pu->notquiteyet = 1 */
/* Wake up parking thread if we're really done */ /* Wake up parking thread if we're really done */
pu->hold_method = AST_CONTROL_HOLD; if (ast_test_flag(args, AST_PARK_OPT_RINGING)) {
ast_indicate_data(chan, AST_CONTROL_HOLD, pu->hold_method = AST_CONTROL_RINGING;
S_OR(pu->parkinglot->cfg.mohclass, NULL), ast_indicate(chan, AST_CONTROL_RINGING);
!ast_strlen_zero(pu->parkinglot->cfg.mohclass) ? strlen(pu->parkinglot->cfg.mohclass) + 1 : 0); } 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; pu->notquiteyet = 0;
pthread_kill(parking_thread, SIGURG); pthread_kill(parking_thread, SIGURG);
} }