diff --git a/include/asterisk/strings.h b/include/asterisk/strings.h
index e4bef5f0f3ebbd1f345265a2fa8831108b53ae87..aaf2737bff61475093ccfc79a46b2dc99c9f48ac 100644
--- a/include/asterisk/strings.h
+++ b/include/asterisk/strings.h
@@ -1212,19 +1212,7 @@ static force_inline int attribute_pure ast_str_case_hash(const char *str)
  *
  * \retval str for convenience
  */
-static force_inline char *attribute_pure ast_str_to_lower(char *str)
-{
-	char *str_orig = str;
-	if (!str) {
-		return str;
-	}
-
-	for (; *str; ++str) {
-		*str = tolower(*str);
-	}
-
-	return str_orig;
-}
+char *attribute_pure ast_str_to_lower(char *str);
 
 /*!
  * \brief Convert a string to all upper-case
diff --git a/main/strings.c b/main/strings.c
index 640af6123360f1478630801377f4cbb99bc36fb4..a18bb4843b009c897fe198c9ca1f8e51d1d67a16 100644
--- a/main/strings.c
+++ b/main/strings.c
@@ -421,3 +421,18 @@ int ast_vector_string_split(struct ast_vector_string *dest,
 
 	return 0;
 }
+
+char *attribute_pure ast_str_to_lower(char *str)
+{
+	char *str_orig = str;
+	if (!str) {
+		return str;
+	}
+
+	for (; *str; ++str) {
+		*str = tolower(*str);
+	}
+
+	return str_orig;
+}
+