Revision
17386
Author
mike
Date
2010-04-24 16:51:10 -0500 (Sat, 24 Apr 2010)

Log Message

mod_xml_cdr: add force_process_cdr var to process b leg cdr on a case by case basis when b leg cdr is disabled (XML-17)

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_types.h (17385 => 17386)


--- freeswitch/trunk/src/include/switch_types.h	2010-04-24 20:05:04 UTC (rev 17385)
+++ freeswitch/trunk/src/include/switch_types.h	2010-04-24 21:51:10 UTC (rev 17386)
@@ -141,6 +141,7 @@
 #define SWITCH_API_HANGUP_HOOK_VARIABLE "api_hangup_hook"
 #define SWITCH_SESSION_IN_HANGUP_HOOK_VARIABLE "session_in_hangup_hook"
 #define SWITCH_PROCESS_CDR_VARIABLE "process_cdr"
+#define SWITCH_FORCE_PROCESS_CDR_VARIABLE "force_process_cdr"
 #define SWITCH_BRIDGE_CHANNEL_VARIABLE "bridge_channel"
 #define SWITCH_CHANNEL_NAME_VARIABLE "channel_name"
 #define SWITCH_BRIDGE_UUID_VARIABLE "bridge_uuid"

Modified: freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c (17385 => 17386)


--- freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c	2010-04-24 20:05:04 UTC (rev 17385)
+++ freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c	2010-04-24 21:51:10 UTC (rev 17386)
@@ -200,7 +200,10 @@
 
 	is_b = channel && switch_channel_get_originator_caller_profile(channel);
 	if (!globals.log_b && is_b) {
-		return SWITCH_STATUS_SUCCESS;
+		const char *force_cdr = switch_channel_get_variable(channel, SWITCH_FORCE_PROCESS_CDR_VARIABLE);
+		if (!switch_true(force_cdr)) {
+			return SWITCH_STATUS_SUCCESS;
+		}
 	}
 	if (!is_b && globals.prefix_a)
 		a_prefix = "a_";