diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c
index be48409376..cc2592790f 100755
--- a/libs/freetdm/mod_freetdm/mod_freetdm.c
+++ b/libs/freetdm/mod_freetdm/mod_freetdm.c
@@ -3434,6 +3434,7 @@ SWITCH_STANDARD_API(ft_function)
 		char tracepath[255];
 		unsigned i = 0;
 		uint32_t chan_id = 0;
+		uint32_t span_id = 0;
 		uint32_t chan_count = 0;
 		ftdm_span_t *span = NULL;
 		ftdm_channel_t *chan = NULL;
@@ -3454,18 +3455,19 @@ SWITCH_STANDARD_API(ft_function)
 				goto end;
 			}
 		}
+		span_id = ftdm_span_get_id(span);
 		if (chan_id) {
 			chan = ftdm_span_get_channel(span, chan_id);
-			snprintf(tracepath, sizeof(tracepath), "%s-in-c%d", argv[1], chan_id);
+			snprintf(tracepath, sizeof(tracepath), "%s-in-s%dc%d", argv[1], span_id, chan_id);
 			ftdm_channel_command(chan, FTDM_COMMAND_TRACE_INPUT, tracepath);
-			snprintf(tracepath, sizeof(tracepath), "%s-out-c%d", argv[1], chan_id);
+			snprintf(tracepath, sizeof(tracepath), "%s-out-s%dc%d", argv[1], span_id, chan_id);
 			ftdm_channel_command(chan, FTDM_COMMAND_TRACE_OUTPUT, tracepath);
 		} else {
 			for (i = 1; i <= chan_count; i++) {
 				chan = ftdm_span_get_channel(span, i);
-				snprintf(tracepath, sizeof(tracepath), "%s-in-c%d", argv[1], i);
+				snprintf(tracepath, sizeof(tracepath), "%s-in-s%dc%d", argv[1], span_id, i);
 				ftdm_channel_command(chan, FTDM_COMMAND_TRACE_INPUT, tracepath);
-				snprintf(tracepath, sizeof(tracepath), "%s-out-c%d", argv[1], i);
+				snprintf(tracepath, sizeof(tracepath), "%s-out-s%dc%d", argv[1], span_id, i);
 				ftdm_channel_command(chan, FTDM_COMMAND_TRACE_OUTPUT, tracepath);
 			}
 		}