use of de.janrufmonitor.framework.IName in project janrufmonitor by tbrandt77.
the class OldDatFileCallImporter method migrateCallFromString.
private ICall migrateCallFromString(String scall, String datePattern) {
if (scall != null && scall.trim().length() == 0)
return null;
try {
StringTokenizer st = new StringTokenizer(scall, "%$");
if (st.countTokens() < 5) {
this.m_logger.warning("Invalid entry found: entry was dropped for migration.");
return null;
}
String state = st.nextToken().trim();
String msn = st.nextToken().trim();
String caller = st.nextToken().trim();
String cip = st.nextToken().trim();
String date = st.nextToken().trim();
// parse MSN
IMsn parsedMSN = this.parseMsn(msn);
ICip parsedCIP = this.parseCip(cip);
IAttribute att = this.parseState(state);
IPhonenumber phone = this.parsePhone(caller);
IName name = this.parseName(caller);
ICaller parsedCaller = PIMRuntime.getInstance().getCallerFactory().createCaller(name, phone);
Date parsedDate = this.parseDate(date, datePattern);
ICall aCall = PIMRuntime.getInstance().getCallFactory().createCall(parsedCaller, parsedMSN, parsedCIP, parsedDate);
if (!att.getName().equalsIgnoreCase("")) {
aCall.setAttribute(att);
}
this.m_logger.info(aCall.toString());
return aCall;
} catch (NoSuchElementException ex) {
this.m_logger.warning("FormatException: migration failed due to incompatible format information.");
} catch (NullPointerException ex) {
this.m_logger.warning("Invalid entry found: entry was dropped for migration.");
}
return null;
}
use of de.janrufmonitor.framework.IName in project janrufmonitor by tbrandt77.
the class OldDatFileCallerImporter method migrateCallerFromString.
private ICaller migrateCallerFromString(String scaller) {
if (scaller != null && scaller.trim().length() == 0)
return null;
StringTokenizer st = new StringTokenizer(scaller, ";");
String number = st.nextToken().trim();
String caller = st.nextToken().trim();
String reject = "0";
if (st.hasMoreTokens())
reject = st.nextToken().trim();
IPhonenumber pn = PIMRuntime.getInstance().getCallerFactory().createPhonenumber(number.substring(1));
try {
ICaller migCaller = null;
ICallerManager def = PIMRuntime.getInstance().getCallerManagerFactory().getDefaultCallerManager();
if (def != null && def.isActive() && def.isSupported(IIdentifyCallerRepository.class)) {
migCaller = ((IIdentifyCallerRepository) def).getCaller(pn);
} else
throw new CallerNotFoundException();
StringTokenizer ctoken = new StringTokenizer(caller, " ");
IName name = PIMRuntime.getInstance().getCallerFactory().createName("", "");
if (ctoken.hasMoreTokens()) {
name.setFirstname(ctoken.nextToken());
}
if (ctoken.hasMoreTokens()) {
name.setLastname(ctoken.nextToken());
}
if (ctoken.hasMoreTokens()) {
name.setAdditional(ctoken.nextToken());
}
while (ctoken.hasMoreTokens()) {
name.setAdditional(name.getAdditional() + " " + ctoken.nextToken());
}
migCaller.setName(name);
if (reject.equalsIgnoreCase("1")) {
IAttribute att = PIMRuntime.getInstance().getCallerFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_REJECT, IJAMConst.ATTRIBUTE_VALUE_YES);
migCaller.setAttribute(att);
}
if (reject.equalsIgnoreCase("0")) {
IAttribute att = PIMRuntime.getInstance().getCallerFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_REJECT, IJAMConst.ATTRIBUTE_VALUE_NO);
migCaller.setAttribute(att);
}
LogManager.getLogManager().getLogger(IJAMConst.DEFAULT_LOGGER).info(migCaller.toString());
return migCaller;
} catch (CallerNotFoundException e) {
LogManager.getLogManager().getLogger(IJAMConst.DEFAULT_LOGGER).warning(e.getMessage());
}
return null;
}
use of de.janrufmonitor.framework.IName in project janrufmonitor by tbrandt77.
the class ConsoleSimulate method execute.
public void execute() {
this.isExecuting = true;
String number = "";
String cip = "";
String msn = "";
if (this.getExecuteParams().length < 2 || this.getExecuteParams().length > 3) {
System.out.println("ERROR: Invalid SIMULATE command.");
System.out.println("USAGE for regular call simulation: SIMULATE <number> <msn> <cip>");
System.out.println("USAGE for CLIR call simulation: SIMULATE <msn> <cip>");
this.isExecuting = false;
return;
}
if (this.getExecuteParams().length == 2) {
msn = this.getExecuteParams()[0];
cip = this.getExecuteParams()[1];
}
if (this.getExecuteParams().length == 3) {
number = this.getExecuteParams()[0];
msn = this.getExecuteParams()[1];
cip = this.getExecuteParams()[2];
}
IEventBroker evtBroker = PIMRuntime.getInstance().getEventBroker();
IPhonenumber phone = PhonenumberAnalyzer.getInstance(getRuntime()).toClirPhonenumber(number);
if (phone != null)
System.out.println("Call detected as CLIR: " + phone.isClired());
if (phone == null) {
phone = PhonenumberAnalyzer.getInstance(getRuntime()).toInternalPhonenumber(number, msn);
if (phone != null)
System.out.println("Call detected as internal: " + number.trim());
}
if (phone == null) {
phone = PhonenumberAnalyzer.getInstance(getRuntime()).toPhonenumber(number, msn);
if (phone != null)
System.out.println("Call detected as external: " + number.trim());
}
IName name = PIMRuntime.getInstance().getCallerFactory().createName("", "");
ICaller aCaller = PIMRuntime.getInstance().getCallerFactory().createCaller(name, phone);
ICip ocip = PIMRuntime.getInstance().getCallFactory().createCip(cip, "");
IMsn omsn = PIMRuntime.getInstance().getCallFactory().createMsn(msn, "");
ICall newCall = PIMRuntime.getInstance().getCallFactory().createCall(aCaller, omsn, ocip);
evtBroker.register(this);
IEvent ev = evtBroker.createEvent(IEventConst.EVENT_TYPE_INCOMINGCALL, newCall);
evtBroker.send(this, ev);
evtBroker.unregister(this);
this.isExecuting = false;
}
use of de.janrufmonitor.framework.IName in project janrufmonitor by tbrandt77.
the class CountryDirectory method getCaller.
public ICaller getCaller(IPhonenumber number) throws CallerNotFoundException {
if (number == null)
throw new CallerNotFoundException("Phone number is not set (null). No caller found.");
if (number.isClired())
throw new CallerNotFoundException("Phone number is CLIR. Identification impossible.");
while (this.m_isMigrating) {
this.m_logger.info("Waiting 1 sec. till update of country directory is finished.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
if (PhonenumberAnalyzer.getInstance(this.getRuntime()).isInternal(number)) {
String language = this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty(IJAMConst.GLOBAL_NAMESPACE, IJAMConst.GLOBAL_LANGUAGE);
IName name = this.getRuntime().getCallerFactory().createName("", this.getRuntime().getI18nManagerFactory().getI18nManager().getString(getNamespace(), IJAMConst.INTERNAL_CALL, "label", language), "");
String n = number.getTelephoneNumber();
if (n.trim().length() == 0)
n = number.getCallNumber();
return this.getRuntime().getCallerFactory().createCaller(name, this.getRuntime().getCallerFactory().createInternalPhonenumber(n));
}
ICaller c = null;
try {
c = getDatabaseHandler().getCaller(number);
if (!getDatabaseHandler().isKeepAlive()) {
getDatabaseHandler().disconnect();
}
if (c != null)
return c;
} catch (SQLException e) {
this.m_logger.log(Level.SEVERE, e.getMessage(), e);
}
throw new CallerNotFoundException("No caller entry found for phonenumber : " + number.getTelephoneNumber());
}
use of de.janrufmonitor.framework.IName in project janrufmonitor by tbrandt77.
the class AbstractDatabaseCallerManager method getCaller.
public synchronized ICaller getCaller(IPhonenumber number) throws CallerNotFoundException {
if (number == null)
throw new CallerNotFoundException("Phone number is not set (null). No caller found.");
if (number.isClired())
throw new CallerNotFoundException("Phone number is CLIR. Identification impossible.");
ICaller c = null;
try {
m_isRunningProcess = true;
c = getDatabaseHandler().getCaller(number);
if (c != null)
return c;
m_isRunningProcess = false;
} catch (SQLException e) {
this.m_logger.log(Level.SEVERE, e.getMessage(), e);
}
if (PhonenumberAnalyzer.getInstance(this.getRuntime()).isInternal(number)) {
// no caller folder exists, take default value
String language = this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty(IJAMConst.GLOBAL_NAMESPACE, IJAMConst.GLOBAL_LANGUAGE);
IName name = this.getRuntime().getCallerFactory().createName("", this.getRuntime().getI18nManagerFactory().getI18nManager().getString(getNamespace(), IJAMConst.INTERNAL_CALL, "label", language), "");
String n = number.getTelephoneNumber();
if (n.trim().length() == 0)
n = number.getCallNumber();
return this.getRuntime().getCallerFactory().createCaller(name, this.getRuntime().getCallerFactory().createInternalPhonenumber(n));
}
throw new CallerNotFoundException("No caller entry found for phonenumber : " + number.getTelephoneNumber());
}
Aggregations