]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Call waiting tone occurs too often, because it's getting serviced by both
authorTilghman Lesher <tilghman@meg.abyt.es>
Thu, 29 May 2008 20:24:11 +0000 (20:24 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Thu, 29 May 2008 20:24:11 +0000 (20:24 +0000)
subchannels.
(closes issue #11354)
 Reported by: cahen
 Patches:
       20080512__bug11354.diff.txt uploaded by Corydon76 (license 14)

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

channels/chan_zap.c

index 96a2838ea3ab7525013ae37e6b60260be2106016..e79520c86015d3a8fbfd8d6f34d9d3ba9365d49f 100644 (file)
@@ -281,10 +281,10 @@ static inline int zt_wait_event(int fd)
 #define MASK_INUSE             (1 << 1)        /*!< Channel currently in use */
 
 #define CALLWAITING_SILENT_SAMPLES     ( (300 * 8) / READ_SIZE) /*!< 300 ms */
-#define CALLWAITING_REPEAT_SAMPLES     ( (10000 * 8) / READ_SIZE) /*!< 300 ms */
+#define CALLWAITING_REPEAT_SAMPLES     ( (10000 * 8) / READ_SIZE) /*!< 10,000 ms */
 #define CIDCW_EXPIRE_SAMPLES           ( (500 * 8) / READ_SIZE) /*!< 500 ms */
 #define MIN_MS_SINCE_FLASH                     ( (2000) )      /*!< 2000 ms */
-#define DEFAULT_RINGT                          ( (8000 * 8) / READ_SIZE)
+#define DEFAULT_RINGT                          ( (8000 * 8) / READ_SIZE) /*!< 8,000 ms */
 
 struct zt_pvt;
 
@@ -4823,8 +4823,10 @@ static struct ast_frame  *zt_read(struct ast_channel *ast)
                        return &p->subs[index].f;
                }
        }
-       if (p->callwaitingrepeat)
+       /* Ensure the CW timer decrements only on a single subchannel */
+       if (p->callwaitingrepeat && zt_get_index(ast, p, 1) == SUB_REAL) {
                p->callwaitingrepeat--;
+       }
        if (p->cidcwexpire)
                p->cidcwexpire--;
        /* Repeat callwaiting */