Merged revisions 64240 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Mon, 14 May 2007 17:25:25 +0000 (17:25 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 14 May 2007 17:25:25 +0000 (17:25 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r64240 | file | 2007-05-14 13:23:51 -0400 (Mon, 14 May 2007) | 2 lines

Fix scenario where if a phone that simply called Echo() put itself on hold it could never get off hold.

........

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

main/channel.c

index e6c1a8c..6ada607 100644 (file)
@@ -2686,8 +2686,11 @@ int ast_write(struct ast_channel *chan, struct ast_frame *fr)
                                res = ast_senddigit_end(chan, fr->subclass, fr->len);
                                ast_channel_lock(chan);
                                CHECK_BLOCKING(chan);
+                       } else if (fr->frametype == AST_FRAME_CONTROL && fr->subclass == AST_CONTROL_UNHOLD) {
+                               /* This is a side case where Echo is basically being called and the person put themselves on hold and took themselves off hold */
+                               res = (chan->tech->indicate == NULL) ? 0 :
+                                       chan->tech->indicate(chan, fr->subclass, fr->data, fr->datalen);
                        }
-
                        res = 0;        /* XXX explain, why 0 ? */
                        goto done;
                }