@Override
public void marshal(final Object object, final HierarchicalStreamWriter writer, final MarshallingContext context) {
final CallDetailRecord cdr = (CallDetailRecord) object;
writer.startNode("Call");
writeSid(cdr.getSid(), writer);
writeInstanceId(cdr.getInstanceId(), writer);
writeDateCreated(cdr.getDateCreated(), writer);
writeDateUpdated(cdr.getDateUpdated(), writer);
writeParentCallSid(cdr.getParentCallSid(), writer);
writeAccountSid(cdr.getAccountSid(), writer);
writeTo(cdr.getTo(), writer);
writeFrom(cdr.getFrom(), writer);
writePhoneNumberSid(cdr.getPhoneNumberSid(), writer);
writeStatus(cdr.getStatus(), writer);
writeStartTime(cdr.getStartTime(), writer);
writeEndTime(cdr.getEndTime(), writer);
writeDuration(cdr.getDuration(), writer);
writePrice(cdr.getPrice(), writer);
writePriceUnit(cdr.getPriceUnit(), writer);
writeDirection(cdr.getDirection(), writer);
writeAnsweredBy(cdr.getAnsweredBy(), writer);
writeApiVersion(cdr.getApiVersion(), writer);
writeForwardedFrom(cdr.getForwardedFrom(), writer);
writeCallerName(cdr.getCallerName(), writer);
writeUri(cdr.getUri(), writer);
writeSubResources(cdr, writer);
writeRingDuration(cdr.getRingDuration(), writer);
writer.endNode();
}