diff --git a/configs/samples/pjproject.conf.sample b/configs/samples/pjproject.conf.sample
index 03149c4539..273384b82b 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 0000000000..132c9506b8
--- /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 f6dce4cd9a..4047acae39 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 @@
A comma separated list of pjproject log levels to map to Asterisk LOG_NOTICE.
-
- A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG.
-
A comma separated list of pjproject log levels to map to Asterisk LOG_VERBOSE.
+
+ A comma separated list of pjproject log levels to map to Asterisk LOG_DEBUG.
+
+
+ A comma separated list of pjproject log levels to map to Asterisk LOG_TRACE.
+
@@ -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);