[zaptel-commits] russell: branch group/vldtmf r1267 - in
/team/group/vldtmf: zaptel.c zaptel.h
zaptel-commits at lists.digium.com
zaptel-commits at lists.digium.com
Tue Aug 8 20:42:40 MST 2006
Author: russell
Date: Tue Aug 8 22:42:39 2006
New Revision: 1267
URL: http://svn.digium.com/view/zaptel?rev=1267&view=rev
Log:
allow the ZT_SENDTONE ioctl to be used to starting/ending DTMF on a channel
Modified:
team/group/vldtmf/zaptel.c
team/group/vldtmf/zaptel.h
Modified: team/group/vldtmf/zaptel.c
URL: http://svn.digium.com/view/zaptel/team/group/vldtmf/zaptel.c?rev=1267&r1=1266&r2=1267&view=diff
==============================================================================
--- team/group/vldtmf/zaptel.c (original)
+++ team/group/vldtmf/zaptel.c Tue Aug 8 22:42:39 2006
@@ -1104,28 +1104,35 @@
static int start_tone(struct zt_chan *chan, int tone)
{
int res = -EINVAL;
+
/* Stop the current tone, no matter what */
chan->tonep = 0;
chan->curtone = NULL;
chan->pdialcount = 0;
chan->txdialbuf[0] = '\0';
chan->dialing = 0;
- if ((tone >= ZT_TONE_MAX) || (tone < -1))
- return -EINVAL;
- /* Just wanted to stop the tone anyway */
- if (tone < 0)
- return 0;
- if (chan->curzone) {
- /* Have a tone zone */
- if (chan->curzone->tones[tone]) {
- chan->curtone = chan->curzone->tones[tone];
- res = 0;
- } else /* Indicate that zone is loaded but no such tone exists */
- res = -ENOSYS;
- } else /* Note that no tone zone exists at the moment */
- res = -ENODATA;
+
+ if (tone == -1) {
+ /* Just stop the current tone */
+ res = 0;
+ } else if ((tone >= 0 && tone <= ZT_TONE_MAX)) {
+ if (chan->curzone) {
+ /* Have a tone zone */
+ if (chan->curzone->tones[tone]) {
+ chan->curtone = chan->curzone->tones[tone];
+ res = 0;
+ } else /* Indicate that zone is loaded but no such tone exists */
+ res = -ENOSYS;
+ } else /* Note that no tone zone exists at the moment */
+ res = -ENODATA;
+ } else if (tone >= ZT_TONE_DTMF_BASE && tone <= ZT_TONE_DTMF_MAX) {
+ chan->curtone = &dtmf_tones[tone - ZT_TONE_DTMF_BASE];
+ res = 0;
+ }
+
if (chan->curtone)
zt_init_tone_state(&chan->ts, chan->curtone);
+
return res;
}
Modified: team/group/vldtmf/zaptel.h
URL: http://svn.digium.com/view/zaptel/team/group/vldtmf/zaptel.h?rev=1267&r1=1266&r2=1267&view=diff
==============================================================================
--- team/group/vldtmf/zaptel.h (original)
+++ team/group/vldtmf/zaptel.h Tue Aug 8 22:42:39 2006
@@ -667,6 +667,32 @@
#define ZT_TONE_CUST2 9
#define ZT_TONE_STUTTER 10
#define ZT_TONE_MAX 16
+
+#define ZT_TONE_DTMF_BASE 64
+
+/*
+ * These must be in the same order as the dtmf_tones array in tones.h
+ */
+enum {
+ ZT_TONE_DTMF_0 = ZT_TONE_DTMF_BASE,
+ ZT_TONE_DTMF_1,
+ ZT_TONE_DTMF_2,
+ ZT_TONE_DTMF_3,
+ ZT_TONE_DTMF_4,
+ ZT_TONE_DTMF_5,
+ ZT_TONE_DTMF_6,
+ ZT_TONE_DTMF_7,
+ ZT_TONE_DTMF_8,
+ ZT_TONE_DTMF_9,
+ ZT_TONE_DTMF_s,
+ ZT_TONE_DTMF_p,
+ ZT_TONE_DTMF_A,
+ ZT_TONE_DTMF_B,
+ ZT_TONE_DTMF_C,
+ ZT_TONE_DTMF_D
+};
+
+#define ZT_TONE_DTMF_MAX ZT_TONE_DTMF_D
#define ZT_MAX_CADENCE 16
More information about the zaptel-commits
mailing list