aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-29 20:26:18 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-05-29 20:26:18 +0000
commit2b0bf6bfdc5e3ac821cf4284232e9f6117fbb39c (patch)
treedfce50c36faa043dc3a294a5264dbe0fbc64d878 /channels
parent7644f4e2857b098fa16ede74bad8f483d2c896da (diff)
Merged revisions 119072 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r119072 | tilghman | 2008-05-29 15:25:33 -0500 (Thu, 29 May 2008) | 15 lines Merged revisions 119071 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r119071 | tilghman | 2008-05-29 15:24:11 -0500 (Thu, 29 May 2008) | 7 lines Call waiting tone occurs too often, because it's getting serviced by both subchannels. (closes issue #11354) Reported by: cahen Patches: 20080512__bug11354.diff.txt uploaded by Corydon76 (license 14) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@119073 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_zap.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 491c94a2f..e4bdd34da 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -327,10 +327,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;
@@ -5422,8 +5422,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 */