From 3eff99d3bd62cbbc176c71f77a2df495f4e46e62 Mon Sep 17 00:00:00 2001 From: Yalu Zhang <yalu.zhang@iopsys.eu> Date: Thu, 14 Mar 2024 15:52:47 +0100 Subject: [PATCH] Support K-break signal (cherry picked from commit 10476ca2acd5bdad8062eb355d9c3558845c85cb) --- libvoice/common.c | 3 ++- libvoice/libvoice.h | 1 + line.c | 6 ++++++ schemas/ubus/endpt.json | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libvoice/common.c b/libvoice/common.c index a7d1311..d2ace08 100644 --- a/libvoice/common.c +++ b/libvoice/common.c @@ -72,7 +72,8 @@ const struct voice_signal_t signal_map[] = { // List of signals requested by Ast { .name = "dtmfC", .signal = VOICE_SIG_DTMFC }, { .name = "dtmfD", .signal = VOICE_SIG_DTMFD }, { .name = "keypad", .signal = VOICE_SIG_INGRESS_DTMF }, - { .name = "answer", .signal = VOICE_SIG_ANSWER }, + { .name = "answer", .signal = VOICE_SIG_ANSWER }, + { .name = "k-break", .signal = VOICE_SIG_K_BREAK }, { .name = "", .signal = VOICE_SIG_LAST }, }; diff --git a/libvoice/libvoice.h b/libvoice/libvoice.h index dcb5d90..d5123ec 100644 --- a/libvoice/libvoice.h +++ b/libvoice/libvoice.h @@ -96,6 +96,7 @@ enum VOICE_SIGNAL { VOICE_SIG_DTMFD, VOICE_SIG_INGRESS_DTMF, // Simulate phone keypad button pressing VOICE_SIG_ANSWER, + VOICE_SIG_K_BREAK, VOICE_SIG_LAST }; diff --git a/line.c b/line.c index ab81b1c..531049f 100644 --- a/line.c +++ b/line.c @@ -366,6 +366,12 @@ int line_signal(int line, const char *signame, const char *data, struct voice_ub } break; + case VOICE_SIG_K_BREAK: + if (lines[line].type == VOICE_LINE_FXS) { + res = voice_line_signal(line, -1, sig->signal, atoi(data), NULL); + } + break; + default: res = voice_line_signal(line, -1, sig->signal, atoi(data), NULL); break; diff --git a/schemas/ubus/endpt.json b/schemas/ubus/endpt.json index 9fa58a4..a586240 100644 --- a/schemas/ubus/endpt.json +++ b/schemas/ubus/endpt.json @@ -64,7 +64,8 @@ "dtmf8", "dtmf9", "dtmf*", - "dtmf#" + "dtmf#", + "k-break" ] }, "state": { -- GitLab