Fix bad RTP media bridges in directmedia calls on peers separated by multiple Asterisk nodes.

In a situation involving devices on separate Asterisk trunks, the remote RTP bridge would
break when starting a call with directmedia. This patch queues a new type of control frame
so that our RTP bridge loop can properly detect when these situations occur and check to see
if peers need to be updated in order to send their media to the proper location.

(Closes issue ASTERISK-18340)
Reported by: Thomas Arimont
(Closes issue ASTERISK-17725)
Reported by: kwk
Tested by: twilson, jrose


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@336294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jonathan Rose
2011-09-16 19:53:40 +00:00
parent ea573b112f
commit 21714a05b6
4 changed files with 15 additions and 5 deletions

View File

@@ -4291,6 +4291,7 @@ static int attribute_const is_visible_indication(enum ast_control_frame_type con
case AST_CONTROL_READ_ACTION:
case AST_CONTROL_AOC:
case AST_CONTROL_END_OF_Q:
case AST_CONTROL_UPDATE_RTP_PEER:
break;
case AST_CONTROL_INCOMPLETE:
@@ -4478,6 +4479,7 @@ int ast_indicate_data(struct ast_channel *chan, int _condition,
case AST_CONTROL_READ_ACTION:
case AST_CONTROL_AOC:
case AST_CONTROL_END_OF_Q:
case AST_CONTROL_UPDATE_RTP_PEER:
/* Nothing left to do for these. */
res = 0;
break;