use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class IdentifiedOutgoingCall method handleWithException.
public void handleWithException(IHttpRequest req, IMutableHttpResponse resp) throws HandlerException {
try {
ICall call = XMLSerializer.toCall(this.getPostData(req));
if (call != null) {
ClientCallMap.getInstance().setCall((call.getCaller().getPhoneNumber().isClired() ? IJAMConst.CLIRED_CALL : call.getCaller().getPhoneNumber().getTelephoneNumber()) + "/" + call.getMSN().getMSN(), call);
Thread sender = new Thread(new HandlerThread(call, this));
sender.start();
resp.getContentStreamForWrite().close();
} else {
this.m_logger.severe("Invalid call transfered from server.");
}
} catch (Exception e) {
throw new HandlerException(e.getMessage(), 500);
}
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class OutgoingCall method handleWithException.
public void handleWithException(IHttpRequest req, IMutableHttpResponse resp) throws HandlerException {
IPhonenumber pn = null;
try {
String phone = req.getParameter(OutgoingCall.PARAMETER_NUMBER);
if (phone == null || phone.length() == 0)
pn = PIMRuntime.getInstance().getCallerFactory().createPhonenumber(true);
else
pn = PIMRuntime.getInstance().getCallerFactory().createPhonenumber(phone);
IName name = PIMRuntime.getInstance().getCallerFactory().createName("", "");
ICaller c = PIMRuntime.getInstance().getCallerFactory().createCaller(name, pn);
ICip cip = PIMRuntime.getInstance().getCallFactory().createCip(req.getParameter(OutgoingCall.PARAMETER_CIP), "");
IMsn msn = PIMRuntime.getInstance().getCallFactory().createMsn(req.getParameter(OutgoingCall.PARAMETER_MSN), "");
Date date = new Date(Long.parseLong(req.getParameter(OutgoingCall.PARAMETER_DATE)));
ICall call = PIMRuntime.getInstance().getCallFactory().createCall(c, msn, cip, date);
call.setAttribute(this.getRuntime().getCallFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_STARTRING, Long.toString(new Date().getTime())));
call.setAttribute(this.getRuntime().getCallFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_CALLSTATUS, IJAMConst.ATTRIBUTE_VALUE_OUTGOING));
ClientCallMap.getInstance().setCall((pn.isClired() ? IJAMConst.CLIRED_CALL : pn.getTelephoneNumber()) + "/" + msn.getMSN(), call);
Thread sender = new Thread(new HandlerThread(call, this));
sender.start();
resp.getContentStreamForWrite().close();
} catch (Exception e) {
throw new HandlerException(e.getMessage(), 500);
}
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class OutlookNumberType method renderAsText.
public String renderAsText() {
if (this.m_o != null) {
if (this.m_o instanceof ICall) {
this.m_o = ((ICall) this.m_o).getCaller();
}
if (this.m_o instanceof ICaller) {
this.m_o = new TreeItemCallerData(((ICaller) this.m_o).getAttributes(), ((ICaller) this.m_o).getPhoneNumber());
}
if (this.m_o instanceof ITreeItemCallerData) {
IAttributeMap m = ((ITreeItemCallerData) m_o).getAttributes();
IPhonenumber pn = ((ITreeItemCallerData) m_o).getPhone();
if (m.contains(IOutlookNumberMapping.MAPPING_ATTTRIBUTE_ID + pn.getTelephoneNumber())) {
IAttribute type = m.get(IOutlookNumberMapping.MAPPING_ATTTRIBUTE_ID + pn.getTelephoneNumber());
if (type != null) {
return PIMRuntime.getInstance().getI18nManagerFactory().getI18nManager().getString(NAMESPACE, type.getValue(), "label", getLanguage());
}
}
}
}
return "";
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class Reject method receivedIdentifiedCall.
public void receivedIdentifiedCall(IEvent event) {
IEventBroker eventBroker = this.getRuntime().getEventBroker();
ICall incommingCall = (ICall) event.getData();
String rejectAttribute = (incommingCall.getCaller().getAttribute(this.REJECT_ATTRIBUTE) == null ? "" : incommingCall.getCaller().getAttribute(this.REJECT_ATTRIBUTE).getValue());
boolean isClir = incommingCall.getCaller().getPhoneNumber().isClired();
// check if the caller has the attribute reject=yes
if (rejectAttribute != null && rejectAttribute.equalsIgnoreCase(IJAMConst.ATTRIBUTE_VALUE_YES)) {
incommingCall.setAttribute(this.getRuntime().getCallFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_CALLSTATUS, IJAMConst.ATTRIBUTE_VALUE_REJECTED));
eventBroker.send(this, eventBroker.createEvent(IEventConst.EVENT_TYPE_CALLREJECTED, incommingCall));
this.m_logger.info("Call automatically rejected by caller reject attribute.");
String msg = getRuntime().getI18nManagerFactory().getI18nManager().getString(getNamespace(), "reject_caller", "description", getLanguage());
msg = StringUtils.replaceString(msg, "{%1}", Formatter.getInstance(getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNUMBER, incommingCall.getCaller()));
PropagationFactory.getInstance().fire(new Message(Message.INFO, getRuntime().getI18nManagerFactory().getI18nManager().getString(NAMESPACE, "title", "label", getLanguage()), new Exception(msg)), "Tray");
return;
}
// check if a special MSN should be rejected
if (this.getRuntime().getRuleEngine().validate(this.ID, incommingCall.getMSN(), incommingCall.getCIP(), incommingCall.getCaller().getPhoneNumber())) {
incommingCall.setAttribute(this.getRuntime().getCallFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_CALLSTATUS, IJAMConst.ATTRIBUTE_VALUE_REJECTED));
eventBroker.send(this, eventBroker.createEvent(IEventConst.EVENT_TYPE_CALLREJECTED, incommingCall));
this.m_logger.info("Call automatically rejected by MSN " + incommingCall.getMSN().getMSN());
String msg = getRuntime().getI18nManagerFactory().getI18nManager().getString(getNamespace(), "reject_msn", "description", getLanguage());
msg = StringUtils.replaceString(msg, "{%1}", Formatter.getInstance(getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNUMBER, incommingCall.getCaller()));
PropagationFactory.getInstance().fire(new Message(Message.INFO, getRuntime().getI18nManagerFactory().getI18nManager().getString(NAMESPACE, "title", "label", getLanguage()), new Exception(msg)), "Tray");
return;
}
// check if all CLIR call should be rejected
if (isClir && (this.m_configuration.getProperty(CONFIG_ALLCLIR) != null && this.m_configuration.getProperty(CONFIG_ALLCLIR).equalsIgnoreCase("true"))) {
incommingCall.setAttribute(this.getRuntime().getCallFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_CALLSTATUS, IJAMConst.ATTRIBUTE_VALUE_REJECTED));
eventBroker.send(this, eventBroker.createEvent(IEventConst.EVENT_TYPE_CALLREJECTED, incommingCall));
this.m_logger.info("Call automatically rejected because it was a CLIR call.");
String msg = getRuntime().getI18nManagerFactory().getI18nManager().getString(getNamespace(), "reject_clir", "description", getLanguage());
msg = StringUtils.replaceString(msg, "{%1}", Formatter.getInstance(getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNUMBER, incommingCall.getCaller()));
PropagationFactory.getInstance().fire(new Message(Message.INFO, getRuntime().getI18nManagerFactory().getI18nManager().getString(NAMESPACE, "title", "label", getLanguage()), new Exception(msg)), "Tray");
return;
}
if (this.isRejectNumber(Formatter.getInstance(getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNUMBER, incommingCall.getCaller()))) {
incommingCall.setAttribute(this.getRuntime().getCallFactory().createAttribute(IJAMConst.ATTRIBUTE_NAME_CALLSTATUS, IJAMConst.ATTRIBUTE_VALUE_REJECTED));
eventBroker.send(this, eventBroker.createEvent(IEventConst.EVENT_TYPE_CALLREJECTED, incommingCall));
this.m_logger.info("Call automatically rejected by a blocked configured number.");
String msg = getRuntime().getI18nManagerFactory().getI18nManager().getString(getNamespace(), "reject_config", "description", getLanguage());
msg = StringUtils.replaceString(msg, "{%1}", Formatter.getInstance(getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNUMBER, incommingCall.getCaller()));
PropagationFactory.getInstance().fire(new Message(Message.INFO, getRuntime().getI18nManagerFactory().getI18nManager().getString(NAMESPACE, "title", "label", getLanguage()), new Exception(msg)), "Tray");
return;
}
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class RejectAction method run.
public void run() {
Viewer v = this.m_app.getApplication().getViewer();
if (v != null && v instanceof Viewer) {
final IStructuredSelection selection = (IStructuredSelection) v.getSelection();
if (!selection.isEmpty()) {
Iterator i = selection.iterator();
Object o = null;
while (i.hasNext()) {
o = i.next();
if (o instanceof ICall) {
o = ((ICall) o).getCaller();
}
if (o instanceof ICaller) {
if (this.isRejectable(((ICaller) o))) {
IPhonenumber pn = ((ICaller) o).getPhoneNumber();
setAsRejectNumber(pn);
}
}
}
m_app.updateViews(false);
}
}
}
Aggregations