if ((firmware.getBoxType() == FritzBoxFirmware.BOXTYPE_FRITZBOX_7050) || (firmware.getBoxType() == FritzBoxFirmware.BOXTYPE_FRITZBOX_5050)) { p = Pattern.compile(PATTERN_LIST_NEW); } else { p = Pattern.compile(PATTERN_LIST_OLD); }
if (firmware.getMinorFirmwareVersion() < 42) p = Pattern.compile(PATTERN_LIST_OLD); else p = Pattern.compile(PATTERN_LIST_NEW);
	public static Vector parseCallerData(String data,			FritzBoxFirmware firmware, String countryPrefix,			String countryCode, String areaPrefix, String areaCode) {		Vector list = new Vector();		data = removeDuplicateWhitespace(data);		Pattern p;		if ((firmware.getBoxType() == FritzBoxFirmware.BOXTYPE_FRITZBOX_7050)				|| (firmware.getBoxType() == FritzBoxFirmware.BOXTYPE_FRITZBOX_5050)) {			p = Pattern.compile(PATTERN_LIST_NEW);		} else {			p = Pattern.compile(PATTERN_LIST_OLD);		}		Matcher m = p.matcher(data);		while (m.find()) {			try {				CallType symbol = new CallType(Byte.parseByte(m.group(1)));				String port = m.group(4);				String route = m.group(5);				int duration = Integer.parseInt(m.group(6));				String number = create_area_number(m.group(3), countryPrefix,						countryCode, areaPrefix, areaCode);				Date date = new SimpleDateFormat("dd.MM.yy HH:mm").parse(m						.group(2));				list.add(new Call(symbol, date, number, port, route, duration));			} catch (ParseException e) {				e.printStackTrace();			}		}		return list;	}