Search in sources :

Example 1 with BindReceiver

use of com.zx.sms.codec.smpp.msg.BindReceiver in project SMSGate by Lihuanghe.

the class SMPPSessionLoginManager method createBindRequest.

private BaseBind createBindRequest(SMPPEndpointEntity entity) {
    BaseBind bind = null;
    if (entity.getChannelType() == ChannelType.DUPLEX) {
        bind = new BindTransceiver();
    } else if (entity.getChannelType() == ChannelType.UP) {
        bind = new BindReceiver();
    } else if (entity.getChannelType() == ChannelType.DOWN) {
        bind = new BindTransmitter();
    } else {
        logger.error("Unable to convert SmppSessionConfiguration into a BaseBind request");
    }
    bind.setSystemId(entity.getSystemId());
    bind.setPassword(entity.getPassword());
    bind.setSystemType(entity.getSystemType());
    bind.setInterfaceVersion(entity.getInterfaceVersion());
    bind.setAddressRange(entity.getAddressRange());
    return bind;
}
Also used : BindTransceiver(com.zx.sms.codec.smpp.msg.BindTransceiver) BindReceiver(com.zx.sms.codec.smpp.msg.BindReceiver) BindTransmitter(com.zx.sms.codec.smpp.msg.BindTransmitter) BaseBind(com.zx.sms.codec.smpp.msg.BaseBind)

Example 2 with BindReceiver

use of com.zx.sms.codec.smpp.msg.BindReceiver in project SMSGate by Lihuanghe.

the class SMPPSessionLoginManager method queryEndpointEntityByMsg.

@Override
protected EndpointEntity queryEndpointEntityByMsg(Object msg) {
    if (msg instanceof BaseBind) {
        BaseBind message = (BaseBind) msg;
        String username = message.getSystemId();
        if (entity instanceof SMPPServerEndpointEntity) {
            SMPPServerEndpointEntity serverEntity = (SMPPServerEndpointEntity) entity;
            if (msg instanceof BindTransmitter) {
                EndpointEntity end = serverEntity.getChild(username.trim(), ChannelType.DOWN);
                return end;
            } else if (msg instanceof BindReceiver) {
                EndpointEntity end = serverEntity.getChild(username.trim(), ChannelType.UP);
                return end;
            } else if (msg instanceof BindTransceiver) {
                EndpointEntity end = serverEntity.getChild(username.trim(), ChannelType.DUPLEX);
                return end;
            }
        }
    }
    return null;
}
Also used : BindTransceiver(com.zx.sms.codec.smpp.msg.BindTransceiver) SMPPServerEndpointEntity(com.zx.sms.connect.manager.smpp.SMPPServerEndpointEntity) BindReceiver(com.zx.sms.codec.smpp.msg.BindReceiver) BindTransmitter(com.zx.sms.codec.smpp.msg.BindTransmitter) BaseBind(com.zx.sms.codec.smpp.msg.BaseBind) EndpointEntity(com.zx.sms.connect.manager.EndpointEntity) SMPPEndpointEntity(com.zx.sms.connect.manager.smpp.SMPPEndpointEntity) SMPPServerEndpointEntity(com.zx.sms.connect.manager.smpp.SMPPServerEndpointEntity)

Example 3 with BindReceiver

use of com.zx.sms.codec.smpp.msg.BindReceiver in project SMSGate by Lihuanghe.

the class DefaultPduTranscoder method doDecode.

