xml formatting for call detail
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4289 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
2bd4fdad57
commit
b82cf5683b
|
@ -4921,6 +4921,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_generate_xml_cdr(switch_core_session_
|
||||||
x_caller_profile,
|
x_caller_profile,
|
||||||
x_caller_extension,
|
x_caller_extension,
|
||||||
x_times,
|
x_times,
|
||||||
|
time_tag,
|
||||||
x_application,
|
x_application,
|
||||||
x_callflow;
|
x_callflow;
|
||||||
char tmp[512];
|
char tmp[512];
|
||||||
|
@ -5004,29 +5005,33 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_generate_xml_cdr(switch_core_session_
|
||||||
|
|
||||||
|
|
||||||
if (caller_profile->times) {
|
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;
|
goto error;
|
||||||
}
|
}
|
||||||
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->created);
|
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;
|
goto error;
|
||||||
}
|
}
|
||||||
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->answered);
|
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;
|
goto error;
|
||||||
}
|
}
|
||||||
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->hungup);
|
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;
|
goto error;
|
||||||
}
|
}
|
||||||
snprintf(tmp, sizeof(tmp), "%"APR_TIME_T_FMT, caller_profile->times->transferred);
|
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;
|
caller_profile = caller_profile->next;
|
||||||
|
|
|
@ -1223,9 +1223,12 @@ static char *switch_xml_toxml_r(switch_xml_t xml, char **s, switch_size_t *len,
|
||||||
// parent character content up to this tag
|
// parent character content up to this tag
|
||||||
*s = switch_xml_ampencode(txt + start, xml->off - start, s, len, max, 0);
|
*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);
|
*s = realloc(*s, *max += SWITCH_XML_BUFSIZE);
|
||||||
|
|
||||||
|
if (*(*s+(*len)-1) == '>') {
|
||||||
|
*len += sprintf(*s + *len, "\n"); // indent
|
||||||
|
}
|
||||||
for (lcount = 0; lcount < *count; lcount++) {
|
for (lcount = 0; lcount < *count; lcount++) {
|
||||||
*len += sprintf(*s + *len, "%s", XML_INDENT); // indent
|
*len += sprintf(*s + *len, "%s", XML_INDENT); // indent
|
||||||
}
|
}
|
||||||
|
@ -1268,9 +1271,11 @@ static char *switch_xml_toxml_r(switch_xml_t xml, char **s, switch_size_t *len,
|
||||||
|
|
||||||
|
|
||||||
if (xml->child || xml->txt) {
|
if (xml->child || xml->txt) {
|
||||||
//for (lcount = 0; lcount < *count; lcount++) {
|
if (*(*s+(*len)-1) == '\n') {
|
||||||
//*len += sprintf(*s + *len, "%s", XML_INDENT); // indent
|
for (lcount = 0; lcount < *count; lcount++) {
|
||||||
//}
|
*len += sprintf(*s + *len, "%s", XML_INDENT); // indent
|
||||||
|
}
|
||||||
|
}
|
||||||
*len += sprintf(*s + (*len), "</%s>\n", xml->name); // close tag
|
*len += sprintf(*s + (*len), "</%s>\n", xml->name); // close tag
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue