]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add support for relaying early media in the features attended transfer option.
authorJoshua Colp <jcolp@digium.com>
Tue, 20 Oct 2009 17:46:37 +0000 (17:46 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 20 Oct 2009 17:46:37 +0000 (17:46 +0000)
(closes issue #14828)
Reported by: licedey

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

res/res_features.c

index 7d619c86b0c18e59b7d3b685f09ae9558c1a0433..1893b9df003540b5c6feeb3260f72030d8867dbe 100644 (file)
@@ -1480,10 +1480,12 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
                                                        f = NULL;
                                                        ready=1;
                                                        break;
-                                               } else if (f->subclass != -1) {
+                                               } else if (f->subclass != -1 && f->subclass != AST_CONTROL_PROGRESS) {
                                                        ast_log(LOG_NOTICE, "Don't know what to do about control frame: %d\n", f->subclass);
                                                }
                                                /* else who cares */
+                                       } else if (f->frametype == AST_FRAME_VOICE || f->frametype == AST_FRAME_VIDEO) {
+                                               ast_write(caller, f);
                                        }
 
                                } else if (caller && (active_channel == caller)) {
@@ -1515,6 +1517,8 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
                                                        f = NULL;
                                                        break;
                                                }
+                                       } else if (f->frametype == AST_FRAME_VOICE || f->frametype == AST_FRAME_VIDEO) {
+                                               ast_write(chan, f);
                                        }
                                }
                                if (f)