asterisk-chan-lantiq: apply hook state timing in right order
authorDaniel Golle <daniel@makrotopia.org>
Thu, 20 Jun 2024 11:11:56 +0000 (12:11 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Tue, 25 Jun 2024 03:44:54 +0000 (04:44 +0100)
Apply hook state timing parameters starting from the biggest
time interval down to the shortest, so the required conditions are
always true while applying.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
net/asterisk-chan-lantiq/Makefile
net/asterisk-chan-lantiq/patches/0002-configure-hook-state-machine-timing.patch

index 67ca13e0f9d7f69d6ccbe6111fc5e0308bb5c328..08cd174a8bd80ec1c959d7d419803c8df12129df 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=asterisk-chan-lantiq
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_URL:=https://github.com/kochstefan/asterisk_channel_lantiq.git
 PKG_SOURCE_VERSION:=2f029ec8778420538c8151c6aceba0f7b44b07c9
index 015ab7afde145764121cad53fd992ccb101f6d7d..8d4ed3a04e6765b10df5e45f0b68186c2d67bc37 100644 (file)
@@ -1,4 +1,4 @@
-From 90c67696fa6676487bb40f391d6cae037175f418 Mon Sep 17 00:00:00 2001
+From 2a379aa2490218d3f15585a8d77b13a17d9eed6b Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel@makrotopia.org>
 Date: Tue, 18 Jun 2024 19:41:38 +0100
 Subject: [PATCH 2/2] configure hook state machine timing
@@ -131,20 +131,20 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
 +              /* Configure hook state machine timing */
 +              memset(&line_hook_vt, 0, sizeof(line_hook_vt));
-+              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_DIGITLOW_TIME;
-+              line_hook_vt.nMinTime = dev_ctx.digit_low_time_min;
-+              line_hook_vt.nMaxTime = dev_ctx.digit_low_time_max;
++              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_HOOKON_TIME;
++              line_hook_vt.nMinTime = dev_ctx.hook_on_time;
++              line_hook_vt.nMaxTime = dev_ctx.hook_on_time;
 +              if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_HOOK_VT_SET, &line_hook_vt)) {
-+                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_DIGITLOW_TIME %d failed\n", c);
++                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_HOOKON_TIME %d failed\n", c);
 +                      goto load_error_st;
 +              }
 +
 +              memset(&line_hook_vt, 0, sizeof(line_hook_vt));
-+              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_DIGITHIGH_TIME;
-+              line_hook_vt.nMinTime = dev_ctx.digit_high_time_min;
-+              line_hook_vt.nMaxTime = dev_ctx.digit_high_time_max;
++              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_HOOKOFF_TIME;
++              line_hook_vt.nMinTime = dev_ctx.hook_off_time;
++              line_hook_vt.nMaxTime = dev_ctx.hook_off_time;
 +              if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_HOOK_VT_SET, &line_hook_vt)) {
-+                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_DIGITHIGH_TIME %d failed\n", c);
++                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_HOOKOFF_TIME %d failed\n", c);
 +                      goto load_error_st;
 +              }
 +
@@ -158,20 +158,20 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +              }
 +
 +              memset(&line_hook_vt, 0, sizeof(line_hook_vt));
-+              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_HOOKOFF_TIME;
-+              line_hook_vt.nMinTime = dev_ctx.hook_off_time;
-+              line_hook_vt.nMaxTime = dev_ctx.hook_off_time;
++              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_DIGITLOW_TIME;
++              line_hook_vt.nMinTime = dev_ctx.digit_low_time_min;
++              line_hook_vt.nMaxTime = dev_ctx.digit_low_time_max;
 +              if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_HOOK_VT_SET, &line_hook_vt)) {
-+                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_HOOKOFF_TIME %d failed\n", c);
++                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_DIGITLOW_TIME %d failed\n", c);
 +                      goto load_error_st;
 +              }
 +
 +              memset(&line_hook_vt, 0, sizeof(line_hook_vt));
-+              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_HOOKON_TIME;
-+              line_hook_vt.nMinTime = dev_ctx.hook_on_time;
-+              line_hook_vt.nMaxTime = dev_ctx.hook_on_time;
++              line_hook_vt.nType = IFX_TAPI_LINE_HOOK_VT_DIGITHIGH_TIME;
++              line_hook_vt.nMinTime = dev_ctx.digit_high_time_min;
++              line_hook_vt.nMaxTime = dev_ctx.digit_high_time_max;
 +              if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_HOOK_VT_SET, &line_hook_vt)) {
-+                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_HOOKON_TIME %d failed\n", c);
++                      ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_VT_DIGITHIGH_TIME %d failed\n", c);
 +                      goto load_error_st;
 +              }
 +