]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Suppress a warning message and give a better return code when generating
authorMark Michelson <mmichelson@digium.com>
Fri, 12 Jun 2009 19:06:41 +0000 (19:06 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 12 Jun 2009 19:06:41 +0000 (19:06 +0000)
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/branches/1.4@200360 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/channel.c

index 9fc6ff78aff9c01e7de345d4fe6e427ce749d032..37d8ac011d1a7defc0e4ab38a7c30a0127ffe309 100644 (file)
@@ -2555,6 +2555,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");