protected Pdu doDecode(int commandLength, ByteBuf buffer) throws UnrecoverablePduException, RecoverablePduException {
    // skip the length field because we already parsed it
    buffer.skipBytes(SmppConstants.PDU_INT_LENGTH);
    // read the remaining portion of the PDU header
    int commandId = buffer.readInt();
    int commandStatus = buffer.readInt();
    int sequenceNumber = buffer.readInt();
    Pdu pdu = null;
    // any command id with its 31st bit set to true is a response
    if (PduUtil.isRequestCommandId(commandId)) {
        if (commandId == SmppConstants.CMD_ID_ENQUIRE_LINK) {
            pdu = new EnquireLink();
        } else if (commandId == SmppConstants.CMD_ID_DELIVER_SM) {
            pdu = new DeliverSm();
        } else if (commandId == SmppConstants.CMD_ID_SUBMIT_SM) {
            pdu = new SubmitSm();
        } else if (commandId == SmppConstants.CMD_ID_DATA_SM) {
            pdu = new DataSm();
        } else if (commandId == SmppConstants.CMD_ID_CANCEL_SM) {
            pdu = new CancelSm();
        } else if (commandId == SmppConstants.CMD_ID_QUERY_SM) {
            pdu = new QuerySm();
        } else if (commandId == SmppConstants.CMD_ID_REPLACE_SM) {
            pdu = new ReplaceSm();
        } else if (commandId == SmppConstants.CMD_ID_BIND_TRANSCEIVER) {
            pdu = new BindTransceiver();
        } else if (commandId == SmppConstants.CMD_ID_BIND_TRANSMITTER) {
            pdu = new BindTransmitter();
        } else if (commandId == SmppConstants.CMD_ID_BIND_RECEIVER) {
            pdu = new BindReceiver();
        } else if (commandId == SmppConstants.CMD_ID_UNBIND) {
            pdu = new Unbind();
        } else if (commandId == SmppConstants.CMD_ID_ALERT_NOTIFICATION) {
            pdu = new AlertNotification();
        } else {
            pdu = new PartialPdu(commandId);
        }
    } else {
        if (commandId == SmppConstants.CMD_ID_SUBMIT_SM_RESP) {
            pdu = new SubmitSmResp();
        } else if (commandId == SmppConstants.CMD_ID_DELIVER_SM_RESP) {
            pdu = new DeliverSmResp();
        } else if (commandId == SmppConstants.CMD_ID_DATA_SM_RESP) {
            pdu = new DataSmResp();
        } else if (commandId == SmppConstants.CMD_ID_CANCEL_SM_RESP) {
            pdu = new CancelSmResp();
        } else if (commandId == SmppConstants.CMD_ID_QUERY_SM_RESP) {
            pdu = new QuerySmResp();
        } else if (commandId == SmppConstants.CMD_ID_REPLACE_SM_RESP) {
            pdu = new ReplaceSmResp();
        } else if (commandId == SmppConstants.CMD_ID_ENQUIRE_LINK_RESP) {
            pdu = new EnquireLinkResp();
        } else if (commandId == SmppConstants.CMD_ID_BIND_TRANSCEIVER_RESP) {
            pdu = new BindTransceiverResp();
        } else if (commandId == SmppConstants.CMD_ID_BIND_RECEIVER_RESP) {
            pdu = new BindReceiverResp();
        } else if (commandId == SmppConstants.CMD_ID_BIND_TRANSMITTER_RESP) {
            pdu = new BindTransmitterResp();
        } else if (commandId == SmppConstants.CMD_ID_UNBIND_RESP) {
            pdu = new UnbindResp();
        } else if (commandId == SmppConstants.CMD_ID_GENERIC_NACK) {
            pdu = new GenericNack();
        } else {
            pdu = new PartialPduResp(commandId);
        }
    }
    // set pdu header values
    pdu.setCommandLength(commandLength);
    pdu.setCommandStatus(commandStatus);
    pdu.setSequenceNumber(sequenceNumber);
    // check if we need to throw an exception
    if (pdu instanceof PartialPdu) {
        throw new UnknownCommandIdException(pdu, "Unsupported or unknown PDU request commandId [0x" + HexUtil.toHexString(commandId) + "]");
    } else if (pdu instanceof PartialPduResp) {
        throw new UnknownCommandIdException(pdu, "Unsupported or unknown PDU response commandId [0x" + HexUtil.toHexString(commandId) + "]");
    }
    // see if we can map the command status into a message
    if (pdu instanceof PduResponse) {
        PduResponse response = (PduResponse) pdu;
        response.setResultMessage(context.lookupResultMessage(commandStatus));
    }
    try {
        // parse pdu body parameters (may throw exception)
        pdu.readBody(buffer);
        // parse pdu optional parameters (may throw exception)
        pdu.readOptionalParameters(buffer, context);
    } catch (RecoverablePduException e) {
        // check if we should add the partial pdu to the exception
        if (e.getPartialPdu() == null) {
            e.setPartialPdu(pdu);
        }
        // rethrow it
        throw e;
    }
    return pdu;
}
Also used : BindTransceiver(com.zx.sms.codec.smpp.msg.BindTransceiver) BindReceiverResp(com.zx.sms.codec.smpp.msg.BindReceiverResp) GenericNack(com.zx.sms.codec.smpp.msg.GenericNack) PduResponse(com.zx.sms.codec.smpp.msg.PduResponse) ReplaceSm(com.zx.sms.codec.smpp.msg.ReplaceSm) BindTransmitter(com.zx.sms.codec.smpp.msg.BindTransmitter) ReplaceSmResp(com.zx.sms.codec.smpp.msg.ReplaceSmResp) DataSmResp(com.zx.sms.codec.smpp.msg.DataSmResp) PartialPdu(com.zx.sms.codec.smpp.msg.PartialPdu) EnquireLink(com.zx.sms.codec.smpp.msg.EnquireLink) DataSm(com.zx.sms.codec.smpp.msg.DataSm) SubmitSm(com.zx.sms.codec.smpp.msg.SubmitSm) CancelSm(com.zx.sms.codec.smpp.msg.CancelSm) QuerySmResp(com.zx.sms.codec.smpp.msg.QuerySmResp) DeliverSmResp(com.zx.sms.codec.smpp.msg.DeliverSmResp) PartialPdu(com.zx.sms.codec.smpp.msg.PartialPdu) Pdu(com.zx.sms.codec.smpp.msg.Pdu) AlertNotification(com.zx.sms.codec.smpp.msg.AlertNotification) QuerySm(com.zx.sms.codec.smpp.msg.QuerySm) BindReceiver(com.zx.sms.codec.smpp.msg.BindReceiver) EnquireLinkResp(com.zx.sms.codec.smpp.msg.EnquireLinkResp) CancelSmResp(com.zx.sms.codec.smpp.msg.CancelSmResp) BindTransmitterResp(com.zx.sms.codec.smpp.msg.BindTransmitterResp) BindTransceiverResp(com.zx.sms.codec.smpp.msg.BindTransceiverResp) UnbindResp(com.zx.sms.codec.smpp.msg.UnbindResp) SubmitSmResp(com.zx.sms.codec.smpp.msg.SubmitSmResp) PartialPduResp(com.zx.sms.codec.smpp.msg.PartialPduResp) Unbind(com.zx.sms.codec.smpp.msg.Unbind) DeliverSm(com.zx.sms.codec.smpp.msg.DeliverSm)

