mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-08 19:08:14 +00:00
Merged 349339; updated .version and ChangeLog
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.8.1@349390 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
19
ChangeLog
19
ChangeLog
@@ -1,3 +1,22 @@
|
||||
2011-12-29 Asterisk Development Team <asteriskteam@digium.com>
|
||||
|
||||
* Asterisk 1.8.8.1 Released.
|
||||
|
||||
* Handle AST_CONTROL_UPDATE_RTP_PEER frames in local bridge loop
|
||||
|
||||
Failing to handle AST_CONTROL_UPDATE_RTP_PEER frames in the local bridge loop
|
||||
causes the loop to exit prematurely. This causes a variety of negative side
|
||||
effects, depending on when the loop exits. This patch handles the frame by
|
||||
essentially swallowing the frame in the local loop, as the current channel
|
||||
drivers expect the RTP bridge to handle the frame, and, in the case of the
|
||||
local bridge loop, no additional action is necessary.
|
||||
|
||||
(closes issue ASTERISK-19095)
|
||||
Reported by: Stefan Schmidt
|
||||
Tested by: Matt Jordan
|
||||
|
||||
Review: https://reviewboard.asterisk.org/r/1640/
|
||||
|
||||
2011-12-15 Asterisk Development Team <asteriskteam@digium.com>
|
||||
|
||||
* Asterisk 1.8.8.0 Released.
|
||||
|
||||
@@ -889,7 +889,8 @@ static enum ast_bridge_result local_bridge_loop(struct ast_channel *c0, struct a
|
||||
(fr->subclass.integer == AST_CONTROL_UNHOLD) ||
|
||||
(fr->subclass.integer == AST_CONTROL_VIDUPDATE) ||
|
||||
(fr->subclass.integer == AST_CONTROL_SRCUPDATE) ||
|
||||
(fr->subclass.integer == AST_CONTROL_T38_PARAMETERS)) {
|
||||
(fr->subclass.integer == AST_CONTROL_T38_PARAMETERS) ||
|
||||
(fr->subclass.integer == AST_CONTROL_UPDATE_RTP_PEER)) {
|
||||
/* If we are going on hold, then break callback mode and P2P bridging */
|
||||
if (fr->subclass.integer == AST_CONTROL_HOLD) {
|
||||
if (instance0->engine->local_bridge) {
|
||||
@@ -910,7 +911,10 @@ static enum ast_bridge_result local_bridge_loop(struct ast_channel *c0, struct a
|
||||
instance0->bridged = instance1;
|
||||
instance1->bridged = instance0;
|
||||
}
|
||||
ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen);
|
||||
/* Since UPDATE_BRIDGE_PEER is only used by the bridging code, don't forward it */
|
||||
if (fr->subclass.integer != AST_CONTROL_UPDATE_RTP_PEER) {
|
||||
ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen);
|
||||
}
|
||||
ast_frfree(fr);
|
||||
} else if (fr->subclass.integer == AST_CONTROL_CONNECTED_LINE) {
|
||||
if (ast_channel_connected_line_macro(who, other, fr, other == c0, 1)) {
|
||||
|
||||
Reference in New Issue
Block a user