[Freeswitch-svn] [commit] r4289 - freeswitch/trunk/src
Freeswitch SVN
anthm at freeswitch.org
Thu Feb 15 14:20:14 EST 2007
Author: anthm
Date: Thu Feb 15 14:20:14 2007
New Revision: 4289
Modified:
freeswitch/trunk/src/switch_ivr.c
freeswitch/trunk/src/switch_xml.c
Log:
xml formatting for call detail
Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c (original)
+++ freeswitch/trunk/src/switch_ivr.c Thu Feb 15 14:20:14 2007
@@ -4921,6 +4921,7 @@
x_caller_profile,
x_caller_extension,
x_times,
+ time_tag,
x_application,
x_callflow;
char tmp[512];
@@ -5004,29 +5005,33 @@
if (caller_profile->times) {
- if (!(x_times = switch_xml_add_child_d(x_callflow, "created_time", cf_off++))) {
+ int t_off = 0;
+ if (!(x_times = switch_xml_add_child_d(x_callflow, "times", cf_off++))) {
+ goto error;
+ }
+ if (!(time_tag = switch_xml_add_child_d(x_times, "created_time", t_off++))) {
goto error;
}
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->created);
- switch_xml_set_txt_d(x_times, tmp);
+ switch_xml_set_txt_d(time_tag, tmp);
- if (!(x_times = switch_xml_add_child_d(x_callflow, "answered_time", cf_off++))) {
+ if (!(time_tag = switch_xml_add_child_d(x_times, "answered_time", t_off++))) {
goto error;
}
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->answered);
- switch_xml_set_txt_d(x_times, tmp);
+ switch_xml_set_txt_d(time_tag, tmp);
- if (!(x_times = switch_xml_add_child_d(x_callflow, "hangup_time", cf_off++))) {
+ if (!(time_tag = switch_xml_add_child_d(x_times, "hangup_time", t_off++))) {
goto error;
}
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->hungup);
- switch_xml_set_txt_d(x_times, tmp);
+ switch_xml_set_txt_d(time_tag, tmp);
- if (!(x_times = switch_xml_add_child_d(x_callflow, "transfer_time", cf_off++))) {
+ if (!(time_tag = switch_xml_add_child_d(x_times, "transfer_time", t_off++))) {
goto error;
}
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->transferred);
- switch_xml_set_txt_d(x_times, tmp);
+ switch_xml_set_txt_d(time_tag, tmp);
}
caller_profile = caller_profile->next;
Modified: freeswitch/trunk/src/switch_xml.c
==============================================================================
--- freeswitch/trunk/src/switch_xml.c (original)
+++ freeswitch/trunk/src/switch_xml.c Thu Feb 15 14:20:14 2007
@@ -1223,9 +1223,12 @@
// parent character content up to this tag
*s = switch_xml_ampencode(txt + start, xml->off - start, s, len, max, 0);
- while (*len + strlen(xml->name) + 5 + (strlen(XML_INDENT) * (*count)) > *max) // reallocate s
+ while (*len + strlen(xml->name) + 5 + (strlen(XML_INDENT) * (*count)) + 1 > *max) // reallocate s
*s = realloc(*s, *max += SWITCH_XML_BUFSIZE);
+ if (*(*s+(*len)-1) == '>') {
+ *len += sprintf(*s + *len, "\n"); // indent
+ }
for (lcount = 0; lcount < *count; lcount++) {
*len += sprintf(*s + *len, "%s", XML_INDENT); // indent
}
@@ -1253,7 +1256,7 @@
*len += sprintf(*s + *len, "\"");
}
- *len += sprintf(*s + *len, (xml->child || xml->txt) ? ">" : "/>\n");
+ *len += sprintf(*s + *len, (xml->child || xml->txt) ? ">" : "/>\n");
if (xml->child) {
(*count)++;
@@ -1268,9 +1271,11 @@
if (xml->child || xml->txt) {
- //for (lcount = 0; lcount < *count; lcount++) {
- //*len += sprintf(*s + *len, "%s", XML_INDENT); // indent
- //}
+ if (*(*s+(*len)-1) == '\n') {
+ for (lcount = 0; lcount < *count; lcount++) {
+ *len += sprintf(*s + *len, "%s", XML_INDENT); // indent
+ }
+ }
*len += sprintf(*s + (*len), "</%s>\n", xml->name); // close tag
}
More information about the Freeswitch-svn
mailing list