Aggregations

BindReceiver (com.zx.sms.codec.smpp.msg.BindReceiver)3 BindTransceiver (com.zx.sms.codec.smpp.msg.BindTransceiver)3 BindTransmitter (com.zx.sms.codec.smpp.msg.BindTransmitter)3 BaseBind (com.zx.sms.codec.smpp.msg.BaseBind)2 AlertNotification (com.zx.sms.codec.smpp.msg.AlertNotification)1 BindReceiverResp (com.zx.sms.codec.smpp.msg.BindReceiverResp)1 BindTransceiverResp (com.zx.sms.codec.smpp.msg.BindTransceiverResp)1 BindTransmitterResp (com.zx.sms.codec.smpp.msg.BindTransmitterResp)1 CancelSm (com.zx.sms.codec.smpp.msg.CancelSm)1 CancelSmResp (com.zx.sms.codec.smpp.msg.CancelSmResp)1 DataSm (com.zx.sms.codec.smpp.msg.DataSm)1 DataSmResp (com.zx.sms.codec.smpp.msg.DataSmResp)1 DeliverSm (com.zx.sms.codec.smpp.msg.DeliverSm)1 DeliverSmResp (com.zx.sms.codec.smpp.msg.DeliverSmResp)1 EnquireLink (com.zx.sms.codec.smpp.msg.EnquireLink)1 EnquireLinkResp (com.zx.sms.codec.smpp.msg.EnquireLinkResp)1 GenericNack (com.zx.sms.codec.smpp.msg.GenericNack)1 PartialPdu (com.zx.sms.codec.smpp.msg.PartialPdu)1 PartialPduResp (com.zx.sms.codec.smpp.msg.PartialPduResp)1 Pdu (com.zx.sms.codec.smpp.msg.Pdu)1