summaryrefslogtreecommitdiff
path: root/main/channel.c
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-01-27 07:04:52 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-01-27 07:04:52 -0600
commit6f645a6d4e508ad6960fbb9825d4d26694b8087c (patch)
tree1500e4c70a785800c8f6ae90b30f2da4d0ff26ac /main/channel.c
parent08bc42201d9b3d9f9c402d2dc9ae3c3de961ff89 (diff)
parent1061539b75811d9115dcbc0be46967515bd9e2d1 (diff)
Merge "media: Add experimental support for RTCP feedback."
Diffstat (limited to 'main/channel.c')
-rw-r--r--main/channel.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/main/channel.c b/main/channel.c
index d916b7c05..6e88a2906 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -1531,6 +1531,7 @@ int ast_is_deferrable_frame(const struct ast_frame *frame)
case AST_FRAME_IAX:
case AST_FRAME_CNG:
case AST_FRAME_MODEM:
+ case AST_FRAME_RTCP:
return 0;
}
return 0;
@@ -2866,6 +2867,7 @@ int __ast_answer(struct ast_channel *chan, unsigned int delay)
case AST_FRAME_IMAGE:
case AST_FRAME_HTML:
case AST_FRAME_MODEM:
+ case AST_FRAME_RTCP:
done = 1;
break;
case AST_FRAME_CONTROL:
@@ -4355,6 +4357,14 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
*/
ast_read_generator_actions(chan, f);
break;
+ case AST_FRAME_RTCP:
+ /* Incoming RTCP feedback needs to get to the translator for
+ * outgoing media, which means we treat it as an ast_write */
+ if (ast_channel_writetrans(chan)) {
+ ast_translate(ast_channel_writetrans(chan), f, 0);
+ }
+ ast_frfree(f);
+ f = &ast_null_frame;
default:
/* Just pass it on! */
break;