Search in sources :

Example 6 with TlvSet

use of org.restcomm.smpp.parameter.TlvSet in project smscgateway by RestComm.

the class PostArrivalProcessorImpl method removeTlvParameter.

@Override
public void removeTlvParameter(MProcMessage message, short tag) {
    MProcMessageImpl msg = (MProcMessageImpl) message;
    Sms sms = msg.getSmsContent();
    TlvSet ts = sms.getTlvSet();
    ts.removeOptionalParameter(tag);
}
Also used : Sms(org.mobicents.smsc.library.Sms) TlvSet(org.restcomm.smpp.parameter.TlvSet)

Example 7 with TlvSet

use of org.restcomm.smpp.parameter.TlvSet in project smscgateway by RestComm.

the class SubmitCommonSbb method generateFailureDetailedCdr.

protected void generateFailureDetailedCdr(BaseSm<?> event, Esme esme, EventType eventType, ErrorCode errorCode, String messageType, int statusCode, String shortMessageText, Long timestampB) {
    TlvSet tlvSet = new TlvSet();
    ArrayList<Tlv> optionalParameters = event.getOptionalParameters();
    if (optionalParameters != null && optionalParameters.size() > 0) {
        for (Tlv tlv : optionalParameters) {
            if (tlv.getTag() != SmppConstants.TAG_MESSAGE_PAYLOAD) {
                tlvSet.addOptionalParameter(tlv);
            }
        }
    }
    boolean mcDeliveryReceipt = (event.getEsmClass() & Sms.ESME_DELIVERY_ACK) != 0;
    CdrDetailedGenerator.generateDetailedCdr(mcDeliveryReceipt, shortMessageText, tlvSet, null, timestampB, null, null, esme.getName(), eventType, errorCode, messageType, statusCode, -1, esme.getRemoteAddressAndPort(), null, event.getSequenceNumber(), smscPropertiesManagement.getGenerateReceiptCdr(), smscPropertiesManagement.getGenerateDetailedCdr());
}
Also used : TlvSet(org.restcomm.smpp.parameter.TlvSet) Tlv(com.cloudhopper.smpp.tlv.Tlv)

Example 8 with TlvSet

use of org.restcomm.smpp.parameter.TlvSet in project smscgateway by RestComm.

the class DBOperations method createSms.

