summaryrefslogtreecommitdiff
path: root/main/channel.c
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2009-06-12 19:07:51 +0000
committerMark Michelson <mmichelson@digium.com>2009-06-12 19:07:51 +0000
commitafcbf2e14f933ff063e41d2d76323355aca5de09 (patch)
tree733ee8cc9e859b4d2fea261361f3174d10476b46 /main/channel.c
parente1c03cbf1a699ce759337283e52e5e0e2ef9ac18 (diff)
Merged revisions 200360 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r200360 | mmichelson | 2009-06-12 14:06:41 -0500 (Fri, 12 Jun 2009) | 10 lines Suppress a warning message and give a better return code when generating inband ringing after a call is answered. (closes issue #15158) Reported by: madkins Patches: 15158.patch uploaded by mmichelson (license 60) Tested by: madkins ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200361 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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 e2d1a8481..e4ab3d780 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -3427,6 +3427,16 @@ int ast_indicate_data(struct ast_channel *chan, int _condition,
switch (condition) {
case AST_CONTROL_RINGING:
ts = ast_get_indication_tone(chan->zone, "ring");
+ /* It is common practice for channel drivers to return -1 if trying
+ * to indicate ringing on a channel which is up. The idea is to let the
+ * core generate the ringing inband. However, we don't want the
+ * warning message about not being able to handle the specific indication
+ * to print nor do we want ast_indicate_data to return an "error" for this
+ * condition
+ */
+ if (chan->_state == AST_STATE_UP) {
+ res = 0;
+ }
break;
case AST_CONTROL_BUSY:
ts = ast_get_indication_tone(chan->zone, "busy");