Merged revisions 224773 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Tue, 20 Oct 2009 17:47:34 +0000 (17:47 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 20 Oct 2009 17:47:34 +0000 (17:47 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r224773 | file | 2009-10-20 14:46:37 -0300 (Tue, 20 Oct 2009) | 5 lines

  Add support for relaying early media in the features attended transfer option.

  (closes issue #14828)
  Reported by: licedey
........

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

main/features.c

index 61072ad..132281c 100644 (file)
@@ -2505,10 +2505,12 @@ static struct ast_channel *feature_request_and_dial(struct ast_channel *caller,
                                        if (ast_channel_connected_line_macro(chan, caller, f, 1, 1)) {
                                                ast_indicate_data(caller, AST_CONTROL_CONNECTED_LINE, f->data.ptr, f->datalen);
                                        }
-                               } 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)) {
@@ -2542,6 +2544,8 @@ static struct ast_channel *feature_request_and_dial(struct ast_channel *caller,
                                                f = NULL;
                                                break;
                                        }
+                               } else if (f->frametype == AST_FRAME_VOICE || f->frametype == AST_FRAME_VIDEO) {
+                                       ast_write(chan, f);
                                }
                        }
                }