chan_dahdi: Configurable dialed digit timeouts

Analog phones dial overlap dialing and it is chan_dahdi's job to read the
numbers.  It has three timeout constants that this commit converts to
channel-level configuration options:

* firstdigit_timeout: Default time (ms) to detect first digit

* interdigit_timeout: Default time (ms) to detect following digits

* matchdigit_timeout: Default time (ms) to wait in case of ambiguous
match.  This happens when the dialed digits match a number in the current
context but are also the prefix of another number.

Change-Id: Ib728fa900a4f6ae56d1ed810aba61b6593fb7213
This commit is contained in:
Tzafrir Cohen
2018-03-21 14:30:18 +02:00
committed by Richard Mudgett
parent e538fc8e86
commit 6301531416
7 changed files with 118 additions and 29 deletions

View File

@@ -34,6 +34,13 @@
#define READ_SIZE 160
#define RING_PATTERNS 3
/*! \brief Default time (ms) to detect first digit */
#define ANALOG_FIRST_DIGIT_TIMEOUT 16000
/*! \brief Default time (ms) to detect following digits */
#define ANALOG_INTER_DIGIT_TIMEOUT 8000
/*! \brief Default time (ms) to wait, in case of ambiguous match */
#define ANALOG_MATCH_DIGIT_TIMEOUT 3000
/* Signalling types supported */
enum analog_sigtype {
ANALOG_SIG_NONE = -1,
@@ -237,6 +244,9 @@ struct analog_callback {
const char *(* const get_orig_dialstring)(void *pvt);
int (* const have_progressdetect)(void *pvt);
int (* const get_firstdigit_timeout)(void *pvt);
int (* const get_interdigit_timeout)(void *pvt);
int (* const get_matchdigit_timeout)(void *pvt);
};
/*! Global analog callbacks to the upper layer. */