diff --git a/configs/samples/pjproject.conf.sample b/configs/samples/pjproject.conf.sample
index 03149c453975989249602f3a5cb90a11d132f5e7..273384b82b42870d6182db2542daa9edcbdaa4c8 100644
--- a/configs/samples/pjproject.conf.sample
+++ b/configs/samples/pjproject.conf.sample
@@ -52,5 +52,8 @@
                      ; (default: "")
 ;asterisk_debug =    ; A comma separated list of pjproject log levels to map to
                      ; Asterisk debug
-                     ; (default: "3,4,5,6")
+                     ; (default: "3,4")
+;asterisk_trace =    ; A comma separated list of pjproject log levels to map to
+                     ; Asterisk trace
+                     ; (default: "5,6")
 ;type=               ; Must be of type log_mappings (default: "")
diff --git a/doc/CHANGES-staging/res_pjproject.txt b/doc/CHANGES-staging/res_pjproject.txt
new file mode 100644
index 0000000000000000000000000000000000000000..132c9506b83d82ee5e623d372a1d4b2303f664d4
--- /dev/null
+++ b/doc/CHANGES-staging/res_pjproject.txt
@@ -0,0 +1,8 @@
+Subject: res_pjproject
+
+In pjproject.conf you can now map pjproject log levels
+to the Asterisk TRACE log level.  The default mappings
+have therefore changed so that only pjproject levels
+3 and 4 are mapped to DEBUG and 5 and 6 are now mapped
+to TRACE.  Previously 3, 4, 5, and 6 were all mapped to
+DEBUG.
diff --git a/res/res_pjproject.c b/res/res_pjproject.c
index f6dce4cd9a19f2a18c03b351b2ad93b4413fda66..4047acae39105c9b60f302429ac08466ffcf69bb 100644
--- a/res/res_pjproject.c
+++ b/res/res_pjproject.c
@@ -29,7 +29,10 @@
  *  - 0: LOG_ERROR
  *  - 1: LOG_ERROR
  *  - 2: LOG_WARNING
- *  - 3 and above: equivalent to ast_debug(level, ...) for res_pjproject.so
+ *  - 3: equivalent to ast_debug(level, ...) for res_pjproject.so
+ *  - 4: equivalent to ast_debug(level, ...) for res_pjproject.so
+ *  - 5: equivalent to ast_trace(level, ...) for res_pjproject.so
+ *  - 6: equivalent to ast_trace(level, ...) for res_pjproject.so
  */
 
 /*** MODULEINFO
@@ -86,12 +89,15 @@
 				<configOption name="asterisk_notice" default="">
 					<synopsis>A comma separated list of pjproject log levels to map to Asterisk LOG_NOTICE.</synopsis>
 				</configOption>
-				<configOption name="asterisk_debug" default="3,4,5,6">
-					<synopsis>A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG.</synopsis>
-				</configOption>
 				<configOption name="asterisk_verbose" default="">
 					<synopsis>A comma separated list of pjproject log levels to map to Asterisk LOG_VERBOSE.</synopsis>
 				</configOption>
+				<configOption name="asterisk_debug" default="3,4">
+					<synopsis>A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG.</synopsis>
+				</configOption>
+				<configOption name="asterisk_trace" default="5,6">
+					<synopsis>A comma separated list of pjproject log levels to map to Asterisk LOG_TRACE.</synopsis>
+				</configOption>
 			</configObject>
 		</configFile>
 	</configInfo>
@@ -148,6 +154,8 @@ struct log_mappings {
 		AST_STRING_FIELD(asterisk_verbose);
 		/*! pjproject log levels mapped to Asterisk DEBUG */
 		AST_STRING_FIELD(asterisk_debug);
+		/*! pjproject log levels mapped to Asterisk TRACE */
+		AST_STRING_FIELD(asterisk_trace);
 	);
 };
 
@@ -190,6 +198,8 @@ static int get_log_level(int pj_level)
 		mapped_level = __LOG_VERBOSE;
 	} else if (strchr(mappings->asterisk_debug, l)) {
 		mapped_level = __LOG_DEBUG;
+	} else if (strchr(mappings->asterisk_trace, l)) {
+		mapped_level = __LOG_TRACE;
 	} else {
 		mapped_level = __LOG_SUPPRESS;
 	}
@@ -675,6 +685,7 @@ static int load_module(void)
 	ast_sorcery_object_field_register(pjproject_sorcery, "log_mappings", "asterisk_warning", "",  OPT_STRINGFIELD_T, 0, STRFLDSET(struct log_mappings, asterisk_warning));
 	ast_sorcery_object_field_register(pjproject_sorcery, "log_mappings", "asterisk_notice", "",  OPT_STRINGFIELD_T, 0, STRFLDSET(struct log_mappings, asterisk_notice));
 	ast_sorcery_object_field_register(pjproject_sorcery, "log_mappings", "asterisk_verbose", "",  OPT_STRINGFIELD_T, 0, STRFLDSET(struct log_mappings, asterisk_verbose));
+	ast_sorcery_object_field_register(pjproject_sorcery, "log_mappings", "asterisk_trace", "",  OPT_STRINGFIELD_T, 0, STRFLDSET(struct log_mappings, asterisk_trace));
 
 	default_log_mappings = ast_sorcery_alloc(pjproject_sorcery, "log_mappings", "log_mappings");
 	if (!default_log_mappings) {
@@ -683,7 +694,8 @@ static int load_module(void)
 	}
 	ast_string_field_set(default_log_mappings, asterisk_error, "0,1");
 	ast_string_field_set(default_log_mappings, asterisk_warning, "2");
-	ast_string_field_set(default_log_mappings, asterisk_debug, "3,4,5,6");
+	ast_string_field_set(default_log_mappings, asterisk_debug, "3,4");
+	ast_string_field_set(default_log_mappings, asterisk_trace, "5,6");
 
 	ast_sorcery_load(pjproject_sorcery);