Made the abstract jitter buffer resync on some more control frames.
authorRichard Mudgett <rmudgett@digium.com>
Thu, 22 Aug 2013 17:34:46 +0000 (17:34 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 22 Aug 2013 17:34:46 +0000 (17:34 +0000)
Resync the abstract jitter buffer on the following additional control
frames:
AST_CONTROL_HOLD
AST_CONTROL_UNHOLD
AST_CONTROL_T38_PARAMETERS

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397440 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/abstract_jb.c
main/bridge_channel.c

index c968bac..99d7395 100644 (file)
@@ -980,6 +980,9 @@ static struct ast_frame *hook_event_cb(struct ast_channel *chan, struct ast_fram
 
        if (frame->frametype == AST_FRAME_CONTROL) {
                switch(frame->subclass.integer) {
+               case AST_CONTROL_HOLD:
+               case AST_CONTROL_UNHOLD:
+               case AST_CONTROL_T38_PARAMETERS:
                case AST_CONTROL_SRCUPDATE:
                case AST_CONTROL_SRCCHANGE:
                        framedata->jb_impl->force_resync(framedata->jb_obj);
index f49fddc..0759634 100644 (file)
@@ -1529,11 +1529,6 @@ static void bridge_channel_handle_control(struct ast_bridge_channel *bridge_chan
  * When the receiving channel is pulled from the bridge it needs to generate its own UNHOLD.
  * Something similar needs to be done for DTMF begin/end.
  */
-       case AST_CONTROL_VIDUPDATE:
-       case AST_CONTROL_SRCUPDATE:
-       case AST_CONTROL_SRCCHANGE:
-       case AST_CONTROL_T38_PARAMETERS:
-/* BUGBUG may have to do something with a jitter buffer for these. */
                ast_indicate_data(chan, fr->subclass.integer, fr->data.ptr, fr->datalen);
                break;
        case AST_CONTROL_OPTION: