From fd040025ac8c605219dbd127b44a477be3933815 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ant=C3=B3nio=20Silva?= <asilva@wirelessmundi.com>
Date: Thu, 2 Jun 2022 17:08:39 +0100
Subject: [PATCH 1/3] mod_sms: add app transfer

---
 src/mod/applications/mod_sms/mod_sms.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/src/mod/applications/mod_sms/mod_sms.c b/src/mod/applications/mod_sms/mod_sms.c
index 68ad7d7ccc..25566a84a3 100644
--- a/src/mod/applications/mod_sms/mod_sms.c
+++ b/src/mod/applications/mod_sms/mod_sms.c
@@ -610,6 +610,30 @@ SWITCH_STANDARD_CHAT_APP(reply_function)
 	return SWITCH_STATUS_SUCCESS;
 }
 
+
+SWITCH_STANDARD_CHAT_APP(transfer_function)
+{
+	char *context;
+
+	if (!data) return SWITCH_STATUS_SUCCESS;
+
+	context = strdup(data);
+	if (!context) return SWITCH_STATUS_SUCCESS;
+
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SMS transfer to %s \n", data);
+
+	switch_event_del_header(message, "context");
+	switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, "context", context);
+
+	switch_core_chat_send("GLOBAL", message);
+
+
+	return SWITCH_STATUS_SUCCESS;
+}
+
+
+
+
 /* Macro expands to: switch_status_t mod_sms_load(switch_loadable_module_interface_t **module_interface, switch_memory_pool_t *pool) */
 SWITCH_MODULE_LOAD_FUNCTION(mod_sms_load)
 {
@@ -641,6 +665,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_sms_load)
 	SWITCH_ADD_CHAT_APP(chat_app_interface, "fire", "fire the message", "fire the message", fire_function, "", SCAF_NONE);
 	SWITCH_ADD_CHAT_APP(chat_app_interface, "system", "execute a system command", "execute a sytem command", system_function, "", SCAF_NONE);
 
+	SWITCH_ADD_CHAT_APP(chat_app_interface, "transfer", "transfer a message to another context", "transfer a message to another context", transfer_function, "", SCAF_NONE);
+
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }

From a01644206f46c40f3ded8524f6f94a358b6c0af7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ant=C3=B3nio=20Silva?= <asilva@wirelessmundi.com>
Date: Thu, 2 Jun 2022 18:18:38 +0100
Subject: [PATCH 2/3] mod_sms: add app transfer - fix free context

---
 src/mod/applications/mod_sms/mod_sms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mod/applications/mod_sms/mod_sms.c b/src/mod/applications/mod_sms/mod_sms.c
index 25566a84a3..1e49a51db2 100644
--- a/src/mod/applications/mod_sms/mod_sms.c
+++ b/src/mod/applications/mod_sms/mod_sms.c
@@ -624,10 +624,10 @@ SWITCH_STANDARD_CHAT_APP(transfer_function)
 
 	switch_event_del_header(message, "context");
 	switch_event_add_header_string(message, SWITCH_STACK_BOTTOM, "context", context);
+	switch_safe_free(context);
 
 	switch_core_chat_send("GLOBAL", message);
 
-
 	return SWITCH_STATUS_SUCCESS;
 }
 

From 005286aaad6d2e3fbf8e92bc6f0330c6f0390324 Mon Sep 17 00:00:00 2001
From: Antonio Silva <asilva@wirelessmundi.com>
Date: Wed, 19 Apr 2023 09:27:25 +0100
Subject: [PATCH 3/3] remove extra lines

---
 src/mod/applications/mod_sms/mod_sms.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/mod/applications/mod_sms/mod_sms.c b/src/mod/applications/mod_sms/mod_sms.c
index 1e49a51db2..9370d0f17a 100644
--- a/src/mod/applications/mod_sms/mod_sms.c
+++ b/src/mod/applications/mod_sms/mod_sms.c
@@ -610,7 +610,6 @@ SWITCH_STANDARD_CHAT_APP(reply_function)
 	return SWITCH_STATUS_SUCCESS;
 }
 
-
 SWITCH_STANDARD_CHAT_APP(transfer_function)
 {
 	char *context;
@@ -631,9 +630,6 @@ SWITCH_STANDARD_CHAT_APP(transfer_function)
 	return SWITCH_STATUS_SUCCESS;
 }
 
-
-
-
 /* Macro expands to: switch_status_t mod_sms_load(switch_loadable_module_interface_t **module_interface, switch_memory_pool_t *pool) */
 SWITCH_MODULE_LOAD_FUNCTION(mod_sms_load)
 {