From 4f06de7cf8b5db62cfda69cf507ebe27c340dc50 Mon Sep 17 00:00:00 2001
From: Mark Petersen <bugs.digium.com@zombie.dk>
Date: Wed, 8 Dec 2021 19:07:59 +0100
Subject: [PATCH] app_voicemail.c: Support for Danish syntax in VM

added support for playing the correct plural sound file
dependen on where you have 1 or multipe messages
based on the existing SE/NO code

ASTERISK-29797

Change-Id: I88aa814d02f3772bb80b474204b1ffb26fe438c2
---
 apps/app_voicemail.c                          | 47 +++++++++++++++++++
 .../app_voicemail_danish_syntax.txt           |  6 +++
 2 files changed, 53 insertions(+)
 create mode 100644 doc/CHANGES-staging/app_voicemail_danish_syntax.txt

diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index ebfa196ad7..6dec471db9 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -9780,6 +9780,51 @@ static int vm_intro_no(struct ast_channel *chan, struct vm_state *vms)
 	return res;
 }
 
+/* Danish syntax */
+static int vm_intro_da(struct ast_channel *chan, struct vm_state *vms)
+{
+	/* Introduce messages they have */
+	int res;
+
+	res = ast_play_and_wait(chan, "vm-youhave");
+	if (res)
+		return res;
+
+	if (!vms->oldmessages && !vms->newmessages && !vms->urgentmessages) {
+		res = ast_play_and_wait(chan, "vm-no");
+		res = res ? res : ast_play_and_wait(chan, "vm-messages");
+		return res;
+	}
+
+	if (vms->newmessages) {
+		if ((vms->newmessages == 1)) {
+			res = ast_play_and_wait(chan, "digits/1");
+			res = res ? res : ast_play_and_wait(chan, "vm-INBOX");
+			res = res ? res : ast_play_and_wait(chan, "vm-message");
+		} else {
+			res = say_and_wait(chan, vms->newmessages, ast_channel_language(chan));
+			res = res ? res : ast_play_and_wait(chan, "vm-INBOXs");
+			res = res ? res : ast_play_and_wait(chan, "vm-messages");
+		}
+		if (!res && vms->oldmessages)
+			res = ast_play_and_wait(chan, "vm-and");
+	}
+	if (!res && vms->oldmessages) {
+		if (vms->oldmessages == 1) {
+			res = ast_play_and_wait(chan, "digits/1");
+			res = res ? res : ast_play_and_wait(chan, "vm-Old");
+			res = res ? res : ast_play_and_wait(chan, "vm-message");
+		} else {
+			res = say_and_wait(chan, vms->oldmessages, ast_channel_language(chan));
+			res = res ? res : ast_play_and_wait(chan, "vm-Olds");
+			res = res ? res : ast_play_and_wait(chan, "vm-messages");
+		}
+	}
+
+	return res;
+}
+
+
 /* GERMAN syntax */
 static int vm_intro_de(struct ast_channel *chan, struct vm_state *vms)
 {
@@ -10260,6 +10305,8 @@ static int vm_intro(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm
 		return vm_intro_nl(chan, vms);
 	} else if (!strncasecmp(ast_channel_language(chan), "no", 2)) {  /* NORWEGIAN syntax */
 		return vm_intro_no(chan, vms);
+	} else if (!strncasecmp(ast_channel_language(chan), "da", 2)) {  /* DANISH syntax */
+		return vm_intro_da(chan, vms);
 	} else if (!strncasecmp(ast_channel_language(chan), "pl", 2)) {  /* POLISH syntax */
 		return vm_intro_pl(chan, vms);
 	} else if (!strncasecmp(ast_channel_language(chan), "pt_BR", 5)) {  /* BRAZILIAN PORTUGUESE syntax */
diff --git a/doc/CHANGES-staging/app_voicemail_danish_syntax.txt b/doc/CHANGES-staging/app_voicemail_danish_syntax.txt
new file mode 100644
index 0000000000..5e6cdd37bf
--- /dev/null
+++ b/doc/CHANGES-staging/app_voicemail_danish_syntax.txt
@@ -0,0 +1,6 @@
+Subject: app_voicemail
+Subject: Applications
+
+added support for Danish syntax, playing the correct plural sound file
+dependen on where you have 1 or multipe messages
+based on the existing SE/NO code
-- 
GitLab