Search in sources :

Example 11 with SubmitSm

use of com.cloudhopper.smpp.pdu.SubmitSm in project smscgateway by RestComm.

the class TxSmppServerSbbTest method testSubmitSm.

@Test(groups = { "TxSmppServer" })
public void testSubmitSm() throws Exception {
    if (!this.cassandraDbInited)
        return;
    this.smppSess = new SmppSessionsProxy();
    this.sbb.setSmppServerSessions(smppSess);
    int windowSize = SmppConstants.DEFAULT_WINDOW_SIZE;
    long connectTimeout = SmppConstants.DEFAULT_CONNECT_TIMEOUT;
    long requestExpiryTimeout = SmppConstants.DEFAULT_REQUEST_EXPIRY_TIMEOUT;
    long clientBindTimeout = SmppConstants.DEFAULT_BIND_TIMEOUT;
    long windowMonitorInterval = SmppConstants.DEFAULT_WINDOW_MONITOR_INTERVAL;
    long windowWaitTimeout = SmppConstants.DEFAULT_WINDOW_WAIT_TIMEOUT;
    Esme esme = new Esme("Esme_1", "Esme_systemId_1", "pwd", "host", 0, false, null, SmppInterfaceVersionType.SMPP34, -1, -1, null, SmppBindType.TRANSCEIVER, SmppSession.Type.CLIENT, windowSize, connectTimeout, requestExpiryTimeout, clientBindTimeout, windowMonitorInterval, windowWaitTimeout, "Esme_1", true, 30000, 0, 0, -1, -1, "^[0-9a-zA-Z]*", -1, -1, "^[0-9a-zA-Z]*", 0, false, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, -1);
    ActivityContextInterface aci = new SmppTransactionProxy(esme);
    SubmitSm event = new SubmitSm();
    Date curDate = new Date();
    this.fillSm(event, curDate, true);
    event.setShortMessage(msgUcs2);
    long dueSlot = this.pers.c2_getDueSlotForTime(scheduleDeliveryTime);
    PreparedStatementCollection psc = this.pers.getStatementCollection(scheduleDeliveryTime);
    int b1 = this.pers.checkSmsExists(dueSlot, ta1.getTargetId());
    long b2 = this.pers.c2_getDueSlotForTargetId(psc, ta1.getTargetId());
    assertEquals(b1, 0);
    assertEquals(b2, 0L);
    TxSmppServerSbb.smscPropertiesManagement.setSmppEncodingForUCS2(SmppEncoding.Unicode);
    this.sbb.onSubmitSm(event, aci);
    b1 = this.pers.checkSmsExists(dueSlot, ta1.getTargetId());
    assertEquals(b1, 1);
    SmsSet smsSet = this.pers.c2_getRecordListForTargeId(dueSlot, ta1.getTargetId());
    this.checkSmsSet(smsSet, curDate, true);
    Sms sms = smsSet.getSms(0);
    // msgUcs2
    assertEquals(sms.getShortMessageText(), sMsg);
    assertEquals(sms.getShortMessageBin(), udhCode);
    assertEquals(this.smppSess.getReqList().size(), 0);
    assertEquals(this.smppSess.getRespList().size(), 1);
    PduResponse resp = this.smppSess.getRespList().get(0);
    assertEquals(resp.getCommandStatus(), 0);
    assertEquals(resp.getOptionalParameterCount(), 0);
}
Also used : PduResponse(com.cloudhopper.smpp.pdu.PduResponse) ActivityContextInterface(javax.slee.ActivityContextInterface) SubmitSm(com.cloudhopper.smpp.pdu.SubmitSm) Esme(org.restcomm.smpp.Esme) Sms(org.mobicents.smsc.library.Sms) SmppSessionsProxy(org.mobicents.smsc.slee.resources.persistence.SmppSessionsProxy) Date(java.util.Date) PreparedStatementCollection(org.mobicents.smsc.cassandra.PreparedStatementCollection) SmsSet(org.mobicents.smsc.library.SmsSet) Test(org.testng.annotations.Test)

Example 12 with SubmitSm

use of com.cloudhopper.smpp.pdu.SubmitSm in project smscgateway by RestComm.