protected SmsSet createSms(final Row row, SmsSet smsSet, boolean shortMessageNewStringFormat, boolean addedCorrId, boolean addedNetworkId, boolean addedOrigNetworkId, boolean addedPacket1, boolean getMessageInProcessing) throws PersistenceException {
    if (row == null) {
        return smsSet;
    }
    int inSystem = row.getInt(Schema.COLUMN_IN_SYSTEM);
    UUID smscUuid = row.getUUID(Schema.COLUMN_SMSC_UUID);
    if (!getMessageInProcessing && (inSystem == IN_SYSTEM_SENT || inSystem == IN_SYSTEM_INPROCESS && smscUuid.equals(currentSessionUUID))) {
        // inSystem it is in processing or processed - skip this
        return smsSet;
    }
    Sms sms = new Sms();
    sms.setStored(true);
    sms.setDbId(row.getUUID(Schema.COLUMN_ID));
    sms.setDueSlot(row.getLong(Schema.COLUMN_DUE_SLOT));
    sms.setSourceAddr(row.getString(Schema.COLUMN_ADDR_SRC_DIGITS));
    sms.setSourceAddrTon(row.getInt(Schema.COLUMN_ADDR_SRC_TON));
    sms.setSourceAddrNpi(row.getInt(Schema.COLUMN_ADDR_SRC_NPI));
    if (addedOrigNetworkId) {
        sms.setOrigNetworkId(row.getInt(Schema.COLUMN_ORIG_NETWORK_ID));
    }
    sms.setMessageId(row.getLong(Schema.COLUMN_MESSAGE_ID));
    sms.setMoMessageRef(row.getInt(Schema.COLUMN_MO_MESSAGE_REF));
    sms.setOrigEsmeName(row.getString(Schema.COLUMN_ORIG_ESME_NAME));
    sms.setOrigSystemId(row.getString(Schema.COLUMN_ORIG_SYSTEM_ID));
    sms.setSubmitDate(getRowDate(row, Schema.COLUMN_SUBMIT_DATE));
    sms.setServiceType(row.getString(Schema.COLUMN_SERVICE_TYPE));
    sms.setEsmClass(row.getInt(Schema.COLUMN_ESM_CLASS));
    sms.setProtocolId(row.getInt(Schema.COLUMN_PROTOCOL_ID));
    sms.setPriority(row.getInt(Schema.COLUMN_PRIORITY));
    sms.setRegisteredDelivery(row.getInt(Schema.COLUMN_REGISTERED_DELIVERY));
    sms.setReplaceIfPresent(row.getInt(Schema.COLUMN_REPLACE));
    sms.setDataCodingForDatabase(row.getInt(Schema.COLUMN_DATA_CODING));
    sms.setDefaultMsgId(row.getInt(Schema.COLUMN_DEFAULT_MSG_ID));
    if (shortMessageNewStringFormat) {
        sms.setShortMessageText(row.getString(Schema.COLUMN_MESSAGE_TEXT));
        ByteBuffer bb = row.getBytes(Schema.COLUMN_MESSAGE_BIN);
        if (bb != null) {
            byte[] buf = new byte[bb.limit() - bb.position()];
            bb.get(buf);
            sms.setShortMessageBin(buf);
        }
    } else {
        ByteBuffer bb = row.getBytes(Schema.COLUMN_MESSAGE);
        if (bb != null) {
            byte[] buf = new byte[bb.limit() - bb.position()];
            bb.get(buf);
            sms.setShortMessage(buf);
            // convert to a new format
            byte[] shortMessage = sms.getShortMessage();
            byte[] textPart = shortMessage;
            byte[] udhData = null;
            boolean udhExists = false;
            DataCodingScheme dcs = new DataCodingSchemeImpl(sms.getDataCoding());
            String msg = null;
            if (dcs.getCharacterSet() == CharacterSet.GSM8) {
                udhData = shortMessage;
            } else {
                if ((sms.getEsmClass() & SmppConstants.ESM_CLASS_UDHI_MASK) != 0) {
                    udhExists = true;
                }
                if (udhExists && shortMessage != null && shortMessage.length > 2) {
                    // UDH exists
                    int udhLen = (shortMessage[0] & 0xFF) + 1;
                    if (udhLen <= shortMessage.length) {
                        textPart = new byte[shortMessage.length - udhLen];
                        udhData = new byte[udhLen];
                        System.arraycopy(shortMessage, udhLen, textPart, 0, textPart.length);
                        System.arraycopy(shortMessage, 0, udhData, 0, udhLen);
                    }
                }
                switch(dcs.getCharacterSet()) {
                    case GSM7:
                        msg = new String(textPart);
                        break;
                    case UCS2:
                        Charset ucs2Charset = Charset.forName("UTF-16BE");
                        bb = ByteBuffer.wrap(textPart);
                        CharBuffer bf = ucs2Charset.decode(bb);
                        msg = bf.toString();
                        break;
                    default:
                        udhData = sms.getShortMessage();
                        break;
                }
            }
            sms.setShortMessageText(msg);
            sms.setShortMessageBin(udhData);
        }
    }
    sms.setScheduleDeliveryTime(getRowDate(row, Schema.COLUMN_SCHEDULE_DELIVERY_TIME));
    sms.setValidityPeriod(getRowDate(row, Schema.COLUMN_VALIDITY_PERIOD));
    sms.setDeliveryCount(row.getInt(Schema.COLUMN_DELIVERY_COUNT));
    if (addedPacket1) {
        sms.setOriginatorSccpAddress(row.getString(Schema.COLUMN_ORIGINATOR_SCCP_ADDRESS));
        // TODO: extra columns for further usage
        sms.setStatusReportRequest(row.getBool(Schema.COLUMN_STATUS_REPORT_REQUEST));
        sms.setDeliveryAttempt(row.getInt(Schema.COLUMN_DELIVERY_ATTEMPT));
        sms.setUserData(row.getString(Schema.COLUMN_USER_DATA));
        sms.setExtraData(row.getString(Schema.COLUMN_EXTRA_DATA));
        sms.setExtraData_2(row.getString(Schema.COLUMN_EXTRA_DATA_2));
        sms.setExtraData_3(row.getString(Schema.COLUMN_EXTRA_DATA_3));
        sms.setExtraData_4(row.getString(Schema.COLUMN_EXTRA_DATA_4));
    }
    String s = row.getString(Schema.COLUMN_OPTIONAL_PARAMETERS);
    if (s != null) {
        try {
            ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes());
            XMLObjectReader reader = XMLObjectReader.newInstance(bais);
            TlvSet copy = reader.read(TLV_SET, TlvSet.class);
            sms.getTlvSet().clearAllOptionalParameter();
            sms.getTlvSet().addAllOptionalParameter(copy.getOptionalParameters());
        } catch (XMLStreamException e) {
            String msg = "XMLStreamException when deserializing optional parameters for '" + sms.getDbId() + "'!";
            throw new PersistenceException(msg, e);
        }
    }
    if (smsSet == null) {
        smsSet = new SmsSet();
        String destAddr = null;
        int destAddrTon = -1;
        int destAddrNpi = -1;
        destAddr = row.getString(Schema.COLUMN_ADDR_DST_DIGITS);
        destAddrTon = row.getInt(Schema.COLUMN_ADDR_DST_TON);
        destAddrNpi = row.getInt(Schema.COLUMN_ADDR_DST_NPI);
        if (destAddr == null || destAddrTon == -1 || destAddrNpi == -1) {
            throw new PersistenceException("destAddr or destAddrTon or destAddrNpi is absent for ID='" + sms.getDbId() + "'");
        }
        smsSet.setDestAddr(destAddr);
        smsSet.setDestAddrTon(destAddrTon);
        smsSet.setDestAddrNpi(destAddrNpi);
        if (getMessageInProcessing) {
            smsSet.setInSystem(inSystem);
            smsSet.setStatus(ErrorCode.fromInt(row.getInt(Schema.COLUMN_SM_STATUS)));
        }
        if (addedNetworkId) {
            smsSet.setNetworkId(row.getInt(Schema.COLUMN_NETWORK_ID));
        } else {
            String tagId = row.getString(Schema.COLUMN_TARGET_ID);
            if (tagId != null) {
                String[] ss = tagId.split("_");
                if (ss.length == 4) {
                    String s1 = ss[3];
                    try {
                        int networkId = Integer.parseInt(s1);
                        smsSet.setNetworkId(networkId);
                    } catch (Exception e) {
                    }
                }
            }
        }
        if (addedCorrId)
            smsSet.setCorrelationId(row.getString(Schema.COLUMN_CORR_ID));
        else
            smsSet.setCorrelationId(row.getString(Schema.COLUMN_IMSI));
    }
    int dueDelay = row.getInt(Schema.COLUMN_DUE_DELAY);
    if (dueDelay > smsSet.getDueDelay())
        smsSet.setDueDelay(dueDelay);
    boolean alertingSupported = row.getBool(Schema.COLUMN_ALERTING_SUPPORTED);
    if (alertingSupported)
        smsSet.setAlertingSupported(true);
    smsSet.addSms(sms);
    return smsSet;
}
Also used : DataCodingScheme(org.restcomm.protocols.ss7.map.api.smstpdu.DataCodingScheme) CharBuffer(java.nio.CharBuffer) Charset(java.nio.charset.Charset) DataCodingSchemeImpl(org.restcomm.protocols.ss7.map.smstpdu.DataCodingSchemeImpl) ByteBuffer(java.nio.ByteBuffer) XMLStreamException(javolution.xml.stream.XMLStreamException) InvalidQueryException(com.datastax.driver.core.exceptions.InvalidQueryException) XMLStreamException(javolution.xml.stream.XMLStreamException) ByteArrayInputStream(java.io.ByteArrayInputStream) Sms(org.mobicents.smsc.library.Sms) XMLObjectReader(javolution.xml.XMLObjectReader) TlvSet(org.restcomm.smpp.parameter.TlvSet) UUID(java.util.UUID) SmsSet(org.mobicents.smsc.library.SmsSet)

