Search in sources :

Example 6 with LongMessageFrame

use of com.zx.sms.codec.cmpp.wap.LongMessageFrame in project SMSGate by Lihuanghe.

the class TestLongMessageFrameHolder method test.

@Test
public void test() throws SmsException {
    List<LongMessageFrame> l = LongMessageFrameHolder.INS.splitmsgcontent(new SmsTextMessage(s));
    for (LongMessageFrame frame : l) {
        String stmp = LongMessageFrameHolder.INS.getPartTextMsg(frame);
        Assert.assertEquals(67, stmp.length());
        System.out.println(stmp);
    }
}
Also used : SmsTextMessage(org.marre.sms.SmsTextMessage) LongMessageFrame(com.zx.sms.codec.cmpp.wap.LongMessageFrame) Test(org.junit.Test)

Example 7 with LongMessageFrame

use of com.zx.sms.codec.cmpp.wap.LongMessageFrame in project SMSGate by Lihuanghe.

the class ChannelUtil method syncWriteLongMsgToEntity.

public static <T extends BaseMessage> List<Promise<T>> syncWriteLongMsgToEntity(EndpointEntity e, BaseMessage msg) throws Exception {
    EndpointConnector connector = e.getSingletonConnector();
    if (connector == null)
        return null;
    if (msg instanceof LongSMSMessage) {
        LongSMSMessage<BaseMessage> lmsg = (LongSMSMessage<BaseMessage>) msg;
        if (!lmsg.isReport()) {
            // 长短信拆分
            SmsMessage msgcontent = lmsg.getSmsMessage();
            List<LongMessageFrame> frameList = LongMessageFrameHolder.INS.splitmsgcontent(msgcontent);
            // 保证同一条长短信,通过同一个tcp连接发送
            List<BaseMessage> msgs = new ArrayList<BaseMessage>();
            for (LongMessageFrame frame : frameList) {
                BaseMessage basemsg = (BaseMessage) lmsg.generateMessage(frame);
                msgs.add(basemsg);
            }
            return connector.synwrite(msgs);
        }
    }
    Promise promise = connector.synwrite(msg);
    if (promise == null) {
        // 为空,可能是连接断了,直接返回
        return null;
    }
    List<Promise<T>> arrPromise = new ArrayList<Promise<T>>();
    arrPromise.add(promise);
    return arrPromise;
}
Also used : EndpointConnector(com.zx.sms.connect.manager.EndpointConnector) LongSMSMessage(com.zx.sms.LongSMSMessage) Promise(io.netty.util.concurrent.Promise) SmsMessage(org.marre.sms.SmsMessage) BaseMessage(com.zx.sms.BaseMessage) LongMessageFrame(com.zx.sms.codec.cmpp.wap.LongMessageFrame) ArrayList(java.util.ArrayList)

Example 8 with LongMessageFrame

use of com.zx.sms.codec.cmpp.wap.LongMessageFrame in project SMSGate by Lihuanghe.

the class SMGPDeliverMessage method generateFrame.

@Override
public LongMessageFrame generateFrame() {
    LongMessageFrame frame = new LongMessageFrame();
    frame.setTppid(getTpPid());
    frame.setTpudhi(getTpUdhi());
    frame.setMsgfmt(getMsgFmt());
    frame.setMsgContentBytes(getBMsgContent());
    frame.setMsgLength((short) this.bMsgContent.length);
    frame.setSequence(getSequenceNo());
    return frame;
}
Also used : LongMessageFrame(com.zx.sms.codec.cmpp.wap.LongMessageFrame)

Example 9 with LongMessageFrame

use of com.zx.sms.codec.cmpp.wap.LongMessageFrame in project SMSGate by Lihuanghe.

the class BaseSm method doGenerateFrame.

protected LongMessageFrame doGenerateFrame() {
    LongMessageFrame frame = new LongMessageFrame();
    frame.setTppid(getProtocolId());
    // udhi bit : x1xxxxxx 表示要处理长短信
    frame.setTpudhi(getTpUdhI());
    frame.setMsgfmt(new SmppSmsDcs(getDataCoding()));
    frame.setMsgContentBytes(getShortMessage());
    frame.setMsgLength((short) getMsglength());
    frame.setSequence(getSequenceNo());
    return frame;
}
Also used : LongMessageFrame(com.zx.sms.codec.cmpp.wap.LongMessageFrame) SmppSmsDcs(org.marre.sms.SmppSmsDcs)

Aggregations

LongMessageFrame (com.zx.sms.codec.cmpp.wap.LongMessageFrame)9 BaseMessage (com.zx.sms.BaseMessage)1 LongSMSMessage (com.zx.sms.LongSMSMessage)1 EndpointConnector (com.zx.sms.connect.manager.EndpointConnector)1 Promise (io.netty.util.concurrent.Promise)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1 SmppSmsDcs (org.marre.sms.SmppSmsDcs)1 SmsMessage (org.marre.sms.SmsMessage)1 SmsTextMessage (org.marre.sms.SmsTextMessage)1