public String getMSISDNString(int position, boolean showAllHex) {
        byte[] MSISDN = null;
        String MSISDNString = "";
        try {
            worker.getResponse(worker.select(DatabaseOfEF.DF_TELECOM.getFID()));
            MSISDN = worker.readRecord(position, worker.getResponse(worker.select(DatabaseOfEF.EF_MSISDN.getFID())));
            if (MSISDN[14] != (byte) 0xff) {
                for (int i = 16; i <= 14 + MSISDN[14]; i++) {
                    String b = Converter.byteToHex(MSISDN[i]);
                    String c = Converter.swapString(b);
                    MSISDNString = MSISDNString.concat(c);
                }
            }
        } catch (Exception ex) {
            Logger.getLogger(CardManager.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (showAllHex) {
            return Converter.bytesToHex(MSISDN);
        } else {
            return MSISDNString;
        }
    }