mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
Merged revisions 293807 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r293807 | rmudgett | 2010-11-03 13:35:19 -0500 (Wed, 03 Nov 2010) | 34 lines Merged revisions 293806 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r293806 | rmudgett | 2010-11-03 13:31:57 -0500 (Wed, 03 Nov 2010) | 27 lines Merged revisions 293805 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293805 | rmudgett | 2010-11-03 13:23:04 -0500 (Wed, 03 Nov 2010) | 20 lines Party A in an analog 3-way call would continue to hear ringback after party C answers. All parties are analog FXS ports. 1) A calls B. 2) A flash hooks to call C. 3) A flash hooks to bring C into 3-way call before C answers. (A and B hear ringback) 4) C answers 5) A continues to hear ringback during the 3-way call. (All parties can hear each other.) * Fixed use of wrong variable in dahdi_bridge() that stopped ringback on the wrong subchannel. * Made several debug messages have more information. A similar issue happens if B and C are SIP channels. B continues to hear ringback. For some reason this only affects v1.8 and trunk. * Don't start ringback on the real and 3-way subchannels when creating the 3-way conference. Removing this code is benign on v1.6.2 and earlier. ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@293808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -3170,7 +3170,9 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_
|
||||
/* Lets see what we're up to */
|
||||
if (((ast->pbx) || (ast->_state == AST_STATE_UP)) &&
|
||||
(p->transfertobusy || (ast->_state != AST_STATE_BUSY))) {
|
||||
ast_verb(3, "Building conference on call on %s and %s\n", p->subs[ANALOG_SUB_THREEWAY].owner->name, p->subs[ANALOG_SUB_REAL].owner->name);
|
||||
ast_verb(3, "Building conference call with %s and %s\n",
|
||||
p->subs[ANALOG_SUB_THREEWAY].owner->name,
|
||||
p->subs[ANALOG_SUB_REAL].owner->name);
|
||||
/* Put them in the threeway, and flip */
|
||||
analog_set_inthreeway(p, ANALOG_SUB_THREEWAY, 1);
|
||||
analog_set_inthreeway(p, ANALOG_SUB_REAL, 1);
|
||||
@@ -3182,11 +3184,6 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_
|
||||
ast_queue_control(p->subs[orig_3way_sub].owner, AST_CONTROL_UNHOLD);
|
||||
}
|
||||
p->owner = p->subs[ANALOG_SUB_REAL].owner;
|
||||
if (ast->_state == AST_STATE_RINGING) {
|
||||
ast_debug(1, "Enabling ringtone on real and threeway\n");
|
||||
analog_play_tone(p, ANALOG_SUB_REAL, ANALOG_TONE_RINGTONE);
|
||||
analog_play_tone(p, ANALOG_SUB_THREEWAY, ANALOG_TONE_RINGTONE);
|
||||
}
|
||||
} else {
|
||||
ast_verb(3, "Dumping incomplete call on %s\n", p->subs[ANALOG_SUB_THREEWAY].owner->name);
|
||||
analog_swap_subs(p, ANALOG_SUB_THREEWAY, ANALOG_SUB_REAL);
|
||||
|
Reference in New Issue
Block a user