the class SmppTestingForm method doSendBadPacket.

private void doSendBadPacket() {
    // TODO: ..............................
    SubmitSm submitSm = new SubmitSm();
    try {
        ((TestSmppSession) this.session0).setMalformedPacket();
        this.session0.submit(submitSm, 1000);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Also used : SubmitSm(com.cloudhopper.smpp.pdu.SubmitSm) TestSmppSession(org.mobicents.smsc.tools.smppsimulator.testsmpp.TestSmppSession) SmppChannelException(com.cloudhopper.smpp.type.SmppChannelException) CharacterCodingException(java.nio.charset.CharacterCodingException)

Example 13 with SubmitSm

use of com.cloudhopper.smpp.pdu.SubmitSm in project smscgateway by RestComm.

the class SmppTestingForm method doSubmitMessage.

private void doSubmitMessage(int dcs, ArrayList<byte[]> msgLst, int msgRef, boolean addSegmTlv, int esmClass, SmppSimulatorParameters.ValidityType validityType, int segmentCnt, String destAddr, int messageClassVal) throws Exception {
    int i1 = 0;
    for (byte[] buf : msgLst) {
        i1++;
        BaseSm pdu;
        switch(this.param.getSendingMessageType()) {
            case SubmitSm:
                SubmitSm submitPdu = new SubmitSm();
                pdu = submitPdu;
                break;
            case DataSm:
                DataSm dataPdu = new DataSm();
                pdu = dataPdu;
                break;
            case DeliverSm:
                DeliverSm deliverPdu = new DeliverSm();
                pdu = deliverPdu;
                break;
            case SubmitMulti:
                SubmitMulti submitMulti = new SubmitMulti();
                pdu = submitMulti;
                break;
            default:
                return;
        }
        pdu.setSourceAddress(new Address((byte) this.param.getSourceTON().getCode(), (byte) this.param.getSourceNPI().getCode(), this.param.getSourceAddress()));
        if (this.param.getSendingMessageType() == SendingMessageType.SubmitMulti) {
            long daOrig = 1;
            try {
                daOrig = Long.parseLong(destAddr);
            } catch (Exception e) {
            }
            for (int i2 = 0; i2 < this.param.getSubmitMultiMessageCnt(); i2++) {
                // this code can be used for testing of address rejections
                // if(i2 == 0){
                // ((SubmitMulti) pdu).addDestAddresses(new Address((byte)
                // 8, (byte) this.param.getDestNPI().getCode(), String
                // .valueOf(daOrig + i2)));
                // }else {
                // ((SubmitMulti) pdu).addDestAddresses(new Address((byte)
                // this.param.getDestTON().getCode(), (byte)
                // this.param.getDestNPI().getCode(), String
                // .valueOf(daOrig + i2)));
                // }
                ((SubmitMulti) pdu).addDestAddresses(new Address((byte) this.param.getDestTON().getCode(), (byte) this.param.getDestNPI().getCode(), String.valueOf(daOrig + i2)));
            }
        } else {
            pdu.setDestAddress(new Address((byte) this.param.getDestTON().getCode(), (byte) this.param.getDestNPI().getCode(), destAddr));
        }
        pdu.setEsmClass((byte) esmClass);
        switch(validityType) {
            case ValidityPeriod_5min:
                pdu.setValidityPeriod(MessageUtil.printSmppRelativeDate(0, 0, 0, 0, 5, 0));
                break;
            case ValidityPeriod_2hours:
                pdu.setValidityPeriod(MessageUtil.printSmppRelativeDate(0, 0, 0, 2, 0, 0));
                break;
            case ScheduleDeliveryTime_5min:
                pdu.setScheduleDeliveryTime(MessageUtil.printSmppRelativeDate(0, 0, 0, 0, 5, 0));
                break;
        }
        pdu.setDataCoding((byte) dcs);
        pdu.setRegisteredDelivery((byte) this.param.getMcDeliveryReceipt().getCode());
        if (buf.length < 250 && this.param.getSendingMessageType() != SmppSimulatorParameters.SendingMessageType.DataSm)
            pdu.setShortMessage(buf);
        else {
            Tlv tlv = new Tlv(SmppConstants.TAG_MESSAGE_PAYLOAD, buf);
            pdu.addOptionalParameter(tlv);
        }
        if (addSegmTlv) {
            byte[] buf1 = new byte[2];
            buf1[0] = 0;
            buf1[1] = (byte) msgRef;
            Tlv tlv = new Tlv(SmppConstants.TAG_SAR_MSG_REF_NUM, buf1);
            pdu.addOptionalParameter(tlv);
            buf1 = new byte[1];
            buf1[0] = (byte) msgLst.size();
            tlv = new Tlv(SmppConstants.TAG_SAR_TOTAL_SEGMENTS, buf1);
            pdu.addOptionalParameter(tlv);
            buf1 = new byte[1];
            buf1[0] = (byte) i1;
            tlv = new Tlv(SmppConstants.TAG_SAR_SEGMENT_SEQNUM, buf1);
            pdu.addOptionalParameter(tlv);
        }
        if (messageClassVal > 0) {
            byte[] buf1 = new byte[1];
            buf1[0] = (byte) messageClassVal;
            Tlv tlv = new Tlv(SmppConstants.TAG_DEST_ADDR_SUBUNIT, buf1);
            pdu.addOptionalParameter(tlv);
        }
        if (this.param.isSendOptionalParameter()) {
            for (Tlv tlv : this.param.getTlvSet().getOptionalParameters()) {
                pdu.addOptionalParameter(tlv);
            }
        }
        WindowFuture<Integer, PduRequest, PduResponse> future0 = session0.sendRequestPdu(pdu, 10000, false);
        this.messagesSent.incrementAndGet();
        if (this.timer == null) {
            this.addMessage("Request=" + pdu.getName(), pdu.toString());
        }
    }
    this.segmentsSent.addAndGet(segmentCnt);
}
Also used : PduResponse(com.cloudhopper.smpp.pdu.PduResponse) Address(com.cloudhopper.smpp.type.Address) BaseSm(com.cloudhopper.smpp.pdu.BaseSm) SmppChannelException(com.cloudhopper.smpp.type.SmppChannelException) CharacterCodingException(java.nio.charset.CharacterCodingException) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) PduRequest(com.cloudhopper.smpp.pdu.PduRequest) DataSm(com.cloudhopper.smpp.pdu.DataSm) SubmitSm(com.cloudhopper.smpp.pdu.SubmitSm) SubmitMulti(com.cloudhopper.smpp.pdu.SubmitMulti) DeliverSm(com.cloudhopper.smpp.pdu.DeliverSm) Tlv(com.cloudhopper.smpp.tlv.Tlv)

Aggregations

SubmitSm (com.cloudhopper.smpp.pdu.SubmitSm)13 Date (java.util.Date)7 Esme (org.restcomm.smpp.Esme)7 ActivityContextInterface (javax.slee.ActivityContextInterface)6 PreparedStatementCollection (org.mobicents.smsc.cassandra.PreparedStatementCollection)6 SmppSessionsProxy (org.mobicents.smsc.slee.resources.persistence.SmppSessionsProxy)6 Test (org.testng.annotations.Test)6 PduResponse (com.cloudhopper.smpp.pdu.PduResponse)5 Tlv (com.cloudhopper.smpp.tlv.Tlv)5 Address (com.cloudhopper.smpp.type.Address)5 SmppChannelException (com.cloudhopper.smpp.type.SmppChannelException)4 DeliverSm (com.cloudhopper.smpp.pdu.DeliverSm)3 Sms (org.mobicents.smsc.library.Sms)3 SmsSet (org.mobicents.smsc.library.SmsSet)3 DataSm (com.cloudhopper.smpp.pdu.DataSm)2 SubmitSmResp (com.cloudhopper.smpp.pdu.SubmitSmResp)2 CharacterCodingException (java.nio.charset.CharacterCodingException)2 SmscProcessingException (org.mobicents.smsc.library.SmscProcessingException)2 TargetAddress (org.mobicents.smsc.library.TargetAddress)2 BaseSm (com.cloudhopper.smpp.pdu.BaseSm)1