private boolean isValidAddress(String userId, String serviceId) { if (userId == null || "".equals(userId) || serviceId == null || "".equals(serviceId)) { // System.out.println("Source/dest address NULL --> PDU discarded"); return false; } if (!Preference.isValidServiceId(serviceId)) { // System.out.println("Invalid dest address:" + serviceId // + " --> PDU discarded"); return false; } if (userId.startsWith("849") || userId.startsWith("+849") || userId.startsWith("09")) { return true; // TrungDK EVN -> UNKNOWN } else if ("UNKNOWN".equalsIgnoreCase(Preference.mobileOperator)) { return true; } else { // System.out.println("Invalid source address:" + userId + " --> PDU // discarded"); return true; } }
// =================================================================== private void processRequest(PDU pdu) { try { switch (pdu.getCommandId()) { case Data.DELIVER_SM: dsm = (DeliverSM) pdu; if (dsm.getEsmClass() == 0x04) { // this.deliveryQueue.enqueue(pdu); Logger.info(this.getClass().getName(), "dsm.getEsmClass() == 0x04"); } else { DateFormat dateFormat = new SimpleDateFormat("yyMMddHHmmssSSS"); java.util.Date date = new java.util.Date(); String datetime = dateFormat.format(date); PDUData pd = new PDUData(); pd.setPDU(pdu); pd.setRequestID(Preference.prefix_requestid + datetime); this.requestQueue.enqueue(pd); // dsm.setSourceAddr(new Address("095")); String userid = dsm.getSourceAddr().getAddress(); dsm.setSourceAddr( Preference.formatUserIdMO(userid, Constants.USERID_FORMAT_INTERNATIONAL)); String dsmLog = "{MO-comes}{Request_ID=" + Preference.prefix_requestid + datetime + "}{UserID=" + dsm.getSourceAddr().getAddress() + "}{ServiceID=" + dsm.getDestAddr().getAddress() + "}{Info=" + dsm.getShortMessage() + "}"; Logger.info(this.getClass().getName(), dsmLog); } break; case Data.DATA_SM: // System.out.println(" Data_SM --> Not processed."); Logger.error(this.getClass().getName(), " Data_SM --> Not processed."); break; case Data.UNBIND: Logger.info(this.getClass().getName(), " Data.UNBIND --> Not processed."); this.requestQueue.enqueue(pdu); break; default: Logger.error("processRequest: Unspecified SM " + pdu.debugString()); } } catch (Exception e) { Logger.error(this.getClass().getName(), "Exception " + e.toString()); DBTools.ALERT( "PDUEventListener", "processRequest", Constants.ALERT_WARN, Preference.Channel + "@processRequest:" + e.toString(), Preference.ALERT_CONTACT); Logger.printStackTrace(e); } }