Example 9 with TlvSet

use of org.restcomm.smpp.parameter.TlvSet in project smscgateway by RestComm.

the class SmppMessageParamForm method setData.

public void setData(SmppSimulatorParameters data) {
    this.data = data;
    this.tbMessage.setText(data.getMessageText());
    this.tbSourceAddress.setText(data.getSourceAddress());
    this.tbDestAddress.setText(data.getDestAddress());
    this.tbBulkDestAddressRangeStart.setText(((Integer) data.getBulkDestAddressRangeStart()).toString());
    this.tbBulkDestAddressRangeEnd.setText(((Integer) data.getBulkDestAddressRangeEnd()).toString());
    this.tbBulkMessagePerSecond.setText(((Integer) data.getBulkMessagePerSecond()).toString());
    this.tbSubmitMultiMessageCnt.setText(((Integer) data.getSubmitMultiMessageCnt()).toString());
    this.cbEncodingType.removeAllItems();
    SmppSimulatorParameters.EncodingType[] vallET = SmppSimulatorParameters.EncodingType.values();
    SmppSimulatorParameters.EncodingType dv = null;
    for (SmppSimulatorParameters.EncodingType v : vallET) {
        this.cbEncodingType.addItem(v);
        if (v == data.getEncodingType())
            dv = v;
    }
    if (dv != null)
        this.cbEncodingType.setSelectedItem(dv);
    this.cbSplittingType.removeAllItems();
    SmppSimulatorParameters.SplittingType[] vallST = SmppSimulatorParameters.SplittingType.values();
    SmppSimulatorParameters.SplittingType dvST = null;
    for (SmppSimulatorParameters.SplittingType v : vallST) {
        this.cbSplittingType.addItem(v);
        if (v == data.getSplittingType())
            dvST = v;
    }
    if (dvST != null)
        this.cbSplittingType.setSelectedItem(dvST);
    this.tbSegmentLength.setText(((Integer) data.getSpecifiedSegmentLength()).toString());
    this.cbSrcTON.removeAllItems();
    SmppSimulatorParameters.TON[] vallTON = SmppSimulatorParameters.TON.values();
    SmppSimulatorParameters.TON dvTON = null;
    for (SmppSimulatorParameters.TON v : vallTON) {
        this.cbSrcTON.addItem(v);
        if (v == data.getSourceTON())
            dvTON = v;
    }
    if (dvTON != null)
        this.cbSrcTON.setSelectedItem(dvTON);
    this.cbDestTON.removeAllItems();
    vallTON = SmppSimulatorParameters.TON.values();
    dvTON = null;
    for (SmppSimulatorParameters.TON v : vallTON) {
        this.cbDestTON.addItem(v);
        if (v == data.getDestTON())
            dvTON = v;
    }
    if (dvTON != null)
        this.cbDestTON.setSelectedItem(dvTON);
    this.cbSrcNPI.removeAllItems();
    SmppSimulatorParameters.NPI[] vallNPI = SmppSimulatorParameters.NPI.values();
    SmppSimulatorParameters.NPI dvNPI = null;
    for (SmppSimulatorParameters.NPI v : vallNPI) {
        this.cbSrcNPI.addItem(v);
        if (v == data.getSourceNPI())
            dvNPI = v;
    }
    if (dvNPI != null)
        this.cbSrcNPI.setSelectedItem(dvNPI);
    this.cbDestNPI.removeAllItems();
    vallNPI = SmppSimulatorParameters.NPI.values();
    dvNPI = null;
    for (SmppSimulatorParameters.NPI v : vallNPI) {
        this.cbDestNPI.addItem(v);
        if (v == data.getDestNPI())
            dvNPI = v;
    }
    if (dvNPI != null)
        this.cbDestNPI.setSelectedItem(dvNPI);
    this.cbValidityType.removeAllItems();
    SmppSimulatorParameters.ValidityType[] vallValType = SmppSimulatorParameters.ValidityType.values();
    SmppSimulatorParameters.ValidityType dvValType = null;
    for (SmppSimulatorParameters.ValidityType v : vallValType) {
        this.cbValidityType.addItem(v);
        if (v == data.getValidityType())
            dvValType = v;
    }
    if (dvValType != null)
        this.cbValidityType.setSelectedItem(dvValType);
    this.cbSendingMessageType.removeAllItems();
    SmppSimulatorParameters.SendingMessageType[] vallSendingMessageType = SmppSimulatorParameters.SendingMessageType.values();
    SmppSimulatorParameters.SendingMessageType dvSendingMessageType = null;
    for (SmppSimulatorParameters.SendingMessageType v : vallSendingMessageType) {
        this.cbSendingMessageType.addItem(v);
        if (v == data.getSendingMessageType())
            dvSendingMessageType = v;
    }
    if (dvSendingMessageType != null)
        this.cbSendingMessageType.setSelectedItem(dvSendingMessageType);
    this.cbMessagingMode.removeAllItems();
    SmppSimulatorParameters.MessagingMode[] vallMessagingMode = SmppSimulatorParameters.MessagingMode.values();
    SmppSimulatorParameters.MessagingMode dvMessagingMode = null;
    for (SmppSimulatorParameters.MessagingMode v : vallMessagingMode) {
        this.cbMessagingMode.addItem(v);
        if (v == data.getMessagingMode())
            dvMessagingMode = v;
    }
    if (dvMessagingMode != null)
        this.cbMessagingMode.setSelectedItem(dvMessagingMode);
    this.cbMcDeliveryReceipt.removeAllItems();
    SmppSimulatorParameters.MCDeliveryReceipt[] vallMcDeliveryReceipt = SmppSimulatorParameters.MCDeliveryReceipt.values();
    SmppSimulatorParameters.MCDeliveryReceipt dvMcDeliveryReceipt = null;
    for (SmppSimulatorParameters.MCDeliveryReceipt v : vallMcDeliveryReceipt) {
        this.cbMcDeliveryReceipt.addItem(v);
        if (v == data.getMcDeliveryReceipt())
            dvMcDeliveryReceipt = v;
    }
    if (dvMcDeliveryReceipt != null)
        this.cbMcDeliveryReceipt.setSelectedItem(dvMcDeliveryReceipt);
    switch(data.betMessageClass()) {
        case 0:
            this.rbClassNo.setSelected(true);
            break;
        case 1:
            this.rbClass0.setSelected(true);
            break;
        case 2:
            this.rbClass1.setSelected(true);
            break;
        case 3:
            this.rbClass2.setSelected(true);
            break;
        case 4:
            this.rbClass3.setSelected(true);
            break;
    }
    if (data.getSmppEncoding() == 0)
        this.rbUtf8.setSelected(true);
    else if (data.getSmppEncoding() == 1)
        this.rbUnicode.setSelected(true);
    else
        this.rbGsm7.setSelected(true);
    this.cbRejectIncomingDeliveryMessage.setSelected(this.data.isRejectIncomingDeliveryMessage());
    this.cbDRAfter2Min.setSelected(this.data.isDeliveryResponseAfter2Min());
    this.cbIdResponseTlv.setSelected(this.data.isIdResponseTlv());
    this.cbIdResponseTlvMessageState.setSelected(this.data.isIdResponseTlvMessageState());
    this.cbWrongMessageIdInDlr.setSelected(this.data.isWrongMessageIdInDlr());
    this.cbAddMessageIdIntoDeliverySmResp.setSelected(this.data.isAddMessageIdIntoDeliverySmResp());
    switch(this.data.getDeliveryResponseGenerating()) {
        case No:
            this.rbDR_No.setSelected(true);
            break;
        case Success:
            this.rbDR_Success.setSelected(true);
            break;
        case Error8:
            this.rbDR_Error8.setSelected(true);
            break;
    }
    this.cbSendOptionalParameter.setSelected(this.data.isSendOptionalParameter());
    if (this.data.isSendOptionalParameter()) {
        // TODO: should be JList and array instead
        TlvSet tlvSet = this.data.getTlvSet();
        try {
            for (Tlv tlv : tlvSet.getOptionalParameters()) {
                // FIXME: casting
                this.tbTlvTagValue.setText((new Short(tlv.getTag())).toString());
                this.tbTlvValue.setText((new Integer(tlv.getValueAsInt())).toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Also used : SendingMessageType(org.mobicents.smsc.tools.smppsimulator.SmppSimulatorParameters.SendingMessageType) TlvSet(org.restcomm.smpp.parameter.TlvSet) Tlv(com.cloudhopper.smpp.tlv.Tlv) SendingMessageType(org.mobicents.smsc.tools.smppsimulator.SmppSimulatorParameters.SendingMessageType)

Example 10 with TlvSet

use of org.restcomm.smpp.parameter.TlvSet in project smscgateway by RestComm.

the class MProcRuleDefaultImpl method matches.

private boolean matches(MProcMessage message) {
    if (destTonMask != -1 && destTonMask != message.getDestAddrTon())
        return false;
    if (destNpiMask != -1 && destNpiMask != message.getDestAddrNpi())
        return false;
    if (destDigMaskPattern != null) {
        if (message.getDestAddr() == null)
            return false;
        Matcher m = this.destDigMaskPattern.matcher(message.getDestAddr());
        if (!m.matches())
            return false;
    }
    if (sourceTonMask != -1 && sourceTonMask != message.getSourceAddrTon())
        return false;
    if (sourceNpiMask != -1 && sourceNpiMask != message.getSourceAddrNpi())
        return false;
    if (sourceDigMaskPattern != null) {
        if (message.getSourceAddr() == null)
            return false;
        Matcher m = this.sourceDigMaskPattern.matcher(message.getSourceAddr());
        if (!m.matches())
            return false;
    }
    if (originatingMask != null && originatingMask != message.getOriginationType())
        return false;
    if (networkIdMask != -1 && networkIdMask != message.getNetworkId())
        return false;
    if (originNetworkIdMask != -1 && originNetworkIdMask != message.getOrigNetworkId())
        return false;
    if (receiptNetworkIdMask != -1) {
        boolean matched = false;
        if (message.isDeliveryReceipt()) {
            Long receiptLocalMessageId = message.getReceiptLocalMessageId();
            DeliveryReceiptData deliveryReceiptData = message.getDeliveryReceiptData();
            if (receiptLocalMessageId != null && deliveryReceiptData != null) {
                MProcMessage sentMsg = message.getOriginMessageForDeliveryReceipt(receiptLocalMessageId);
                if (sentMsg != null) {
                    if (receiptNetworkIdMask == sentMsg.getOrigNetworkId())
                        matched = true;
                }
            }
        }
        if (!matched)
            return false;
    }
    if (origEsmeNameMaskPattern != null) {
        if (message.getOrigEsmeName() == null)
            return false;
        Matcher m = this.origEsmeNameMaskPattern.matcher(message.getOrigEsmeName());
        if (!m.matches())
            return false;
    }
    if (originatorSccpAddressMaskPattern != null) {
        if (message.getOriginatorSccpAddress() == null)
            return false;
        Matcher m = this.originatorSccpAddressMaskPattern.matcher(message.getOriginatorSccpAddress());
        if (!m.matches())
            return false;
    }
    if (imsiDigitsMaskPattern != null) {
        if (message.getImsiDigits() == null)
            return false;
        Matcher m = this.imsiDigitsMaskPattern.matcher(message.getImsiDigits());
        if (!m.matches())
            return false;
    }
    if (nnnDigitsMaskPattern != null) {
        if (message.getNnnDigits() == null)
            return false;
        Matcher m = this.nnnDigitsMaskPattern.matcher(message.getNnnDigits());
        if (!m.matches())
            return false;
    }
    if (processingType != null && processingType != message.getProcessingType())
        return false;
    if (errorCodePattern != null) {
        if (!this.errorCodePattern.containsKey(message.getErrorCode()))
            return false;
    }
    if (this.originatorSccpAddressMask != null && this.originatorSccpAddressMask.length() > 0 && !this.originatorSccpAddressMask.equals("-1") && message.getOriginatorSccpAddress() != null && message.getOriginatorSccpAddress().length() > 0 && this.originatorSccpAddressMask.charAt(0) != message.getOriginatorSccpAddress().charAt(0))
        return false;
    // check tlv
    if ((this.tlvTagToMatch != -1 && this.tlvValueTypeToMatch != null && tlvValueToMatch != null && !tlvValueToMatch.isEmpty())) {
        TlvSet tlvSet = message.getTlvSet();
        if (tlvSet.hasOptionalParameter(this.tlvTagToMatch)) {
            Tlv tlv = tlvSet.getOptionalParameter(this.tlvTagToMatch);
            try {
                String val = "";
                switch(this.tlvValueTypeToMatch) {
                    case BYTE:
                        val = (new Byte(tlv.getValueAsByte())).toString();
                        break;
                    case INT:
                        val = (new Integer(tlv.getValueAsInt())).toString();
                        break;
                    case STRING:
                    default:
                        val = tlv.getValueAsString();
                        break;
                }
                if (!this.tlvValueToMatch.equals(val)) {
                    return false;
                }
            } catch (Exception e) {
                return false;
            }
        } else {
            return false;
        }
    }
    if (percent != -1) {
        return MProcUtility.checkRuleProbability(percent);
    }
    return true;
}
Also used : DeliveryReceiptData(org.mobicents.smsc.mproc.DeliveryReceiptData) Matcher(java.util.regex.Matcher) MProcMessage(org.mobicents.smsc.mproc.MProcMessage) TlvSet(org.restcomm.smpp.parameter.TlvSet) XMLStreamException(javolution.xml.stream.XMLStreamException) Tlv(com.cloudhopper.smpp.tlv.Tlv)

Aggregations

TlvSet (org.restcomm.smpp.parameter.TlvSet)10 Tlv (com.cloudhopper.smpp.tlv.Tlv)7 Sms (org.mobicents.smsc.library.Sms)4 XMLStreamException (javolution.xml.stream.XMLStreamException)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 ByteBuffer (java.nio.ByteBuffer)2 XMLObjectReader (javolution.xml.XMLObjectReader)2 SmsSet (org.mobicents.smsc.library.SmsSet)2 DeliveryReceiptData (org.mobicents.smsc.mproc.DeliveryReceiptData)2 MProcMessage (org.mobicents.smsc.mproc.MProcMessage)2 Test (org.testng.annotations.Test)2 InvalidQueryException (com.datastax.driver.core.exceptions.InvalidQueryException)1 CharBuffer (java.nio.CharBuffer)1 Charset (java.nio.charset.Charset)1 Date (java.util.Date)1 UUID (java.util.UUID)1 Matcher (java.util.regex.Matcher)1 PersistenceException (org.mobicents.smsc.cassandra.PersistenceException)1 SendingMessageType (org.mobicents.smsc.tools.smppsimulator.SmppSimulatorParameters.SendingMessageType)1 DataCodingScheme (org.restcomm.protocols.ss7.map.api.smstpdu.DataCodingScheme)1