openwrt/package/kernel/lantiq/ltq-tapi/patches/410-custom_pulsedigit_time.patch
Jonas Albrecht 74a5718223 lantiq: ltq-tapi: add customer pulse digit time
With this patch you can change the pulse digit time by loading the Lantiq
FXS driver kernel module called ltq-tapi. This is relevant for old
rotaryphones that uses pulsedialing.

The default values are:
30-80ms for the low pulse
30-80ms for the high pulse
300ms for minimum Interdigit time

this is OK but on some Phones it can be usefull to customize the values
If you want to change the values to high and low pulse to 40-90ms and
minimum interdigit time to 400ms

than change /etc/modules.d/20-ltq-tapi to (without linebrakes):
drv_tapi min_digit_low=40  min_digit_high=90 max_digit_low=40 \
max_digit_high=90 min_interdigit=400

Signed-off-by: Jonas Albrecht <plonkbong100@protonmail.com>
2022-11-18 20:27:52 +01:00

53 lines
2.1 KiB
Diff

--- a/src/drv_tapi.h
+++ b/src/drv_tapi.h
@@ -25,6 +25,7 @@
#include <lib_bufferpool.h>
#include "drv_tapi_io.h"
#include "drv_tapi_event.h"
+#include <linux/module.h>
/* ============================= */
--- a/src/drv_tapi_dial.c
+++ b/src/drv_tapi_dial.c
@@ -20,6 +20,19 @@
#include "drv_tapi.h"
#include "drv_tapi_errno.h"
+
+
+static unsigned int min_digit_low = TAPI_MIN_DIGIT_LOW;
+static unsigned int max_digit_low = TAPI_MAX_DIGIT_LOW;
+static unsigned int min_digit_high = TAPI_MIN_DIGIT_HIGH;
+static unsigned int max_digit_high = TAPI_MAX_DIGIT_HIGH;
+static unsigned int min_interdigit = TAPI_MIN_INTERDIGIT;
+module_param(min_digit_low, uint, 0);
+module_param(max_digit_low, uint, 0);
+module_param(min_digit_high, uint, 0);
+module_param(max_digit_high, uint, 0);
+module_param(min_interdigit, uint, 0);
+
/*lint -save -esym(749, TAPI_HOOK_STATE_PULSE_H_FLASH_VAL) */
/* ============================= */
/* Local macros and definitions */
@@ -408,14 +421,14 @@ IFX_int32_t IFX_TAPI_Dial_Initialise(TAP
}
}
/* set default values for the validation timers */
- pTapiDialData->TapiDigitLowTime.nMinTime = TAPI_MIN_DIGIT_LOW;
- pTapiDialData->TapiDigitLowTime.nMaxTime = TAPI_MAX_DIGIT_LOW;
- pTapiDialData->TapiDigitHighTime.nMinTime = TAPI_MIN_DIGIT_HIGH;
- pTapiDialData->TapiDigitHighTime.nMaxTime = TAPI_MAX_DIGIT_HIGH;
+ pTapiDialData->TapiDigitLowTime.nMinTime = min_digit_low;
+ pTapiDialData->TapiDigitLowTime.nMaxTime = max_digit_low;
+ pTapiDialData->TapiDigitHighTime.nMinTime = min_digit_high;
+ pTapiDialData->TapiDigitHighTime.nMaxTime = max_digit_high;
pTapiDialData->TapiHookFlashTime.nMinTime = TAPI_MIN_FLASH;
pTapiDialData->TapiHookFlashTime.nMaxTime = TAPI_MAX_FLASH;
pTapiDialData->TapiHookFlashMakeTime.nMinTime = TAPI_MIN_FLASH_MAKE;
- pTapiDialData->TapiInterDigitTime.nMinTime = TAPI_MIN_INTERDIGIT;
+ pTapiDialData->TapiInterDigitTime.nMinTime = min_interdigit;
pTapiDialData->TapiHookOffTime.nMinTime = TAPI_MIN_OFF_HOOK;
pTapiDialData->TapiHookOnTime.nMinTime = TAPI_MIN_ON_HOOK;
/* start hook state FSM in onhook state */